A análise de sentimentos categoriza computacionalmente as emoções subjacentes em textos para determinar se seu conteúdo é positivo, negativo ou neutro. Ela tem inúmeras aplicações e várias formas de implementação. Neste post, mostraremos uma implementação muito simples em Python usando a biblioteca LeIA.
LeIA é uma biblioteca para análise de sentimentos em português. Segundo a descrição oficial:
LeIA (Léxico para Inferência Adaptada) é um fork do léxico e ferramenta para análise de sentimentos VADER (Valence Aware Dictionary and sEntiment Reasoner) adaptado para textos em português, com suporte para emojis e foco na análise de sentimentos de textos expressos em mídias sociais – mas funcional para textos de outros domínios.
Como mencionado acima, LeIA é um fork do VADER e preserva a API original. Portanto, para entender o que essa biblioteca é exatamente, é preciso conhecer um pouco sobre o VADER.
O que é VADER?
VADER é uma ferramenta de análise de sentimentos que funciona com um dicionário embutido de palavras e frases, juntamente com regras para determinar suas intensidades de sentimentos. Ele foi desenvolvido para analisar principalmente textos de mídia social. Por isso, ele é eficaz para analisar linguagem informal com gírias, emojis, etc.
Como o VADER não usa machine learning, ele não é uma ferramenta perfeita e pode ter dificuldades com cenários complexos. Porém, ele tem algumas vantagens que compensam essa limitação. O VADER é muito fácil de configurar e usar. Ele é bom para as redes sociais e gera resultados rapidamente. Além disso, devido à sua natureza baseada em regras, ele é interpretável.
Como VADER funciona
VADER tem um vasto dicionário de palavras, frases, emoticons e gírias pontuadas como positivas, negativas ou neutras. Ele utiliza esse dicionário e algumas regras gramaticais e sintáticas para entender o contexto de textos. Ele analisa textos e atribui pontuações. As pontuações possuem quatro valores: positivo (pos), negativo (neg), neutro (neu) e composto (compound). Os três primeiros se referem à porcentagem do texto que se enquadra em cada categoria. Já a pontuação composta mede o sentimento geral do texto em uma escala de -1 (extremamente negativo) a +1 (extremamente positivo).
Análise de sentimentos com LeIA
A biblioteca LeIA funciona como o VADER. Para usá-la, é preciso fazer a instalação com pip.
pip install leia-br
Depois, num código Python, importamos a ferramenta de análise e fazemos sua inicialização.
from LeIA import SentimentIntensityAnalyzer
analyzer = SentimentIntensityAnalyzer()
Em seguida, criamos uma pequena função que recebe um texto como entrada, faz a sua análise, interpreta o resultado obtido e o imprime.
def analyze_sentiment(text):
'''Função que recebe um texto como entrada, analisa seu sentimento e interpreta o resultado'''
sentiment = analyzer.polarity_scores(text)
compound_score = sentiment['compound']
if compound_score >= 0.05:
print("Sentimento Geral: Positivo")
elif compound_score <= -0.05:
print("Sentimento Geral: Negativo")
else:
print("Sentimento Geral: Neutro")
Nessa função, primeiro realizamos a análise de sentimentos. Em seguida, extraímos a pontuação composta (compound_score) que mede o sentimento geral do texto. Esse resultado é interpretado conforme as instruções presentes na documentação da biblioteca.
Alguns Testes
Agora precisamos testar algumas frases. Não é preciso fazer pré-processamento de textos.
textos = ['Eu estou feliz', 'Eu odeio chuva', 'Que dia feio', 'Vamos pra praia?', 'Eu gosto de limonada']
for i in range(len(textos)):
analyze_sentiment(textos[i])
Aqui estão os resultados obtidos.
Sentimento Geral: Positivo
Sentimento Geral: Negativo
Sentimento Geral: Negativo
Sentimento Geral: Neutro
Sentimento Geral: Positivo
Pronto! Nossa ferramenta de análise de sentimentos super fácil está concluída.