700 万以上のレコードを持つ SQL データベースがあり、各レコードにはテキストが含まれています。各レコード内で、テキスト分析を実行したいと思います。たとえば、特定の単語の出現回数を数えます。tokenize
パッケージ内で R の関数を試してみましたが、openNLP
これは小さなファイルに適していますが、700 万レコード * レコードあたり 1 ~ 100 ワードの間で、R が に保持するには大きすぎますdata.frame
。bigmemory
Rやff
パッケージ、さらにはパッケージを使用することも考えましたmapReduce
。この種の分析に適したアプローチまたはパッケージはありますか?
2 に答える
1
並行してアプローチするかもしれません。私はparLapply
b / cを使用しました.3つのOSすべてで動作すると思います。
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 ","")
文字列の合計長を再度計算してから、これら 2 つの間の差を取ることができます。私の SQL スキルはあまりよくないので、ここで実行例を簡単に紹介することはできません。申し訳ありません...
于 2013-02-19T17:42:38.353 に答える