-
Notifications
You must be signed in to change notification settings - Fork 1
Sección V – Xerando unha oración simple
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.