library_name: transformers
pinheiro-roberta-goemotions
Este é um modelo baseado em Roberta, fine-tuned utilzizando PyyTorch para classificação multi-label de emoções em textos usando o dataset GoEmotions. Ele classifica 28 categorias de emoção simultaneamente.
Descrição do Modelo
Modelo RobertaForSequenceClassification fine-tuned para classificação multi-label de 28 emoções:
['admiration', 'amusement', 'anger', 'annoyance', 'approval', 'caring', 'confusion', 'curiosity', 'desire', 'disappointment', 'disapproval', 'disgust', 'embarrassment', 'excitement', 'fear', 'gratitude', 'grief', 'joy', 'love', 'nervousness', 'optimism', 'pride', 'realization', 'relief', 'remorse', 'sadness', 'surprise', 'neutral']
- Desenvolvido por: Matheus Pinheiro
- Tipo de modelo: RobertaForSequenceClassification (multi-label)
- Idioma(s): Inglês
- Licença: MIT
- Base do modelo:
roberta-base
Uso Direto
Classificação multi-label de emoções em textos em inglês. Retorna a probabilidade de cada emoção para o texto dado.
Viés, Riscos e Limitações
- Treinado no dataset GoEmotions (inglês) e pode não generalizar para outros idiomas ou contextos culturais.
- Algumas emoções podem ter probabilidades baixas mesmo quando presentes.
- As probabilidades multi-label são relativas, não valores absolutos de emoção.
Recomendações
- Validar o modelo em dados do seu próprio domínio.
- Interpretar as probabilidades como scores relativos, não como rótulos absolutos.
Como Usar o Modelo
from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification
# Carregar tokenizer
tokenizer = AutoTokenizer.from_pretrained("roberta-base")
# Map de id2label
id2label = {
0: 'admiration', 1: 'amusement', 2: 'anger', 3: 'annoyance', 4: 'approval',
5: 'caring', 6: 'confusion', 7: 'curiosity', 8: 'desire', 9: 'disappointment',
10: 'disapproval', 11: 'disgust', 12: 'embarrassment', 13: 'excitement', 14: 'fear',
15: 'gratitude', 16: 'grief', 17: 'joy', 18: 'love', 19: 'nervousness', 20: 'optimism',
21: 'pride', 22: 'realization', 23: 'relief', 24: 'remorse', 25: 'sadness', 26: 'surprise', 27: 'neutral'
}
# Carregar modelo
modelo = AutoModelForSequenceClassification.from_pretrained("pinheiroxs/pinheiro-roberta-goemotions",id2label=id2label)
# Criar pipeline
classifier = pipeline("text-classification", model=modelo, tokenizer=tokenizer, top_k=None)
# Exemplo de uso
texto = "I am very happy today!"
resultado = classifier(texto)[0]
# Formatar resultados
resultado_ordenado = sorted(resultado, key=lambda x: x['score'], reverse=True)
for r in resultado_ordenado:
print(f"{r['label']:15} : {r['score']*100:.2f}%")
Dados de Treinamento
- Dataset: GoEmotions
- Número de rótulos: 28 emoções em textos em inglês
Pré-processamento
- Tokenização padrão usando
AutoTokenizer - Binarização multi-label dos rótulos de emoção
Hiperparâmetros de Treinamento
- Regime de treino: 4 epochs
- Batch size: 16
- Otimizador: AdamW
- Learning rate: 2e-5
- Hidden size: 768
- Intermediate size: 3072
- Número de attention heads: 12
- Número de camadas ocultas: 12
- Dropout: 0.1
- Downloads last month
- 61
Model tree for pinheiroxs/pinheiro-roberta-goemotions
Base model
FacebookAI/roberta-base