Aprender a discernir comentários na internet é uma coisa muito bacana. Mas, como podemos fazer isso de uma forma simples? Nesse post vamos aprender a fazer análise de sentimento simples usando TextBlob.

Você já percebeu como às vezes a gente lê um comentário na internet e já sabe se ele foi escrito com raiva, alegria ou ironia? Bom… ensinar uma máquina a fazer isso é basicamente o que chamamos de análise de sentimentos.

E a melhor parte: dá para começar com bem pouco código em Python. Hoje eu vou te mostrar o TextBlob, uma biblioteca que facilita bastante esse processo, mesmo que você nunca tenha feito NLP (Processamento de Linguagem Natural) na vida.

O que é Análise de Sentimentos?

De forma bem simples: é o processo de pegar um texto e tentar classificar se o sentimento por trás dele é positivo, negativo ou neutro.

Por exemplo:

  • “Esse filme foi incrível!” → positivo
  • “Detestei esse atendimento.” → negativo
  • “O café está na mesa.” → neutro

Claro que na prática as coisas podem ficar mais complicadas (ironia, sarcasmo, contexto…), mas para começar, vamos focar no básico.

Treinando o modelo para entender tudo isso, pode ser difícil. Então, para facilitar, usaremos o TextBlob.

Instalando o TextBlob

Se você tem alguma dúvida de como iniciar, não tem problema. Comece com o meu post explicando como chegar aqui.

O TextBlob é super simples de instalar. No seu terminal, rode:

pip install textblob

E também precisamos baixar os dados de tradução no NLTK que o TextBlob usa nos bastidores:

import nltk
nltk.download('punkt')

Primeiro Test: Sentimento em Frases

Agora, vamos brincar um pouco com frases simples:

from textblob import TextBlob

# Exemplo 1
frase1 = TextBlob("Eu amei esse filme, foi sensacional!")
print(frase1.sentiment)

# Exemplo 2
frase2 = TextBlob("Esse restaurante é horrível, nunca mais volto.")
print(frase2.sentiment)

# Exemplo 3
frase3 = TextBlob("Hoje é terça-feira.")
print(frase3.sentiment)

A saída vai trazer dois números:

  • Polarity (polaridade): varia de -1 (negativo) até +1 (positivo).
  • Subjectivity (subjetividade): varia de 0 (muito objetivo) até 1 (muito subjetivo).

Por exemplo:

Sentiment(polarity=0.8, subjectivity=0.75)  
Sentiment(polarity=-0.9, subjectivity=1.0)  
Sentiment(polarity=0.0, subjectivity=0.0)

Como Interpretar Esses Números

  • Polarity perto de 1 → positivo
  • Polarity perto de -1 → negativo
  • Polarity perto de 0 → neutro

Já a Subjectivity te diz se o texto está expressando opinião ou apenas um fato.

  • “A comida estava ótima” → mais subjetivo
  • “O restaurante fecha às 22h” → mais objetivo

Analisando uma Lista de Comentários

Agora, vamos imaginar que você tenha várias avaliações de clientes. Como rodar tudo de uma vez?

comentarios = [
    "Adorei a experiência, voltarei sempre!",
    "O atendimento foi péssimo.",
    "A comida estava ok, nada demais.",
    "O ambiente é maravilhoso!",
    "Nunca mais volto aqui."
]

for c in comentarios:
    blob = TextBlob(c)
    print(f"Comentário: {c}")
    print(f"Sentimento: {blob.sentiment}\n")

Com isso, você já consegue ter uma noção geral do clima das avaliações.

Um Pequeno Alerta

O TextBlob é ótimo para começar, mas não é perfeito. Ele foi treinado principalmente em inglês e pode escorregar um pouco no português. Ainda assim, dá para brincar e aprender bastante.

Se você quiser levar isso a outro nível, pode explorar ferramentas como NLTK, spaCy ou até modelos de transformers como BERT. Mas isso é papo para outro post.

Conclusão

Hoje você viu como começar no mundo da análise de sentimentos em poucos minutos com Python e TextBlob. É simples, rápido e divertido — perfeito para quem está dando os primeiros passos em NLP.

Agora eu quero saber: o que você gostaria de analisar? Tweets? Avaliações de filmes? Comentários de clientes?

Conta aí nos comentários 👇 que eu posso trazer a parte 2 com exemplos mais avançados.