R:使用Quanteda包删除CommonTerms?

时间:2017-01-11 11:07:41

标签: r tm quanteda

找到了TMCom包的removeCommonTerms函数here,以便

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包删除过于常见的术语?

1 个答案:

答案 0 :(得分:2)

您需要dfm_trim功能。来自?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).