🚀 用于情感分析的twitter-XLM-roBERTa-base模型
本模型用于对西班牙语推文进行情感分析,基于在约1.98亿条推文上预训练的XLM-roBERTa-base模型微调而来。它能有效将西班牙语推文分类为七种不同的情感类别,为情感分析任务提供了强大的支持。
🚀 快速开始
示例代码
本示例使用了来自@JaSantaolalla的推文进行情感分析。
from transformers import pipeline
model_path = "daveni/twitter-xlm-roberta-emotion-es"
emotion_analysis = pipeline("text-classification", framework="pt", model=model_path, tokenizer=model_path)
emotion_analysis("Einstein dijo: Solo hay dos cosas infinitas, el universo y los pinches anuncios de bitcoin en Twitter. Paren ya carajo aaaaaaghhgggghhh me quiero murir")
输出结果:
[{'label': 'anger', 'score': 0.48307016491889954}]
完整分类示例
from transformers import AutoModelForSequenceClassification
from transformers import AutoTokenizer, AutoConfig
import numpy as np
from scipy.special import softmax
def preprocess(text):
new_text = []
for t in text.split(" "):
t = '@user' if t.startswith('@') and len(t) > 1 else t
t = 'http' if t.startswith('http') else t
new_text.append(t)
return " ".join(new_text)
model_path = "daveni/twitter-xlm-roberta-emotion-es"
tokenizer = AutoTokenizer.from_pretrained(model_path )
config = AutoConfig.from_pretrained(model_path )
model = AutoModelForSequenceClassification.from_pretrained(model_path )
text = "Se ha quedao bonito día para publicar vídeo, ¿no? Hoy del tema más diferente que hemos tocado en el canal."
text = preprocess(text)
print(text)
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
scores = output[0][0].detach().numpy()
scores = softmax(scores)
ranking = np.argsort(scores)
ranking = ranking[::-1]
for i in range(scores.shape[0]):
l = config.id2label[ranking[i]]
s = scores[ranking[i]]
print(f"{i+1}) {l} {np.round(float(s), 4)}")
输出结果:
Se ha quedao bonito día para publicar vídeo, ¿no? Hoy del tema más diferente que hemos tocado en el canal.
1) joy 0.7887
2) others 0.1679
3) surprise 0.0152
4) sadness 0.0145
5) anger 0.0077
6) disgust 0.0033
7) fear 0.0027
✨ 主要特性
- 强大的情感分类能力:该模型能够将西班牙语推文准确分类为七种不同的情感类别,包括愤怒、厌恶、恐惧、喜悦、悲伤、惊讶和其他。
- 优秀的竞赛表现:在EmoEvalEs竞赛中,该模型取得了71.70%的宏平均F1分数,获得了第一名。
📦 相关链接
🔧 技术细节
模型基础
本模型基于finetuned XLM-T for Sentiment Analysis,预训练权重与cardiffnlp发布的原始模型相同。
训练数据
使用EmoEvalEs数据集进行微调训练。
局限性和偏差
- 微调所用的数据集存在不平衡问题,近一半的记录属于其他类别,因此模型可能对该类别存在偏差。
BibTeX引用
@inproceedings{vera2021gsi,
title={GSI-UPM at IberLEF2021: Emotion Analysis of Spanish Tweets by Fine-tuning the XLM-RoBERTa Language Model},
author={Vera, D and Araque, O and Iglesias, CA},
booktitle={Proceedings of the Iberian Languages Evaluation Forum (IberLEF 2021). CEUR Workshop Proceedings, CEUR-WS, M{\'a}laga, Spain},
year={2021}
}