"トピックモデルによる統計的潜在意味解析"を読んでLDA(Latent Dirichlet Allocation)を実装しました

"トピックモデルによる統計的潜在意味解析"という有益な書物が発売されたので読んでみました。
それなりに高度な話題を簡潔に解説した素晴らしい本で、これを読んだことでよくわかっていなかったCollapsed Gibbs Sampling版のLDAを実装することができました。
トピックモデルに興味がある人は何がなんでも買ったほうがよさそう。

https://github.com/echizentm/LDA


LDAがどういうものかわかっていればp.40〜p.57あたりを読むだけでいけそうです。前にLDAを作ったときは元論文に書いてある変分ベイズを使ったやり方をしていたのですが、多分Collapsed Gibbs Sampling版のほうが簡潔にかけるし直感的にもわかりやすいので良い気がします。
githubにおいてあるサンプルを実行すると以下のような感じになります。
apple(果物、企業)やorange(果物、色)のような複数の意味のある単語が含まれていますが、うまい具合に3つのトピックが抽出されます。

$$ perl sample.pl 3 < documents.json 
topic[0]
google	0.333333333333333
microsoft	0.169204737732657
amazon	0.169204737732657
apple	0.155668358714044
orange	0.0541455160744501

topic[1]
orange	0.293274531422271
apple	0.230429988974642
peach	0.11135611907387
grape	0.110253583241455
pineapple	0.110253583241455

topic[2]
red	0.201236263736264
blue	0.200549450549451
green	0.193681318681319
yellow	0.0686813186813187
magenta	0.0686813186813187