dirichlet-topic.plはあるテキストのジャンルを良く表す単語を見つけてくれるスクリプトです。スムージングは割とちゃんとしているので、stop wordを指定したり、低頻度の単語を削除したりする必要はありません。
Apache License Version 2.0に基づいて配布しており、個人・研究・営利用を問わずぜひ使ってください。面白かったり、何かに使ったらりしたら、このページへのリンクを貼っていただけたら幸いです。
ここからダウンロードできます:dirichlet-topic.pl Ver. 1.0
また、Wikipediaの「IT」・「スポーツ」・「国」に関する記事でテスト用のデータセットを作りました。
パッケージに3つのスクリプトが付いています:
P(t|w)を計算する時に、頻度の低い単語が現実的でない高い値にならないように、Dirichletの事前分布をかけて、スムージングを行なっています:
P(t|w) = (c(w,t) + P(t)*α) / (c(w) + α)
c(.)は各単語、または各単語とトピックの組みの頻度を表します。
より詳しい説明やαの推定法についてはこちら(英語)をご参照ください。