使用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的名称?
MediaWiki中的类别层次结构信息存储在categorylinks
table中,因此您将需要categorylinks
转储。
您还需要page
(而不是pages-articles
)转储页面ID到标题映射。
加载类别链接的转储等...以构建维基百科层次结构非常长(即使有趣)。
我发现快速路径可以产生良好的效果。我依靠wikipedia vital articles层次结构。例如,参见sensimark作为示例用途。