我TermDocumentMatrix
从tm
R 中的库创建了一个。它看起来像这样:
> inspect(freq.terms)
A document-term matrix (19 documents, 214 terms)
Non-/sparse entries: 256/3810
Sparsity : 94%
Maximal term length: 19
Weighting : term frequency (tf)
Terms
Docs abundant acid active adhesion aeropyrum alternative
1 0 0 1 0 0 0
2 0 0 0 0 0 0
3 0 0 0 1 0 0
4 0 0 0 0 0 0
5 0 0 0 0 0 0
6 0 1 0 0 0 0
7 0 0 0 0 0 0
8 0 0 0 0 0 0
9 0 0 0 0 0 0
10 0 0 0 0 1 0
11 0 0 1 0 0 0
12 0 0 0 0 0 0
13 0 0 0 0 0 0
14 0 0 0 0 0 0
15 1 0 0 0 0 0
16 0 0 0 0 0 0
17 0 0 0 0 0 0
18 0 0 0 0 0 0
19 0 0 0 0 0 1
这只是矩阵的一个小样本;实际上,我正在使用 214 个术语。在小范围内,这很好。如果我想将 myTermDocumentMatrix
转换为普通矩阵,我会这样做:
data.matrix <- as.matrix(freq.terms)
然而,我上面显示的数据只是我的整体数据的一个子集。我的整体数据可能至少有 10,000 个术语。当我尝试从整体数据创建 TDM 时,出现错误:
> Error cannot allocate vector of size n Kb
所以从这里开始,我正在寻找为我的 tdm 寻找有效内存分配的替代方法。
我尝试将我的 tdm 转换为Matrix
库中的稀疏矩阵,但遇到了同样的问题。
在这一点上我有什么选择?我觉得我应该调查以下之一:
我已经尝试了这两个库中的函数,但似乎没有得到任何实质性的结果。有谁知道最好的前进方式是什么?我花了很长时间摆弄这个问题,以至于我想在我浪费更多时间走错方向之前,我会问那些比我更有经验的人处理大型数据集。
编辑:将 10,00 更改为 10,000。谢谢@nograpes。