0

我正在尝试使用该edu.stanford.nlp.*包获取所有名词短语。我得到了标签值“NP”的所有子树,但我无法获得正常的原始String格式(不是 Penn 树格式)。

例如,subtree.toString()给予,(NP (ND all)(NSS times)))但我想要字符串“所有时间”。谁能帮帮我吗。提前致谢。

4

2 回答 2

2

我相信你想要的是这样的:

final StringBuilder sb = new StringBuilder();

for ( final Tree t : tree.getLeaves() ) {
     sb.append(t.toString()).append(" ");
}

虽然我不能 100% 确定,但我似乎记得这是我几年前工作的某些软件所使用的解决方案。

于 2012-06-22T02:33:18.547 回答
0

这可以使用子树的 yield() 方法来完成,而不是创建单独的 StringBuilder objext。

if (subtree.label().value().equals("NP")) {
    out.println(subtree);       //print subtree
    out.println(Sentence.listToString(subtree.yield()));    //print phrase  
    break;
}
于 2014-11-14T19:32:37.253 回答