Я пытаюсь создать автономный викисловарь, используя файлы дампа Викимедиа (.xml.bz2), используя Python. Я начал с этой статьи в качестве руководства. Он включает в себя несколько языков, я хотел объединить все шаги в один проект Python. Я нашел почти все библиотеки, необходимые для этого процесса. Единственным препятствием на данный момент является эффективное разбиение большого файла .xml.bz2 на несколько файлов меньшего размера для более быстрого анализа во время операций поиска.
Я знаю, что в Python есть библиотека bz2, но она обеспечивает только операции сжатия и распаковки. Но мне нужно что-то, что может сделать что-то вроде bz2recover
из командной строки, которое разбивает большие файлы на несколько меньших мусорных блоков.
Еще один важный момент: разделение не должно разбивать содержимое страницы, которое начинается с <page>
и заканчивается </page>
в сжатом XML-документе.
Есть ли ранее доступная библиотека, которая могла бы справиться с этой ситуацией, или код должен быть написан с нуля? (Любой набросок / псевдокод был бы очень полезен).
Примечание. Я хотел бы сделать полученный пакет кросс-платформенным, поэтому не могу использовать команды, специфичные для ОС.