1

我有一个术语文档矩阵。我希望对其进行子集化并仅保留出现次数超过一定次数的术语,即行总和应大于特定数字。有什么快速的方法来实现这一点吗?顺便说一句,矩阵很大。

4

2 回答 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 回答