gpt4 book ai didi

从 R 主题模型中的 DocumentTermMatrix 中删除空文档?

转载 作者:行者123 更新时间:2023-12-03 07:14:48 25 4
gpt4 key购买 nike

我正在使用 R 中的 topicmodels 包进行主题建模。我正在创建一个 Corpus 对象,进行一些基本的预处理,然后创建一个 DocumentTermMatrix:

corpus <- Corpus(VectorSource(vec), readerControl=list(language="en")) 
corpus <- tm_map(corpus, tolower)
corpus <- tm_map(corpus, removePunctuation)
corpus <- tm_map(corpus, removeWords, stopwords("english"))
corpus <- tm_map(corpus, stripWhitespace)
corpus <- tm_map(corpus, removeNumbers)
...snip removing several custom lists of stopwords...
corpus <- tm_map(corpus, stemDocument)
dtm <- DocumentTermMatrix(corpus, control=list(minDocFreq=2, minWordLength=2))

然后执行LDA:

LDA(dtm, 30)

最后一次调用 LDA() 返回错误

  "Each row of the input matrix needs to contain at least one non-zero entry". 

我认为这意味着至少有一个文档在预处理后没有任何术语。有没有一种简单的方法可以从 DocumentTermMatrix 中删除不包含术语的文档?

我查看了 topicmodels 包的文档,发现了函数removeSparseTerms,它可以删除任何文档中没有出现的术语,但没有类似的方法可以删除文档。

最佳答案

"Each row of the input matrix needs to contain at least one non-zero entry"

该错误意味着稀疏矩阵包含一行没有条目(单词)。一个想法是按行计算单词的总和

rowTotals <- apply(dtm , 1, sum) #Find the sum of words in each Document
dtm.new <- dtm[rowTotals> 0, ] #remove all docs without words

关于从 R 主题模型中的 DocumentTermMatrix 中删除空文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13944252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com