gpt4 book ai didi

在 R 中删除过于常见的单词(出现在 80% 以上的文档中)

转载 作者:行者123 更新时间:2023-12-04 16:24:22 26 4
gpt4 key购买 nike

我正在使用 'tm' 包来创建一个语料库。我已经完成了大部分预处理步骤。
剩下的就是去除过于常用的词(出现在 80% 以上的文档中的词)。有人可以帮我解决这个问题吗?

dsc <- Corpus(dd)
dsc <- tm_map(dsc, stripWhitespace)
dsc <- tm_map(dsc, removePunctuation)
dsc <- tm_map(dsc, removeNumbers)
dsc <- tm_map(dsc, removeWords, otherWords1)
dsc <- tm_map(dsc, removeWords, otherWords2)
dsc <- tm_map(dsc, removeWords, otherWords3)
dsc <- tm_map(dsc, removeWords, javaKeywords)
dsc <- tm_map(dsc, removeWords, stopwords("english"))
dsc = tm_map(dsc, stemDocument)
dtm<- DocumentTermMatrix(dsc, control = list(weighting = weightTf,
stopwords = FALSE))

dtm = removeSparseTerms(dtm, 0.99)
# ^- Removes overly rare words (occur in less than 2% of the documents)

最佳答案

如果你做了一个 removeCommonTerms功能

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, ]
}

然后,如果您想删除 >=80% 文档中的术语,您可以这样做
data("crude")
dtm <- DocumentTermMatrix(crude)
dtm
# <<DocumentTermMatrix (documents: 20, terms: 1266)>>
# Non-/sparse entries: 2255/23065
# Sparsity : 91%
# Maximal term length: 17
# Weighting : term frequency (tf)

removeCommonTerms(dtm ,.8)
# <<DocumentTermMatrix (documents: 20, terms: 1259)>>
# Non-/sparse entries: 2129/23051
# Sparsity : 92%
# Maximal term length: 17
# Weighting : term frequency (tf)

关于在 R 中删除过于常见的单词(出现在 80% 以上的文档中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25905144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com