Извлечение инфобокса из Википедии на Яве
Я с нетерпением жду возможности извлечь информационный блок Википедии из дампа Википедии и подготовить 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 с помощью регулярных выражений.