У меня была эта проблема несколько дней назад, я обнаружил, что вики-парсер, предоставленный https://github.com/Stratio/wikipedia-parser, работает.
Они передают файл xml и читают его кусками, которые затем можно записать в обратных вызовах.
Это фрагмент того, как я использовал его в Scala:
val parser = new XMLDumpParser(new BZip2CompressorInputStream(new BufferedInputStream(new FileInputStream(pathToWikipediaDump)), true))
parser.getContentHandler.setRevisionCallback(new RevisionCallback {
override def callback(revision: Revision): Unit = {
val page = revision.getPage
val title = page.getTitle
val articleText = revision.getText()
println(articleText)
}
Он передает википедию, анализирует ее и каждый раз, когда находит ревизию (статью), получает название, текст и печатает текст статьи. :)
--- Редактировать ---
В настоящее время я работаю над https://github.com/idio/wiki2vec, который, я думаю, выполняет ту часть конвейера, которая может вам понадобиться.
Не стесняйтесь взглянуть на код