|
|
Na clase Java de proba TestMain mostrada anteriormente, temos as seguintes sentencias:
|
|
|
|
|
|
import simplenlg.framework.*;
|
|
|
import simplenlg.lexicon.*;
|
|
|
import simplenlg.lexicon.galician.XMLLexicon;
|
|
|
import simplenlg.realiser.galician.*;
|
|
|
import simplenlg.phrasespec.*;
|
|
|
import simplenlg.features.*;
|
|
|
|
|
|
Estas clases permiten especificar as partes do discurso dunha oración e realizar operacións sobre elas. É importante destacar que SimpleNLG-gl soamente proporciona unha gramática sinxela: as súas nocións de oración, frase nominal, etc., son moi básicas e non representan de ningún xeito a gramática incriblemente variada e complicada do galego.
|
|
|
|
|
|
A continuación móstrase como se definirían e combinarían as diferentes partes do discurso para xerar unha oración simple como “María persegue un mono”. Para isto utilizaremos a construción de SimpleNLG `SphraseSpec`, que permite definir unha oración ou unha cláusula en termos dos seus constituíntes sintácticos. Isto é útil porque permite engadir diferentes partes dunha cláusula sen unha orde particular e SimpleNLG-gl ordenará esas partes nunha estrutura gramatical adecuada.
|
|
|
|
|
|
SPhraseSpec p = nlgFactory.createClause();
|
|
|
p.setSubject("María");
|
|
|
p.setVerb("perseguir");
|
|
|
p.setObject("un mono");
|
|
|
|
|
|
O conxunto anterior de sentencias define os compoñentes da oración que queremos construír: especificouse un suxeito, un verbo e un complemento directo. Para obter o texto final debe utilizarse o `Realiser`, que tomará os elementos da oración para, a partir de eles, xerar un texto sintáctica e morfoloxicamente correcto:
|
|
|
|
|
|
String output2 = realiser.realiseSentence(p);
|
|
|
System.out.println(output2);
|
|
|
|
|
|
A saída resultante é:
|
|
|
|
|
|
María persegue un mono.
|
|
|
|
|
|
Cando as partes do discurso son definidas nunha instancia da clase `SPhraseSpec`, os métodos asociados a esta clase como `setSubject`, `setVerb` e ` setObject` unen as partes do discurso seguindo a gramática simple incorporada en SimpleNLG-gl[1].
|
|
|
|
|
|
→ Para ver máis exemplos de cláusulas, ver `testsrc/ClauseTest.java`.
|
|
|
|
|
|
---
|
|
|
[1] Como veremos máis adiante, as regras da gramática tamén se aplican na construción de compoñentes máis pequenos da frase (como `NPPhraseSpec` e `PPPhraseSpec`) para asegurar que están ben formados. Polo tanto, as regras de gramática que implementa SimpleNLG-gl non se definen dentro dun solo módulo senón que se distribúen ao longo das diversas definicións da clase. |