|
|
|
En la clase Java de prueba TestMain mostrada anteriormente, tenemos las siguientes sentencias:
|
|
|
|
|
|
|
|
import simplenlg.framework.*;
|
|
|
|
import simplenlg.lexicon.*;
|
|
|
|
import simplenlg.lexicon.spanish.XMLLexicon;
|
|
|
|
import simplenlg.realiser.spanish.*;
|
|
|
|
import simplenlg.phrasespec.*;
|
|
|
|
import simplenlg.features.*;
|
|
|
|
|
|
|
|
Estas clases permiten especificar las partes del discurso de una oración y realizar varias operaciones sobre ellas. Es importante destacar que SimpleNLG-es proporciona sólo una gramática sencilla: sus nociones de oración, frase nominal, etc., son muy básicas y no representan de ningún modo la gramática increíblemente variada y complicada del español.
|
|
|
|
|
|
|
|
Veamos cómo definiríamos y combinaríamos diferentes partes del discurso para generar una oración simple como "María persigue el mono". Como se discutió en la Sección III, utilizaremos la construcción de SimpleNLG `SPhraseSpec`, que nos permite definir una oración o una cláusula en términos de sus constituyentes sintácticos. Esto es útil porque nos permite añadir diferentes partes de una cláusula, sin orden particular, y SimpleNLG-es ordenará esas partes en una estructura gramatical adecuada.
|
|
|
|
|
|
|
|
SPhraseSpec p = nlgFactory.createClause();
|
|
|
|
p.setSubject("María");
|
|
|
|
p.setVerb("perseguir");
|
|
|
|
p.setObject("un mono");
|
|
|
|
|
|
|
|
El conjunto anterior de llamadas define los componentes de la oración que deseamos construir: se ha especificado un sujeto, un verbo y un complemento directo para nuestra oración. Ahora, lo único que falta es usar el Realiser, que tomará estos diferentes componentes de la oración, los combinará y generará el texto para que el resultado sea sintáctica y morfológicamente correcto:
|
|
|
|
|
|
|
|
String output2 = realiser.realiseSentence(p);
|
|
|
|
System.out.println(output2);
|
|
|
|
|
|
|
|
La salida resultante sería:
|
|
|
|
|
|
|
|
María persigue un mono.
|
|
|
|
|
|
|
|
Cuando las partes del discurso se definen y unen en una instancia de la clase `SPhraseSpec`, los métodos asociados con esa clase como` setSubject`, `setVerb` y` setObject`, unen las partes del discurso siguiendo la gramática simple incorporada en SimpleNLG-es[1].
|
|
|
|
|
|
|
|
→ Para ver más ejemplos de cláusulas, ver `testsrc/ClauseTest.java`.
|
|
|
|
|
|
|
|
---
|
|
|
|
[1] Como veremos más adelante, las reglas de la gramática también se aplican en la construcción de los componentes más pequeños de la frase (como `NPPhraseSpec` y `PPPhraseSpec`) para asegurar que están bien formados. Por lo tanto, las reglas de gramática que implementa SimpleNLG-es no se definen dentro de un solo módulo sino que se distribuyen a lo largo de las diversas definiciones de clase. |
|
|
|
\ No newline at end of file |