我是R的新手,我目前正在使用 tm 和 lda 包来分析日志。
lda.collapsed.gibbs.sampler 可以采用“初始”参数,并在文档中声明:
初始
单词的初始主题分配列表。它的格式应与返回值的赋值字段的格式相同。如果此字段为NULL,则将使用随机分配初始化采样器。
但是当我尝试迭代传递前一个结果$ assignments作为参数在初始时,我得到一个错误:
> result <- lda.collapsed.gibbs.sampler(data, K,vocab,i, 0.1,0.1, initial = lda_result$assignments, compute.log.likelihood=TRUE)
Error in structure(.Call("collapsedGibbsSampler", documents, as.integer(K), :
STRING_ELT() can only be applied to a 'character vector', not a 'NULL'
我不知道如何摆脱它并实际使用列表。我想要的是通过采取步骤并查看结果来衡量收敛,所以简单地将 i 作为一个更大的数字将无效。
提前致谢! :)
答案 0 :(得分:2)
这里的文档有点不稳定。您需要设置initial=list(assignments = lda_result$assignments)
。更一般地说,initial
是一个必须设置assignments
或同时设置topics
和topic_sums
的列表。