1
resposta

12 Faça como eu fiz: lidar com exceções e IA

try:
numero = int(input("Digite um número: "))
resultado = 10 / numero
except ValueError:
print("Erro: Você precisa digitar um número inteiro.")
except ZeroDivisionError:
print("Erro: Divisão por zero não é permitida.")
except Exception as e:
print("Ocorreu um erro inesperado:", e)
finally:
print("Execução do bloco try finalizada.")
Filtragem de DataFrame e manipulação de strings

Pandas permite filtrar dados facilmente:

import pandas as pd

Exemplo de DataFrame

df = pd.DataFrame({
"resenha": ["Ótimo produto", "Não gostei", "Regular"],
"sentimento": ["Positiva", "Negativa", "Neutra"]
})

Filtrar resenhas negativas

df_negativas = df[df["sentimento"] == "Negativa"]

Extrair e unir as resenhas negativas em uma única string

resenhas_unidas = "#####".join(df_negativas["resenha"])
print(resenhas_unidas)

3️ Integração com LLM (IA local)

Executar modelos localmente garante privacidade , controle e customização .

Ferramentas populares: LM Studio e Ollama .

Etapas básicas :

Selecionar modelo adequado (ex.: Gemma 3 1B).

Configurar ambiente virtual Python e IDE (VSCode, Cursor).

Criar script Python para chamar LLM:

from openai import OpenAI

client_openai = OpenAI(base_url="http://127.0.0.1:1234/v1", api_key="lm-studio")

prompt = f"Classifique as resenhas: {resenhas_unidas}"
resposta = client_openai.chat.completions.create(
model="google/gemma-3-1b",
messages=[{"role": "system", "content": "Você é um analista de dados."},
{"role": "user", "content": prompt}],
temperature=0.0
)
print(resposta.choices[0].message.content)

4️ Conversão de JSON em dicionário Python
import json

resposta_json = resposta.choices[0].message.content
dicionario_resenhas = json.loads(resposta_json) # Converte JSON em dict Python

Permite analisar resenhas em lote , contar avaliações e unir os resultados em uma string:

def contador_e_juntador(lista_de_dicionarios):
pos, neg, neut = 0, 0, 0
for item in lista_de_dicionarios:
if item['avaliacao'] == "Positiva": pos += 1
elif item['avaliacao'] == "Negativa": neg += 1
else: neut += 1
textos_unidos = "#####".join([str(d) for d in lista_de_dicionarios])
return pos, neg, neut, textos_unidos

1 resposta

Olá, Moacir! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de tratamento de exceções para garantir robustez no código, utilizou muito bem o Pandas para filtrar e manipular dados e ainda compreendeu a importância da integração com LLMs para análise automatizada de resenhas.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é aplicar o método value_counts() diretamente na coluna de sentimentos para obter a contagem de cada categoria. Assim:

contagem = df["sentimento"].value_counts()
print(contagem)

Isso faz a contagem automática dos valores únicos, simplificando a análise inicial dos dados.

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!