首页 > 解决方案 > 为什么 as.matrix 在 R 中运行文本挖掘时会导致内存过载

问题描述

我正在使用 R 包 tm 进行文本分析。

我的代码基于此链接: https ://www.r-bloggers.com/text-mining-and-word-cloud-fundamentals-in-r-5-simple-steps-you-should-know/

我加载的文本文件只有 4800 kB。文本文件是我要分析的原始文件的 10% 样本。

我的代码是:

library(tm)
library(wordcloud)
library(SnowballC)
library(textmineR)
library(RWeka)

blogssub <- readLines("10kblogs.txt")
newssub <- readLines("10knews.txt")
tweetssub <- readLines("10ktwitter.txt")

corpussubset <- c(blogssub,newssub,tweetssub)
cpsub <- corpussubset

cpsubclean <- VCorpus(VectorSource(cpsub))

# make ngrams
unigram<- function(x) NGramTokenizer(x, Weka_control(min=1, max=1))

options(mc.cores=1) #hangs if you dont include this option on Mac OS

tdmuni<- TermDocumentMatrix(cpsubclean, control=list(tokenize=unigram))

m <- as.matrix(tdmuni)
v <- sort(rowSums(m), decreasing=TRUE)
d <- data.frame(word = names(v),freq=v)    

代码给出以下错误:“无法分配大小为 12.3 Gb 的向量”

错误是由以下行引起的: m <- as.matrix(tdmuni)

是不是我的代码在某些方面效率不高?我很惊讶如此巨大的向量被分配了 12.3 Gb,因为原始文本文件只有 4800 kB。

非常感谢!

标签: rtm

解决方案


推荐阅读