2017-01-11 32 views
1

的removeCommonTerms功能發現here爲TM封裝,使得R:使用Quanteda軟件包刪除通用條款?

removeCommonTerms <- function (x, pct) 
{ 
    stopifnot(inherits(x, c("DocumentTermMatrix", "TermDocumentMatrix")), 
     is.numeric(pct), pct > 0, pct < 1) 
    m <- if (inherits(x, "DocumentTermMatrix")) 
     t(x) 
    else x 
    t <- table(m$i) < m$ncol * (pct) 
    termIndex <- as.numeric(names(t[t])) 
    if (inherits(x, "DocumentTermMatrix")) 
     x[, termIndex] 
    else x[termIndex, ] 
} 

現在我想與Quanteda包中取出過的常用術語。在創建文檔特徵矩陣或文檔特徵矩陣之前,我可以執行此刪除操作。

如何刪除R中Quanteda軟件包的常見術語?

回答

2

你想要dfm_trim函數。 From ?dfm_trim

max_docfreq功能出現的文檔的最大數量或部分數量,超過這些功能將被刪除。 (默認爲沒有上限。)

這需要quanteda(新鮮上CRAN)的最新版本。

packageVersion("quanteda") 
## [1] ‘0.9.9.3’ 

inaugdfm <- dfm(data_corpus_inaugural) 

dfm_trim(inaugdfm, max_docfreq = .8) 
## Removing features occurring: 
## - in more than 0.8 * 57 = 45.6 documents: 93 
## Total features removed: 93 (1.01%). 
## Document-feature matrix of: 57 documents, 9,081 features (92.4% sparse).