r - 为什么 as.matrix 在 R 中运行文本挖掘时会导致内存过载
问题描述
我正在使用 R 包 tm 进行文本分析。
我加载的文本文件只有 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。
非常感谢!
解决方案
推荐阅读
- css - 用于对 ipad、桌面、手机进行响应式网页设计的标题部分 css
- jquery - 如果鼠标悬停一秒钟则执行ajax函数,如果鼠标悬停则取消
- translation - ISO 369(德语)!= 639(英语)
- sql - SYSDATE 减去某些日期变量会返回不同的值
- prometheus - Prometheus - 如何重用过滤后的系列来加快查询时间?
- firebase - 数据建模和安全规则建议 firebase
- r - 在特定文本后替换
- swift - 如何将日期时间转换为字符串
- terraform - 从 terratest 获取状态并手动运行 terraform destroy?
- c# - 更新、删除和添加模型 EF ASP.Net Core