语言:
- 中文
- 英文
库名称: transformers
管道标签: 文本到文本生成
数据集:
- Yaxin/SemEval2016Task5NLTK
指标:
- yuyijiong/quad_match_score
情感分析任务 T5模型
yuyijiong/T5-large-sentiment-analysis-Chinese的改进版,增加更多任务,使用ChatGPT生成部分数据
在多个中英文情感分析数据集上微调得到
输出格式为
'对象1 | 观点1 | 方面1 | 情感极性1 & 对象2 | 观点2 | 方面2 | 情感极性2 ......'
可使用yuyijiong/quad_match_score评估指标进行评测
import evaluate
module = evaluate.load("yuyijiong/quad_match_score")
predictions=["食物 | 好吃 | 食物#味道 | 正面"]
references=["食物 | 好吃 | 食物#味道 | 正面 & 服务 | 差劲 | 服务#整体 | 负面"]
result=module.compute(predictions=predictions, references=references)
print(result)
支持以下情感分析任务
["四元组(对象 | 观点 | 方面 | 极性)",
'二元组(对象 | 观点)',
'三元组(对象 | 观点 | 方面)',
'三元组(对象 | 观点 | 极性)',
'三元组(对象 | 方面 | 极性)',
'二元组(方面 | 极性)',
'二元组(观点 | 极性)',
'单元素(极性)']
可通过附加条件控制答案生成,例如:
答案风格控制,指定观点抽取方式:
(观点尽量简短)
(观点可保留完整)
(对长观点进行概括) 注:此选项可能导致生成词汇与原文不一致
可针对特定方面进行情感分析:
(可选方面: 商品/物流/商家/平台)
情感对象target可能为null,表示文本未明确提及
允许模型自动补全null对象:
(补全null)
支持以下情感分析任务
["四元组(对象 | 观点 | 方面 | 极性)",
"四元组(对象 | 观点 | 方面 | 极性)",
'二元组(对象 | 观点)',
'三元组(对象 | 观点 | 方面)',
'三元组(对象 | 观点 | 极性)',
'三元组(对象 | 方面 | 极性)',
'二元组(方面 | 极性)',
'二元组(对象 | 极性)',
'二元组(观点 | 极性)',
'单元素(极性)']
使用方法:
import torch
from transformers import T5Tokenizer, AutoModelForSeq2SeqLM
tokenizer = T5Tokenizer.from_pretrained("yuyijiong/T5-large-sentiment-analysis-Chinese-MultiTask")
model = AutoModelForSeq2SeqLM.from_pretrained("yuyijiong/T5-large-sentiment-analysis-Chinese-MultiTask", device_map="auto")
generation_config=GenerationConfig.from_pretrained("yuyijiong/T5-large-sentiment-analysis-Chinese-MultiTask")
text = '情感四元组(对象 | 观点 | 方面 | 极性)抽取任务(观点可保留完整): [个头大、口感不错,就是个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好。]'
input_ids = tokenizer(text,return_tensors="pt", padding=True)['input_ids'].cuda(0)
with torch.no_grad():
output = model.generate(input_ids=input_ids,generation_config=generation_config)
output_str = tokenizer.batch_decode(output, skip_special_tokens=True)
print(output_str)
使用示例
问:情感四元组(对象 | 观点 | 方面 | 极性)抽取任务(观点可保留完整): [个头大、口感不错,就是个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好。]
答:个头 | 大 | 商品#大小 | 积极 & 口感 | 不错 | 商品#口感 | 积极 & null | 个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好 | 商品#新鲜程度 | 消极
问:情感四元组(对象 | 观点 | 方面 | 极性)抽取任务(观点可保留完整,补全null): [个头大、口感不错,就是个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好。]
答:个头 | 大 | 商品#大小 | 积极 & 口感 | 不错 | 商品#口感 | 积极 & null (个别) | 有烂掉口子刻意用泥土封着,这样做不好 | 商品#新鲜程度 | 消极
问:情感四元组(对象 | 观点 | 方面 | 极性)抽取任务(观点尽量简短): [个头大、口感不错,就是个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好。]
答:个头 | 大 | 商品#大小 | 积极 & 口感 | 不错 | 商品#口感 | 积极
问:情感四元组(对象 | 观点 | 方面 | 极性)抽取任务(对长观点进行概括): [个头大、口感不错,就是个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好。]
答:个头 | 大 | 商品#大小 | 积极 & 口感 | 不错 | 商品#口感 | 积极 & null | 坏了口子封泥 | 商品#新鲜程度 | 消极
问:情感三元组(对象 | 观点 | 极性)抽取任务(观点可保留完整,补全null): [个头大、口感不错,就是个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好。]
答:个头 | 大 | 积极 & 口感 | 不错 | 积极 & null (花生) | 个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好 | 消极
问:判断以下评论的情感极性: [个头大、口感不错,就是个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好。]
答:中性
问:情感二元组(方面 | 极性)抽取任务(可选方面: 价格#性价比/价格#折扣/价格#水平/食品#外观/食物#分量/食物#味道/食物#推荐): [个头大、口感不错,就是个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好。]
答:食物#分量 | 积极 & 食物#味道 | 中性
问:情感四元组(对象 | 观点 | 方面 | 极性)抽取任务 : [The hot dogs are good , yes , but the reason to get over here is the fantastic pork croquette sandwich , perfect on its supermarket squishy bun .]
答:热狗 | 不错 | 食物#质量 | 正面 & 猪肉炸丸子三明治 | 非常棒 | 食物#质量 | 正面 & 面包 | 完美 | 食物#质量 | 正面