🐍 Exemplos de Código•2 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. 🚀