tm_映射在Mac上的R3.0.1中有parallel::McLappy错误
我在平台上使用R3.0.1:x86_64-apple-darwin10.8.0(64位) 我正在尝试使用tm库中的tm_地图。但是当我执行这个代码时tm_映射在Mac上的R3.0.1中有parallel::McLappy错误,r,parallel-processing,tm,mclapply,R,Parallel Processing,Tm,Mclapply,我在平台上使用R3.0.1:x86_64-apple-darwin10.8.0(64位) 我正在尝试使用tm库中的tm_地图。但是当我执行这个代码时 library(tm) data('crude') tm_map(crude, stemDocument) 我得到这个错误: Warning message: In parallel::mclapply(x, FUN, ...) : all scheduled cores encountered errors in user code 有人
library(tm)
data('crude')
tm_map(crude, stemDocument)
我得到这个错误:
Warning message:
In parallel::mclapply(x, FUN, ...) :
all scheduled cores encountered errors in user code
有人知道这方面的解决方案吗?我怀疑您没有安装
SnowballC
软件包,这似乎是必需的tm_map
应该使用mclappy
在所有文档上运行stemDocument
。尝试在一个文档上运行stemDocument
函数,以便提取错误:
stemDocument(crude[[1]])
对我来说,我犯了一个错误:
Error in loadNamespace(name) : there is no package called ‘SnowballC’
所以我继续安装了
SnowballC
,它成功了。显然,SnowballC
应该是一个依赖项。我刚刚遇到了这个。我花了点时间挖掘,但我发现了发生的事情
因此-如果出现此错误,请将“mc.cores=1”添加到“tm_map”调用中,然后再次运行它。我一直面临相同的问题,但最终得到了修复。我的猜测是,如果我将语料库命名为“longName”或“companyNewsCorpus”,我就明白了问题所在,但如果我将语料库值命名为“a”,则效果很好。真奇怪 下面的代码给出了与此线程中提到的相同的错误消息
companyNewsCorpus <-Corpus(DirSource("SourceDirectory"),
readerControl = list(language="english"))
companyNewsCorpus <- tm_map(companyNewsCorpus,
removeWords, stopwords("english"))
公司新闻语料库我找到了一个对我来说很成功的答案:
Charles Copley在他的文章中指出,他认为新的tm包需要显式定义lazy=TRUE
那么,您的代码将如下所示
library(tm)
data('crude')
tm_map(crude, stemDocument, lazy = TRUE)
我还尝试了不使用SnowballC的方法,看看这是否是这两个答案的组合。这似乎对结果没有任何影响。我在使用tm library的removeWords函数时也遇到了同样的问题。其他一些答案,例如将核心数设置为1,确实可以删除一组英语停止词,但是我还想从我的语料库中删除一个自定义的名字和姓氏列表,这些列表的长度都超过100000个单词
其他任何建议都无助于解决这个问题,事实证明,通过一些尝试和错误,removeWords在一个向量中似乎有1000个单词的限制。为此,我编写了一个函数,为我解决了这个问题:
# Let x be a corpus
# Let y be a vector containing words to remove
removeManyWords <- function (x, y) {
n <- ceiling(length(y)/1000)
s <- 1
e <- 1000
for (i in 1:n) {
x <- tm_map(x, content_transformer(removeWords), y[s:e])
s <- s + 1000
e <- e + 1000
}
x
}
#设x为语料库
#设y是一个包含要删除的单词的向量
removeManyWords我在处理Twitter数据时,在尝试使用tm_map()
函数将所有文本转换为小写时,在原始问题中遇到了相同的错误
Warning message: In parallel::mclapply(x, FUN, ...) :
all scheduled cores encountered errors in user code
安装和加载软件包SnowballC
彻底解决了问题。希望这能有所帮助。我在使用Mac OS X 10.10.5上运行的英特尔四核I7时,在tm
中遇到了同样的问题,并收到了以下警告:
在mclappy(content(x),FUN,…)中,调度的核心1在用户代码中遇到错误,作业的所有值都将受到影响
我在下载推特数据后创建了一个语料库
查尔斯·科普利的解决方案对我也很有效。
我在创建语料库后使用了:tm\u-map(*filename*,stemDocument,lazy=TRUE)
,然后tm正常工作。与这个问题略有关联,但是什么解决了这个问题
库中错误(SnowballC):没有名为“SnowballC”的包在Windows 10中以管理员身份执行R并重试安装,这次成功了
a <-Corpus(DirSource("SourceDirectory"),
readerControl = list(language="english"))
a <- tm_map(a, removeWords, stopwords("english"))
library(tm)
data('crude')
tm_map(crude, stemDocument, lazy = TRUE)
# Let x be a corpus
# Let y be a vector containing words to remove
removeManyWords <- function (x, y) {
n <- ceiling(length(y)/1000)
s <- 1
e <- 1000
for (i in 1:n) {
x <- tm_map(x, content_transformer(removeWords), y[s:e])
s <- s + 1000
e <- e + 1000
}
x
}
Warning message: In parallel::mclapply(x, FUN, ...) :
all scheduled cores encountered errors in user code