hiromasaさんが作成したWordPress用の関連投稿表示プラグインWordPress Related Post for Japanese(wp-jrelated)を利用して、各記事に過去記事から関連する記事を自動で表示しています。
この wp-jrelated が関連記事を検索する仕組みですが、おおよそ以下のとおりです。
- Yahoo! 日本語形態素解析でコンテンツを解析し、名詞を抽出
- 抽出された名詞を頻出順でカンマ区切りでDBに格納
- 抽出された名詞の中から頻出する名詞トップn個を抜き出し、それを使って過去記事を like 検索
- 関連度合いは、元記事の頻出単語が幾つ関連記事に含まれるかを計算
その際、上位頻出単語の方が重みを持つようにランク付け
※このランク付け方法が中々良くできてます、ソースを読むことをオススメ
これだけで、かなりの精度を出せているので大したモノです。
しかし、単語のMD5ハッシュを取ってデータを格納しているため「WordPress」と「wordpress」、「ついった」と「ツイッタ」を別単語として扱ってしまいます。
また、今は大丈夫ですが、単語を like の or で検索しているため記事数が膨大になった時のパフォーマンスも気になります。
てなわけで、MySQL の全文検索機能を使って、さらに精度アップ&検索速度アップを狙ってみました。
続きを読む