我是文本挖掘主题的初学者。当我在具有 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
Run Code Online (Sandbox Code Playgroud)
有点困惑“57100956”是怎么来的。但是由于我的数据集非常大,我不知道如何检查为什么会发生此错误。我的 LDA 命令是:
ldaOut<-LDA(dtm,k, method="Gibbs", control=list(nstart=nstart, seed = seed, best=best, burnin = burnin, iter = iter, thin=thin))
Run Code Online (Sandbox Code Playgroud)
谁能提供一些见解?谢谢。
在我看来,问题不在于存在缺失值,而在于存在全部 0 行。要检查它:
raw.sum=apply(table,1,FUN=sum) #sum by raw each raw of the table
Run Code Online (Sandbox Code Playgroud)
然后你可以删除所有 0 正在做的原始数据:
table=table[raw.sum!=0,]
Run Code Online (Sandbox Code Playgroud)
现在表应该包含所有“非 0”原始数据。
归档时间: |
|
查看次数: |
7057 次 |
最近记录: |