情感分析任务 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=["food | good | food#taste | pos"]
references=["food | good | food#taste | pos & service | bad | service#general | neg"]
result=module.compute(predictions=predictions, references=references)
print(result)
支持以下情感分析任务
["四元组(对象 | 观点 | 方面 | 极性)",
'二元组(对象 | 观点)',
'三元组(对象 | 观点 | 方面)',
'三元组(对象 | 观点 | 极性)',
'三元组(对象 | 方面 | 极性)',
'二元组(方面 | 极性)',
'二元组(观点 | 极性)',
'单元素(极性)']
可以增加额外条件来控制答案的生成,例如:
答案风格控制,希望抽取的观点为整句话or缩减为几个词:
(观点尽量短)
(观点可以较长)
(对较长观点进行概括) 注意此条件可能使答案中出现与原文不同的词
可以对指定的方面做情感分析: (方面选项:商品/物流/商家/平台)
情感对象target可能为null,表示文本中未明确给出 可以允许模型自动猜测为null的对象: (补全null)
support the following sentiment analysis tasks
["quadruples (target | opinion | aspect | polarity)",
"quadruples (target | opinion | aspect | polarity)",
'pairs (target | opinion)',
'triples (target | opinion | aspect)',
'triples (target | opinion | polarity)',
'triples (target | aspect | polarity)',
'pairs (aspect | polarity)',
'pairs (target | polarity)',
'pairs (opinion | polarity)',
'single (polarity)']
使用方法: Usage
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)
用法示例
Q:情感四元组(对象 | 观点 | 方面 | 极性)抽取任务(观点可以较长): [个头大、口感不错,就是个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好。]
A:个头 | 大 | 商品#大小 | 积极 & 口感 | 不错 | 商品#口感 | 积极 & null | 个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好 | 商品#新鲜程度 | 消极
Q:情感四元组(对象 | 观点 | 方面 | 极性)抽取任务(观点可以较长,补全null): [个头大、口感不错,就是个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好。]
A:个头 | 大 | 商品#大小 | 积极 & 口感 | 不错 | 商品#口感 | 积极 & null (个别) | 有烂掉口子刻意用泥土封着,这样做不好 | 商品#新鲜程度 | 消极
Q:情感四元组(对象 | 观点 | 方面 | 极性)抽取任务(观点尽量短): [个头大、口感不错,就是个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好。]
A:个头 | 大 | 商品#大小 | 积极 & 口感 | 不错 | 商品#口感 | 积极
Q:情感四元组(对象 | 观点 | 方面 | 极性)抽取任务(对较长观点进行概括): [个头大、口感不错,就是个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好。]
A:个头 | 大 | 商品#大小 | 积极 & 口感 | 不错 | 商品#口感 | 积极 & null | 坏了口子封泥 | 商品#新鲜程度 | 消极
Q:情感三元组(对象 | 观点 | 极性)抽取任务(观点可以较长,补全null): [个头大、口感不错,就是个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好。]
A:个头 | 大 | 积极 & 口感 | 不错 | 积极 & null (花生) | 个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好 | 消极
Q:判断以下评论的情感极性: [个头大、口感不错,就是个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好。]
A:中性
Q:情感二元组(方面 | 极性)抽取任务(方面选项: 价格#性价比/价格#折扣/价格#水平/食品#外观/食物#分量/食物#味道/食物#推荐): [个头大、口感不错,就是个别坏了的或者有烂掉口子刻意用泥土封着,这样做不好。]
A:食物#分量 | 积极 & 食物#味道 | 中性
Q:sentiment quadruples (target | opinion | aspect | polarity) extraction task : [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 .]
A:hot dogs | good | food#quality | pos & pork croquette sandwich | fantastic | food#quality | pos & bun | perfect | food#quality | pos
- Downloads last month
- 213
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social
visibility and check back later, or deploy to Inference Endpoints (dedicated)
instead.