2014-01-16 34 views
0

我不明白lda.collapsed.gibbs.sampler命令的這部分輸出。 我不明白的是爲什麼不同主題中同一個詞的數字是不同的? 例如,爲什麼「測試」這個詞在第二個主題中有4個,當主題8獲得37個時。不同主題中相同單詞的數量不應該是相同的整數還是0?來自R lda包的lda.collapsed.gibbs.sampler命令的輸出

或者我誤解了一些東西,這些數字不代表主題中的字數?

$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。對不起,長篇文章和我的英文不好。

回答

1

LDA中的主題分佈就是:多項分佈。這些對應於上面矩陣的行。在任何給定主題中查看單詞的概率不限於任何主題的固定值(或零)。也就是說,「測試」一詞在一個主題中可能出現3%的機會,在另一個主題中出現1%的機會。

n.b.如果要將矩陣轉換爲概率,只需將行標準化並將之前的平滑常量添加到該列中。這裏的函數只返回最後一次吉布斯採樣掃描中的原始分配數量。