使用R计算大型数据集中单词的最快方法是什么?

时间:2013-02-19 16:46:43

标签: r mapreduce bigdata

我有一个包含700万条记录的SQL数据库,每条记录包含一些文本。在我想要执行文本分析的每个记录中,比如计算特定单词的出现次数。我在tokenize包中尝试了R openNLP函数,该函数适用于小文件,但每条记录1-100个字之间的700万条记录*太大而R不能容纳{{1} }}。我考虑过使用R的data.framebigmemory包,甚至是ff包。你们有这种分析的首选方法或方案吗?

2 个答案:

答案 0 :(得分:1)

也许并行接近它。我使用parLapply b / c我相信它适用于所有三种操作系统。

wc <- function(x) length(unlist(strsplit(x, "\\s+")))

wordcols <- rep("I like icecream alot.", 100000)

library(parallel)
cl <- makeCluster(mc <- getOption("cl.cores", detectCores()))
clusterExport(cl=cl, varlist=c("wc", "wordcols"), envir=environment())
output <- parLapply(cl, wordcols, function(x) {
        wc(x)
    }
)
stopCluster(cl)  
sum(unlist(output))

答案 1 :(得分:0)

在SQL端,您还可以为len的每个条目提取,然后将replace(" yourWord ","")(带有侧翼空格......)应用于它,再次计算总字符串长度,然后取这两者之间的差异,应该做的伎俩。我的SQL技能不是很好,我可以轻松地在这里呈现一个运行的例子,抱歉...