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. Ela ajuda as empresas a entenderem o sentimento social de sua marca, produto ou serviço.

Um sistema de análise de sentimentos para conteúdo textual 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 ou não gostam;
  • Intenções subjacentes (implícitas) dos usuários.

Esses conceitos, 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, assim como sua subárea chamada Deep 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 o 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 implícito. 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, atingindo diversas outras áreas.

→ 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 seus consumidores ou potenciais clientes.

Essa a análise pode ser bem utilizada em qualquer estrutura de dados que contenham conteúdo textual que seja de alguma forma padronizado. Entre os exemplos de ferramentas que poderiam ser utilizadas como bases de dados poderíamos citar:

  • Redes sociais;
  • Portais de Serviço de Atendimento ao Consumidor;
  • Sistemas de Service Desk;
  • Sistemas de Reviews e Avaliações;
  • Entre muitos outros.

 

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 com a polaridade de sentimento a cada frase, indo de -1 até +1;
  • Avançado: Combina pontuações para análise de sentimentos em várias camadas (deep learning).

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

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

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

Na análise de sentimentos de um computador, o funcionamento é quase o mesmo!

 

Algoritmos para 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, como Deep Learning, para tratar dessa questão.

Uma das formas mais antigas 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 características (features) de um modelo. Ou seja, ele recebe o nome de “naive” (ingênuo) porque desconsidera a correlação entre as variáveis.

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 umas das outras. 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 bastante reduzidas.

Com o contexto identificado, o problema é convertido em uma simples classificação/regressão, dependendo do que exatamente se 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 de um 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 devem ser consideradas na 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. A redução de vocabulário permite maior velocidade de processamento e menor número de erros causados por combinações não previstas.

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 sobre a higiene do ambiente, 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. É 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

A Polaridade representa o grau de positividade ou negatividade de um texto. Geralmente é o resultado da análise, podendo ser binário (positivo ou negativo) ou ternário (positivo, negativo ou neutro). Confira 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 força de um sentimento representa a intensidade de um sentimento, normalmente um número móvel entre (-1 e 1). É utilizada 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. A análise de emoções é um método utilizado para classificar uma emoção específica, como raiva, surpresa e felicidade, presente em uma mensagem.

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

Além da identificação da emoção preponderante, também é comum analisar o percentual identificado para cada uma das outras. Confira 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. Mas é claro, isso tudo depende da abordagem utilizada para realizar a análise.

 
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.

Avatar

About the Author: Pedro César Tebaldi Gomes

Atua há 8 anos no mercado B2B de tecnologia da informação como gerente de marketing, tendo escrito mais de 300 artigos sobre tecnologia durante esse período. Estuda ciência de dados, machine learning e estatística para atingir melhores resultados de negócios.

6 Comments

  1. Pedro, parabéns pelo artigo, muito objetivo, simples e de fácil entendimento. Muito obrigado. Vou acessar o artigo acadêmico recomendado, pois talvez seja um bom tema para a minha dissertação no mestrado de Gestão de Sistemas de Informação. Muito interessante!

  2. Fico feliz que tenha gostado Paulo! Esse tema tende a ganhar cada vez mais importância, está apenas engatinhando. Pode ser um ótimo tema.

  3. Olá, tudo bem? Preciso muito identificar nos relatos registrados no meu call center se tem a ver com: preço, concorrência, serviço.. etc. Qual ferramenta poderíamos obter no mercado para fazer esta classificação?

    1. Olá Valeria! Tenho percebido essa necessidade para atendimento ao cliente, quando existe um grande volume de chamados e os atendentes precisam fazer classificação manual. Não conheço nenhuma ferramenta de mercado pronta para fazer isso. Existe uma API chamada Paralleldots https://www.paralleldots.com/text-classification que faz essa classificação. Acho que ela também funciona em português, mas, no caso de um callcenter, existe a necessidade de treinamento do sistema para aprender com os temas mais comuns e as possíveis variações de um mesmo tema. Mas para isso precisaria de desenvolvimento de um sistema para consumir essa API.

Deixe uma resposta

Análise de Sentimentos com Machine Learning

tempo de leitura: 11 min