tm的功能重复崩溃R.

时间:2013-08-30 00:49:11

标签: r tm

我想要执行这一行:

tdm_english <- DocumentTermMatrix(doc.corpus, list(dictionary = dictionary_english))

doc.corpus的长度为191,000,而dictionary_english为48

我在一个3/4大小的语料库上运行同一条线,所有线条都在几分钟内平稳运行(可能甚至不是5分钟)。

现在该功能崩溃了我的MacBook pro。我跑两次,两次都不得不强行退出R&amp;经过一个多小时的计算后,RStudio。

有没有办法优化我的通话?

2 个答案:

答案 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。