Я не уверен, что есть пользователи 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)
}
Когда я попытался запустить это в моем наборе данных, система работала как сумасшедшая. Теперь я понимаю, что у этого есть простая причина: матрица файлов содержит большую (22 ГБ) матрицу, и я пытался прочитать ее в память.
Мне сказали использовать пакет Matrix , потому что freq-matrix имеет много-много нулей повсюду и хорошо обрабатывает такие случаи. Это поможет? Если это так, любые советы о том, как изменить этот код, будут приветствоваться. У меня нет опыта работы с R, и я только начал читать ознакомительный PDF-файл, доступный на сайте.
Большое спасибо
~ л