🚀 中文多任務情感分析模型
本項目基於transformers
庫構建,是一個支持多種格式情感分析的模型。它由IDEA-CCNL/Randeng-T5-784M-MultiTask-Chinese在多箇中英文情感分析數據集上微調得到,可輸出多種格式的情感分析結果,並支持通過額外條件控制答案生成。
🚀 快速開始
安裝依賴
確保你已經安裝了transformers
和evaluate
庫,若未安裝,可使用以下命令進行安裝:
pip install transformers evaluate
運行示例代碼
以下是一個使用該模型進行情感分析評估的示例代碼:
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)
✨ 主要特性
- 多格式輸出:支持輸出四元組、二元組、三元組等多種格式的情感分析結果。
- 額外條件控制:可以通過額外條件控制答案的生成,如答案風格控制、指定方面的情感分析、補全null對象等。
- 多語言支持:在多箇中英文情感分析數據集上微調,支持中英文情感分析任務。
📦 安裝指南
你可以通過以下命令安裝所需的依賴庫:
pip install transformers evaluate
💻 使用示例
基礎用法
import torch
from transformers import T5Tokenizer, AutoModelForSeq2SeqLM
tokenizer = T5Tokenizer.from_pretrained("yuyijiong/Randeng-T5-large-sentiment-analysis-Chinese")
model = AutoModelForSeq2SeqLM.from_pretrained("yuyijiong/Randeng-T5-large-sentiment-analysis-Chinese", device_map="auto")
generation_config=GenerationConfig.from_pretrained("yuyijiong/Randeng-T5-large-sentiment-analysis-Chinese")
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對象
具體使用示例
Q:情感四元組(對象 | 觀點 | 方面 | 極性)抽取任務(觀點可以較長): [個頭大、口感不錯,就是個別壞了的或者有爛掉口子刻意用泥土封著,這樣做不好。]
A:個頭 | 大 | 商品#大小 | 積極 & 口感 | 不錯 | 商品#口感 | 積極 & null | 個別壞了的或者有爛掉口子刻意用泥土封著,這樣做不好 | 商品#新鮮程度 | 消極
Q:情感四元組(對象 | 觀點 | 方面 | 極性)抽取任務(觀點可以較長,補全null): [個頭大、口感不錯,就是個別壞了的或者有爛掉口子刻意用泥土封著,這樣做不好。]
A:個頭 | 大 | 商品#大小 | 積極 & 口感 | 不錯 | 商品#口感 | 積極 & null (個別) | 有爛掉口子刻意用泥土封著,這樣做不好 | 商品#新鮮程度 | 消極
Q:情感四元組(對象 | 觀點 | 方面 | 極性)抽取任務(觀點儘量短): [個頭大、口感不錯,就是個別壞了的或者有爛掉口子刻意用泥土封著,這樣做不好。]
A:個頭 | 大 | 商品#大小 | 積極 & 口感 | 不錯 | 商品#口感 | 積極
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
📚 詳細文檔
輸出格式
輸出格式為
'對象1 | 觀點1 | 方面1 | 情感極性1 & 對象2 | 觀點2 | 方面2 | 情感極性2 ......'
評估指標
可以使用yuyijiong/quad_match_score
評估指標進行評估。
支持的情感分析任務
["四元組(對象 | 觀點 | 方面 | 極性)",
'二元組(對象 | 觀點)',
'三元組(對象 | 觀點 | 方面)',
'三元組(對象 | 觀點 | 極性)',
'三元組(對象 | 方面 | 極性)',
'二元組(方面 | 極性)',
'二元組(觀點 | 極性)',
'單元素(極性)']
額外條件說明
- 答案風格控制:可以控制抽取的觀點為整句話或縮減為幾個詞,如(觀點儘量短)、(觀點可以較長)。
- 指定方面的情感分析:可以對指定的方面做情感分析,如(方面選項:商品/物流/商家/平臺)。
- 補全null對象:情感對象
target
可能為null
,表示文本中未明確給出,可以允許模型自動猜測為null
的對象,如(補全null)。
🔧 技術細節
本模型基於IDEA-CCNL/Randeng-T5-784M-MultiTask-Chinese在多箇中英文情感分析數據集上微調得到,使用transformers
庫進行模型的加載和推理,使用evaluate
庫進行評估指標的計算。
📄 許可證
文檔中未提及許可證信息。若有相關信息,請補充後可進一步完善此部分內容。