前回の記事で思ったより勉強になったので、調子に乗って再び id:tsubosaka さんのJavaで書かれたLDAの実装をC++で書いてみました。ベースとなる手法は同じく collapsed gibbs sampling(Griffiths and Steyvers, PNAS, 2004) です。動作確認は g++ 4.3.3 (Ubuntu 9.04) で行っています。ソースコードは前回のARROWよりかなり長くなってしまいました。今度から長い場合は github あたりにアップするかもしれません。 2010.01.08追記: pcomp.h のソースが抜けていたので追加しました。 2010.01.09追記: メモリのバグを修正しました。 インストール g++ -Wall -O2 -c lda.cc g++ -Wall -O2 -c main.cc g++ -Wall -O2 -o l