Análise de sentimentos é uma das áreas mais interessantes do processamento de linguagem natural, subcampo da inteligência artificial (IA) dedicado a permitir que máquinas entendam a linguagem humana. Existem várias formas de realizar análise de sentimentos, incluindo desde o uso de regras simples até modelos de deep learning avançados com redes do tipo Transformers. Esse último tipo costuma ter um desempenho melhor e ser mais versátil do que sistemas tradicionais de regras. Porém, treiná-los é uma tarefa difícil. Mas, para esses casos, sempre podemos contar com a Huging Face Transformes.
Hugging Face Transformers
Hugging Face Transformers é uma biblioteca Python de código aberto. Ela simplifica o trabalho com modelos pré-treinados de última geração para várias tarefas de processamento de linguagem natural, incluindo análise de sentimento. Ela fornece uma interface amigável para acessar milhares de modelos pré-treinados em um enorme hub on-line, o Hugging Face Hub. Também vale mencionar que a Hugging Face Transformers abstrai as complexidades da arquitetura dos modelos de deep learning. Isso facilita o acesso a modelos avançados, mesmo para desenvolvedores com menos experiência.
Por que usar um modelo pré-treinado para análise de sentimento?
Modelos pré-treinados como o famoso DistilBERT já foram treinados em vastas quantidades de dados para capturar relações complexas entre as palavras e seus sentimentos. Isso elimina a necessidade de treinar um modelo do zero, economizando tempo e recursos computacionais significativos. Adicionalmente, modelos pré-treinados geralmente superam modelos treinados em conjuntos de dados menores. Sua exposição a uma gama mais ampla de textos permite que eles generalizem melhor. Consequentemente, eles lidam com dados não vistos de forma mais eficaz, levando a uma análise de sentimento mais precisa.
Bibliotecas
Para usar a Hugging Face Transformers é preciso instalá-la e ela requer PyTorch também. A instalação do PyTorch varia muito de sistema para sistema, portanto, consulte a documentação oficial. As instalações devem ser feitas preferencialmente em um ambiente virtual ou opte pelo Colab. Para instalar a Hugging Face Transformers:
pip install transformers
Para outras opções de instalação, consulte esse link.
Análise de sentimentos com Hugging Face Transformers em código
A análise de sentimentos com a Hugging Face Transformers é super simples. Basta selecionar um modelo e começar a usá-lo ou personalizá-lo com ajuste fino se essa for a sua necessidade. Para esse post, usaremos o modelo descrito aqui. Não precisa baixá-lo. Esse modelo é uma versão destilada do BERT específica para análise de sentimentos.
Num código Python, primeiro importamos o pacote necessário e selecionamos o modelo:
from transformers import pipeline
model = pipeline(model="lxyuan/distilbert-base-multilingual-cased-sentiments-student", top_k=None)
Depois aplicamos o modelo e… Pronto! É fácil desse jeito.
texto = "Eu adoro a Hugging Face!"
res = model(texto)
print(f"A sentença é {round(res[0][0]['score']*100, 2)}% {res[0][0]['label']}, {round(res[0][1]['score']*100, 2)}% {res[0][1]['label']} e {round(res[0][2]['score']*100, 2)}% {res[0][2]['label']}.")
# resultado: A sentença é 82.08% positive, 12.02% negative e 5.9% neutral.
Note que a saída do modelo consiste em três valores de pontuações diferentes: positivo, neutro e negativo. Veja seu desempenho com outras frases:
exemplos = ["Eu amei esse exemplo", "Eu odiei esse exemplo", "Tchau, estou indo"]
for exemplo in exemplos:
res = model(exemplo)
result = f"A sentença é {round(res[0][0]['score']*100, 2)}% {res[0][0]['label']}, {round(res[0][1]['score']*100, 2)}% {res[0][1]['label']} e {round(res[0][2]['score']*100, 2)}% {res[0][2]['label']}."
print(result)
# resultados
# A sentença é 51.64% positive, 26.44% negative e 21.92% neutral.
# A sentença é 90.28% negative, 5.59% neutral e 4.12% positive.
# A sentença é 57.1% positive, 25.58% negative e 17.31% neutral.
Super simples!