RSS clustering

id:kawasakiさんの日記「Google Newsが自分で作れる?」でも取り上げられてますが、O'Reilly Radarで知った英語圏でのRSS Clustering実装例。
rssclustering

一般的なBlog,SBM等が生成するRSSクラスタリングが適用できないかと思って、クラスタリングについて5月くらいから調査していたので、個人的にちょうどいいタイミングの記事。

簡単にまとめると、

  • 集約期間を変更可能にするため、RSSフィードから取得したデータはDBに保存
  • 句読点、stop word(i,you,and,to,world,national,a等)の削除
  • 単語を基本形にする(fires,fired,fireは同じものとして扱う)
  • 集約結果表示時は一つの情報ソースを複数のクラスタに重複表示しない(これは重複表示したほうがよい場合もあるかもしれないけど、データ量が多くなるのと、重複クラスタリングされたクラスタが最適とは限らないため)
  • 1,154記事を処理する場合、Pentium 4 1.4GHzで2分くらいの処理時間
  • 集約結果の品質評価方法が無い(よって、最適な改善方法も不明)
  • 情報ソースはnewsサイトに限定(newsサイトは記事内容を的確に伝えるため、日時、場所、事柄の書き方にある程度のフォーマットがあるので集約しやすい。雑誌等では難しい)
  • 2時間ごとに更新

RSSに限らないネット上の情報の集約が日本語で実装されているものは、僕が知っているものではGoogle News読兎ニュースくらいです。ただ、この二つはmonkey newsと同様に、newsサイト限定で集約しているようなので、Blog,SBM等が生成する一般的なRSSクラスタリングされたものは知りません。恐らく情報ソースのフォーマットの問題でそうしているのではないかと思っています。

newsサイトのクラスタリングなら既に存在し、よく知られているGoogle newsにこれから対抗しても無駄だ、というのも一般的なRSSクラスタリングをしたい理由です。

英語だと単語抽出と、基本形への変化はスペースで区切ればいいので(日本語に比べると)簡単ですが、日本語に同処理を適用する場合、単語抽出に形態素解析n-gramを使うのが一般的です。n-gramはある単語に対するヒット率は形態素解析に比べて多いようですが、検索品質では形態素解析のほうが上回るようです(この辺りはまだ勉強中なので間違っているかも)。

Google検索も日本語検索には形態素解析を使っているようで、Basis technologyの辞書を使っているらしいです。

これは、GoogleがBasis technologyという会社の辞書を利用して、
日本語の形態素解析を行っていることに起因しています。ちなみに
Basisの辞書(というか形態素解析システム)は優秀で、Amazonなど
の企業にも採用されているものです。
形態素解析と検索エンジンの辞書 -SEOルートディレクトリ by ジェフ・ルート-

個人で形態素解析するとなると、HatenaKeywordCloudでも使ったMeCabや、Chasenなどを使うことになりそうですが、形態素解析を使う場合は辞書のメンテナンスが重要です。辞書に登録されていない新出単語(2ch用語とか?)を個人が人力で登録していくのはあまりにも無謀です。それではてなキーワードを使ってみたりしていたのです。HatenaKeywordCloudでも実験したとおりにMeCabで取り出した形態素はてなキーワードに問い合わせると取りこぼしがある、かと言ってはてなキーワードのみでは不安が(実際にやってはいないので結果はわかりませんが)。MeCabはてなキーワードを全て名詞として登録すればキーワード自体は広範囲に取得できますが、形態素解析的に正しくないと思うのでこれもどうかと思っています。あとはてなキーワードも、キーワードとしてある程度認識されるまでに時間がかかるので、新出キーワードには弱そう(例えばモヒカン族、今は登録されている様子。microformat等)。でもこれはそういうものなのでしょうがないのかもしれませんが。

ということで、まったくまとまっていませんが、日本語は難しいということは素人にも分かりました。この分野も強力(だと思われる)な辞書を持っているGoogleが制覇してしまうのかなぁ、となんとなく思っています。いま書いていてふと思ったのは、可能性があるとすればはてなブックマークのタグ情報?どういう使い方をするとよいかは、思いつきなのでまだわかっていませんが。

ちなみにGoogle Newsの実装に関する記事は、ついに明かされるGoogle Newsの秘密 - CNET Japanがまとまっていていい感じです。