问题 来自转储的Wikipedia类别层次结构


使用Wikipedia的转储我想为其类别构建层次结构。我已经下载了主转储(enwiki-latest-pages-articles)和类别SQL转储(enwiki-latest-category)。但我找不到层次结构信息。

例如,SQL类别的转储具有每个类别的条目,但我找不到任何关于它们如何相互关联的信息。

另一个转储(latest-pages-articles)表示每个页面的父类别,但是以无序方式。它只是陈述了所有的父母。

我见过wikiprep的类别层次结构(http://www.cs.technion.ac.il/~gabr/resources/code/wikiprep/)......那个怎么建造的? Wikiprep列出了类别ID,而不是其名称。有没有办法获得每个ID的名称?


11678
2017-07-02 17:42


起源



答案:


MediaWiki中的类别层次结构信息存储在 categorylinks 表,所以你需要的 categorylinks 倾倒。

你也需要 page (不 pages-articles)转储页面ID到标题映射。


11
2017-07-02 19:06



谢谢!一直在找那个晚上!当你说“页面”你的意思是这个enwiki-latest-page.sql.gz? (dumps.wikimedia.org/enwiki/latest) - fersarr
@fersarr是的,就是那个。 - svick
很抱歉再次打扰这个主题,我正在努力,但没有得到我期望的结果。这是正确的:从categoryLinks我得到pageId和它的类别。有些页面也是类别,因此连接所有链接应该产生类别层次结构? - fersarr
@fersarr是的,确切地说。 - svick
让我们 在聊天中继续讨论。 - svick


答案:


MediaWiki中的类别层次结构信息存储在 categorylinks 表,所以你需要的 categorylinks 倾倒。

你也需要 page (不 pages-articles)转储页面ID到标题映射。


11
2017-07-02 19:06



谢谢!一直在找那个晚上!当你说“页面”你的意思是这个enwiki-latest-page.sql.gz? (dumps.wikimedia.org/enwiki/latest) - fersarr
@fersarr是的,就是那个。 - svick
很抱歉再次打扰这个主题,我正在努力,但没有得到我期望的结果。这是正确的:从categoryLinks我得到pageId和它的类别。有些页面也是类别,因此连接所有链接应该产生类别层次结构? - fersarr
@fersarr是的,确切地说。 - svick
让我们 在聊天中继续讨论。 - svick


加载类别链接的转储等...以构建维基百科层次结构非常长(即使有趣)。

我发现快速路径可以产生良好的效果。我靠 维基百科的重要文章 层次结构。例如,见 sensimark 作为一个例子使用。


0
2017-09-14 09:41