Pular para o conteúdo
Vitor Dal Mora
Todos os projetos

Modelo2026Demo ao vivo

Classificação de sentimentos com NLTK

Reprodução do exemplo de análise de sentimentos do NLTK, com Naive Bayes e VADER, e experimentos sobre onde o modelo erra: sarcasmo, gírias e ambiguidade.

0,80 de acurácia em subjetividade, com 160 frases de treino

Tipo
Modelo
Período
2026
Status
Concluído

Ferramentas

  • Python
  • NLTK

A pergunta

Onde uma análise de sentimentos baseada em palavras deixa de funcionar? Este projeto reproduz, em Python, o trabalho que fiz no processo seletivo da bolsa de iniciação científica em processamento de linguagem natural: o exemplo de análise de sentimentos da documentação do NLTK, seguido de experimentos com frases escolhidas para fazer o modelo errar.

Os dados

O classificador de subjetividade usa o corpus subjectivity do NLTK (Pang e Lee, 2004): trechos de críticas de cinema marcados como subjetivos e frases de sinopses de filmes marcadas como objetivas. Como no exemplo da documentação, usei as 100 primeiras frases de cada classe, 80 para treino e 20 para teste.

O método

São dois modelos, cada um respondendo uma pergunta sobre a frase.

  • É opinião ou fato? Um classificador Naive Bayes, cujas features são as palavras que aparecem pelo menos 4 vezes no treino.
  • O tom é positivo ou negativo? O VADER, um analisador baseado em léxico e regras, que não precisa de treino. Ele devolve as proporções de negativo, neutro e positivo e um escore composto, de −1 a 1.

Experimente

Escreva uma frase em inglês ou use um dos exemplos. O modelo roda de verdade, no servidor, a cada envio.

Carregando a demo…

Resultados

Classificador de subjetividade Valor
Acurácia nas 40 frases de teste 0,80
Precisão, revocação e F1 (subjetiva e objetiva) 0,80

O número parece bom para tão poucos dados, mas tem um detalhe: com o mínimo de 4 ocorrências, o vocabulário do modelo fica com só 83 palavras, quase todas muito comuns, como “the”, “a”, “film” e “movie”. O classificador acerta 80% decidindo com base nelas.

Onde o modelo erra

O VADER lê as palavras, não a situação. Nos experimentos, palavras como “amazing” e “excellent” puxaram o escore para cima mesmo em reclamações, e gírias foram lidas no sentido literal.

Frase Leitura humana Escore do VADER
Wow! Amazing service, waited only 32 hours. negativa (sarcasmo) 0,836
Excellent, the elevator stopped between floors so I could enjoy this premium wall experience. negativa (sarcasmo) 0,741
This song is fire. positiva (gíria) −0,340
The movie was sick. ambígua: elogio ou crítica −0,511
Esse app e muito bugado, que droga. negativa, em português 0,000

O último caso mostra o limite mais simples de todos: o léxico é em inglês, e nenhuma palavra dessa frase está nele. Os exemplos “Sarcasmo” e “Gíria” da demo acima repetem dois desses testes.