我有一个包含700万条记录的SQL数据库,每条记录包含一些文本。在我想要执行文本分析的每个记录中,比如计算特定单词的出现次数。我在tokenize
包中尝试了R openNLP
函数,该函数适用于小文件,但每条记录1-100个字之间的700万条记录*太大而R不能容纳{{1} }}。我考虑过使用R的data.frame
或bigmemory
包,甚至是ff
包。你们有这种分析的首选方法或方案吗?
答案 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技能不是很好,我可以轻松地在这里呈现一个运行的例子,抱歉...