Skip to content

Sección VIII – Adición de adjetivos mediante el ‘modifier’

Julio Janeiro Gallardo edited this page Sep 20, 2017 · 4 revisions

Sabemos que María es una buena corredora, por lo que podemos asignarle un adjetivo adecuado, como "rápida". Esto se puede generar con SimpleNLG-ES usando el concepto de modificador.

Sin embargo, para considerar a la corredora «rápida», no podremos referirnos a ella como «sujeto» de la oración. En su lugar, debemos definir su nombre como una frase nominal. De esta forma, podemos atribuir el adjetivo «rápida» a la corredora utilizando la función de modificador.

    NPPhraseSpec subject = nlgFactory.createNounPhrase("la", "corredora");

Además vamos a definir también el complemento directo como una frase nominal y el verbo como una frase verbal. Esto nos permitirá hacer otras cosas más adelante, como añadir un modificador a cada uno.

    NPPhraseSpec object = nlgFactory.createNounPhrase("un mono");
    VPPhraseSpec verb = nlgFactory.createVerbPhrase("perseguir");

Ahora, podemos aplicar el adjetivo 'rápido' a la corredora escribiendo:

    subject.addModifier("rápida");

A continuación, establecemos el sujeto, el complemento directo y el verbo en el SPhraseSpec p que hemos definido anteriormente:

    p.setSubject(subject);
    p.setObject(object);
    p.setVerb(verb);

    String output3 = realiser.realiseSentence(p); // Realiser created earlier.
    System.out.println(output3);

La salida será:

    La rápida corredora persigue un mono.

el mismo modo, podemos dejar que el mundo sepa que María está persiguiendo al mono rápidamente. El adverbio 'rápidamente' también se puede agregar usando la función addModifier, pero esta vez es el verbo el que se modifica:

    verb.addModifier("rápidamente"); 

La salida será:

    La rápida corredora persigue un mono rápidamente.  

→ Para ver más ejemplos de frases nominales, ver testsrc/NounPhraseTest.java.

→ Para ver más ejemplos sobre modificadores, ver testsrc/AdjectivePhraseTest.java.