模型:
mrm8488/t5-small-finetuned-emotion
在情感识别的下游任务中,使用T5-small模型在 emotion recognition 数据集上进行了微调。
T5模型是由Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, Peter J. Liu在 Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer 中提出的。摘要如下:
转移学习在自然语言处理(NLP)中被证明是一种强大的技术,其中模型首先在数据丰富的任务上进行预训练,然后在下游任务上进行微调。转移学习的有效性导致了各种方法、方法论和实践的出现。在本文中,我们通过引入一个统一的框架,将每个语言问题转化为文本到文本的格式,来探索NLP转移学习技术的领域。我们的系统研究比较了预训练目标、架构、无标签数据集、转移方法和其他因素在数十个语言理解任务上的表现。通过将我们的探索结果与规模和我们的新的“巨大干净爬取语料库”的结合,我们在许多涵盖摘要、问答、文本分类等基准测试上取得了最先进的结果。为了促进未来在NLP转移学习方面的工作,我们发布了我们的数据集、预训练模型和代码。
dataset 为情感识别收集了大量数据。它可以将文本分类为以下6种情感之一:
训练脚本是由 Suraj Patil 创建的 this Colab Notebook 的稍微修改版本,所有的功劳归于他!
precision | recall | f1-score | support | |
---|---|---|---|---|
anger | 0.92 | 0.93 | 0.92 | 275 |
fear | 0.90 | 0.90 | 0.90 | 224 |
joy | 0.97 | 0.91 | 0.94 | 695 |
love | 0.75 | 0.89 | 0.82 | 159 |
sadness | 0.96 | 0.97 | 0.96 | 581 |
surpirse | 0.73 | 0.80 | 0.76 | 66 |
accuracy | 0.92 | 2000 | ||
macro avg | 0.87 | 0.90 | 0.88 | 2000 |
weighted avg | 0.93 | 0.92 | 0.92 | 2000 |
混淆矩阵
from transformers import AutoTokenizer, AutoModelWithLMHead tokenizer = AutoTokenizer.from_pretrained("mrm8488/t5-small-finetuned-emotion") model = AutoModelWithLMHead.from_pretrained("mrm8488/t5-small-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("i feel as if i havent blogged in ages are at least truly blogged i am doing an update cute") # Output: 'joy' get_emotion("i have a feeling i kinda lost my best friend") # Output: 'sadness'
由 Manuel Romero/@mrm8488 创建 | LinkedIn
在西班牙用 ♥ 制作