O que é Gensim e para que serve
Gensim (Generate Similar) é uma biblioteca Python de alto nível para vetorização de textos, modelagem de tópicos e aprendizado de representações distribuídas de palavras. Ela foi projetada para trabalhar eficientemente com grandes volumes de dados textuais sem a necessidade de carregá-los completamente na memória. A biblioteca é mais conhecida por seu suporte aos modelos Word2Vec, FastText e LDA (Latent Dirichlet Allocation).
Gensim se diferencia de outras bibliotecas por seu foco em dados textuais não estruturados e sua capacidade de processar corpora de documentos que não cabem na memória RAM. Isso a torna a ferramenta ideal para analisar grandes coleções de texto, como arquivos de notícias, artigos científicos ou redes sociais.
Principais recursos da biblioteca Gensim
Vetores de palavras (Word Embeddings)
Gensim oferece suporte completo para criar e trabalhar com vetores de palavras, incluindo Word2Vec, FastText e Doc2Vec. Esses modelos convertem texto em vetores numéricos, preservando as relações semânticas entre as palavras.
Modelagem de tópicos
A biblioteca inclui vários algoritmos para modelagem de tópicos:
- LDA (Latent Dirichlet Allocation) — para identificar tópicos ocultos em uma coleção de documentos
- LSI (Latent Semantic Indexing) — para redução de dimensionalidade e descoberta de conceitos latentes
- HDP (Hierarchical Dirichlet Process) — para determinar automaticamente o número de tópicos
Trabalho com corpora
Gensim garante eficiência no processamento de grandes corpora textuais por meio de streaming, permitindo analisar dados que excedem a memória RAM disponível.
Cálculo de similaridade
A biblioteca fornece diversas métricas para calcular a similaridade entre documentos, palavras e tópicos, incluindo similaridade por cosseno e outras métricas semânticas.
Instalação e configuração básica
Instalando a biblioteca
A instalação do Gensim é feita de forma padrão via pip:
pip install gensim
Para trabalhar com alguns modelos, pode ser necessário instalar dependências adicionais:
pip install gensim[complete]
Importando os módulos principais
import gensim
from gensim.models import Word2Vec, FastText, LdaModel, Doc2Vec
from gensim.corpora.dictionary import Dictionary
from gensim.corpora import MmCorpus
from gensim.similarities import Similarity
from gensim.utils import simple_preprocess
Preparação dos dados textuais
Tokenização e pré-processamento
O Gensim exige documentos tokenizados no formato de lista de listas. Um pré-processamento adequado é essencial para a qualidade dos resultados:
import re
from gensim.utils import simple_preprocess
def preprocess_text(text):
"""Pré-processamento de texto para Gensim"""
# Remove caracteres especiais
text = re.sub(r'[^a-zA-Zà-úÀ-Ú\s]', '', text)
# Tokenização e conversão para minúsculas
tokens = simple_preprocess(text, deacc=True)
return tokens
documents = [
"Gensim é uma biblioteca útil para tarefas de PLN.",
"Ela suporta modelagem de tópicos e embeddings de palavras.",
"Modelos como Word2Vec e FastText são implementados."
]
# Pré-processamento dos documentos
texts = [preprocess_text(doc) for doc in documents]
Criação do dicionário e corpus
# Criação do dicionário
dictionary = Dictionary(texts)
# Filtragem de valores extremos
dictionary.filter_extremes(no_below=2, no_above=0.5, keep_n=100000)
# Criação do corpus (representação bag-of-words)
corpus = [dictionary.doc2bow(text) for text in texts]