2011-01-23 12 views
5

Sto cercando di ottenere le connessioni tra archi e altre parole come:come ottenere rapporto tra le parole con la PNL Stanford parser

Lo schermo è molto buono

quindi voglio ottenere

schermo buon

ho appena don' so come ottenere che il soggetto è schermo e la descrizione è molto buono.

mio codice è

public synchronized String test(String s, LexicalizedParser lp){ 

    if (s.isEmpty()) return ""; 
    if (s.length()>80) return ""; 
    System.out.println(s); 

    Tree parse = (Tree) lp.apply(s); 

    TreebankLanguagePack tlp = new PennTreebankLanguagePack(); 

    System.out.println(parse.dependencies(tlp.headFinder())); 
} 

Qualcuno può darmi un esempio di come farlo nel modo giusto?

La stringa s è la frase per trovare la connessione tra le parole.

risposta

5

Per ottenere le Dipendenze Stanford tipizzate (come nsubj, dobj) è necessario utilizzare le classi GrammaticalStructure. Un albero semplice ha solo dipendenze non classificate. Utilizzare qualcosa del genere:

GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory(); 
GrammaticalStructure gs = gsf.newGrammaticalStructure(parse); 
Collection tdl = gs.typedDependenciesCollapsed(); 
System.out.println(tdl); 
Problemi correlati