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

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

def exemplo_erros():
try:
# ValueError
numero = int("abc")

    # TypeError
    soma = "texto" + 5  

    # ZeroDivisionError
    resultado = 10 / 0  

except ValueError:
    print("Erro de valor: entrada inválida. Digite apenas números.")
except TypeError:
    print("Erro de tipo: operação entre tipos incompatíveis.")
except ZeroDivisionError:
    print("Erro: divisão por zero não é permitida.")
except Exception as e:
    print(f"Erro inesperado: {e}")
finally:
    print("Finalizando execução (ex.: fechar arquivos).")

exemplo_erros()

import pandas as pd

dados = {
"usuario": ["Ana", "Bruno", "Carlos", "Daniela"],
"resenha": [
"Excelente aplicativo, recomendo!",
"Não gostei, trava muito.",
"Funciona bem, mas poderia ser mais rápido.",
"Péssima experiência, não recomendo."
],
"avaliacao": ["Positiva", "Negativa", "Neutra", "Negativa"]
}

df = pd.DataFrame(dados)

df_negativas = df[df["avaliacao"] == "Negativa"]

print(df_negativas)

resenhas_negativas = df_negativas["resenha"].tolist()

texto_unificado = " | ".join(resenhas_negativas)

print("Texto unificado:\n", texto_unificado)

prompt = f"""
Analise as seguintes resenhas negativas e categorize em uma palavra:
{texto_unificado}
Categorias possíveis: Usabilidade, Performance, Confiabilidade, Outro.
Responda apenas com uma palavra por resenha, separadas por espaço.
"""

print(prompt)

resposta_llm = "Performance Confiabilidade Usabilidade Confiabilidade"

categorias = resposta_llm.split()
print(categorias)

import json

resposta_json = """
{
"usuario": "Bruno",
"resenha_original": "Não gostei, trava muito.",
"resenha_pt": "Não gostei, trava muito.",
"avaliacao": "Negativa"
}
"""

dicionario = json.loads(resposta_json)
print(dicionario)

def processar_resenhas(lista_resenhas):
resultados = []
for r in lista_resenhas:
try:
# Aqui você chamaria o LLM real
avaliacao = "Negativa" if "não" in r.lower() else "Positiva"
resultados.append({"resenha": r, "avaliacao": avaliacao})
except Exception as e:
print(f"Erro ao processar resenha: {e}")
return resultados

resultado_final = processar_resenhas(df["resenha"].tolist())
print(resultado_final)

1 resposta

Olá, Penha! Como vai?

Parabéns pela realização das atividades!

Você apresentou um código muito bem estruturado para tratar diferentes tipos de erros em Python, organizou a análise de dados com pandas e ainda aplicou técnicas de manipulação de texto para categorizar resenhas negativas. Além disso, demonstrou como integrar JSON e funções personalizadas para processar avaliações, o que mostra domínio prático, clareza na lógica e criatividade na aplicação de conceitos.

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

  • Automatizar testes: validar suas funções com pytest para garantir que os erros sejam tratados corretamente.
  • Explorar NLP: aplicar bibliotecas como NLTK ou spaCy para categorizar resenhas com maior precisão.
  • Visualização de dados: usar matplotlib ou seaborn para representar graficamente as avaliações e categorias.

Ah uma pergunta: O que você considera mais interessante para evoluir esse projeto, integrar uma API real de análise de sentimentos ou criar dashboards visuais para acompanhar os resultados?

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!