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

概述
本模型基于ModernBERT-large在GoEmotions数据集上进行微调,用于多标签分类任务。它能预测文本中的情感状态,共支持28种情感标签。每个输入文本可对应一个或多个标签,体现了任务的多标签特性。
在线体验点击这里。
模型详情
使用示例
通过Hugging Face Transformers使用该模型的方法:
from transformers import pipeline
import torch
classifier = pipeline(
"text-classification",
model="cirimus/modernbert-large-go-emotions",
top_k=5
)
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个周期:
- 学习率:
2e-5
- 批量大小: 16
- 权重衰减:
0.01
- 优化器: AdamW
- 评估指标: 精确率、召回率、F1值(加权)、准确率
数据集
GoEmotions数据集是一个多标签情感分类数据集,源自Reddit评论。它包含58,000个样本,标注了28种情感标签(如钦佩、有趣、愤怒等),专为多标签分类设计。
评估结果
模型在GoEmotions测试集上评估,使用0.5作为二值化预测的阈值。总体指标如下:
标准结果:
使用默认阈值0.5。
标签 |
准确率 |
精确率 |
召回率 |
F1值 |
MCC |
支持数 |
阈值 |
宏平均 |
0.971 |
0.611 |
0.410 |
0.472 |
0.475 |
5427 |
0.5 |
钦佩 |
0.946 |
0.739 |
0.653 |
0.693 |
0.666 |
504 |
0.5 |
有趣 |
0.982 |
0.817 |
0.814 |
0.816 |
0.807 |
264 |
0.5 |
愤怒 |
0.968 |
0.671 |
0.237 |
0.351 |
0.387 |
198 |
0.5 |
恼怒 |
0.938 |
0.449 |
0.191 |
0.268 |
0.265 |
320 |
0.5 |
赞同 |
0.940 |
0.564 |
0.302 |
0.393 |
0.384 |
351 |
0.5 |
关心 |
0.977 |
0.581 |
0.319 |
0.411 |
0.420 |
135 |
0.5 |
困惑 |
0.973 |
0.553 |
0.307 |
0.395 |
0.400 |
153 |
0.5 |
好奇 |
0.952 |
0.551 |
0.454 |
0.498 |
0.476 |
284 |
0.5 |
渴望 |
0.988 |
0.702 |
0.398 |
0.508 |
0.523 |
83 |
0.5 |
失望 |
0.972 |
0.500 |
0.152 |
0.234 |
0.265 |
151 |
0.5 |
反对 |
0.951 |
0.503 |
0.315 |
0.387 |
0.374 |
267 |
0.5 |
厌恶 |
0.981 |
0.685 |
0.301 |
0.418 |
0.446 |
123 |
0.5 |
尴尬 |
0.995 |
0.800 |
0.324 |
0.462 |
0.507 |
37 |
0.5 |
兴奋 |
0.983 |
0.649 |
0.233 |
0.343 |
0.382 |
103 |
0.5 |
恐惧 |
0.991 |
0.738 |
0.577 |
0.647 |
0.648 |
78 |
0.5 |
感激 |
0.990 |
0.955 |
0.895 |
0.924 |
0.919 |
352 |
0.5 |
悲伤 |
0.999 |
0.000 |
0.000 |
0.000 |
0.000 |
6 |
0.5 |
快乐 |
0.980 |
0.658 |
0.646 |
0.652 |
0.642 |
161 |
0.5 |
爱 |
0.983 |
0.795 |
0.815 |
0.805 |
0.796 |
238 |
0.5 |
紧张 |
0.996 |
0.556 |
0.435 |
0.488 |
0.490 |
23 |
0.5 |
乐观 |
0.973 |
0.702 |
0.392 |
0.503 |
0.513 |
186 |
0.5 |
自豪 |
0.998 |
0.800 |
0.250 |
0.381 |
0.446 |
16 |
0.5 |
领悟 |
0.972 |
0.405 |
0.117 |
0.182 |
0.207 |
145 |
0.5 |
解脱 |
0.998 |
0.000 |
0.000 |
0.000 |
0.000 |
11 |
0.5 |
悔恨 |
0.992 |
0.566 |
0.839 |
0.676 |
0.686 |
56 |
0.5 |
悲伤 |
0.980 |
0.764 |
0.436 |
0.555 |
0.568 |
156 |
0.5 |
惊讶 |
0.980 |
0.692 |
0.447 |
0.543 |
0.547 |
141 |
0.5 |
中性 |
0.796 |
0.716 |
0.628 |
0.669 |
0.525 |
1787 |
0.5 |
最优结果:
基于训练集为每个标签调整最佳阈值(以F1值为优化目标),在测试集上的表现:
标签 |
准确率 |
精确率 |
召回率 |
F1值 |
MCC |
支持数 |
阈值 |
宏平均 |
0.968 |
0.591 |
0.528 |
0.550 |
0.536 |
5427 |
各异 |
钦佩 |
0.947 |
0.722 |
0.702 |
0.712 |
0.683 |
504 |
0.40 |
有趣 |
0.983 |
0.812 |
0.848 |
0.830 |
0.821 |
264 |
0.45 |
愤怒 |
0.966 |
0.548 |
0.460 |
0.500 |
0.485 |
198 |
0.25 |
恼怒 |
0.926 |
0.378 |
0.403 |
0.390 |
0.351 |
320 |
0.30 |
赞同 |
0.928 |
0.445 |
0.470 |
0.457 |
0.419 |
351 |
0.30 |
关心 |
0.975 |
0.496 |
0.430 |
0.460 |
0.449 |
135 |
0.35 |
困惑 |
0.966 |
0.417 |
0.510 |
0.459 |
0.444 |
153 |
0.30 |
好奇 |
0.950 |
0.522 |
0.588 |
0.553 |
0.528 |
284 |
0.40 |
渴望 |
0.988 |
0.673 |
0.422 |
0.519 |
0.527 |
83 |
0.40 |
失望 |
0.964 |
0.338 |
0.305 |
0.321 |
0.303 |
151 |
0.30 |
反对 |
0.948 |
0.468 |
0.416 |
0.440 |
0.414 |
267 |
0.35 |
厌恶 |
0.978 |
0.529 |
0.447 |
0.485 |
0.475 |
123 |
0.25 |
尴尬 |
0.994 |
0.650 |
0.351 |
0.456 |
0.475 |
37 |
0.35 |
兴奋 |
0.978 |
0.419 |
0.427 |
0.423 |
0.412 |
103 |
0.25 |
恐惧 |
0.990 |
0.662 |
0.628 |
0.645 |
0.640 |
78 |
0.40 |
感激 |
0.990 |
0.955 |
0.895 |
0.924 |
0.919 |
352 |
0.50 |
悲伤 |
0.999 |
0.750 |
0.500 |
0.600 |
0.612 |
6 |
0.35 |
快乐 |
0.980 |
0.660 |
0.640 |
|
|
|
|