如何获得包含" root"的边缘?斯坦福NLP解析器中的修饰符依赖?

时间:2015-02-05 21:17:00

标签: nlp stanford-nlp

我为我的场景创建了一个接受文本输入的依赖图。

SemanticGraph dependencies = sentence.get(CollapsedCCProcessedDependenciesAnnotation.class);

我成功获得了#34; num"使用以下代码修饰符依赖:

List<SemanticGraphEdge> edgesContainingNumModifierDependency = dependencies.findAllRelns(GrammaticalRelation.valueOf("num"));

但是,我想找到与&#34; root&#34;相关的边缘。因此,以下

List<SemanticGraphEdge> edgesContainingRootModifierDependency = dependencies.findAllRelns(GrammaticalRelation.valueOf("root"));

似乎不起作用。

任何人都可以解释原因吗?我如何才能获得根的优势?

1 个答案:

答案 0 :(得分:1)

我们实际上并不在根词和虚拟SemanticGraphEdge节点之间存储ROOT。 (您可以看到在面向公众的方法like toList中手动添加依赖关系。)

来自SemanticGraph documentation

  

根目前不表示为图中的顶点。目前,您需要从单独的根变量中获取根/根并了解它。这可能会被更改,因为否则,只需从图中获取节点或边集就不会为您提供根节点或边。

但是,您可以使用SemanticGraph#getFirstRoot获得所需内容。