Как определить категории Википедии в Python - PullRequest
0 голосов
/ 05 февраля 2019

В настоящее время я использую pywikibot для получения категорий данной страницы википедии (например, support-vector machine) следующим образом.

import pywikibot as pw

print([i.title() for i in list(pw.Page(pw.Site('en'), 'support-vector machine').categories())])

Результаты, которые я получаю:

[
  'Category:All articles with specifically marked weasel-worded phrases',
  'Category:All articles with unsourced statements',
  'Category:Articles with specifically marked weasel-worded phrases from May 2018',
  'Category:Articles with unsourced statements from June 2013',
  'Category:Articles with unsourced statements from March 2017',
  'Category:Articles with unsourced statements from March 2018',
  'Category:CS1 maint: Uses editors parameter',
  'Category:Classification algorithms',
  'Category:Statistical classification',
  'Category:Support vector machines',
  'Category:Wikipedia articles needing clarification from November 2017',
  'Category:Wikipedia articles with BNF identifiers',
  'Category:Wikipedia articles with GND identifiers',
  'Category:Wikipedia articles with LCCN identifiers'
]

Как вы можете видеть, результаты, которые я получаю, включают в себя множество категорий отслеживания и сопровождения википедии, таких как

  • Категория: Все статьи со специально обозначенными фразами в виде ласки
  • Категория: Все статьи с утверждениями без источников
  • Категория: CS1 maint: Использует параметр редактора
  • и т. Д.

Тем не менее, категории, которые меня интересуют только;

  • Категория: Алгоритмы классификации
  • Категория: Статистическая классификация
  • Категория: Машины опорных векторов

Мне интересно, есть ли способполучить все tracing or maintenance категории Википедии, чтобы я мог удалить их из результатов, чтобы получить только информативные категории.

Или, пожалуйста, предложите мне, если есть какие-либо другие способы исключения их из результатов.

Я с удовольствием предоставлю более подробную информацию, если это необходимо.

1 Ответ

0 голосов
/ 05 февраля 2019

pywikibot в настоящее время не предоставляет некоторые функции API для фильтрации скрытых категорий.Вы можете сделать это вручную, выполнив поиск hidden в categoryinfo:

import pywikibot as pw

site = pw.Site('en', 'wikipedia')
print([
    cat.title()
    for cat in pw.Page(site, 'support-vector machine').categories()
    if 'hidden' not in cat.categoryinfo
])

:

['Category:Classification algorithms', 
 'Category:Statistical classification', 
 'Category:Support vector machines']

См. https://www.mediawiki.org/wiki/Help:Categories#Hidden_categories и https://en.wikipedia.org/wiki/Wikipedia:Categorization#Hiding_categories для получения дополнительной информации.

...