2011/08/31 を持ってシムエントリの運用を終了します

2008年2月より運用しておりました『シムエントリ』は、2011/08/31をもってサービスを終了します。

■お願い

折角ブログパーツを貼付けていただきましたが、こちらを外していただけますでしょうか。外し忘れられている場合は、2011/09/01より『サービス終了』の旨のメッセージのみを出力する予定です。

登録いただいているブログのURI情報は、サービス終了を持って削除されます。改めて削除申請を行っていただく必要はありません。

■背景

端的に申し上げますと、メンテナンスを行う意欲と時間が確保しづらくなったのが背景です。折角使っていただいている方がいるのですが、放置するのもどうかと考えまして、サービス終了を決断しました。

また、現在は Tospy をはじめとした優秀なソーシャルメディア検索エンジンも登場し、その中に類似度の高いブログを抽出する機能があります。そちらの方がリアルタイム性も高く、かつ性能も上です。私の開発したツールではとても力が及ぶものではありません。

■最後に

本サービスをご利用、および応援いただいたみなさま、どうもありがとうございました。私自身も、自然言語処理の学習の一環としてこのサービスを提供していましたが、教科書だけでは得られない様々な知識を得ることが出来、非常に有意義でした。

また、何らかしらのサービスを開発した際には、どうぞよろしくお願いします。

【シムエントリ】更新時刻が変更になりました

シムエントリご利用の皆様へお知らせです。

■更新が1日2回になりました

これまで、更新は午前2:00からの1日1回のクロールのみでしたが、10月18日(月)より1日2回体制に変更しました。更新時刻は、2:30と16:30となります。クロール完了から類似ブログ計算まで4〜5時間を要しますので、実際に反映されるのはその計算後となります。この点は変更ありません。

これは、クロールおよび計算を行うサーバを自宅サーバから外部のVPSに移設したことによるものです。

今後は、クロール回数の増加、および計算をすべて行わずずリクエストベースで行う形に変更し、より素早く反映できるようにしようかと考えております。気が向いたらやります。

【おまけ】

・なぜ2:30と16:30なのか

まず、グラフをご覧ください。

BlogPosts

これは、シムエントリのサーバに蓄積されているブログ記事が更新された時刻のみを抽出したものです。縦軸が記事数、横軸が時刻(時)です。これを見たところ、1〜2時頃に1回目の落ち込み、16〜17時頃に2回目の落ち込みがあります。

1回目を2:30にしているのは、この時間は1:00頃に計算しても結果が出る6時頃は見ていただける方が少なくわざと遅らせて7時頃の反映を狙っていること、そして16:30はちょうど落ち込んだところを狙いつつ21:00頃のピークタイムに反映されている状況を見てもらいやすいようにしたためです。

・VPS移行のメリット

家で使っているマシンよりも最近のVPSのほうがいいマシンであること、そして電気代が下がることであります。

RSSフィードの登録受付も引き続き行っております。下記からどうぞ。

http://se.koemu.com/

【シムエントリ】ブログパーツ枠にもCSSが適用できるようになりました

シムエントリご利用の皆様へお知らせです。
これからご案内する変更は、直ちにご利用いただける状態となっております。

■ブログパーツの枠に独自のCSSクラスを定義できるようになりました

これまでは類似記事一覧部分に対して、ユーザ独自のCSSファイルが定義できておりましたが、それを枠を表示するIFRAME部分にも適用を拡大いたしました。より、ご自身のブログに合わせたデザインを適用できるようになります。ぜひお試しください。

適用方法は次の通りです。

<!-- Sim entries -->
<script charset="utf-8" src="http://se.koemu.com/js/sim-entries.js" type="text/javascript"></script>
<script type="text/javascript">writeSimilarList( EntryURI, [CSS URI], [CSS CLASS] );</script>
<!?? / Sim entries ??>

  • CSS URI: 類似記事一覧のCSSファイルを定義します。以前から存在したオプションです。
  • CSS CLASS: ブログパーツ枠を表示するIFRAMEタグのCSSクラス名を定義します。新オプションです。

気をつけていただきたいのが、”CSS CLASS“で定義するIFRAME部分のクラス名はご自身のブログ側で定義しているCSSが適用されるため、ブログ側のCSSについても編集をお願いいたします。

本機能の実装にあたっては、 @photo_pierre さんにご協力をいただきました。この場を借りて御礼申し上げます。ありがとうございました。

RSSフィードの登録受付も引き続き行っております。下記からどうぞ。
http://se.koemu.com/

【シムエントリ】抽出対象を60日以内にしました ほか

シムエントリご利用の皆様へお知らせです。
これからご案内する変更は、本日のアップデートより反映されております。

■抽出対象エントリを60日以内に絞りました

類似エントリとして抽出される対象の記事を、計算実行日から60日以内に絞りました。これは、あまりに古い記事が出ますと記事の「鮮度」が低く、計算上類似度が高かったとしても価値ある情報として使いづらいのでは、と言う判断からです。

なお、基準となる記事については、RSSフィードにさえ届いていれば60日を過ぎても類似度を計算します。すなわち、2009年10月に書いた記事の類似エントリは直近60日以内に書かれたエントリがピックアップされます。

■広告を除外する仕組みを改善しました

今までも広告フィードを除外する仕組みを導入しておりましたが、最近新しい形式が登場しておりましたのでそれも対象となるようにしました。もし、新しい形式の広告が載ってしまうようでしたら、どのような記事かURIを教えていただけますと助かります。

■追伸

引き続きRSSの登録も受付中です→シムエントリ トップページからどうぞ。

【おまけ】

60日以内と決めるにあたり、現在シムエントリのバッチサーバが蓄えている期間別データ割合を調査してみました。

30日以内 56.3%
45日以内 61.1%
60日以内 64.4%
90日以内 69.1%

上記より、データベースの3分の2程度がカバーできる日を探しまして、結論を60日としました。

【シムエントリ】記事抽出時にNaive Bayesを採用しました

シムエントリご利用の皆様へお知らせです。
これからご案内する変更は、本日のアップデートより反映されております。

■Naive Bayesを採用しました

類似記事算出時、これまでシムエントリに登録されているすべての記事同士で突合せを行っていました(詳細は「【シムエントリ】 代表キーワードによる検索に変わります」)。今回、記事同士の突合せの前にNaive Bayesによる仕分けを行うように変更いたしました。

これにより、検索の方法が次の通りに変わります。

  1. 最新のRSSフィードを取得する。
  2. 形態素解析を行う。
  3. Naive Bayes アルゴリズムを利用し、すべての記事に対してカテゴリ分けを行う。
  4. カテゴリ内のすべての記事を突合せ、類似記事を探し出す。

Naive Bayes の詳細については、「ナイーブベイズによるテキスト分類体験アプリ – 睡眠不足?!」にてサンプルと共に解説されています。興味がある方はぜひその動きをご覧ください。

対象記事が増えます

最新のぽぷるのデータを追加し、抽出される記事の母数が増えております。

ぽぷる」は、河野さんとその協力者の方が作成されたブログホワイトリストです。シムエントリはこのデータを利用させていただいております。いつもありがとうございます。

類似記事の変化が発生します

上記の変更により、類似記事の抽出結果の傾向が変わります。

また、Naive Bayes で仕分けを行う際に利用している教師データ(仕分けの元となるデータ)は引き続き編集を行っておりますため、この後も変化が起こる事が考えられます。あらかじめご了承ください。

■追伸

引き続きRSSの登録も受付中です→シムエントリ トップページからどうぞ。

【おまけ】

・Naive Bayes 採用の理由

結論から言うと、計算量を減らすためです。今までですと、1万件の記事を探すために 10,000 * ( 10,000 – 1 ) =?99,990,000 回の計算を行う必要がありました。ここで、たとえば最初に数が均等な10個のカテゴリに分けておくと、 1,000 * ( 1,000 – 1 ) * 10 = 9,990,000 回 となり、約1桁分の計算量を減らせます。その仕分けに、 Naive Bayes が役立ちました(Complement Naive Bayes というのもあります)。しかし、そう簡単に行かない事もわかりました。

・教師データ

Naive Bayers を利用し始めましたが、教師データの選定と分量がうまい事いっておりません。現状ですと、カテゴリを分けるときにグループごとの件数に大きなむらが出てしまっており、先の理屈ほど計算量を落とせていません。このあたり、試行錯誤し続ける必要がありそうです。