🚀 🔥 在GoEmotions数据集上微调的BERT模型
本模型是在GoEmotions数据集上对BERT进行微调,用于多标签情感分类。它能够为输入的文本预测多种情感。
🚀 快速开始
模型使用
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model_name = "codewithdark/bert-Gomotions"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
emotion_labels = [
"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"
]
text = "I'm so happy today!"
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
probs = torch.sigmoid(outputs.logits).squeeze(0)
top5_indices = torch.argsort(probs, descending=True)[:5]
top5_labels = [emotion_labels[i] for i in top5_indices]
top5_probs = [probs[i].item() for i in top5_indices]
print("Top 5 Predicted Emotions:")
for label, prob in zip(top5_labels, top5_probs):
print(f"{label}: {prob:.4f}")
'''
输出:
Top 5 Predicted Emotions:
Joy: 0.9478
Love: 0.7854
Optimism: 0.6342
Admiration: 0.5678
Excitement: 0.5231
'''
在Hugging Face中使用
from transformers import pipeline
classifier = pipeline("text-classification", model="codewithdark/bert-Gomotions", top_k=None)
classifier("I'm so excited about the trip!")
✨ 主要特性
- 这是一个微调版的BERT(
bert-base-uncased
)模型,在GoEmotions数据集上进行训练,可用于多标签情感分类,能为每个输入文本预测多种情感。
📊 性能
指标 |
得分 |
准确率 |
46.57% |
F1分数 |
56.41% |
汉明损失 |
3.39% |
🔧 技术细节
- 模型:
bert-base-uncased
- 数据集:GoEmotions
- 优化器:AdamW
- 损失函数:BCEWithLogitsLoss(用于多标签分类的二元交叉熵)
- 批量大小:16
- 训练轮数:3
- 评估指标:准确率、F1分数、汉明损失
📄 许可证
本模型使用的许可证为 apache-2.0
。
🛠️ 引用
如果您使用了此模型,请引用以下内容:
@misc{your_model,
author = {codewithdark},
title = {Fine-tuned BERT on GoEmotions},
year = {2025},
url = {https://huggingface.co/codewithdark/bert-Gomotions}
}