如何根据每个术语的出现频率过滤术语文档矩阵

时间:2017-03-03 07:36:20

标签: r tm term-document-matrix

我有一个术语文档矩阵。我希望对其进行子集化并仅保留那些出现超过一定次数的项,即行和应大于特定数。有没有快速实现这一目标的方法B.T.W,矩阵很大。

2 个答案:

答案 0 :(得分:0)

是的,所以如果你使用的是tm包,你可以使用一个findFreqTerms函数,你可以在函数里面指定你想要的lowfreq:

tdm # your term document matrix
your_terms <- findFreqTerms(tdm, lowfreq = [...]) 

如果您有兴趣按照最常用的术语减少tdm:

tdm[your_terms, ] 

希望这会有所帮助

答案 1 :(得分:0)

quanteda 包中:

require(quanteda)

myDfm <- dfm(data_char_ukimmig2010, remove_punct = TRUE)
myDfm
## Document-feature matrix of: 9 documents, 1,644 features (81.9% sparse).

# remove infrequent terms
dfm_trim(myDfm, min_count = 10, verbose = TRUE)
## Removing features occurring: 
##   - fewer than 10 times: 1,567
##   Total features removed: 1,567 (95.3%).
## Document-feature matrix of: 9 documents, 77 features (32.5% sparse).

其他选项可用于根据文档频率删除功能,以及 tm 包中定义的“稀疏度”(相对度量)。