我不确定那里有任何 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