Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Desafio Sentimentos

import pandas as pd
!pip install groq
from groq import Groq
from google.colab import userdata

groq_api_key = userdata.get('Groq')
client = Groq(api_key=groq_api_key)
df = pd.read_csv("novo_reviews.csv")
print("Available columns:", df.columns.tolist())

def classificar_sentimento(review):
prompt = f"""
Classifique o sentimento da avaliação abaixo em apenas uma palavra:
Positivo, Negativo ou Neutro.

Avaliação: {review}
"""

resposta = client.chat.completions.create(
    model="llama-3.3-70b-versatile",
    messages=[
        {"role": "user", "content": prompt}
    ],
    temperature=0
)
return resposta.choices[0].message.content.strip().capitalize()

df["Sentimento"] = df["reviewText"].apply(classificar_sentimento)
print(df.head())
df.to_csv(
"Reviews_Classificadas.csv",
index=False,
encoding="utf-8"
)

print("Arquivo Reviews_Classificadas.csv gerado com sucesso!")

Requirement already satisfied: groq in /usr/local/lib/python3.12/dist-packages (1.4.0)
Requirement already satisfied: anyio<5,>=3.5.0 in /usr/local/lib/python3.12/dist-packages (from groq) (4.13.0)
Requirement already satisfied: distro<2,>=1.7.0 in /usr/local/lib/python3.12/dist-packages (from groq) (1.9.0)
Requirement already satisfied: httpx<1,>=0.23.0 in /usr/local/lib/python3.12/dist-packages (from groq) (0.28.1)
Requirement already satisfied: pydantic<3,>=1.9.0 in /usr/local/lib/python3.12/dist-packages (from groq) (2.12.3)
Requirement already satisfied: sniffio in /usr/local/lib/python3.12/dist-packages (from groq) (1.3.1)
Requirement already satisfied: typing-extensions<5,>=4.14 in /usr/local/lib/python3.12/dist-packages (from groq) (4.15.0)
Requirement already satisfied: idna>=2.8 in /usr/local/lib/python3.12/dist-packages (from anyio<5,>=3.5.0->groq) (3.18)
Requirement already satisfied: certifi in /usr/local/lib/python3.12/dist-packages (from httpx<1,>=0.23.0->groq) (2026.5.20)
Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.12/dist-packages (from httpx<1,>=0.23.0->groq) (1.0.9)
Requirement already satisfied: h11>=0.16 in /usr/local/lib/python3.12/dist-packages (from httpcore==1.*->httpx<1,>=0.23.0->groq) (0.16.0)
Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.12/dist-packages (from pydantic<3,>=1.9.0->groq) (0.7.0)
Requirement already satisfied: pydantic-core==2.41.4 in /usr/local/lib/python3.12/dist-packages (from pydantic<3,>=1.9.0->groq) (2.41.4)
Requirement already satisfied: typing-inspection>=0.4.2 in /usr/local/lib/python3.12/dist-packages (from pydantic<3,>=1.9.0->groq) (0.4.2)
Available columns: ['reviewerID', 'asin', 'reviewerName', 'reviewText', 'unixReviewTime', 'reviewTime', 'day_diff', 'helpful_yes', 'total_vote']
reviewerID asin reviewerName
0 A2FII3I2MBMUIA B007WTAJTO 1K3
1 A3H99DFEG68SR B007WTAJTO 1m2
2 A375ZM4U047O79 B007WTAJTO 2&1/2Men
3 A2IDCSC6NVONIZ B007WTAJTO 2Cents!
4 A26YHXZD5UFPVQ B007WTAJTO 2K1Toaster

                                      reviewText  unixReviewTime  \

0 it works as expected. I should have sprung for... 1356220800
1 This think has worked out great.Had a diff. br... 1384992000
2 Bought it with Retail Packaging, arrived legit... 1373673600
3 It's mini storage. It doesn't do anything els... 1367193600
4 I have it in my phone and it never skips a bea... 1382140800

reviewTime day_diff helpful_yes total_vote Sentimento
0 23/12/2012 715 0 0 Neutro.
1 21/11/2013 382 0 0 Positivo.
2 13/07/2013 513 0 0 Positivo.
3 29/04/2013 588 0 0 Positivo.
4 19/10/2013 415 0 0 Positivo.
Arquivo Reviews_Classificadas.csv gerado com sucesso!

1 resposta

Olá, Marcelo! Como vai?

Parabéns pela realização das atividades!

Você apresentou um projeto muito interessante, demonstrou domínio na integração de bibliotecas como pandas e groq, e conseguiu aplicar classificação de sentimentos diretamente em um DataFrame. Além disso, mostrou atenção em exportar os resultados para .csv, o que torna o trabalho útil e aplicável em análises posteriores.

É importante perceber que você conseguiu unir manipulação de dados com inteligência artificial, criando um fluxo automatizado que vai desde a leitura dos reviews até a geração de insights de sentimento.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Tratamento de exceções: garantir que reviews vazios ou com caracteres especiais não causem falhas na classificação.
  • Balanceamento de classes: verificar se há equilíbrio entre avaliações positivas, negativas e neutras para evitar vieses.
  • Visualização: criar gráficos de distribuição dos sentimentos para facilitar a interpretação dos resultados.

Ah uma pergunta: Você gostaria de expandir esse projeto para analisar não apenas o sentimento, mas também aspectos como relevância ou temas recorrentes nas avaliações?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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