T5-base 细调情感识别项目介绍
项目概述
T5-base细调情感识别项目是基于谷歌的T5模型进行微调,以应用于情感识别的下游任务。这个模型可以从文本中识别出六种情绪:悲伤、快乐、爱、愤怒、恐惧和惊讶。它基于一个名为Emotion Dataset的数据集进行训练和评估。
T5模型的详细信息
T5模型是由Colin Raffel等人提出的,他们的研究探索了迁移学习技术在自然语言处理领域的极限。迁移学习是一种先在数据丰富的任务上进行预训练,然后在下游任务上进行微调的强大技术。T5模型引入了一个统一的框架,将所有语言问题转化为文本到文本的格式。这一方法在很多语言理解任务上取得了出色的成绩,包括摘要生成、问答、文本分类等。
下游任务:情感识别的数据集
这个项目使用了由Elvis Saravia收集的情感识别数据集。该数据集可以将文本分类为以下六种情绪:
- 悲伤 😢
- 快乐 😃
- 爱 🥰
- 愤怒 😡
- 恐惧 😱
- 惊讶 😯
模型微调
模型的训练脚本是对由Suraj Patil创建的Colab Notebook 进行的轻微修改。这个微调过程得益于开源社区的贡献,使得模型可以有效识别不同类型的情感。
测试集指标
在测试集上的性能表现如下:
precision | recall | f1-score | support | |
---|---|---|---|---|
愤怒 | 0.93 | 0.92 | 0.93 | 275 |
恐惧 | 0.91 | 0.87 | 0.89 | 224 |
快乐 | 0.97 | 0.94 | 0.95 | 695 |
爱 | 0.80 | 0.91 | 0.85 | 159 |
悲伤 | 0.97 | 0.97 | 0.97 | 521 |
惊讶 | 0.73 | 0.89 | 0.80 | 66 |
—— | —— | —— | —— | —— |
准确率 | 0.93 | 2000 | ||
宏平均值 | 0.89 | 0.92 | 0.90 | 2000 |
加权平均 | 0.94 | 0.93 | 0.93 | 2000 |
整体准确率为93%,说明模型具有较高的情感识别能力。
模型实战
以下是使用这个情感识别模型的Python代码示例:
from transformers import AutoTokenizer, AutoModelWithLMHead
tokenizer = AutoTokenizer.from_pretrained("mrm8488/t5-base-finetuned-emotion")
model = AutoModelWithLMHead.from_pretrained("mrm8488/t5-base-finetuned-emotion")
def get_emotion(text):
input_ids = tokenizer.encode(text + '</s>', return_tensors='pt')
output = model.generate(input_ids=input_ids, max_length=2)
dec = [tokenizer.decode(ids) for ids in output]
label = dec[0]
return label
get_emotion("我感觉我好久没有真正地写博客了,正在更新一个可爱的") # 输出: 'joy'
get_emotion("我感觉我好像失去了我最好的朋友") # 输出: 'sadness'
这个项目由Manuel Romero在西班牙创建,充分展示了迁移学习和自然语言处理技术在情感识别中的应用潜力。