1

假设我有这样一段句子:

(NP
      (NP (DT A) (JJ single) (NN page))
      (PP (IN in)
        (NP (DT a) (NN wiki) (NN website))))

在某个时刻,我有一个参考(JJ single),我想获得NP节点绑定A single page。如果我做对了,那NP就是节点的父节点,A并且page是它的兄弟节点并且它没有子节点(?)。当我尝试使用.parent()树的方法时,我总是得到空值。API 说这是因为实现不知道如何确定父节点。另一种感兴趣的方法是.ancestor(int height, Tree root),但我不知道如何获取节点的根。在这两种情况下,由于解析器知道如何缩进和分组树,它必须知道“父”树,对吧?我怎么才能得到它?谢谢

4

2 回答 2

0

看起来它Tree本身永远不会返回节点的父节点,因为它在Tree源代码中是硬编码的。同时TreeGraphNode覆盖该方法并且运行良好。将树更改为 TreeGraphNode 就像

TreeGraphNode sentence = new TreeGraph(tree).root();
于 2010-04-25T08:01:44.937 回答
0

如果您保留对树根的引用,则可以使用方法parent(Tree root)获取树中任何节点的父节点。假设树根被称为root,JJ 节点被称为jjTree,则jjTree.parent(root)返回父 NP 节点。

于 2016-07-09T14:11:30.827 回答