从 R 语料库中删除无意义的词
Remove meaningless words from corpus in R
我正在使用 tm
和 wordcloud
在 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()
可以很好地处理数据帧,但如何将其用于 corpus 处理?
谢谢
不确定这是否是最节省资源的方法(我不太了解这个包)但它应该有效:
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)
如果您愿意尝试不同的文本挖掘包,那么这会起作用:
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 个单词)。
我正在使用 tm
和 wordcloud
在 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()
可以很好地处理数据帧,但如何将其用于 corpus 处理?
谢谢
不确定这是否是最节省资源的方法(我不太了解这个包)但它应该有效:
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)
如果您愿意尝试不同的文本挖掘包,那么这会起作用:
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 个单词)。