gtech13 commited on
Commit
1ad7e72
·
verified ·
1 Parent(s): 0e46cf7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -1
app.py CHANGED
@@ -62,6 +62,12 @@ def load_embedder(model_name, pool_strat):
62
  pooling_mode_max_tokens=("max" in pool_strat),
63
  pooling_mode_cls_token=("cls" in pool_strat)
64
  )
 
 
 
 
 
 
65
  return SentenceTransformer(modules=[word_emb, pool_model])
66
 
67
  # ==========================================
@@ -105,6 +111,7 @@ st.header("⚙️ Model Configuration")
105
  with st.expander("1️⃣ Semantic Layer (Embeddings & Pooling)", expanded=True):
106
  ui_embedding = st.selectbox("Embedding Model", list(EMBEDDING_MAP.keys()))
107
  ui_pooling = st.selectbox("Pooling Strategy", list(POOLING_MAP.keys()))
 
108
 
109
  with st.expander("2️⃣ Geometry Layer (Dimensionality Reduction)", expanded=True):
110
  ui_algo = st.selectbox("Algorithm", ["UMAP (Complex geometry)", "PCA (Fast/Deterministic)"])
@@ -171,7 +178,9 @@ if st.button("🚀 Run Topic Modeling Pipeline", type="primary", use_container_w
171
 
172
  vectorizer_model = CountVectorizer(stop_words=stop_w, ngram_range=ngram_range, max_df=0.85 if auto_noise and dataset_size > 10 else 1.0)
173
 
174
- custom_embedder = load_embedder(EMBEDDING_MAP[ui_embedding], POOLING_MAP[ui_pooling])
 
 
175
  embeddings = custom_embedder.encode(sentences)
176
 
177
  # Fallback Logic (Step 3 representation in code)
 
62
  pooling_mode_max_tokens=("max" in pool_strat),
63
  pooling_mode_cls_token=("cls" in pool_strat)
64
  )
65
+
66
+ modules = [word_emb, pool_model]
67
+
68
+ # NEW MATH STEP: If user checked the box, append the Normalization layer!
69
+ if apply_normalization:
70
+ modules.append(models.Normalize())
71
  return SentenceTransformer(modules=[word_emb, pool_model])
72
 
73
  # ==========================================
 
111
  with st.expander("1️⃣ Semantic Layer (Embeddings & Pooling)", expanded=True):
112
  ui_embedding = st.selectbox("Embedding Model", list(EMBEDDING_MAP.keys()))
113
  ui_pooling = st.selectbox("Pooling Strategy", list(POOLING_MAP.keys()))
114
+ ui_normalize = st.checkbox("Apply L2 Normalization (Recommended)", value=True, help="Forces all vectors to have a length of 1.0 so length doesn't bias the clustering.")
115
 
116
  with st.expander("2️⃣ Geometry Layer (Dimensionality Reduction)", expanded=True):
117
  ui_algo = st.selectbox("Algorithm", ["UMAP (Complex geometry)", "PCA (Fast/Deterministic)"])
 
178
 
179
  vectorizer_model = CountVectorizer(stop_words=stop_w, ngram_range=ngram_range, max_df=0.85 if auto_noise and dataset_size > 10 else 1.0)
180
 
181
+ #custom_embedder = load_embedder(EMBEDDING_MAP[ui_embedding], POOLING_MAP[ui_pooling])
182
+ # Ensure you pass the new variable into the function!
183
+ custom_embedder = load_embedder(EMBEDDING_MAP[ui_embedding], POOLING_MAP[ui_pooling], ui_normalize)
184
  embeddings = custom_embedder.encode(sentences)
185
 
186
  # Fallback Logic (Step 3 representation in code)