🚀 情感分析タスク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)
✨ 主な機能
このモデルは以下の感情分析タスクをサポートしています。
["四元組(対象 | 意見 | 側面 | 極性)",
"二元組(対象 | 意見)",
"三元組(対象 | 意見 | 側面)",
"三元組(対象 | 意見 | 極性)",
"三元組(対象 | 側面 | 極性)",
"二元組(側面 | 極性)",
"二元組(意見 | 極性)",
"単元素(極性)"]
また、以下のような追加条件を設定して回答の生成を制御することができます。
- 回答スタイルの制御:抽出する意見を文章全体にするか、いくつかの単語に縮めるかを指定できます。
- (意見をできるだけ短く)
- (意見を長くすることができる)
- (長い意見を要約する) この条件により、回答に原文と異なる単語が含まれる場合があります。
- 指定した側面に対する感情分析:
- (側面オプション:商品/物流/商家/プラットフォーム)
- 感情対象targetが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)
具体的な使用例
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