LDA中的错误cdes,k = K,method =“Gibbs”,control = listverbose = 25L,:输入矩阵的每一行需要包含至少一个非零条目

问题描述

我有一个包含近 90 列和大约 20 万个观察值的大型数据集。其中一列包含描述,因此它只是文本。但是,我有 100 条 NA 描述。

我尝试了来自 GitHub 的 Pablo Barbera 的关于主题模型的代码,因为我需要它。

输出

library(topicmodels)
library(quanteda)

des <- subset(finalMSI,!is.na(description),select=c(description))
corpus_des <- corpus(des$description)
df_des <- dfm(corpus_des,remove=stopwords("spanish"),verbose=TRUE,remove_punct=TRUE,remove_numbers=TRUE)
cdes <- dfm_trim(df_des,min_docfreq = 2)

# estimate LDA with K topics
K <- 20
lda <- LDA(cdes,k = K,method = "Gibbs",control = list(verbose=25L,seed = 123,burnin = 100,iter = 500))

LDA 中的错误(cdes,control = list(verbose = 25L,: 输入矩阵的每一行需要包含至少一个非零条目

因为我的子集中没有任何 NA,我不明白这个错误信息(这是我第一次使用这个包)

解决方法

您的某些文档似乎是空的,因为它们不包含任何功能计数。

您可以通过以下方式删除它们:

cdes <- dfm_trim(df_des,min_docfreq = 2) %>%
   dfm_subset(ntoken(cdes) > 0)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...