从R lda包输出lda.collapsed.gibbs.sampler命令

时间:2014-01-16 17:54:05

标签: r package lda topic-modeling

我不理解lda.collapsed.gibbs.sampler命令的输出部分。 我不明白的是为什么不同主题中相同单词的数字不同? 例如,为什么单词" test"当主题8得到37个时,第二个主题中有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。很抱歉这篇长文和我的英文不好。

1 个答案:

答案 0 :(得分:3)

LDA中的主题分布就是:多项分布。这些对应于上面的矩阵行。在任何给定主题中查看单词的概率不限于任何主题的固定值(或零)。也就是说,'test'这个词在一个主题中可能有3%的发生率,在另一个主题中发生的几率为1%。

n.b。如果要将矩阵转换为概率,只需将行标准化并添加先前的平滑常量。这里的函数只返回上次吉布斯采样扫描中的原始分配数。