如何打印Stanford JavaNLP的解析树
我正在尝试使用如何打印Stanford JavaNLP的解析树,java,nlp,stanford-nlp,Java,Nlp,Stanford Nlp,我正在尝试使用edu.stanford.nlp.*包获取所有名词短语。我得到了标签值“NP”的所有子树,但我无法得到正常的原始字符串格式(不是Penn树格式) 例如,对于子树,toString()给出(NP(ND all)(NSS times))但我想要字符串“all times”。谁能帮帮我吗。提前谢谢。我相信你想要的是: final StringBuilder sb = new StringBuilder(); for ( final Tree t : tree.getLeaves() )
edu.stanford.nlp.*
包获取所有名词短语。我得到了标签值“NP”的所有子树,但我无法得到正常的原始字符串格式(不是Penn树格式)
例如,对于子树,toString()
给出(NP(ND all)(NSS times))
但我想要字符串“all times”。谁能帮帮我吗。提前谢谢。我相信你想要的是:
final StringBuilder sb = new StringBuilder();
for ( final Tree t : tree.getLeaves() ) {
sb.append(t.toString()).append(" ");
}
虽然我不是100%确定,但我似乎记得这是我几年前开发的一些软件所使用的解决方案。这可以使用子树的yield()方法来完成,而不是创建单独的StringBuilder对象
if (subtree.label().value().equals("NP")) {
out.println(subtree); //print subtree
out.println(Sentence.listToString(subtree.yield())); //print phrase
break;
}
斯坦福tregex对这类句子很有用。它向我们展示了解析行的树结构。这是斯坦福tregex的链接