更新
感谢您的帮助。检查评论。由于包版本,我删除了tolower,它的工作原理。我只需要找到另一种方法来降低它。
============
我正在使用文档列表进行基本的txt挖掘,一切都很顺利,直到我尝试使用stemmDocument
。
我已完成的tm_map
如下library(tm)
fbVec<-VectorSource(data[,1])
fbCorpus<-Corpus(fb.vec)
fbCorpus <- tm_map(fbCorpus, tolower)
fbCorpus <- tm_map(fbCorpus, removePunctuation)
fbCorpus <- tm_map(fbCorpus, removeNumbers)
fbCorpus <- tm_map(fbCorpus, removeWords, stopwords("english"))
fbCorpus <- tm_map(fbCorpus, removeWords, "pr")
fbCorpus <- tm_map(fbCorpus, stripWhitespace)
结果如下
[[1]]
[1] easy post position search resumes improvement searching resumes
[[2]]
[1] easy use good candidiates improvement allow multiple emails sent
[[3]]
[1] applicants young kids absolutely sales experience waste time looking improvement applicants apply experience looking dont need kids just high school
[[4]]
[1] abundance resumes
然后我试图阻止
library(SnowballC)
fbCorpus <- tm_map(fbCorpus, stemDocument)
但是结果不是我的形象,看起来只是处理句子中的最后一个单词,结果如下:
[[1]]
[1] easy post position search resumes improvement searching resum
[[2]]
[1] easy use good candidiates improvement allow multiple emails sent
[[3]]
[1] applicants young kids absolutely sales experience waste time looking improvement applicants apply experience looking dont need kids just high school
[[4]]
[1] abundance resum
有人可以提供帮助吗?
答案 0 :(得分:4)
此问题出现在tm 0.6中,与使用tm getTransformation()
列表中不存在的函数有关。问题是tolower
只返回一个字符向量,而不是像tm_map
那样的“PlainTextDocument”。 tm
包提供了content_transformer
函数来管理PlainTextDocument
fbCorpus <- tm_map(fbCorpus, content_transformer(tolower))
答案 1 :(得分:0)
您没有正确加载文档。如果您的数据位于x.csv
文件中,请使用以下内容:
> x <- read.csv(file_loc, header = TRUE) // where file_loc is the path to the csv file
> x <- data.frame(lapply(x, as.character), stringsAsFactors=FALSE)
> require(tm)
Loading required package: tm
> dd <- Corpus(DataframeSource(x))
> inspect(dd)
然后只需使用stemDocument
,如下所示:
fbCorpus <- tm_map(fbCorpus, stemDocument)
答案 2 :(得分:0)
我有同样的问题。
如果查看stemDocuments
的参数,则可以指定词干的语言。我发现通过指定“英语”可以为我解决问题。
stemDocument(language="english")