A titre d'exemple, j'ai l'arbre d'analyse suivant de l'analyseur de Stanford. Comment puis-je extraire les étiquettes comme S et SBAR pour finalement extraire des clauses. J'ai essayé un petit morceau de code (ce qui est évidemment incorrect) comme point de départ, en utilisant différentes méthodes de Tree, mais rien ne m'a donné les résultats souhaités.Parsing des étiquettes de nœuds pour extraire de manière prossable les clauses d'un arbre syntaxique
code:
for (Tree subtree: parseTree.getLeaves()){
if (subtree.label().equals("S")||subtree.label().equals("SBAR"))
System.out.println("SUBTREE:::"+"\t"+ subtree.getLeaves());
}
Parse Arbre:
(ROOT
(S
(NP
(NP (DT A) (NNP Bristol) (NN hospital))
(SBAR
(WHNP (WDT that))
(S
(VP (VBD retained)
(NP
(NP (DT the) (NNS hearts))
(PP (IN of)
(NP
(NP (CD 300) (NNS children))
(SBAR
(WHNP (WP who))
(S
(VP (VBD died)
(PP (IN in)
(NP (JJ complex) (NNS operations)))))))))))))
(VP (VBD behaved)
(ADVP (IN in) (DT a))
('' '')
(S
(VP (VBG cavalier) ('' '')
(NP (NN fashion))))
(PP (IN towards)
(NP (DT the) (NNS parents))))
(. .)))
En fait, je recommanderais d'utiliser Tregex plutôt que ma réponse originale. – StanfordNLPHelp