|
|
|
Un `SPhraseSpec` pode ter múltiples suxeitos e complementos pero non verbos. Iso conséguese coa clase `CoordinatedPhraseElement`. Supoñamos que, ademáis de María, tamén hai unha xirafa que quere perseguir ao mono. Para engadila na frase teremos que escribir:
|
|
|
|
|
|
|
|
NPPhraseSpec subject1 = nlgFactory.createNounPhrase("María");
|
|
|
|
NPPhraseSpec subject2 = nlgFactory.createNounPhrase("unha", "xirafa");
|
|
|
|
|
|
|
|
CoordinatedPhraseElement subj = nlgFactory.createCoordinatedPhrase(subject1, subject2);
|
|
|
|
p.setSubject(subj);
|
|
|
|
|
|
|
|
A saída resultante sería:
|
|
|
|
|
|
|
|
María e unha xirafa perseguen un mono.
|
|
|
|
|
|
|
|
SimpleNLG-gl engadiu automaticamente a conxunción 'e' e cambiou a conxugación do verbo para que coincida cos múltiples suxeitos da oración.
|
|
|
|
|
|
|
|
Do mesmo xeito, podemos ter varios complementos nun `SPhraseSpec`. Supoñendo que María e a túa xirafa atoparon a máis xente a quen aterrorizar, en vez de `p.setObject(" un mono ")`, escribiríase:
|
|
|
|
|
|
|
|
NPPhraseSpec object1 = nlgFactory.createNounPhrase("un mono");
|
|
|
|
NPPhraseSpec object2 = nlgFactory.createNounPhrase("a Xurxo");
|
|
|
|
|
|
|
|
CoordinatedPhraseElement obj = nlgFactory.createCoordinatedPhrase(object1, object2);
|
|
|
|
obj.addCoordinate("a Marta");
|
|
|
|
p.setObject(obj);
|
|
|
|
|
|
|
|
A saída salida resultante será:
|
|
|
|
|
|
|
|
María e unha xirafa perseguen un mono, a Xurxo e a Marta.
|
|
|
|
|
|
|
|
Si María e a xirafa corren tan rápido que non se pode ver a quen perseguen, pódese cambiar a conxunción dos elementos coordinados:
|
|
|
|
|
|
|
|
obj.setFeature(Feature.CONJUNCTION, "ou");
|
|
|
|
|
|
|
|
A saída resultante será:
|
|
|
|
|
|
|
|
María e unha xirafa perseguen un mono, a Xurxo ou a Marta.
|
|
|
|
|
|
|
|
Como ocorre con moitos métodos en SimpleNLG-gl, o método `createCoordinatedPhrase` pode recibir todo tipo de argumentos -` NPPhraseSpec`, `PPPhraseSpec` ou incluso cadeas de texto.
|
|
|
|
|
|
|
|
→ Para ver máis exemplos de coordinación, ver `testsrc/ClauseAggregationTest.java`. |
|
|
|
\ No newline at end of file |