2015-05-21 5 views
0

Анализ зависимостей с использованием ClearNLP создает объект DEPTree. Я проанализировал большой корпус и сериализовал все данные в формате CoNLL (например, this ClearNLP page on Google code).Как десериализовать дерево зависимостей формата CoNLL с помощью ClearNLP?

Но я не могу понять, как их десериализировать. ClearNLP предоставляет метод DEPTree#toStringCoNLL() (прокрутите вниз this page, чтобы увидеть его). Я ищу что-то, чтобы прочитать дерево разбора формата CoNLL и создать объект DEPTree. Я попытался перепроектировать его, но на самом деле не понял внутренней работы кода.

У меня вместо этого создан собственный собственный древовидный древовидный тип для обработки основных функций, которые мне нужны, но мне бы очень хотелось узнать, как получить объект DEPTree. До сих пор я не нашел никакого метода в их API, который делает это.

ответ

0

Найден ответ, так разделяя мудрость на SO :-) ...

десериализации может быть сделано с помощью TSVReader в edu.emory.clir.clearnlp.reader пакете.

public void readCoNLL(String inputFile) throws Exception { 
    TSVReader reader = new TSVReader(0, 1, 2, 4, 5, 6, 7); 
    reader.open(new FileInputStream(inputFile)); 
    DEPTree tree; 
    while ((tree = reader.next()) != null) 
     System.out.println(tree.toString(DEPNode::toStringDEP)); 
} 

Это обеспечивается here автором ClearNLP, Jinho Choi.

В более старых версиях (< 3.x) вам необходимо использовать класс com.clearnlp.reader.DEPReader вместо TSVReader.