如何在没有内存错误的大型语料库上使用tm_map?

时间:2013-11-04 17:30:55

标签: r memory-management tm

我正在尝试使用 tm 包进行一些文本挖掘。所以我从字符串向量创建corpus。然后我使用tolower删除所有大写字母,这会导致错误。

corpus <- Corpus(VectorSource(string_vector))   
corpus <- tm_map(corpus, tolower) # Makes all words lower case

Error in mcfork() :
  unable to fork, possible reason: Cannot allocate memory  

我用来创建语料库的字符串向量有5621行,最长的字符串有4590个字符 我已经玩过并使用rm(list=ls())从内存中移除了对该命令不重要的每个对象。但它没有任何区别。

我在32GB RAM的服务器上运行它:

R version 3.0.2 (2013-09-25)
Platform: x86_64-pc-linux-gnu (64-bit)

我该如何解决这个问题,或者我的服务器还不够强大?

1 个答案:

答案 0 :(得分:1)

我通过设置附加参数解决了类似的问题:

tm_map中的'lazy = T'

因此,您对tm_map的调用将为:

tm_map(corpus, tolower, lazy=T)