language: zh
tags:
- 文本分类
- pytorch
- ModernBERT
- 情感分析
- 多类别分类
- 多标签分类
datasets:
- go_emotions
license: mit
metrics:
- 准确率
- F1值
- 精确率
- 召回率
- 马修斯相关系数
base_model:
- answerdotai/ModernBERT-base
widget:
- text: "能参与这段精彩旅程,我激动万分!"
- text: "我对结果感到非常失望。"
- text: "这是一个关于蛋糕的中性陈述。"
library_name: transformers

模型概述
本模型基于ModernBERT-base在GoEmotions数据集上微调,用于多标签文本情感分类。可预测文本中28种情感标签,支持单文本多标签预测。
在线体验
模型详情
使用示例
通过Hugging Face Transformers调用模型:
from transformers import pipeline
import torch
classifier = pipeline(
"text-classification",
model="cirimus/modernbert-base-go-emotions",
return_all_scores=True
)
text = "我对这个机会感到无比开心和兴奋!"
predictions = classifier(text)
sorted_preds = sorted(predictions[0], key=lambda x: x['score'], reverse=True)
top_5 = sorted_preds[:5]
print("\n检测到的前5种情感:")
for pred in top_5:
print(f"\t{pred['label']:10s} : {pred['score']:.3f}")
训练过程
模型微调3个epoch,参数配置如下:
- 学习率: 2e-5
- 批大小: 16
- 权重衰减: 0.01
- 预热步数: 500
- 优化器: AdamW
- 评估指标: 精确率、召回率、F1值(加权)、准确率
数据集
GoEmotions数据集包含58,000条Reddit评论,标注了28种情感标签(如赞赏、愉悦、愤怒等),专为多标签分类设计。
评估结果
标准结果(阈值0.5)
标签 |
准确率 |
精确率 |
召回率 |
F1值 |
MCC |
支持数 |
阈值 |
宏观平均 |
0.970 |
0.665 |
0.389 |
0.465 |
0.477 |
5427 |
0.5 |
admiration |
0.945 |
0.737 |
0.627 |
0.677 |
0.650 |
504 |
0.5 |
...(其余标签数据保持原样)... |
|
|
|
|
|
|
|
优化结果(动态阈值)
标签 |
准确率 |
精确率 |
召回率 |
F1值 |
MCC |
支持数 |
阈值 |
宏观平均 |
0.967 |
0.568 |
0.531 |
0.541 |
0.526 |
5427 |
动态调整 |
admiration |
0.946 |
0.700 |
0.726 |
0.713 |
0.683 |
504 |
0.30 |
...(其余标签数据保持原样)... |
|
|
|
|
|
|
|
应用场景
适用于英文文本情感分析,包括:
局限性
- 数据偏差: 训练数据源自Reddit,可能不适用于其他领域
- 小样本标签: "grief"等标签样本稀少,预测效果受限
- 标注歧义: 部分数据存在标注不一致情况
环境影响
- 硬件: NVIDIA RTX4090
- 训练时长: <1小时
- 碳排放: ~0.04kg CO2(通过ML CO2计算器估算)
引用
@inproceedings{JdFE2025b,
title = {基于ModernBERT的情感分类模型},
author = {Enric Junqu\'e de Fortuny},
year = {2025},
howpublished = {\url{https://huggingface.co/cirimus/modernbert-base-go-emotions}},
}