维基百科:从转储处理,如何过滤掉隐藏的类别?
Wikipedia: Processing from dumps, how to filter out hidden categories?
我正在处理来自这些转储的维基百科 [http://dumps.wikimedia.org/enwiki/20141208/ ]。
有关哪些类别与特定页面关联的信息可从
[http://dumps.wikimedia.org/enwiki/20141208/enwiki-20141208-categorylinks.sql.gz ], and meta data about categories themselves are available from [http://dumps.wikimedia.org/enwiki/20141208/enwiki-20141208-category.sql.gz ].
但我无法将隐藏类别与可见类别分开。
例如,页面 Anarchism 具有以下可见类别:
Anarchism
Political culture
Political ideologies
Social theories
Anti-fascism
Anti-capitalism
Far-left politics
虽然转储还建议许多其他垃圾标签,例如:
Articles_containing_Ancient_Greek-language_text
Articles_containing_Spanish-language_text
Articles_prone_to_spam_from_November_2014
Articles_with_DMOZ_links
Articles_with_French-language_external_links
Articles_with_inconsistent_citation_formats
CS1_French-language_sources_(fr)
CS1_German-language_sources_(de)
Good_articles
Use_British_English_from_January_2014
Wikipedia_indefinitely_move-protected_pages
和前面的一样。现在维基百科将它们称为 "Administration Categories" 或 "Hidden Categories",但此类内容不会在转储中标记。
因为我已经过滤掉了这些标签,我的选择是要么通过模式匹配过滤掉它们,要么直接从页面中获取可见标签(这是有问题的,因为类别在类别转储和页面中的写法不同) .
有什么建议吗?
所有隐藏类别(或者更具体地说,它们的页面)都直接位于(隐藏)类别 Category:Hidden categories。
因此,您需要做的是获取每个类别页面的页面ID,然后查找该页面是否在隐藏类别中。要根据名称查找页面 ID,您可能需要使用 page.sql
转储。
例如,页面 "Category:Articles containing Ancient Greek-language text" 的页面 ID 是 39721267 并且 categorylinks.sql
确实包含条目:
(39721267,'Hidden_categories','ANCIENT GREEK\nARTICLES CONTAINING ANCIENT GREEK-LANGUAGE TEXT','2013-06-25 09:42:34','Ancient Greek','uppercase','subcat')
我正在处理来自这些转储的维基百科 [http://dumps.wikimedia.org/enwiki/20141208/ ]。
有关哪些类别与特定页面关联的信息可从 [http://dumps.wikimedia.org/enwiki/20141208/enwiki-20141208-categorylinks.sql.gz ], and meta data about categories themselves are available from [http://dumps.wikimedia.org/enwiki/20141208/enwiki-20141208-category.sql.gz ].
但我无法将隐藏类别与可见类别分开。 例如,页面 Anarchism 具有以下可见类别:
Anarchism
Political culture
Political ideologies
Social theories
Anti-fascism
Anti-capitalism
Far-left politics
虽然转储还建议许多其他垃圾标签,例如:
Articles_containing_Ancient_Greek-language_text
Articles_containing_Spanish-language_text
Articles_prone_to_spam_from_November_2014
Articles_with_DMOZ_links
Articles_with_French-language_external_links
Articles_with_inconsistent_citation_formats
CS1_French-language_sources_(fr)
CS1_German-language_sources_(de)
Good_articles
Use_British_English_from_January_2014
Wikipedia_indefinitely_move-protected_pages
和前面的一样。现在维基百科将它们称为 "Administration Categories" 或 "Hidden Categories",但此类内容不会在转储中标记。
因为我已经过滤掉了这些标签,我的选择是要么通过模式匹配过滤掉它们,要么直接从页面中获取可见标签(这是有问题的,因为类别在类别转储和页面中的写法不同) .
有什么建议吗?
所有隐藏类别(或者更具体地说,它们的页面)都直接位于(隐藏)类别 Category:Hidden categories。
因此,您需要做的是获取每个类别页面的页面ID,然后查找该页面是否在隐藏类别中。要根据名称查找页面 ID,您可能需要使用 page.sql
转储。
例如,页面 "Category:Articles containing Ancient Greek-language text" 的页面 ID 是 39721267 并且 categorylinks.sql
确实包含条目:
(39721267,'Hidden_categories','ANCIENT GREEK\nARTICLES CONTAINING ANCIENT GREEK-LANGUAGE TEXT','2013-06-25 09:42:34','Ancient Greek','uppercase','subcat')