|
|
## Frases unidas por unha conxunción
|
|
|
|
|
|
Unha forma de xerar unha oración con múltiples cláusulas é empregar a clase `CoordinatedPhraseElement`.
|
|
|
|
|
|
SPhraseSpec s1 = nlgFactory.createClause("o meu gato", "quere", "peixe");
|
|
|
SPhraseSpec s2 = nlgFactory.createClause("o meu can", "quere", "ósos grandes");
|
|
|
SPhraseSpec s3 = nlgFactory.createClause("o meu cabalo", "quere", "herba");
|
|
|
|
|
|
CoordinatedPhraseElement c = nlgFactory.createCoordinatedPhrase();
|
|
|
c.addCoordinate(s1);
|
|
|
c.addCoordinate(s2);
|
|
|
c.addCoordinate(s3);
|
|
|
|
|
|
A continuación, o obxecto `CoordinatedPhraseElement c` pode realizarse como unha oración:
|
|
|
|
|
|
String output = realiser.realiseSentence(c);
|
|
|
System.out.println(output);
|
|
|
|
|
|
Se non se proporciona unha conxunción empregando o método `setConjunction`, a conxunción 'e' utilizarase automaticamente por ser o valor predeterminado. Neste caso, a oración resultante sería:
|
|
|
|
|
|
O meu gato quere peixe, o meu can quere ósos grandes e o meu cabalo quere herba.
|
|
|
|
|
|
## Oracións subordinadas
|
|
|
|
|
|
As oracións subordinadas pódense agregar á oración principal empregando o método addComplement, onde se establece o tipo de complemento ("porque", "mentres", etc.) que se utiliza mediante o método `setFeature`.
|
|
|
|
|
|
SPhraseSpec p = nlgFactory.createClause("eu", "estar", "feliz");
|
|
|
SPhraseSpec q = nlgFactory.createClause(null, "comer", "peixe");
|
|
|
|
|
|
q.setFeature(Feature.COMPLEMENTISER, "porque");
|
|
|
q.setFeature(Feature.TENSE, Tense.PAST);
|
|
|
p.addComplement(q);
|
|
|
|
|
|
String output4 = realiser.realiseSentence(p);
|
|
|
System.out.println(output4);
|
|
|
|
|
|
A saída é:
|
|
|
|
|
|
Eu estou feliz porque comín peixe. |