2011年1月7日金曜日

Rubyでレコメンドエンジンを作成

Rubyでレコメンドエンジンを作ってみました.といっても,元々Perlで書かれたものをRubyで書き直しただけです.元のプログラムはWEB+DB PRESS Vol.57の記事[1]で解説されていたものです.今回はソースファイル三つとデータファイル一つです.それらは次のリンクからダウンロードできます.

recommend01.rb
recommend02.rb
recommend03.rb
tags.txt

実行方法と実行結果は,以下のとおりです.

$ ruby recommend01.rb
0.32659863237109
0.408248290463863
0.8
$ ruby recommend02.rb tags.txt
7: 1.00 シリコンバレーから将棋を観る
8: 0.32 「ほんとうのプロダクトアウト開発」 — マツダはなぜ,よみがえったのか?
11: 0.32 Googleを支える技術
1: 0.26 実践ハイパフォーマンスMySQL 第2版
14: 0.07 Perlプログラマのレベル 10
13: 0.00 Perl で CSS セレクタ
2: 0.00 編集距離(Levenshtein Distance)
12: 0.00 HTML::TreeBuilder + CSSセレクタがいい感じな件
6: 0.00 γ符号,δ符号,ゴロム符号による圧縮効果
3: 0.00 最長共通部分列問題(Logest Common Subsequence)
5: 0.00 YAPC::Asia 2009 1日目 「Perlで圧縮」の資料
9: 0.00 Burrows Wheeler Transform と Suffix Array
4: 0.00 YAPC::Asia 2日目 「はてなブックマークのシステムについて」
15: 0.00 ETech 2006 レポート
10: 0.00 モノリスでジャガーをスキャンしたらじゃがボックルが届いた
$ ruby recommend03.rb tags.txt
7: 1.00 シリコンバレーから将棋を観る
8: 0.32 「ほんとうのプロダクトアウト開発」 — マツダはなぜ,よみがえったのか?
11: 0.32 Googleを支える技術
1: 0.26 実践ハイパフォーマンスMySQL 第2版
14: 0.07 Perlプログラマのレベル 10


参考資料
[1] 伊藤 直也: レコメンドエンジン開発に挑戦—関連記事を導き出すしくみを知る, アルゴリズム実践教室 第2回, WEB+DB PRESS, Vol. 57, pp. 156-164, 2010-08

関連資料
[2] MacPortsでrb-mecabをインストール
[3] Rubyでベイジアンフィルタを作成

0 件のコメント: