お手軽関連記事検索の手法

はてなブックマークとか、Togetterは
関連記事検索にこちらと連携されてますね(東大ベンチャー企業
http://preferred.jp/index.html


2chradioの関連記事抽出は、

  • 記事タイトルと本文の前半を足したものをYahooのキーワードAPIに送る
  • 重要キーワードを取得する
  • 重要キーワードのトップをタイトルに含む記事 OR トップと二番手を記事のキーワードに含む記事を抽出


というプロセスにしてます。
記事内容まで全部検索すると全然関係ない記事がひっかかりやすいのでやめてます。
タイトルを重視しつつ、Yahooが全体で重要と判断する単語列も参考にするぐらいの按配です。
あくまで字面で判断してるだけなので、関連単語を含む記事とかは分からない。
記事タイトルの類似度がそれなりに計算出来ればGoogleNewsのようなクラスター分類もできると思う。

SELECT title,id,unix_timestamp(datetime),speed,source,source_url FROM chradio 
WHERE (MATCH(title) AGAINST(".$db->quote($w1).")) OR (MATCH(keyword) 
AGAINST(".$db->quote("*DOR ".$w1." ".$w2).")) ORDER BY datetime DESC LIMIT 8

みたいな感じ。SQL苦手なのでよく分からない


ただ、重要単語を抽出する処理は自分で作ってみたいなので、いづれは自作したいと思います。
考え方としては、形態素エンジンが切り出した名詞を連結して未知語に対応しつつ、
TFを調べて重要スコアを計算するみたいな方向でそれなりにつくれると思います。
辞書で持ってない「初音ミク」とか「涼宮ハルヒの憂鬱」を単語して抽出できるかの勝負。


いろんな文章をYahoo!APIに送って、帰ってきたキーワードを集めれば、
未知語とかトレンドワードを多く含む辞書が作れそう(^^;