情報検索の分野でよく使われるアルゴリズムで「TF/IDF」というものがあります。
ドキュメントの中から「特徴語」を抽出する、といったような用途でよく使われています。
TF/IDFアルゴリズムのくわしい解説はこことかここを見てください。
今回はこのTF/IDFの計算を「簡単」に実現するためのperlモジュールをCPANに上げましたので、ご紹介します。なまえはLingua::JA::TFIDFといいます。
TF/IDFのネックは、製作者の指摘の通り「ある程度のボリュームもったドキュメントセット」というところ。これに対しての解は、wikipediaを使う、もしくは、検索エンジンを使うといったものです。が、確かに面倒くさい。
これに対して、予めドキュメントセットを用意しましたというのが、Lingua::JA::TFIDFの凄いところ。この場合、未知語の対応どうするのという問題が残ります。これに対して、割り切って対応しています。ここがセンス良いなぁと思います。
じつは勘の鋭い人にはすぐにばれてしまいますが、
MeCabが辞書として持っていない「未知語」に対してはどうやってDFを計算しているのか?
、、じ、じつはそれは、、「既知語」の平均値を使ってます。。。
さらには、オプションで都度未知語のDFの数値を調べにいくオプションもあるようです。これをフィードバックする仕組みがあれば完璧ですね。
後で、遊んでみよう