Análise de sentimentos utilizando Machine Learning

Análise de Sentimentos com Machine Learning

O crescimento e a popularização das redes sociais trouxe uma grande quantidade de dados, que são muito valiosos para as empresas que desejam entender melhor o comportamento dos seus consumidores.

Nesse contexto, os profissionais que trabalham com ciência de dados desenvolveram ferramentas para gerar informações e insights a partir desses dados. Uma dessas ferramentas é a análise de sentimentos.

Com a proliferação de opiniões, comentários e avaliações, a imagem das empresas está cada vez mais exposta nas redes. Além disso, identificar novas oportunidades de mercado passou a ser meta das áreas de tecnologia e de negócio.

A análise de sentimentos é uma mineração contextual de um texto que identifica e extrai informações subjetivas no material de origem. Ajuda as empresas a entenderem o sentimento social de sua marca, produto ou serviço.

Um sistema de análise de sentimentos para análise de texto combina o processamento de linguagem natural (PLN) e técnicas de aprendizado de máquina para atribuir pontuações ponderadas de sentimento às sentenças.

Com os recentes avanços na aprendizagem profunda, conhecida como Deep Learning, a capacidade dos algoritmos de analisar textos melhorou consideravelmente. O uso de técnicas avançadas de inteligência artificial se tornou eficaz para identificar sentimentos de usuários na web.

Para as empresas, é importante classificar conversas de clientes sobre uma marca com base nas seguintes linhas:

  • Aspectos-chave do produto que os clientes gostam;
  • Intenções subjacentes dos usuários e reações relativas a esses aspectos.

Esses conceitos básicos, quando usados ​​em combinação, tornam-se ferramentas muito importantes para que as empresas possam analisar milhões de conversas com precisão estatística significativa.

Neste artigo, abordaremos a análise de sentimentos, uma ferramenta importante para gerar insights a partir do que as pessoas publicam na internet.

 

O que é análise de sentimentos?

Quando uma empresa deseja entender o que estão falando sobre ela e qual a reputação de seus produtos online, uma das formas de se fazer isso é utilizando machine learning. Nesse sentido, uma das técnicas recomendadas é a análise de sentimentos, que consiste em extrair informações de textos a partir de linguagem natural.

O objetivo dessa técnica é classificar sentenças, ou um conjunto de sentenças, como positivas, negativas ou neutras. Essa classificação é realizada automaticamente e extrai informações subjetivas de textos, criando conhecimento estruturado que pode ser utilizado por um sistema. Vejamos um exemplo abaixo:

Análise de Sentimento

Apesar de não ser a única, a análise de sentimentos é a ferramenta de classificação de textos mais comum que analisa uma mensagem recebida e informa seu sentimento subjacente. Você pode inserir uma sentença de sua escolha e avaliar o sentimento com essa ferramenta.

A análise de sentimentos é uma das áreas de pesquisa mais destacadas em Processamento de Linguagem Natural. Desde o início dos anos 2000, se tornou uma área muito ativa devido a explosão das redes sociais. Entretanto, esse tema não tem ficado restrito à ciência da computação, atingido outras áreas.

Veja o crescimento do termo “Sentiment Analysis” no Google Trends:

Trends - Sentiment Analysis

 

Principais aplicações

A análise de sentimentos ajuda os analistas de dados de grandes empresas a avaliar a opinião pública, realizar pesquisas de mercado, monitorar a reputação de marcas e produtos e compreender as experiências dos clientes.

Empresas de análise de dados geralmente integram APIs de análise de sentimento de terceiros em seu próprio gerenciamento de experiência do cliente, monitoramento de mídia social ou plataforma de análise da força de trabalho, para fornecer informações úteis a seus próprios clientes.

 

Processo de Análise:

Uma análise básica de sentimentos, a partir de documentos de texto, segue um processo relativamente simples:

  • Divide cada documento de texto em suas partes componentes: sentenças, frases, fragmentos de discurso, etc.;
  • Identifica cada sentimento associado a uma frase ou componente;
  • Atribui uma pontuação de sentimento a cada frase ou componente, indo de -1 até +1;
  • Avançado: Combina pontuações para análise de sentimentos em várias camadas.

Todas as palavras que você aprendeu, assim como suas utilizações em diferentes contextos, foram sendo construídas em seu cérebro a partir de suas experiências. Isso possibilitou entender a força de cada adjetivo, recebendo sugestões e feedback de professores, colegas e familiares ao longo do caminho.

Quando você lê uma frase, seu cérebro baseia-se no seu conhecimento acumulado para identificar, em cada uma delas, um sentimento associado. Dessa forma, você consegue identificar e interpretar o grau de negatividade ou positividade no significado de uma sentença.

Geralmente isso acontece subconscientemente. Por exemplo, você sabe instintivamente que uma “vitória esmagadora” possui um sentimento positivo, enquanto que “ser esmagado por um carro” possui um sentimento negativo associado.

Na análise de sentimentos de um computador, o funcionamento é quase da mesma maneira!

 

Qual o melhor algoritmo para fazer a análise de sentimentos?

A tarefa de analisar sentimentos em textos pode ser feita de diferentes formas via machine learning, utilizando processamento de linguagem natural (PLN). Além disso, a cada dia surgem abordagens novas para tratar dessa questão.

Uma das formas mais utilizadas para tratar desse problema é por meio do algoritmo de Naive Bayes, um classificador probabilístico simples que parte da premissa que há independência entre as features do modelo. Ou seja, ele recebe o nome de “naive” (ingênuo) porque desconsidera a correlação entre as variáveis (features).

Exemplo: na frase “Eu amo meus pais, mas hoje o dia está horrível” o classificador assume que as palavras dessa frase não dependem uma da outra. Sendo assim, a polaridade de uma sentença pode ser positiva caso a maioria das palavras tenham uma probabilidade maior de serem positivas.

Outra forma de classificação, semelhante ao Naive Bayes, é utilizando SVM (Support Vector Machine) ou Maxent Classifier para treinamento. Entretanto, essas abordagens estão lentamente se tornando coisas do passado.

Técnicas mais avançadas para identificação de contexto estão utilizando Deep Learning, que pode fazer extrações de contexto automaticamente. Assim, as dificuldades relativas à compreensão do texto são eliminadas.

Com essa etapa resolvida, o problema é convertido em uma simples classificação/regressão, dependendo do que exatamente você deseja prever.

 

Conceitos e termos

Além de entender o funcionamento desse tipo de análise, é preciso compreender os termos e conceitos associados à detecção de sentimentos. Vejamos os principais:

 

Pré-Processamento

Uma das etapas mais importantes do processo de aprendizado de máquinas é o pré-processamento. E isso não é diferente na análise de sentimentos.

O pré-processamento do texto consiste em transformar a base de dados original em um formato mais conveniente para o processamento computacional. Umas dessas etapas é a remoção de stopwords, que são palavras que não vamos considerar em nossa análise como “o”, “e”, “a”, “de”, “que”, “do”, etc. Essas palavras são eliminadas pois não apresentam informações relevantes para a construção do modelo analisado , apenas definem ou articulam ideias.

 

Stemming

É a técnica que reduz um termo ao seu radical, removendo afixos e vogais temáticas. Um do seus objetivos é reduzir a quantidade de palavras na base de dados. Um vocabulário menor permite maior velocidade de processamento e menor número de erros causados por combinações não previstas.

Veja os exemplos:

Frequentemente se torna “Frequent”
Copiar se torna “Copi”

 

Pesquisa Semântica Contextual (CSS)

Para obter insights que gerem algum tipo de resultado prático, é importante entender em que aspecto da marca um usuário está discutindo.

No caso de uma empresa como a Amazon, ela provavelmente gostaria de isolar mensagens relacionadas a entregas atrasadas, problemas de faturamento, consultas relacionadas a promoções e análises de produtos. Já no caso da Starbucks, ela provavelmente gostaria de classificar as mensagens com base no comportamento dos funcionários, novos sabores do café, feedback de higiene, pedidos on-line, nome e localização da loja, etc.

Uma abordagem convencional para filtrar todas as mensagens relacionadas a “Preço” é fazer uma pesquisa de palavras-chave para essa e outras palavras relacionadas, como preço, cobrança, $, pago. Esse método, no entanto, não é muito eficaz, pois é quase impossível pensar em todas as palavras-chave relevantes e suas variantes que representam um conceito específico.

Para fazer isso, é utilizado o algoritmo de busca inteligente chamado Contextual Semantic Search (pesquisa semântica contextual), também conhecido como CSS.

Esse algoritmo utiliza milhares de mensagens e um único atributo (“Preço”, por exemplo) como entrada. Após isso, ele filtra todo o contexto similar, mesmo quando as variantes óbvias da palavra-chave não são mencionadas.

 

Polaridade

Polaridade representa o grau de positividade e negatividade de um texto. Geralmente é o resultado da análise, podendo ser binário (positivo ou negativo) ou ternário (positivo, negativo ou neutro). Veja o exemplo abaixo:

– “Carol está muito bonita hoje” é Positivo
– “Estou tendo um péssimo dia” é Negativo
– “O Natal é amanhã” é Neutro

 

Força do sentimento

A frpça de um sentimento representa a intensidade de um sentimento, normalmente um número móvel entre (-1 e 1). É utilizado como métrica, pois ajuda a captar se o sentimento analisado em uma frase é positivo ou muito positivo, por exemplo. Isso dá maior eficiência para a análise.

 

Análise de Emoções

Embora seja muito confundida com análise de sentimentos, não são sinônimos. É um método utilizado para classificar um sentimento específico, como raiva, surpresa e felicidade, presente em uma mensagem.

Utilizada pela análise de sentimentos, a abordagem Léxica Emolex [Mohammad and Turney, 2013], por exemplo, descreve 9 sentimentos em sentenças em inglês. São eles: joy, sadness, anger, fear, trust, disgust, surprise, anticipation, positive, negative.

Além da identificação da emoção preponderante, também é comum analisar o percentual identificado para cada uma das outras. Veja o exemplo abaixo:

 
Análise de Emoções

 

Subjetividade vs. Objetividade

A capacidade de classificar uma sentença a partir de um sentimento pré-determinado, eventualmente, pode não atingir o resultado esperado. Em muitos desses casos o sistema de análise pode estar misturando sentenças objetivas com sentenças subjetivas, que devem ser interpretadas de formas distintas.

De modo geral, para não comprometer a análise, textos objetivos não podem ser misturados com textos subjetivos, que são mais comuns em publicações em redes sociais.

E aí, curtiu esse artigo? Então deixe um comentário com a sua opinião. Caso deseje se aprofundar no assunto, recomendo um artigo acadêmico sobre Métodos para Análise de Sentimentos em mídias sociais.

About the Author: Pedro César Tebaldi Gomes

Atua há 8 anos no mercado de tecnologia da informação, com foco em B2B. Estuda Data Science, Blockchain e tecnologias emergentes para atingir melhores resultados de negócios.

Deixe uma resposta