我想要执行这一行:
tdm_english <- DocumentTermMatrix(doc.corpus, list(dictionary = dictionary_english))
doc.corpus的长度为191,000,而dictionary_english为48
我在一个3/4大小的语料库上运行同一条线,所有线条都在几分钟内平稳运行(可能甚至不是5分钟)。
现在该功能崩溃了我的MacBook pro。我跑两次,两次都不得不强行退出R&amp;经过一个多小时的计算后,RStudio。
有没有办法优化我的通话?
答案 0 :(得分:2)
我使用TermDocumentMatrix
代替DocumentTermMatrix
来绕过这个问题,显然在大数据集上更稳定。
更新:我也使用了DocumentTermMatrix
。正如DWin所指出的那样,问题似乎是DocumentTermMatrix
是记忆无法满足的。我设法用vapply来抑制它的胃口。我在20万条记录上测试了它并完成了工作而没有使整个系统麻痹。
tdm_english <- vapply(doc.corpus, DocumentTermMatrix, FUN.VALUE = numeric(1), list(dictionary = dictionary_english), USE.NAMES = FALSE)
答案 1 :(得分:0)
从你的描述中听起来就像你的内存不足。要检查这一点,请打开活动监视器并启动R脚本。然后检查Ac中的System Memory选项卡。监控并查看有多少Page Ins和Page Outs发生。如果此数字很重要,再加上R进程的高内存使用率,则表示计算机内存不足,并且正在使用硬盘空间来弥补它。这很慢。
解决方案是使用较小的数据集,以块为单位处理数据,找到限制内存使用量的DocumentTermMatrix
设置,或获取更多RAM。