私は800Kのテキストを含むテキスト分類についていくつかの作業をしなければなりません。私は、次のリンクで見つかった実用的な例を実行しようとしてきた:後Rテキスト800Kのドキュメントでの分類
# Transform dtm to matrix to data frame - df is easier to work with
mat.df <- as.data.frame(data.matrix(dtm), stringsAsfactors = FALSE)
:私は、次の命令を持ってまで、すべてがうまくいってきた
http://garonfolo.dk/herbert/2015/05/r-text-classification-using-a-k-nearest-neighbour-model/
Error: cannot allocate vector of size 583.9 Gb
In addition: Warning messages:
1: In vector(typeof(x$v), prod(nr, nc)) :
Reached total allocation of 8076Mb: see help(memory.size)
2: In vector(typeof(x$v), prod(nr, nc)) :
Reached total allocation of 8076Mb: see help(memory.size)
3: In vector(typeof(x$v), prod(nr, nc)) :
Reached total allocation of 8076Mb: see help(memory.size)
4: In vector(typeof(x$v), prod(nr, nc)) :
Reached total allocation of 8076Mb: see help(memory.size)
このエラーを克服する方法があります:いくつかの時間のために、この実行持つ私は、エラーメッセージを持っていますか?
data.matrix(dtm)を分割してジョブをチャンクで実行し、それを何らかの方法でマージすることは可能でしょうか?あるいは、これを別の方法やPythonで扱う方がよいでしょうか?
dtm <- removeSparseTerms(dtm, sparse=0.9)
:
おかげ
_ "このエラーを克服する方法はありますか?" _疎なマトリックス形式にしておきますが、これはおそらく 'dtm'ですか? – lukeA
あなたは584GbのRAMを買うことができます。または、おそらく 'removeSparseTerms()'を使って行列のサイズを小さくしようとします – scoa
どのようにPythonに手伝ってくれるのですか?あなたのシステムに魔法のようにメモリを追加することはありません。これはアプローチではなく、ツールではなく、ストリーミング操作に関するもう少し研究をする必要があるように思えます。 Spark( 'sparklyr'と素晴らしいインターフェースを持っています)は簡単に[ストリーミングk-means]を実行できます(http://spark.apache.org/docs/latest/mllib-clustering.html)。 – hrbrmstr