我试图使用edu.stanford.nlp.*
包来获取所有名词短语。我得到了标签值“NP”的所有子树,但我无法获得正常的原始String
格式(不是Penn Tree格式)。
E.g。对于subtree.toString()
给出(NP (ND all)(NSS times)))
,但我想要字符串“所有时间”。谁能帮帮我吗。提前谢谢。
答案 0 :(得分:2)
我相信你想要的是:
final StringBuilder sb = new StringBuilder();
for ( final Tree t : tree.getLeaves() ) {
sb.append(t.toString()).append(" ");
}
虽然我不是百分百肯定,但我似乎记得这是几年前我工作的某些软件的解决方案。
答案 1 :(得分:0)
这可以使用子树的yield()方法来完成,而不是创建一个单独的StringBuilder对象。
if (subtree.label().value().equals("NP")) {
out.println(subtree); //print subtree
out.println(Sentence.listToString(subtree.yield())); //print phrase
break;
}