読んだ本

恋するプログラム―Rubyでつくる人工無脳

ランダムに数種類の応答を返すだけのプロトタイプから始まって、辞書、パターン、感情の導入、形態素解析してテンプレートの学習、さらにマルコフ連鎖による文章生成、最後はネットワーク(Google)からテキストデータを取ってくるところまで、本に書いてある通りにやれば一通り作ることができる。最初の方はRubyの文法の説明とかなので、軽く読み飛ばして途中から始めて、一晩で読み終わった。
できた人工無能は、ほとんどチューニングされてないのであまり賢いとは言えないけど、プログラムの作りが非常にきれいなので、改造のベースとするには向いていると思う。ちなみに、言語はRubyだが、サンプルコードはWindowsネイティブAPIに依存しているのでそのままでは他の環境では動かない(GUIライブラリにVisualuRuby計画(仮称)使用)。自分の場合はLinuxなので、せっかくだからとRuby/Gtkに移植したけど、とにかく資料が少なくて実はこれが一番苦労した。GUIの他は茶筌を呼んでいる部分がWindowsのDLL呼び出しになっていたのをruby-chasenを使って書き直したくらいかな。それ以外は(漢字コードの違いを除けば)大した修正もなく動いた。GUI部分とロジック部分が完全に分離していたので、移植は楽と言えば楽だった。
しかし、人工無能といえば完全にテキストだけの入出力を思い浮かべるけど、単純な感情モデルを与えてそれに従って表情のパターンが変化するだけで、なんとなくキャラクタとして認識してしまう。今時の人工無能GUIが大事なんだなあと改めて感じた。