16/7/10

Lingüística computacional (XIII y último)





El capítulo anterior de esta serie puede verse
aquí.We’ve all heard that a million monkeys banging on a million typewriters will eventually reproduce the entire works of Shakespeare. Now, thanks to the Internet, we know this is not true.Todo hemos oído que un millón de monos tecleando en un millón de máquinas de escribir pueden llegar eventualmente a reproducir la obra completa de Shakespeare. Ahora, gracias a Internet, sabemos que esto no es cierto.

Esta célebre frase de Robert Wilensky pronunciada en 1996 tiene una primera lectura referente a la crítica que debe hacerse a la mala literatura que se hace/hacemos en Internet.

Pero nos permite también reflexionar sobre si es posible una literatura digital.

En los capítulos anteriores hemos analizado cómo el lenguaje puede modelizarse mediante gramáticas formales; cómo pueden establecerse corpa que pueden luego examinarse mediante la fuerza bruta y la velocidad de los procesadores electrónicos; cómo pueden generarse frases correctamente construidas; traducir de un idioma a otro; emitir sonidos inteligibles; reconocer la voz; etc. Pero todo esto no nos permite crear literatura. La literatura es mucho más. Es una sucesión de texto con un sentido, con una idea, con un estilo, con un camino determinado por alguien para que ese camino- y no otro- nos emocione (ver comentarios
aquí y aquí ).

¿Puede hacer esto un ordenador? ¿Puede crearse un algoritmo que sea capaz de inventar una historia o un poema que puedan competir con un ser humano? En 1726, Swift en Los viajes de Gulliver ya imaginaba una máquina capaz de crear literatura.

Aunque han aparecido intentonas en el mercado en este sentido (
aquí por ejemplo ) la realidad es que, hoy por hoy, no existe ninguna aplicación informática que se acerque a la creatividad e inventiva humana para generar historias y textos de calidad. Existen algunos programas que son capaces de efectuar tareas muy particulares (como por ejemplo, hacer resúmenes de textos o generar partes meterológicos razonables) pero cuando nos adentramos en el campo de la literatura no encontramos soluciones a pesar de tratarse de un campo de notable estudio y experimentación.

¿Qué ocurre entonces con el axioma del encabezado? Por simple estadística, si dejamos a los monos (aunque hagan falta muchos millones) tecleando los años suficientes (y una buena dosis de plátanos para incitarles a hacerlo), alguno de ellos debería producir, si no las obras completas de William, al menos algún par de páginas de indiscutible calidad. Esta asunción es conocida como el teorema de los infinitos monos. Al fin y al cabo, es como funciona la evolución. Se dejan una serie de moléculas químicas inertes que se combinan al azar y, al cabo de unos pocos miles de millones de años, ese azar ha creado los peces, las azáleas, los dinosaurios, la resistencia de Zátopek y la impresionante belleza de Rita Hayworth. Más fácil parece escribir un par de buenas páginas. ¿Puede un ordenador crear literatura?




La fuerza bruta

Los monos son lentos (y las bananas escasas) pero un ordenador es extremadamente rápido y no come más que electricidad. Podemos pensar que usando una gramática formal nos lanzamos a crear frases gramaticalmente correctas con un algoritmo matemático. Digamos un par de millones de sentencias por segundo. En un año ese ordenador habría generado casi setenta billones de frases correctas. Pongamos que otro ordenador se dedica a combinarlas al ritmo de cien mil combinaciones por segundo. En un año podría haber generado más de 3 billones de combinaciones. ¿Y ninguna de estas sería buena? ¿Y si en vez de tener un ordenador, hacemos funcionar una red de un millón de ellos, muchísimos menos de los que existen en el mundo? ¿Nos sorprenderíamos viendo en pantalla El Rey Lear?

La realidad es que esto no ocurre. La realidad es que estos algoritmos que recurren a la fuerza bruta consiguen por lo general mala prosa o mala poesía. Mala y breve. Hay muchos intentos de crear literatura por la fuerza bruta (por ejemplo, los Oulipoemas aquí aunque en este caos los versos han sido escritos por humanos. El ordenador sólo los combina).

¿Qué ocurre entonces? ¿Acaso el cerebro humano dispone de un mecanismo literario que no puede ser recreado por un ordenador? ¿Hay un alma intangible creadora?¿La musa existe?

Se trata de un problema estadístico. Por fuerza bruta nunca conseguiremos recrear las obras de Shakespeare ni las de Moliere ni las de Espronceda. Hagamos uso de un poco de matemáticas.

Imaginemos una novela de cualquier escritor actual de 500.000 caracteres, algo bastante habitual. Estos caracteres incluyen las letras, los números, los espacios y todos lo signos de puntuación. De acuerdo a las codificaciones ASCII podemos decir que hay 45 caracteres diferentes a combinar (olvidémonos de las mayúsculas ahora para simplificar). Vamos a poner a nuestros monos a trabajar para ver si son capaces de reproducir –simplemente por azar- esta novela creada por un humano.

La probabilidad de que el mono teclee un carácter al azar es 1 entre 45, o sea 0,0222. Y que después teclee otro carácter es la misma, también 0,0222. El que teclee los dos caracteres correctos uno tras otro es de 0,022 elevado al cuadrado, o sea 0,0004928.

Pero tenemos que teclear 500.000 carecteres en un orden correcto. Entonces, la probabilidad de que esto ocurra es:


O sea, aproximadamente un uno dividido entre ochocientos mil ceros. Ninguna calculadora del mundo nos mostraría esa cifra tan pequeña ni siquiera en notación exponencial. Es decir, necesitamos teclar un uno seguido de 800.000 ceros de veces para reproducir por azar la novela

Supongamos que nuestro mono presiona una tecla por segundo. El universo, desde el big bang, lleva existiendo 15.000.000.000 de años, o sea, 4.7 seguido de “sólo” 17 ceros. ¡Pero necesitamos ochocientos mil ceros!!, es decir, nuestro mono precisaría el tiempo de cicuenta mil universos seguidos .

De acuerdo, de acuerdo. El ordenador es mucho más rápido que Cheetah. Digamos que es capaz de generar diez millones de letras por segundo. ¡Ah, esto es otra cosa!. Pero, desilusión, en todo el tiempo que lleva nuestro universo un ordenador habría generado un uno seguido de 24 ceros. Aún, necesitaríamos un universo treinta y cuatro mil veces más largo que el actual.

Imposible usar la fuerza bruta para crear literatura al azar.


Creación de textos por modelos


Se trata de una técnica usada para generar peomas sobre todo. Un algoritmo que permite una variedad de oraciones ya que, en vez de combinar frases preprogamadas para formar oraciones largas, se usan palabras que encajan en modelos de versos predeterminados.

Estos modelos (que en terminología inglesa suelen recibir el nombre de pattern o de template) son moldes en los que existen huecos que deben llenarse con ciertas palabras, elegidas de entre las de una lista. Algo así como si se tratara de encajar piezas de un puzzle al que se le han quitado algunas, quedando libres huecos en los que sólo caben ciertas fichas.

Así, por ejemplo, a partir de la frase:

Una oropéndola, eso eres. Como el manantial ansioso de la silenciosa poesía

Podríamos crear el siguiente molde:

PALABRA 1 , eso eres. Como el PALABRA 2 PALABRA 3 de la PALABRA 4 PALABRA 5

PALABRA 1 podría ser elegida de una lista, tan larga y variada como queramos, de sustantivos (una oropéndola, en el ejemplo). PALABRA 2 de una lista de sustantivos masculinos en singular (manantial, en el ejemplo). PALABRA 3 de una lista de adjetivos en masculino. PALABRA 4 de una lista de adjetivos femeninos y PALABRA5 de una lista de sustantivos femeninos.

Igualmente sería posible definir moldes que contuvieran verbos:

Una caricia muere calmadamente entre marinos que cantan

Se convertiría en:

Una- SUSTANTIVO FEMENINO-VERBO EN TERCERA PERSONA SINGULAR DEL PRESENTE DE INDICATIVO-ADVERBIO- entre- SUSTANTIVO MASCULINO PLURAL- que- VERBO EN TERCER APEROSNA DEL PLURAL DEL PRESENTE DE INDICATIVO.

Podríamos definir miles de moldes, de templates y listas de miles de palabras. Incluso, estos moldes se pueden copiar de autores humanos célebres para que su estructura sea aún mejor. Y el Corpus de palabras (los Corpa, para ser exactos, puesto que cada lista sería un mundo independiente) podría ser tan extenso como se deseara. Con esos mimbres, basta un código sencillo que vaya rellenando los moldes de manera aleatoria. Los versos unitarios creados serán más o menos buenos en función de la fortuna del azar. Cuanto más extensas sean las listas y más moldes haya, más variados y creativos serán los ripios.


Más información 
aquí


Concatenación de frases


En el habla común podemos generar oraciones relativamente complejas concatenando frases sencillas. En aras a la sencillez este algoritmo construirá siempre oraciones compuestas por cuatro unidades básicas. Ello producirá una rutina que hará que el texto resulte aburrido pero que, a efectos de lo que se pretende mostrar, es más que suficiente. Un programa más complejo debería combinar diversos modelos de oraciones y alternarlas de acuerdo a un patrón no reconocible (por ejemplo, utilizando una variable aleatoria) con lo que se rompería la monotonía.

En nuestro sencillo caso, las oraciones podrían por ejemplo construirse siguiendo un esquema A-B-C-D donde A sería un sintagma preposicional, B contendría el sintagma nominal, C el sintagma verbal y D un sintagma adverbial o adjetival. No es nada novedoso. Este tipo de formas de crear oraciones ha existido desde hace mucho en papel. Hay un libro de Didier Noyé titulado ”
Réunionite : guide de survie en el que usa esta técnica para crear discursos insignificantes pero aparentemente contundentes en el área de gestión de empresas. Cortazar y Mozart ya usaron el sistema tanto en literatura como en música. No siendo nada nuevo, el método nos servirá para mostrar la técnica.

Veámoslo con un ejemplo:

“En cualquier caso, la utilidad de la literatura digital podrá ser analizada con detalle en un futuro cercano”

La descomposición de unidades sería:

A= En cualquier caso,
B= la utilidad de la literatura digital
C= podrá ser analizada con detalle
D= en un futuro cercano.

La particularidad de este tipo de subcadenas unidas es que pueden variarse casi a voluntad y siempre encajarán razonablemente en la oración. Así, supongamos que tenemos otro subconjunto “B” que dijera “la calidad de tal poesía”. Podríamos sustituir la “B” anterior por la nueva “B” y nos quedaría la oración:

“En cualquier caso, la calidad de tal poesía podrá ser analizada con detalle en un futuro cercano”

Que es también una oración inteligible y bien construida aunque carezca de contenido y significado real. Imaginemos, ahora, que tenemos sólo diez cadenas de cada uno de los cuatro tipos. Las combinaciones posibles serían diez mil sentencias distintas. Si tuviésemos cien de cada tipo, las combinaciones ascenderían a cien millones, más que suficiente para crear largos y soporíferos discursos o tediosas descripciones.

Más información
aquí



Informes científicos falsos


En el MIT se desarrolló un célebre programa (
http://pdos.csail.mit.edu/scigen/#examples ) con el que unos estudiante lograron que revistas de prestigio les publicaran ponencias generadas por ordenador auténticamente inconsistentes (bogus text). Y, asimismo, existe investigación sobre software que detecte los escritos generados automáticamente aparentemente correctos, pero carentes de sentido para desenmascararlos (http://www.physorg.com/news65101797.html ).

En estos casos se usan combinaciones de modelos y concatenación de frases predeterminadas que se formatean con dibujos y gráficos para aprentar ser un escrito científico auténtico.


Eliza


Eliza, de Joseph Weizenbaum fue programado en 1966 y supuso una revolución el la generación de diálogos. Tuvo multitud de copias pero pronto se vieron sus limitaciones y no pasó de ser un divertimento.

Eliza simulaba ser un psiquiatra que contestaba a las frases que el usuario realizaba. Por ejemplo, este es un diálogo típico:

> Hello, I am Eliza.
* Life is hard
> Don't you ever say Hello?
* well, I am worried
> How long have you been worried?
* for years
> OK... "well, you are worried". Tell me more.
* I need sucess and money
> What does that suggest to you?
* that I am a looser
> Did you come to me because you are a looser?
* yes
> I see.


Puede verse que se trata de una conversación aparentemente racional. Es un espejismo. En cuanto se escribe algo un poco raro, el programa entra en un bucle de frases comodín y repetitivas.

Puede probarse una de las múltiples versiones de Eliza en la red,
aquí.

Eliza (que es más fácil de programar en inglés que en castellano debido a que no hay género en la mayoría de las palabras y que la declinación verbal es muy sencilla) se basa en una base de datos de palabras y expresiones típicas. Cuando un usuario escribe una pregunta o un comentario, el algoritmo busca en esa base de datos si existe totalmente o parte. Si no encuentra nada, devuelve una frase que incite a seguir (por ejemplo, Come on o I see o that’s interesting). Si encuentra algo que sí está en la base de datos, construye una frase que usa una parte predeterminada por un modelo y le añade alguna de las palabras de lo introducido por el usuario, de modo que la frase final parece relacionada con la entrada.

Imaginemos, por ejemplo, que tenemos esta base de datos:


- Tristeza, triste -> ¿Por qué está usted triste?

- Alegría, alegre -> ¿Qué le hace sentirse alegre?

- Me siento * -> ¿Es importante para usted sentirse *?


Ahora, si el usuario introduce el texto:


Me siento triste

El algoritmo detectaría que triste está en la base de datos y contestaría con ¿Por qué está usted triste?

Si el usuario introduce :

Me siento fatal


El algoritmo detectaría que esta frase es del tipo “me siento”+”algo” . Tomaría ese “algo” (en este caso “fatal”) y lo añadiría a su frase hecha del modo:


¿Es imporante para usted sentirse fatal?


Dando la impresión de que el ordenador ha entendido y contesta.




Generador de novelas de Brown

Crea tu propia novela de Dan Brown (
http://probar.blogspot.com/ ) es un inteligente y divertidísimo programa que genera reseñas de ficticias novelas al estilo de Dan Brown, añadiendo incluso la portada del supuesto libro y una pequeña crónica de un destacado diario. Técnicamente se base en introducir palabras, elegidas aleatoriamente, en frases predefinidas. Un método sencillo que sin embargo da magníficos resultados.

Otros ejemplos
Pueden citarse Los destellos aristocráticos y las alas soberanas profanan la justicia de Baudot, un trabajo de poesía electrónica de los años sesenta; Mell de Firner; Erato de Milic; Passage de Bootz; La pyramide truquée de Debyser; Poetry Generator de West; Tale Spin de Meehan;Hamilton Diamond de Johnson; By love insured de Chait; Stochastische Texte de Lutz y Bense (que generaba poesía a partir de la gramática de Chomsky); Silence on brúle de Denjean; Jus d'orange de Debyser;Shanghai Paris de Baboulin; el programa RENGA del Centro Pompidou que generaba un texto nuevo cada minuto;los trabajos del grupo ALAMO (Atelier de Littérature Assistée para la Mathématique et les Ordinateurs); Poemas V2 de Carmona; el robot PaCo de Corpa y Serrano, una máquina humanoide que imprimía poemas; WasP un generador de poesía en estilo del siglo de oro programado por Gervás; etc.

¿Puede un ordenador entender la narrativa?

Hasta ahora hemos hablado de que un ordenador pueda escribir una novela pero cabe preguntarse si, en el sentido inverso, podría entenderla.

Los sistemas cognitivos caen dentro de la esfera de la inteligencia artificial y exceden lo que aquí puede explicarse pero recomiendo leer
este artículo .


Internet colaborativo


¿Y si sustituimos los monos por personas que escriben colaborativamente, al modo de un cadáver exquisito? La Red permitiría que millones de personas (que además no teclean al azar sino que aportan su creatividad humana) pudieran colaborar en crear una novela literaria de alat calidad. Se han hecho intentos más o menos extensos (hay algunos ejemplos en
Biblumliteraria ) pero ninguno hasta la fecha ha conducido a una obra que pueda siquiera aproximarse a los grandes trabajos humanos. De modo que la aseveración de Robert Wilensky con que abríamos este post parece confirmarse.


Computación de la narrativa

Supuesto que disponemos de un método para generar texto de calidad es necesario, asimismo, estudiar qué reglas y qué factores afectan a la consecución de una buena historia. ¿Cómo deben ser los personajes? ¿Qué subtramas deben derivarse de la historia principal? ¿cómo se interconectan entre sí y en qué momentos de la narración? ¿qué conceptos de sentido común deben tenerse en cuenta - y memorizarse en la base de datos del ordenador- para que el contexto sea correcto? ¿cuál es la jerarquía de eventos? ¿Cuál es el propósito de la trama? ¿Qué debe ocultarse para que haya intriga? En definitiva, aquellos aspectos que afectan a la literatura convencional que se tornan más complicados aún a la hora de programarlos. Es un campo en que no se ha avanzado mucho.
Un texto interesante al respecto puede leerse aquí.

Hoy en día parece que resultará extremadamente complicado simular la capacidad de inventar cuentos e historias del cerebro o quizá sea cuestión de tiempo y de que alguien, algún día, dé con un algoritmo y un método que puedan simular la capacidad literaria humana con éxito. Sin duda, será la lingüística computacional la disciplina que será decisiva para conseguirlo.




FIN DE LA SERIE







0 comentarios :