タグ

ブックマーク / labs.cybozu.co.jp (8)

  • IIR の階層的クラスタリングを試す (nakatani @ cybozu labs)

    Pathtraq で Web ページの自動分類を手がけてみて。 Web ページは日々どんどん変わっていくのでフィルタは常に更新されなければいけないんですが、そのためには適切なタイミングに、適切な学習データを用意しなければならない。大変。 メンテナンスフリーが理想ですが、もちろん難しい。 現実的なところとしては「追加学習が必要なことを検知して、適切な学習データの候補を提案してくれる」というものが作りたいなあ……などなど考えているわけです。 そこらへんも含めて、自然言語処理とか機械学習とかそこら辺のお勉強をしてるんですが、実際に手を動かさないとわかんないですよねー。 というわけで、 "Introduction to Information Retrieval" の Chapter 17 "Hierarchical clustering" に沿って、ドキュメントの分類器を作ってみました。 ポイン

  • 本文抽出モジュールを RubyForge に登録しました (nakatani @ cybozu labs)

    以前このブログで公開していました Web ページ(HTML)から文と思わしきテキストを抽出するモジュールを RubyForge に登録、 gem でインストールできるようになりました。 gem install extractcontent といっても、このモジュールは1ファイルで構成されていて、依存関係もないので、以前の公開方法のままでもあまり支障はなかったような気もするんですが、RubyForge に登録する練習もしておきたかったし、gem で入れられる方が便利ですよね? ExtractContent プロジェクトページ http://rubyforge.org/projects/extractcontent/ 一応プロジェクトページの URL も貼り付けておきますが、実質リリースファイル置き場でしかなくて、SCM もまだ使ってません…… また、せっかくリリースするので、 ・「全然 m

  • Kazuho@Cybozu Labs: MySQL のウォームアップ (InnoDB編)

    « DBIx::Printf と LIKE 式 | メイン | メッセージキュー事始め in Perl - コマンドラインクライアントを作ってみた » 2007年10月11日 MySQL のウォームアップ (InnoDB編) サーバの起動直後はデータがメモリ上にないためデータベースの応答速度が遅い、というのは良く知られた話かと思います。MySQL の場合、使っているエンジンが MyISAM であれば、各データファイルをあらかじめ cat ... > /dev/null するなりしてバッファキャッシュに載せておけばいいのですが、InnoDB は独自のキャッシュを持っているのでそういうわけにもいかないように思います。 具体的には、パフォーマンスを最大限発揮するためには OS のキャッシュにではなく、InnoDB のバッファプールにデータをロードすべきであるという点。それに、たとえ OS のキャ

  • Kazuho@Cybozu Labs: MySQL の ORDER BY を高速化

    « MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話 | メイン | なんとなくリフレクション in C++ » 2008年06月20日 MySQL の ORDER BY を高速化 Pathtraq の拡張にむけて、いろいろ技術的な可能性を調査していると、MySQL の ORDER BY に負荷がかかっていることが分かりました。他にもボトルネックはあるのですが、ここは比較的最適化しやすそうだったので、試しに書いてみました。 mysql51-sort-opt.patch やっていることは、ソートルーチンのベタな最適化です。ORDER BY 句によって悪名高き filesort が実行される場合に、最大30%〜50%ほど高速に動作するようになりました。ただ、自分が書く類いのクエリだと、質的には top n sort を実装すべきなので、どうしたものかと思っていま

  • Kazuho@Cybozu Labs: フレンド・タイムライン処理の原理と実践

    « MySQL のクエリ最適化における、もうひとつの検証方法 | メイン | MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話 » 2008年06月09日 フレンド・タイムライン処理の原理と実践 MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話に続きます。 Twitter が注目されるようになって久しい今日この頃ですが、友人の投稿を時系列に並べて表示する、というのは、Twitter に限らず Mixi の「マイミクシィ最新日記」やはてなブックマークの「お気に入り」等、ソーシャルなウェブサービスにおいては一般的な手法です。ですが、この処理 (以下「フレンド・タイムライン」と呼ぶ) は、一見簡単そうに見えて、実装には様々な困難が伴います。記事では、「フレンド・タイムライン」を実現する、プッシュ型とプル型の二種類の手法について、その原

  • Kazuho@Cybozu Labs: MySQL のクエリ最適化における、もうひとつの検証方法

    « メッセージキュー事始め with Q4M | メイン | フレンド・タイムライン処理の原理と実践 » 2008年06月09日 MySQL のクエリ最適化における、もうひとつの検証方法 EXPLAIN を使用して MySQLSQL を最適化するというのは、良く知られた手法だと思います。しかし、EXPLAIN の返す結果が、かならずしもアテになるわけではありません。たとえば、以下のような EXPLAIN を見て、このクエリが最適かどうか、判断ができるでしょうか。私には分かりません。 mysql> EXPLAIN SELECT message.id,message.user_id,message.body FROM message INNER JOIN mailbox ON message.id=mailbox.message_id WHERE mailbox.user_id=2 OR

  • Kazuho@Cybozu Labs: YAPC::Asia 2008 で Pathtraq について話してきました

    « データベースの差分バックアップとウェブサービスのお引っ越し | メイン | メッセージキュー事始め with Q4M » 2008年05月16日 YAPC::Asia 2008 で Pathtraq について話してきました YAPC::Asia 2008 で、Pathtraq の裏側の技術的特徴について話してきました。統計処理を行うウェブサービスを構築する上での問題や解決技法だけでなく、インターネットにおけるロングテールの実測データや、現在のサービス規模等の話も入っていますので、興味ある方はご覧いただければ幸いです。 スライドはこちら: YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service » SlideShare 過去3年間で最大の YAPC::Asia だったのでしょうか。一参加者

  • TAKESAKO @ Yet another Cybozu Labs: 出張 Shibuya.js 24 動画アーカイブ公開

    空前の技術系イベント動画公開ブーム到来、ということで、 2007年9月15日(土) に開催された 出張 Shibuya.js 24(Mozilla 24 ~ Worldwide Continuous Event ~) の動画アーカイブが公開されました。 お待たせいたしました!9月15日~16日に開催されたMozilla 24 の各セッションアーカイブを公開しました。日語、英語の両方が用意されています。 当日は日国内だけでも四つの会場で同時並行で行われていたため、見られなかったセッションもあるかと思います。ぜひこれを機会にサイトを訪れていただければと思います。 アーカイブ公開は、約半年間、2008年4月末まで行われる予定です。この機会をお見逃し無く。。。 Shibuya.JS内の 全セッションが一つの動画(約1時間50分)にまとまっているので、 各セッションの開始時刻を記載しておきました

  • 1