そこにRユーザーがいるかどうかはわかりませんが、念のため:
私は R の初心者であり、親切にも次の R コード スニペットを「手渡されました」:
Beta <- exp(as.matrix(read.table('beta.transpose')))
WordFreq <- read.table('freq-matrix')
WordProbs <- WordFreq$V1 / sum(WordFreq)
infile <- file('freq-matrix')
outfile <- file('doc_topic_prob_matrix', 'w')
open(infile)
open(outfile)
for (i in 1:93049) {
vec <- t(scan(infile, nlines=1))
topics <- (vec/WordProbs) %*% Beta
write.table(topics, outfile, append=T, row.names=F, col.names=F)
}
これを自分のデータセットで実行しようとすると、システムが狂ったようにスラッシングしてスワップしました。これには単純な理由があることに気付きました。ファイル freq-matrix には大きな (22GB) 行列が含まれており、それをメモリに読み込もうとしていたのです。
私はMatrixパッケージを使用するように言われました。なぜなら、freq-matrix には至る所に非常に多くのゼロがあり、そのようなケースをうまく処理できるからです。それは役に立ちますか?もしそうなら、このコードを変更する方法についてのヒントは大歓迎です。私は R の経験がなく、サイトで入手できる紹介 PDF を読み始めたところです。
どうもありがとう
~l