为什么 DocumentTermMatrix 运行 有足够的内存时内存不足?
Why is DocumentTermMatrix running out of memory when plenty left?
我尝试从 tm
包 运行 DocumentTermMatrix
时收到以下内存分配错误。不知道为什么会这样,因为我的机器有 128 GB 的内存,而语料库只有 3 GB。
Error in mcfork() :
unable to fork, possible reason: Cannot allocate memory
Calls: DocumentTermMatrix ... content.VCorpus -> materialize -> mclapply -> lapply -> FUN -> mcfork
这就是调用的全部内容:
library(tm)
text <- read.csv('/path/to/text.csv', ...)
vct <- VCorpus(VectorSournce(text[,2]))
vct <- tm_map(vct, removeWords, stopwords("english"), mc.cores=1)
dtm <- DocumentTermMatrix(vct)
从 this post,我想出了如何通过限制使用的核心数来解决这个问题。由于 DocumentTermMatrix
没有明确的选项,我不得不通过 options
:
来完成
num.cores <- getOption("mc.cores")
options(mc.cores=1)
dtm <- DocumentTermMatrix(vct)
options(mc.cores=num.cores)
我尝试从 tm
包 运行 DocumentTermMatrix
时收到以下内存分配错误。不知道为什么会这样,因为我的机器有 128 GB 的内存,而语料库只有 3 GB。
Error in mcfork() :
unable to fork, possible reason: Cannot allocate memory
Calls: DocumentTermMatrix ... content.VCorpus -> materialize -> mclapply -> lapply -> FUN -> mcfork
这就是调用的全部内容:
library(tm)
text <- read.csv('/path/to/text.csv', ...)
vct <- VCorpus(VectorSournce(text[,2]))
vct <- tm_map(vct, removeWords, stopwords("english"), mc.cores=1)
dtm <- DocumentTermMatrix(vct)
从 this post,我想出了如何通过限制使用的核心数来解决这个问题。由于 DocumentTermMatrix
没有明确的选项,我不得不通过 options
:
num.cores <- getOption("mc.cores")
options(mc.cores=1)
dtm <- DocumentTermMatrix(vct)
options(mc.cores=num.cores)