我使用R语言的tm库创建了一个TermDocumentMatrix。它看起来像这样:
因此,我正在寻找其他有效的内存分配方式来为我的tdm进行优化。我尝试了使用Matrix库将我的tdm转换成稀疏矩阵,但遇到了同样的问题。在这一点上,我的备选方案是什么?我觉得我应该调查以下其中之一:
- `bigmemory` / `ff`软件包,如这里所述(尽管目前似乎无法在Windows上使用`bigmemory`软件包) - `irlba`软件包用于计算我的tdm的部分奇异值分解,如这里所述。
我已经尝试过两个库中的函数,但似乎都没有达到实质性进展。有人知道最好的前进方式吗?我花了很长时间在这方面摸索,所以在我继续朝错误的方向浪费更多时间之前,我想问问那些有更多大数据集处理经验的人。
编辑:更改10,00为10,000。感谢@nograpes。
<p>
> 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个术语矩阵中的一个小样本。在小规模下,这样做没问题。如果我想将我的TermDocumentMatrix
转换为普通矩阵,我需要执行以下操作:
data.matrix <- as.matrix(freq.terms)
然而,我展示的数据仅仅是整个数据集的一部分。我的整个数据集可能至少有10,000个术语。当我尝试从整个数据集中创建一个词频矩阵时,会出现错误:
> Error cannot allocate vector of size n Kb
因此,我正在寻找其他有效的内存分配方式来为我的tdm进行优化。我尝试了使用Matrix库将我的tdm转换成稀疏矩阵,但遇到了同样的问题。在这一点上,我的备选方案是什么?我觉得我应该调查以下其中之一:
- `bigmemory` / `ff`软件包,如这里所述(尽管目前似乎无法在Windows上使用`bigmemory`软件包) - `irlba`软件包用于计算我的tdm的部分奇异值分解,如这里所述。
我已经尝试过两个库中的函数,但似乎都没有达到实质性进展。有人知道最好的前进方式吗?我花了很长时间在这方面摸索,所以在我继续朝错误的方向浪费更多时间之前,我想问问那些有更多大数据集处理经验的人。
编辑:更改10,00为10,000。感谢@nograpes。