もしも多数のファイルから単語文書行列を作成したい場合は、面倒ですが、ファイル集合を複数に分けて、それぞれから単語文書行列を作成してから、メモリの効率の良い疎行列に変換して、最後に結合するという手段もあります。概略以下のような処理になります。
library(RMeCab)
## 文書集合1
x <- docMatrix2("folder1")
## 文書集合2
y <- docMatrix2("folder2")
## 文書集合3
z <- docMatrix2("folder3")
## 疎な行列に変換
library(Matrix)
x_s <- as(x, "dgCMatrix")
y_s <- as(y, "dgCMatrix")
z_s <- as(z, "dgCMatrix")
## 行名の共通集合を取得
words <- intersect(rownames(x_s), intersect(rownames(y_s), rownames(z_s)))
## 行名(行数)を統一
x_s <- x_s[words, ]
y_s <- y_s[words, ]
z_s <- z_s[words, ]
## 結合
cbind2 (x_s, y_s, z_s)
問題は、それぞれの行列の行数を揃えないといけないので、すべての疎行列(の行名)から、必要とする単語だけを抽出する必要があり、この整形が若干手間がかかります。
さらに疎な行列のままだと、適用できる分析関数が限られるので、その場合、再度、通常の行列に戻す必要がありますが、その際、再びメモリ不足を警告される恐れはあります。