我有一个术语文档矩阵。我希望对其进行子集化并仅保留出现次数超过一定次数的术语,即行总和应大于特定数字。有什么快速的方法来实现这一点吗?顺便说一句,矩阵很大。
问问题
1603 次
2 回答
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包中定义的“稀疏性”(相对度量)。
于 2017-06-14T22:27:43.763 回答
0
是的,所以如果你使用这个tm
包,有一个 findFreqTerms 函数,你可以在函数内部指定你想要的低频率:
tdm # your term document matrix
your_terms <- findFreqTerms(tdm, lowfreq = [...])
如果您有兴趣通过最常见的术语减少 tdm,您可以这样做:
tdm[your_terms, ]
希望这可以帮助
于 2017-03-03T08:09:31.690 回答