かしこいハテブの進捗具合

結構進んだ感じです。


完全な完成系にはまだ遠いけど、メールで推薦エントリを飛ばすぐらいのことは今週末でたぶんできそうな感じ。


最近推薦したきたものだと、下記のような感じで、
「お!!オレ好みのものがあがってんじゃん!!」
って所までは来ました。


下記に、例を挙げてみます。上にあるほど、私好みのエントリということになってます。

Java屋がTomcatRuby on Railsを試すには?(1/2)?@IT:
http://www.atmarkit.co.jp/fjava/special/jruby02/jruby02_1.html


syslogdの限界と次世代シスログデーモン(1/3) − @IT:
http://www.atmarkit.co.jp/flinux/rensai/newlog01/newlog01a.html


小飼弾アルファギークに逢いたい?:#13 シックス・アパート 宮川達彦|gihyo.jp … 技術評論社:
http://gihyo.jp/dev/serial/01/alpha-geek/0031


LinuxのファイルI/Oチューニングに使える「Iotop」 - GIGAZINE:
http://gigazine.net/index.php?/news/comments/20080727_iotop/


仕事の効率を改善することができるすごい壁紙 - GIGAZINE:
http://gigazine.net/index.php?/news/comments/20080724_layered_desktop/


開発生産性が低い方が収入が多いって変だよね - ひがやすを blog:
http://d.hatena.ne.jp/higayasuo/20080723/1216790705


404 Blog Not Found:この夏休みに読むべき本2008年版前編/10作品:
http://blog.livedoor.jp/dankogai/archives/51083027.html


『入門ベイズ統計』の読みどころ - hiroyukikojimaの日記:
http://d.hatena.ne.jp/hiroyukikojima/20080727


見積もりが高いといわれたら。Noという交渉術 | Web担当者Forum:
http://web-tan.forum.impressrd.jp/e/2008/07/23/3636


東証のシステム障害、設定ミスをテストでも見抜けず:ITpro:
http://itpro.nikkeibp.co.jp/article/NEWS/20080722/311271/


暑い夏に最適なひんやり冷たいドリンクのレシピ - GIGAZINE:
http://gigazine.net/index.php?/news/comments/20080728_frozen_drink_recipes/


masuidrive on rails - RailsアプリをチューニングするならNew Relic:
http://blog.masuidrive.jp/index.php/2008/07/19/new-relic/


安全で高速なDNSを提供する「OpenDNS」 - GIGAZINE:
http://gigazine.net/index.php?/news/comments/20060720_opendns/


読売新聞連載「『ニート』の本音」 - Peppermint Blue:
http://d.hatena.ne.jp/yyamaguchi/20080710/p1


Mozilla Re-Mix: Firefox 3のメモリ/ディスクキャッシュを自動的にクリアしてくれるアドオン「Cache Status」:
http://mozilla-remix.seesaa.net/article/102710472.html


で、上記にかなり貢献したのが、ベイズのエンジンの下記の使い方。

//ベイズのエンジンのクラス
public FisherClassifier fc = new FisherClassifierImpl();


//色々省略。トレーニングの済んだFisherClassifier を再ロード
//のような感じ。


//一番一般的な使い方
//何に分類されるか聞く感じ。
//PopFileでいうバケツを聞くメソッド。
String classification=fc.getClassification(bookMark, null);


//こっちが今回使っているメソッド。
//Good_Entryにどれだけ近いか、Bad_Entryにどれだけ近いか
//を取得する。
//戻り値は0〜1のはずで、値が大きいほどそのカテゴリに近い。
double good = fc.getProbabilityForCategory(bookMark, GOOD_ENTRY);
double bad = fc.getProbabilityForCategory(bookMark, BAT_ENTRY);


//Good度?をBad度で割って、この値でソートして、
//自分好みのエントリ順にソートする
sortMap.put(new SortKeyClass(good / bad, bookMark), bookMark);


このようにして、フィルタリングして、ソートされた結果を見ていると「いけんじゃね???」って感じになってテンションが上がってきました。ちなみに、一人分のベイズのエンジンのパーシスタントに4M程度かかっていう強烈なネックはありますけどね・・・・。


後の課題点としては、ある程度ブックマーク数が付かないと良い判断が出来ないと思うので、


昨日〜今日のホットエントリをフィルタリングしたい


って要件には答えるのがきつそうな点。ある程度時間がたって、ブックマークが付きききったエントリには、行けるんじゃないかな・・・・。
とりあえず、自分で使って検証ですね。