21

この質問は以前に数回 (ここ とここで) 尋ねられたようですが、まだ回答がありません。コメントで示されているように、これは質問の以前のあいまいさが原因であることを願っています。もう一度同様の質問をしてプロトコルを破っている場合は申し訳ありませんが、それらの質問には新しい回答が表示されないだろうと思っていました.

とにかく、私は潜在的ディリクレ割り当てを初めて使用し、テキストデータの次元削減の手段としての使用を検討しています。最終的には、非常に大きな単語の袋から小さなトピックのセットを抽出し、それらのトピックをモデルのいくつかの変数として使用して分類モデルを構築したいと考えています。トレーニング セットで LDA を実行することに成功しましたが、問題は、同じトピックのどれが他のテスト データ セットに現れるかを予測できることです。私は現在 R の topicmodels パッケージを使用していますが、他のパッケージを使用して別の方法がある場合は、それも受け入れます。

これが私がやろうとしていることの例です:

library(topicmodels)
data(AssociatedPress)

train <- AssociatedPress[1:100]
test <- AssociatedPress[101:150]

train.lda <- LDA(train,5)
topics(train.lda)

#how can I predict the most likely topic(s) from "train.lda" for each document in "test"?
4

1 に答える 1

31

Ben の優れたドキュメント リーディング スキルの助けを借りて、posterior() 関数を使用することでこれが可能になると思います。

library(topicmodels)
data(AssociatedPress)

train <- AssociatedPress[1:100]
test <- AssociatedPress[101:150]

train.lda <- LDA(train,5)
(train.topics <- topics(train.lda))
#  [1] 4 5 5 1 2 3 1 2 1 2 1 3 2 3 3 2 2 5 3 4 5 3 1 2 3 1 4 4 2 5 3 2 4 5 1 5 4 3 1 3 4 3 2 1 4 2 4 3 1 2 4 3 1 1 4 4 5
# [58] 3 5 3 3 5 3 2 3 4 4 3 4 5 1 2 3 4 3 5 5 3 1 2 5 5 3 1 4 2 3 1 3 2 5 4 5 5 1 1 1 4 4 3

test.topics <- posterior(train.lda,test)
(test.topics <- apply(test.topics$topics, 1, which.max))
#  [1] 3 5 5 5 2 4 5 4 2 2 3 1 3 3 2 4 3 1 5 3 5 3 1 2 2 3 4 1 2 2 4 4 3 3 5 5 5 2 2 5 2 3 2 3 3 5 5 1 2 2
于 2013-04-20T12:44:25.967 に答える