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_len 128.
  • 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
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for codevjuan/bertimbau-b2w-sentiment

Finetuned
(242)
this model

Dataset used to train codevjuan/bertimbau-b2w-sentiment