martes, 29 de junio de 2010

Net Art e hipertrofia de los enlaces



      Own, Be Owned or Remain Invisible es uno de los clásicos del net art, pero aquí se acerca a la literatura electrónica si consideramos a esta obra como perteneciente al género satírico, como una provocadora reducción al absurdo de la hipertrofia de los links.
     El autor es Heath Bunting y la obra pertenece a su periodo blanco sobre blanco de mitad de los 90. En ella critica el espacio social de internet, lugar donde acontece una compleja intersección de expresiones narcisistas y exhibición pública, que es campo de batalla entre las instituciones y el individuo, así como escenario de una inevitable comercialización.
     Creada en 1998 refleja el estado de la red en ese periodo, aunque todavía permanece vigente en el momento actual. Se presenta como una simple página web con un fondo blanco. El texto, en gris claro, está tomado de un artículo sobre el propio Heath Bunting escrito por James Flint en el periódico The Telegraph. En lugar de presentar el artículo en su forma tradicional, Bunting enlaza casi todas las palabras al dominio.com correspondiente, que puede o no estar registrado. En 1998 muchos de esos sitios no estaban registrados, pero sí lo están hoy. En contraste, algunos dominios estaban registrados en los pasados 12 años y ahora no pertenecen a nadie, lo que refleja el carácter efímero de la propiedad en internet. La obra de Bunting muestra también la cantidad de dominios absurdos o banales que las compañías compran.
   No todas las palabras están enlazadas; por ejemplo, Heath Bunting, flyposter, graffiti, artist, art, radio, pirate,bulletin, board, Heath, Kings Cross, phone-in, mother, bogus, Glaxo. Las deja sin link con la intención de apropiárselas registrándolas a su nombre y garantizar así su identidad en internet.
    En el otro extremo del uso de los links están los experimentos sobre "desenlazamiento" (de-linkfication) propuestos por Nicholas Carr quien sostiene que para una mejor comprensión y asimilación de los textos en internet los enlaces no deben ir incrustados en las palabras sino colocados en una lista al final como notas a pie de página. Como siempre, debemos buscar un camino intermedio entre la hipertrofia y la atrofia.

Entrada publicada por Juan José Díez

Share/Save/Bookmark

viernes, 25 de junio de 2010

Lingüistica computacional (X)




El capítulo anterior de esta serie puede verse
aquí.


El ordenador hablante


Uno de los campos de importancia en la aplicación de los ordenadores al tratamiento de las lenguas, es la conversión de texto a voz y viceversa.

El que un ordenador sea capaz de hablar y mantener una conversación como una persona es una tarea harto compleja y, hoy por hoy, estamos muy lejos de conseguirlo. Esta complejidad viene derivada, especialmente, del acto de comprender y generar mensajes. En todo acto comunicacional existen seis pasos fundamentales tal como se en la figura:





Los pasos extremos: imaginar una idea coherente y comprenderla están hoy por hoy lejos de la capacidad de una computadora. La inteligencia artificial podrá algún día llegar a imaginar algoritmos que realicen estas tareas en igualdad de condiciones con un humano pero no a fecha de hoy.

Respecto a los pasos intermedios, podríamos, en base al desarrollo computacional de las gramáticas formales, llegar a crear frases correctas y determinar si las oraciones recibidas son correctas. Pero de ahí a entender el significado va un largo camino.

Sin embargo, en donde sí se ha avanzado considerablemente es en los pasos centrales. Es decir, emitir electrónicamente los sonidos que conformen una frase de manera correcta y, asimismo, tener la capacidad de reconocer un mensaje vocal y traducirlo a una frase escrita, susceptible de ser analizada con un parser.

Los sistemas de tratamiento de voz tienen un amplio campo de aplicaciones, algunas de las cuales son ya casi de uso rutinario. Así, los mensajes emitidos en los aeropuertos, los mensajes automáticos que nos llegan por teléfono, algunos electrodomésticos que emiten mensajes de alerta, GPSs, los sistemas de ayuda a invidentes, etc. También en el ámbito del reconocimiento de voz, existen ya aplicaciones diarias como los que utilizan las compañías telefónicas para escuchar un mensaje de voz y convertirlo en mensaje de texto SMS con una calidad más que apreciable o los teléfonos y GPS que entiendes, al menos, una serie de mensajes limitados.

Sin duda, como decíamos en el
capítulo 1 de esta serie, el futuro pasa porque la interacción con los ordenadores sea verbal, sin teclados ni ratones. Además de ser la forma comunicativa natural, el uso de la voz permite además la realización de otros trabajos de forma simultánea a dicha comunicación y permiten acceder a una gran cantidad de información en poco tiempo.

En el campo de la literatura, existe una potencial aplicación muy interesante que, hasta donde yo sé, no ha sido aún desarrollada más allá de experiencias de laboratorio: el teatro. Podemos imaginar que un autor de una obra de teatro podría probar cómo se escuchan sus textos antes de publicarlos. Un ordenador capaz no sólo de crear voces sino de matizarlas con expresión, con intención, con sentimiento, le permitiría al autor elegir la mejor forma de expresión, “oír” los diálogos antes de los ensayos con actores reales; saber cómo se escucharía su trabajo; determinar notas al margen para declamar de cierta manera que el autor “ya ha oído” antes en modo virtual; incluso proponer para el casting un tipo de voz determinado que el autor ya sabe que se adapta mejor al discurso porque ya lo ha oído virtualmente.


La conversión texto-voz


La conversión de un texto en voz se basa en sintetizar mediante la adecuada combinación de ondas, la voz humana. Para lograrlo existen tres técnicas principales:

· Codificación de onda sonora por concatenación

· Síntesis de difonos

· Síntesis paramétrica

· Síntesis por reglas


La idea de conseguir que una máquina simulara la voz es antigua. Existen relatos de personajes que lo intentaron a principios de milenio como Aurillac (1003) o Tocino de Roger (1250). En el siglo XVIII, Kratzenstein logró en Dinamarca reproducir vocales usando tubos de órgano especiales. Kampelen, por aquel entonces, logró crear una máquina que lograba reproducir palabras completas. En su libro Mechanismus der menschlichen Sprache nebst Beschreibung einer sprechenden Maschine (1791) incluyó varios dibujos para construirla. Un modelo se conserva hoy en día en un museo de Viena.




En 1837, Wheatsone produjo un modelo perfeccionado del de Kampelen y en 1857, Faber ideó la máquina Euphonia que simulaba aceptablemente algunas palabras.

En 1939 se presentó, disponiendo ya de electricidad, el sistema VODER que fue presentado en varias Ferias internacionales.




que mediante sistemas electromécanicos y manejado por operadores expertos que manejaban teclados similares a los de un piano para ir modificando las frecuencias y las entonaciones, conseguían un resultado pobre pero que, para la época, resultaba extraordinario. Puede oírse el resultado de un Voder
aquí yaquí.

En 1961, Kelly de Juan y Kertsman utilizaron por primera vez un ordenador para sintetizar sonidos, lo que abrió las puertas a sistemas eficientes y realmente realistas para simular la voz humana

Al principio, se pensó que la conversión de un texto en voz sería tan sencillo como pre-grabar todas aquellas palabras que se desease emitir y luego, simplemente, concatenarlas en el orden adecuado.






Pronto surgió un primer problema. ¿Cuál era la unidad a considerar? ¿Deberíamos grabar palabras? ¿O sílabas? ¿frases completas? Si la unidad era grande (por ejemplo, una frase) la calidad del mensaje era muy buena con la entonación precisa y la unión entre palabras sonando de manera totalmente natural. Pero entonces era casi imposible tener un programa general porque es imposible pre-grabar los millones y millones de oraciones distintas que cualquier hablante puede generar, añadiendo además las diversas entonaciones posibles. Sería una labor titánica en el tiempo y casi imposible de manejar por la necesidad de memoria y potencia de cálculo requerida.

Si se elegía como unidad la palabra, entonces la flexibilidad aumentaba mucho porque cualquier frase podía emitirse concatenando las palabras adecuadas. Y la capacidad de memoria no era tan elevada porque, en la práctica, con veinte o treinta mil palabras (considerando flexiones verbales y de entonación) es posible mantener una amplia variedad de conversaciones. Pero los especialistas que trabajaban en este campo se dieron cuenta de que este aproximación al problema implicaba el no conseguir un habla natural porque la concatenación de las palabras sonaba artificial ya que era complicado simular las relaciones entre segmentos adyacentes que se producen en la realidad. En la vida real, las fronteras entre las palabras no son claras y existen solapamientos, alofonías, diafonías, semisílabas, modificación del sonido en función de las palabras adyacentes, etc.

Por último, si se elegía como unidad de trabajo la sílaba u otros sonidos básicos (semisílaba, difonema) se llegaba a disponer de total flexibilidad (cualquier palabra o frase, incluso las nuevas o los extranjerismos) puede ser formada mezclando las unidades y era muy fácil generar la base de datos porque con unos pocos miles de semifonemas podía caracterizarse cualquier lengua natural. Pero los problemas de concatenación se hacían aún más importantes para que sonara un discurso natural. Además, los alófonos son elementos abstractos que no existen en la lengua real y por tanto más complicados de tratar por algoritmos.

Puede decirse que todas estas posibilidades están abiertas. Así, en algunos electrodomésticos o algunos vehículos, la unidad es la frase porque el sistema sólo debe expresar unas pocas ideas previamente establecidas:


- Puerta derecha sin cerrar
- Programa de cocción finalizado
- Recoja su ticket


En otras aplicaciones, como por ejemplo, los mensajes flexibles en algunos aeropuertos, se usa como unidad una mezcla de frases (o conjunto de palabras) sueltas:

- El vuelo con destino a + Mallorca + está listo para embarcarse por la puerta número + dos
- Salida del vuelo + A+T+6+7+0+con destino a + Londres+ está listo para embarcar. Por favor diríjanse a la puerta número + seis.


En ocasiones a este sistema se le denomina síntesis específica para un dominio

Y en otras ocasiones se recurre a utilizar sólo fonemas que permiten la generación de cualquier frase de manera totalmente flexible.



Codificación de la onda sonora por concatenación

Como se trata de una técnica que casi siempre es necesaria, explicaremos primeramente la técnica del muestreo o sampling que permite convertir una onda continua (analógica) en un grupo discreto de valores que pueden tratarse digitalmente.

La voz, como cualquier sonido, es una onda continua generalmente compleja:



Podemos leer el valor de la amplitud de esta onda cada cierto tiempo (por ejemplo, cada milisegundo) de manera que tendremos una sucesión de valores discretos (digitales) que puestos unos tras otro simularán con bastante precisión la onda continua original:









En el ejemplo de la gráfica anterior, la onda continua analógica quedaría caracterizada por la serie de valores digital correspondiente a la amplitud en los momentos del muestreo. Y esta serie de números es ya perfectamente computerizable, modificable y calculable.

Es evidente que si el sampleado se hace cada mucho tiempo, la aproximación lograda será mala (pero requerirá circuitos electrónicos sencillos, lentos y baratos), mientras que si se hace a intervalos muy pequeños, la aproximación será excelente (pero la circuitería será rápida, compleja y costosa). El teorema de muestreo o Teorema de Nyquist establece que es posible capturar toda la información de la forma de onda si se utiliza una frecuencia de muestreo del doble de la frecuencia más elevada contenida en la forma de onda. En los sistemas telefónicos la velocidad de muestreo ha sido establecida a 8000 muestras por segundo pero en el muestreo de música es habitual llegar a frecuencia de 44000 por segundo.




Los conversores análogico-digitales (A/D) convierten la onda de entrada continua en una serie de valores concretos sucesivos. Los conversores digital-analógicos toman una serie sucesiva de valores digitales y reconstruyen la onda continua interpolando entre un valor y otro. Como se ve en la siguiente figura, cuantos más datos digitales existan la interpolación y reconstrucción de la onda será más precisa.



En la codificación de la onda sonora, se parte de conjuntos de valores digitales que describen la onda (bien sean fonemas, palabras o frases completas). Este sistema tiene la gran ventaja de que, si la frecuencia de muestreo es suficiente, se conserva la característica original de la voz del locutor y es un procedimiento barato.

La onda sonora se puede muestrear de varias maneras. Las más sencilla es el muestreo lineal que básicamente es la que hemos visto en las figuras anteriores y en donde la onda queda representada por una sucesión de valores finitos.

La cuantificación PCM (Pulse Code Modulation) muestrea la señal como hemos venido explicando y cuantifica cada muestra con un valor binario (por ejemplo, para 8 bits, entre 0 y 255). Entonces transforma este valor en un tren de pulsos proporcional al valor en base a una codificación binaria.




Una vez puestos todos los pulsos en continuidad, a la salida tendremos, por tanto, una señal de pulsos que será fiel reflejo de la onda analógica de entrada



La técnica DPCM (Differential Pulse Code Modulation) es similar pero tiene en cuenta que, en general, la amplitud de la onda no sufre variaciones abruptas sino que se desarrolla de manera bastante continua. En tal caso, basta codificar y memorizar la diferencia entre un valor y el anterior. Entonces, a partir de un único valor inicial se puede ir formando la curva sumando y restando las pequeñas variaciones sobre el anterior valor. Haciéndolo de esta manera los valores son siempre menores y por tanto requieren menos pulsos para codificarlos, necesitándose menos memoria y obteniendo un procesamiento más rápido.

En todos los casos, lo que finalmente tenemos es un corpus vocal extenso. En ciertos casos se usan los logotomas que son palabras ficticias de 3 sílabas de la que se extrae la central. Se logra, así, memorizar un sonido natural dentro de una palabra, no aislado. Por ejemplo, si grabásemos pa sólo, este sonido quedaría menos natural que si lo extraemos de un logotema ficticio como obpate


Síntesis de difonos

Un difono es el sonido que abarca desde la mitad de la realización de un fonema hasta la mitad de la realización del fonema siguiente. Con ello, se consigue incorporar a la unidad de síntesis la transición de sonido entre fonemas para que la posterior concatenación resulte más natural.

La síntesis por difonos usa una base de datos conteniendo todos los difonos que pueden aparecer en un lenguaje. El número de difonos en español es reducido con solo unos 800 elementos pero en alemán se precisan mínimamente 2500.


Síntesis paramétrica

En vez de memorizar miles de datos tal como se hace en el muestreo lineal, podemos emular la onda de voz mezclando sus formantes más importantes, los parámetros que definen la señal. Esto complica el procesado pero, por el contrario, permite simular con precisión las transiciones e interacciones mutuas entre formantes.

Así como en las técnicas anteriores grababan un valor de la onda sin atender a su procedencia ni a su formación, la síntesis paramétrica intenta recrearla mezclando una serie de parámetros que la recreen lo más aproximadamente posible. Así, la onda se recrea mediante una fuente de ondas básicas (sinusoidales) y unos filtros parametrizables que las van modificando hasta lograr la onda deseada. Se entiende que con un solo filtro podemos crear muchas ondas de salida tan sólo afinando los parámetros que afectan al funcionamiento del filtro.



* Los sintetizadores LPC (Linear Predictive Coding)

Se trata de un procedimiento matemático que permite predecir los valores futuros de un sistema lineal partiendo de los valores anteriores. En estos sistemas se hace pasar la onda original a través de un filtro con unos 15 o 20 pasos de alteración. El cálculo matemático permite conocer cómo se alterará la onda tras pasar por estos pasos, de modo que es posible calcular y predecir la salida en función de los parámetros introducidos a cada paso.

En un sistema de síntesis LPC se memorizan primeramente de las unidades a tratar (fonemas, palabras, etc) mediante el muestreo de los sonidos tomados con un micrófono. Entonces, se calculan – para cada uno de ellos- los valores de los parámetros del filtro que lograría reproducir este sonido. Una vez determinados tales parámetros se guardan. Cuando se requiere producir el sonido, se alteran las ondas puras de un generador al que se le envían los parámetros antes calculados y memorizados. Como resultado, se escucha la palabra deseada. Es evidente que el trabajo de preparación es importante pero, una vez hecho, sólo se requiere memorizar estos parámetros (no millones de sonidos) y la circuitería se reduce porque sólo son necesarios el filtro y el generador de ondas madre.

Existen circuitos integrados, preparados para un cierto idioma y tipo de voz, que incluyen el generador, el filtro y los parámetros almacenados en ROM.

* Los sintetizadores por formantes

Se llaman formantes al grupo de armónicos que caracterizan el sonido. Este sistema de sintetización es similar al anterior pero en vez de usar coeficientes que modifican los filtros se usan formantes. Normalmente, parten de una fuente de ondas madre y de tres filtros en serie o en paralelo que generan armónicos que, al combinarse, dan el sonido deseado.
La síntesis por formantes da muchas veces una voz robótica, como las de las películas de miedo, pero permiten una flexibilidad total.



Síntesis por reglas

En este caso han de determinarse una serie de reglas y pasos que, aplicadas sobre la onda de entrada, acaben por modificarla para ofrecer el sonido final deseado.

Estos pasos son, abreviadamente:

· Normalización que consiste en convertir todo el texto de entrada a palabras. Así, si aparecen números se convertirá su grafía a palabra (Son 3 niños -> Son tres niños), si hay acrónimos se convertirán a letras ( F.B.I. -> Efe be i), etc.
· Localización del acento fonético de cada palabra. Esto no es siempre sencillo para un ordenador. Si existe tilde, es evidente y debe seguirse su posición ( canto vs. cantó) pero en ocasiones no es directo y deben aplicarse las reglas de la gramática habituales de la lengua (cuándo se acentúa una palabra llana, una aguda, etc).
· Localización de los signos de puntuación que permitirán alargar los sonidos ligeramente o hacer pausas para poder simular la prosodia de la frase. O bien para dar el tono interrogativo a una pregunta, por ejemplo.
· Conversión de todas las palabras a fonemas. Se usa una tabla de 42 sonidos básicos que permiten descomponer casi cualquier palabra en cualquier idioma. En español las reglas que relacionan sonidos y letras son sencillas pero en inglés son más complicadas porque una misma letra puede tomar sonidos diferentes (cut vs. run).
· Una vez se tiene la larga secuencia de fonemas se adscriben a cada uno la longitud necesaria y la frecuencia necesaria para la prosodia, un poco más agudo o un poco más grave para obtener mayor naturalidad en el habla. Las reglas que determinan cómo deben ser la duración y frecuencia básica se dedujeron experimentalmente analizando miles de fonemas pronunciados con sentido por locutores. Se redujeron finalmente a una decena de ellas para la duración. Algunas para las vocales y otras para las consonantes. También se logró deducir algoritmos que definían reglas para la frecuencia que define la entonación.
· Aplicación de los parámetros que definen estas reglas a los filtros.




Prosodia



Adicionalmente, pueden existir modulos que filtren la voz generada para otorgarle un flujo musical acorde con el idioma, para que no suene robótico, uniforme, artificial. Esta es una tarea complicada que no está aún lograda en la mayoría de los sistemas.



Reconocimiento de voz

El proceso inverso a la síntesis de voz es el reconocimiento de la misma.

Este proceso se suele hacer en dos pasos.


a) Extracción de fonemas: Los fonemas son las unidades lingüísticas y sonoras más pequeñas en que puede dividirse un conjunto fónico. Por ejemplo, la palabra /casa/ , está formada por una serie de cuatro fonemas /c/+/a/+/s/+/a/. Para extraer los fonemas de la voz de entrada, la señal se analiza espectralmente vía transformadas de Fourier. Mediante un micrófono se graba la señal analógica que será compleja del estilo de la mostrada en la figura:




El análisis por desarrollo de Fourier es una técnica matemática que permite descomponer una onda arbitraria compleja en suma de ondas sencillas (sinusoidales).




Así, en la figura podemos ver que a medida que vamos añadiendo ondas sinusoidales de diferente amplitud y diferente frecuencia, la onda final va cambiando hasta convertirse en cuadrada. Del mismo modo, puede convertirse en cualquier otra onda y el proceso inverso es un cálculo matemático dominado y del que existen eficientes algoritmos



b) Conversión de los fonemas en palabras identificables: este proceso se puede realizar con ayuda de métodos topológicos, probabilísticos y de redes neuronales.

DTW

La técnica DTW ( Dynamic Time Warping) o alineamiento temporal dinámico se basa en comparar la onda grabada con todas las plantillas de referencia memorizadas. Para ello, y aprovechando las pausas o zonas de menor amplitud, se va troceando la señal en unidades individuales que luego se comparan con los patrones.

Es evidente que casi nunca coincidirán los espectros patrones con los espectros grabados por lo que se recurre a calcular la distancia mínima en términos matemáticos para determinar qué patrón es el correcto.

Modelo de Markov

Se basan en el concepto de cadenas de Markov que se puede ver como una máquina de estados finitos en la que el estado siguiente depende únicamente del estado actual, y asociado a cada transición entre estados se produce un vector de parámetros. En reconocimiento de voz, las cadenas de Markov se encargan de ajustar los distintos fonemas captados a fonemas de palabras completas previamente establecidas, adquiridos por entrenamiento.

Redes neuronales

Que utiliza redes de nodos que pueden auto aprender en base a reponderar los pesos de cada nodo en el resultado final.



Algunos programas prácticos

En esta
dirección puede utilizarse un programa en red que pronuncia de manera aceptable un texto que se introduce con el teclado.





Otro programa es SODELS que puede encontrarse
aquí.

En este enlace tenemos Text-to-speech que hace un gran trabajo en inglés, incluido un avatar hablante (ver más adelante):



En este
enlace pueden verse otros programas del mismo tipo.

Incluso el visor PDF de Adobe permite “leer” el texto.

Existen también programas profesionales. Uno, Natural Reader, puede verse
aquí.


Avatares


En ocasiones, el programa que convierte el texto a voz se acompaña de un gráfico que simula a un hablante. Se trata normalmente de una cara que mueve los labios a medida que el sonido se emite. Estos avatares pueden ser más o menos elaborados para simular un diálogo real con un ordenador. Con la potencia de los programas actuales, su calidad y realismo mejoran constantemente. En el ejemplo anterior Text-to-Speech podía verse un pequeño avatar.

Este otro programa dispone de otro avatar:





Voki permite generar avatares:



vía Biblumliteraria

















Share/Save/Bookmark

miércoles, 23 de junio de 2010

Faulkner en hipertexto



    Ya hemos hablado aquí de obras clásicas enriquecidas con versiones hipertextuales (Moby Dick, Finnegas Wake). Por un tuit de José Antonio Vázquez (@joseantvazquez) nos enteramos de la aparición del libro más famoso de William Faulkner  El sonido y la furia en versión online con hipertexto, comentarios críticos y apéndices.
    Esta novela de 1929 narra la decadencia y destrucción final de un viejo linaje sureño desde el punto de vista de los últimos supervivientes degenerados de la familia Compson. De este modo, cada una de las secciones del libro son el testimonio de uno de los Compson. La primera es la relatada por Benjy, un débil mental para quien el mundo se basa más en percepciones que en personas y objetos. La segunda sección es la narrada por Quentin Compson, hermano del anterior, poco antes de suicidarse. La tercera parte está a cargo de Jason, también hermano de los anteriores. La cuarta, según el propio Faulkner, es la única que no es relatada por un miembro del clan Compson, sino por él mismo. Esta última parte, sin embargo, está construida con un punto de vista de tercera persona focalizado en Dilsey, la sirviente negra de la familia Compson y sirve para reordenar y dar sentido a las acciones y pensamientos de los demás personajes. Como vemos, la obra tiene una estructura polifónica en la que los mismos hechos son presentados bajo el punto de vista de distintos narradores.
    Si entramos en la página debemos mirar a la columna lateral donde se encuentra el Índice. En él disponemos de la sección Intertextos, donde se explican las fuentes clásicas a las que recurre Faulkner: la Biblia, Shakespeare, Walter Scott...
     En la sección Críticas se recogen una ingente cantidad de estudios sobre aspectos literarios, simbólicos, lingüísticos, religiosos, etc. (muchos de ellos accesibles en la red). Destaca aquí el ensayo de Jean Paul Sartre "On The Sound and the Fury: Time in the Work of Faulkner," 1955, donde el filósofo considera que la metafísica de Faulkner es la metafísica del tiempo. "El hombre es la suma de sus infortunios... la desdicha del hombre estriba en estar ligado al tiempo (...) El gesto de Quentin de romper su reloj tiene un valor simbólico, le desconecta del tiempo cronológico para sumergirle en el tiempo de Benjy, el idiota, que al no comprender los relojes, sólo vive en la temporalidad."
    Especialmente útil es la sección Visual Displays que reúne una serie de gráficos entre los que destaca el ímprobo esfuerzo de la secuenciación cronológica de las escenas.
    Pocas ediciones electrónicas de novelas existen; las que hay son simplemente copias digitales de textos y no ediciones críticas. Los editores de esta obra han intentado aprovechar las posibilidades de la plataforma hipertextual para crear un edición crítica de valor académico. 
    La estructura narrativa típicamente no lineal y polifónica en la que cada voz cuenta su historia y a la que puede accederse desde cualquiera de los personajes se adapta especialmente bien al hipertexto. Esto nos lleva a pensar que la narrativa electrónica, aunque es inevitable que explore nuevas formas de expresión, no tiene por qué estar monopolizada por la teoría literaria de posmodernos y mutantes. En literatura la verdadera innovación viene del campo del lenguaje, de la fuerza de la prosa, de la construcción de los personajes, de la mirada humana y del estilo del autor y no de elementos formales externos como los que pueda ofrecer la mera textualidad electrónica. 
Entrada publicada por Juan José Díez

Share/Save/Bookmark

lunes, 21 de junio de 2010

Cuando un libro cobra vida II


I Am In the Air Right Now from Greg Lytle on Vimeo.


     El pasado mes de mayo se celebró, en New Jersey, la primera edición de los Moby Awards, organizados por la editorial independiente Melville House Publishing, que tiene la particularidad y el mérito de haber nacido a partir de un blog literario, MobyLives, que todavía mantienen como parte principal de su página corporativa y es una lectura más que recomendable. Los Moby Awards son, de alguna manera, la carta de identidad de una nueva manera de promocionar los libros en redes sociales como YouTube o Vimeo, los booktrailers.

    El premio se entrega en varias categorías. I Am In The Air Right Now (que encabeza este post), fruto de una colaboración entre la poeta Katryn Regina y el animador Greg Lytle, resultó vencedor como mejor booktrailer de bajo presupuesto.

   El impresionante video producido por el New Zealand Book Council para la promoción de Going West, del autor Maurice Gee, que en diciembre del año pasado me sirvió como excusa para una reflexión sobre la lectura y que parece sacado de una película de Tim Burton, fue elegido el mejor entre los de gran presupuesto.

   Aunque no siempre un booktrailer sirve para vender un libro, comparto aquí uno que me hizo ir hasta la librería a comprar el último best-seller de Naomi Klein que, justamente por ser un best-seller, no había entrado en mi lista de deseos: La doctrina del shock. El auge del capitalismo del desastre.


Entrada publicada por Julieta Lionetti en Libros en la nube
Share/Save/Bookmark

domingo, 20 de junio de 2010

Magazine del Domingo (20-06-2010)



*Le Cabinet Royal de Literatura Portuguesa en Rio de Janeiro nos da una hermosa sorpresa: más de 350000 volúmenes antiguos expuestos.

*Una instalación de libros incrustados en cemento realizada por estudiantes de la Academia Húngara de Bellas Artes. Seguro que hay una metáfora, ¿pero merece la pena inutilizar tantos libros para mostrarla?

*El futuro de las búsquedas locales. Las páginas amarillas con realidad aumentada.







Share/Save/Bookmark

jueves, 17 de junio de 2010

Lingüística computacional (IX)


El capítulo anterior de esta serie puede verse
aquí.

    En los capítulos anteriores hemos visto muy sucintamente algunos aspectos teóricos de los formalismos gramaticales. Es ya momento de pasar a la práctica, es decir a estudiar programas concretos que sirven para analizar frases y determinar si están bien escritas o mal escritas, si son o no son válidas gramaticalmente.

    Es evidente que si disponemos de un sistema correcto de análisis sintáctico, el escribir literatura sería bastante sencillo, al menos mala literatura. Bastaría programar un generador de frases aleatorias combinando palabras de un diccionario para, después, pasar estas sentencias por el analizador, filtrando sólo aquellas que estuviesen formadas correctamente. Podría pensarse que este sería un trabajo ingente y con pocas posibilidades de éxito pero si contemplamos que un ordenador rápido puede generar y comprobar un millón de oraciones por segundo es bastante probable que en unas horas de funcionamiento diéramos con un texto breve de calidad aparente.

Parsers

     Un Parser es un programa informático que toma una frase y comprueba que está bien formada de acuerdo a una serie de reglas. Su origen está en los programas de ordenador y en los compiladores/intérpetes. En este ámbito tan restrictivo en el que sólo hay unos pocos cientos de palabras válidas y unas pocas combinaciones estructurales correctas, los parsers determinan si las instrucciones que el programador ha escrito son correctas antes de pasarlas al compilador o el intérprete que las traducirá al lenguaje máquina. Así, en BASIC, por ejemplo tenemos un lexicón formado por menos de cien palabras clave ( REM, GOTO, PRINT, WRITE, OPEN, CLOSE, IF, DO, NEXT,….). Sólo estás pueden usarse. Pero además hay una serie de reglas de buena formación de la instrucción que se da al ordenador. Por ejemplo, podremos escribir:

FOR x=1 to 6

    Pero no podríamos escribir:

FOR x==1 to 6 ni tampoco FOR X=1 tor 6

    Un parser analizaría la primera instrucción y la reconocería como correcta. Al analizar la segunda determinaría que su gramática es incorrecta porque hay dos “=” en vez de uno sólo. Y al estudiar la tercera, determinaría también que es falsa porque la palabra “tor” no está en el lexicón de BASIC.

    Otras acciones que realizan los parsers de un lenguaje de programación es comprobar que los paréntesis están emparejados dos a dos. Por ejemplo, la sentencia :

X= (a*2)+ ((b+2)/3)

    sería correcta, pero la

x=(a*2)+((b+2)/3

    no lo sería.

    Normalmente, estos programas ejecutan la tarea de análisis en tres fases. En la primera (lexical analysis) separan los componentes- las palabras- de la sentencia. Así, en la sentencia aritmética:

X= 5 + ((3/8)^3)

    El parser separaría los componentes reconocibles en el lexicón (que suelen denominarse tokens):

5, +, (,(,3,/,8,),^,3,).

    Si en esta fase aparece algún token que no esté en el lexicón, el programa abortaría el análisis dando un mensaje de error.

    La segunda fase, llamada sintáctica, verifica que la sentencia es válida de acuerdo a las reglas. Aquí, el parser determinaría que lo es ya que los paréntesis están emparejados (dos de apertura, dos de cierre), etc.

    Finalmente, la tercera fase- llamada semántica- es la que ejecuta las acciones necesarias para interpretar la sentencia. En este caso, esta serie de cálculos:

- Resultado=3/8
- Elevar resultado anterior al cubo
- Sumar 5 al resultado anterior
- Visualizar resultado

    Dependiendo de cómo se programe el algoritmo, los parsers pueden funcionar de arriba a abajo (top-down parsing) de abajo a arriba (bottom-up parsing), recursivamente hacia abajo, recursivamente hacia la izquierda, etc.

    En cualquier caso, por complejo que sea un lenguaje de programación, el lexicón y las reglas de su gramática son siempre infinitamente simples en comparación con las de un lenguaje natural. De ahí que, aunque el concepto de parser sea válido, la dificultad de crear una gramática computable en un idioma humano es enorme. Amén de que el lexicón es mucho más extenso, la cantidad de reglas puede ser enorme, precisar recursividad profunda y precisar deshacer ambigüedades y retóricas, una característica muy propia de los lenguajes humanos que no se da en ningún lenguaje de ordenador. Si una sentencia de ordenador debe escribirse como:

IF (X < 2) then a=(3-X) else a=(3+x)


IF (X <2) ELSE (a=3+x) THEN (a=3-x)


y mucho menos:


IF (X <2) entonces a=(3-X) else a=(3+x)

Sin embargo es esta una situación habitual en las lenguas naturales:


El balón de Juan se perdió
Se perdió el balón de Juan
Perdiose el balón de Juan
Se perdió el esférico de Juan
Se perdió la pelota de Juan


     Los parsers que buscan analizar lenguajes naturales parten de alguna de las gramáticas teóricas vistas en capítulos anteriores pero, por lo general, la simplifican para que puedan ser manejables por un algoritmo de manera eficiente. Evidentemente, esta simplificación hace que su rendimiento merme. Es por eso, por ejemplo, que los traductores automáticos logren traducciones que no suelen ser muy buenas. Además, hoy en día, muchos parsers se fundamentan parcialmente en un corpus extensos de texto real que han sido anotados manualmente de manera que, estadísticamente, comparan la frase a analizar con las existentes en la base de datos. Como los computadores son muy rápidos, este cálculo estadístico extenso puede hacerse de manera muy eficiente.

PATR –II

     Uno de los primeros programas- ya anticuado pero que se usa mucho para empezar a trabajar en lingüística computacional- fue PATR-II, un parser de lenguaje natural desarrollado por Stuart M. Shieber. Es un programa que usa una gramática propia libre de contexto con reglas y restricciones.

    Con su interface tipo MS-DOS de líneas de comandos resulta hoy muy anticuado, pero su sencillez permite entenderlo rápidamente y el que pueda descargarse de la red invita a practicar casi inmediatamente. Además, sirve para cualquier idioma ya que es el usuario el que define el léxico y la gramática a tratar.

     PATR-II puede descargarse aquí para aquellos que estén interesados en comenzar a juguetear en este campo.

     PATR-II necesita dos archivos para poder funcionar. Uno, que debe tener extensión “.lex” contiene el léxico. Otro, con extensión “.grm” contiene las reglas de la gramática. Cada usuario puede crear sus lexicones y sus gramáticas propias en función del ámbito que quiera analizar y de la extensión de los textos que quiera estudiar.

     Un ejemplo muy sencillo de parte de un archivo de léxico sería, por ejemplo:

;NOMBRES
\w niño
\c N
\f masc-sing


\w niños
\c N
\f masc-plur
\w niña
\c N
\f fem-sing


\w niñas
\c N
\f fem-plur

\w futbolista
\c N
\f mascfem
< conc num> = sing

\w futbolistas
\c N
\f mascfem
< conc num> = plur

\w la
\c DET
\f < num> = sing
< pers> = 3a
< gen> = fem


\w María
\c N
\f < num> = sing
< sem> = anim
< pers> = 3a
< gen> = fem

\w explica
\c V
\f < num> = sing
< sem> = anim
< pers> = 3a
< tip> = trans

\w explican
\c V
\f < num> = plur
< sem> = anim
< pers> = 3a
< tip> = trans

\w historia
\c N
\f < num> = sing
< sem> = inanim
< pers> = 3a

\w un
\c DET
\f < num> = sing
< pers> = 3a

\w amigo
\c Nla jh
\f < num> = sing
< sem> = anim
< pers> = 3a

\w de
\c PREP

\w infancia
\c N
\f < num> = sing
< sem> = inanim
< pers> = 3a

\w a
\c PREP

\w Ana
\c N
\f < num> = sing
< sem> = anim
< pers> = 3a

\w patatas
\c N
\f < num> = plur
< sem> = inanim
< pers> = 3a
< gen> = fem

\w comen
\c V
\f < num> = plur
< sem> = anim
< pers> = 3a

\w padre
\c N
\m < num> = sing
< sem> = anim
< pers> = 3a

\w habla
\c V
\f < num> = sing
< sem> = anim
< pers> = 3a
< tip> =trans

\w con
\c PREP


     Obsérvese que cada línea empieza con una simbología que indica al ordenador de qué estamos hablando. Así “\w” significa que empieza una palabra (Word). Evidentemente, puede complicarse mucho más añadiendo más características (serían rasgos en el sentido de lo estudiado en capítulos anteriores).

     Por su parte, el fichero de gramática contendría las reglas explicitadas de manera aproximada como vimos en capítulos anteriores. Por ejemplo:

; primero se define la terminología de abreviación de conjuntos de rasgos del léxico mediante la instrucción de PATR “let--- be”.
; y después las reglas.
;ABREVIATURAS
;
; CONDICIONES

Let masc-sing be
< conc num> = sing
< conc gen> = masc

Let masc-plur be
< conc num> = plur
< conc gen> = masc

Let fem-sing be
< conc num> = sing
< conc gen> = fem

Let fem-plur be
< conc num> = plur
< conc gen> = fem

; condiciones de disjunción

Let mascfem be {[conc_gen: fem]
[conc_gen: masc]
}
;
;comienzan las reglas
;
;
RULE O -> SN SV
RULE SN -> {QUAN/DET/QUAN1R} N ADJ
< DET conc> = < N conc>
< QUAN conc> = < N conc>
< QUAN1R conc> = < N conc>
< N conc> = < ADJ conc>

RULE QUAN1R -> QUAN1 DET
< QUAN1 conc> = < DET conc>
< QUAN1R conc> = < QUAN1 conc>

RULE SV-> V SP

O, por ejemplo, otro fichero de gramática podría ser:

Rule S -> NP VP (SubCl)

< NP head agr> = < VP head agr>
< NP head case> = NOM
< S subj> = < NP>
< S pred> = < VP>

Rule NP -> {(Det) (AdjP) N (PrepP)} / PR
< Det head number> = < N head number>
< NP head> = < N head>
< NP head> = < PR head>

Rule Det -> DT / PR
< PR head case> = GEN
< Det head> = < DT head>
< Det head> = < PR head>

Rule VP -> VerbalP (NP / AdjP) (AdvP)
< NP head case> = ACC
< NP head verbal> = -
< VP head> = < VerbalP head>

Rule VerbalP -> V
< V head finite> = +
< VerbalP head> = < V head>

Rule VerbalP -> AuxP V
< V head finite> = -
< VerbalP head> = < AuxP head>

Rule AuxP -> AUX (AuxP_1)
< AuxP head> = < AUX head>

Rule PrepP -> PP NP
< NP head case> = ACC
< PrepP head> = < PP head>

Rule AdjP -> (AV) AJ (AdjP_1)

Rule AdvP -> {AV / PrepP} (AdvP_1)

Rule SubCl -> CJ S

    
Una vez que tenemos ambos ficheros definidos podemos ejecutar PATR que nos muestra una pantalla del tipo (como se ve nada amigable para los estándares de hoy en día)



     Podemos, entonces, introducir unas pocas órdenes. Así, EXIT sirve para finalizar la ejecución; LOAD GRAMMAR cargará en memoria el fichero de gramática que queremos usar; LOAD LEXICON cargará el fichero de léxico que vayamos a usar; PARSE comprobará que una sentencia es correcta o no.

     Podríamos por ejemplo ordenar:

PARSE la niña explica historia

    Y el ordenador respondería con:


o sea, dictamina que es una frase correcta de acuerdo al léxico existente en el fichero lexicón y a las reglas de gramática del fichero de gramática. Si no se cumpliese alguna condición mostraría un mensaje de error.

     En la siguiente figura se ve la salida en pantalla como respuesta a analizar la oración, el niño bueno:


O, para un lexicón y una gramática en inglés, obtendríamos:


     La mejor forma de entender lingüística computacional es practicando, de modo que animo a todos a descargarse PATR-II, crear un fichero de léxico, otro de reglas gramaticales y comenzar a parsear

El algoritmo CYK y su parser

     Otro parser con el que se puede practicar en red es el CYK. En este enlace puede disfrutarse de una gramática reducida para inglés. Si, como yo he hecho, introduzco la frase I saw a cat on the roof (se pueden ver las reglas de la gramática en la ventana superior):


el programa nos devolverá el análisis en modo gráfico:


     El algoritmo CYK (Cocke-Younger-Kasami) determina si una frase es correcta de acuerdo a las reglas de una gramática libre de contexto. Es un algoritmo del tipo bottom-up. La gramática utiliza el formalismo normal de Chomsky que ya vimos en los capítulos teóricos anteriores. El algoritmo considera cada subconjunto posible de combinaciones de las palabras para determinar si cumplen con las reglas. Lo hace por orden de longitud. Primero, frases de una palabra, luego de dos, etc. Si, al final, toda la sentencia cumple con las reglas, es que es válida.


El analizador THERA en español

    En la dirección puede practicarse con un parser en español. Por ejemplo, introduciendo la frase El día es muy soleado el programa nos devuelve:


     Este parser analiza sentencias en español y en catalán.


AMOSINE

     Es una analizador desarrollado por el Grupo de Estructuras de Datos y Lingüística computacional con un interfaz moderno y fácil uso. Puede accederse a su página aquí


Link Grammar Parser

     Puede encontrarse aquí pudiéndose descargar o usar en línea.

     Escrito en lenguaje C The Link Grammar Parser es un parser sintáctico en ingles. Introduciendo una frase, el sistema la analiza sintácticamente .
Así, para la frase The man who went to London is rich el parser nos devuelve:


Otros programas on-line

En esta dirección existe otro parser en inglés. Ante la misma frase The man who went to London is rich devuelve la siguiente pantalla:


aquí se puede encontrar un desambiguador morfosintáctico:


    Aquí puede obtenerse TreeForm Syntax que es un diagramador en árbol de frases.


   PhpSyntaxTree es un programa para diagramar árboles sintácticos que se han escrito en notación lineal. Por ejemplo, la cadena sintáctica

SC [SD Quiénes_i][C' [C animan_j [+Q]][SF [SD t_i'][F'[F t_j' [Phi]][SV [SD t_i][V'[V t_j][SD la vida]]]]]]]

Y el programa nos dibujará el árbol correspondiente:


     Por fin, una herramienta para dibujar árboles sintácticos y X-barras es Linguistic Tree Constructor que no analiza nada pero que permite dibujar a mano y con gran calidad dibujos como los que han ilustrado algunos de estos posts. Puede descargarse aquí.

    Hoy en día pueden encontrarse numerosos recursos de lingüística computacional en red gratuitos y, cómo no, muchos también profesionales. En cualquier caso, nada como practicar. Especialmente con aquellos software que nos obligan a crear el lexicón y las reglas gramaticales lo que no sólo nos ayudará a entender los algoritmos sino que nos permitirá comprender mejor los conceptos teóricos.

Publicado por Félix Remírez, vía Biblumliteraria









Share/Save/Bookmark

Conferencia Hipertexto e Hipermedia 2010


    Ayer terminó la Conferencia Hipertexto e Hipermedia 2010 celebrada en Toronto durante los días 13 a 16 de Junio. En ella se trataron temas fundamentales sobre el origen, la evolución y el futuro del hipertexto así como su papel actual en la literatura, la investigación científica, la web semántica (etiquetas, Imapping...), y las redes sociales. En el blog de la Conferencia podemos encontrar un resumen de las ponencias y discusiones. También disponemos en Twitter del hashtag #ht2010. La edición de 2011 tendrá lugar en Eindhoven (Holanda).
   Aquí una de las ponencias:  Conversational Tagging in Twitter 

Entrada publicada por Juan José Díez

Share/Save/Bookmark

martes, 15 de junio de 2010

Word Toys, de Belén Gache


    Belén Gache es una escritora argentina con una amplia obra publicada en papel. Podemos mencionar las novelas Lunas eléctricas para las noches sin luna (Sudamericana 2004), Divina anarquía, (Sudamericana 1999) y Luna India, (Planeta 1994). Su novela La vida y obra de Ambrosia Pons fue finalista en el XXIII Premio Herralde de Novela (Barcelona, 2005) y en el XIII Premio Planeta de Argentina, (2006). También ha sacado a la luz ensayos sobre literatura y artes visuales entre los que se destaca Escrituras nómadas. Al lado de esta actividad, desde 1996 trabaja
en el campo de la literatura digital, en especial, en la poesía electrónica y el net art.
    Word Toys es una obra hipermedia programada en flash realizada en el año 2006. Se presenta como una simulación de un libro de cuentos en formato códice. En el índice aparecen 14 capítulos independientes que pertenecen a una variedad de géneros: cuentos, poemas, ensayos breves, animaciones de net-art, incluso comentarios de texto. Los pájaros hablan, los maniquíes recitan, mariposas con libros como alas... utilizando los distintos lenguajes del dibujo, el grabado, la fotografía y la oralidad. La mayoría de los capítulos tiene un breve texto en prosa que da paso a la animación. Por ejemplo,  El idioma de los pájaros comienza así:
"Una vez, un ruiseñor mecánico alegró las horas del Emperador de la China. Su pequeño cuerpo cubierto de láminas de oro y de diamantes guardaba en su interior un delicado mecanismo de relojería que le permitía interpretar las composiciones musicales más hermosas, una y otra vez."
    Un enlace al final de este texto nos introduce en un coro de pájaros, cada uno debe ser activado con el ratón para que trine su mensaje.
    A pesar de la diversidad de géneros que incluye y de su decidida voluntad experimental, la delicadeza formal y el equilibrio visual de cada una de las piezas se funden con una prosa siempre rica y sugerente, todo lo cual hace que esta obra tenga una clara unidad de estilo y una coherente belleza.
Entrada publicada por Juan José Díez

Share/Save/Bookmark

domingo, 13 de junio de 2010

Magazine del domingo (13-06-10)



   * El "Scriptorium" del siglo XXI. Con el ratón nos desplazamos por los dispositivos, el video nos muestra los movimientos oculares de Mr. Campbell .

   *"Destino", video-animación: Salvador Dalí visto por Walt Disney. 


   * Dos libros en uno, el libro mágico  (via El blog de Miguel Calvillo)  

   *  Cronología del E-Book, por Verónica Juarez (via El hilo digital
Share/Save/Bookmark

viernes, 11 de junio de 2010

Lingüística computacional (VIII)


(El capítulo anterior de esta serie puede verse aquí)


Gramática Sintagmática nuclear

     Este modelo de gramática, desarrollado por el profesor Pollard (arriba en la foto), recibe en inglés el nombre de HPSG o Head-driven Phrase Structure Grammar. Se trata de una gramática de unificación basada en estructuras de rasgos (ver capítulos anteriores si se requiere recordar estos conceptos) los cuales se eligen de entre un conjunto amplio y bien categorizado de rasgos y valores. La gramática HPSG parte de la estructura superficial de la oración y, por tanto, no necesita apelar a ninguna estructura profunda y no es transformacional. Hoy en día, este formalismo es el más extendido en las aplicaciones computacionales. De hecho, puede decirse que HPSG es más una técnica computacional de plasmar una gramática que un modelo teórico de lenguaje.

     Un importante concepto de esta gramática es que define el signo , una colección de información representada como una estructura rígida y determinada que se aplica a todos las posibles palabras o categorías. Las palabras, los sintagmas, las oraciones, comparten un único modelo de signo perfectamente estructurado en el que ciertos atributos están o no presentes según el tipo que sea. Este signo es una matriz de rasgos que incluye siempre, al menos, dos atributos llamados PHON, que describe la fonética del signo, y SYNSEM que incorpora toda la información sintáctica y semántica. Este atributo SYNSEM se desglosa posteriormente en otra serie de atributos también perfectamente definidos. En la gramática sintagmática nuclear, un atributo puede tener como valor una estructura de rasgos compleja ordenada o desordenada. Pero cualquiera que sea, pertenecerán a unos tipos determinados y estandarizados. Si el signo se aplica a una palabra incluye el subtipo word. Si se aplica a una frase, recibe el subtipo phrase o frasal.

     Es ya obvio que esta estandarización del rasgo tiene ventajas indudables para la programación. Los algoritmos que deban manejar la gramática se encontrarán con un objeto conocido y manejable. Que este objeto describa el lenguaje más o menos correctamente no es tan importante. Lo fundamental es que es tratable de manera eficiente por un ordenador. Una ventaja adicional es que HPSG puede utilizarse tanto para analizar la sintaxis de un lenguaje como para generarlo.

     A diferencia de las gramáticas transformacionales, HPSG defiende que las estructuras idiomáticas se forman mediante las operaciones de unificación y subsunción que vimos en capítulos anteriores. Asimismo, esta gramática entiende las reglas como restrictivas, es decir una regla señala las restricciones que han de existir al combinar palabras o sintagmas pero no define el orden concreto en que estos constituyentes deben aparecer.


Representación del conocimiento


    En HPSG se representa la estructura lingüística mediante matrices de rasgos (o AVM, Attribute Value Matrix). La siguiente figura muestra un ejemplo (no completo) de formato de esta matriz:



    Las palabras clave en mayúsculas son los atributos del rasgo. A su lado, se indican los tipos de valores que pueden tomar dichos atributos.

     Los atributos pueden desplegarse con más palabras clave:


    Cuando esta matriz describe un sintagma se usan ciertos atributos. Cuando describe una palabra, apareen otros o algunos de ellos pueden quedar inactivos como, por ejemplo, NONLOC y QSTORE en el caso anterior.

    Cuando existe una estructura compartida se utiliza la misma notación (un número dentro de un cuadrado) que ya vimos en capítulos anteriores.

   Veamos, por ejemplo, la matriz para algunas palabras en inglés y castellano:











     Un elemento importante que cuelga de SYNSEM es la característica HEAD que, por sí misma, es otra matriz completa de atributos . O información sobre el especificador SPR o el complemento COMP. Por ejemplo:



     En HSPG se distingue ente núcleos sustanciales y núcleos funcionales. Los primeros contribuyen sustancialmente a las semántica de los signos en los que están incluidos (equivale a las categorías mayores en otras gramáticas). Las categorías sustanciales incluyen siempre dos rasgos particulares: MOD (que expresa la modificación entre núcleo y adjunto) y PRD (predicativo).

   Los núcleos funcionales pueden ser determinantes (artículos, etc) o marcadores (comparativos, completivos, etc).

   Los signos para sintagmas incluyen el atributo DTRS (Daugthers features)que sirve para representar la estructura de constituyentes hijos del sintagma:



    Este signo se suele descomponer en diferentes tipos de “hijos” como HEADS, COMPS, SPECS y ADJUNTOS. Una matriz de este tipo puede ser:



Seguir leyendo aquí.

Entrada publicada por Félix Remírez en Biblumliteraria


Share/Save/Bookmark
Related Posts Plugin for WordPress, Blogger...