tm文档术语矩阵:进程不会终止

时间:2014-11-04 22:11:28

标签: r tm

我在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,但我看到了同样的行为。

为了清楚起见,这段代码运行很好。无论哪种方式,结果都会正确回归,但这是我所关注的挥之不去的过程。

1 个答案:

答案 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))