r - 在 R 中使用 tm 的语料库功能处理大数据

标签 r bigdata text-mining tm

我正在尝试使用 tm 对 R 中的大数据进行文本挖掘.

我经常遇到内存问题(例如 can not allocation vector of size.... )并使用已建立的方法来解决这些问题,例如

  • 使用 64 位 R
  • 尝试不同的操作系统(Windows、Linux、Solaris 等)
  • 设置 memory.limit()达到最大值
  • 确保服务器(有)上有足够的 RAM 和计算可用
  • 自由使用 gc()
  • 分析瓶颈的代码
  • 将大型操作分解为多个较小的操作

  • 但是,当尝试运行 Corpus 时在包含一百万个左右文本字段的向量上,我遇到了与平常略有不同的内存错误,我不确定如何解决该问题。错误是:
    > ds <- Corpus(DataframeSource(dfs))
    Error: memory exhausted (limit reached?)
    

    我可以(也应该)运行 Corpus在来自该源数据帧的行块上递增,然后组合结果?有没有更有效的方法来运行它?

    会产生这个错误的数据大小取决于运行它的计算机,但是如果你拿内置的crude数据集并复制文档直到它足够大,然后您可以复制错误。

    更新

    我一直在尝试合并较小的语料库,即
    test1 <- dfs[1:10000,]
    test2 <- dfs[10001:20000,]
    
    ds.1 <- Corpus(DataframeSource(test1))
    ds.2 <- Corpus(DataframeSource(test2))
    

    虽然我没有成功,但我确实发现了 tm_combine这是 supposed to solve this exact problem .唯一的问题是,出于某种原因,我的 R 3.1.1 的 64 位版本带有最新版本的 tm找不到函数 tm_combine .也许它出于某种原因从包中删除了?我正在调查...
    > require(tm)
    > ds.12 <- tm_combine(ds.1,ds.2)
    Error: could not find function "tm_combine"
    

    最佳答案

    不知道是不是tm_combine已被弃用或为什么在 tm 中找不到它命名空间,但我确实通过使用 Corpus 找到了解决方案在较小的数据帧块上然后组合它们。

    This StackOverflow 帖子有一个简单的方法来做到这一点,而无需 tm_combine :

    test1 <- dfs[1:100000,]
    test2 <- dfs[100001:200000,]
    
    ds.1 <- Corpus(DataframeSource(test1))
    ds.2 <- Corpus(DataframeSource(test2))
    
    #ds.12 <- tm_combine(ds.1,ds.2) ##Error: could not find function "tm_combine"
    ds.12 <- c(ds.1,ds.2)
    

    这给了你:

    ds.12


    <<VCorpus (documents: 200000, metadata (corpus/indexed): 0/0)>>
    

    很抱歉在问之前没有自己弄清楚这一点。我尝试了其他组合对象的方法,但失败了。

    关于r - 在 R 中使用 tm 的语料库功能处理大数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25533594/

    相关文章:

    删除文本中数字符比大于平均值的所有句子

    java - 根据单词出现频率查找推特中的热门话题

    r - 如果组内出现特定数字,则将数据框中的行标记为 "TRUE"

    java - 如何从命令行界面检查 Apache Phoenix 的版本?

    r - 如何编写具有两个固定效应的混合效应模型的 lmer 公式

    python - 通过 Python 计算两个字符串变量之间的公共(public)条目

    node.js - 如何抓取网络以查找围绕某个主题的链接/网站?

    python - 属性错误: 'GridSearchCV' object has no attribute 'cv_results_'

    r - 准备具有外部依赖项的 CRAN R 包 (nlopt)

    执行平均关系的 Rcpp 等级函数