所以,我正在尝试将topicmodels
包用于R
(在约6400个文档的语料库中有100个主题,每个约1000个单词)。该过程运行然后死亡,我认为因为内存不足。
所以我尝试缩小lda()
函数作为输入的文档术语矩阵的大小;我想我可以在生成文档术语矩阵时使用minDocFreq
函数。但是当我使用它时,它似乎没有任何区别。这是一些代码:
以下是相关的代码:
> corpus <- Corpus(DirSource('./chunks/'),fileEncoding='utf-8')
> dtm <- DocumentTermMatrix(corpus)
> dim(dtm)
[1] 6423 4163
# So, I assume this next command will make my document term matrix smaller, i.e.
# fewer columns. I've chosen a larger number, 100, to illustrate the point.
> smaller <- DocumentTermMatrix(corpus, control=list(minDocFreq=100))
> dim(smaller)
[1] 6423 41613
相同尺寸和相同数量的列(即相同数量的术语)。
任何意义上我做错了什么?感谢。
答案 0 :(得分:15)
你的问题的答案就在这里:https://stackoverflow.com/a/13370840/1036500(给它一个upvote!)
简而言之,tm
包的更新版本不包含minDocFreq
,而是使用bounds
,例如,您的
smaller <- DocumentTermMatrix(corpus, control=list(minDocFreq=100))
现在应该是
require(tm)
data("crude")
smaller <- DocumentTermMatrix(crude, control=list(bounds = list(global = c(5,Inf))))
dim(smaller) # after Terms that appear in <5 documents are discarded
[1] 20 67
smaller <- DocumentTermMatrix(crude, control=list(bounds = list(global = c(10,Inf))))
dim(smaller) # after Terms that appear in <10 documents are discarded
[1] 20 17