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 XIV – Más allá de las oraciones

Last edited by Julio Janeiro Gallardo Sep 22, 2017
Page history

Sección XIV – Más allá de las oraciones

Hemos visto muchas formas de crear frases individuales. Pero, ¿qué haríamos para juntar esas frases y así crear un párrafo más grande? SimpleNLG-ES puede hacerlo utilizando la clase DocumentElement. Esta clase se utiliza para definir elementos que forman parte de una estructura textual mayor (documentos, secciones, párrafos, oraciones, listas).

Para crear un párrafo, se combinan las instancias de "DocumentElement" usando createParagraph. Para crear una sección, se combinan las instancias DocumentElement con createSection. Del mismo modo, para crear una lista, se pueden combinar estos elementos utilizando createList, y para crear un documento, se debería usar createDocument. A continuación, se analiza el uso de createParagraph y createSection.

Creando un párrafo

El método createParagraph toma una lista de oraciones o frases simples añadidas a través del método addComponent. Estas oraciones se unen en forma de párrafo.

Como primer paso, añadimos la siguiente sentencia de importación al principio del archivo:

    import java.util.Arrays;

Esto nos permitirá pasar una lista al método createParagraph más adelante. Ahora estamos listos para dar formato a un párrafo. En primer lugar, definimos algunas oraciones:

    SPhraseSpec p1 = nlgFactory.createClause("María", "perseguir", "un mono");
    SPhraseSpec p2 = nlgFactory.createClause("el mono", "pelear"); 
    SPhraseSpec p3 = nlgFactory.createClause("María", "estar", "nerviosa");

A continuación, definimos estas oraciones como instancias de DocumentElement:

    DocumentElement s1 = nlgFactory.createSentence(p1);
    DocumentElement s2 = nlgFactory.createSentence(p2);
    DocumentElement s3 = nlgFactory.createSentence(p3);

A continuación, podemos pasar estos elementos como una lista al método createParagraph:

    DocumentElement par1 = nlgFactory.createParagraph(Arrays.asList(s1, s2, s3)); [1]

Y finalmente, realizamos el párrafo:

    String output = realiser.realise(par1).getRealisation();
    System.out.println(output);

La salida resultante es:

    María persigue un mono. El mono pelea. María está nerviosa.

Hay que tener en cuenta que en los últimos pasos, estamos usando el realiser de manera diferente que en todos los ejemplos anteriores: En lugar de usar realiser.realiseSentence(), como lo hicimos para las oraciones individuales, ahora estamos usando Realiser.realise().getRealisation().

Creando una sección

Digamos que queremos tener varios de párrafos, organizados juntos bajo un encabezado de sección. Para hacer esto, se usaría createSection().

Con nuestro código anterior, podemos crear una sección con un encabezado como este:

    DocumentElement section = nlgFactory.createSection("Los juicios y afliciones de María y el mono");

Podemos agregar un párrafo a esta sección usando:

    section.addComponent(par1);

A continuación, se puede realizar la sección como en el ejemplo anterior:

    String output = realiser.realise(section).getRealisation();
    System.out.println(output);

→ Para ver más ejemplos de DocumentElement, ver testsrc/DocumentElementTest.java.

Salida HTML

De forma predeterminada, SimpleNLG-ES produce una salida de texto plano. Si se desea una salida con etiquetas HTML, se debe añadir un HTMLFormatter al realiser, por ejemplo:

    realiser.setFormatter(new HTMLFormatter());

→ Para ver más ejemplos con salida HTML, ver HTMLFormatterTest.java.


[1] También se pueden agregar oraciones individuales:

    DocumentElement par1 = nlgFactory.createParagraph();
    par1.addComponent(s1); // ...etc.
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