Programming Collective Intelligence(まだ下読み段階)
Collective Intelligenceという本を読もうとしていて、とりあえず下読みというか、拾い読みをした。内容はというと、Collaborative Filtering、k-Nearest-Neighbourによるクラスタリング、Neural Network、Page Rankといったよく知られたアルゴリズムを使ったデータ処理遊びといった趣き。概念の説明だけじゃなくPythonを使ったコードもあり、データはdel.icio.usなどのWebサイトからWeb APIで入手するなど、実践的に学べるようになっている。スバラシイ。
Programming Collective Intelligence: Building Smart Web 2.0 Applications
- 作者: Toby Segaran
- 出版社/メーカー: Oreilly & Associates Inc
- 発売日: 2007/08
- メディア: ペーパーバック
- 購入: 3人 クリック: 117回
- この商品を含むブログ (31件) を見る
本書にあるコードを試してみたくなったんだけど、久しぶりにRubyを使ってみたいなぁと思っていたところで、じゃあRubyで書いてみようかという気になった。ただ、本書ではPythonの非標準ライブラリをいろいろ使っているので、それらに相当するものがRubyにないと面倒だ。それでちょっとRubyのライブラリを物色してみた。
この本で使われるPythonのライブラリは
- Universal Feed Parser: RSS/Atomパーサ
- Python Imaging Library: 画像処理・図形描画
- Beautiful Soup: HTMLパーサ
- pysqlite: SQLite
- NumPy: 行列計算
- matplotlib: グラフ描画
- pydelicious: del.icio.us API
- LIBSVM(C++での実装だがPythonのラッパーが付属): Support Vector Machine
いろいろあるもんだ。PILとNumPyにはすでにお世話になったことがあって、すごく便利。ところでBeautiful Soupってネーミングはなんなのだ。
これらの各ライブラリに対応するものがRubyにあるかどうか調べた結果が次のもの
- Ruby-Feedparser: http://home.gna.org/ruby-feedparser/
- RMagick: http://rmagick.rubyforge.org/
- Hpricot: http://code.whytheluckystiff.net/hpricot/
- SQLite/Ruby: http://rubyforge.org/projects/sqlite-ruby
- NArray: http://narray.rubyforge.org/index.html.ja
- Ruby/PGPLOT: http://pgplot.rubyforge.org/
- ?: del.icio.usのAPIはXMLのパーサがあれば問題なさそう。
- RubySVM: http://rubysvm.cilibrar.com/ (LIBSVMのラッパー)
使い勝手や昨日の多寡はあるだろうけど、同じようなものはあるみたい。ということは、Rubyでもこの本のコードを真似るのも面倒なことではないようだ。
RubyForgeを眺めてるとβ版扱いのものが多くて、完成度の高いライブラリはまだまだ少ないのかなぁと感じた。バージョン番号の付け方が控えめなだけなのかもしれないけど。