LDA(cdes, k = K, method = "Gibbs", control = list(verbose = 25L, : 输入矩阵的每一行需要包含至少一个非零项
Error in LDA(cdes, k = K, method = "Gibbs", control = list(verbose = 25L, : Each row of the input matrix needs to contain at least one non-zero entry
我有一个包含近 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))
Error in LDA(cdes, k = K, method = "Gibbs", control = list(verbose = 25L, : Each row of the input matrix needs to contain at least one non-zero entry
因为我的子集中没有任何 NA,所以我不明白这个错误信息(这是我第一次使用这个包)
您的某些文档似乎是空的,因为它们不包含任何特征的计数。
您可以使用以下方法删除它们:
cdes <- dfm_trim(df_des, min_docfreq = 2) %>%
dfm_subset(ntoken(cdes) > 0)
我有一个包含近 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))
Error in LDA(cdes, k = K, method = "Gibbs", control = list(verbose = 25L, : Each row of the input matrix needs to contain at least one non-zero entry
因为我的子集中没有任何 NA,所以我不明白这个错误信息(这是我第一次使用这个包)
您的某些文档似乎是空的,因为它们不包含任何特征的计数。
您可以使用以下方法删除它们:
cdes <- dfm_trim(df_des, min_docfreq = 2) %>%
dfm_subset(ntoken(cdes) > 0)