R tm:巨大的DocumentTermMatrix,如何设置术语频率绑定以提取新的DTM

Yan*_*ngJ 3 r text-mining sparse-matrix bigdata tm

使用R tm,我有一个术语doc矩阵:

文档术语矩阵(16977术语,29414文档)

非稀疏条目:355000/499006478稀疏度:100%最大术语长度:7加权:术语频率(tf)

为了进一步分析,我必须将术语数限制为2425.

如何通过在例如20以上的频率中包含freq来生成新的dtm?

由于矩阵很大,传统的方法as.matrix不能应用.

谢谢!

Ben*_*Ben 5

这样的东西可能有用...使用来自slam包的函数将DTM索引为一个简单的三元组矩阵,这将使您不必将其转换为密集矩阵.

library(slam)
library(tm)
data(crude)
dtm1 <- DocumentTermMatrix(crude)


# Find the total occurances of each word in all docs
colTotals <-  col_sums(dtm1)

# keep only  words that occur >20 times in all docs
dtm2 <- dtm1[,which(colTotals > 20)]

> dtm1
A document-term matrix (20 documents, 1266 terms)

Non-/sparse entries: 2255/23065
Sparsity           : 91%
Maximal term length: 17 
Weighting          : term frequency (tf)

> dtm2
A document-term matrix (20 documents, 12 terms)

Non-/sparse entries: 174/66
Sparsity           : 28%
Maximal term length: 6 
Weighting          : term frequency (tf)
Run Code Online (Sandbox Code Playgroud)

这是否适用于您的数据并回答您的问题?