🚀 多语言(英语和中文)GoEmotions分类模型
本仓库托管了一个经过微调的BERT模型,用于在GoEmotions数据集上进行跨语言情感分类。该模型的独特之处在于它是在包含英语和中文文本的多语言数据集上进行训练的,能够将文本分类到28种不同的情感类别中。
根据GoEmotions分类法,这28种情感类别分别是:“钦佩”“娱乐”“愤怒”“恼火”“认可”“关心”“困惑”“好奇”“渴望”“失望”“不认可”“厌恶”“尴尬”“兴奋”“恐惧”“感激”“悲伤”“喜悦”“爱”“紧张”“乐观”“骄傲”“领悟”“宽慰”“懊悔”“悲伤”“惊讶”和“中立”。
🚀 快速开始
本仓库中的多语言GoEmotions分类模型可用于对英语和中文文本进行情感分类。以下是使用该模型的代码示例:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
from transformers import pipeline
tokenizer = AutoTokenizer.from_pretrained("SchuylerH/bert-multilingual-go-emtions")
model = AutoModelForSequenceClassification.from_pretrained("SchuylerH/bert-multilingual-go-emtions")
text = "I love you."
nlp = pipeline("sentiment-analysis", model = model, tokenizer = tokenizer)
result = nlp(text)
print(result)
✨ 主要特性
- 多语言支持:能够处理英语和中文文本,实现跨语言情感分类。
- 丰富的情感类别:可将文本分类到28种不同的情感类别中。
- 高性能表现:在验证集上展现出较高的准确率和精确率。
📦 安装指南
文档未提及具体安装步骤,暂无法提供。
💻 使用示例
基础用法
from transformers import AutoTokenizer, AutoModelForSequenceClassification
from transformers import pipeline
tokenizer = AutoTokenizer.from_pretrained("SchuylerH/bert-multilingual-go-emtions")
model = AutoModelForSequenceClassification.from_pretrained("SchuylerH/bert-multilingual-go-emtions")
text = "I love you."
nlp = pipeline("sentiment-analysis", model = model, tokenizer = tokenizer)
result = nlp(text)
print(result)
📚 详细文档
模型性能
该模型在验证集上表现出色,具体得分如下:
- 准确率:85.95%
- 精确率:91.99%
- 召回率:89.56%
- F1分数:90.17%
这些结果表明,无论输入文本是英语还是中文,该模型在预测正确的情感类别方面都具有较高的准确率和精确率。
训练数据
用于训练该模型的数据集是原始英语GoEmotions数据集和机器翻译的中文GoEmotions数据集的组合。该数据集分为两部分:
- 标注数据:用于初始训练,包括英语和机器翻译的中文样本。这些标注数据进一步分为训练集(80%)和验证集(20%)。
- 未标注数据:用于进行预测,并将置信度高的预测样本添加到训练数据中。它同样包括英语和机器翻译的中文样本。
训练过程
模型的训练分为两个阶段:
- 在标注数据上进行初始训练。
- 对未标注数据进行预测,并将置信度高的预测样本添加到训练数据中,然后在更新后的标注数据上重新训练模型。
模型总共训练了20个轮次(每个阶段10个轮次),训练过程中记录了精确率、召回率和F1分数。
🔧 技术细节
模型基于BERT架构进行微调,利用多语言数据集进行训练,以实现跨语言情感分类的能力。通过在标注数据和未标注数据上的两阶段训练,不断优化模型的性能。
📄 许可证
本项目采用Apache 2.0许可证。