Descobrindo tópicos relevantes em texto usando o RapidMiner e o algoritmo de clustering

Marketing + Data Science

Descobrindo tópicos relevantes em texto usando o RapidMiner e o algoritmo de clustering

8th maio 2018 Data Science Produção de Conteúdo RapidMiner 0

Eu quero compartilhar uma implementação usando o RapidMiner que se mostrou muito útil para um problema real de trabalho que estamos resolvendo.

Estamos fazendo um trabalho para uma empresa de cosméticos e nosso desafio é extrair conhecimento dos milhares de comentários gerados no Facebook sobre um determinado produto dessa empresa.

Uma abordagem inicial é a classificação do sentimento. Para essa abordagem, usamos nosso próprio processo dentro do RapidMiner. Nós não usamos nenhuma API de terceiros porque todo o trabalho é baseado na língua portuguesa e eu nunca encontrei nenhuma API que tivesse um resultado melhor do que a nossa implementação (eu já testei algumas APIs …).

O ponto é que, entre outras métricas que geramos, uma muito importante foi derivada da aprendizagem supervisionada baseada na análise do sentimento: quais são os tópicos mais relevantes em cada um dos classificadores?

Entenda que, neste momento, não preciso saber se os comentários falam de política ou esporte. Existem APIs que seguem essa abordagem (como a Rosette), mas isso não resolve o problema proposto. Eu preciso extrair qual tipo de tratamento capilar não funciona bem, por exemplo. Mas como fazer isso sem gerar uma implementação altamente personalizada e cara?

Tendo a avaliação do sentimento feito, você pode procurar indícios de maus tratamentos para o cabelo em comentários negativos, o problema é que isso pode fazer você ler alguns milhares de comentários. Uma abordagem para essa questão é o processo de tokenização, mas isso também pode levar ao caos. Por mais que você descubra os termos que se concentraram mais nesses comentários (e isso já dá algumas dicas), você não pode extrair combinações de palavras e encontrar os tópicos mais relevantes.

A maneira que eu encontrei para resolver este problema, e este é o ponto crucial que gostaria de compartilhar aqui, foi usando o operador de clustering K-Means. Ao receber apenas os comentários negativos, o que esse operador fez foi dividir os comentários em clusters. Quando você observa os resultados gerados e acessa a visualização da Tabela Centroid, é possível ver em cada cluster os tokens (ou termos) mais relevantes em cada um deles. Isso permite que você entenda rapidamente o que é predominante em cada um dos clusters.

Mas isso só funcionou bem devido ao trabalho de lidar com os comentários, baseado em palavras-chave, tokenize e outros filtros para manipular dados não estruturados. Eles são realmente essenciais. Eu fiz comparações entre K-Means e K-Medoids e K-Means funcionou melhor. Aqui está um artigo que pode ajudá-lo a entender melhor o comportamento do K-Means (só em português, mas deve haver outros tão bons em inglês). Um ponto de melhoria para essa abordagem pode envolver como determinar o número de clusters (a variável K), usando abordagens como o Método Cotovelo. No momento, a observação entre um número maior de K e a geração de clusters muito específica e sem muita utilidade era suficiente. Cinco clusters funcionaram bem para mim.

Um ponto que merece atenção é o quanto esta abordagem funcionará bem com o crescimento do número de comentários e em outros mercados. Pode ser necessário testar o número de clusters e o comportamento em outros tipos de construções textuais.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

www.000webhost.com