繁体   English   中英

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

[英]How to filter term document matrix based on frequency of occurrence of each term

我有一个术语文档矩阵。 我希望将其子集化并仅保留那些出现超过一定次数的术语,即行总和应大于特定数量。 有没有快速实现这一目标的方法 顺便说一句,矩阵是巨大的。

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

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

如果您有兴趣通过最常用的术语减少tdm,您可以这样做:

tdm[your_terms, ] 

希望这可以帮助

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包中定义的“稀疏性”(相对度量)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM