问题描述
我经常使用以下代码从文本中查找 top-n 特征:
top_n_terms <- text %>%
tokens(remove_numbers = TRUE,remove_punct = TRUE,remove_symbols = TRUE) %>%
tokens_ngrams(n = 1:3) %>%
dfm() %>%
dfm_remove(stopwords("en")) %>%
topfeatures(n = 3000)
此外,我想用 xx% 输入而不是 n = xx
找到前 10% 的特征。我该如何调整代码?
非常感谢您的帮助。
解决方法
您可以使用函数 nfeat()
来获取特征的数量。将此乘以 0.1,您可以自动获得它。或者您可以在此代码之前定义一个变量,您可以在其中指定所需的百分比。
请参阅下面使用 data_corpus_inaugural 的示例。使用您的选择,这应该有 190261 个特征,但使用具有 10% 选择的代码会返回 19026 个特征。
top_n_terms <- data_corpus_inaugural %>%
tokens(remove_numbers = TRUE,remove_punct = TRUE,remove_symbols = TRUE) %>%
tokens_ngrams(n = 1:3) %>%
dfm() %>%
dfm_remove(stopwords("en")) %>%
topfeatures(n = nfeat(.) * 0.1) # note the . in nfeat. replace 0.1 with variable if needed.