Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

秋山智俊・著『恋するプログラム - Ruby でつくる人工無脳』

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

恋するプログラム - Ruby でつくる人工無脳』を読みました。人工無脳を直接取り扱う書籍としては最初のものになるのでしょうか。って、あーそうだ。『人工無能 - “考えないマシン”と話す法』なんて本がかなり昔に出てたんだった(「Margarine - 無脳か無能か」にて少し紹介されています)。それはともかくとして。

Ruby のごくごく基本的な解説から始まり、あらかじめファイルに記録しておいた言葉をなんらかのきっかけで適宜しゃべるところから、感情パラメタによってしゃべるフレーズを変える機能を付加したり、あるいは形態素解析した文字列を記憶・学習、さらにそれらをマルコフ連鎖で文章らしきものへ組み立て、最後には Google で検索したページから言葉を学習する無脳を作り上げるといった内容。感情の表現として、たとえば怒っているときは怒っているふうなフレーズをしゃべらせるという方法は当然として、VisualuRuby を用いた GUI アプリケーションとして無脳を作成することで、感情を表現した画像(怒っているときは「ぷんすか!」みたいな表情)を表示するといった試みもなされています。

人工無脳に興味があって、その辺のリソースをあれこれ見ているひとにとっては、本書から特に新しい知見を得られるということはあまりないと思います。また、VisualuRuby を用いて GUI アプリケーションとして作成しているので、それに付随する説明が煩雑だし、正直いってイラネとか思いました。そういう説明をするスペースは、データ構造や面白い無脳を作る上でのテクニックの解説に裂いて、言語の遊びとしての無脳という側面をもっと押していく方がよかったかなぁ、と。まぁでも、サンプルを動かしながら読む分には、そういうしかけがある方がとっつき易くていいのかな。

あと、帯に「Ruby プログラミングの入門書としても最適です」とありますが、確かに本書のいう通り、人工無脳作成にはプログラミングを学ぶ上での基礎があれこれ必要になるので、そういう意味では「人工無脳を作成することは、プログラミング入門としては最適」ということになるかもしれないけど、本書を読んで「Ruby 学んじゃおー」という用途には使えないと思います。が、こういうきっかけであれこれ調べて学習しなきゃダメなんですよ、というメッセージであるなら、それはそれで、という感じ。つーか、まずは僕がそうしろ!(w

…とかゆってなんかくさしてばっかりいるような感じですがそういうこともなくて、最初はつまんないなーとか思ったけど、学習の章あたりからはだんだん面白くなってきて、僕も楽しい人工無脳を作りたいなぁという気分になりました。