-
Notifications
You must be signed in to change notification settings - Fork 1
Sección X – Engadindo múltiples suxeitos e complementos
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
.