Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
S
simplenlg-es
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Julio Janeiro Gallardo
  • simplenlg-es
  • Wiki
  • Sección V – Generando una oración simple

Last edited by Alberto J. Bugarín Diz Sep 13, 2017
Page history

Sección V – Generando una oración simple

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.

Clone repository
  • Home
  • Sección 0 – Tutorial de SimpleNLG ES
  • Sección I – Qué es SimpleNLG es
  • Sección II – Quién puede usar SimpleNLG es
  • Sección III – Primeros pasos
  • Sección IV – Lexicon
  • Sección IX – Modificadores vs. complementos
  • Sección V – Generando una oración simple
  • Sección VI – Verbos
  • Sección VII – Qué son los complementos
  • Sección VIII – Adición de adjetivos mediante el ‘modifier’
  • Sección X – Añadiendo múltiples sujetos y complementos
  • Sección XI – Frases preposicionales
  • Sección XII – Diferentes formas de especificar una frase
  • Sección XIII – Generando una oración con múltiples cláusulas
View All Pages