我有這個解析樹在這裏:如何獲得斯坦福分析樹中的根節點?
我想是從集合的子樹的孩子給出一個字一個共同的母公司獲得的所有單詞。例如,如果你拿「瓶」這個詞,那麼我想獲得「沃斯瓶」或甚至「沃斯瓶裝水」但我不知道該怎麼做。
Annotation document = new Annotation(sentenceText);
this.pipeline.annotate(document);
List<CoreMap> sentences = document.get(SentencesAnnotation.class);
for (CoreMap sentence : sentences) {
Tree tree = sentence.get(TreeAnnotation.class);
List<Tree> leaves = new ArrayList<>();
leaves = tree.getLeaves(leaves);
for (Tree leave : leaves) {
String compare = leave.toString().toLowerCase();
if(compare.equals(word) == true) {
// Get other nodes in the same subtree
}
}
}
調用leave.parent()
不起作用。我也試過tree.parent(leave)
,但這也不起作用(返回null
)。
我也試過
for (Tree leave : tree) {
String compare = leave.toString().toLowerCase();
if(compare.equals(word) == true) {
// ..
}
}
,但我得到了相同的。
public Tree parent(Tree root)
返回樹節點的父節點。此例程將遍歷給定根的樹(第一個深度),並且將正確地查找父級,而不管具體類是否存儲父級。如果此節點是根節點,或者如果此節點未包含在以根爲根的樹中,它將僅返回null。
我該如何設法做到這一點? #EverythingIsBrokenAllTheTime
就像我在這個問題指出,調用'leave.parent(樹)',它拋出一個異常每次 – displayname
在你使用的問題,不工作「tree.parent(離開)」。我用leave.parent(樹)運行了一個例子,並沒有變爲null,我將嘗試稍後發佈。 – StanfordNLPHelp
對不起,這只是返回'null',但不是exceptoin。 – displayname