Извлечение инфобокса из Википедии на Яве

Я с нетерпением жду возможности извлечь информационный блок Википедии из дампа Википедии и подготовить XML-файл с тегами в виде пар ключ-значение в Java.

Я успешно извлек инфобокс с помощью reg ex и stack. Тем не менее, содержание имеет разметку Википедии. Подскажите, пожалуйста, как мне отформатировать википедию в чистый текст и сохранить в виде пар ключ-значение? Очевидно, что кодирование всего удаления разметки - огромная задача, ища любой внешний API для Java.

2 ответа

Вы можете скачать wikixmlj и извлечь информационный блок со следующим кодом:

    import edu.jhu.nlp.wikipedia.*;
    public class InfoboxParser {

    public static void main(String[] args) throws Exception{
        WikiXMLParser parser = WikiXMLParserFactory.getSAXParser("/path_to_wiki_dump/enwiki-20131202-pages-articles-multistream.xml.bz2.xml");
            parser.setPageCallback(new PageCallbackHandler() {
                public void process(WikiPage page) {
                  InfoBox infobox=page.getInfoBox();
                   //do something with info box
                }
            });
            parser.parse();
    }

}

Никогда и ни при каких обстоятельствах не анализируйте XML с помощью регулярных выражений.

Используйте синтаксический анализатор XML.

Другие вопросы по тегам