2011-01-23 14 views
5

Estoy tratando de obtener las conexiones entre la cuerda y otras palabras como:cómo llegar relación entre las palabras con PNL Stanford analizador

la pantalla es muy buena

lo que quiere conseguir

pantalla de buena

acabo Don' t saber cómo conseguir que el sujeto sea pantalla y la descripción es muy buena.

Mi código es

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())); 
} 

alguien puede darme un ejemplo de cómo hacerlo bien?

La cadena s es la oración para encontrar la conexión entre las palabras.

Respuesta

5

Para obtener las dependencias de Stanford tipadas (como nsubj, dobj) necesita utilizar las clases de estructura gramatical. Un árbol simple solo tiene dependencias sin tipo. Use algo como esto:

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