如何处理我从 syntaxnet 获得的树?(conll 格式)
How to process tree that i got from syntaxnet?(conll format)
我想我需要 edu.stanford.nlp 包中的 Semgrex。对于这个任务,我需要从 edu.stanford.nlp.trees.Tree 构造树并像
一样处理那棵树
import edu.stanford.nlp.semgraph.semgrex.SemgrexMatcher;
import edu.stanford.nlp.trees.Tree;
import edu.stanford.nlp.semgraph.SemanticGraphFactory;
public class SemgrexDemo {
public static void main(String[] args) {
Tree someHowBuiltTree;//idnt know how to construct Tree from conll
SemanticGraph graph = SemanticGraphFactory.generateUncollapsedDependencies(someHowBuiltTree);
SemgrexPattern semgrex = SemgrexPattern.compile("{}=A <<nsubj {}=B");
SemgrexMatcher matcher = semgrex.matcher(graph);
}
}
实际上我需要一些关于如何从 conll 构造树的建议。
您想从您的 CoNLL 文件加载 SemanticGraph
。
import edu.stanford.nlp.trees.ud.ConLLUDocumentReader;
...
CoNLLUDocumentReader reader = new CoNLLUDocumentReader();
Iterator<SemanticGraph> it = reader.getIterator(IOUtils.readerFromString(conlluFile));
这将生成一个 Iterator
,它将为您文件中的每个句子提供一个 SemanticGraph
。
从依存分析生成选区树是一个开放的研究问题,因此据我所知,目前 Stanford CoreNLP 无法做到这一点。
我想我需要 edu.stanford.nlp 包中的 Semgrex。对于这个任务,我需要从 edu.stanford.nlp.trees.Tree 构造树并像
一样处理那棵树import edu.stanford.nlp.semgraph.semgrex.SemgrexMatcher;
import edu.stanford.nlp.trees.Tree;
import edu.stanford.nlp.semgraph.SemanticGraphFactory;
public class SemgrexDemo {
public static void main(String[] args) {
Tree someHowBuiltTree;//idnt know how to construct Tree from conll
SemanticGraph graph = SemanticGraphFactory.generateUncollapsedDependencies(someHowBuiltTree);
SemgrexPattern semgrex = SemgrexPattern.compile("{}=A <<nsubj {}=B");
SemgrexMatcher matcher = semgrex.matcher(graph);
}
}
实际上我需要一些关于如何从 conll 构造树的建议。
您想从您的 CoNLL 文件加载 SemanticGraph
。
import edu.stanford.nlp.trees.ud.ConLLUDocumentReader;
...
CoNLLUDocumentReader reader = new CoNLLUDocumentReader();
Iterator<SemanticGraph> it = reader.getIterator(IOUtils.readerFromString(conlluFile));
这将生成一个 Iterator
,它将为您文件中的每个句子提供一个 SemanticGraph
。
从依存分析生成选区树是一个开放的研究问题,因此据我所知,目前 Stanford CoreNLP 无法做到这一点。