|
|
## 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. |