aibox.nlp.vectorizers.fasttext_word_vectorizer

Vetorizador de palavras baseado nos modelos do Fasttext.

Classes

FTAggregationStrategy(value)

Estratégias para agregação dos word embeddings.

FTTokenizerStrategy(value)

Estratégias de tokenização do texto.

FasttextWordVectorizer([aggregation, ...])

Vetorização a nível de palavra baseada no FastText.

class aibox.nlp.vectorizers.fasttext_word_vectorizer.FTAggregationStrategy(value)[código-fonte]

Base: Enum

Estratégias para agregação dos word embeddings.

Parâmetros:
  • NONE – nenhuma agregação é realizada. O vetorizador produz uma saída com formato (n_words, dims).

  • AVERAGE – média de todas os word embeddings. O vetorizador produz uma saída com formato (dims,).

class aibox.nlp.vectorizers.fasttext_word_vectorizer.FTTokenizerStrategy(value)[código-fonte]

Base: Enum

Estratégias de tokenização do texto.

Parâmetros:
  • SPACY – utiliza o spaCy para tokenização.

  • REGEX – utiliza um regex.

class aibox.nlp.vectorizers.fasttext_word_vectorizer.FasttextWordVectorizer(aggregation: FTAggregationStrategy | str = FTAggregationStrategy.NONE, tokenizer: FTTokenizerStrategy | str = FTTokenizerStrategy.SPACY, nlp: Language | None = None, regex_tokenizer: str = '\\s+', language: str = 'pt', dims: int = 50)[código-fonte]

Base: Vectorizer

Vetorização a nível de palavra baseada no FastText.

Parâmetros:
  • aggregation (FTAggregationStrategy | str) – estratégia de agregação dos word embeddings.

  • tokenizer (FTTokenizerStrategy | str) – estratégia de tokenização.

  • nlp (Language | None) – modelo do spacy a ser utilizado se tokenização através do spaCy (ignorado do contrário).

  • regex_tokenizer (str) – regex a ser utilizado se tokenização por regex (ignorado do contrário).

  • language (str) – linguagem do modelo.

  • dims (int) – dimensões do embedding.

São utilizados os modelos pré-treinados do FastText. Atualmente, apenas a linguagem “pt” com 50 dimensões é suportada.

O processo de vetorização ocorre da seguinte forma:
  1. Tokenização utilizando a estratégia selecionada;

  2. Cálculo dos word embeddings para cada token;

  3. Agregação utilizando a estratégia selecionada;

from aibox.nlp.vectorizers.fasttext_word_vectorizer import FasttextWordVectorizer

# Instanciando
vectorizer = FasttextWordVectorizer()
text = "Esse é um texto de exemplo"

# Obtendo os vetores para cada palavra do texto.
vectorizer.vectorize(text).shape
# Out: (6, 50)
vectorize(text: str | list[str] | ndarray[str_], vector_type: str = 'numpy', device: str | None = None, **kwargs) ndarray | Tensor

Método para vetorização de textos. A vetorização de múltiplos textos é realizada de forma paralela sempre que possível.

Aceita os campos n_workers (default=`min(4, cpu_count)`) e show_bar (default=`true`) quando array-like de string. Demais parâmetros são passados para _vectorize().

n_workers é utilizado quando a implementação utiliza multiprocessing. Caso n_workers <= 1, um for.

Parâmetros:
  • text (str | list[str] | ndarray[str_]) – texto ou textos de entrada.

  • vector_type (str, opcional) – tipo do vetor de saída (‘numpy ou ‘torch’).

  • device (str, opcional.) – dispositivo para armazenamento do tensor Torch. Padrão é CPU.

  • **kwargs – parâmetros extras que podem ser utilizados por alguns vetorizadores para controlar o processo de vetorização.

Retorna:

representação numérica do texto.

Tipo de retorno:

ndarray | Tensor