我是文本挖掘主题的初学者。当我在具有 996165 个观测值的庞大数据集上运行 LDA() 时,它显示以下错误:
LDA(dtm, k, method = "Gibbs", control = list(nstart = nstart, :
输入矩阵的每一行都需要包含至少一个非零条目。
我很确定我的语料库中也没有缺失值。 “DocumentTermMatrix”和“simple_triplet_matrix”的表是:
table(is.na(dtm[[1]]))
#FALSE
#57100956
table(is.na(dtm[[2]]))
#FALSE
#57100956
有点困惑“57100956”是怎么来的。但是由于我的数据集非常大,我不知道如何检查为什么会发生此错误。我的 LDA 命令是:
ldaOut<-LDA(dtm,k, method="Gibbs", control=list(nstart=nstart, seed = seed, best=best, burnin = burnin, iter = iter, thin=thin))
谁能提供一些见解?谢谢。
最佳答案
在我看来,问题不是缺失值的存在,而是所有 0 行的存在。
要检查它:
raw.sum=apply(table,1,FUN=sum) #sum by raw each raw of the table
然后你可以删除所有 0 的原始数据:
table=table[raw.sum!=0,]
现在表应该包含所有“非 0”原始数据。
关于text-mining - r : each row of the input matrix needs to contain at least one non-zero entry 中的 LDA 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37802380/