Solucionado (ver solução)

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!

Solucionado
(ver solução)
1
resposta

Desafio: analisando sentimentos em várias resenhas

Análise das Resenhas

Resenha 1

  • Resumo: O aparelho funciona muito bem e entrega ótimos resultados, mas a grelha interna é difícil de limpar e passa insegurança ao retirar os alimentos. (24 palavras)

  • Pontos Fortes:

  • Excelente desempenho (hambúrgueres ficaram ótimos).

  • O cesto principal é muito fácil de limpar.

  • Muito utilizada no dia a dia.

  • Pontos Fracos:

  • A grelha interna possui frestas onde a comida acumula, dificultando a limpeza.

  • Falta de segurança na trava da grelha, dando a sensação de que ela vai cair ao virar o cesto (como ao servir batatas fritas).

  • Sentimento: Positivo.

Resenha 2

  • Resumo: A air-fryer funciona bem, mas possui uma falha grave de design no cabo plásticos do cesto, que quebra facilmente e inutiliza o produto. (23 palavras)

  • Pontos Fortes:

  • Funcionamento geral satisfatório (enquanto o cabo não quebra).

  • Pontos Fracos:

  • Fragilidade estrutural: o cabo é preso por apenas 3 parafusos em uma peça de plástico.

  • Falha grave de design: a quebra da peça plástica solta os parafusos e impossibilita o uso do aparelho.

  • Sentimento: Negativo.

Resenha 3

  • Resumo: O produto é bonito e fácil de usar, com ótimos resultados para batatas, mas o painel gera confusão e o cozimento de carnes foi irregular. (24 palavras)

  • Pontos Fortes:

  • Design elegante (sleek) e botões iluminados bonitos.

  • Fácil de usar no geral.

  • Excelente resultado com tater tots (batatas), que ficaram perfeitas e quentes.

  • Fidelidade à marca (o cliente trocou por um modelo maior da mesma empresa).

  • Pontos Fracos:

  • Painel confuso (o botão de frutos do mar não serve para peixes, gerando adivinhação).

  • Cozimento irregular de carnes (coxas de frango ficaram crocantes de um lado e cruas do outro).

  • Sentimento: Neutro (o cliente reconhece pontos positivos e a própria inexperiência, mas teve problemas com o cozimento e a interface).


Formato de Saída JSON

[
  {
    "id_da_resenha": 1,
    "resumo": "O aparelho funciona muito bem e entrega ótimos resultados, mas a grelha interna é difícil de limpar e passa insegurança ao retirar os alimentos.",
    "lista_de_pontos_fortes": [
      "Excelente desempenho no cozimento de alimentos",
      "Cesto principal muito fácil de limpar",
      "Alta utilidade no dia a dia"
    ],
    "lista_de_pontos_fracos": [
      "Grelha interna com muitas frestas que acumulam comida e dificultam a limpeza",
      "Falta de firmeza na grelha, gerando medo de que ela caia ao virar o cesto"
    ],
    "sentimento": "positivo"
  },
  {
    "id_da_resenha": 2,
    "resumo": "A air-fryer funciona bem, mas possui uma falha grave de design no cabo plásticos do cesto, que quebra facilmente e inutiliza o produto.",
    "lista_de_pontos_fortes": [
      "Funcionamento geral do aparelho é bom (até o cabo quebrar)"
    ],
    "lista_de_pontos_fracos": [
      "Fragilidade mecânica na fixação do cabo",
      "Uso de apenas 3 parafusos fixados em plástico em vez de metal",
      "Falha de design que inutiliza completamente o produto após a quebra"
    ],
    "sentimento": "negativo"
  },
  {
    "id_da_resenha": 3,
    "resumo": "O produto é bonito e fácil de usar, com ótimos resultados para batatas, mas o painel gera confusão e o cozimento de carnes foi irregular.",
    "lista_de_pontos_fortes": [
      "Design elegante e botões iluminados",
      "Fácil de usar",
      "Excelente desempenho com batatas fofas/fritas"
    ],
    "lista_de_pontos_fracos": [
      "Botões de funções pré-programadas confusos (ex: botão de frutos do mar)",
      "Cozimento desigual (frango crocante de um lado e cru do outro)"
    ],
    "sentimento": "neutro"
  }
]
1 resposta
solução!

Olá, Julia. Como vai?

Excelente entrega de desafio! Sua estruturação para a análise de sentimentos e a extração de dados das resenhas ficou impecável. Como desenvolvedora PHP Sênior, você certamente sabe o valor estratégico de transformar textos livres (dados não estruturados) em um formato JSON limpo e padronizado (dados estruturados). No desenvolvimento de aplicações reais, essa é a base para criar painéis de análise de dados (dashboards) de produtos ou alimentar sistemas de recomendação.

Como o foco do curso é otimizar a qualidade dos resultados com o ChatGPT, vou trazer algumas contribuições técnicas sobre engenharia de prompt para processamento de dados em lote (batch processing) utilizando IA:

  • Controle de Tipagem no JSON: Em ambientes de produção, para garantir que o seu backend PHP (usando json_decode(), por exemplo) não quebre, é uma boa prática instruir a IA a manter consistência estrita nos tipos de dados. Se uma resenha não tivesse pontos fracos, por exemplo, o modelo deveria retornar um array vazio [] em vez de omitir a chave ou retornar null.
  • Uso de Enums para Análise de Sentimento: Definir previamente as opções válidas para o campo sentimentos (ex: positivo, negativo, neutro) impede que o ChatGPT invente termos como "muito bom", "insatisfeito" ou "misto", o que dificultaria a filtragem dos dados via código.
  • Técnica de Poucos Disparos (Few-Shot Prompting): Para garantir que o formato de saída saia exatamente como o seu exemplo em lotes muito maiores (com 50 ou 100 resenhas), fornecer ao ChatGPT um único exemplo completo de entrada e o JSON esperado de saída antes de enviar os dados reais blinda o modelo contra variações indesejadas de formato.

Para ilustrar como ficaria um prompt otimizado para que o ChatGPT gerasse essa saída com máxima estabilidade para o seu sistema, podemos estruturá-lo assim:

Aja como um analista de dados especialista em NLP (Processamento de Linguagem Natural).
Analise o lote de resenhas fornecido e retorne estritamente um array JSON de objetos.

Cada objeto deve seguir exatamente a estrutura abaixo:
{
  "id_da_resenha": int,
  "resumo": "string contendo resumo de até 25 palavras",
  "lista_de_pontos_fortes": ["string", "string"],
  "lista_de_pontos_fracos": ["string", "string"],
  "sentimento": "string restrita a [positivo | negativo | neutro]"
}

Regras estritas:
1. Não inclua nenhum texto explicativo antes ou depois do bloco JSON.
2. Se uma lista não contiver elementos, retorne um array vazio [].

Essa precisão garante que a IA atue como uma API determinística, facilitando muito o consumo desse JSON por scripts de automação. Parabéns pela excelente resolução da atividade!

Espero que possa ter lhe ajudado!