🚀 クイックスタート
このモデルは、IDEA-CCNL/Randeng-T5-784M-MultiTask-Chinese を複数の中英感情分析データセットで微調整して得られたものです。最新バージョンは yuyijiong/T5-large-sentiment-analysis-Chinese-MultiTask です。
出力形式は以下の通りです。
'対象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)
✨ 主な機能
サポートする感情分析タスク
["四元組(対象 | 意見 | 側面 | 極性)",
"二元組(対象 | 意見)",
"三元組(対象 | 意見 | 側面)",
"三元組(対象 | 意見 | 極性)",
"三元組(対象 | 側面 | 極性)",
"二元組(側面 | 極性)",
"二元組(意見 | 極性)",
"単元素(極性)"]
追加条件による回答生成の制御
- 回答スタイルの制御: 抽出する意見を文章全体にするか、いくつかの単語に縮めるかを指定できます。
- 指定された側面に対する感情分析:
- (側面オプション: 商品/物流/販売者/プラットフォーム)
- 感情対象targetがnullの場合: テキストに明示されていない場合、モデルがnullの対象を自動的に推測することができます。
💻 使用例
基本的な使用法
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)
高度な使用法
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