BERTopic: Guia Prático de Modelagem de Tópicos com Transformers

Por Mizael Xavier

Introdução à Modelagem de Tópicos com BERTopic

A modelagem de tópicos é uma técnica de aprendizado de máquina não supervisionado que identifica automaticamente diferentes temas presentes em um conjunto de documentos de texto. Com a explosão da quantidade de dados não estruturados gerados diariamente, a capacidade de organizar e extrair informações relevantes desses dados tornou-se crucial para diversas áreas. O BERTopic surge como uma poderosa ferramenta nesse cenário, utilizando transformadores (como o BERT) e uma abordagem baseada em TF-IDF por classe (c-TF-IDF) para criar clusters densos e facilmente interpretáveis. Desenvolvido por Maarten Grootendorst, o BERTopic se destaca pela sua capacidade de gerar tópicos coerentes e pela flexibilidade em sua implementação.

Como o BERTopic Funciona?

O algoritmo do BERTopic pode ser dividido em etapas principais que, juntas, transformam dados textuais brutos em tópicos significativos:

  1. Embeddings de Documentos: Nesta fase inicial, o BERTopic converte os documentos de texto em representações vetoriais densas, conhecidas como embeddings. Esses embeddings capturam o significado semântico do texto. Por padrão, ele utiliza modelos da biblioteca Sentence Transformers, como "all-MiniLM-L6-v2" ou "paraphrase-multilingual-MiniLM-L12-v2" para textos em múltiplos idiomas. No entanto, o BERTopic é flexível e suporta diversas outras bibliotecas de embedding, como Hugging Face Transformers, Flair, spaCy, Gensim e Universal Sentence Encoder (USE).
  2. Redução de Dimensionalidade com UMAP: Os embeddings gerados na etapa anterior geralmente possuem alta dimensionalidade, o que pode tornar o processo de clustering menos eficiente e os resultados mais esparsos. Para contornar isso, o BERTopic utiliza o UMAP (Uniform Manifold Approximation and Projection) como técnica padrão para reduzir a dimensionalidade dos embeddings. O UMAP é eficaz em preservar tanto a estrutura local quanto global dos dados, projetando os vetores para um espaço de menor dimensão, facilitando a formação de clusters coerentes. Um parâmetro importante do UMAP é o `n_neighbors`, que controla o equilíbrio entre a captura da estrutura local e global dos dados.
  3. Clustering com HDBSCAN: Após a redução da dimensionalidade, o BERTopic aplica o algoritmo de clustering HDBSCAN (Hierarchical Density-Based Spatial Clustering of Applications with Noise). O HDBSCAN é uma técnica hierárquica baseada em densidade que consegue identificar clusters de diferentes formas e tamanhos, além de lidar bem com ruídos (outliers). Uma vantagem significativa do HDBSCAN é que ele não exige a pré-definição do número de clusters.
  4. Extração de Tópicos com c-TF-IDF: Com os clusters de documentos formados, a etapa final é extrair as palavras-chave que melhor representam cada tópico. O BERTopic utiliza uma variante do TF-IDF chamada c-TF-IDF (class-based TF-IDF). Enquanto o TF-IDF tradicional calcula a importância de uma palavra para um documento em relação a todos os documentos, o c-TF-IDF calcula a importância de uma palavra para um cluster (tópico) em relação a todos os clusters. Isso permite identificar os termos mais relevantes que distinguem cada tópico.

Vantagens do BERTopic

O BERTopic oferece diversas vantagens em relação a abordagens tradicionais de modelagem de tópicos, como o Latent Dirichlet Allocation (LDA):

  • Interpretabilidade dos Tópicos: Graças ao uso de embeddings contextuais e ao c-TF-IDF, os tópicos gerados pelo BERTopic costumam ser mais coerentes e fáceis de interpretar.
  • Flexibilidade e Modularidade: O BERTopic possui um design modular, permitindo que os usuários personalizem diferentes etapas do pipeline, como a escolha do modelo de embedding, a técnica de redução de dimensionalidade e o algoritmo de clustering.
  • Suporte Multilíngue: Através do uso de modelos de sentence-transformers multilíngues, o BERTopic pode lidar com textos em mais de 50 idiomas.
  • Não Exige Número Pré-definido de Tópicos: O uso do HDBSCAN elimina a necessidade de especificar o número de tópicos antecipadamente, um parâmetro muitas vezes difícil de estimar.
  • Modelagem Hierárquica de Tópicos: O BERTopic permite a exploração da natureza hierárquica dos tópicos, ajudando a entender as relações entre eles e a identificar sub-tópicos.
  • Modelagem Dinâmica de Tópicos: É possível analisar como os tópicos evoluem ao longo do tempo.
  • Robustez a Ruído: A utilização de embeddings de sentenças torna o BERTopic mais robusto a ruídos nos dados em comparação com modelos baseados em bag-of-words.

Instalação e Uso Básico do BERTopic em Python

A instalação do BERTopic pode ser feita facilmente via pip:

pip install bertopic

Para funcionalidades adicionais, como visualizações ou suporte a outros modelos de embedding, pode ser necessário instalar dependências extras, por exemplo:

pip install bertopic[visualization]

pip install bertopic[flair,gensim,spacy,use]

Após a instalação, o uso básico do BERTopic envolve carregar seus dados, instanciar o modelo e ajustá-lo aos seus documentos:

from bertopic import BERTopic

from sklearn.datasets import fetch_20newsgroups

docs = fetch_20newsgroups(subset='all', remove=('headers', 'footers', 'quotes'))['data']

topic_model = BERTopic()

topics, probs = topic_model.fit_transform(docs)

Visualização de Tópicos no BERTopic

O BERTopic oferece diversas ferramentas de visualização para ajudar na interpretação dos resultados. Uma das visualizações mais comuns é a projeção dos tópicos em um espaço 2D, semelhante ao LDAvis, onde é possível explorar interativamente os tópicos, suas palavras-chave e o tamanho de cada um.

topic_model.visualize_topics()

Outras visualizações incluem:

  • Visualização de Documentos: Permite inspecionar os documentos dentro de cada tópico.
  • Visualização da Hierarquia de Tópicos: Mostra as relações hierárquicas entre os tópicos.
  • Visualização de Termos do Tópico (Barchart): Exibe as palavras mais importantes para cada tópico em formato de gráfico de barras.
  • Mapa de Calor de Similaridade de Tópicos: Mostra a similaridade entre os diferentes tópicos.

Casos de Uso do BERTopic

O BERTopic tem sido aplicado em uma ampla variedade de casos de uso e domínios, demonstrando sua versatilidade e eficácia. Alguns exemplos incluem:

  • Análise de feedback de usuários de aplicativos.
  • Análise de pesquisas de funcionários.
  • Estudo da percepção da voz.
  • Detecção de tópicos em tendências de mídias sociais.
  • Análise de registros eletrônicos de saúde.
  • Suporte a assistentes virtuais inteligentes, ajudando na análise exploratória inicial das intenções dos usuários.
  • Identificação de pacientes suspeitos de infecção por COVID-19 com base em textos clínicos.

Considerações sobre o BERTopic

Apesar de suas muitas vantagens, é importante notar que, como qualquer técnica de modelagem de tópicos, a interpretação dos resultados ainda depende do julgamento humano e do conhecimento do domínio. Modelos como o BERTopic, que utilizam transformers, podem ser computacionalmente mais intensivos e exigir hardware mais robusto (como GPUs) para treinamento e inferência em grandes volumes de dados, embora para datasets menores (ex: 5000 documentos), um laptop convencional possa ser suficiente. Além disso, a qualidade dos embeddings de entrada é crucial para o desempenho do modelo.

BERTopic vs. LDA

Estudos comparativos entre BERTopic e LDA têm mostrado que o BERTopic tende a se destacar na relevância semântica e coerência dos tópicos. Enquanto o LDA pode ser eficaz na formação de clusters distintos, o BERTopic, com sua capacidade de integrar modelos de linguagem avançados como o ChatGPT-4-Turbo para interpretação automática e melhor coerência semântica, oferece vantagens significativas na extração de insights valiosos de dados textuais. O LDA também assume que os tópicos não são correlacionados, o que nem sempre é verdade em cenários do mundo real.

Conclusão sobre o BERTopic

O BERTopic representa um avanço significativo na área de modelagem de tópicos, combinando o poder dos modelos de transformers com técnicas robustas de clustering e representação de tópicos. Sua flexibilidade, interpretabilidade e a capacidade de lidar com dados complexos e multilíngues o tornam uma ferramenta valiosa para pesquisadores e profissionais que buscam extrair conhecimento de grandes volumes de texto.

Mizael Xavier

Mizael Xavier

Desenvolvedor e escritor técnico

Ver todos os posts

Compartilhar: