UseMethod中的R错误(" meta",x):没有适用于' meta'的方法应用于类的对象"尝试错误"

时间:2016-10-27 20:03:44

标签: r text mining

我使用的是Rstudio 3.3.0,出于某种原因,我似乎无法使用以下代码创建DTM而不会收到错误:

Error in UseMethod("meta", x) : 
  no applicable method for 'meta' applied to an object of class "try-error"
In addition: Warning messages:
1: In mclapply(x$content[i], function(d) tm_reduce(d, x$lazy$maps)) :
  all scheduled cores encountered errors in user code
2: In mclapply(unname(content(x)), termFreq, control) :
  all scheduled cores encountered errors in user code

奇怪的是,这个错误最近才发生。我之前尝试过,它运行良好。

我使用的代码如下

#pre-processing and transforming the corpus
myStopwords<- c(stopwords("english"), stopwords("SMART"))

my_corpus <- tm_map(corpus, content_transformer(tolower),lazy=TRUE)
my_corpus <- tm_map(my_corpus, removeWords, myStopwords, lazy=TRUE)
my_corpus <- tm_map(my_corpus, removeNumbers, lazy=TRUE)
my_corpus <- tm_map(my_corpus, removePunctuation, lazy=TRUE)
my_corpus <- tm_map(my_corpus, stripWhitespace, lazy=TRUE)
my_corpus <- tm_map(my_corpus, stemDocument, lazy=TRUE)
my_corpus <- tm_map(my_corpus, PlainTextDocument, lazy=TRUE)
my_corpus <- tm_map(my_corpus, content_transformer(function(x) iconv(x, to='UTF-8-MAC', sub='byte')), mc.cores=1, lazy=TRUE)

我在稍后阅读有关此错误的stackoverflow上的其他帖子后添加的最后两行。但是,它仍然无效。

myDtm <- DocumentTermMatrix(
  my_corpus, control=list(
  wordLengths=c(3,Inf) 
)
)

sessioninfo()

的以下结果
R version 3.3.0 (2016-05-03)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.10.5 (Yosemite)

locale:
[1] C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] wordcloud_2.5      RColorBrewer_1.1-2 slam_0.1-35       
[4] SnowballC_0.5.1    tm_0.6-2           NLP_0.1-9         

loaded via a namespace (and not attached):
[1] parallel_3.3.0 tools_3.3.0    Rcpp_0.12.5   

我已经尝试了整整一天来解决这个问题,但我自己无法解决这个问题。我想要遗漏一些东西。

请有人帮帮我!

1 个答案:

答案 0 :(得分:1)

尝试将所有第二个参数包装到tm_map中的content_transformer()

例如:

my_corpus <- tm_map(my_corpus, content_transformer(removeWords), 
                     myStopwords, lazy=TRUE)

我不肯定会解决你的问题,但我认为我至少会尝试。