Foto por Mikechie Espargoza
Todos os dias, lidamos na maior parte do tempo com textos não rotulados e algoritmos de aprendizagem supervisionada não podem ser usados para extrair informações dos dados. Um subcampo da linguagem natural pode revelar a estrutura subjacente em grandes quantidades de texto. Esta disciplina é chamada de Modelagem de Tópicos, que é especializada em extrair tópicos de textos.
Nesse contexto, abordagens convencionais, como Alocação de Dirichlet Latente e Fatoração de Matriz Não Negativa, demonstraram não capturar bem as relações entre palavras, uma vez que são baseadas em bag-of-word.
Por esse motivo, vamos nos concentrar em duas abordagens promissoras, Top2Vec e BERTopic, que abordam essas desvantagens explorando modelos de linguagem pré-treinados para gerar tópicos. Vamos começar!
Top2Vec é um modelo capaz de detectar automaticamente tópicos do texto usando vetores de palavras pré-treinados e criando tópicos, documentos e vetores de palavras incorporados significativos.
Nesta abordagem, o procedimento para extrair tópicos pode ser dividido em diferentes etapas:
- Criar incorporação semântica: documentos incorporados em conjunto e vetores de palavras são criados. A ideia é que documentos semelhantes fiquem mais próximos no espaço de incorporação, enquanto documentos diferentes fiquem distantes entre eles.
- Reduza a dimensionalidade da incorporação do documento: A aplicação da abordagem de redução de dimensionalidade é importante para preservar a maior parte da variabilidade da incorporação de documentos e, ao mesmo tempo, reduzir o espaço dimensional elevado. Além disso, permite a identificação de áreas densas, nas quais cada ponto representa um vetor de documento. UMAP é a abordagem típica de redução de dimensionalidade escolhida nesta etapa porque é capaz de preservar a estrutura local e global dos dados de alta dimensão.
- Identifique grupos de documentos: HDBScan, uma abordagem de agrupamento baseada em densidade, é aplicada para localizar áreas densas de documentos semelhantes. Cada documento é atribuído como ruído se não estiver em um cluster denso, ou como rótulo se pertencer a uma área densa.
- Calcular centróides no espaço de incorporação original: O centróide é calculado considerando o espaço de alta dimensão, em vez do espaço de incorporação reduzido. A estratégia clássica consiste em calcular a média aritmética de todos os vetores de documentos pertencentes a uma área densa, obtida na etapa anterior com HDBSCAN. Desta forma, um vetor de tópico é gerado para cada cluster.
- Encontre palavras para cada vetor de tópico: os vetores de palavras mais próximos do vetor de documento são semanticamente os mais representativos.
Exemplo de Top2Vec
Neste tutorial, vamos analisar as avaliações negativas do McDonald's a partir de um conjunto de dados disponível em dados.mundo. Identificar os temas dessas análises pode ser valioso para a multinacional melhorar os produtos e a organização desta rede de fast food nas localidades dos EUA fornecidas pelos dados.
import pandas as pd
from top2vec import Top2Vec file_path = "McDonalds-Yelp-Sentiment-DFE.csv"
df = pd.read_csv( file_path, usecols=["_unit_id", "city", "review"], encoding="unicode_escape",
)
df.head()
docs_bad = df["review"].values.tolist()
Em uma única linha de código, realizaremos todos os passos do top2vec explicados anteriormente.
topic_model = Top2Vec( docs_bad, embedding_model="universal-sentence-encoder", speed="deep-learn", tokenizer=tok, ngram_vocab=True, ngram_vocab_args={"connector_words": "phrases.ENGLISH_CONNECTOR_WORDS"},
)
Os principais argumentos do Top2Vec são:
- docs_bad: é uma lista de strings.
- codificador de frase universal: é o modelo de incorporação pré-treinado escolhido.
- deep-learn: é um parâmetro que determina a qualidade do vetor do documento produzido.
topic_model.get_num_topics() #3
topic_words, word_scores, topic_nums = topic_model.get_topics(3) for topic in topic_nums: topic_model.generate_topic_wordcloud(topic)
A maioria
A partir das nuvens de palavras, podemos deduzir que o tópico 0 trata de reclamações gerais sobre o atendimento no McDonald, como “atendimento lento”, “atendimento horrível” e “pedido errado”, enquanto os tópicos 1 e 2 referem-se respectivamente à alimentação do café da manhã ( McMuffin, biscoito, ovo) e café (café gelado e xícara de café).
Agora, tentamos pesquisar documentos usando duas palavras-chave, errada e lenta:
( documents, document_scores, document_ids,
) = topic_model.search_documents_by_keywords( keywords=["wrong", "slow"], num_docs=5
)
for doc, score, doc_id in zip(documents, document_scores, document_ids): print(f"Document: {doc_id}, Score: {score}") print("-----------") print(doc) print("-----------") print()
Saída:
Document: 707, Score: 0.5517634093633295
-----------
horrible.... that is all. do not go there.
----------- Document: 930, Score: 0.4242547340973836
-----------
no drive through :-/
----------- Document: 185, Score: 0.39162203345993046
-----------
the drive through line is terrible. they are painfully slow.
----------- Document: 181, Score: 0.3775083338082392
-----------
awful service and extremely slow. go elsewhere.
----------- Document: 846, Score: 0.35400602635951994
-----------
they have bad service and very rude
-----------
“BERTopic é uma técnica de modelagem de tópicos que aproveita transformadores e c-TF-IDF para criar clusters densos, permitindo tópicos facilmente interpretáveis, mantendo palavras importantes nas descrições dos tópicos.”
Como o nome sugere, BERTopic utiliza modelos transformadores poderosos para identificar os tópicos presentes no texto. Outra característica deste algoritmo de modelagem de tópicos é a utilização de uma variante do TF-IDF, chamada variação baseada em classes do TF-IDF.
Assim como o Top2Vec, não precisa saber a quantidade de tópicos, mas extrai os tópicos automaticamente.
Além disso, à semelhança do Top2Vec, é um algoritmo que envolve diferentes fases. As três primeiras etapas são as mesmas: criação de documentos incorporados, redução de dimensionalidade com UMAP e agrupamento com HDBScan.
As fases sucessivas começam a divergir do Top2Vec. Depois de encontrar as áreas densas com HDBSCAN, cada tópico é tokenizado em uma representação de saco de palavras, que leva em consideração se a palavra aparece ou não no documento. Após os documentos pertencentes a um cluster serem considerados um documento único e o TF-IDF ser aplicado. Assim, para cada tópico, identificamos as palavras mais relevantes, que deveriam ter o maior c-TF-IDF.
Exemplo de BERTópico
Repetimos a análise no mesmo conjunto de dados.
Vamos extrair os tópicos das avaliações usando BERTopic:
model_path_bad = 'model/bert_bad'
topic_model_bad = train_bert(docs_bad,model_path_bad)
freq_df = topic_model_bad.get_topic_info()
print("Number of topics: {}".format( len(freq_df)))
freq_df['Percentage'] = round(freq_df['Count']/freq_df['Count'].sum() * 100,2)
freq_df = freq_df.iloc[:,[0,1,3,2]]
freq_df.head()
A tabela retornada pelo modelo fornece informações sobre os 14 tópicos extraídos. O tópico corresponde ao identificador do tópico, exceto todos os valores discrepantes ignorados e rotulados como -1.
Agora vamos passar para a parte mais interessante referente à visualização de nossos tópicos em gráficos interativos, como a visualização dos termos mais relevantes para cada tópico, o mapa de distância intertópico, a representação bidimensional do espaço de incorporação e a hierarquia de tópicos.
Vamos começar a mostrar os gráficos de barras dos dez principais tópicos. Para cada tópico podemos observar as palavras mais importantes, ordenadas em ordem decrescente com base na pontuação c-TF-IDF. Quanto mais uma palavra for relevante, maior será a pontuação.
O primeiro tópico contém palavras genéricas, como localização e comida, tópico 1 pedir e esperar, tópico 2 pior e serviço, tópico 3 lugar e sujo, e assim por diante.
Depois de visualizar os gráficos de barras, é hora de dar uma olhada no mapa de distância intertópico. Reduzimos a dimensionalidade da pontuação c-TF-IDF em um espaço bidimensional para visualizar os tópicos em um gráfico. Na parte inferior, há um controle deslizante que permite selecionar o tema que será colorido em vermelho. Podemos perceber que os temas estão agrupados em dois clusters distintos, um com temáticas genéricas como comida, frango e localização, e outro com diferentes aspectos negativos, como pior atendimento, sujo, local e frio.
O próximo gráfico permite ver a relação entre as resenhas e os temas. Em particular, pode ser útil entender por que uma avaliação é atribuída a um tópico específico e está alinhada com as palavras mais relevantes encontradas. Por exemplo, podemos focar no cluster vermelho, correspondente ao tópico 2 com algumas palavras sobre o pior serviço. Os documentos nesta área densa parecem bastante negativos, como “Péssimo atendimento ao cliente e comida ainda pior”.
À primeira vista, essas abordagens têm muitos aspectos em comum, como encontrar automaticamente o número de tópicos, não haver necessidade de pré-processamento na maioria dos casos, a aplicação de UMAP para reduzir a dimensionalidade dos embeddings de documentos e, então, HDBSCAN é usado para modelar essas incorporações reduzidas de documentos, mas elas são fundamentalmente diferentes quando se observa a forma como atribuem os tópicos aos documentos.
Top2Vec cria representações de tópicos encontrando palavras localizadas próximas ao centróide de um cluster.
Diferentemente do Top2Vec, o BERTopic não leva em consideração o centróide do cluster, mas considera todos os documentos de um cluster como um documento único e extrai representações de tópicos usando uma variação baseada em classes do TF-IDF.
Top2Vec | BERTópico |
A estratégia para extrair tópicos com base nos centróides do cluster. | A estratégia para extrair tópicos baseados em c-TF-IDF. |
Não oferece suporte à modelagem dinâmica de tópicos. | Suporta modelagem dinâmica de tópicos. |
Ele cria nuvens de palavras para cada tópico e fornece ferramentas de busca por tópicos, documentos e palavras. | Permite a construção de gráficos de visualização interativa, permitindo a interpretação dos tópicos extraídos. |
A Modelagem de Tópicos é um campo crescente de Processamento de Linguagem Natural e há inúmeras aplicações possíveis, como avaliações, áudio e postagens em mídias sociais. Como foi mostrado, este artigo fornece uma visão geral de Topi2Vec e BERTopic, que são duas abordagens promissoras, que podem ajudá-lo a identificar tópicos com poucas linhas de código e interpretar os resultados através de visualizações de dados. Se você tiver dúvidas sobre essas técnicas ou tiver outras sugestões sobre outras abordagens para detectar tópicos, escreva nos comentários.
Eugênia Anello atualmente é pesquisador do Departamento de Engenharia da Informação da Universidade de Pádua, Itália. Seu projeto de pesquisa é focado em Aprendizagem Contínua combinada com Detecção de Anomalias.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. Acesse aqui.
- Fonte: https://www.kdnuggets.com/2023/01/topic-modeling-approaches-top2vec-bertopic.html?utm_source=rss&utm_medium=rss&utm_campaign=topic-modeling-approaches-top2vec-vs-bertopic
- 1
- 10
- 100
- 7
- a
- Capaz
- Sobre
- Conta
- Ad
- endereço
- Depois de
- algoritmo
- algoritmos
- alinhado
- Todos os Produtos
- alocação
- Permitindo
- permite
- quantidades
- análise
- analisar
- e
- detecção de anomalia
- Outro
- Aplicação
- aplicações
- aplicado
- abordagem
- se aproxima
- ÁREA
- áreas
- argumentos
- artigo
- aspectos
- atribuído
- auditivo
- automaticamente
- disponível
- Mau
- Barra
- baseado
- Porque
- entre
- Inferior
- Pequeno-Almoço
- Prédio
- Constrói
- cálculo
- chamado
- não podes
- capaz
- capturar
- casos
- cadeia
- característica
- charts
- escolhido
- Cidades
- clássico
- Fechar
- mais próximo
- Agrupar
- agrupamento
- código
- Café
- combinado
- comentários
- comum
- queixas
- considerado
- considerando
- contém
- contexto
- convencional
- Correspondente
- corresponde
- crio
- criado
- cria
- Criar
- criação
- copo
- Atualmente
- cliente
- Atendimento ao Cliente
- dados,
- dia
- lidar
- demonstraram
- Departamento
- Detecção
- determina
- diferente
- distância
- Distante
- Divergir
- documento
- INSTITUCIONAIS
- Não faz
- desvantagens
- distância
- dirigir através
- dinâmico
- cada
- facilmente
- em outro lugar
- incorporado
- Engenharia
- Mesmo
- exemplo
- Exceto
- explicado
- extrato
- Extractos
- extremamente
- RÁPIDO
- companheiro
- poucos
- campo
- Encontre
- descoberta
- Primeiro nome
- Foco
- focado
- comida
- encontrado
- da
- fundamentalmente
- Geral
- gerar
- gerado
- ter
- Global
- Go
- vai
- gráfico
- gráficos
- Crescente
- ajudar
- hierarquia
- Alta
- superior
- mais
- HTTPS
- idéia
- identificação
- identificador
- identificar
- identificar
- importar
- importante
- melhorar
- in
- INFORMAÇÕES
- em vez disso
- interativo
- interessante
- interpretação
- IT
- Itália
- KDnuggetsGenericName
- manutenção
- Saber
- O rótulo
- língua
- grande
- aprendizagem
- aproveita as
- Line
- linhas
- Lista
- local
- localizado
- localização
- locais
- olhar
- procurando
- a Principal
- muitos
- mapa,
- Matriz
- MCDONALD
- significativo
- Mídia
- modelo
- modelagem
- modelagem
- modelos
- mais
- a maioria
- multinacional
- nome
- natural
- Linguagem Natural
- Processamento de linguagem natural
- você merece...
- negativo
- Próximo
- Ruído
- número
- numeroso
- observar
- obtido
- ONE
- ordem
- original
- Outros
- pandas
- parâmetro
- parte
- particular
- percentagem
- realizar
- Frases
- Lugar
- platão
- Inteligência de Dados Platão
- PlatãoData
- ponto
- possível
- POSTAGENS
- poderoso
- presente
- anterior
- anteriormente
- em processamento
- Produzido
- Produtos
- projeto
- promissor
- fornecido
- fornece
- qualidade
- Frequentes
- razão
- Vermelho
- reduzir
- Reduzido
- redução
- em relação a
- relacionamento
- Relacionamentos
- relevante
- repetir
- representação
- representante
- representa
- pesquisa
- Resultados
- revelar
- rever
- Opinões
- mesmo
- Pesquisar
- pesquisar
- selecionando
- serviço
- rede de apoio social
- mostrar
- mostrando
- Vista
- semelhante
- Similarmente
- desde
- solteiro
- deslizante
- lento
- So
- Redes Sociais
- meios de comunicação social
- Publicações nas redes sociais
- alguns
- Espaço
- especializado
- específico
- divisão
- Passo
- Passos
- Estratégia
- estrutura
- tal
- Sugere
- aprendizagem supervisionada
- ajuda
- suportes
- mesa
- Tire
- toma
- técnicas
- dez
- condições
- A
- Lá.
- três
- Através da
- tempo
- para
- tokenized
- ferramentas
- topo
- Top dez
- tópico
- Temas
- transformadores
- tutorial
- típico
- subjacente
- compreender
- único
- universidade
- Estados Unidos
- usar
- Valioso
- Valores
- Variante
- visualização
- esperar
- qual
- enquanto
- Enquanto
- precisarão
- dentro
- Word
- palavras
- o pior
- escrever
- Errado
- zefirnet