0

我有一个包含 700 万多条记录的 SQL 数据库,每条记录都包含一些文本。在我想要执行文本分析的每条记录中,说计算特定单词的出现次数。我已经tokenize在包中尝试了 R 的功能,该功能openNLP非常适用于小文件,但是 700 万条记录 * 每条记录 1-100 字之间变得太大,R 无法保存在data.frame. 我考虑过使用 Rbigmemoryff包,甚至mapReduce包。你们有这种分析的首选方法或包吗?

4

2 回答 2

1

也许并行处理它。我使用parLapplyb/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))
于 2013-02-19T17:12:32.873 回答
0

在 SQL 方面,您也可以为每个条目提取len,然后对其应用一个replace(" yourWord ","")(带有侧翼空格...),再次计算总字符串长度,然后取这两者之间的差异,这应该可以解决问题。我的 SQL 技能不太好,我可以在这里轻松地展示一个运行示例,对此感到抱歉......

于 2013-02-19T17:42:38.353 回答