
    Wi                     F    d dl Zd dlmZ d dlmZ d dlmZ  G d de      Zy)    N)tqdm)List)BaseEmbedderc                   R     e Zd ZdZ fdZddee   dedej                  fdZ
 xZS )
USEBackenda  Universal Sentence Encoder.

    USE encodes text into high-dimensional vectors that
    are used for semantic similarity in BERTopic.

    Arguments:
        embedding_model: An USE embedding model

    Examples:
    ```python
    import tensorflow_hub
    from bertopic.backend import USEBackend

    embedding_model = tensorflow_hub.load("https://tfhub.dev/google/universal-sentence-encoder/4")
    use_embedder = USEBackend(embedding_model)
    ```
    c                 t    t         |           	  |dg       || _        y # t        $ r t	        d      w xY w)Nztest sentencezsPlease select a correct USE model: 
`import tensorflow_hub` 
`embedding_model = tensorflow_hub.load(path_to_model)`)super__init__embedding_model	TypeError
ValueError)selfr   	__class__s     a/home/sietch6/trending-topics-pipeline/venv/lib/python3.12/site-packages/bertopic/backend/_use.pyr
   zUSEBackend.__init__   sH    	_-.#2D  	I 	s   " 7	documentsverbosereturnc                     t        j                  t        ||       D cg c]3  }| j                  |g      j	                         j                         d   5 c}      }|S c c}w )a  Embed a list of n documents/words into an n-dimensional
        matrix of embeddings.

        Arguments:
            documents: A list of documents or words to be embedded
            verbose: Controls the verbosity of the process

        Returns:
            Document/words embeddings with shape (n, m) with `n` documents/words
            that each have an embeddings size of `m`
        )disabler   )nparrayr   r   cpunumpy)r   r   r   doc
embeddingss        r   embedzUSEBackend.embed(   s]     XXEI)ah]hEijcT!!3%(,,.446q9j

  ks   8A!)F)__name__
__module____qualname____doc__r
   r   strboolr   ndarrayr   __classcell__)r   s   @r   r   r      s/    $tCy 4 BJJ     r   )r   r   r   typingr   bertopic.backendr   r    r%   r   <module>r)      s       )/ /r%   