いわゆる人工無能、使用者に応じた自動会話を行うプログラムを試している。そもそもは人工知能というかゲーム内NPCの制御とかをいろいろ検討してたのだけど、とりあえず試しに人工無能ってどんなもんなんでしょうねと。
どこを調べても出てくるのが形態素解析とマルコフ連鎖で、これらを実装すればそれなりに文章っぽいものができる。形態素解析については要するに単語ごとに分解するもので、これ面倒だなあと思ってたらMeCabとか有名なオープンソースライブラリがあるらしい。さらにYAHOO!デベロッパーネットワークにWebAPIが用意されていて、いろいろ制限はあるけど普通に使えそうだからこれを使ってみることに。マルコフ連鎖は単語の前後のつながりを辞書として記録していってその連鎖により文章を構築していくもので、辞書が増えるほどそれらしい文章が作れるようになります。
そんなこんなでいちおうローカル(MAMP上)では動くようになりました。自分のこのブログを辞書として登録していったらなんか自分の言い回しをそれっぽく意味不明な文章にしてくれてなかなか気味悪いですw しかしマルコフ連鎖を1語だけでやってたら意味不明の気色悪さが半端ないので2語でやるようにしたらちょっとマシになった。でも同じ文章から作る辞書でも2語のほうが容量も処理時間もだいぶ増えます。私のやった範囲では容量で1語の3倍ぐらいに。今1語辞書が1300語、2語が4000語弱ぐらいの辞書量になってるけど、こうなっているだけで辞書追加に結構な時間がかかってしまう。こうなってくると会話自体もリアルタイムに学習していくってのはなかなか厳しいかなあ。ある程度貯めこんでおいて一気に学習するってのがいいのだろうか。そのへんがある程度目処をつけられたらオンラインで公開するかもしれません。もうちょっと辞書も強化したいし。1語で1万ぐらいいったらそれなりに会話できるんだろうか。
しかし他の人工無能とかいくつか見ましたが、「うずら」とか凄いみたいですね。
2013/01/25
人工無能
コメントはまだありません »
コメントはまだありません。