2013-07-02 34 views
9

Sử dụng các bãi chứa của Wikipedia Tôi muốn xây dựng một hệ thống phân cấp cho các danh mục của nó. Tôi đã tải xuống dump chính (enwiki-latest-pages-articles) và phân loại SQL dump (enwiki-latest-category). Nhưng tôi không thể tìm thấy thông tin phân cấp.Phân cấp danh mục Wikipedia từ các bãi

Ví dụ: kết xuất danh mục SQL có các mục nhập cho mỗi danh mục nhưng tôi không thể tìm thấy bất kỳ điều gì về cách chúng có liên quan với nhau.

Kết xuất khác (trang-bài viết mới nhất) cho biết các danh mục gốc cho mỗi trang nhưng theo cách không theo thứ tự. Nó chỉ nói lên tất cả các bậc cha mẹ.

Tôi đã thấy hệ thống phân cấp danh mục của wikiprep (http://www.cs.technion.ac.il/~gabr/resources/code/wikiprep/) ... Làm thế nào để xây dựng? Wikiprep liệt kê ID danh mục chứ không phải tên của nó. Có cách nào để lấy tên cho mỗi ID không?

Trả lời

10

Thông tin phân cấp danh mục trong MediaWiki được lưu trữ trong categorylinks table, vì vậy, bạn sẽ cần bãi chứa categorylinks.

Bạn cũng sẽ cần kết xuất page (không phải pages-articles) cho id trang để ánh xạ tiêu đề.

+0

Cảm ơn! Được tìm kiếm cho rằng tất cả các đêm! Khi bạn nói "trang", bạn có nghĩa là trang này enwiki-latest-page.sql.gz? (http://dumps.wikimedia.org/enwiki/latest/) – fersarr

+1

@fersarr Vâng, đó là một. – svick

+0

xin lỗi vì đã làm phiền một lần nữa với chủ đề này, tôi đang làm việc trên nó, nhưng không nhận được kết quả mong đợi. Điều này có chính xác không: Từ danh mụcLinks Tôi nhận được pageId và các danh mục của nó. Một số trang cũng sẽ là các danh mục, vì vậy việc kết nối tất cả các liên kết sẽ dẫn đến phân cấp danh mục? – fersarr

Các vấn đề liên quan