Carregando
0x70Lição 8 de 18

Classifique o texto com recursos simples

Construa uma pequena base de sentimento, tente enganá-la e aprenda a avaliá-la de maneira justa.

18 min Questionário com 6 perguntas 2 exercícios de código
Ao final desta lição, você saberá
  • Use uma linha de base transparente de busca por palavras para rotular o texto
  • Encontre os tipos de frases que enganam
  • Lide com a negação com uma regra simples

Classificação de texto atribui um rótulo a um trecho de texto: spam ou não, o tópico de uma notícia, se a crítica é positiva. O classificador mais simples é uma linha de base do léxico: conte palavras de uma lista positiva, subtraia palavras de uma lista negativa e observe o sinal.

lexicon.py
1positive = {"bright", "helpful", "love"}
2negative = {"broken", "rude", "hate"}
3words = "helpful and bright".split()
4score = sum(word in positive for word in words) - sum(word in negative for word in words)
5print(score)
Saída
2

Uma linha de base como essa é fácil de ler e explicar – você pode ver exatamente por que escolheu um rótulo. Isso o torna um excelente primeiro modelo e um parâmetro: um modelo mais sofisticado precisa vencê-lo para valer o seu custo.

Experimente

Até 15 XP

Você pode enganar a linha de base?

Imagine que a linha de base conhece as palavras positivas bom, ótimo, amor e as palavras negativas mau, horrível, ódio. Para cada revisão, decida se seu rótulo estaria certo ou se a linha de base seria enganada.

0 de 6 classificadosPontuação 0/0
  • “Adoro esse celular, a câmera é ótima.”

  • “Isso não é nada bom.”

  • “Ah, ótimo, quebrou depois de um dia.”

  • “Serviço horrível e comida ruim.”

  • “A bateria acabou em uma hora.”

  • “Eu odeio o quanto eu amo esse jogo.”

Lidando com “não”

Um patch clássico é inverter a polaridade de uma palavra de sentimento que vem logo após uma negação como não ou nunca. Corrige “não é bom” - mas não “não é exatamente o que eu chamaria de bom”. Regras como essa se acumulam rapidamente, o que é um grande motivo pelo qual o campo mudou para classificadores que aprendem com exemplos rotulados, o tópico da próxima lição.

Principais conclusões

  • Uma linha de base do léxico é transparente e rápida - e um parâmetro útil.

  • Falta negação, sarcasmo, palavras não listadas e sentimentos contraditórios.

  • Sempre avalie exemplos com os quais o classificador não aprendeu.

Quiz da aula

6 perguntas · aprovação com 5 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Pratique: aplique NLP com Python

Experimente cada ideia de processamento de texto em Python, execute com entradas de exemplo e use os resultados para ver onde o método funciona ou falha.

Exercício 1

Marque um pequeno léxico de sentimento

+25 XP

Leia uma frase em inglês e conte palavras positivas (good, great, love) e negativas (bad, awful, hate). Imprima positive, negative ou neutral conforme a pontuação. Esta é apenas uma linha de base didática.

  • Palavras positivas
  • Palavras negativas
  • Nenhuma palavra conhecida
main.py
Carregando editor…

O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.

Exercício 2

Inverta o sentimento depois do “não”

+25 XP

Estenda a linha de base: uma palavra de sentimento imediatamente após not ou never recebe pontuação invertida. Leia uma frase em inglês, usando palavras alfabéticas em minúsculas, e imprima positive, negative ou neutral.

  • Negado positivo
  • Negado negativo
  • Sem negação
main.py
Carregando editor…

O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…