viernes, 7 de mayo de 2010

Lingüística computacional (III)



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


La búsqueda de gramáticas que describieran formalmente el lenguaje tomó impulso con los trabajos de Noam Chomsky (en la fotografía superior) en los años cincuenta y sesenta del siglo XX.

Hasta entonces, la gramática era descriptiva. Las técnicas del análisis sintáctico definían cada componente de la frase pero no se abordaba la cuestión fundamental: ¿Cómo el hablante ha conseguido crear una frase correcta, incluso cuando jamás antes ha escuchado la misma?. Un asunto que, como señalaba Chomsky, era algo auténticamente misterioso. Chomsky se percató, también, de que el individuo es capaz de generar infinitas frases diferentes a partir de un conjunto finito de palabras y construcciones fundamentales. De hecho esta capacidad es el fundamento de la literatura. Como hablantes o escritores no nos limitamos a repetir frases que ya hemos escuchado, sino que las creamos en función de las necesidades de cada momento. Y, a la inversa, como oyentes, sabemos que son correctas y entendemos las oraciones que los otros enuncian, o escriben, a pesar de no haberlas leído o escuchado antes.

Estas reflexiones condujeron a desarrollar gramáticas que ya no eran explicativas sino que debían dar cuenta de la generación de oraciones correctas, es decir condujeron a las gramáticas generativas. Asimismo, introdujo una visión conceptual muy distinta sobre el lenguaje. Mientras que, hasta Chomsky, predominaba la idea de que la mente del niño era una pizarra en blanco que iba llenándose con los modelos que escuchaba a su alrededor (visión conductista del lenguaje), Chomsky afirma que debe existir un conocimiento formal, previo a la experiencia, que permite al cerebro manejar la lengua correctamente aún cuando no haya oído la gran mayoría de las frases posibles con anterioridad. También, todo esto implicaba que la gramática podía dejar de estudiar extensos corpus de una lengua para centrarse en las reglas internas inherentes.

En los años sesenta del siglo pasado se asiste a una revolución en cómo se entiende el lenguaje y la gramática. El propio Chomsky desarrolla el primer modelo – llamado estándar- que rápidamente se ramifica en otros varios. Desde entonces, se han desarrollado muchos otros, entre los que se pueden destacar:

Gramáticas generativas o sintagmáticas

Estas se pueden subdividir en dos grandes grupos, como son las gramáticas de transformación y las de unificación y rasgos.

- Gramáticas de estados finitos.
- La teoría estándar (ST o TGG) y la estándar extendida basadas en las ideas iniciales de Chomsky.
- La teoría minimalista (MP).
- La teoría GB (Government and Binding), traducida al español de forma un tanto forzada, por teoría de rección y ligamiento.
- Semántica generativa (GS).
- La gramática relacional (RG).
- La gramática APG (Arc Pair gramar).
- La gramática LFG (Lexical- functional Grammar).
- La gramática GPSG (Generalised Phrase Structure Grammar) o gramática de estructura sintagmática generalizada.
- La gramática HPSG (Head driven Phrase Structure Grammar) p gramática sintagmática nuclear.
- Gramática FUG(Functional Unification Grammar)
- Gramática TAG (Tree-adjoining grammar).
- Gramáticas IG (Indexed Grammars).


Gramáticas estocásticas

- Gramática OT (Optimality Theory).
- Gramática SCFG.


Gramáticas de dependencias

- Sintaxis algebraica.
- Gramática de las palabras.
- Gramática operativa.


Gramáticas funcionalistas

- Gramática funcional.
- Gramática de Praga.
- Gramática cognitiva.
- Gramática funcional sistémica.
- Gramática constructivista.
- Gramática de rol.


Queda fuera del alcance de estos posts el profundizar en cada una de ellas (y, con seguridad, más allá de mis conocimientos) pero podremos indicar algunos conceptos básicos.


La jerarquía de Chomsky

Chomsky definió la jerarquía de gramáticas del siguiente modo:

Gramáticas del tipo 0

Son aquellas que no tienen ninguna restricción y que engloban a todas las demás. Permiten toda clase de flexibilidades expresivas, recursividad, frases complejas, solventan la ambigüedad, etc.

Gramáticas del tipo 1

Son gramáticas que permiten reglas de formación del tipo

aAb -> agb

donde A es un elemento no terminal (es decir que requiere ser desglosado en subtérminos como le puede ocurrir, por ejemplo, a un SN) y las letras minúsculas son o no son terminales. "g" debe ser no vacío.

Este tipo de gramáticas del tipo 1 se llaman dependientes del contexto porque, - a partir de la ecuación que define la regla-, A puede ser sustituido por g si y sólo si A y g están acompañadas por a por la izquierda y b por la derecha (no existe la propiedad conmutativa). Es decir, no siempre puede darse la sustitución sino sólo en ciertos contextos.

Gramáticas del tipo 2

Son gramáticas que permiten reglas de formación del tipo

A->g

Donde A es un elemento no terminal y g es una cadena combinada de términos terminales y no terminales (por ejemplo, “N SV SP”).

Estas gramáticas del tipo 2 se llaman independientes del contexto porque como se observa, – a partir de la ecuación que define la regla-, A puede ser sustituido por g cualquiera que sea lo que lo rodea (de hecho, no hay nada rodeando a la cadena).

Gramáticas del tipo 3

Son gramáticas que permiten reglas de formación del tipo

A->tB
A->t

Donde las letras mayúsculas (A, B) indican elementos no terminales (es decir que requieren ser subdivididas en otros elementos ) y las minúsculas indican elementos terminales (que ya no requieren subdivisión).

Estas gramáticas de tipo 3 se llaman regulares y son las que pueden ser evaluadas por un algoritmo sencillo del tipo autómata finito.


Gráficamente, las gramáticas de tipo 0 engloban a las del tipo 1, estas a las del 2 y así sucesivamente.

Ni que decir tiene que las más sencillas de implementar en un ordenador son las del tipo 3 y las más complicadas las del tipo 0.



Hoy en día se piensa que las gramáticas del tipo 2, independientes del contexto, son suficientes para analizar y generar una amplia cantidad de casos que aparecen en una lengua sin necesitar recurrir a gramáticas superiores mucho más complejas y, por ello, han recibido un alto grado de atención y desarrollo.

Gramáticas de estados finitos

También llamadas gramáticas de cadenas de Markov, redes de transición o gramáticas regulares. Son las más sencillas, como se ha visto en la jerarquía anterior. Se trata de gramáticas que pueden ser plasmadas en algoritmos sencillos secuenciales (máquina de estados finitos) en un ordenador y que se fundamentan en ir recorriendo una cadena de reglas, cumpliéndolas hasta dar con una frase generada correcta.

En estas gramáticas, como dijimos, las reglas son del tipo:

A->tB
A->t

Donde las letras mayúsculas (A, B) indican elementos no terminales (es decir que requieren otro elemento posterior) y las minúsculas indican elementos terminales (que ya no requieren nada después). Por ejemplo, una regla de este tipo sería:

O->"una" NON

El programa iniciaría su búsqueda de frases con “una” y buscaría después una regla NON que forzosamente ha de seguirla.

Veamos un conjunto de reglas de una gramática de este tipo, a título de ejemplo:

O->una NOM
NOM-> mujer VER
NOM-> vaca VER
VER -> muge END
VER-> habla END
END ->

Este conjunto de reglas puede también plasmarse mediante un grafo:



¿Cómo funcionaría un ordenador generando frases con esta gramática de estados finitos?

Supongamos que introducimos la primera semilla, “una”.

El algoritmo encontraría que en su base de datos hay reglas que permiten comenzar por la palabra “una”. Arrancaría el proceso, llegaría al primer nodo (NOM) y encontraría dos rutas a seguir, añadiendo “mujer” y “vaca” a la frase que está construyendo. Continuaría su recorrido y llegaría al nodo VER en donde volvería a encontrar dos ramales y podría generar:

Una mujer habla
Una vaca muge
Una mujer muge
Una vaca habla


Ya vemos que un ordenador dejado al albur de un algoritmo tan sencillo puede generar muchas frases lícitas pero también muchas ilícitas por lo que pecaría de sobregeneración. Además, si la semilla inicial hubiese sido “un”, el algoritmo se hubiera detenido nada más comenzar al no hallar regla alguna que empezara con “un”.

Es evidente que los grafos pueden ser mucho más complejos y no limitarse a dos ramales por nodo. Por ejemplo:




Una red de este tipo puede llegar a ser realmente amplia e intratable para un ser humano. Pero para un ordenador es precisamente una tarea idónea que se puede calcular en microsegundos.

Los algoritmos de este tipo no pueden procesar la recursividad que vimos en el capítulo anterior ya que, una vez situados en un nodo, deben seguir hacia adelante sin ser capaces de evaluar cuántas veces se ha de retroceder. Asimismo, tienen dificultades para tratar oraciones que no están secuencialmente ligadas, como son las de relativo.

Aunque desde un punto de vista teórico estas gramáticas tienen demasiados puntos débiles al no poder categorizar muchas posibles estructuras gramaticales, son ampliamente usadas dado que, en la práctica, el habla cotidiana se ciñe precisamente a estructuras sencillas. La aplicación de este tipo de programas en el análisis morfológico es ya común y puede presentar resultados razonables.

Evidentemente, si pensamos en literatura digital de calidad, necesitaríamos precisamente sentencias menos comunes, más elaboradas, ricas, y esta gramática se nos quedará corta.


Seguir leyendo en
Biblumliteraria


Entrada publicada por Félix Remírez



Share/Save/Bookmark

2 comentarios:

Related Posts Plugin for WordPress, Blogger...