bert-multilingual-go-emotions项目介绍
项目概述
bert-multilingual-go-emotions
项目是一个专注于跨语言情感分类的模型库,使用了经过微调的BERT模型。该模型能够对GoEmotions数据集中包含的英语和汉语文本进行情感分类。它可以将文本划分为28种不同的情感类别。
情感类别
根据GoEmotions分类法,模型可以识别的28种情感包括:
- 欣赏(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)
模型表现
该模型在验证集上表现优异,其具体得分如下:
- 准确率(Accuracy):85.95%
- 精确率(Precision):91.99%
- 召回率(Recall):89.56%
- F1得分:90.17%
这表明,无论文本是英语还是中文,模型在预测正确情感类别方面都具有很高的准确性和精确性。
训练数据
用于训练模型的数据集是原始英语GoEmotions数据集与其机翻中文版本的组合。数据集分为两部分:
- 标记数据:用于初步训练,包括英语和机翻中文样本。这些标记数据进一步分为训练集(80%)和验证集(20%)。
- 未标记数据:用于预测,并将预测最为自信的样本添加到训练数据中,包括英语和机翻中文样本。
训练流程
模型通过两个阶段进行训练:
- 在标记数据上进行初始训练。
- 在未标记数据上进行预测,并将最有信心的预测样本添加到训练数据中,然后在更新后的标记数据上重新训练。
整个模型共训练20个周期(每个阶段10个周期),训练过程中记录了精度、召回率和F1得分。
使用示例
以下代码展示了如何使用这个模型:
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)
通过这些步骤,用户可以利用该模型对多语言文本进行情感分析,实现跨语言的情感识别和表达理解。