感情抽出手法サーベイ

やりたいこと

作業ディレクトリが吹っ飛ぶという散々な目にあったので、気を取り直して、日本語文章からの感情抽出について調べてみました。素人思考なので注意です。結局はただのメモなので注意。
まずはじめに、何がやりたいのかというと、こちらの単語感情極性対応表みたいに単語にポジティブ、ネガティブの度合い(PN値)を設定した辞書を自動生成し、それを用いて文の評価をしたい。あわよくば、あるポジティブ値を持った文の自動生成も行いたいのです。これを人工無能bot に適用させます。
いつも良い事を言ってくれる、好感度の高い人にはデレデレの言葉を。
いつも悪口ばかり叩く、好感度の低い人には罵倒の言葉を浴びせたい。

素人のアルゴリズム

自動で辞書を作成する機能を持った bot空蝉ぬりえを作ったのは良いのですが、アルゴリズムがその場しのぎ過ぎて、超ネガティブちゃんになってしまった。おまけにバグ付きだったので公開は1日で断念。
アルゴリズムの概要はといえば、「嬉しい」「好き」「愛」はポジティブ、「辛い」「嫌い」「死」はネガティブと、不変の観念(?)を何個か用意します。これをシードデータとして学習させ、辞書のデータを文中に出てきた単語に影響させます。何を言ってるのか自分でも分からないので例を出すと


「ケーキ が 好き」の文で名詞(ケーキ, 好き)を抜き出します。「好き」のPN値を1.0、辞書に未登録の「ケーキ」を0.0とします。単語数は2なので、文のPN値は単純に平均で0.5となります。この値と各単語の中間値を計算して、「ケーキ」は2.5、「好き」は7.5として辞書に登録します。実際はシードデータに変更は加えないので「好き」は1.0のままです。ネガティブな単語とポジティブな単語の数が半々であれば、どの単語のPN値も0になるのが目に見えているので、補正を入れます。


とまあ、理論もへったくれもないアルゴリズムです。理論に裏付けされていない考えは、やはり動かしてるうちに不安になってきて、自信が持てなくなるものです。なので関係しそうなものをリサーチしてみました。

調べものメモ(随時追加)

感情関係語辞書は手動追加。句レベル解析では最大スコアを利用。動詞が否定形の場合はスコアをゼロにする(強い意思?)。

ありがたいです。