我不明白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 采样扫描中的原始分配数。