2013/09/25(水)感情の分類を考える

趣味で人工知能のために会話文の感情分類がしたいなぁっと思ったので、ちょいと調べていました。そもそも感情は明確に分類できるものなのか怪しいのですが・・・。

ちょろっと自然言語処理関連の論文を調べた限りでは、

  • 「感情表現辞典」という辞典の分類:「喜」「怒」「哀」「怖」「恥」「好」「厭」「昂」「安」「驚」
  • Ekmanの分類:「怒り」「嫌悪」「恐れ」「幸福感」「悲しみ」「驚き」
  • Plutchikの分類:「喜び」「悲しみ」「受容」「嫌悪」「恐れ」「怒り」「驚き」「期待」とこれらの合成 (日本語訳は 山口大学工学部研究報告第53巻第1号pp.85-90 を参考にしました:http://memoirs.lib-e.yamaguchi-u.ac.jp/531/11.pdf

という分類がよく使われているようです。

自分がしたいのは会話文の感情分類。

Ekmanの分類は表情から読み取れる感情とのことなので、除外。残りは Plutchik の分類か「感情表現辞典」の分類。

Plutchik の混合感情の考え方とかはよく出来ていると思うんだけど、自分以外の人に混合感情を意識させて妥当な感情を選ばせるのはあまりに負担がかかり過ぎるように思えます。かといって混合感情を意識させない場合、ドンピシャに純粋感情を過不足なく複数選択させるのが困難。

一人で感情分類作業する場合は、Plutchik の分類でもいいけど、誰かに手伝ってもらう場合はPlutchikの分類はキツい。

というわけで、「感情表現辞典」の10分類をベースにすることにしました。

今日、注文していた「感情表現辞典」が来たのでちょろっと読みました。

この10分類は実際の表現例から「喜」「怒」「苛」「悲」「淋」「鬱」「悄(ショウ:しょんぼりする)」「苦」「安」「悔」「昂」「感動」「好」「嫌」「憎」「驚」「怖」「恥」「惑」の19感情を抽出して境界線の引きにくさを理由に以下のように圧縮したもののようです。

  • 「哀」={「悲」,「淋」}
  • 「厭」={「鬱」,「悄」,「苦」,「悔」,「嫌」,「憎」,「惑」}
  • 「昂」={「苛」,「昂」,「感動」}

これでほぼ自分の直感にも反しないのですが、いくらか拡張しました。

人工知能を考えると、

  • 友達としての好き
  • 恋人としての好き
  • 慕う(目上の人への)の好き
  • 憧れの好き はそれぞれ分けるべきと考えて、

「好」ー>「友情」,「恋愛」,「忠誠(忠義)」,「欲」

に拡張しました。

これで「喜」「怒」「哀」「怖」「恥」「厭」「昂」「安」「驚」「欲」「友情」「恋愛」「忠誠」の13感情。

これらの13種のうちのどれかか、これらのうちの組み合わせで会話文に表れるほとんどの感情は網羅できるかな?

-追記-
研究レベルなら、「An Argument For Basic Emotions」とか読んでおいたほうがいいです。これによると、愛はemotional attitudeで感情(情動)と区別されています。 Plutchikの3次元モデルは「The Nature of Emotions」を読んだけど根拠が不明でした。

2013/09/06(金)Perl製Wiki MojoMojo メモ #02 トラブルシューティング

最近同じPerl製Wikiの https://github.com/yuki-kimoto/ringowiki もコミットが盛んになってきましたが、今のMojoMojoを越えるにはまだまだ時間がかかりそうだというわけで本格的にMojoMojoを使うことにしました。

早速いろいろ問題が発生したので解決のメモです。

  • 「ユーザーの新規登録ができない!」 What is this wiki powered by (look at the bottom; 8 letters, all lowercase)? の入力欄でcatalystと何回入力してもパスできないと思ったら、「mojomojo」でした。 MojoMojoのGithubのレポジトリではJun 27, 2013 のコミットでこの問題(?)は解消されているっぽいです。

  • 「JPEGをアップロードするとサムネイルが作れない!」

[error] Caught exception in MojoMojo::Controller::Attachment->thumb "format 'jpeg' not supported - formats bmp, ico, pnm, raw, sgi, tga available for reading

というエラーが出る。

↓で解決。

yum install libjpeg-devel
yum install libpng-devel
yum install giflib-devel

mojomojo再起動 -> 同じエラー

cpanm Imager --reinstall

mojomojo再起動 -> OK
  • 「サムネイルをページに挿入するとエラーが出る!」
    ↓のようなエラー
[error] Caught exception in MojoMojo::Controller::PageAdmin->edit "Operation "ne": no method found,
        left argument in overloaded package Text::Balanced::ErrorMsg,
        right argument has no overloaded magic at hogehoge/DBIx/Class/Storage/TxnScopeGuard.pm line 26."

DBIx/Class/Storage/TxnScopeGuard.pm の26行目の

if (defined $@ and $@ ne '') {

を↓に書き換える。

if (defined $@ and "$@" ne '') {

(Text::Balanced::ErrorMsgが$@に入るがこれをオーバーライドされた「"」を使って文字列に変換する必要がある)

*「登録したユーザを消したい」

perl /script/util/delete_inactive_users.pl

を実行して注意書きをよく読んで適当な引数(本当になんでもいい)をつけて↓を実行

perl /script/util/delete_inactive_users.pl hoge

マークダウンも使えるし、プレビューも見ながら編集できるし、TWikiより高速に動くし、HTMLが綺麗し中々良いです。あとはMojoMojoを拡張するプラグインがあればというところ。

mojomojo