Skip to content

Sección XIII – Generando una oración con múltiples cláusulas

julio.janeiro edited this page Feb 6, 2017 · 1 revision

Frases unidas por una conjunción

Una forma de generar una oración con múltiples cláusulas es usar la clase CoordinatedPhraseElement.

    SPhraseSpec s1 = nlgFactory.createClause("mi gato", "quiere", "pescado");
    SPhraseSpec s2 = nlgFactory.createClause("mi perro", "quiere", "huesos grandes");
    SPhraseSpec s3 = nlgFactory.createClause("mi caballo", "quiere", "hierba");

    CoordinatedPhraseElement c = nlgFactory.createCoordinatedPhrase();
    c.addCoordinate(s1);
    c.addCoordinate(s2);
    c.addCoordinate(s3);

A continuación, el objeto CoordinatedPhraseElement c puede realizarse como una oración:

    String output = realiser.realiseSentence(c);
    System.out.println(output);

Si no se proporciona una conjunción utilizando el método setConjunction, la conjunción 'y' se utilizará automáticamente por ser el valor predeterminado. En este caso, la oración resultante sería:

    Mi gato quiere pescado, mi perro quiere huesos grandes y mi caballo quiere hierba.

Oraciones subordinadas

Las oraciones subordinadas se pueden agregar a la oración principal utilizando el método addComplement, donde se establece el tipo de complementador ("porque", "mientras", etc.) que se utiliza mediante el método setFeature.

    SPhraseSpec p = nlgFactory.createClause("yo", "estar", "feliz");
    SPhraseSpec q = nlgFactory.createClause(null, "comer", "pescado");
    
    q.setFeature(Feature.COMPLEMENTISER, "porque");
    q.setFeature(Feature.TENSE, Tense.PAST);
    p.addComplement(q);
            
    String output4 = realiser.realiseSentence(p); 
    System.out.println(output4);

La salida es:

    Yo estoy feliz porque comí pescado.