集合知イン・アクション

本書は2008年10月に発売された「Collective Intelligence in Action」の邦訳されたものです。
集合知とはどういうものなのかから始まり、Javaを用いて実際に集合知を扱うアプリケーションの作り方まで広い内容が書いてあります。
データマイニングのような話題ばかりではなく、既存のブログ検索から情報を取得してきたり、検索の仕組みの作り方やタグクラウドの実現方法、クローリングについてなど集合知の収集方法についても言及がなされています。

集合知プログラミングとの違い

集合知を扱った本としては「集合知プログラミング」が有名だと思います。
集合知プログラミングは各手法について解説と実際にコーディングを行うことでその動きを知ることで理解を進めていくという形になっていました。
集合知イン・アクションは、実際に使うことを意識してスキーマやクラスの設計から考えている点と、簡単な解説はありますが自分でアルゴリズムを実装しているところもありますがどちらかといえばLuceneやWekaのようなライブラリを用いることが多い点が大きな違いではないかと思いました。また、全般的に検索に関する話が多かったというのも違いといえます。
PythonJavaという言語の違いもあるのかもしれませんが、集合知プログラミングのほうはPythonを知らなくても結構読めたのですが、こちらはJavaを知らないとソースコード部分に関しては厳しいかもしれません。

LuceneやWekaなどの使い方を知る本として

Java全文検索エンジンであるLuceneデータマイニングツールであるWekaやJDM(Java Data Mining)APIといった、名前は聞いたことがあるけど日本語の情報がなかなかないJavaのライブラリなどのコードが載っているので、これらを使ってみようと思っている人にとって参考になるかもしれません。

日本語の扱いについて

本文では元が英語で書かれていたため日本語で発生するような問題については言及されていないのですが、付録として形態素解析はてなを使った日本語対応のコードも載っています。

個人的に興味深かった点

タグづけのアーキテクチャ

3.4で触れられているのですが、タグ付けのアーキテクチャとして3つ紹介されています。
最近のWebアプリケーションだとタグはよく実装される機能の1つだと思いますが、パフォーマンスやスケーラビリティを意識するとどのように実装するのがいいのか少し悩むところでもありますので、ここで触れられているスキーマ設計を参考にしてみるのもいいのではないでしょうか。

クローリング

インテリジェントなクローラについて6章に載っています。
クローラを作るときに意識しておくことや拡張する上で考えるべきことを決定するのヒントになるのではないかと思いました。

全体的な感想

500ページ近くある非常に厚い本ですので、全部読むというよりは自分の興味のあるところだけを拾い読みする形で読んでいます。
スケーラビリティについて言及してあったりちょっとしたテクニックが載っていたりと、あまり興味がない部分でも個々の詳細を見ていると参考になるところが見つかります。
Javaをやっていない人だとコード部分を読むのはきついと思いますが、アーキテクチャの話などは参考になるのではないかと思いました。