尝试从DocumentTermMatrix中删除单词以使用topicmodel

时间:2013-04-29 20:23:31

标签: r tm topic-modeling

所以,我正在尝试将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

相同尺寸和相同数量的列(即相同数量的术语)。

任何意义上我做错了什么?感谢。

1 个答案:

答案 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