wikiextractor не дает никаких результатов

Не получаеться экстрагоровать текст из Википедии с помощью wikiextractor. Хотелось отфильтровать категории: Медицина, Медицинская документация, Медицинская терминология. Я запустила программу этой командой

WikiExtractor.py --filter_category categories.txt ruwiki-20200120-pages-articles-multistream.xml

Результат:

NFO: Excluding categories:
INFO: set()
INFO: Including categories:
INFO: 8
INFO: Loaded 0 templates in 0.0s
INFO: Starting page extraction from ruwiki-20200120-pages-articles-multistream.xml.
INFO: Using 3 extract processes.
INFO: Finished 3-process extraction of 0 articles in 338.6s (0.0 art/s)
INFO: total of page: 2505470, total of articl page: 1591972; total of used articl page: 0

Ответы (1 шт):

Автор решения: Buyanov Igor

Если еще актуально, то я нашел, почему. Дело в том, что извлечение категорий производится с помощью регулярных выражений, в котором захардкожено слово Category. В русской википедии ипользуется русское слово, поэтому программа и не может фильтровать. Все, что вам нужно сделать, это поменять слово в двух местах:

  1. catRE = re.compile(r'\[\[Category:([^\|]+).*\]\].*') превратить в catRE = re.compile(r'\[\[Категория:([^\|]+).*\]\].*')

  2. if line.lstrip().startswith('[[Category:'): превратить в if line.lstrip().startswith('[[Категория:'):

→ Ссылка