我正在处理维基百科的转储文件,计算大约570万个页面的PageRank值。
这些文件已经预处理过了,因此不是XML格式。
它们来自于http://haselgrove.id.au/wikipedia.htm,格式如下:
from_page(1): to(12) to(13) to(14)..
from_page(2): to(21) to(22)..
.
.
.
from_page(5,700,000): to(xy) to(xz)
所以,基本上它是一个由[5,700,000*5,700,000]
矩阵构建而成的结构,这会让我的4GB RAM崩溃。由于它非常稀疏,使用scipy.lil.sparse
或scipy.dok.sparse
更容易存储,现在我的问题是:
我应该如何将带有链接信息的.txt
文件转换为稀疏矩阵呢?读取并计算成普通的N*N矩阵再进行转换吗? 我无从下手。
此外,链接有时会跨越多行,那么正确的处理方式是什么呢?
例如:随机一行可能是这样的...
[
1: 2 3 5 64636 867
2:355 776 2342 676 232
3: 545 64646 234242 55455 141414 454545 43
4234 5545345 2423424545
4:454 6776
]
完全像这样:没有逗号和分隔符。
有关稀疏矩阵构建和跨行数据处理的任何信息都将很有帮助。
lil_matrix
的方法?这似乎是显而易见的方法,但似乎不受支持。 - nealmcb