我在Ubuntu上的RStudio服务器上运行以下命令:
library(tm)
strings = sapply(1:1000, function(x){ paste(sample(c(letters[1:4], " "), 100, replace=T), collapse="")})
corp = VCorpus(VectorSource(strings))
dtm = DocumentTermMatrix(corp)
我花了几个小时才意识到DocumentTermMatrix造成了问题。我的RStudio文档的每个连续采购(以及命令行等相同)将创建另外2个进程,例如我现在有13个R进程。如果我注释掉dtm行,我从未看到创建更多进程。
这可能与最近在tm包中引入并行某些东西有关吗?我正在使用.5左右,现在正在使用.6,但我看到了同样的行为。
为了清楚起见,这段代码运行很好。无论哪种方式,结果都会正确回归,但这是我所关注的挥之不去的过程。
答案 0 :(得分:0)
Kevin在评论中给出的简短回答:
设置
options(mc.cores=1)
更多细节:tm
包函数使用并行化。有许多警告使用它,请参考documentation。有时,通过设置选项mc.cores=1
来使用单个流程是有意义的。
请注意,不同的tm
函数使用不同的语法,例如:
tm_map(corp, stemDocument, mc.cores=1)
VS
DocumentTermMatrix(corp, options(mc.cores=1))