🧠Inteligência em Código
🐍 Exemplos de Código2 min de leitura

Classificador de Sentimento com Python e Transformers

Exemplo completo de análise de sentimento em português usando Hugging Face Transformers em poucas linhas de código.

#nlp#sentimento#transformers#python

O que vamos construir

Um classificador que analisa textos em português e retorna se o sentimento é positivo, negativo ou neutro.

Código Completo

"""
Classificador de Sentimento em Português
Usa o modelo multilingual da Hugging Face
"""

from transformers import pipeline

# Carregar o pipeline de análise de sentimento
classifier = pipeline(
    "sentiment-analysis",
    model="nlptown/bert-base-multilingual-uncased-sentiment"
)

# Textos para analisar
textos = [
    "Adorei esse produto! Funciona perfeitamente.",
    "Péssimo atendimento, nunca mais volto.",
    "O produto é ok, nada de especial.",
    "Melhor compra que já fiz na vida!",
    "Chegou quebrado e o suporte não resolveu.",
]

# Analisar cada texto
print("=" * 60)
print("ANÁLISE DE SENTIMENTO")
print("=" * 60)

for texto in textos:
    resultado = classifier(texto)[0]
    
    # Converter score de 1-5 estrelas para sentimento
    stars = int(resultado["label"].split()[0])
    if stars >= 4:
        sentimento = "😊 Positivo"
    elif stars <= 2:
        sentimento = "😠 Negativo"
    else:
        sentimento = "😐 Neutro"
    
    confianca = resultado["score"] * 100
    
    print(f"\nTexto: {texto}")
    print(f"  → {sentimento} (confiança: {confianca:.1f}%)")

print("\n" + "=" * 60)

Saída Esperada

============================================================
ANÁLISE DE SENTIMENTO
============================================================

Texto: Adorei esse produto! Funciona perfeitamente.
  → 😊 Positivo (confiança: 72.3%)

Texto: Péssimo atendimento, nunca mais volto.
  → 😠 Negativo (confiança: 65.8%)

Texto: O produto é ok, nada de especial.
  → 😐 Neutro (confiança: 48.2%)
...

Versão com API (para produção)

"""
API de Sentimento com FastAPI
"""

from fastapi import FastAPI
from pydantic import BaseModel
from transformers import pipeline

app = FastAPI(title="API de Sentimento")
classifier = pipeline("sentiment-analysis", model="nlptown/bert-base-multilingual-uncased-sentiment")

class TextoInput(BaseModel):
    texto: str

class SentimentoOutput(BaseModel):
    texto: str
    sentimento: str
    confianca: float

@app.post("/analisar", response_model=SentimentoOutput)
def analisar(input: TextoInput):
    resultado = classifier(input.texto)[0]
    stars = int(resultado["label"].split()[0])
    
    sentimento = "positivo" if stars >= 4 else "negativo" if stars <= 2 else "neutro"
    
    return SentimentoOutput(
        texto=input.texto,
        sentimento=sentimento,
        confianca=round(resultado["score"], 4)
    )

Como rodar

# Instalar dependências
pip install transformers torch fastapi uvicorn

# Rodar script simples
python classificador.py

# Rodar API
uvicorn api_sentimento:app --reload

Pronto! Em menos de 30 linhas você tem um classificador de sentimento funcional. 🚀