Dom*_*nik 17 parallel-processing r mclapply tm
我在平台上使用R 3.0.1:x86_64-apple-darwin10.8.0(64位)
我正在尝试使用tm库中的tm_map.但是当我执行这段代码时
library(tm)
data('crude')
tm_map(crude, stemDocument)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Warning message:
In parallel::mclapply(x, FUN, ...) :
all scheduled cores encountered errors in user code
Run Code Online (Sandbox Code Playgroud)
有谁知道这方面的解决方案?
nog*_*pes 29
我怀疑你没有SnowballC安装包,这似乎是必需的.tm_map应该stemDocument使用所有文件运行mclapply.尝试stemDocument在一个文档上运行该函数,以便您可以提取错误:
stemDocument(crude[[1]])
Run Code Online (Sandbox Code Playgroud)
对我来说,我收到了一个错误:
Error in loadNamespace(name) : there is no package called ‘SnowballC’
Run Code Online (Sandbox Code Playgroud)
所以我只是继续安装SnowballC并且工作正常.显然,SnowballC应该是一种依赖.
znm*_*meb 17
我刚碰到这个.它花了我一些挖掘,但我发现了发生了什么.
我有一行代码'rdevel < - tm_map(rdevel,asPlainTextDocument)'
运行此操作会产生错误
In parallel::mclapply(x, FUN, ...) :
all scheduled cores encountered errors in user code
> getOption("mc.cores", 2L)
[1] 2
>
> rdevel <- tm_map(rdevel, asPlainTextDocument, mc.cores=1)
Error in match.fun(FUN) : object 'asPlainTextDocument' not found
> rdevel <- tm_map(rdevel, asPlainTextDocument, mc.cores=4)
Warning message:
In parallel::mclapply(x, FUN, ...) :
all scheduled cores encountered errors in user code
>
所以...有多个核心,而不是给你错误信息,'parallel'只是告诉你每个核心都有错误.没有帮助,平行!我忘记了点 - 函数名称应该是'as.PlainTextDocument'!
所以 - 如果你收到这个错误,在'tm_map'调用中添加'mc.cores = 1'并再次运行它.
小智 11
我在这个问题上找到了一个对我来说成功的答案:Charles Copley在他的回答中表明他认为新的tm包需要lazy = TRUE明确定义.
所以,你的代码看起来像这样
library(tm)
data('crude')
tm_map(crude, stemDocument, lazy = TRUE)
Run Code Online (Sandbox Code Playgroud)
我也尝试过没有SnowballC,看看它是否是这两个答案的组合.它似乎没有影响结果.