PromoSense — Modelo de Análise de Sentimento (v2)
Modelo de classificação de sentimento em avaliações de e-commerce brasileiro, com foco em períodos promocionais (Double Dates, Black Friday).
Desenvolvido como parte do Projeto Integrador do curso de Tecnólogo em Análise e Desenvolvimento de Sistemas — Senac Recife.
Uso
from transformers import pipeline
clf = pipeline(
"text-classification",
model="Amand4priscil4/promosense-modelo",
truncation=True,
max_length=512
)
LABEL_MAP = {
"LABEL_0": "negativo",
"LABEL_1": "neutro",
"LABEL_2": "positivo"
}
texto = "Produto chegou antes do prazo, qualidade ótima, super recomendo!"
resultado = clf(texto)[0]
sentimento = LABEL_MAP[resultado["label"]]
print(f"{sentimento} ({resultado['score']:.2%})")
Modelo Base
- Arquitetura: BERT
- Base:
neuralmind/bert-base-portuguese-cased (BERTimbau)
- Tarefa: Classificação de sequência (3 classes)
Labels
| Label |
Sentimento |
| LABEL_0 |
negativo |
| LABEL_1 |
neutro |
| LABEL_2 |
positivo |
Dataset de Treinamento
- Fonte: Olist (avaliações de e-commerce brasileiro)
- Arquivo:
olist_rotulado_hibrido.csv
- Total de amostras: ~35.246 avaliações processadas
- Rotulagem: Híbrida — nota da estrela + léxico de 150 expressões + conectivos de contraste
- Distribuição após rotulagem híbrida: neutros expandidos de 3.557 para 5.936 amostras
Hiperparâmetros de Treinamento
| Parâmetro |
Valor |
| Épocas |
3 |
| Batch size |
32 |
| Learning rate |
2e-5 |
| GPU |
T4 (Google Colab) |
| Framework |
PyABSA + HuggingFace Transformers |
Avaliação
Treino (Olist)
| Métrica |
Valor |
| Accuracy |
87.03% |
| F1 macro |
79.50% |
Ground Truth v1 — 110 amostras (Shopee)
Produtos: JBL Boombox 4, E6S TWS Bluetooth
| Métrica |
Valor |
| Accuracy |
90.00% (99/110) |
Ground Truth v2 — 165 amostras (Shopee)
Produtos: PS4 Slim, E6S TWS Bluetooth, JBL Boombox 4, Cozedor de Ovos 3 Andares, Fone de Ouvido E6S TWS
Aspectos avaliados: preço, entrega, qualidade
| Métrica |
Valor |
| Accuracy |
59.39% (98/165) |
Relatório por classe (GT v2)
| Classe |
Precision |
Recall |
F1 |
Support |
| positivo |
0.6268 |
0.9889 |
0.7672 |
90 |
| neutro |
1.0000 |
0.0154 |
0.0303 |
65 |
| negativo |
0.3636 |
0.8000 |
0.5000 |
10 |
| macro avg |
0.6635 |
0.6014 |
0.4325 |
165 |
Matriz de Confusão (GT v2)
|
Pred. positivo |
Pred. neutro |
Pred. negativo |
| Real positivo |
89 |
0 |
1 |
| Real neutro |
51 |
1 |
13 |
| Real negativo |
2 |
0 |
8 |
Ground Truth Combinado (v1 + v2)
| Amostras |
Accuracy |
| 275 |
71.64% (197/275) |
Limitações Conhecidas
- Neutro subclassificado: F1 de neutro = 0.03 no GT v2. O modelo tem forte viés para a classe positivo, classificando a maioria dos neutros como positivo (51 de 65 casos).
- Viés positivo: 86% das predições no GT v2 foram classificadas como positivo.
- Avaliações mistas: Textos que combinam elogios e críticas (ex: "produto ótimo, mas controle com defeito") tendem a ser classificados como positivo ou negativo, nunca neutro.
- PyABSA incompatível com Python 3.12: A análise de sentimento por aspecto (ABSA) foi substituída por abordagem híbrida léxico + BERTimbau como fallback.
- Léxico limitado: Rotulagem baseada em 150 expressões — expansão para 200 prevista no v3.
Trabalho Futuro (v3)
- Expandir léxico de 150 para 200 expressões
- Retreinar com dataset híbrido atualizado
- Melhorar F1 de neutro (meta: > 0.40)
- Melhorar detecção de aspecto "entrega" (precision baixa no léxico ABSA)
Equipe
| Membro |
Papel |
| Amanda |
QA, anotação, modelagem, testes |
| Lucas |
Backend (FastAPI) e Frontend (dashboard) |
| Kellvyn |
Léxico (em desenvolvimento) |
| Ana Beatriz |
Documentação |
Citação
@misc{promosense2026,
title={PromoSense: Análise de Sentimento em Avaliações de E-commerce Brasileiro em Períodos Promocionais},
author={Amanda and Lucas and Kellvyn and Ana Beatriz},
year={2026},
institution={Senac Pernambuco — Tecnólogo em Análise e Desenvolvimento de Sistemas}
}