Machine Learning · Insper · E3.3

BERTopic

Abordagem avançada

De onde vêm os nomes dos tópicos?

O caminho desta parte

  1. Nomes à mãoc-TF-IDF nos 24 grupos, conferido
  2. Ajustar as palavrasstop words; KeyBERTInspired
  3. Um modelo ajustado como ferramentabusca, documentos novos, gráficos
Cada etapa responde a uma pergunta: os nomes podem ser reproduzidos à mão? → dá para melhorá-los sem reagrupar? → o que mais um modelo ajustado faz?
Etapa 1 · os nomes podem ser reproduzidos à mão?

O c-TF-IDF nos posts, à mão

Junte os posts de cada grupo do HDBSCAN (o −1 também), troque quebras de linha e tabulações por espaços, conte com uma lista de stop words e aplique o TF-IDF por classe (c-TF-IDF). Preveja: de que o grupo dos outliers vai ganhar nome?

grupopostspalavras do topo, à mão
−1431space jpeg launch image
1567god jesus people church
0520team game hockey play
1566image graphics package processing
955card mode vesa vga
2352moon lunar prize money
As mesmas 5 palavras do topo do BERTopic em todo tópico: True. O HDBSCAN numera os grupos sem ordem; o BERTopic os renumera por tamanho (grupo 1 → tópico 0).
Etapa 2 · dá para melhorá-los sem reagrupar?

Ajustar as palavras, não os grupos

Preveja. O tópico 2 (processamento de imagens) com o vetorizador padrão do BERTopic, sem lista de stop words: como vão ser as palavras do topo?

tópico 2, nomeado por…palavras do topo
vetorizador padrãoimage and for of to it or the graphics with
sem stop wordsimage graphics package processing software data analysis …
KeyBERTInspiredgraphical graphics rtrace plots tools interactive plotting …
O KeyBERTInspired reordena as palavras candidatas pelo cosseno entre o embedding de cada palavra e os documentos típicos do tópico. O update_topics muda as palavras; as atribuições ficam idênticas.
Etapa 3 · o que mais um modelo ajustado faz?

Um modelo ajustado como ferramenta

ler

get_topic(t) palavras do topo e pontuações · get_representative_docs(t) documentos típicos

buscar e rotular

find_topics("rocket engines") pelo significado · transform(new_docs) documentos novos, sem reajuste

desenhar

visualize_topics(), visualize_barchart(), visualize_documents(): gráficos interativos em Plotly

fundir e reatribuir

reduce_topics, reduce_outliers: a parte avançada da E3.4 mede quanto custam

Prática · para casa

Sua vez (avançado)

  • Outra representação: MaximalMarginalRelevance(diversity=0.5) contra o KeyBERTInspired.
  • Busca pelo significado: três consultas suas com find_topics.
  • As palavras dos outliers: space, jpeg, launch, image descrevem os posts do tópico −1?

No lab: os passos 8 a 10. A seguir: os slides avançados da E3.4.