2

lda.collapsed.gibbs.sampler コマンドからの出力のこの部分がわかりません。私が理解できないのは、異なるトピックの同じ単語の数が異なるのはなぜですか? たとえば、「テスト」という単語の場合、トピック 8 が 37 個のトピックを取得するときに、2 番目のトピックに 4 個あるのはなぜですか。異なるトピックの同じ単語の数は、同じ整数または 0 であってはなりませんか?

それとも、何か誤解していて、これらの数字はトピックの単語数を表していませんか?

$topics
      tests-loc fail  test testmultisendcookieget
 [1,]         0    0     0                      0
 [2,]         0    0     4                      0
 [3,]         0    0     0                      0
 [4,]         0    1     0                      0
 [5,]         0    0     0                      0
 [6,]         0    0     0                      0
 [7,]         0    0     0                      0
 [8,]         0    0    37                      0
 [9,]         0    0     0                      0
[10,]         0    0     0                      0
[11,]         0    0     0                      0
[12,]         0    2     0                      0
[13,]         0    0     0                      0
[14,]         0    0     0                      0
[15,]         0    0     0                      0
[16,]         0    0     0                      0
[17,]         0    0     0                      0
[18,]         0    0     0                      0
[19,]         0    0     0                      0
[20,]         0    0     0                      0
[21,]         0    0     0                      0
[22,]         0  361  1000                      0
[23,]         0    0     0                      0
[24,]         0    0     0                      0
[25,]         0    0     0                      0
[26,]         0    0     0                      0
[27,]         0    0     0                      0
[28,]         0 1904 12617                      0
[29,]         0    0     0                      0
[30,]         0    0     0                      0
[31,]         0    0     0                      0
[32,]         0 1255  3158                      0
[33,]         0    0     0                      0
[34,]         0    0     0                      0
[35,]         0    0     0                      0
[36,]         1    0     0                      1
[37,]         0    1     0                      0
[38,]         0    0     0                      0
[39,]         0    0     0                      0
[40,]         0    0     0                      0
[41,]         0    0     0                      0
[42,]         0    0     0                      0
[43,]         0    0     0                      0
[44,]         0    0     0                      0
[45,]         0    2     0                      0
[46,]         0    0     0                      0
[47,]         0    0     0                      0
[48,]         0    0     4                      0
[49,]         0    0     0                      0
[50,]         0    1     0                      0

これが私が実行するコードです。

library(lda)
data=read.documents(filename = "data.ldac")
vocab=read.vocab(filename = "words.csv")

K=100
num.iterations=100
alpha=1
eta=1


result = lda.collapsed.gibbs.sampler(data, K,vocab, num.iterations, alpha,eta, initial = NULL, burnin = NULL, compute.log.likelihood = FALSE,trace = 0L, freeze.topics = FALSE)

options(max.print=100000000) 
result

PS。長い投稿と私の下手な英語で申し訳ありません。

4

1 に答える 1

3

LDA のトピック分布は、多項分布です。これらは、上記のマトリックスの行に対応しています。特定のトピックで単語が表示される確率は、どのトピックについても固定値 (またはゼロ) に制限されません。つまり、「テスト」という単語は、あるトピックでは 3% の確率で発生し、別のトピックでは 1% の確率で発生する可能性があります。

nb行列を確率に変換したい場合は、行を正規化し、以前の平滑化定数を追加するだけです。ここでの関数は、最後の Gibbs サンプリング スイープでの未処理の割り当て数を返すだけです。

于 2014-01-24T06:33:30.210 に答える