@@ -20,7 +20,7 @@ class SemanticSignalSeparation(ContextualModel):
2020
2121 corpus: list[str] = ["some text", "more text", ...]
2222
23- model = SemanticSignalSeparation(10, objective="independence" ).fit(corpus)
23+ model = SemanticSignalSeparation(10).fit(corpus)
2424 model.print_topics()
2525 ```
2626
@@ -33,10 +33,10 @@ class SemanticSignalSeparation(ContextualModel):
3333 vectorizer: CountVectorizer, default None
3434 Vectorizer used for term extraction.
3535 Can be used to prune or filter the vocabulary.
36- objective: 'orthogonality' or 'independence' , default 'independence'
37- Indicates what the components should be optimized for.
38- When 'orthogonality', PCA is used to discover components,
39- when 'independence', ICA is used to discover components .
36+ max_iter: int , default 200
37+ Maximum number of iterations for ICA .
38+ random_state: int, default None
39+ Random state to use so that results are exactly reproducible .
4040 """
4141
4242 def __init__ (
@@ -46,7 +46,8 @@ def __init__(
4646 Encoder , str
4747 ] = "sentence-transformers/all-MiniLM-L6-v2" ,
4848 vectorizer : Optional [CountVectorizer ] = None ,
49- objective : Literal ["orthogonality" , "independence" ] = "independence" ,
49+ max_iter : int = 200 ,
50+ random_state : Optional [int ] = None ,
5051 ):
5152 self .n_components = n_components
5253 self .encoder = encoder
@@ -58,11 +59,11 @@ def __init__(
5859 self .vectorizer = default_vectorizer ()
5960 else :
6061 self .vectorizer = vectorizer
61- self .objective = objective
62- if objective == "independence" :
63- self .decomposition = FastICA (n_components )
64- else :
65- self . decomposition = PCA ( n_components )
62+ self .max_iter = max_iter
63+ self . random_state = random_state
64+ self .decomposition = FastICA (
65+ n_components , max_iter = max_iter , random_state = random_state
66+ )
6667
6768 def fit_transform (
6869 self , raw_documents , y = None , embeddings : Optional [np .ndarray ] = None
0 commit comments