1
resposta

analisando sentimentos de avaliações de outro produto

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

1 resposta

Oi, Moacir! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Você estruturou muito bem o fluxo completo: instalação das bibliotecas, criação do analisador, classificação dos sentimentos e visualização com gráficos e nuvem de palavras. A parte de separar positivos e negativos para interpretar padrões ficou bem organizada e mostra que você entendeu não só o uso do modelo, mas também a análise dos resultados.

Uma dica interessante para o futuro é utilizar o método value_counts(normalize=True) para visualizar a proporção dos sentimentos em percentual. Veja este exemplo:


contagem = df["sentimento"].value_counts(normalize=True)

print(contagem)

Esse código calcula a porcentagem de cada sentimento no conjunto de dados, ajudando a interpretar melhor o impacto geral das avaliações.

Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!