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



我不明白lda.collapsed.gibbs.sampler命令输出的这一部分。我不明白的是,为什么不同主题中同一个词的数量不同?例如,为什么对于"测试"一词,当主题 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

对不起,我的长帖子和我的英语不好。

LDA 中的主题分布就是:多项式分布。 这些对应于您上面矩阵的行。 在任何给定主题中看到单词的概率不受限制为任何主题的固定值(或零)。 也就是说,"测试"这个词在一个主题中出现的可能性为3%,在另一个主题中出现的可能性为1%。

:注:如果要将矩阵转换为概率,只需行归一化并添加先验的平滑常量即可。 此处的函数仅返回上次 Gibbs 采样扫描中的原始分配数。

最新更新