ブログの記事同士を結ぶブログパーツ『シムエントリ』を作りました。
このブログでも20日の未明から各エントリの文末で稼動しています。
【シムエントリ】http://se.koemu.com/

■どんなサービスか?
このサービスに登録いただいたブログを対象に、自ブログの記事と近い内容の記事を、エントリごとにリストアップするブログパーツです。
基本はブログパーツとしての提供ですが、JSON形式のデータを返すAPIもあわせて実装しています。

■用途の例
「自分の書いたエントリは、ほかの人はどのように書いているのかを知りたい。」
「自分のブログへ、同じ興味を持った方により多くを訪ねてもらえるようにしたい。」
「読者として、類似のエントリをたどってより知識や興味を深めていきたい。」
主に上記の用途を想定しています。
これから、サブタイトルを『記事同士でブログをむすぶブログパーツ』としました。

■システム概要
2台体制で動いています。
自宅サーバ側: 類似度の計算
公開サーバ側: 類似度の情報のやり取り・サービス登録管理

■中身について
記事の類似度を測る方法として、ベクトル空間モデル(TF*IDF)を用いています。
簡単に言うと、それぞれの文章に含まれている単語の出現頻度(tf)をマッチングさせて、その頻度が高いものから順にブログパーツへピックアップされます。
また、収集した全文章に含まれている単語の出現頻度(df)を出現頻度の情報に掛け合わせ、重要な単語が比較のウェイトが高まるようにしています。
詳細は、下記の記事や次の書籍をご覧ください。
http://www.ep.u-tokai.ac.jp/~kikn/IR2006/
http://www.r.dl.itc.u-tokyo.ac.jp/~nakagawa/infoDB/syllabus.html

■もっと細かい話について
類似度の計算は、1時間に1回、自宅のサーバが行っています。そのため、投稿して間もない記事は表示まで少々遅延します。
単語の分かち書きについてはMeCabを用いています。
DFの母数は、登録されているブログの全記事となっています。従いまして、登録数が増えれば増えるほど、IDFの精度が変わってくるかと思います。
IDF算出時のlogの底はeです。log2を使う方は今回は採用していません。ただし、このパラメータは今後変更する可能性があります。
まだ登録数が少ないため、自分のブログのエントリも類似のものとしてピックアップされるようにしています。類似、という意味で寛容に見ていただけたら幸いです。

■やりたいこと
リアルタイム反映。
全文フィードできていないRSSフィードでも、全文を取得できるような仕組みを作る。できれば、ブログに限らず広くできればいいなと思っています。
IDFの精度をどのように管理するか。できればGoogleのn-gramデータくらいにしたいけど今の環境だと難しそう。
まだ一杯出てきそうなのでそのつど考える。

■リリースに当たって
10年前にオンラインソフトを作っていたのですが、このたび久々に公にアプリケーションを公開しました。
皆様に使っていただけるようになるのか心配ですが、時間の許す限り『使ってみよう!』というわくわく感を高められるサービスに改善していくつもりです。
最後に、このサービスを立ち上げるにあたり、インターネット上に公開されている様々なライブラリ・ノウハウにお世話になりました。インターネットの力を改めて感じずにはいられません。この場を借りて御礼申し上げます。

シムエントリ、どうぞよろしくお願いします。

「ブログを記事で結ぶブログパーツ『シムエントリ』をリリース」に8件のコメントがあります
  1. 縲後す繝?繧ィ繝ウ繝医Μ縲阪rFC2繝悶Ο繧ー縺ォ險ュ鄂ョ縺吶k譁ケ豕

    蜈域律縲√≠繧区婿縺九i?亥錐蜑阪?莨上☆縲ゆサ・蠕後&繧難シ峨?√%繧薙↑髱槫?髢九さ繝。繝ウ繝医r縺?◆縺?縺阪∪縺励◆縲ゅす繝?繧ィ繝ウ繝医Μ縺ィ縺?≧縺ョ繧定?蛻?b菴ソ縺?…

  2. にいみさん>
    いつもご利用いただきありがとうございます。また、ご連絡いただきましてありがとうございました。
    上記のURI、私のほうで対象フィードから削除いたしました。
    現在、データベースのアップデートを行っていまして、6時間程度で新しい情報が反映される予定です。
    よろしくお願いいたします。

  3. はじめまして。
    シムエントリを使わせていただいてます。
    シムエントリで表示されたリンクをクリックしたら、変なアプリをインストールしようとするサイトに飛んでしまいました。
    そういったサイトの登録を解除することは出来ますか?
    因に、URLは
    ttp://blog.yam.com/rong7332/
    です。
    よろしくお願いします。

  4. ブログを記事単位で結ぶ「シムエントリ」…

    ブログ単位では「 あわせて読みたい 」というブログパーツがありますが、それを一歩、押し進めてエントリー単位で表示してくれるのが「シムエントリ」ということになります。

    (more…)

  5. jar^2さん>
    ありがとうございます!
    お気づきの点がありましたらまたコメントください 🙂

コメントは受け付けていません。