从R中的语料库中删除无意义的单词



我正在使用tmwordcloud在R中执行一些基本文本挖掘。所处理的文本包含许多毫无意义的单词,例如ASFDG,AAWPTKR,我需要过滤此类单词。我发现的最接近的解决方案是使用library(qdapDictionaries)并构建自定义功能来检查单词的有效性。

library(qdapDictionaries)
is.word  <- function(x) x %in% GradyAugmented
# example
> is.word("aapg")
[1] FALSE

所使用的其余文本挖掘是:

curDir <- "E:/folder1/"  # folder1 contains a.txt, b.txt
myCorpus <- VCorpus(DirSource(curDir))
myCorpus <- tm_map(myCorpus, removePunctuation)
myCorpus <- tm_map(myCorpus, removeNumbers)
myCorpus <- tm_map(myCorpus,foo) # foo clears meaningless words from corpus

问题is.word()是否可以用于处理数据框架,但是如何将其用于 copus 处理?

谢谢

如果您愿意尝试其他文本挖掘包,则可以使用:

library(readtext)
library(quanteda)
myCorpus <- corpus(readtext("E:/folder1/*.txt"))
# tokenize the corpus
myTokens <- tokens(myCorpus, remove_punct = TRUE, remove_numbers = TRUE)
# keep only the tokens found in an English dictionary
myTokens <- tokens_select(myTokens, names(data_int_syllables))

从那里您可以在文档学期矩阵(称为Quanteda中称为" DFM"(进行分析,并且它将仅包含与词典中匹配的英语术语的功能(其中包含大约130,000个单词(。

不确定它是否是最有效的资源效率方法(我不太了解该软件包(,但它应该有效:

tdm <- TermDocumentMatrix(myCorpus )
all_tokens       <- findFreqTerms(tdm, 1)
tokens_to_remove <- setdiff(all_tokens,GradyAugmented)
corpus <- tm_map(corpus, content_transformer(removeWords), 
                 tokens_to_remove)

最新更新