我有一个包含 700 万多条记录的 SQL 数据库,每条记录都包含一些文本。在我想要执行文本分析的每条记录中,说计算特定单词的出现次数。我已经tokenize
在包中尝试了 R 的功能,该功能openNLP
非常适用于小文件,但是 700 万条记录 * 每条记录 1-100 字之间变得太大,R 无法保存在data.frame
. 我考虑过使用 Rbigmemory
或ff
包,甚至mapReduce
包。你们有这种分析的首选方法或包吗?
问问题
301 次
2 回答
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))
于 2013-02-19T17:12:32.873 回答
0
在 SQL 方面,您也可以为每个条目提取len
,然后对其应用一个replace(" yourWord ","")
(带有侧翼空格...),再次计算总字符串长度,然后取这两者之间的差异,这应该可以解决问题。我的 SQL 技能不太好,我可以在这里轻松地展示一个运行示例,对此感到抱歉......
于 2013-02-19T17:42:38.353 回答