如何使用 ClearNLP 反序列化 CoNLL 格式依赖树?
How to deserialize a CoNLL format dependency tree with ClearNLP?
使用 ClearNLP 的依赖解析创建了一个 DEPTree
对象。我已经解析了一个大型语料库并将所有数据序列化为 CoNLL 格式(例如,this ClearNLP page on Google code)。
但我不知道如何反序列化它们。 ClearNLP 提供了一个 DEPTree#toStringCoNLL()
方法(向下滚动 this page 可以看到)。我正在寻找可以读取 CoNLL 格式解析树并创建 DEPTree
对象的东西。我试图对其进行逆向工程,但并没有真正理解代码的内部工作原理。
相反,我创建了自己的依赖关系树 class 来处理我需要的基本功能,但我真的很想知道如何获取 DEPTree
对象。到目前为止,我还没有在他们的 API 中找到任何执行此操作的方法。
找到答案,所以在 SO 上分享智慧 :-) ...
反序列化可以使用 edu.emory.clir.clearnlp.reader
包中的 TSVReader
完成。
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 by the author of ClearNLP, Jinho Choi
提供的
在旧版本 (< 3.x) 中,您需要使用 com.clearnlp.reader.DEPReader
class 而不是 TSVReader
。
使用 ClearNLP 的依赖解析创建了一个 DEPTree
对象。我已经解析了一个大型语料库并将所有数据序列化为 CoNLL 格式(例如,this ClearNLP page on Google code)。
但我不知道如何反序列化它们。 ClearNLP 提供了一个 DEPTree#toStringCoNLL()
方法(向下滚动 this page 可以看到)。我正在寻找可以读取 CoNLL 格式解析树并创建 DEPTree
对象的东西。我试图对其进行逆向工程,但并没有真正理解代码的内部工作原理。
相反,我创建了自己的依赖关系树 class 来处理我需要的基本功能,但我真的很想知道如何获取 DEPTree
对象。到目前为止,我还没有在他们的 API 中找到任何执行此操作的方法。
找到答案,所以在 SO 上分享智慧 :-) ...
反序列化可以使用 edu.emory.clir.clearnlp.reader
包中的 TSVReader
完成。
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 by the author of ClearNLP, Jinho Choi
提供的在旧版本 (< 3.x) 中,您需要使用 com.clearnlp.reader.DEPReader
class 而不是 TSVReader
。