使用ClearNLP进行依赖性解析会创建一个DEPTree
对象。我已经解析了一个大型语料库并以CoNLL格式序列化了所有数据(例如,this ClearNLP page on Google code)。
但我无法弄清楚如何反序列化它们。 ClearNLP提供DEPTree#toStringCoNLL()
方法(向下滚动this page即可查看)。我正在寻找一些东西来读取CoNLL格式的解析树并创建一个DEPTree
对象。我试图对它进行逆向工程,但并没有真正理解代码的内部工作原理。
DEPTree
对象。到目前为止,我还没有在他们的API中找到任何方法。
答案 0 :(得分: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));
}
在旧版本(< 3.x)中,您需要使用com.clearnlp.reader.DEPReader
类而不是TSVReader
。