BERTimbau para sentimento de avaliações em português
BERTimbau ajustado para classificar avaliações de e-commerce como positivas ou negativas.
Resultado
Conjunto de teste de 11.367 avaliações de produtos que não aparecem no treino nem na validação (divisão por produto).
| Modelo | F1 macro | Acurácia | Latência por avaliação |
|---|---|---|---|
| Classe majoritária | 0.4146 | 0.7083 | |
| TF-IDF + Regressão Logística (baseline) | 0.9423 | 0.9515 | 0.163 ms (CPU) |
| BERTimbau ajustado (este modelo) | 0.9585 | 0.9657 | 14.25 ms (Apple Silicon (MPS)) |
Diferença contra o baseline: +1.62 p.p. de F1 macro e +1.42 p.p. de acurácia.
| Classe | Precisão | Revocação | F1 | Suporte |
|---|---|---|---|---|
| negativo | 0.9415 | 0.9409 | 0.9412 | 3316 |
| positivo | 0.9757 | 0.9759 | 0.9758 | 8051 |
Como usar
from transformers import pipeline
classifier = pipeline("text-classification", model="codevjuan/bertimbau-b2w-sentiment")
classifier("Chegou antes do prazo e o produto é excelente!")
Dados
B2W-Reviews01 (CC BY 4.0). Rótulo derivado da nota: 4 ou 5 = positivo, 1 ou 2 = negativo, nota 3 descartada. Entrada: apenas o texto da avaliação (o título entrega o rótulo e foi excluído). Divisão 80/10/10 por produto (semente 42), com 0 produtos compartilhados entre conjuntos. 1,28% dos textos do teste aparecem idênticos no treino (avaliações curtas como "Ótimo"). Proporção no treino: 70,57% positivas e 29,43% negativas.
Treinamento
- Amostra estratificada de 20.000 avaliações de treino e 4.000 de validação.
- 2 épocas, taxa de aprendizado 2e-05, lote 16,
max_len128. - Melhor época escolhida por F1 macro na validação (F1 macro de validação: 0.9547).
- Hardware: Apple Silicon (MPS); tempo de treino 17.5 min.
Limitações
O rótulo vem da nota, não de anotação humana do texto. Há avaliações com nota alta e texto reclamando de entrega, e perguntas postadas como avaliação. Parte dos "erros" é ruído do rótulo.
Treinado em avaliações de e-commerce da B2W (janeiro a maio de 2018). Não foi avaliado em outros domínios, como restaurantes, entregas ou redes sociais.
Só distingue positivo de negativo. Avaliações neutras ou mistas não foram usadas no treino.
Não separa produto de entrega. Como o rótulo é a nota do produto, uma avaliação que elogia o produto e reclama do atraso ("Produto ótimo, mas a entrega atrasou 10 dias") sai positiva. Para medir a entrega separadamente seria preciso um modelo por aspecto.
Não use para decisões automáticas sobre pessoas.
Código e reprodução: https://github.com/Juan-Severiano/reviews-sentiment-pt
- Downloads last month
- 17
Model tree for codevjuan/bertimbau-b2w-sentiment
Base model
neuralmind/bert-base-portuguese-cased