Tecnologías multimedia e interacción/Texto generado por ordenador

Este recurso de aprendizaje es una lección creada originalmente como material didáctico del proyecto de aprendizaje Tecnologías multimedia e interacción.

Generación de Lenguaje Natural (NLG en inglés) consiste en el proceso de generación de lenguaje natural a partir de una representación máquina de un sistema como puede ser una base de conocimiento o una forma lógica. Los psicolingüistas prefieren el término producción de lenguaje cuando tales representaciones formales son interpretadas como modelos para representaciones mentales.

Se podría decir que un sistema NLG es como un traductor que convierte una representación máquina en una representación en lenguaje natural. Sin embargo, los métodos que existen para producir el lenguaje final son diferentes de los de un compilador debido a la inherente expresividad de los lenguajes naturales. NLG ha existido desde hace tiempo pero solamente desde hace poco la tecnología NGL de forma comercial se ha vuelto disponible y autosuficiente.

NLG puede ser vista como el opuesto del entendimiento del lenguaje natural: mientras que en el entendimiento del lenguaje natural el sistema necesita desambiguar la frase de entrada para producir una representación en lenguaje máquina, en NLG el sistema necesita tomar decisiones sobre cómo poner un concepto en palabras.

Ejemplos sencillos son sistemas que generan cartas a partir de plantillas. Estos habitualmente no implican reglas gramaticales, sino que generan una carta a un consumidor, p.e. indicando que el límite de gasto de una tarjeta de crédito se ha alcanzado. Otros sistemas NLG más complejos crean dinámicamente textos para lograr un objetivo de comunicación. Como en otras áreas del procesamiento de lenguaje natural, esto puede realizarse bien utilizando modelos explícitos del lenguaje (p.e., gramáticas) y del dominio, o utilizando modelos estadísticos derivados del análisis de textos escritos por humanos.

Ejemplo

editar

El sistema Pollen Forecast for Scotland [1] es un ejemplo sencillo de un sistema NLG. Este sistema toma como entrada seis números, que son los niveles de polen predichos en distintas partes de Escocia. A partir de estos números, el sistema genera un breve resumen de los niveles de polen como salida.

Por ejemplo, usando los datos históricos para el 1 de Julio del 2005, el software produce

Grass pollen levels for Friday have increased from the moderate to high levels of yesterday with values of around 6 to 7 across most parts of the country. However, in Northern areas, pollen levels will be moderate with values of 4.

En contraste, la predicción (escrita por un meteorólogo) a partir de estos datos fue

Pollen counts are expected to remain high at level 6 over most of Scotland, and even level 7 in the south east. The only relief is in the Northern Isles and far northeast of mainland Scotland with medium levels of pollen count.

Comparando ambos se puede ver el tipo de elecciones que los sistemas NLG deben tomar; estas se comentarán posteriormente.

Etapas

editar

El proceso de generar texto puede ser tan simple como mantener una lista de textos prediseñados que son copiados y pegados, posiblemente enlazados a partir de conectores. Esto puede resultar satisfactorio en simples dominios como máquinas de horóscopos o generadores de cartas formales de negocio personalizadas. Sin embargo, un sistema NLG sofisticado necesita incluir etapas de planificación y mezcla de información para habilitar la generación de texto de manera que parezca natural y no se vuelva repetitiva. Las etapas usuales de Generación de Lenguaje Natural, propuestas por Dale y Reiter,[2] son:

1. Planificación del texto: elección de qué es lo que se va a mostrar dependiendo del tipo de texto y del contexto. Esta etapa comprende 2 operaciones:

  • Determinación del contenido: decidir qué información incluir en el texto o excluirlo. Por ejemplo, en el ejemplo del polen mencionado arriba, decidir si mencionar explícitamente que el nivel 7 de polen es en el sureste.
  • Estructurar el documento: organización global de la información a expresar. Por ejemplo, decidir mencionar en primer lugar las áreas con mayor nivel de polen, en lugar de las que tengan menor nivel de polen.

2. Microplanificación o Planificación de las frases: en esta etapa se recibe el resultado de la anterior y se procesan los mensajes para crear estructuras cercanas al lenguaje humano.

  • Agregación: Mezcla de frases similares para mejorar la legibilidad y la naturalidad. Por ejemplo, juntando las dos frases

Grass pollen levels for Friday have increased from the moderate to high levels of yesterday y Grass pollen levels will be around 6 to 7 across most parts of the country en una única frase Grass pollen levels for Friday have increased from the moderate to high levels of yesterday with values of around 6 to 7 across most parts of the country.

  • Elección del léxico: Poner palabras a los conceptos. Por ejemplo, decidir si debería usarse medium o moderate cuando se describe un nivel 4 de polen.
  • Generación de expresiones de referencia: Crear expresiones de referencia que identifican objetos y regiones. Por ejemplo, decidir usar in the Northern Isles and far northeast of mainland Scotland para referirse a una cierta región de Escocia. Esta tarea también implica tomar decisiones sobre pronombres y otros tipos de anáforas.

3. Realización: Crear el texto, que debería ser correcto de acuerdo a las reglas de sintaxis, morfología y ortografía. Por ejemplo, utilizando will be por el futuro de to be.

Aplicaciones

editar

En general, se ha centrado la atención en Sistemas de Generación de Lenguaje Natural que generan chistes y parodias. No obstante, desde un punto de vista comercial, las aplicaciones más exitosas han sido los sistemas Datos-a-texto que generan resúmenes textuales de bases de datos y conjuntos de datos; estos sistemas suelen llevar a cabo tanto análisis de datos como generación de texto. Un ejemplo de este tipo, son los sistemas que producen pronósticos a partir de los datos del tiempo. El primero de estos sistemas fue FoG,[3], usado por el gobierno canadiense para generar pronóstico del tiempo en francés e inglés, a principios de los años 90.

Otra de las herramientas generadas por la misma empresa de FoG, CoGenTex, es ModelExplainer. Consiste en un sistema que recibe como entrada diagramas de modelado y genera como salidas un texto en lenguaje natural mostrando la información que se quiere transmitir con ese diagrama. Esto viene bien para evitar posibles malas interpretaciones de un diagrama que pueda ocasionarse en algunos casos.

El éxito de FoG generó más trabajo tanto a nivel de investigación como comercial. Trabajo reciente en este área incluye experimentos que prueban que los usuarios prefieren los pronósticos generados por ordenador a aquellos escritos por humanos. Esto se debe en gran medida a que los pronósticos por ordenador usan terminología más consistente [4]. Además, se pueden usar técnicas estadísticas para generar pronósticos del tiempo de mayor calidad [5].

En los años 90, había un gran interés en usar la generación de lenguaje natural para resumir datos financieros y de negocio. Por ejemplo, el sistema SPOTLIGHT desarrollado por A.C. Nielsen generaba automáticamente texto inglés legible basado en el análisis de enormes cantidades de datos de venta [6].

Más recientemente, se ha usado para generar resúmenes de registros médicos electrónicos. Aplicaciones comerciales en este área pueden ser encontrados en [7]. Además, diversos investigadores han mostrado que este tipo de resúmenes pueden ser efectivos para aplicaciones de ayuda en decisiones para profesionales médicos. [8]

Hay también un interés creciente en usarlo para mejorar la accesibilidad de invidentes, como por ejemplo descripción de grafos para personas invidentes.

Un ejemplo de un uso interactivo de generación de lenguaje natural es el framework WYSIWYM. Estas siglas vienen de la frase inglesa What you see is what you meant (Lo que ves es lo que quieres decir) y permite a los usuarios ver y manipular la vista renderizada de manera continuada de un lenguaje natural subyacente, de manera que se edita el lenguaje natural sin necesidad de conocerlo.

Sistemas de generación de contenido asisten a los escritores humanos y hacen que el proceso de escritura sea más eficiente y efectivo. Una herramienta de este tipo está basado en minería web usando APIs de motores de búsqueda [9].

La herramienta imita el escenario de escritura copia-y-pega donde un escritor genera su contenido a partir de varios resultados de búsqueda. Verificar la relevancia es esencial para filtrar aquellos resultados que sean irrelevantes; esto está basado en encajar el árbol de sintaxis de una consulta con los árboles de sintaxis de las respuestas candidatas. [10]

En otro enfoque alternativo, una estructura de alto nivel de texto escrito por personas es usado para construir automáticamente una plantilla para un nuevo tema para los artículos de la Wikipedia escritos automáticamente. [11]

Varias compañías han sido creadas desde 2009 para construir sistemas que transforman datos en narrativa, usando generación de lenguaje natural y técnicas de Inteligencia Artificial. Estos incluyen: Arria NLG, Automated Insights, Ax Semantics, Narrative Science, Retresco and Yseop.

Evaluación

editar

Como en otros campos científicos, los investigadores en Generación de Lenguaje Natural necesitan evaluar como funcionan sus sistemas, módulos y algoritmos. Este es el proceso llamado evaluación. Hay tres técnicas básicas para evaluar este tipo de sistemas:

  • Evaluación basada en tarea (extrínseca): el texto generado es entregado a una persona que evalúa cuánto le ayuda para llevar a cabo una tarea (o, en caso contrario, llevar a cabo el objetivo de comunicación). Por ejemplo, un sistema que genera resúmenes de datos médicos puede ser evaluado entregando estos resúmenes a doctores y estos valoran si estos resúmenes les ayudan a tomar mejores decisiones [8].
  • Calificaciones humanas: el texto generado es entregado a una persona y se le pide que evalúe la calidad y utilidad del texto.
  • Métricas: el texto generado es comparado con un texto generado por personas a partir de los mismos datos de entradas, usando un métrica automática como BLEU.

El objetivo final es cómo de útiles resultan estos sistemas para ayudar a la gente, que se asemeja a la primera de las técnicas anteriores. No obstante, este tipo de evaluaciones son caras y consumen mucho tiempo, por lo que puede ser difícil e ineficiente llevarlas a cabo (especialmente si estas requieren sujetos especalizados o expertos, como los doctores). Por lo tanto, las evaluaciones basadas en tareas son la excepción, no la norma.

Recientemente, se han publicado investigaciones acerca de la correlación existente entre las calificaciones humanas y las métricas con la predicción de las evaluaciones basadas en tareas. Este trabajo está siendo conducido al contexto de eventos de tareas compartidas Generation Challenges. Los resultados iniciales sugieren que las calificaciones humanas son mucho mejores que las métricas, en este aspecto. En otras palabras, las calificaciones humanas usualmente sí que predicen de manera efectiva a las evaluaciones basadas en tareas, al menos en algún grado (aunque haya excepciones [12]), mientras que las métricas no producen de manera precisa. No obstante, estos resultados son preliminares. En cualquier caso, las calificaciones humanas son la técnica más popular en Generación de Lenguaje Natural; en contraste con la evaluación de traducción máquina, donde el uso de métricas está ampliamente generalizado.

Ver También

editar

Referencias

editar
  1. R Turner, S Sripada, E Reiter, I Davy (2006). Generating Spatio-Temporal Descriptions in Pollen Forecasts. Proceedings of EACL06
  2. Dale, Robert; Reiter, Ehud (2000). Building natural language generation systems. Cambridge, U.K.: Cambridge University Press. ISBN 0-521-02451-X. 
  3. Goldberg E, Driedger N, Kittredge R (1994). «Using Natural-Language Processing to Produce Weather Forecasts». IEEE Expert. 2 9: 45–53. doi:10.1109/64.294135. 
  4. Reiter E, Sripada S, Hunter J, Yu J, Davy I (2005). «Choosing Words in Computer-Generated Weather Forecasts». Artificial Intelligence 167: 137–69. doi:10.1016/j.artint.2005.06.006. 
  5. Belz A (2008). «Automatic Generation of Weather Forecast Texts Using Comprehensive Probabilistic Generation-Space Models». Natural Language Engineering 14: 431–55. doi:10.1017/s1351324907004664. 
  6. Anand, Tej; Kahn, Gary (1992). «Making Sense of Gigabytes: A System for Knowledge-Based Market Analysis». Innovative applications of artificial intelligence 4: proceedings of the IAAI-92 Conference. Menlo Park, Calif: AAAI Press. p. 57–70. ISBN 0-262-69155-8. 
  7. 8,0 8,1 Portet F, Reiter E, Gatt A, Hunter J, Sripada S, Freer Y, Sykes C (2009). «Automatic Generation of Textual Summaries from Neonatal Intensive Care Data». Artificial Intelligence. 7–8 173: 789–816. doi:10.1016/j.artint.2008.12.002. 
  8. Galitsky, Boris (2013). «A Web Mining Tool for Assistance with Creative Writing». Advances in Information Retrieval. Lecture Notes in Computer Science 7814: 828–831. doi:10.1007/978-3-642-36973-5_95. 
  9. Galitsky B, de la Rosa JL, Dobrocsi G. (2012). «Inferring the semantic properties of sentences by mining syntactic parse trees». Data & Knowledge Engineering. 81-82: 21–45. doi:10.1016/j.datak.2012.07.003. 
  10. Sauper, Christina and Barzilay, Regina (2009). «Automatically Generating Wikipedia Articles: A Structure-Aware Approach». Proceedings of ACL. 
  11. Law A, Freer Y, Hunter J, Logie R, McIntosh N, Quinn J (2005). «A Comparison of Graphical and Textual Presentations of Time Series Data to Support Medical Decision Making in the Neonatal Intensive Care Unit». Journal of Clinical Monitoring and Computing. 3 19: 94-183. doi:10.1007/s10877-005-0879-3. 

Lecturas Recomendadas

editar
  • Dale, Robert; Reiter, Ehud (2000). Building natural language generation systems. Cambridge, UK: Cambridge University Press. ISBN 0-521-02451-X. 

Enlaces Externos

editar
  • Cadenas de Markov (español)
  • ACL Special Interest Group on Generation (SIGGEN)
  • SIGGEN part of ACL Anthology (contains NLG research papers)
  • ACL NLG Portal (contains list of NLG resources)
  • Bateman and Zock's 'almost complete' list of NLG systems now maintained as a Wiki with a variety of visualisations and overview tables available on demand
  • Introduction An open-ended review of the state of the art including many references (Last update: September 2002)
  • KPML — general-purpose natural language generation system with graphical user interface for development and grammars of varying sizes for Chinese, Czech, Dutch, English, French, German, Greek, Japanese, Portuguese, Russian and Spanish
  • SimpleNLG — Open source Java library to assist in NLG (English only)
  • SimpleNLG-EnFr — Open source Java library adaption of SimpleNLG which adds French support.
  • Cerebellum — Character-based Language Model generator for English, Georgian, Hungarian, Japanese, Russian, Turkish, Slovak, Czech and Latin

Participantes Activos

editar

Curso 2015-2016