概要
- Huggingface Transformersを使って、台詞がポジティブorネガティブの感情分析をしたいと思います。
- Huggingface Transformersとは?
- 自然言語理解や自然言語生成の最先端の汎用アーキテクチャと何千もの事前学習済みモデルを提供するライブラリです。
- 他に「テキスト分類」「質疑応答」「要約」などができるようです。
今回使う台詞は?
- マンガの台詞は以下の2つのサイトから選んでいます。
コード(GoogleColabで実行)
- Huggingface Transformersのインストール
!pip install transformers
- 感情分析を実行
from transformers import pipeline
from transformers import AutoModelForSequenceClassification
from transformers import BertJapaneseTokenizer
# パイプラインの準備
model = AutoModelForSequenceClassification.from_pretrained('daigo/bert-base-japanese-sentiment')
tokenizer = BertJapaneseTokenizer.from_pretrained('cl-tohoku/bert-base-japanese-whole-word-masking')
nlp = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)
# マンガの台詞
# マンガの台詞
manga_list = ["“海賊王”に!!!おれはなるっ!!!!",
"あきらめたらそこで試合終了ですよ……?",
"計画通り",
"お前はもう 死んでいる",
"生殺与奪の権を他人に握らせるな!",
"さすがディオ! おれたちにできない事を平然とやってのける そこにシビれる! あこがれるゥ!",
"我がドイツの医学薬学は世界一ィィィ!",
"『てめーは、おれを怒らせた』",
"だが断る",
"吐き気をもよおす『邪悪』とはッ! なにも知らぬ無知なる者を利用する事だ……!! 自分の利益だけのために利用する事だ… 父親がなにも知らぬ『娘』を!! てめーだけの都合でッ! 許さねえッ! あんたは今 再びッ! オレの心を『裏切った』ッ!"]
# 感情分析の実行
for manga in manga_list:
print(nlp(manga))
# 感情分析の実行
for manga in manga_list:
print(nlp(manga))
実行結果
-
labelはポジティブ・ネガティブ、scoreは0.5~1で評価されるようです。
-
4,9,10の台詞はネガティブと分析されました。
-
予想としては、「生殺与奪の権を他人に握らせるな!」「『てめーは、おれを怒らせた』」はネガティブと判定されそうでしたが、意外にもポジティブと判定されました!
[{'label': 'ポジティブ', 'score': 0.9633078575134277}]
[{'label': 'ポジティブ', 'score': 0.8562269806861877}]
[{'label': 'ポジティブ', 'score': 0.9065709710121155}]
[{'label': 'ネガティブ', 'score': 0.9287938475608826}]
[{'label': 'ポジティブ', 'score': 0.6454976797103882}]
[{'label': 'ポジティブ', 'score': 0.6881616711616516}]
[{'label': 'ポジティブ', 'score': 0.9514427185058594}]
[{'label': 'ポジティブ', 'score': 0.9115254282951355}]
[{'label': 'ネガティブ', 'score': 0.7114869952201843}]
[{'label': 'ネガティブ', 'score': 0.5508970022201538}]
感想
- Huggingface Transformersと使うことで、簡単に日本語による感情分析を試すことができました。