【发布时间】:2012-10-01 11:01:42
【问题描述】:
什么?:
我正在尝试通过page_id 获取维基百科页面的逐页链接图(矩阵),格式如下:
from1 to1 to2 to3 ...
from2 to1 to2 to3 ...
...
为什么?:
我正在寻找数据集(来自维基百科的页面)来尝试 PageRank。
问题:
在dumps.wikimedia.org 可以下载 pages-articles.xml,它是这种格式的 XML:
<page>
<title>...</title>
<id>...</id> // pageid
<text>...</text>
</page>
我将用于检索文章 (text),然后是每页的基础数据 (page.sql),其中包含有关 page_id 的页面的一些详细信息,最后一个似乎与我相关的是包含页面到页面链接记录的 pagelinks.sql。问题是pagelinks 表有以下字段:pl_from、pl_namespace 和pl_title。
想法: 创建临时数据库,导入page 和pagelinks 表并使用pagelinks 表创建此矩阵,并根据pl_titles 检索page_ids。可能的解决方案:
SELECT pl_from, GROUP_CONCAT(page_id SEPARATOR ' ') FROM pagelinks
JOIN page ON
pl_title = page_title AND pl_namespace = page_namespace
GROUP BY pl_from
或获取“反向链接”的地图(to1 from1 from2 from3 ...,而不是from1 to1 to2 to3 ...):
SELECT page_id, GROUP_CONCAT(pl_from SEPARATOR ' ') FROM pagelinks
JOIN page ON
pl_title = page_title AND pl_namespace = page_namespace
GROUP BY page_id
问题:
有没有地方可以通过page_id 获得这种页面到页面链接矩阵,这样我就不需要自己创建它了?
或者如果没有,有没有比我指出的解决方案更快的方法来获得这种矩阵?
【问题讨论】: