今回は千歳佐奈の感情分析についてまとめた。
佐奈の感情パターンはいくつあるのか、また発言からどの程度感情を読み取れるかを検証。
※検証内容は下の方にあるので、背景は無くていいという方は下にスクロールしてね。
感情分析のサービスは以下のようなものがある。
・クラウドサービス
service |
Google Cloud natural Language |
Amazon Comprehend |
Azure Cognitive Services |
IBM Watson Tone Analyzer |
日本語 |
○ |
× |
× |
× |
呼び出し |
API |
API |
API |
API/SDK |
料金 |
無償 (※) |
無償 (※) |
有償 |
有償 |
※制限有り
→感情分析は今まさに売り出し中の商材らしい
・その他
GUI: User Local 感情認識AI
User Localの出力例
OSS:
Wordnet Affectをプルチックの感情の輪に従って分類するプログラムを書いたまた、調べているうちに分析手法の選定は佐奈の感情パターンに依存することが分かった。
例えば、ネガティブ/ポジティブ判定は2要素の延長線についてしか判定できない。
(極端な分精度は良い)
そこで佐奈の感情パターンはいくつあるのか調べた。
公式には佐奈の一部立ち絵パターンには以下のものがある。(計23パターン)
通常1,笑顔1,真剣,きょとん,驚き,呆れる,ムッとする,怒る,ションボリ,寂しい,ショック,混乱中,心配する,照れ笑い,叫ぶ,にっこり笑顔,困り笑顔,困り笑顔2,叫ぶ涙2,困り笑顔2涙,笑顔3,照れ笑い涙,叫ぶ涙
ここで佐奈の場合、必ずしも立ち絵パターン=感情パターンとは成り立たない。
ゲーム開発でもよくありそうだが、例えば”落胆”と”寂しさ”は同一の立ち絵にするのではないだろうか。しかし、厳密には異なる感情である。
そのため、任意の感情において佐奈の表情が適切な場合は表現できることにする。
その結果、以下のように佐奈の表情は感情分類できると定義した。(※外れ値は除く)
■佐奈の感情パターンと表情
enjoyment
SENSORYPLEASURE, REJOICING, AMUSEMENT, RELIEF, PEACE, EXCITEMENT, ECSTASY
sadness
DISAPPOINTMENT, DISCOURAGEMENT, RESIGNATION
fear
TREPIDATION, NERVOUSNESS, ANXIETY, DESPERATION
disgust, anger
DISLIKE, AVERSION, DISTASTE, REPUGNANCE, REVULSION
ANNOYANCE, FRUSTRATION, EXASPERATION, ARGUMENTATIVENESS, BITTERNESS
surprise
DISTRACTION, SURPRISE, AMAZEMENT
参考:
Atlas of Emotions
Plutchik’s Wheel of Emotions
では改めて、感情分析手法を選定。
最終的にsentiment_jaというOSSを利用。
佐奈の感情分析してみた結果は以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 「どうしたんですか、さっきから廊下をウロウロして……何か、そんなに困ったことが?」 -> 'TREPIDATION' 「……? あの…………ま、まさか、今日は私を家に帰したくないとか、そういうつもりですか!? そ、そんなの大胆過ぎますよ、兄さん!!」 -> 'SURPRISE' 「ほ、本当にいいんですか? 兄さんから、プレゼントしてもらうだなんて」 -> 'DISTRACTION' 「何言ってるんですか、そういう問題じゃないんです。私はこのブローチで十分ですし、本当に嬉しいんですよ」 -> 'RELIEF' 「それじゃ兄さん、晩ご飯にしましょう。えへへ」 -> 'REJOICING' 「中身に興味はないんですか!? 身体はどうでもいいなんて変ですよ! こうなったら私が兄さんを更生させてあげます、主に私の身体で!!」 -> 'ANNOYANCE' 「にっ、兄さん……兄さんがそんな人だったなんて……信じられません! 最低です! 変態です! そんな布なんかに興奮するだなんて!」 -> 'ARGUMENTATIVENESS' 「かっ、勘違いしないで下さい! 見るだけ、見るだけなんですから! お触り厳禁ですよ、兄さん如きが私に触っていいはずないですから!!」 -> 'FRUSTRATION' 「そんなことはないです。兄さんのことはよく知ってますから! 兄さんは受けなの! あっても、ベッドジプシーです! 妹の私が言うんですから間違いないです!」 -> 'FRUSTRATION' 「どうしたんですか? 兄さん、怪我でもしたんですか?」 -> 'DISTRACTION' 「また兄さんはそんなこと言って! もっと自分のことを大事にしないとダメなの!」 -> 'ARGUMENTATIVENESS' 「兄さんに彼女さんがいないから、しかたなく付き合ってるんです。知らない人が見れば、恋人同士に見えますし、思い出にしてもいいですよ?」 -> 'PEACE' 「当たり前じゃないですか。私、今……凄く、幸せです♪」 -> 'REJOICING' 「それじゃ、宛名も書かれない特殊な通販………………きゃーーー!! にににに、兄さん何を利用してるんですか!?」 -> 'DISTRACTION' 「でも兄さん、冗談ではなくて本当に大丈夫ですか? その、寝不足もそうですけど、最近凄く帰りが遅いようですし」 -> 'DISAPPOINTMENT' 「でで、でもですね……相手が妹だったら、セクハラにはならないと思うんです……だから、兄さんが犯罪者になるぐらいなら私が……」 -> 'SENSORYPLEASURE'
|
(ゆずソフト/「天神乱漫 -LUCKY or UNLUCKY!?」より引用)
結果、精度は90%?といったところ。
佐奈語用に少し改良したが、もう少し寄せてもいいかもしれない。
・前回のおしゃべり回答の場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| "ひゃいっ!? なななんですか? 兄さん" -> 'DISTRACTION' "おはようございます、兄さん" -> 'EXCITEMENT' "はい。とっても楽しいです" -> 'EXCITEMENT' "にっ、兄さん!?" -> 'DISTRACTION' "はいっ" -> 'REJOICING' "そうです。大正解です。ということで、ご一緒してもいいですか?" -> 'REJOICING' "えへへ……ありがとうございます、兄さん。これはデートですから" -> 'AMUSEMENT' "…………" -> 'FRUSTRATION' "な、なんでもない、です……" -> 'REJOICING' "兄さんは、難しいことを言い出しました" -> 'DISAPPOINTMENT' "はい、そうなんです。だから、他意はまったくないんです。兄さんにひっついてあげているだけですから。あ、それとも兄さんがひっつきたいんですか?" -> 'DISTRACTION' "あっ、兄さん。晩ご飯はどうしますか?" -> 'REJOICING' "……ごめんなさい。何も思いつきませんでした" -> 'DISAPPOINTMENT' "あっ、あの。私、今の旬のお魚をして、キスを止めたのは…………私のため、今から消えたと思いますし" -> 'SENSORYPLEASURE' "お粗末さまです" -> 'SENSORYPLEASURE' "兄さん、眠そうですね。荷物を持ってきますね" -> 'PEACE' "あっ……兄さん、私は、少し……と……エッチなの" -> 'DISTRACTION' "兄さんがそこまで言うなら仕方ないですね。一緒に行ってあげます。本当は忙しいけど、特別なの" -> 'DISAPPOINTMENT' "あっ、兄さん、眠そうですね。もう、兄さんはテーブルにそんなこと知られたり、メールとか手紙とか電話とか" -> 'TREPIDATION' "はい。おやすみなさいな、兄さん" -> 'AMUSEMENT' "兄さん……好きです……大好き" -> 'AMUSEMENT'
|
以上、佐奈の発言に対してわりかし良い精度で顔も表現できるようになった。
佐奈の可愛い顔を見ながらおしゃべりできるなんて……