Как отфильтровать матрицу документов терминов по частоте появления каждого термина

У меня есть матричный документ. Я хочу установить это подмножество и оставить только те термины, которые встречались более определенного числа раз, т.е. сумма строки должна быть больше определенного числа. Есть ли быстрый способ добиться этого? Кстати, матрица огромна.

2 ответа

Да, так что если вы используете tm В пакете есть функция findFreqTerms, которую вы можете использовать, где внутри функции вы можете указать желаемое значение lowfreq:

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

в случае, если вы заинтересованы в сокращении tdm наиболее часто используемыми терминами:

tdm[your_terms, ] 

надеюсь это поможет

В пакете квантида:

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.

Другие вопросы по тегам