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