
    Wi                         d dl mZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ  e       Zej                  d	       g d
Zddedz  dedefdZy)   )BaseEmbedder    )SklearnEmbedder)MyLogger)make_pipeline)TruncatedSVD)TfidfVectorizer)PipelineWARNING)5arabic	bulgariancatalanczechdanishgermangreekenglishspanishestonianpersianfinnishfrenchzcanadian frenchgaliciangujaratihebrewhindicroatian	hungarianarmenian
indonesianitalianjapanesegeorgiankoreankurdish
lithuanianlatvian
macedonian	mongolianmarathimalayburmeseznorwegian bokmaldutchpolish
portuguesezbrazilian portugueseromanianrussianslovak	slovenianalbanianserbianswedishthaiturkish	ukrainianurdu
vietnamesezchinese (simplified)zchinese (traditional)Nlanguageverbosereturnc                    t         j                  |rdnd       t        | t              r| S t        | t              rt        |       S dt        t        |             v rddlm	}  ||       S dt        t        |             v rddl
m}  ||       S dt        t        |             v rdd	lm}  ||       S d
t        t        |             v rddlm}  ||       S dt        t        |             v st        | t              rddlm}  ||       S dt        t        |             v rddlm}  ||       S dt        t        |             v rddlm}	  |	|       S dt        t        |             v rddlm}
  |
|       S |rX	 ddlm} |j1                         dv r |d      S |j1                         t2        v s|dk(  r |d      S t5        | dt2               ddlm}  |d      S # t6        $ rZ}|j8                  dk7  r||rt         j;                  d       t=        t?               tA        d            }t        |      cY d}~S d}~ww xY w)a  Select an embedding model based on language or a specific provided model.
    When selecting a language, we choose all-MiniLM-L6-v2 for English and
    paraphrase-multilingual-MiniLM-L12-v2 for all other languages as it support 100+ languages.
    If sentence-transformers is not installed, in the case of a lightweight installation,
    a scikit-learn backend is default.

    Returns:
        model: The selected model backend.
    INFOr   flairr   )FlairBackendspacy)SpacyBackendgensim)GensimBackendsaved_model)
USEBackendsentence_transformersr   )SentenceTransformerBackendpipeline)HFTransformerBackend	model2vec)Model2VecBackend	fastembed)FastEmbedBackend)Englishr   enz&sentence-transformers/all-MiniLM-L6-v2multilingualz;sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2z is currently not supported. However, you can create any embeddings yourself and pass it through fit_transform(docs, embeddings)
Else, please select a language from the following list:
zxAutomatically selecting lightweight scikit-learn embedding backend as sentence-transformers appears to not be installed.d   N)!logger	set_level
isinstancer   ScikitPipeliner   strtypebertopic.backend._flairrB   bertopic.backend._spacyrD   bertopic.backend._gensimrF   bertopic.backend._userH   _sentencetransformersrJ   _hftransformersrL   
_model2vecrN   bertopic.backend._fastembedrP   lower	languages
ValueErrorModuleNotFoundErrornameinfor   r	   r   )embedding_modelr<   r=   rB   rD   rF   rH   rJ   rL   rN   rP   epipes                c/home/sietch6/trending-topics-pipeline/venv/lib/python3.12/site-packages/bertopic/backend/_utils.pyselect_backendrm   G   s4    wVI6 /<0 />2// #d?+,,8O,, #d?+,,8O,, 3tO,--:_-- &T/-B)CC4/** #d?&;"<<
?\_@`E)/:: %D,A(BB9#O44 c$/00000 c$/00@00 	)I~~#??12Z[[!Y.(n2L12opp j !P !k# ( B%&NOO # 
	)vv00 O !!2L4EFD"4((
	)s+   :G "G =G 	I(AH=7I=I)NF)_baser   bertopic.backend._sklearnr   bertopic._utilsr   sklearn.pipeliner   sklearn.decompositionr   sklearn.feature_extraction.textr	   r
   rX   rU   	configurerd   rY   boolrm        rl   <module>rx      s`     6 $ * . ; 7	    6	rdPcDj dP$ dP[g dPrw   