什么?:我正在尝试通过以下格式
获取维基百科页面的逐页链接映射(矩阵) :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
表,使用表创建这个矩阵,根据spagelinks
检索 s。可能的解决方案:page_id
pl_title
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 ...
, not 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
这样我就不需要自己创建它了?或者如果没有,有没有比我指出的解决方案更快的方法来获得这种矩阵?