繁体   English   中英

termdocumentmatrix在R中引发错误

[英]termdocumentmatrix raises error in R

我有以下代码:

library(tm)
text<-readLines("anyText.txt")
corpus<-Corpus(VectorSource(text))
corpus<-tm_map(corpus,content_transformer(tolower))
inspect(corpus)
corpus<-tm_map(corpus,removePunctuation)
stopwords<-c(stopwords('english'),"available","via")
corpus<-tm_map(corpus,removeWords,stopwords)
tempCorpus<-corpus
inspect(tempCorpus)
library(ctv)
library(SnowballC)
corpus<-tm_map(corpus,stemDocument)
inspect(corpus)
corpusT<- tm_map(corpus, PlainTextDocument)
corpusT<-tm_map(corpusT,stemCompletion,dictionary=tempCorpus)
dtm<-TermDocumentMatrix(corpusT,control=list(minWordLength=1))

但我得到了错误:

   Error: inherits(doc, "TextDocument") is not TRUE

我发现当我评论该行时:

corpusT<-tm_map(corpusT,stemCompletion,dictionary=tempCorpus)

该程序运行良好,但据我所知,最后一行是用tempCorpus中获得的词更新词条列表,因此我需要它。

我该如何纠正该错误?

代码corpusT<-tm_map(corpusT,stemCompletion,dictionary=tempCorpus)没有返回TextDocument,因此您遇到了错误。

在创建dtm之前和stemCompletion之后添加代码corpusT<- tm_map(corpusT, PlainTextDocument)应该可以解决此问题。

代码的最后一部分应如下所示:

inspect(corpus)
corpusT<-tm_map(corpus,stemCompletion,dictionary=tempCorpus)
corpusT<- tm_map(corpusT, PlainTextDocument)
dtm<-TermDocumentMatrix(corpusT,control=list(minWordLength=1))

有关其他信息,请参阅https://stackoverflow.com/a/24206825/3858156

我发现我需要将所有传递给tm_map的函数包装在content_transformer中,就像使用tolower一样。 然后错误消失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM