1️ Instalar uma biblioteca
pip install pysentimento wordcloud matplotlib pandas
2️ Importar bibliotecas e criar o implementar
import pandas as pd import matplotlib.pyplot as plt from pysentimiento import create_analyzer from wordcloud import WordCloud
Criando o modelo de análise de sentimentos em português:
analisador = criar_analisador ( tarefa = "sentimento" , idioma = "pt" )
3️ Carregar os dados
url = "https://raw.githubusercontent.com/alura-cursos/hugging_face/main/Atividades/resenhas_produto.csv" df = pd . read_csv( url )
Visualizar as primeiras linhas:
df.head ( )
4️ Classificar os sentimentos
Supondo que a coluna de resenhas se chama "resenha"(confirme com df.columns):
df [ "sentimento" ] = df [ "resenha" ] . apply( lambda texto : analisar . predizer( texto ) . output )
Agora o DataFrame terá:
resenha
sentimento (POS, NEG, NEU)
5️ Criar gráficos de distribuição de sentimentos
contagem = df["sentimento"].value_counts()
plt.figure()
contagem.plot(kind="bar")
plt.title("Distribuição de Sentimentos")
plt.xlabel("Sentimento")
plt.ylabel("Quantidade")
plt.show()
Isso permite:
positivos
Quantos negativos
Quantos neutros
6️ Criar nuvem de palavras
Filtrar positivos
texto_positivo = " ".join(df[df["sentimento"] == "POS"]["resenha"])
wordcloud_pos = WordCloud(width=800, height=400, background_color="white").generate(texto_positivo)
plt.figure()
plt.imshow(wordcloud_pos)
plt.axis("off")
plt.title("Palavras mais frequentes - Avaliações Positivas")
plt.show()
Filtrar negativos
texto_negativo = " ".join(df[df["sentimento"] == "NEG"]["resenha"])
wordcloud_neg = WordCloud(width=800, height=400, background_color="white").generate(texto_negativo)
plt.figure()
plt.imshow(wordcloud_neg)
plt.axis("off")
plt.title("Palavras mais frequentes - Avaliações Negativas")
plt.show()
Interpretação dos Resultados
Sentimentos Positivos
Normalmente aparecem palavras como:
ótimo
excelente
prático
potente
recomendo
Indica satisfação com:
desempenho
portabilidade
custo-benefício
Sentimentos Negativos
Podem aparecer termos como:
fraco
bateria
defeito
ruim
corte
Indica possíveis problemas como:
potência
durabilidade
qualidade do material