desarrollo de un entorno para el anÁlisis sintÁctico...

140
DESARROLLO DE UN ENTORNO PARA EL ANÁLISIS SINTÁCTICO DE UNA LENGUA NATURAL APLICACIÓN AL CASTELLANO AUTOR : Juan Manuel Montero Martínez TUTOR : José Colás Pasamontes Departamento de Ingeniería Electrónica Escuela Técnica Superior de Ingenieros De Telecomunicación Universidad Politécnica de Madrid

Upload: buiphuc

Post on 29-Sep-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

DESARROLLO DE UNENTORNO PARA EL ANÁLISISSINTÁCTICO DE UNA LENGUANATURALAPLICACIÓN AL CASTELLANO

AUTOR : Juan Manuel Montero Martínez

TUTOR : José Colás Pasamontes

Departamento de Ingeniería ElectrónicaEscuela Técnica Superior de Ingenieros De TelecomunicaciónUniversidad Politécnica de Madrid

PROYECTO FIN DE CARRERA

TITULODESARROLLO DE UN ENTORNO PARA EL ANÁLISIS SINTÁCTICO DE

UNA LENGUA NATURAL. APLICACIÓN AL CASTELLANO

AUTOR JUAN MANUEL MONTERO MARTÍNEZ

TUTOR JOSÉ COLAS PASAMONTES

DEPARTAMENTO INGENIERÍA ELECTRÓNICA

GRUPO TECNOLOGÍA DEL HABLA

MIEMBROS DEL TRIBUNAL CALIFICADOR

PRESIDENTE JOSÉ MANUEL PARDO MUÑOZ

VOCAL JOSÉ CARLOS GONZÁLEZ CRISTÓBAL

VOCAL SECRETARIO JOSÉ COLAS PASAMONTES

FECHA DE LECTURA

CALIFICACIÓN

¡Error!Marcador no definido.

CAPITULO I : MOTIVACIONES Y JUSTIFICACIÓN⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

CAPITULO I

INTRODUCCION Y MOTIVACIONES

1.1 Justificación

El desarrollo vivido en la última década por el reconocimiento del habla ha permitido lainclusión de módulos no acústicos1 en las nuevas versiones de los sistemas implementados.Conceptos clásicos de la lingüística como la sintaxis, la semántica, la morfología... entran confuerza en la bibliografía reciente, añadiéndose a otros ya habituales como el de léxico o fonética.

Inicialmente, las arquitecturas usadas eran plenamente modulares y de funcionamientosecuencial: subsistemas de análisis sintáctico, de verificación semántica o de gestión de diálogo sonañadidos para posprocesar la información generada por módulos de tratamiento acústico o accesoléxico2 (cadenas de fonemas o de palabras). La aséptica separación (al menos idealmente) entre losproblemas acústicos y los propios de la gramático-pragmática permitía su tratamiento aislado,evitándose los múltiples problemas inevitablemente presentes en toda interacción fuerte.

La continua evolución de las técnicas registrada en los años ochenta (ProgramaciónDinámica, Modelos Ocultos de Markov tanto de fonemas como de palabras, reconocimiento dehabla continua... ) va dejando obsoletos los sistemas desarrollados. Cuando estas nuevas técnicasalcanzan su madurez, comienzan a aparecer artículos y comunicaciones a congresos interesándosepor la definitiva incorporación de información no fonética con objeto de mejorar las tasas dereconocimiento. Los "lattices"o celosías de fonemas o palabras contenían errores de inserción,sustitución y borrado que dan lugar a que, aún con buenas tasas de reconocimiento de palabras, seacepten numerosas frases gramaticalmente erróneas. Esta vez se incorpora el modelo del lenguajedentro del propio reconocedor, de tal modo que un autómata (equivalente en cuanto a potenciaexpresiva a un lenguaje tipo 3 de la jerarquía propuesta en Chomsky[57] y que posteriormenteexplicaremos) guía la tarea de reconocer y evita la aceptación de errores.

La integración del módulo gramatical en el acústico-fonético supuso una mejora,especialmente en aplicaciones de complejidad limitada donde los autómatas modelabanaceptablemente las posibles situaciones3. Sin embargo la investigación se encaminaba rápidamente 1Entendemos por módulos no acústicos aquellos cuyo fin no esextraer la información fonética incluida en el habla, sinoprocesarla con fines diversos.

2Ambiciosos sistemas como el francés Myrtille I seguían estafilosofía.

3Estos sistemas son denominados "task-oriented" y se centran

CAPITULO I : MOTIVACIONES Y JUSTIFICACIÓN⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

hacia el uso de unos modelos del lenguaje humano más complejos. Los algoritmos surgidos en losaños sesenta y setenta, en los albores de la lingüística computacional, cuando se buscaban métodospotentes y rápidos para compilar lenguajes de programación, fueron retomados y mejorados paraadaptarlos a las nuevas necesidades: ambigüedades, errores en la cadena de entrada, integración enlos sistemas de reconocimiento, integración VLSI de los mismos...

Teniendo in mente este marco, se inicia una línea de investigación en el DIE paraincorporar información sintáctica a la algorítmica de reconocimiento que ya se poseía, continuaciónde las primeras experiencias en sintaxis y guiado mediante autómatas conseguidas en diversosProyectos Fin de Carrera previos.

Tras un estudio de la bibliografía reciente y procurando no desbordar nuestras posibilidadesde tiempo y personal investigador, optamos por abordar en paralelo la realización de una gramáticade contexto libre con que modelar el castellano, y el estudio de la complejidad e integrabilidad delos algoritmos más utilizados. Para ello se hizo necesaria la elaboración de un entorno que nospermitiera desarrollar cómodamente la gramática de un modo incremental, realimentado medianteel análisis de textos. También se precisa obtener un diccionario categorizado que sirva de base parael análisis (ampliado posteriormente al ir introduciendo nuevos textos).

I.2.Ingeniería lingüística

Con el nacimiento de las llamadas Industrias del Lenguaje4, la utilidad de los conocimientosgramaticales que esperamos obtener no se reducen al reconocimiento de voz para gran vocabularioy alta calidad. Entre otros campos donde sería posible usar información sintáctica, encontramos:

-síntesis de voz

-traducción y doblaje automáticos5

-correctores sintácticos para ayuda a la edición

-interfaces naturales hombre-máquina

-estudios teórico-prácticos de lingüística

en entornos de accesos a bases de datos bancarias o de líneasaéreas, bancarias... (Rabiner y Levinson[85], Roe et all [91] y[92]).

4En 1987 la Comunidad Europea puso en marcha e programa LIFE,Languaje Industry For Europe.

5 La traducción automática requiere gran robustez en el "parsing" para resultar útil (lo mismo sucede en la síntesis de voz).Cada vez son más losprogramas comerciales de tratamiento estilístico y gramatical de texto escrito.

CAPITULO I : MOTIVACIONES Y JUSTIFICACIÓN⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

I.2.1 Síntesis de voz

Los sistemas de síntesis de voz a partir de texto, a pesar de haber conseguido una elevadainteligibilidad en su conversión grafema-fonema, no producen un habla natural como sería deseablepara provocar en los potenciales oyentes humanos un rechazo mínimo, una aceptación máxima.

Abordar la lectura automática de frases o párrafos largos sin caer en ese pausado irregularque dan las reglas heurísticas de corto alcance, requiere de información relativamente completasobre la estructura de los enunciados (Garrido[91], pág.10 ).

En el siguiente ejemplo tomado de Alcina[75], pág.4576, se puede observar como lasrelaciones sintácticas influyen poderosamente en la introducción "lógica" de pausas (señaladas conbarra vertical):

"Cruzan por las calles | viejas enlutadas"

Viejas enlutadas es el sujeto del verbo cruzan, con quien concuerda. La lejanía entre ambos( se ha interpuesto por las calles) obliga a la pausa o el paso de entonación ascendente adescendente con el fin de marcar que existen elementos concordantes en orden diferente al habitual.

La teoría de la acentuación por foco sugiere asignar el acento a los constituyentessintácticos de las oraciones, no a las palabras o las sílabas. Un constituyente (una palabra o grupode palabras estrechamente relacionadas) será acentuado si está marcado como focal en las reglassintácticas, o si la palabra que lo constituye está señalada como fuerte en el lexicón y el nodo que ladomina inmediatamente es acentuado (Dirksen [92], págs.22-25.

Si el acento recae sobre una palabra marcada como débil no provocará inversiones deacento caso de intentar acentuarla mediante la regla anterior.

Si se suceden varias palabras débiles complementando a una fuerte (adjetivos y unsustantivo) será necesario hacer alternativamente alguna de ellas fuerte para llevar un ritmoagradable y no monótono.

En el Esbozo[73], apartado 1.5, encontramos una clasificación de las categorías delcastellano en débiles y fuertes (acentuadas y no acentuadas).

I.2.2 Traducción y doblaje automáticos

Traducir una frase de un idioma a otro no se limita, desgraciadamente, a consultar palabratras palabra en un diccionario bilingüe. Las estructuras sintáctico-semánticas son diferentes para lasdiversas lenguas naturales.

6El resto de oraciones del texto de Azorín son más sencillasde pausar, debido a los signos de puntuación que sirven de guía.Sin embargo, su ausencia no impediría una correcta entona-ción:generalmente son causas sintácticas las que han motivado suinclusión: subordinación, concordancia, dependencias lejanas, laelipsis... Más ejemplos en Esbozo[73], pág. 399.

CAPITULO I : MOTIVACIONES Y JUSTIFICACIÓN⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Veamos unos ejemplos de cómo la sintaxis es necesaria para la traducción inglés-castellanoy castellano-inglés (aunque, obviamente, no lo único necesario):

-numerosos sintagmas preposicionales con de se convierten en aposiciones antepuestas(inexistentes en castellano) al traducir del inglés: tipo de interés pasa a interest rate.

-mientras el inglés tiende a anteponer los adjetivos, el castellano tiende a posponerlos:cuenta corriente será current account.

-la reglas de omisión de determinante difieren: los bonos del Tesoro se convierten enTreasury notes debido a la aposición.

-la combinación de todo lo anterior, puede dar lugar a una fuerte reordenación: latransformación efectiva de España sería Spain's efective transformation.

-los sujetos inexistentes o elípticos tan comunes en castellano deben ser explícitos en inglés."nobody talks..." o "it's said..." resultaría de la traducción de "no se habla..."

-el ordenamiento libre de sintagmas que caracteriza al castellano debe ser linealizado. "estállegando una ola que..." debería pasar como "a wave that...is arriving"

-las sustantivaciones de adjetivos... por medio del uso de determinantes, requieren rodeoslingüísticos: lo político frente a the political cuestion

-los verbos subcategorizadores: transitivos, con preposición... distan mucho de coincidir."sorprenderse de..." equivale a "be surprised by..." (obsérvese el cambio de voz activa a voz pasiva)

-la concordancia de número posee diferente aritmética en ambos idiomas: tres dólares encastellano, pero three dollar en inglés.

-los pronombres requieren interpretación semántica de sus antecedentes. En "nadie habla enEspaña de ella misma", ella tiene a España como referente, y no a nadie. Además el referentepuede ser lingüístico (una oración, un sintagma...) o contextual.

-la capacidad de creación de nuevas palabras hace necesaria la utilización de reglasmorfológicas. ¿ Cómo cabría traducir politicismo ?

-existen ambigüedades léxicas bidireccionales dependientes de los contextos sintáctico ysemántico. banco puede ser traducido como bench o como bank. bank, a su vez, podríacorresponderse con banco u orilla .

-el contexto pragmático obligaría a usar inteligencia artificial. En el ayuntamiento comprólos bancos por cinco millones" es obvio que la traducción requeriría usar benches y no banks.

La utilidad de los sistemas de traducción automática, o de ayuda a la traducción, detraducción automática por el autor, o adaptados a un entorno determinado y restringido, de

CAPITULO I : MOTIVACIONES Y JUSTIFICACIÓN⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

traducción inmediata aunque imperfecta... sería inmensa7

I.2.3 Correctores sintácticos (Granda[91], IBM-España[91])

La extensión alcanzada por los microordenadores en todos los ámbitos laborales oacadémicos ha permitido que los editores de texto sean una herramienta de trabajo cotidiana (noso-tros mismos utilizamos uno de los más populares en la redacción de este proyecto). Alincorporarles más y más funciones se han convertido en procesadores de textos, aunque para unaperfecta comodidad en su manejo por parte de nosotros los "escritores", se echa en falta lacorrección automática o semiautomática de esos errores que nuestra impericia, precipitación odesconocimiento de la lengua nos hacen cometer:

Las actuales funciones de análisis léxico resultan insuficientes. Mediante simple consulta enel diccionario de cada palabra que usemos, no se pueden corregir errores tan típicos como:

-palabras unidas o separadas sin querer: tam poco, tanpoco...

-sustitución de letras con resultado de palabra presente en el diccionario: menores pormejores...

-acentuación diacrítica incorrecta: éste por este, como por cómo...

-comentarios entre guiones o paréntesis, abiertos pero no cerrados o viceversa.

Para una verificación gramatical de amplio espectro, necesitaremos modelar la lenguaformalmente, compilar la información en forma de gramática y probarla mediante córpora textuales.Aunque, como en la arquitectura propuesta en Granda[91], se adopte un esquema de análisissintáctico local (centrado en sintagma) y no global (centrado en la oración), como haremosnosotros, la información sigue siendo válida y sólo habrá que adaptarla a nuestras condiciones deanálisis sintáctico veloz, robusto... (al fin y al cabo la lengua es la misma siempre).

I.2.4 Interfaces naturales hombre-máquina

Cualquier lenguaje para la manipulación de una base de datos posee una sintaxis artificialque dificulta nuestro acceso a ella (especialmente para los no habituados a la informática o los"alérgicos" a la misma).Sin embargo, todos conocemos al menos un idioma (con nuestro propiovocabulario y nuestra propia gramática, eso sí) y por medio de él somos capaces de pedirinformación en cualquier organismo público.La utilización de lengua natural en nuestrasinteracciones con las máquinas simplificaría notablemente la labor del usuario.

La versatilidad del lenguaje natural multiplica las fuentes de error: la pronunciación o laortografía, palabras desconocidas, absurdos que suenan bien, peticiones ambiguas, fragmentos consignificado, correcciones sobre al marcha, sintaxis mala pero comprensible, referencias al contexto

7 En Sager[91] encontrarán una visión amplia del tema de latraducción automática:reutilización de traduccionesprevias,traducción incremental...

CAPITULO I : MOTIVACIONES Y JUSTIFICACIÓN⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

de la petición... Ello justifica la adición de módulos inducción y corrección, de gestión de diálogo...

Tomando ejemplos de ATIS (Young[91],Seneff[92], Pieraccini[91] y [92]), donde semuestran peticiones hechas a una base de datos de líneas aéreas, podemos comprobar:

-las oraciones casi se limitan a los modos interrogativo e imperativo

-no abundan ni son variadas la recursión subordinada ni la coordinada

-la semántica viene guiada por los verbos (list... ), que son los que imponen los marcos depredicación, y las palabras típicas (flight...)

-la correcta asignación de complemento se ve dificultada por los muchos sintagmaspreposicionales. En las figuras comprobamos como sintagmas muy similares realizan funcionesdiferentes.

-algunas estructuras sintácticas son más empleadas en este entorno que en la vidacotidiana,y deben ser tratada muy especialmente. Por ejemplo "from...to..." debería tener menorprioridad (luego mayor posibilidad de reflejar relaciones lejanas) que "...in NombrePropio",de talmodo que se pueda integrar una en la otra caso de darse conjuntamente. En:

"from the airport in Dallas to Boulders"

"in Dallas" forma parte del término del sintagma preposicional "from..." y no funciona comocomplemento de un hipotético verbo.

Lo mismo sucede con las expresiones de tiempo: before noon, this week...

-los pronombres: debemos hallar su antecedente:

"show the flights from.. to... as well as their minimun fares"

ORACION ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊕⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ Interrogación OInterrog Interrogación ≥ ≥ ≥

≥ OInterrCompl ≥

≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥

≥ SNInterrog V SPdirecc ≥

≥ ≥ ≥ ∨⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗↵ ≥

≥ SNIntSimple ≥ PrepDest SNDest ≥

≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ ≥

≥ DetInterrogat N SAdjPost ≥ ≥ NomGeoSin ≥

≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥

≥ ≥ ≥ Adj ≥ ≥ NomGeoSimple ≥

≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ¿ qué transportes terrestres hay hasta Barcelona ?

Figure 1 Ejemplos de ATIS(I).

CAPITULO I : MOTIVACIONES Y JUSTIFICACIÓN⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

I.2.5 estudios teórico-prácticos de lingüística

Un conocimiento profundo del funcionamiento del sistema de la lengua debe conllevar suimitación y simulación. Las teorías deben ser contrastadas en la práctica, y ésta sirve para superfeccionamiento. Hallebeek[91] utiliza un entorno similar al que desarrollaremos aquí paraestudiar la esquemas de nominalización de adjetivos, sintagmas preposicionales... proponiendo quese traten sintáctica y no léxicamente, categorizando los adjetivos nominalizables como sustantivos.

I.2.6 Otros

ORACION ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊕⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ Interrog OInterrog Interrog ≥ ≥ ≥ ≥ OInterrCompl ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ SNInterrog V SPdirecc ≥ ≥ ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ SNIntSimple ≥ PrepOrig SNOrig PrepDest SNDest ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ ≥ ≥ ≥ ≥ DetInterrogat N SAdjPost ≥ ≥ NomGeoSin ≥ NomGeoSin ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ Adj ≥ ≥ NomGeoSimple ≥ NomGeoSimple ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ¿ qué transportes terrestres hay de Madrid a Barcelona ?

Figure 2 Ejemplos de ATIS(II).

ORACIÓN ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊕⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ Interrogación OInterrog Interrogación ≥ ≥ ≥ ≥ OInterrCompl ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ SNInterrog V SPTemp ≥ ≥ ≥ ≥ ≥ ≥ ≥ SNIntSimple ≥ SPTempDest ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊕⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ DetInterrogat N SAdjPost ≥ PrepDest ArtDet Numeral ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ Adj ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ¿ qué transportes terrestres hay hasta las tres ?

Figure 3 Ejemplos de ATIS(III).

ORACION ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊕⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ Interrogación OInterrog Interrogación ≥ ≥ ≥ ≥ OInterrCompl ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ SNInterrog V SPdirecc ≥ ≥ ≥ ≥ ∨⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗↵ ≥ ≥ SNIntSimple ≥ PrepDest SNDest ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ ≥ ≥ DetInterrogat N SAdjPost ≥ ≥ NomGeoSin ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ Adj ≥ ≥ NomGeoSimple ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ¿ qué transportes terrestres hay hasta Barcelona ?

Figure 4 Ejemplos de ATIS (IV).

CAPITULO I : MOTIVACIONES Y JUSTIFICACIÓN⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

-Máquinas de escribir predictivas

-Etiquetado automático de léxico para la confección de diccionarios

-procesamiento inteligente de información textual8

8En Haller[91] y Sager[91] encontrará ejemplos de investi-gación en la materia tanto en Alemania como en Gran Bretaña oEspaña.

CAPITULO II : LA LENGUA NATURAL⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

CAPITULO II

LA LENGUA NATURAL

II.1 Caracterización

Las lenguas son sistemas más o menos complejos que asocian contenidos de pensamiento ysignificación a manifestaciones simbólicas tanto orales como escritas. Aunque en sentido estricto ellenguaje sería la capacidad humana para comunicarse mediante lenguas, se suele usar para denotarlos mecanismos de comunicación no humanos (el lenguaje de las abejas o el de los delfines) o loscreados por los hombres con fines específicos (los lenguajes de programación, el lenguaje de lalógica, de la aritmética...).

La característica externa9 fundamental de las lenguas naturales (los idiomas humanos "depropósito general") es su enorme complejidad formal. De la sintaxis, componente clásico de lamayoría de nuestros modelos de lenguaje, dijo el lingüista norteamericano F. Palmer que era"aquella disciplina lingüística que todo el mundo espera que estudien los demás". Mientrascualquier lenguaje de programación puede ser descrito por medio de menos de cuatrocientas reglassintácticas, modelar groseramente, en sus mecanismos generales, un idioma como el castellanoprecisa de al menos esa cifra (sin incluir las palabras propiamente dichas, que ya son miles)10.

Otro grave problema descriptivo que presentan es la inexistencia de un único modelocomún a todos los hablantes: cada uno tiene su propio idiolecto (manera individual de hablar),interiorizado e inconsciente (nadie es capaz de describir con fidelidad su idiolecto, ni cómo lo haadquirido). Ello nos obliga a usar córpora textuales que verifiquen nuestras intuiciones lingüísticas,a escribir nuestra gramática por aproximaciones sucesivas.

9Las lenguas naturales poseen características de adquisicióny modelado cerebral cuyo contenido y alcance,en general,des-conocemos.Chomsky ha alternado a lo largo de su vida lasreflexiones puramente lingüísticas con las lingüístico-cerebra-les , a la búsqueda de esos universales comunes a las gramáticasde todas las lenguas que demuestren su teoría delinnatismo.Afortunadamente su teoría formal es independiente desu filosofía de la mente,pudiéndose usar una sin aceptar laotra.

10Ver las descripciones gráficas y textuales que Wirth[82]da de Modula-2 y compararlas con las breves y muy incompletasque aparecen en Tomita[86b] para el idioma inglés.

CAPITULO II : LA LENGUA NATURAL⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

La depuración tendrá por fin satisfacer los tres criterios de adecuación que Chomskypropuso:

-adecuación observacional: predecir correctamente qué oraciones pertenecen o no a lalengua en cuestión.

Mientras "Todos mis amigos son lingüistas" o "Todos los lingüistas son mis amigos"constituyen enunciados aceptables, "Mis todos lingüistas son amigos" o "Todos lingüísticos son losmis amigos" no lo son.

-adecuación descriptiva: además debe especificarse la estructura de relaciones de esasoraciones.

En "Todos mis amigos lingüistas son lingüistas", las concordancias entre todos, mis,amigos, lingüistas y son debe ser explicitada para justificar la incorrección de "Todos el amigaslingüistas es lingüista".

-adecuación explicativa: nuestro modelo debería contener un conjunto muy limitado deprincipios simples y generales11.

Dadas frases tan relacionadas como "Los caballos del rancho comen hierba fresca" y"¿Qué comen los caballos del rancho?", o "Empleados del Ayuntamiento derribaron el edificio" y"El edificio fue derribado por empleados del Ayuntamiento", deberían de ser explicados de unmodo conjunto y no aislado, duplicando esfuerzos...

Sin embargo, en la práctica estos criterios serán excesivamente exigentes en su conjunto ypara una introducción en el tema; una arquitectura simple, como la que utilizaremos en esteproyecto, hará que el número de reglas que nos garanticen cubrir una amplia porción del castellanocon un mínimo de oraciones agramaticales aceptadas, sea elevado.

II.2 Mecanismos habituales en una lengua natural

Con objeto de dejar clara la diferencia de complejidad entre los lenguajes artificiales y laslenguas naturales, daremos aquí un breviario de fenómenos lingüísticos presentes en una lenguanatural como el castellano:

-el fenómeno de la recursión (presente también en los lenguajes de programación) se hallalimitado por restricciones de tipo pragmático que hacen casi inaceptables oraciones como:

"tu vecina es muy, muy, muy, muy... pero que muy simpática"ó

"perseguí al ratón que perseguía al gato que perseguía a la rata ..."

11Además de las propuestas por Chomsky,muy adecuadas para unparadigma generativista,diferentes teorías han dado otrosenfoques a la adecuación explicativa.S.C.Dik[81] define obje-tivos pragmáticos,funcionales y de tipología del lenguaje eneste nivel.

CAPITULO II : LA LENGUA NATURAL⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

-la homonimia (o ambigüedad léxica) hace que a una misma palabra se le puedan asignardiversos significados con dependencia o no del contexto lingüístico. En:

"las llamas lo asustan"

es el contexto extralingüístico (otro mecanismo típicamente natural) el que nos especifica si con"llamas" nos estamos refiriendo al conocido herbívoro sudamericano o al efecto de unacombustión.Igual sucede con:

"el régimen me lo tenía prohibido"

donde, variando el contexto, el régimen puede ser político o alimenticio.

-la anfibología estructural: las relaciones entre los constituyentes de la oración es ambigua,pudiéndose dar más de una interpretación. Al decir:

"Pedro habló a los estudiantes de lingüística"

no queda claro si es que habló de lingüística a los estudiantes, o habló de esa materia, o decualquier otra, a los estudiantes que cursan la disciplina de lingüística.

Tomando el idioma inglés encontramos:

"I can't stand John"12

equivalente a "no puedo soportar a John" y "John, no puedo soportarlo".

-ambigüedades temáticas: la asignación de papeles temáticos (instrumento, agente...) puedetambién dar lugar a equívocos:

"la invitación del gobernador provocó problemas"13

puede ser una invitación hecha por el gobernador (=AGENTE), o podría ser el gobernador(=OBJETO) quien fue invitado.

-el léxico tiene un carácter dinámico (lleno de importantes irregularidades que caracterizan 12Hemos omitido la pausa o cambio de entonación que precede-ría a "John" y desharía la ambigüedad:todavía son difíciles dereconocer automáticamente.

13Quizá deberíamos catalogar esta ambigüedad como léxica,alvariar el significado de la contracción "del",en un casosignificando "hecha por el" y en el otro "hecha al".(VerHernanz[87] de dónde están tomados los ejemplos.

CAPITULO II : LA LENGUA NATURAL⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

el hablar con corrección: anduve y no andé...). Continuamente aparecen nuevas palabras, nombres,denominaciones... siendo tarea imposible el inventariarlas. Los mecanismos de derivación ycomposición de palabras permiten a cualquier hablante ampliar el vocabulario existente sin que porello tenga que dejar de ser entendido14. Cada región, familia, clase social, profesión... incluso cadahablante tiene su propia visión del lenguaje común por todos empleado (la variedad del fenómenono es comparable a los dialectos "intencionados" de un lenguaje de programación).

-la elipsis (existencia de unidades lingüísticas carentes de realización fonética, perorecuperables a partir de sus huellas en el discurso) es un recurso muy complejo que es propio de laslenguas naturales. Palabras o secuencias largas de palabras pueden ser omitidas porque un delicadosistema de redundancias permite su reconstrucción.Desde la ya citada elipsis de sujeto (redundantepor la conjugación del verbo) hasta la omisión de gran parte de la respuesta a una pregunta, sonmuchos las posibilidades que nos brinda este mecanismo.

-la anáfora permite que ciertos elementos nos remitan a otros sin necesidad de queaparezcan explícitamente:

"Qué foto suya que le robó Pedro busca Pepe"

donde "suya" se refiere a Pepe y no a Pedro o a un tercero, Juan.

-la libertad en el ordenamiento de los constituyentes (grupos conexos de elementos dellenguaje interrelacionados) cuando no de las mismas palabras (como en el caso del latín,aunque conrestricciones) sin por ello alterar necesariamente el significado de lo expresado. En castellano sontípicamente muy móviles los adverbios acabados en -mente:

"Francamente, yo creo que María tiene razón""Yo, francamente, creo que María tiene razón""Yo creo, francamente, que María tiene razón""Yo creo que, francamente, María tiene razón""Yo creo que María tiene razón, francamente"

En el ya clásico hipérbaton:

"Del salón en el ángulo oscuro, de su dueño tal vez olvidada, silenciosa y cubierta de polvo, veíase el arpa"

(G. A. Becker)

destaca la concordancia de género, numero y persona entre palabras notablemente dispersas:

14Los actuales correctores ortográficos de los procesadores de texto desconocen palabras empleadas en la redacción de esteproyecto que no presentan apenas dificultad de comprensión para sus lectores:observacionalmente,ingenieril,José Mº Brucart...

CAPITULO II : LA LENGUA NATURAL⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

olvidada, silenciosa, cubierta, veíase y arpa

o como del salón modifica a ángulo, de su dueño a olvidada, olvidada a "arpa", el primer verso noes sino un complemento circunstanscial del verbo veíase y el segundo un predicativo.

-la asignación de significados a las oraciones es notablemente más compleja que la quecaracteriza a los lenguajes de programación, sean estos imperativos,funcionales ...15 La construc-ción del más complejo de los compiladores es mucho más sencilla que la de un módulo deinterpretación o comprensión de cuentos infantiles.

-las concordancias y otras relaciones intra-oracionales "lejanas". En las interrogativasparciales como:

"¿Qué casa dijo Pepe que compraría a su prima?"

donde SNInterrogativo[qué casa] es el complemento directo del verbo de la proposición sustantivaque contiene al verbo compraría.

En el inglés es característica la posibilidad de separación entre la preposición y su término:

"who did he talk to in the pub?"

donde "who" es núcleo del sintagma nominal asociado a "talk to" (más "lógica" parece "to whomdid he talk in the pub?").

-la existencia e influjo de la entonación, la acentuación y el pausado. Una misma frase seráenunciativa o interrogativa o exclamativa dependiendo de cómo la pronunciemos o de cómopongamos los signos de puntuación:

"Quiere que vaya pronto""¿Quiere que vaya pronto?""¡Quiere que vaya pronto!"

-la subcategorización (necesidad por parte de ciertos elementos de la presencia de otrospara tener sentido pleno: la tradicional transitividad verbal, la rección prepositiva...) es mucho máslibre que en las "llamadas a función" o "a procedimiento", equivalente conceptual en el campo delos lenguajes de programación. 15Sorprende, al consultar los suplementos actualizadores deuna enciclopedia como la Larousse,el notable incremento deentradas asociadas a la palabra "lenguaje" que se ha producidotras la aparición de los ordenadores: ensamblador, simbólico,funcional, lógico, generador de informes,de especificación, teo-ría de lenguajes...

CAPITULO II : LA LENGUA NATURAL⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

-ante situaciones de ruido o desconocimiento de palabras, el ser humano reaccionainfiriendo, habitualmente con gran acierto.

Por supuesto estos rasgos diferenciadores no ocultan las similitudes generales(larecursividad, la estructura jerárquica de relaciones entre constituyentes, la categorización de loselementos...) que justifican el estudio de las lenguas naturales mediante la teoría de lenguajesformales.

CAPITULO III LOS LENGUAJES FORMALES⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

CAPITULO III

LOS LENGUAJES FORMALES

III.1 Definición

De un modo extensivo, un lenguaje se definiría enumerando todos los enunciados que locomponen. Como la mayoría de los lenguajes de interés son recursivos en mayor o menor medida(a partir de un enunciado existen procedimientos que permiten formar otros mayores y máscomplejos), debemos encontrar propiedades o conjuntos de propiedades que los definan unívoca-mente (definición intensiva).

Dada la oración castellana: "este perro es de mi padre", es posible construir otras como:

"mi madre dice que este perro es de mi padre""mi madre dice que este perro es de mi padre y este perro es de mi padre""si mi padre asegura que mi madre dice: "este perro es de mi padre", mi madre dice que

este perro es de mi padre"

Como es obvio, resultaría absurdo intentar escribir todas las posibles combinaciones depalabras aceptadas en castellano.

La posibilidad de una definición intensional completa de un lenguaje es lo que nos permitellamarlo formal. Para las lenguas naturales, creadas por el hombre de un modo colectivo y por tantono personalmente consciente, la formalización no existe: ¡aunque todos somos generalmentecapaces de decir si una frase pertenece a nuestro idioma materno (incluso muchos son capaces dehacerlo con algunos otros), y comprender su o sus significados, nadie ha sido capaz en más de dosmil años de interés por el fenómeno lingüístico, de caracterizar uno biunívocamente!

Pero son los formalismos la llave que puede abrirnos la puerta del tratamiento informáticocómodo y generalizado: dada una secuencia perteneciente a un idioma como el nuestro y unconjunto de propiedades que debe satisfacer, sólo habremos de aplicarlaspara verificar su gramaticalidad16. Del mismo modo podría llegar a la traducción automática entrelenguajes formales, a la generación más o menos intencionada y automática de oracionescorrectas...

16 Más adelante veremos que hay que imponer ciertas restric-ciones a los formalismos si queremos que exista un algoritmo,unasecuencia de pasos que nos garantice la finalización ,exitosa ono, de la operación en un tiempo finito.

CAPITULO III LOS LENGUAJES FORMALES⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

El paradigma formal más famoso y rápidamente desarrollado para la caracterización delenguajes es el derivado del concepto de gramática generativa de Chomsky. En Chomsky[59], estacelebérrimo lingüista norteamericano partiendo de que un lenguaje L es un subconjunto de todas lassecuencias (finitas o no) que podemos formar mediante la concatenación de elementos de unvocabulario Σ, define la gramática mediante la cuaterna siguiente:

-Σ : vocabulario finito de símbolos Terminales, que son símbolos porque referencianrealidades objetivas, subjetivas o meramente gramaticales, pero que son terminales por aparecerefectivamente en los enunciados.

-N : conjunto finito de símbolos No Terminales, metasímbolos que describen directa oindirectamente cadenas o subcadenas del lenguaje, con propiedades comunes.

-S : un símbolo No Terminal básico (axiomático según la definición de Chomsky), quedescribe oraciones ( y no subcadenas) del lenguaje.

-P : un conjunto también finito de reglas de producción que nos dicen cómo se puedegenerar los enunciados, cómo partiendo del axioma podemos llegar a la oración terminal. Esteconjunto será un simple subconjunto de:

lo cual expresado en una notación más clásica en lingüística sería:

donde:

siendo posible que tanto α como β como γ sean iguales a la cadena nula.

El lenguaje L así definido se obtendría aplicando el siguiente procedimiento no algorítmico(no garantiza tiempo finito para una gramática genérica):

-S es una forma oracional

-si αβγ es una forma oracional y β->δ pertenece a P, αδγ también será forma oracional

-una forma oracional compuesta únicamente por símbolos terminales constituirá unaoración del lenguaje.

Como ejemplo veamos la derivación de una oración en castellano basándonos en unapequeña gramática:

S->SintagmaNominalSujeto SintagmaVerbalPredicado->Determiante Sustantivo SVP

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

CAPITULO III LOS LENGUAJES FORMALES⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

->Det Sust Verbo SintagmaNominal->Det Sust Verb Det Sust->el chófer destrozó el coche

III.2 Jerarquía de Chomsky

A fin de precisar más que tipo de gramática es capaz de generar un lenguaje lo más similarposible a los naturales, Chomsky distinguió cuatro formatos de reglas que se correspondían congramáticas generativas más o menos potentes.

III.2.1 Tipo 3

Es el descriptivamente más débil.Sus reglas poseen un formato:Install Equation Editor and double-click here to view equation. 5donde B puede existir o no.

Equivalen, en cuanto a poder descriptivo, a las redes finitas de transición de estados que seestudian en teoría de autómatas. Dado un lenguaje regular (aquel que es posible caracterizarusando una gramática de tipo 3), siempre será posible hallar su autómata equivalente (cada símboloNo Terminal es un estado, cada regla A→aB una rama que conecta los estados A y B por mediodel símbolo Terminal a y cada regla A→a nos dice que A se une al estado final a través del símbolo'a').

Dada la sencillez estructural de estos lenguajes, la notación chomskiana resulta pesada. Lasnotaciones más compactas para la expresión de lenguajes regulares son las BNF (Backus NormalForm, Backus Naur Form, en homenaje a Backus, su creador, y Naur, su continuador), quereducen a uno el número de reglas necesarias. Para ello utilizan los siguientes metasímbolos:

-la barra disyuntiva '|': unifica en una dos reglas con el mismo símbolo No Terminal a laizquierda del igual. A→aA y A→bB se convierten en A→aA|bB.

-el paréntesis de opcionalidad '(...)': dos reglas iguales salvo una expresión inserta equivalena la mayor de ellas con la expresión inserta, entre paréntesis. A→aB y A→a se reduce a A→a(B).

-el signo más de recursividad '+': adjuntado a una expresión equivale a las regla A→...A yA→... Por ejemplo: A→aA y A→a se transforman en A→a+

-el asterisco que equivale a una expresión con más y entre paréntesis. Así, A* es lo mismoque (A+).

-el corchete para alterar la prioridad en la interpretación de los metasímbolos. Como '+' y '*'tienen mayor prioridad que la barra, son expresiones diferentes: A|B+ y [A|B]+.

Traduciendo esta notación infija a prefija se gana en facilidad de procesamiento pero no en

CAPITULO III LOS LENGUAJES FORMALES⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

facilidad de escritura (hay que escribir más).

Cualquiera de estas notaciones no constituye un lenguaje regular de contexto libre(siguiente nivel en la jerarquía de Chomsky).

Un ejemplo de gramática regular para el Sintagma Nominal del castellano se muestra en elrecuadro 3 donde se ha permitido la utilización de símbolos auxiliares no recursivos (con lo cualnunca podremos exceder los límites de los lenguajes regulares).

III.2.1.1 Limitaciones de los lenguajes regulares

Un autómata categorial cuidadosamente diseñado y compilado (no el de la figura 3, porsupuesto) puede reconocer un amplio subconjunto de un lenguaje natural como el castellano . EnSubirats[91] se encuentra un texto periodístico completo aceptado por un autómata similar alnuestro, con frases tan espectaculares como simples:

NotaciónBNF → ExpresiónExpresión → Término | ExpresiónExpresión → TérminoTérmino1 → ParéntesisTérmino1 → Término *Término1 → Término +Término1 → TérminoTérmino → SímboloTérmino → CorcheteCorchete → [ Expresión ]Paréntesis → ( Expresión )

1 Gramática de la notación BNF.

NotaciónBNF → SEC( Expresión )Expresión → Término ExpresiónExpresión → DISY( Término Expresión )Término → OPC( Expresión )Término → OPC SímboloTérmino → REC-0( Expresión )Término → REC-0 SímboloTérmino → REC-1( Expresión )Término → REC-1 SímboloTérmino → Símbolo

2 Gramática de la notación BNF prefija.

CAPITULO III LOS LENGUAJES FORMALES⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

"La importante reducción en la remuneración de los bonos del Tesoro hasta el 14,505 porciento en tasa interna bruta de rentabilidad supone el inicio de un descenso progresivo de los tiposde los títulos público y adelantará al otoño la reducción de los

tipos de interés".

Esta adecuación observacional no oculta la incapacidad de los lenguajes regulares para, consencillez y elegancia, decirnos cuál es la estructura de este sintagma nominal (a qué núcleo nominala adjetival están complementando cada uno de los sintagmas preposicionales, cómo se encadenanéstos entre sí...) ni explicar las ambigüedades estructurales de oraciones como las vistas en elcapítulo dedicado a la lengua natural17.

En Edinburgh[89], cap. 2, se incluye un ejemplo de Gazdar y Pullam contra el carácterregular del inglés:

que traducido al castellano queda, aproximadamente:

Aunque el ejemplo es extremo e inaceptable (una gramática que falle en esa frase no puedeser rechazada en la práctica), pretende mostrar que la inserción generalizada y recursiva deproposiciones en posición relativa y no absoluta, con sus parejas de sujetos y predicados, constituye

17Esta capacidad de reconocer cadenas pero no darcorrectamente su estructura supone un caso de capacidadgenerativa débil y no fuerte (Edimburgh[89], cap.1).

Sintagma_Nominal = (Determinante) (Numeral) (Sintagma_Adjetival) Núcleo_Nominal (Sintagma_Adjetival) Sintagma_Preposicional*

Determinante = PreArtículo[Artículo | Posesivo | Demostrativo]

Numeral = Cardinal | Ordinal

Núcleo_Nominal = Sustantivo |Infinitivo

Sintagma_Adjetival = Adverbio* [Adjetivo | Participio]+([ , Adverbio* [Adjetivo | Participio] ]* [y | o] Adverbio* [ Adjetivo | Participio])

Sintagma_Preposicional = Preposición (Determinante) (Numeral) (Sintagma_Adjetival) Núcleo_Nominal (Sintagma_Adjetival)

3 Pequeña gramática del sintagma nominal en castellano.

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

CAPITULO III LOS LENGUAJES FORMALES⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

un fenómeno lingüístico no elegantemente regular. Cuando todos escuchamos la oración:

"el coche que el chófer que Pedro contrató condujo ayer parece rápido"

mentalmente asignamos sujeto a los distintos verbos percibiendo la estructura de niveles quesupone la inserción de una proposición dentro de otra; cada verbo no tiene al sustantivo anteriormás cercano como sujeto, sino al anterior más cercano que no tenga un verbo más cercano aún18.

Trucos como la adición de una pila para la subordinación inserta, o la utilización degramáticas ambiguas y desdoblamiento del análisis al pasar por un estado de ambigüedad, o eletiquetado de los sintagmas al llegar a determinados estados, complican en exceso el sencillofuncionamiento de los autómatas, y son formas poco recomendables de convertir el lenguajeaceptado en algo más que regular.

III.2.2 Tipo 2

Describen los llamados lenguajes de contexto libre (en ellos se pueden insertarproposiciones dentro de proposiciones independientemente del contexto de la oración).

El formato según Chomsky será:

donde α es una cadena, vacía o no, de símbolos terminales o no terminales.

Equivale, en cuanto a potencia descriptiva, al autómata con pila y nos permite describiradecuadamente las relaciones intra- e inter-sintagmáticas de la lengua natural:

-concordancia sujeto-verbo-concordancia sujeto-atributo-inserción de proposiciones en posiciones centrales

⋅⋅

La representación gráfica de un análisis de contexto libre es un clásico árbol sintáctico conlos símbolos No Terminales en los nodos intermedios y símbolos Terminales en los finales.

18 La incapacidad para aceptar un elevado grado de recursividadde inserción parece más ligada con nuestras capacidades para ellenguaje hablado (inferiores a las que tenemos al leer oescribir) que al posible carácter regular del lengua natural.

Install Equation Editor and double-click here to view equation.

CAPITULO III LOS LENGUAJES FORMALES⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

III.2.2.1 Limitaciones de los lenguajes de contexto libre

Mucho se ha argumentado a favor y en contra de si los lenguajes naturales podían serdescritos sintacticamente mediante gramáticas de contexto libre, basándose desde ejemplossencillos aunque muy discutibles, hasta referencias a estructuras presentes en holandés, bambara...(Perrault[84], Edinburgh[89]).

Hay quien objeta que la multiplicación de categorías sintácticas necesaria para contemplarlas concordancias es claramente antinatural, que sería mejor que los símbolos llevaran asociadosrasgos como el género, el número, la persona... Parece poco natural la creación de categoríassintácticas como Sintagma Nominal masculino plural propio geográfico, Sintagma Adjetival largo

ORACION≥

Proposición

∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ SN SVAtrib

∨⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗↵

∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗↵ DET Nucl SP VerbCop Atrib ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗↵ ≥ ≥ Det N Prep SN ≥ SAdj ≥ ≥ ≥ ∨⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥

∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ DET Nucl SAdjPost SPde ≥ SAdjConAdv NexoMonoCop Adj ≥ ≥ ≥ ≥ ≥ ≥ ∨⊗⊗⊗⊗⊗ℑ⊗⊗↵ ≥ ∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ ≥ ≥ Det N Adj PrepDe SN ≥ SAdv Adj ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ NombreProp≥ Adv2 ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ las opiniones sobre la realidad efectiva de España son sobremanera deficientes y desoladoras

ORACION≥

Proposición

∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ SN SVAtrib

∨⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗↵

∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗↵ DET Nucl SP VerbCop Atrib ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗↵ ≥ ≥ Det N Prep SN ≥ SAdj ≥ ≥ ≥ ∨⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗↵ ≥ ≥ ≥ DET Nucl SAdjPost SPde ≥ SAdv SAdjCoord ≥ ≥ ≥ ≥ ≥ ≥ ∨⊗⊗⊗⊗⊗ℑ⊗⊗↵ ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗ℑ⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ Det N Adj PrepDe SN ≥ Adv Adj NexoMonoCop Adj ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ NombreProp≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ las opiniones sobre la realidad efectiva de España son sobremanera deficientes y desoladoras

Figure 5 Ejemplos de árboles sintácticos de una frase encastellano.

CAPITULO III LOS LENGUAJES FORMALES⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

con sintagma adverbial antepuesto... o incluso de categorías léxicas como sustantivo masculinoplural propio geográfico, adjetivo femenino singular especificativo... Sin embargo, nuestro intentocomo ingenieros es modelar la lengua externamente de un modo sencillo; la multiplicación de reglasy símbolos que supondría una gramática poco elegante como la del recuadro 4

Los ejemplos del alemán de Suiza, donde existen construcciones del tipo:

o de la lengua Bambara de Senegal, que contiene sintagmas de estructura:

son dependientes de contexto, pero no afectan al castellano, que es nuestro objetivo.

Se ha argumentado que en oraciones como:

"Pedro y María compraron un piso y un coche respectivamente"

hay un fenómeno que no es elegante describir mediante GCL (requerirían categorías comoSintagmaNominalcon2elementos...). Sin embargo, la gramaticalidad parece más ligada a lasemántica de "respectivamente", más fácil de verificar por el componente semántico:

"sus dos hermanos heredaron la casa y el coche respectivamente"

En castellano, el ordenamiento libre de los sintagmas dará lugar a constituyentesdiscontinuos, cuyos árboles sintácticos deberían tener ramas cruzadas. Dichos árboles no sonposibles si usamos gramáticas de contexto libre, pero cabe la posibilidad de realizar un análisissintagmático (más que sintáctico) laso, que luego la semántica reordenará, ligará... Los hipérbaton

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

Proposición = SNSujetomasculinosingular SintagmaVerbalsingular

SNSujetomasculinosingular=(Determinantemasculinosingular)

(SintagmaAdjetivalPreviomasculinosingular) Nombremasculinosingular (SintagmaAdjetivalPreviomasculinosingular)(SintagmaPreposicional) (OraciónDeRelativo)

SintagmaAdjetivalPreviomasculinosingular=(SintagmaAdverbialPrevioDeGrado)*AdjetivoPreviomasculinosingular

4 Ejemplos de reglas de una gramática con concordancias.

CAPITULO III LOS LENGUAJES FORMALES⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

suelen requerir del oyente una cierta transformación, un posproceso que no todos los hablantes soncapaces de realizar con corrección (depende mucho de su cultura especialmente de la literaria si nosenfrentamos a enunciados de corte poético)19.

III.2.3 Tipo 1

Contienen reglas que se ajustan a:

Permiten que la gramática sea sensible al contexto, y un sintagma pueda sersistemáticamente igual a otro como en el ejemplo ya visto de la lengua Bambara. Obsérvese en lafigura 5 lo complejo de las reglas necesarias

La complejidad de su parsing es exponencial con la longitud de la cadena de entrada (locual es inaceptable con fines de reconocimiento).

Prácticamente no existen referencias bibliográficas sobre este tipo de gramáticas, las demenor éxito de toda la jerarquía.

III.2.4 Tipo 0

Su potencia es la de una máquina de Turing y sus reglas dela forma:

No existe algoritmo que en tiempo finito nos diga si una cadena obedece o no lasreglas de una gramática de reescritura tan generalizada.

19 En inglés son comunes las oraciones de relativo con lapreposición al final en lugar de al principio, más difíciles detratar correctamente.

Install Equation Editor and double-click here to view equation.

S → a S B CS → a b Cb B → b bb C → b cc C → c cC B → C DC D → E DE D → E CE C → B C

5 Gramáticasensible alcontexto.

Install Equation Editor and double-click here to view equation.

CAPITULO III LOS LENGUAJES FORMALES⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Cuando Chomsky formuló sus objeciones a las gramáticas de estructura de sintagma (tipo2), propuso la utilización de reglas de tipo 0 para el reordenamiento, elisión... de elementos. La noexistencia de algoritmo de parsing mostraba que su potencia superaba en mucho a las lenguasnaturales y el formato de las reglas de reescritura se limitó mucho (los clásicos movimientos desintagmas por tematización, interrogación...

CAPITULO 4 : EL MODELO LINGÜÍSTICO⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

CAPITULO IV

EL MODELO LINGÜÍSTICO

IV.1 Presentación

Es tradicional dividir la gramática, o modelo de la lengua, en partes de todos conocidas:

-la fonética: estudio de la estructura material del sonido, de sus propiedades y cualidadesfísicas que nos permiten diferenciarlos, pronunciarlos... Tono, intensidad, timbre, cantidad y lugarde articulación son objeto de estudio para la fonética acústica; lugar y modo de articulación lo sonpara la fonética articulatoria

-la fonología: qué función desempeñan los elementos fónicos y cuál es su capacidad paraformar mensajes y signos diferentes20: cómo se forman las sílabas, cómo remarcamos la intensidaden algunas de ellas (acento real, no ortográfico), en qué consiste la entonación y para qué lausamos...

-la léxico-morfología: estudia las palabras y su forma, abstraídas de cualquier contextotextual

-la sintaxis: describe cómo se combinan entre sí las palabras para formar oraciones

-la semántica: trata de los significados gramaticales, de la interpretación que damos a losenunciados21

-la gramática del discurso: influjos lingüísticos más allá del restrictivo mundo de lasoraciones tradicionalmente considerado por la sintaxis

-la pragmática: cómo influye el contexto extralingüístico (sociedad, cultura...) en lainterpretación de los enunciados

Aunque es evidente que "el establecimiento de niveles es una mera ficción

20Estas dos ramas suelen ser el punto de comienzo decualquier descripción genérica del castellano. (Esbozo[73],Alcina y Blecua[75].

21En el apartado dedicado al concepto de oración diferencia-remos con la máxima claridad posible la oración del enunciado.

CAPITULO 4 : EL MODELO LINGÜÍSTICO⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

metodológica"(Blecua citado en Hernanz[87], pág. 18) y "que no se corresponde con distincionesnaturales" (Saussure, citado en Alcina[75], pág. 132), su simplicidad la hace especialmenteapropiada como punto de partida (tras tantos siglos de preocupación por la lengua parecemoshallarnos todavía saliendo de nuestras marcas hacia una meta de incierta llegada) para ir aislandoproblemas cuya complejidad es suficiente como para no pensar en tratarlos conjuntamente. Losenfoques modulares y los esquemas simplificados han desempeñado un importante papel en lahistoria de la ciencia y de la ingeniería, a los que ahora se une la simulación automática.

La descomposición empleada en esta obra se basará en la más clásica dentro del marcogenerativista22, centrándonos en el subsistema sintáctico por interés del obletivo del proyecto.

Tomamos de Hernanz[87] la 6, que representará el modelo conceptual de lengua queusaremos. Detallemos a continuación el contenido de cada módulo.

IV.2 Componente léxico

Aunque en los textos de lingüística se suele denominar a este módulo lexicón o diccionario,las capacidades léxicas del ser humano sobrepasan ampliamente la función de mero almacén dedatos. Como se ha señalado al caracterizar la lengua natural, el léxico presenta notablesregularidades que no se tienen en cuenta con una simple lista de palabras ( por eso el concepto 22 En Radford[81], al final de cada capítulo, se encuentrala ampliación detallada, para el paradigma transformacional.

����������������������������������������������������������

�� ��

�� componente léxico ��

�� ��

����������������������������������������������������������

��

��

����������������������������������������������������������

�� ��

�� componente sintáctico ��

�� ��

����������������������������������������������������������

�� ��

�� ��

������������������������������������������������������ ����������������������������������������������������������

�� �� �� ��

�� componente fonético �� �� componente semántico ��

�� �� �� ��

������������������������������������������������������ ����������������������������������������������������������

Figure 6 Modelo global de la gramática

CAPITULO 4 : EL MODELO LINGÜÍSTICO⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

actual de diccionario automático no se limita a ser una lista, sino más bien una base de datosrelacional o un autómata basados en morfología...).

Las palabras no son entes simples: se componen de morfemas tanto lexemáticos 23 comocategorizadores24. Si nos basamos en los primeros agrupamos las palabras por familias léxicas (locual es muy importante desde el punto de vista de los significados); si optamos por los segundos,en categorías léxicas. Por ejemplo:

cas-a, cas-erío, cas-ero... pertenecen a una misma familia léxica a la que podemos denotarcon el más sencillo de sus componentes: casa.

Es obvio el estrecho vínculo existente entre éstas palabras que, sin embargo, no impide quesu comportamiento al relacionarse con otras no sea bien distinto: mientras casa o caserío son,según la Gramática Tradicional nombres sustantivos, casero es un adjetivo.

Este carácter estructurado25 que poseen las palabras nos permite que ante una palabranueva como observacionalmente, y mediante la extracción de su lexema observ- (del verboobservar) y sus morfemas -acion- (sustantivador) , -al- (adjetivador) y mente (que convierte a lapalabra en adverbio generalmente de modo), deduzcamos que significa "desde el punto de vistabasado en la observación". También nos permite elidir morfemas flexibles cuando, por redundancia,su información es recuperable. En:

"El príncipe lloró amarga y desconsoladamente"

la coordinación copulativa de dos adverbios de similar morfología categorizadora nos permiteomitir, por razones estéticas normalizadas, el morfema -mente que acompañaría a amarga.

Sin embargo, y a pesar de la potencia del lenguaje humano a la hora de componer omodificar morfemas para formar palabras, un elemento irregularizador, la norma y la costumbre,hace que el adverbio más común derivado de observar sea observ-ador-a-mente. Quizás sólo losque conozcan la existencia de la adecuación observ-acion-al encontrarán fácilmente el sentido deobservacionalmente. Los demás la considerarán una palabra extraña, propia de un alterador de la

23Los lexemas o raíces son las partes invariantes de unafamilia,aquellas que llevan consigo el núcleo del significado.-Pueden ser simples (am- de la familia del verbo amar) o compues-tos (pasamanos),y una misma familia,por razones de evoluciónhistórica de la lengua, puede ser caracterizada por más de unesquema (el verbo s-er pertenece a una familia que además de s-posee los lexemas fu- y sie-).Para una mejor introducción,consultar el capítulo 2.1 del Esbozo[73].

24Los morfemas flexivos son los responsables de comunicarnoslos rasgos propios de la palabra:su categoría (puede serambigua) ,género,número,persona,tiempo...

25La escuela del estructuralismo surgió dentro de lalingüística al tomar al morfema como unidad principal poroposición a la palabra.

CAPITULO 4 : EL MODELO LINGÜÍSTICO⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

norma.

Dado que la elaboración de un módulo léxico está siendo abordada ya por otro equipo delDepartamento (aunque no se halla todavía disponible), no hemos gastado tiempo en la misma labor,y en nuestro sistema lo redujimos a una simple lista de palabras (fácilmente almacenable en disco oen memoria de un modo eficiente), concentrándonos en el módulo central: el sintáctico26.

IV.3. Componente sintáctico

La Sintaxis, del griego "συνταξις", que significa ordenamiento, estudia cómo se combinany distribuyen las piezas léxicas para formar enunciados pertenecientes a la lengua.

Está claro que secuencias de piezas léxicas que el sistema de la lengua cataloga como malformadas. "el madre comió niño helado de su el " posee las mismas palabras que "el niño comió elhelado de su madre", y mientras la segunda nos resulta perfectamente comprensible a todos loscastellano-parlantes, la primera carece de una mínima organización lógica27.

Ligeras variaciones del orden de una oración correcta como la anterior nos hacen ver quelas palabras forman grupos relativamente ligados y que, caso de poder moverse, lo harán juntas.Así, su acompañará a madre en todos sus movimientos y "de su madre el niño comió el helado" esaceptable (aunque retórica) pero no "el niño comió el helado de madre su". Es fácil extraer comoconstituyentes de la oración: el niño, comió, el helado y de su madre.

Sin embargo, estos constituyentes tampoco son totalmente independientes: "el heladocomió el niño de su madre" no significa lo mismo que la original y "de su madre comió el niño elhelado" es agramatical28 aunque comprensible con un poco de buena intención. La sintaxis debedesvelar cómo se forman los constituyentes y cuáles son las relaciones existentes entre ellos. Elmodo usual de representarlo son los diagramas arbóreos.

Más justificaciones al empleo de análisis jerárquico podrían ser:

-el fenómeno de las concordancias también está regido por criterios de estructura: el y niñoposeen el mismo género y número y la variación de sólo uno de ellos da lugar a agramaticalidad; elniño concuerda en la persona con el verbo "comió"...

26En los capítulos de conclusiones y futuras líneas deinvestigación se volverá sobre las limitaciones de esta opción.

27Si no fuera así, la sintaxis tendría una única regla deformación de predicados:oración será cualquier secuencia depiezas léxicas en orden y número indeterminados.

28El ejemplo escogido muestra la libertad de orden deconstituyentes que caracteriza al castellano,sólo limitada pormarcos de subcategorización como los que ligan al verbo con sucomplemento directo,la rección prepositiva...

CAPITULO 4 : EL MODELO LINGÜÍSTICO⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

-la conversión de una oración enunciativa a interrogativa con sustitución de unconstituyente por un pronombre interrogativo no es razonable si no observamos el árbol sintáctico."¿Quién comió el helado de su madre?", es correcta; "¿Quién el niño comió el helado?", no (de sumadre está ligado a el helado y para ser pronominalizado es necesario transformar la frase: "¿Dequién era el helado que comió el niño?").

-la entonación y el pausado dependen, como ya hemos visto, de la estructura deconstituyentes (aunque también de la cultura, intenciones, estado anímico... del hablante).Segmentar correctamente una oración en sintagmas permitiría pausar frases como:

"cuando llegamos a casa | te vi salir"

"posaba el terciopelo de sus patas | en dos simétricos remiendos de tela nueva"

donde los fenómenos de la subordinación oracional y la subcategorización verbal, sonimprescindibles para comprenderlo.

-La distinción entre la aposición entre comas y la enumeración separada por comas,necesita de información sobre relaciones, a menudo lejanas, en el interior de la oración:

"sus cuadros, todo lo suyo me suele gustar, no parecen comprados por ellos"

frente a:"sus cuadros, todo lo suyo y de su marido me suele gustar"

-La coordinación puede darse en el nivel sintagmático:"compró un piso y una casa"

o en el oracional:"compró un piso y vendió su casa"

siendo diferente la entonación en ambos casos.

-Los paralelismos coordinados :"lleno de luz y esperanza, de humildad y devoción"

no admiten un tratamiento sintáctico local, pues pueden implicar influencias remotas.

-El vocativo:"señorita, no se puede"

"no llores, Babs, todo eso no es verdad"

no puede ser entonado como una enumeración o una aposición típicas.

-La interrogativas totales y parciales poseen sus implicaciones sintácticas:"¿quien vive con vosotros?"

CAPITULO 4 : EL MODELO LINGÜÍSTICO⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

frente a:"¿quien vive con vosotros os dijo eso?"

donde un sencillo error de escritura (supresión de una tilde) provoca la indiferenciación si no seanaliza globalmente la frase.

Por supuesto, existen algunos fenómenos jerárquicos que requerirían árboles con unaestructura más libre o más general: ramas cruzadas, correferencias entre elementos... Lasdificultades para su análisis automatizado nos harán excluirlos29.

IV.4 Componente fonológico

La conversión de los sonidos en fonemas es seguramente el módulo más desarrollado denuestro modelo. No obstante, las muchas técnicas empleadas adolecen de falta de "humanidad". Ennuestra capacidad de entender sonidos no empleamos sólo un modelo acústico-fonético de lalengua30, sino también uno sintáctico-semántico: al ir escuchando y reconociendo fonemas,morfemas... predecimos automáticamente qué nos podemos encontrar a continuación. Alencontrarnos con algo incoherente, volvemos sobre lo escuchado e intentamos corregir nuestratranscripción fonética (formulando palabras hipótesis en cierto modo) que nos hagan coherente elenunciado o la pregunta.

IV.5 Componente semántico

Busca describir el contenido literal (gramatical, independiente del contexto extralingüístico)de la oración.

Relacionados con la semántica están dos de los puntos más conflictivos de nuestroplanteamiento: la autonomía de la sintaxis respecto a la semántica y la de ésta respecto a lapragmática.

Aislar la sintaxis de la semántica podría parecer simple (según Chomsky, su más ardorosodefensor, es una hipótesis de trabajo básica para adentrarnos en la organización de la lengua). La

29Más información en el capítulo de líneas futuras.

30Aunque en el aprendizaje de una segunda lengua influyemucho el grado de maduración del cerebro (los niños,con elcerebro más virgen,encuentran mucho más fácil esta tarea),asícomo las interferencias de la lengua materna,todos hemosexperimentado al aprender otro idioma lo que facilita lacomprensión el hallarse situado en un contexto,predecir la líneasintáctica y semántica que va a seguir el discurso...Lapredisposición a escuchar algo agudiza nuestra capacidad deacierto si nuestras previsiones se cumplen.

CAPITULO 4 : EL MODELO LINGÜÍSTICO⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Sintaxis buscaría la estructura formal de la oración debida a la categorización o tipado de suselementos; la semántico interpretaría esa estructura a la luz de los significados de los mismos. Lasintaxis sería capaz de hallar una estructura a la oración "sabía que Mª estaba enferma, pero no eraverdad" ( la misma que la de "creía que Mª estaba enferma, pero no era verdad"); sin embargo, setrata de una oración absurda, como muy lógicamente detectaría una buena semántica.

Los límites se pueden hacer difusos al analizar la serie siguiente:

1) Mi tío opina que soy un gran cocinero2) Mi gato opina que soy un gran cocinero3) Mi nacimiento opina que soy un gran cocinero4) Mi desde opina que soy un gran cocinero

La oración nº1 no presenta problemas, y todos coincideremos en que es sintáctica ysemánticamemte bien formada (aunque podría ser falsa en la realidad).

Una sintaxis integrada con semántica consideraría anómalo el segundo enunciado, ya que elverbo opina exigiría a su sujeto la presencia del rasgo [+HUMANO] del cual carece mi gato. Sinembargo, la oración cobraría pleno sentido en un contexto de cuento fantástico. ¿Puede sersemánticamente correcta sin serlo previamente en el plano sintáctico? Juzgamos que no: la oracióntiene sentido sintáctico, si al verbo en torno al cual gira somos capaz de asignarle un sujeto ("migato") y un complemento directo ("que soy un gran cocinero"), con lo que ve saciadas susnecesidades sintácticas.

Para la tercera no soy capaz de hallar contexto en el que resulte aceptable. Aunque pasaríael filtro sintáctico, sería semánticamente mal formada si no tenemos en cuenta el contexto.

Por fin, la última oración no pasaría la verificación sintáctica usando cualquier gramáticacomún del castellano.

La confusión entre semántica y pragmática se pone ya de relieve en la segunda oración dela serie anterior: ¿Es un hecho lingüístico la deducción de que nos encontramos en un ambiente decuento, con las implicaciones que ello conlleva? ¿No es algo netamente influido por la cultura...?No serían pocos los que catalogarían, despectivamente, el texto de un cuento así comoperteneciente a la literatura infantil (luego absurda y poco útil en el estudio de la comunicaciónhumana).

Igual que al hablar de fonología hemos destacado cómo la sintaxis condiciona, hasta ciertopunto, lo que esperamos oír, un módulo superior semántico-pragmático podría deducir informaciónde un enunciado sintácticamente erróneo: inducir palabras no escuchadas, desconocidas,estructuras sintácticas de moda... El modelado de fenómenos tan relacionados con la inteligenciahumana deberían por ahora obligar a una hipotética máquina dialogante a interrogarnos acerca delo que acabamos de decir (algo, por cierto, habitual al hablar dos o más personas).

Reseñar, como colofón, que entre los distintos enfoques dados a la semántica se hallan: elque pretende emplear de la lógica de predicados, el funcional (el verbo sería el predicado queselecciona a los demás elementos: sus argumentos), el generativista...

CAPITULO 4 : EL MODELO LINGÜÍSTICO⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

IV.6 Esquema orientado al reconocimiento

El esquema lingüístico anteriormente presentado es generativo, y no se adapta al problemadel reconocimiento, que es el objetivo último de nuestro trabajo.

Ya sabemos que al reconocer poseemos una secuencia sonora de la cual deseamos saber, sies que existe, su transcripción grafémica. Para esta labor disponemos de la información fonológicaque nos permitirá pasar los fonemas a grafemas (se producirán inserciones, sustituciones yborrados). Estos grafemas será preciso unirlos para formar palabras: deberemos consultar eldiccionario léxico (en este nivel comenzarán a aparecer ambigüedades). Un módulo sintácticodeberá discriminar qué secuencias de palabras son gramaticales y cuales no. Finalmente lasemántica interpretará lo dicho. Nuestro esquema secuencial simplificado será el de la 13.

Entre todos los niveles debería ser posible realimentar información al anterior y que éste lapropague hasta el más bajo, pero la opción elegida suele ser que el módulo inferior sea lo

��������������������������������������������������������

�� �� �� componente semántico ��

�� ��

��������������������������������������������������������

��

�� ��������������������������������������������������������

�� ��

�� componente sintáctico ��

�� ��

��������������������������������������������������������

��

��

��������������������������������������������������������

�� ��

�� componente léxico ��

�� ��

��������������������������������������������������������

��

��

��������������������������������������������������������

�� ��

�� componente fonético ��

�� ��

��������������������������������������������������������

Figure 7 Esquema simple de reconocimiento.

CAPITULO 4 : EL MODELO LINGÜÍSTICO⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

suficientemente laxo como para aceptar todas las posibilidades (asignándoles una ciertaprobabilidad de ocurrencia por él estimada) y permitir que sea su superior quien, manejando unmodelo más completo de la lengua, decida31. Como ya mencionamos al hablar del componentefonológico, llegados arriba y sin posibilidad de interpretar lo enunciado, sólo nos queda rogar unarepetición de lo dicho, una aclaración a un término...

31 En los sistemas de dictado automáticos como eldesarrollado para el Inserso (Macías[92]) el módulo sonido-fonema trata de encontrar todos los posibles fonemas presentesen la secuencia sonora y que un módulo posterior de acceso a undiccionario discrimine las palabras posibles que ,finalmente,unmódulo sintáctico tratarían de combinar formando oraciones(Smaïli [90]).

CAPITULO V : COMPILACIÓN DE DICCIONARIOS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

CAPITULO V

COMPILACIÓN DE DICCIONARIOS

V.1 Presentación

Los diccionarios forman parte, de algún u otro modo, de la mayoría de los sistemas dereconocimiento y síntesis de habla, de procesamiento de textos de lengua natural...

Un reconocedor basado en alófonos tendrá, por ejemplo, al menos dos diccionariosimplícitos o explícitos: el de los alófonos que debe detectar, pequeño y muy ligado al algoritmo dereconocimiento, y el lexicón de palabras que permitirá extraer éstas de la secuencia, matriz o celosíade unidades aceptadas.

Para vocabularios pequeños y determinados, si nuestro algoritmo de reconocimientopermite el guiado sintáctico, la información sobre qué cadenas de alófonos son posibles permitiríalimita considerablemente el espacio de búsqueda: reconocer una cierta unidad fónica reduce elnúmero de posibles sucesoras (Niemann[86], Antoniol[89], Fissore[89]). La perplejidad media(cuantas unidades pueden suceder a una dada) tenderá a 1 en vocabularios no muy amplios.

Nuestro entorno de análisis sintáctico de oraciones escritas también precisa de acceso alléxico. Dado un texto debemos leerlo carácter a carácter, segmentarlo en unidades queconsideremos como las mínimas significativas (palabras, o quizá, morfemas), extraer del diccionariola información que sobre ellas dispongamos y, finalmente, realizar el análisis propiamente dicho.

V.2 Acceso secuencial

La forma más sencilla de guardar y acceder a un diccionario es la secuencial ordenada.Guardamos en memoria o en disco cada una de las palabras en un orden determinado y, sinecesitamos la información característica de una de ellas,la buscamos ordenadamente.

Aunque la utilización de índices (punteros a la zona de las palabras que empiezan por undeterminado carácter o por una secuencia de caracteres) puede acelerar el proceso de búsqueda (especialmente si el almacenamiento se realiza en disco magnético), se desperdicia mucho espaciodebido a las redundancias del vocabulario: numerosas palabras comienzan o terminan con la mismacadena de signos...

V.3 Compilación en forma de autómata

CAPITULO V : COMPILACIÓN DE DICCIONARIOS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Todo vocabulario de cardinal finito, como ya hemos señalado al hablar de los lenguajesformales, puede ser descrito unívocamente en términos de una gramática tipo 3 ó regular.

Los símbolos terminales de la gramática serían las unidades básicas de las palabras delvocabulario : alófonos, fonemas, grafemas, morfemas... El axioma será en nuestro caso la palabra, ylos símbolos no terminales carecerán, por lo general, de significación intencionada ( un conjunto decaracteres podría corresponderse con un símbolo no terminal y con un morfema de nuestrolenguaje, pero no por nuestra voluntad expresa).

Las reglas gramaticales tendrían la forma siguiente:

⋅⋅

El autómata presenta dos ventajas:

-puede aprovechar las redundancias del vocabulario para reducir el espacio que nosocupa a la hora de almacenarlo, en memoria especialmente

-el tiempo que tarda en reconocer una cadena de entrada es independiente deltamaño del diccionario y lineal respecto a la longitud de la secuencia

Un modo trivial de compilar el lexicón en forma de autómata finito sería convertir cadaunidad de una palabra en un estado diferente y encadenarlos de acuerdo con la regla que describedicha palabra32. Los autómatas por palabras así conseguidos, serían individualmente deterministas,aunque globalmente indeterministas. Si los sumamos todos ( hacemos comunes sus estados inicial yfinal), será normal que al estado inicial le sucedan varios estados con igual símbolo en su ramaintermedia. El algoritmo de conversión de AFN33 a AFD34 queda reducido, por el carácter arbóreode nuestro autómata, a la fusión en las cabeceras de palabra de los estados equivalentes: aquellosque tienen igual predecesor e igual símbolo.

32La notación que emplearemos de ahora en adelante paranombrar los estados del autómata se componen del signo asociadoal mismo (un fonema,una letra...) y un subíndice que se asignarásecuencialmente a todos los estados de igual símbolo.

33Autómata Finito Indeterminado,en la bibliografía inglesaNFA.

34Autómata Finito Determinado,en inglés DFA.

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

CAPITULO V : COMPILACIÓN DE DICCIONARIOS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Obsérvese como usando un vocabulario común ordenado se obtiene una importantereducción en el número de estados presentes en el autómata.

Similar operación podría ser realizada con los finales de palabra (las "colas"), peroperderíamos la morfología en árbol, y algunos algoritmos de reconocimiento de voz admiten sóloeste tipo de estructuras para su guiado: la eliminación o no aceptación de un estado supone lainmediata exclusión de sus sucesores en el árbol35.

Como en castellano los lexemas o prefijos+lexemas suelen tener mayor longitud que lossufijos terminales, la fusión de "colas" será menos eficiente que la de cabeceras.

Si permitiésemos que una unidad fuese unificada como cola y como cabecera de unapalabra, el autómata podría aceptar palabras no pertenecientes a nuestrovocabulario. El pequeño vocabulario siguiente:

35 Esta poda o "prunning"se denomina también "beam search":la búsqueda se reduce a uno o varios haces de estados.

��������������

�������������������� 3 ��������������������������������������������

�� �������������� ��

�� ��

�������������� ��

������������������ 1 �� ��

�� �������������� ��

�� �� ��

�� �� �������������� ��

�� �������������������� 2 ��������������������������������������������

�� �������������� ��

�� ��

�������������� ��������������

�� ini �� �� fin ��

�������������� ��������������

�� ��

�� �������������� �������������� �������������� ��

������������������ 4 �������������� 1 �������������� 2 ��������������������

�� �������������� �������������� �������������� ��

�� ��

�� �������������� �������������� �������������� ��

������������������ 5 �������������� 1 �������������� 3 ��������������������

�������������� �������������� �������������� Ilustr. 8Ejemplo de unificación de cabeceras de palabra.

CAPITULO V : COMPILACIÓN DE DICCIONARIOS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

cuyo autómata contiene, además de las anteriores palabras, otras dos: "5 1 2" y "4 1 3".

Otro error que podría surgir sería la aparición de ciclos. El vocabulario:

se podría convertir, tras la unificación de cabeceras, en:

y en:

tras la unificación de colas.

El autómata resultante (9) sería:

en vez del correcto:

La fusión ordenada presenta 2 opciones combinables:

-operar palabra a palabra, o globalmente con todo el vocabulario-unificar primero las colas y luego las cabeceras, o primero las cabeceras

Partiendo del mini-diccionario:

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

��������������������������

�� �� �������������� �������������� �������������� �������������� ��������������

�� ini �������������� 115 �������������� 17 �������������� 115 �������������� fin ��

�������������� �������������� �������������� �������������� ��������������

Ilustr. 9 Autómata tras errónea unificación de colas y cabeceras.

CAPITULO V : COMPILACIÓN DE DICCIONARIOS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

si operamos globalmente y unificamos primero las cabeceras, obtendremos:

y, al unificar las colas, queda:

En cambio, al realizar las operaciones también globalmente pero en orden inverso, primerocolas y luego cabeceras, el resultado es más eficiente:

La mayor o menor redundancia entre colas o cabeceras hace que se reduzca más o menosel número de estados. Sin embargo, la unificación de las colas primero puede dar lugar a autómatasno deterministas como:

donde al hallarnos en 5 sub 0 y recibir un 1 no sabríamos si ir a 1 sub 0 o a 1 sub 1.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

CAPITULO V : COMPILACIÓN DE DICCIONARIOS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Si operamos palabra a palabra, primero las cabeceras y luego las colas, los cuatro pasosserán:

Al variar el orden de las palabras, obtendremos:

Trabajando palabra a palabra también influye qué unificamos primero, si colas o cabeceras.Si empezamos por las cabeceras:

y si por los finales:

Pero aunque el método de unificación de colas y cabeceras no nos da un número de estadosmínimo, si nos garantiza que conforme vamos reconociendo la cadena de entrada podamos saberqué palabra es la reconocida, sin necesidad de posproceso (buscar en otro diccionario). Cadapalabra está caracterizada por la presencia de una secuencia de dos estados: el último estado de sumáxima cabecera de unificación (el estado inicial es por defecto) y el siguiente (puede ser el estadofinal si ha habido fusión de cabeceras en esa palabra). En nuestro primer ejemplo con los números,la secuencias características son

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

CAPITULO V : COMPILACIÓN DE DICCIONARIOS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

V.3.1 Independencia del orden de operaciones

Las diferencias debidas al orden en el que unifiquemos sólo se producen cuando laspalabras contienen unidades que se pueden fundir simultáneamente como cabeceras y como colas.

Comparando :

y

donde la primera ha unificado antes las cabeceras, vemos que el estado 5 sub 0 posee dospredecesores y un solo sucesor, cuando podría tener uno de cada, reduciéndose el número total deestados.

Una regla iterativa podría ser:

-si el cardinal del conjunto de los estados que están asociados al símbolo 'I' es mayor que elnúmero de estados que los preceden o mayor que el número de estados que los suceden,podríamos igualar dicho cardinal al menor de los cardinales de los sucesores y los predecesores(10).

El problema de permitir reducir el número de estados en función de sus sucesores es queexiste la posibilidad de indeterminación. El ya visto:

pasaría a ser:

donde se elimina un estado asociado al símbolo 1 (ya que sólo poseía dos sucesores), pero se creauna indeterminación en el estado 5 sub 0.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

CAPITULO V : COMPILACIÓN DE DICCIONARIOS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Otra regla iterativa muy lógica nos dice que si dos estados del mismo símbolo36 poseen elmismo conjunto de predecesores o sucesores, deben ser equivalentes. Esta fusión de dos estados enuno no provoca indeterminación: si previamente dos estados de un mismo símbolo no tienen unestado común predecesor, al unirse debido a la igualdad de sucesores, tampoco sucederá (XXXX).

Volviendo al ejemplo anterior y aplicando la última regla:

Se han fundido en uno los estados 1 sub 0 y 1 sub 2,quedando intacto el 1 sub 2.

36 Dos estados de diferente símbolo asociado nunca podránser equivalentes,ya que para llegar a ellos se llegará por mediode símbolos de entrada diferentes.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

CAPITULO V : COMPILACIÓN DE DICCIONARIOS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

¡Error!Nombre de archivo no especificado.Ilustr. 10 Primera regla iterativa.

CAPITULO V : COMPILACIÓN DE DICCIONARIOS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Un problema que surge de la aplicación de estas reglas es la pérdida de la informaciónsobre qué palabra hemos reconocido: no hay una secuencia de dos estados que caracterice a cadapalabra. Por ejemplo la primera contiene las subcadenas: EstadoInicial+ 1 sub 0, 1 sub 0+ 2 sub 0,2 sub 0+EstadoFinal, que son compartidas con otras. Ampliar el número de estados necesarios paracaracterizar nos llevaría a la realización de un vocabulario paralelo (con la pérdida de la eficienciaen la memoria ocupada) pues siempre es posible encontrar un ejemplo que necesite más estadospara caracterizar sus palabras:

'Completamente' se caracteriza por una secuencia de cinco estados:

La necesidad de consultar un diccionario en disco retrasará la finalización delreconocimiento.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

CAPITULO V : COMPILACIÓN DE DICCIONARIOS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

¡Error!Nombre de archivo no especificado.Ilustr. 11 El algoritmo de reducción de número de estados.¡Error!Nombre de archivo no especificado.Ilustr. 12 Segunda regla iterativa.

CAPITULO V : COMPILACIÓN DE DICCIONARIOS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

V.3.2 La suma de gramáticas

Cuando se desarrolla un sistema de reconocimiento de vocabulario finito, se debe dar alpropietario la posibilidad de ampliar y redefinir el vocabulario dentro de las limitaciones dememoria...

Una pequeña ampliación no debería suponer la adición de las nuevas palabras al diccionarioy volver a aplicarle a todo ello el algoritmo de reducción (la complejidad del algoritmo esdependiente de la longitud del vocabulario): debemos guardar en un fichero los resultados delalgoritmo sobre el léxico original (la secuencia de estados, símbolo y subíndice, que componen cadapalabra), para así poder recuperarlos a la hora de ampliar, añadirle las nuevas palabras con nuevosestados, y aplicar el algoritmo sobre una base ya bastante optimizada.

V.3.3 Eficiencia de compilación

La capacidad para compactar vocabularios depende totalmente de las redundanciascontenidas en ellos.

Para un vocabulario poco redundante como los dígitos del cero al nueve la disminución novale la pena. Estos casos (que llamaríamos lexemáticos) tienen gran variedad de lexemas y apenasmorfemas.

Una mejor medida nos la dará un diccionario castellano de cierto tamaño. Usando lamáxima reducción:

número de palabras número total dealófonos

número total de estados tamaño de tabla delautómata

perplejidad del autómata reducción

440 3083 811 1258 1,5388 3,8015

628 4383 1138 1763 1,5094 3,8515

1004 6893 1577 2578 1,6347 4,3710

Usando al unificación de colas y cabeceras:

CAPITULO V : COMPILACIÓN DE DICCIONARIOS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

número de palabras número total dealófonos

número total de estados

tamaño de la tabla delautómata

perpleji-dad del autómata reducción

440 3083 812 1250 1,5394 3,7968

628 4383 1139 1765 1,5496 3,8481

1004 6893 1578 2580 1,6350 4,3682

Compilando en forma de árbol:

numero de palabras número total dealófonos

número total de estados tamaño de la tabladel autómata

perplejidad del autómata reducción

440 3083 1418 1856 1,3089 2,1742

628 4383 2063 2689 1,3034 2,1246

1004 6893 3163 4165 1,3168 2,1793

Usando un vocabulario mayor y unificación sólo de cabeceras:número de palabras número total de

alófonosnúmero total de estados

tamaño de la tabla delautómata

perplejidad del autómata reducción

499 4448 1834 2330 1,2704 2,4253

994 8913 3703 4696 1,2682 2,4070

1988 17239 7331 9226 1,2619 2,3515

Compilando colas y cabeceras:numero de palabras número total de

alófonosnúmero total de estados tamaño de la tabla

del autómataperplejidad del autómata reducción

499 4448 938 1436 1,5309 5,0441

994 8913 1767 2760 1,5620 5,0441

1988 17239 3222 5209 1,6167 5,3504

La tabla de reconocimiento ha sido también linealizada, reduciéndose su dimensión (pasa deser igual al número de estados por el número de símbolos a ser el número de estados por laperplejidad) a costa de incrementar algo el tiempo de reconocimiento (pasa de ser proporcional a lalongitud de la cadena de entrada a ser proporcional a la misma por la perplejidad).

De las gráficas deducimos que:

-la unificación de colas y cabeceras es casi tan efectiva reduciendo como la optimizada

-si el vocabulario es muy homogéneo (muchas palabras comenzando por el mismoalófono), ampliarlo puede suponer una reducción de eficiencia en el caso de buscar un árbol

-si se unifican también cabeceras, al ampliar el vocabulario se amplian las posibles cabecerascomunes y mejora la reducción.

CAPITULO V : COMPILACIÓN DE DICCIONARIOS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

V.4 Utilización de léxicos en presencia de ruido

Si las palabras que debemos reconocer se hallan corrompidas por inserciones, sustitucionesy borrados, los autómatas anteriormente generados no son directamente utilizables.

En Ascension[93] y Macias[92], se pueden encontrar ejemplos de dos alternativas alproblema que usan los autómatas presentados en este capítulo.

V.5 Programas empleados

Para la obtención de los resultados anteriores, y principalmente para su uso en sistemas quenecesiten guiado o acceso léxico dentro del Departamento, hemos implementado los diversosalgoritmos en C:

-obtención del autómata en forma de árbol usando la memoria (lo que supone limitarse apoco más de dos mil palabras ) o el disco (permitiendo así compilar decenas de miles de palabras, acosta de una lentitud exponencialmente mayor)

-unificación de colas y cabeceras con similares limitaciones en cuanto al número de palabraspara memoria y disco

-autómata reducido (sólo en memoria, dado su escaso interés)

Como entrada esperan recibir un fichero .LIS que contenga en cada línea:

Los ficheros disponibles tras la ejecución serán:

-.TAB: cada línea contiene los estados a los que se puede saltar desde el que tiene el mismonúmero que la línea.

-.EST: cada línea es un estado, con su número de símbolo y subíndice diferenciador.

-.EX1: contiene pares [número de palabra, símbolo siguiente] que caracterizan, junto a lainformación de estado, a cada una de las palabras.

-.EX2: si no tomamos al estado final de cada palabra como caracterizador, contiene dosnúmeros que indican la posiciones mínima y máxima de las zonas de .EX1 asociadas al estado cuyonúmero coincide con el número de línea de .EX2.

-.REN: convierte la "numeración en amplitud" en "numeración en profundidad".

-.ALF: dada la numeración en anchura, nos indica en qué posición de la tabla de

Install Equation Editor and double-click here to view equation.

CAPITULO V : COMPILACIÓN DE DICCIONARIOS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

reconocimiento se encuentra el estado correspondiente a una posición de alófono en palabracoincidente con el número de línea.

-.DIC: cada línea será una palabra del vocabulario reconocible.

V.5.1. Implementación en PC

Las limitaciones de memoria disponible en los PC nos obligaron a ampliar el algoritmopropuesto.

Para el caso de generación de un árbol, dividimos el vocabulario original en sub-vocabularios independientes (palabras cuyo alófono inicial difiera aparecían en sublistas distintas) ono (para vocabularios de decenas de miles de palabras cada subvocabulario contendría palabras conlos dos primeros alófonos iguales) y los compilamos por separado. A la hora de mezclar losficheros resultantes, los ficheros .EST los encadenaremos eliminando los estados INICIAL yFINAL de los subárboles intermedios; para el .DIC, simplemente los escribiremos secuencialmente;el .EX1 precisa de actualizar los valores de los números de estado partículares al caso general,realizándose la misma operación con el número de palabra; finalmente, el .TAB requiere una líneainicial que sea la suma reordenada de todas las línea iniciales, copiándose las demás conactualización de números de estados acorde con el fichero creado .EST.

El autómata por unificación de cabeceras y finales de palabras necesita de una dobleoperación como la anterior: tras la subdivisión y compilación, mezclaremos los subficheros enformato:

palabra Estado_0 ... Estado_N

los invertiremos para dar lugar a:

palabra Estado_N ... Estado_0

los subdividiremos de nuevo, unificaremos sus cabeceras invertidas. Tras volver a invertir,subdividiremos de nuevo, generaremos los ficheros resultado para los subvocabularios ymezclaremos como antes.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

CAPITULO VI

ANÁLISIS SINTÁCTICO DE GRAMÁTICAS DECONTEXTO LIBRE

VI.1 Presentación

Frente a la simplicidad del reconocimiento de lenguajes regulares mediante autómatas,donde la única variación consiste en construir un autómata como la unión de muchos otrossubautómatas, el "parsing" (reconocimiento de que una cadena pertenece a un lenguaje) admite másposibilidades al usarse gramáticas de contexto libre.

La forma más inmediata consiste en convertir cada regla sintáctica en un procedimiento ofunción. La parte izquierda de la regla da nombre a dicha función y la derecha nos indica quéprocedimientos y en qué secuencia debemos llamarlo para verificar la aplicabilidad de la regla.Como los símbolo terminales no tienen procedimiento asociado, al encontrarnos unocomprobaremos si coincide con el símbolo que actualmente estábamos esperando reconocer. Deser así, avanzaremos al símbolo siguiente y proseguiremos el análisis hasta poder devolver uncódigo de aceptación; en el caso de haber diferido, intentaremos aplicar otra regla que, por tener elmismo símbolo no terminal a laizquierda, estará integrada en la misma función. Si no existieran másreglas o no fuesen aplicables, devolveremos a la función que nos llamó un código de error.

En cualquier lenguaje de programación moderno37 es fácil diseñar así un compilador decompiladores (un programa que genera un programa que reconoce cadenas acordes con unagramática dada), pero:

-la complejidad, debida al retroceso causado por los errores, es en general exponencial conla longitud en caracteres de la cadena de entrada

-la posibilidad de tener que generar diversos análisis para una misma frase multiplica aúnmás la lentitud del "parsing"

- el ordenamiento de las reglas influye en los resultados: las reglas recursivas a izquierdasdeben ser las últimas en ser usadas a la hora de comparar patrones para evitar los bucles infinitos, obien, debemos limitar la profundidad de recursión, método siempre arriesgado, conflictivo y untanto arbitrario.

37 En Prolog (Pereira[87]) es especialmente fácil,aunque esmás difícil su integración con otros programas escritos en otroslenguajes.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Entre las ventajas destaca lo directo que es añadir rasgos al "parsing", ya que no serán sinoparámetros de las llamadas a las distintas funciones.

Este procedimiento descendente tiene su versión ascendente: para cada símbolo terminal osecuencia de símbolos terminales intentamos encontrar un símbolo no terminal que permitagenerarlos. Estos símbolos no terminales son sometidos a un similar proceso ascendente hastapoder alcanzar el axioma.

Su complejidad es similar y además no es predictivo, por lo que dificultaría la labor deguiado del reconocimiento léxico. Aún así existe algún artículo marginal donde se ha empleadopara extraer las oraciones gramaticalmente correctas contenidas en una celosía de palabrasalineadas (Miller[88]).

Los requerimientos de velocidad de análisis de los compiladores dieron lugar a algoritmosque sólo podían ser usados con gramáticas que podríamos clasificar como de tipo 2'5 de lajerarquía de Chomsky, a medio camino entre las regulares y las de contexto libre.

Un procedimiento descendente así hallado fue el LL(k), que genera una tabla, similar a lade descripción de un autómata, que permite reconocer en tiempo O(n)38.

Las gramáticas LL(1), las más comunes, son insuficientemente potentes para tratar ellenguaje natural (ver Sanchís[88],cap. 7 y su referencia a Knuth para más detalles):

-dado un símbolo de entrada en una determinada posición, debe existir un solo caminogramatical que lo conecte con el axioma.

-no existe ni existirá algoritmo que transforme una gramática cualquiera a gramática LL(1)

- la existencia de ambigüedades ralentizaría notablemente el parsing

Sin embargo, dada su sencillez, podría ser útil en lenguajes de comandos sencillos, concaracterísticas de notación prefija. Por ejemplo la gramática BNF prefija es LL(1): existen unosprefijos que nos indican qué tipo de frase estamos analizando

VI.2 Análisis LR(1)

Su utilización en la bibliografía de reconocimiento de voz, masiva a partir de que enTomita[86a] se ampliara el algoritmo original para permitir gramáticas ambiguas, lo hacemerecedor de un análisis en detalle.

Como LL(1), utiliza una tabla de reconocimiento precompilada que guía su característico

38 Seguimos la clásica notación en O mayúscula para denotarel comportamiento medio del algoritmo al variar la longitud dela cadena que reconocer.Ver Natural Languajes Readings[].

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

autómata con pila. Dada la existencia de generadores automáticos de estas tablas fácilmentedisponibles (YACC para máquinas UNIX, Bisón para PC...), no detallaremos el algoritmo que laproduce. En Aho[72] se describen varios, de potencia descriptiva creciente y en Tomita[86b] seencuentra el código en LISP para generar las LALR(1).

VI.2.1 Tablas LALR(1) ampliadas

Las gramáticas que no sean LR(1), aunque sean de contexto libre, darán lugar a tablas dereconocimiento tablas ambiguas, con varias entradas por casilla.

Tomamos un ejemplo de Tomita[86b] por su tamaño:estado det sust verb prep $ SN SP SV O

0 sh3 sh4 2 1

1 sh6 acc 5

2 sh7 sh6 9 8

3 sh10

4 re3 re3 re3

5 re2 re2

6 sh3 sh4 11

7 sh3 sh4 12

8 re1 re1

9 re5 re5 re5

10 re4 re4 re4

11 re6 re6,sh6 re6 9

12 re7,sh6 re7 9

que parte de las reglas gramaticales:

claramente simples, con apenas 2conflictos.

Usando gramáticas elaboradaspor nosotros incrementalmente losresultados son inquietantes:

fichero nº reglas estados sh/red red/red

gsimpl2 32 44 22 0

gsimpl3 90 106 254 237

gsimpl5 245 339 606 625

O -> SN SVO -> O SPSN -> (det) sustSN -> SN SPSP -> prep SNSV -> verb SN

6 Ejemplo de reglas.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

gsimpl6 251 346 605 625

Al intentar usar la gramática g1.gra con más de quinientas reglas, bison se quedó sinmemoria en el PC.

Dado que :

-deseábamos realizar un entorno propio para PC,

-que no plantee ningún problema a la hora de escribir las reglas (en todo caso que se puedasolucionar la optimización con herramientas automáticas),

-que la velocidad es una cuestión relativa si otros algoritmos (como muestra la bibliografía)son paralelizables e integrables VLSI...

decidimos no optar por este algoritmo muy usado por los investigadores del grupo de CarnegieMellon (CMU).

VI.3 ATNs

Muy populares en su tiempo, las Redes de Transición Aumentadas surgieron al añadir a lasRTN registros auxiliares y acciones asociadas a los arcos. En un lenguaje ordenado como el inglés,los registros pueden ser elegantemente usado para hacer asignaciones temáticas:

Las transiciones conllevan acciones como las siguientes:

-pasar de A a B, tras el reconocimiento de un Sintagma Nominal, éste pasa a rellenar elregistro de SUJETO

-a la recepción del primer verbo (B->C) lo ponemos en el registro del VerboPrincipal

-si recibimos más verbos y el VerboPrincipal no es Auxiliar (to be, to do, to have...),

SN V V SN

���������������������� ������������������ ������������������ ������������������ ������

�� �� �� �� �� �� �� �� ��

�������������� �������������� �������������� �������������� ��������������

������ A �� �� B �� �� C �� �� D �� �� E ����

�������������� �������������� �������������� �������������� ����������������

V ������ �� SN �� �� �� �� ������

������ ������������������ ������������������ �� SP

�� �� SP

�������������������������������������������������� SNIlustr. 13 Ejemplo de gramática ATN.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

devolvemos ERROR; si no, copiamos en VerboAuxiliar el contenido de VerboPrincipal y en éste elúltimo verbo aceptado

-tras recibir un participio precedido de VerboPrincipa==to be, hacemos VOZ=pasiva,VerboAuxiliar=VerboPrincipal, VerboPrincipal=ParticipioRecibido,ComplementoDirecto=SUJETO y borramos SUJETO

-si pasamos de C a D por medio de un sintagma nominal, simplemente rellenamos elComplementoDirecto con dicho sintagma.

-ante una nueva recepción de sintagma nominal, copiamos el ComplementoDirecto en elComplementoIndirecto y en el ComplementoDirecto el último sintagma

⋅⋅

La elegancia del planteamiento es sumamente atractiva. No obstante, la existencia deproblemas como :

-el backtracking (retroceso),

-las dificultades para analizar oraciones ambiguas,

-el tamaño de la red se haría inmanejable al intentar tratar la multitud de fenómenos quecaracterizan a una lengua natural,

-la ausencia de herramientas automáticas que generen las redes,

-la gran libertad de ordenamiento de sintagmas del castellano...

nos desaconsejaron su implementación inmediata.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

VI.4 Algoritmos generales

VI.4.1 Algoritmo de Cocke-Younger-Kasami

Hays atribuye a Cocke la aplicación de la programación dinámica al análisis sintáctico.Posteriormente Kasami, independientemente, lo redescubrió y Younger demostró que sucomplejidad era cúbica. Valiant mostró que equivalía a la operación de cerrar transitivamente unamatriz y que con una constantes de proporcionalidad enormes, podía ser calculado en tiemposubcúbico. Ruzzo, finalmente, dejo en O(log(n)) la complejidad para la versión paralela asíncrona.

VI.4.1.1 Preproceso

En todas sus versiones, CYK requiere de una transformación en la gramática a fin deponerla en Forma Normal de Chomsky sin cadena vacía. Para ello las reglas deberán tener uno delos dos siguientes formatos:

El algoritmo que realiza la conversión aparece en el recuadro 6.

Para la eliminación de la cadena vacía de un lenguaje que no la admita como símbolo

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

BeginP':=0añadir a P' todas las reglas de la forma A->BCañadir a P' todas las reglas de la forma A->areservar aparte las reglas del tipo A->B

para cada regla del tipo A->X1 X2...Xkbegin

for (i:=1 TO k-2)begin

si Xi es NoTerminalañadir la regla A->Xi A'i

si nobegin

crear la regla X'i->Xiañadir A->X'i A'i

endend

endend

7 Algoritmo que pasa una gramática extendida a FNC.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

plenamente terminal, en Sanchís[88] se muestra un algoritmo.

No todas las gramáticas pueden ser puestas en forma Normal de Chomsky sin cadena vacíani eliminación de reglas unitarias del tipo A->B.Por ello les daremos un tratamiento diferenciado alaplicar CYK.

La conversión multiplica el número de reglas aplicables, aunque ello no tiene por qué hacerlinealmente más lento el "parsing": las reglas son más pero su uso es mucho más simple, sinnecesidad de recorrer los símbolos de su parte derecha ya que sólo tiene dos. Eso sí, es necesarioordenar las reglas por su parte derecha y guardar con cada símbolocuál es la primera regla que contiene dicho símbolo como primero en su parte derecha (si no lavelocidad depende directamente del número medio de reglas, multiplicándose por veinte o treinta eltiempo de reconocimiento de una frase).

Como las reglas de los dos tipos permitidos no se aplican conjuntamente, una extensiónregular de las reglas originales (las que permiten paréntesis...) disminuye el nº de reglas en FNCcreadas.

Los símbolos generados durante la transformación serán transparentes al usuario, noapareciendo en los árboles ni en pantalla ni en disco.

VI.4.1.2 CYK en forma matricial

CYK un algoritmo ascendente y orientado a anchura (breath-first). Tras colocar en unamatriz que llamaremos 'chart' los símbolos terminales según su orden de aparición en la cadena deentrada en las casillas chart[n,n-1], donde n es la longitud de la cadena, la ascensión, en notaciónmatricial, comprendería dos pasos:

-aplicación de las reglas tipo A->a para traducir las categorías sintácticas Terminales a NoTerminales:

-aplicación de A->BC, desde i=N hasta i=0 y de A->B:

Si tras realizar los cálculos en chart[0,n] hemos incluido el axioma, la cadena es aceptada.

VI.4.1.3 CYK en forma asíncrona

Traducidas a seudocódigo, las anteriores fórmulas dan lugar al recuadro 8.

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

VI.4.1.4 CYK en forma síncrona

Si vamos calculando conforme recibimos la cadena de entrada (o incluso un "lattice" deelementos alineados) obtenemos el algoritmo del recuadro 9.

VI.4.1.5 Algoritmo de reconstrucción

El árbol sintáctico se irá creando a partir del axioma, que será el nodo raíz por medio delalgoritmo descrito en el recuadro 10.

for j=1 to nchart[j-1,j] <- {A / existe A->a}

for i= tofor j= to

for k= tochart[i,j] <- { A / existen a->BC ,

chart[i,k] incluye B ,chart[k,j] incluye C}

8 Algoritmo CYK asíncrono.

for j=1 to nbegin

chart[j-1,j] <- {A / existe A->a}for i=j-1 to 0

for k=i+1 to j-1chart[i,j] <- {A / existe A->BC ,

chart[i,k] incluye B ,chart[k,j] incluye C }

end

9 Algoritmo CYK síncrono.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

VI.4.1.6 Ejemplo de reconocimiento

Usando una gramática que por hallarse en FNC (salvo la regla SN->SN1) no necesitatransformación (así evitamos la complicación de que existan símbolos artificiales en la "chart") conla frase: "yo vi un hombre en el apartamento con un telescopio" obtenemos la tabla siguiente:

Reconstruye(i, j, A, nodoAnterior)begin nodoA=CreaNodo(A, nodoAnterior) for k=i+1 to j-1 begin para cada símbolo B de la casilla chart[i,j]

para cada símbolo C de chart[k,j] si existe una regla A->B C begin nodoB=Reconstruye(i,k,B,nodoA) nodoC=Reconstruye(k,j,C,nodoA) end

end para cada nodo B de chart[i,j] si existe regla A->B

nodoB=Reconstruye(i,j,B,nodoA) return nodoAend

10 Algoritmo recursivo de reconstrucción sin ambigüedades.

Oración=SintagmaNominal SintagmaVerbalSintagmaNominal1=Determinante NúcleoDeterminante=determinanteSintagmaNominal1=NúcleoNúcleo=núcleoSintagmaNominal=SintagmaNominal SintagmaPreposicSintagmaNominal=SintagmaNominal1SintagmaPreposic=Preposición SintagmaNominal1Preposición=preposiciónSintagmaVerbal=Verbo SintagmaNominalVerbo=verboVerbo=verbo

11 Gramática en FNC.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

j

i

1 2 3 4 5 6 7 8 9 10

0 núcl,Núcl,SN1,SN

O O O

1verb,Verb

SV SV SV

2 det,Det SN1,SN SN1,SN SN1,SN

3 núcl,Núcl,SN1,SN

SN SN

4 prep,Prep SPrep

5 det,Det SN1,SN SN

6 núcl,Núcl,SN1,SN

SN

7 prep,Prep

SPrep

8 det,Det SN1,SN

9 núcl,Núcl,SN1,SN

La reconstrucción será:

PASO nº0 : Reconstruye(0,10,Oracion,NULL)PASO nº1 : nodoSintagmaNominal=Reconstruye(0,1 ,SintagmaNominal ,nodoOración ,1)PASO nº2 : nodoSintagmaNominal1=Reconstruye(0,1,SintagmaNominal1 ,nodoSintagmaNominal ,1)PASO nº3 : nodoNúcleo=Reconstruye(0,1 ,Núcleo,nodoSintagmaNominal1 ,1)PASO nº4 : nodonúcleo=ReconstruyeDiagonal(0,1 ,núcleo,nodoNúcleo ,1)PASO nº5 : nodoSintagmaNominal=Reconstruye(1,10,SintagmaNominal ,nodoOración ,1)PASO nº6 : nodoVerbo=Reconstruye(1,2 ,Verbo,nodoSintagmaVerbal ,1)PASO nº7 : nodoverbo=ReconstruyeDiagonal(1,2 ,verbo ,nodoVerbo ,1)PASO nº8 : nodoVerbo=Reconstruye(2,10 ,Verbo,nodoSintagmaVerbal ,1)PASO nº9 : nodoSintagmaNominal=Reconstruye(2,7,SintagmaNominal ,nodoSintagmaNominal ,1)PASO nº10 : nodoSintagmaNominal=Reconstruye(2,4,SintagmaNominal ,nodoSintagmaNominal ,1)PASO nº11 : nodoSintagmaNominal1=Reconstruye(2,4,SintagmaNominal1 ,nodoSintagmaNominal ,1)PASO nº12 : nodoDeterminante=Reconstruye(2,3 ,Determinante ,nodoSintagmaNominal1 ,1)PASO nº13 : nododeterminante=ReconstruyeDiagonal(2,3, determinante ,nodoDeterminante ,1)PASO nº14 : nodoDeterminante=Reconstruye(3,4 ,Determinante ,nodoSintagmaNominal1 ,1)PASO nº15 : nodonúcleo=ReconstruyeDiagonal(3,4 ,núcleo

,nodoNúcleo ,1)PASO nº16 : nodoSintagmaNominal=Reconstruye(4,7,SintagmaNominal

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

,nodoSintagmaNominal ,1)PASO nº17 : nodoPreposición=Reconstruye(4,5 ,Preposición ,nodoSintagmaPreposic ,1)PASO nº18 : nodopreposición=ReconstruyeDiagonal(4,5 ,preposición ,nodoPreposición ,1)PASO nº19 : nodoPreposición=Reconstruye(5,7 ,Preposición ,nodoSintagmaPreposic ,1)PASO nº20 : nodoDeterminante=Reconstruye(5,6 ,Determinante ,nodoSintagmaNominal1 ,1)PASO nº21 : nododeterminante=ReconstruyeDiagonal(5,6 ,determinante ,nodoDeterminante ,1)PASO nº22 : nodoDeterminante=Reconstruye(6,7 ,Determinante ,nodoSintagmaNominal1 ,1)PASO nº23 : nodonúcleo=ReconstruyeDiagonal(6,7 ,núcleo

,nodoNúcleo ,1)PASO nº24 : nodoSintagmaNominal=Reconstruye(7,10,SintagmaNominal ,nodoSintagmaNominal ,1)PASO nº25 : nodoPreposición=Reconstruye(7,8 ,Preposición ,nodoSintagmaPreposic ,1)PASO nº26 : nodopreposición=ReconstruyeDiagonal(7,8 ,preposición ,nodoPreposición ,1)PASO nº27 : nodoPreposición=Reconstruye(8,10 ,Preposición ,nodoSintagmaPreposic ,1)PASO nº28 : nodoDeterminante=Reconstruye(8,9 ,Determinante ,nodoSintagmaNominal1 ,1)PASO nº29 : nododeterminante=ReconstruyeDiagonal(8,9 ,determinante ,nodoDeterminante ,1)PASO nº30 : nodoDeterminante=Reconstruye(9,10 ,Determinante ,nodoSintagmaNominal1 ,1)PASO nº31 : nodonúcleo=ReconstruyeDiagonal(9,10 ,núcleo

,nodoNúcleo ,1)

Oración ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗↵ SintagmaNominal SintagmaVerbal ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗↵ SintagmaNominal1 Verbo SintagmaNominal ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ Núcleo verbo SintagmaNominal SintagmaPreposic ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ↵ núcleo ≥ SintagmaNominal SintagmaPreposic Prep SintagmaNominal1 ≥ ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ ≥ ∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗↵ ≥ ≥ SintagmaNominal1 Preposición SintagmaNominal1 prep Determ Núcleo ≥ ≥ ∨⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ ≥ ∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ ≥ ≥ Determinante Núcleo preposición Determinante Núcleo ≥ determ núcleo ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ determinante núcleo ≥ determinante núcleo ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ yo vi un hombre en el apartamento con un telescopio

Ilustr. 14 Arbol nº1.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Si añadimos la siguiente regla que permite complementos preposicionales en el niveloracional39:

dentro de la primera llamada a Reconstruye encontramos otro posibles paso nº1:Reconstruye(0,4,Oración,nodoOración). El nuevo análisis (continuando la anterior numeración)será pues:

PASO nº32 : nodoOración=Reconstruye(0,7 ,Oración ,nodoOración ,2)PASO nº33 : nodoSintagmaNominal=Reconstruye(0,1,SintagmaNominal ,nodoOración ,2)PASO nº34 : nodoSintagmaNominal1=Reconstruye(0,1 ,SintagmaNominal1 ,nodoSintagmaNominal ,2)PASO nº35 : nodoNúcleo=Reconstruye(0,1 ,Núcleo,nodoSintagmaNominal1 ,2)PASO nº36 : nodonúcleo=ReconstruyeDiagonal(0,1 ,núcleo ,nodoNúcleo ,2)PASO nº37 : nodoSintagmaNominal=Reconstruye(1,7,SintagmaNominal ,nodoOración ,2)PASO nº38 : nodoVerbo=Reconstruye(1,2 ,Verbo,nodoSintagmaVerbal ,2)PASO nº39 : nodoverbo=ReconstruyeDiagonal(1,2 ,verbo ,nodoVerbo ,2)PASO nº40 : nodoVerbo=Reconstruye(2,7 ,Verbo ,nodoSintagmaVerbal ,2)PASO nº41 : nodoSintagmaNominal=Reconstruye(2,4,SintagmaNominal ,nodoSintagmaNominal ,2)PASO nº42 : nodoSintagmaNominal1=Reconstruye(2,4,SintagmaNominal1 ,nodoSintagmaNominal ,2)PASO nº43 : nodoDeterminante=Reconstruye(2,3,Determinante ,nodoSintagmaNominal1 ,2)PASO nº44 : nododeterminante=ReconstruyeDiagonal(2,3 ,determinante ,nodoDeterminante ,2)PASO nº45 : nodoDeterminante=Reconstruye(3,4 ,Determinante ,nodoSintagmaNominal1 ,2)PASO nº46 : nodonúcleo=ReconstruyeDiagonal(3,4 ,núcleo ,nodoNúcleo ,2)PASO nº47 : nodoSintagmaNominal=Reconstruye(4,7,SintagmaNominal ,nodoSintagmaNominal ,2)PASO nº48 : nodoPreposición=Reconstruye(4,5 ,Preposición

,nodoSintagmaPreposic ,2)PASO nº49 : nodopreposición=ReconstruyeDiagonal(4,5 ,preposición ,nodoPreposición ,2)PASO nº50 : nodoPreposición=Reconstruye(5,7 ,Preposición

,nodoSintagmaPreposic ,2)PASO nº51 : nodoDeterminante=Reconstruye(5,6 ,Determinante ,nodoSintagmaNominal1 ,2)

39 Creando esta regla se producen las mismas ambigüedadesque añadiendo SV->SV SP y además no varía la tabla dereconocimiento.

Install Equation Editor and double-click here to view equation.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

PASO nº52 : nododeterminante=ReconstruyeDiagonal(5,6 ,determinante ,nodoDeterminante ,2)PASO nº53 : nodoDeterminante=Reconstruye(6,7 ,Determinante ,nodoSintagmaNominal1 ,2)PASO nº54 : nodonúcleo=ReconstruyeDiagonal(6,7 ,núcleo ,nodoNúcleo,2)PASO nº77 : nodoOración=Reconstruye(7,10 ,Oración ,nodoOración ,2)PASO nº78 : nodoPreposición=Reconstruye(7,8 ,Preposición

,nodoSintagmaPreposic ,2)PASO nº79 : nodopreposición=ReconstruyeDiagonal(7,8 ,preposición ,nodoPreposición ,2)PASO nº80 : nodoPreposición=Reconstruye(8,10 ,Preposición ,nodoSintagmaPreposic ,2)PASO nº81 : nodoDeterminante=Reconstruye(8,9 ,Determinante ,nodoSintagmaNominal1 ,2)PASO nº82 : nododeterminante=ReconstruyeDiagonal(8,9 ,determinante

,nodoDeterminante ,2)PASO nº83 : nodoDeterminante=Reconstruye(9,10 ,Determinante ,nodoSintagmaNominal1 ,2)PASO nº84 : nodonúcleo=ReconstruyeDiagonal(9,10 ,núcleo,nodoNúcleo,2)

Nuevamente encontramos una ambigüedad en el interior tras el pasonº0:Reconstruye(0,4,Oración,nodoOración)

PASO nº55 : nodoOración=Reconstruye(0,4 ,Oración ,nodoOración ,3)PASO nº56 : nodoSintagmaNominal=Reconstruye(0,1,SintagmaNominal ,nodoOración ,3)PASO nº57 : nodoSintagmaNominal1=Reconstruye(0,1,SintagmaNominal1 ,nodoSintagmaNominal ,3)PASO nº58 : nodoNúcleo=Reconstruye(0,1 ,Núcleo,nodoSintagmaNominal1 ,3)PASO nº59 : nodonúcleo=ReconstruyeDiagonal(0,1 ,núcleo ,nodoNúcleo ,3)PASO nº60 : nodoSintagmaNominal=Reconstruye(1,4,SintagmaNominal

Oración ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵

Oración SintagmaPreposic ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗↵ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ SintagmaNominal SintagmaVerbal Preposición SintagmaNominal1

≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗↵ ≥ ∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ SintagmaNominal1 Verbo SintagmaNominal preposición Determ Núcleo ≥ ≥

∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ Núcleo verbo SintagmaNominal SintagmaPreposic ≥ determ núcleo ≥ ≥ ≥

∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ núcleo ≥ SintagmaNominal1 Preposición SintagmaNominal1 ≥ ≥ ≥ ≥ ≥ ∨⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵

≥ ∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ ≥ ≥ Determinante Núcleo preposición Determinante Núcleo ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ determinante núcleo ≥ determinante núcleo ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ yo vi un hombre en el apartamento con un telescopio

Ilustr. 15 Árbol parcial nº2.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

,nodoOración ,3)PASO nº61 : nodoVerbo=Reconstruye(1,2 ,Verbo,nodoSintagmaVerbal ,3)PASO nº62 : nodoverbo=ReconstruyeDiagonal(1,2 ,verbo ,nodoVerbo ,3)PASO nº63 : nodoVerbo=Reconstruye(2,4 ,Verbo,nodoSintagmaVerbal ,3)PASO nº64 : nodoSintagmaNominal1=Reconstruye(2,4 ,SintagmaNominal1 ,nodoSintagmaNominal ,3)PASO nº65 : nodoDeterminante=Reconstruye(2,3 ,Determinante,nodoSintagmaNominal1 ,3)PASO nº66 : nododeterminante=ReconstruyeDiagonal(2,3 ,determinante ,nodoDeterminante ,3)PASO nº67 : nodoDeterminante=Reconstruye(3,4 ,Determinante ,nodoSintagmaNominal1 ,3)PASO nº68 : nodonúcleo=ReconstruyeDiagonal(3,4 ,núcleo ,nodoNúcleo ,3)PASO nº69 : nodoOración=Reconstruye(4,7 ,Oración ,nodoOración ,3)PASO nº70 : nodoPreposición=Reconstruye(4,5 ,Preposición ,nodoSintagmaPreposic ,3)PASO nº71 : nodopreposición=ReconstruyeDiagonal(4,5 ,preposición ,nodoPreposición ,3)PASO nº72 : nodoPreposición=Reconstruye(5,7 ,Preposición ,nodoSintagmaPreposic ,3)PASO nº73 : nodoDeterminante=Reconstruye(5,6 ,Determinante ,nodoSintagmaNominal1 ,3)PASO nº74 : nododeterminante=ReconstruyeDiagonal(5,6 ,determinante ,nodoDeterminante ,3)PASO nº75 : nodoDeterminante=Reconstruye(6,7 ,Determinante

,nodoSintagmaNominal1 ,3)PASO nº76 : nodonúcleo=ReconstruyeDiagonal(6,7 ,núcleo ,nodoNúcleo ,3)

Tras realizar el primer análisis completo, realizamos el segundo, para lo cual sólo debemoscopiar de un árbol a otro el nodoO1.

Lo mismo sucede con el tercero, pero no con el cuarto. Este último parte de un tercer

Oración ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ Oración SintagmaPreposic ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ Oración SintagmaPreposic Prep SintagmaNominal1 ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗↵ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ ≥ ∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ SintagmaNominal SintagmaVerbal Preposición SintagmaNominal1 prep Determ Núcleo ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗↵ ≥

∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ SintagmaNominal1 Verbo SintagmaNominal preposición Determinante Núcleo ≥ determ núcleo ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ Núcleo verbo SintagmaNominal1 ≥ determinante núcleo ≥ ≥ ≥ ≥ ≥ ∨⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ ≥ ≥ ≥ núcleo ≥ Determinante Núcleo ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥

≥ ≥ ≥ determinante núcleo ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ yo vi un hombre en el apartamento con un telescopio

Ilustr. 16Árbol nº 3

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

análisis mediado: no podemos copiar todo el tercer árbol hasta ahora generado, pues contiene unaestructura para "yo vi un hombre en el apartamento". El cuarto sólo necesita nodoO1 y nodoO2:cada vez que encontremos una ambigüedad en un Reconstruye, debemos copiar el árbol aizquierdas desde el nodo raíz hasta el nodo anterior, ambos inclusive.

A la salida de PASO nº3'': Reconstruye(), no se puede continuar el cuarto análisis: debemosindicar que el cuarto nodo, a la derecha de nodoAnterior es igual al tercero.

VI.4.1.7 CYK con predicción

Resulta especialmente útil que el algoritmo sintáctico pudiese predecir, tras realizar loscálculos asociados a una palabra, cuáles son las posibles siguientes.

Para ello es necesario precompilar la gramática y, para cada símbolo no terminal de lagramática en Forma Normal de Chomsky cuáles son los símbolos terminales que los puedenencabezar. El algoritmo (tomado del LL(1) sería (teniendo en cuenta que no se admite la cadenavacía):

Para la predicción usaremos el procedimiento del recuadro 12.

VI.4.1.8 Diferentes implementaciones

Jugando con la memoria usada y la velocidad alcanzable son varias las posibles arquitecturas.

La más veloz de las que sólo precisan un procesador necesitaría un chart tridimensional deN*N*NT casillas, siendo N el máximo número de palabras por frase y NT el cardinal del conjuntode símbolos No Terminales.

para cada regla A->a..añadir el terminal 'a' a la Cabecera[A]

Nuevos=FALSOhacer

beginPara cada regla A->BC

beginAñadir a Cabecera[A] la Cabecera[B]Si ha habido nuevos

Nuevos=VERDADEROend

endmientras Nuevos==VERDADERO

12 Algoritmo para el cálculo de las Cabeceras terminales de lossímbolos no terminales.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Las reglas estarían separadas en unitarias y binarias, dada la independencia en su uso, ynecesitaríamos una matriz de NT*NT elementos para guardar las reglas NoTerminal=NoTerminal

El algoritmo que se basa en esta estructura variará respecto a los ya vistos (recuadro 13).

for j=1 to nbeginpara cada regla B->b

beginincorporar B a Chart[j-1,j]

para cada regla A->B..Incorporar Cabecera[C] a Predicción[]

end

for i=j-1 to 0for k=i+1 to j-1

beginpara cada símbolo B de Chart[i][k]

y cada C de Chart[k][j]Si existe Regla A->BC

beginIncorporar A a Chart[i][j]

para cada regla D->AEIncorporar Cabecera[E] a Predicción[]

endpara cada símbolo B del Chart[i][j]

si existe regla A->BIncorporar A a Chart[i][j]

end

Comunicar Predicción al Reconocedorend

13 Algoritmo de predicción integrado en el CYK síncrono.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Como los índices tienen ámbitos de recorrido interdependientes, el número de operacionesde unificación que realizar será:Install Equation Editor and double-click here to view equation. 82

donde RB es el número de reglas binarias, T el número de símbolos terminales yNumEquivalentesMedio, el resultado de dividir las casillas ocupadas de la matriz de equivalentespor NT (si suponemos que la oración en palabras es traducida a lattice alineado de categoríasléxicas, la diagonal puede ser léxicamente ambigua, y de ahí la aparición del factor T en el tercersumando).

La ocupación de memoria es demasiado generosa:

Por eso no hemos usado esta versión del algoritmo en nuestro entorno para PC40.

Para reducir la Chart no podremos tener una casilla por símbolo no terminal: la tabla seráfalsamente bidimensional con una pila en cada posición Chart[][]. El tamaño de la pila vendrálimitado por una constante calculada empíricamente: NumMedioNT41. 40 La chart puede reducirse si la linealizamos,pero aún asísu tamaño para frases largas (N==25) y gramáticas amplias(NT=600) no son admisibles.

41 Lógicamente es posible el desbordamiento de la pila y laconsiguiente imposibilidad de analizar una frase muy ambigua por

for i=1 to Nfor j=1 to N

para cada símbolo UChart[i][j][U]=NO_USADO

for i=1 to Nbeginpara cada símbolo terminal 'a'en posición i

Chart[i-1][i][a]=USADO

for j=i-1 to 0para cada regla A->BC

for k=j+1 to i-1si (Chart[i][k][B]==USADO y

Chart[k][j][C]==USADO)Chart[i][j][A]=USADO

end

14 Algoritmo óptimo para un procesador único.

Install Equation Editor and double-click here to view equation.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

El algoritmo es el ya mostrado en el recuadro 14, donde no existe un bucle de recorrido dereglas sino uno de recorrido de las dos casillas que unificar. Como los símbolos (nunca repetidos)no se guardan ordenadamente en las pilas, el acceso a las reglas debe ser casi inmediato. Como elcrear una matriz indexada por los símbolos noterminales de las reglas, o sea donde:

nos haría perder mucho espacio, ordenaremos las reglas por su parte derecha, tanto lasbinarias como las unitarias, y para cada símbolo terminal o no guardar unos punteros a la primera yúltima regla que tiene a ese símbolo como primero a la derecha del igual. La ralentización mediaserá igual al número de reglas binarias dividido por el número de símbolos no terminales (para unagramática normal será menor a dos, con una ocupación de espacio considerablemente menor):

VI.4.1.9 Linealización del Chart

Para no desaprovechar las casillas de la triangular inferior, observemos en la siguiente tablaen qué orden son "rellenadas" las casillas, para poder hacerla lineal:

i \ j 1 2 3 4 5

0 1º 3ª 6ª 10ª 15ª

1 2ª 5ª 9ª 14ª

2 4ª 8ª 13ª

3 7ª 12ª

4 11º

causa de una gramática quizás mal definida.

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

VI.4.2 Algoritmo de Earley

Como resultado de su tesis doctoral en Carnegie Mellon, J. Earley construyó el primeralgoritmo de parsing basado en una Chart activa, no llena de símbolos sino de reglas activas(parcialmente reconocidas) y reglas completas.

Partiendo del concepto de estado que Knuth introdujo en su trabajo sobre gramáticas LR,Earley desarrolló un algoritmo descendente que podía reconocer oraciones descritas por medio deuna gramática de contexto libre sin restricciones de formato o eliminación de la cadena vacía.

Si la gramática es ambigua, el tiempo de reconocimiento será proporcional al cubo de lalongitud de la cadena de entrada, aunque para ciertas gramáticas el tiempo medio se puede reducira cuadrático o incluso lineal. Usando arquitecturas paralelas con numerosos procesadores esto esfactible para cualquier gramática.

VI.4.2.1 Funcionamiento básico

Describamos el esquema de funcionamiento básico que resulta muy sencillo (figura 15)

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Inicialización:Para cada regla S->...

Nuevos=AñadirElemento({S-> ⋅..,0},Agenda[0])

hacerbeginNuevos=0

para cada elemento {A->.. ⋅B..,0} de Agenda[0]para cada regla B->...

Nuevos=AñadirElemento({B-> ⋅..,0},Agenda[0])

para cada elemento {A->.. ⋅,0} en Agenda[0]para cada elemento {B->.. ⋅A..,0} de Agenda[0]

Nuevos=AñadirElemento({B->..A ⋅..,0} ,Agenda[0])

endmientras Nuevos=1

Iteración:for j=1 to N

beginNuevos=0para cada elemento {A->.. ⋅a..,i} de Agenda[j-1]

si 'a' pertenece a Entrada[j]Nuevos=AñadirElemento({A->..a ⋅..,i} ,Agenda[j])

si Nuevos=0devolver ERROR

hacerbeginNuevos=0para cada elemento {A->.. ⋅B..,i} de Agenda[j]

para cada regla B->...Nuevos=AñadirElemento({B-> ⋅..,j}

,Agenda[j])

para cada elemento {A->.. ⋅,i} en Agenda[j]para cada elemento {B->.. ⋅A..,k} de Agenda[i]

Nuevos=AñadirElemento({B->..A ⋅..,k} ,Agenda[j])

endmientras Nuevos=1end

Si existe algún elemento {S->.. ⋅,0} en Agenda[N]devolver BIEN

si nodevolver ERROR

15 Algoritmo básico descrito en AHO[72].

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Las operaciones que se realizan iterativamente son tres:

-Predicción: si tenemos un estado {A->..⋅B..,i} es que necesitamos desarrollar B; debemosrecorrer las reglas B->.. para predecir lo que buscamos

-Compleción: si hemos llegado a un estado completo {A->..⋅,i} , algún estado previo debehaber predicho A y querrá que le avancemos el puntero: {B->..A⋅..,i}

-Avance: una vez hechas todas las posibles predicciones de símbolos terminales, debemoscomprobar que la cadena de entrada posee alguno de ellos y avanzar el puntero correspondiente delelemento: {A->..a⋅..,i}

VI.4.2.2 Reconstrucción del árbol sintáctico

Reconstruye({A->B1 B2..Bm ⋅,i},j)beginAñade a ListaDeReglas el elemento (A->B1 B2..Bm)

k=ml=j

hacerbeginsi Bk es terminal

begink=k-1l=l-1end

si nobeginsi existe en Agenda[l] un {Bk-> β⋅,r} tal que

en Agenda[r] esté {A->B1.. ⋅Bk,i}beginReconstruye({B-> β⋅,r},l)

k=k-1l=rend

endend

mientras k>0end

16 Algoritmo de reconstrucción del árbol sintáctico en ausenciade ambigüedades.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Ejecutamos el algoritmo recursivo de la figura 16, comenzando por Reconstruye({S->α⋅,0},N) si es que en Agenda[N] encontramos alguna derivación completa del Axioma S: {S->α⋅,0}

VI.4.2.3 La cadena vacía

La Cadena vacía requiere un tratamiento especial: será un símbolo no terminal que nonecesita de una compleción para el avance de su puntero.Cada vez que añadamos un elemento a Agenda[i] {A->..⋅λ..,j} conde el puntero queda a laizquierda de una cadena vacía, añadiremos también el elemento {A->..λ⋅..,j}

Al reconstruir la estructura de la oración, en el bucle que recorre los símbolos de la partederecha de una regla B->B1 ..Bm debemos no sólo distinguir terminales y no terminales sinotambién la cadena vacía: al llegar al símbolo nulo del elemento {A->..λ..,j} reduciremos sólo k yproseguiremos.

VI.4.2.4 Un ejemplo completo

Usando la misma gramático no ambigua del ejemplo con CYK (figura 11) y la mismaoración, obtenemos:

En un primer paso (el de inicialización), el algoritmo predice cuáles son los símbolosterminales (en este caso son categorías léxico-sintácticas) que pueden encabezar todas las oracionesposibles: Det, Núcleo. Como nuestra frase (traducida a terminales) es:

"Núcleo Verbo Determinante Núcleo Preposición Determinante Núcleo PreposiciónDeterminante Núcleo"

Agenda[0]Oración=⋅SintagmaNominal SintagmaVerbal 0SintagmaNominal=⋅SintagmaNominal SintagmaPreposic 0SintagmaNominal=⋅SintagmaNominal1 0SintagmaNominal1=⋅Determinante Núcleo 0SintagmaNominal1=⋅Núcleo 0Determinante=⋅determinante 0Núcleo=⋅núcleo 0

Como comienza por Núcleo, se avanzarán el puntero del elemento{Núcleo=⋅núcleo 0}:

Agenda[1]Núcleo=núcleo ⋅ 0SintagmaNominal1=Núcleo ⋅ 0SintagmaNominal=SintagmaNominal1 ⋅ 0Oración=SintagmaNominal ⋅SintagmaVerbal 0

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

SintagmaNominal=SintagmaNominal ⋅SintagmaPreposic 0SintagmaVerbal=⋅Verbo SintagmaNominal 1SintagmaPreposic=⋅Preposición SintagmaNominal1 1Verbo=⋅verbo 1Preposición=⋅preposición 1

Agenda[2]Verbo=verbo ⋅ 1SintagmaVerbal=Verbo ⋅SintagmaNominal 1SintagmaNominal=⋅SintagmaNominal SintagmaPreposic 2SintagmaNominal=⋅SintagmaNominal1 2SintagmaNominal1=⋅Determinante Núcleo 2SintagmaNominal1=⋅Núcleo 2Determinante=⋅determinante 2Núcleo=⋅núcleo 2

Agenda[3]Determinante=determinante ⋅ 2SintagmaNominal1=Determinante ⋅Núcleo 2Núcleo=⋅núcleo 3

Agenda[4]Núcleo=núcleo ⋅ 3SintagmaNominal1=Determinante Núcleo ⋅ 2SintagmaNominal=SintagmaNominal1 ⋅ 2SintagmaVerbal=Verbo SintagmaNominal ⋅ 1SintagmaNominal=SintagmaNominal ⋅SintagmaPreposic 2Oración=SintagmaNominal SintagmaVerbal ⋅ 0SintagmaPreposic=⋅Preposición SintagmaNominal1 4Preposición=⋅preposición 4

Agenda[5]Preposición=preposición ⋅ 4SintagmaPreposic=Preposición ⋅SintagmaNominal1 4SintagmaNominal1=⋅Determinante Núcleo 5SintagmaNominal1=⋅Núcleo 5Determinante=⋅determinante 5Núcleo=⋅núcleo 5

Agenda[6]Determinante=determinante ⋅ 5SintagmaNominal1=Determinante ⋅Núcleo 5Núcleo=⋅núcleo 6

Agenda[7]Núcleo=núcleo ⋅ 6SintagmaNominal1=Determinante Núcleo ⋅ 5

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

SintagmaPreposic=Preposición SintagmaNominal1 ⋅ 4SintagmaNominal=SintagmaNominal SintagmaPreposic ⋅ 2SintagmaVerbal=Verbo SintagmaNominal ⋅ 1SintagmaNominal=SintagmaNominal ⋅SintagmaPreposic 2Oración=SintagmaNominal SintagmaVerbal ⋅ 0SintagmaPreposic=⋅Preposición SintagmaNominal1 7Preposición=⋅preposición 7

Agenda[8]Preposición=preposición ⋅ 7SintagmaPreposic=Preposición ⋅SintagmaNominal1 7SintagmaNominal1=⋅Determinante Núcleo 8SintagmaNominal1=⋅Núcleo 8Determinante=⋅determinante 8Núcleo=⋅núcleo 8

Agenda[9]Determinante=determinante ⋅ 8SintagmaNominal1=Determinante ⋅Núcleo 8Núcleo=⋅núcleo 9

Agenda[10]Núcleo=núcleo ⋅ 9SintagmaNominal1=Determinante Núcleo ⋅ 8SintagmaPreposic=Preposición SintagmaNominal1 ⋅ 7SintagmaNominal=SintagmaNominal SintagmaPreposic ⋅ 2SintagmaVerbal=Verbo SintagmaNominal ⋅ 1SintagmaNominal=SintagmaNominal ⋅SintagmaPreposic 2Oración=SintagmaNominal SintagmaVerbal ⋅ 0SintagmaPreposic=⋅Preposición SintagmaNominal1 10Preposición=⋅preposición 10

Como en Agenda[10] encontramos: {Oración=SintagmaNominal SintagmaVerbal⋅ ,0}podemos reconstruir42:

Llamada a RECONSTRUYE(Agenda[10],{Oración=SintagmaNominal SintagmaVerbal ⋅,0})

SintagmaVerbal procede de: el elemento de Agenda[10]:{SintagmaVerbal=Verbo SintagmaNominal ⋅,1}

Llamada a RECONSTRUYE(Agenda[10],{SintagmaVerbal=Verbo SintagmaNominal ⋅,1})

SintagmaNominal procede de: el elemento de Agenda[10]:{SintagmaNominal=SintagmaNominal SintagmaPreposic ⋅,2}

42 Obsérvese que,como en el algoritmo LR(1),las reglasaplicadas se obtienen primero la de la parte derecha y luego lade la izquierda.La primera palabra alcanzada será la última yviceversa.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Llamada a RECONSTRUYE(Agenda[10] ,{SintagmaNominal=SintagmaNominal SintagmaPreposic ⋅,2})SintagmaPreposic procede de: el elemento de Agenda[10]:

{SintagmaPreposic=Preposición SintagmaNominal1 ⋅,7}Llamada a RECONSTRUYE(Agenda[10]

,{SintagmaPreposic=Preposición SintagmaNominal1 ⋅,7})SintagmaNominal1 procede de: el elemento de Agenda[10]:

{SintagmaNominal1=Determinante Núcleo ⋅,8}Llamada a RECONSTRUYE(Agenda[10]

,{SintagmaNominal1=Determinante Núcleo ⋅,8})Núcleo procede de:el elemento de Agenda[10]:

{Núcleo=núcleo ⋅,9}Llamada a RECONSTRUYE(Agenda[10]

,{Núcleo=núcleo ⋅,9})núcleo es TerminalDeterminante procede de: el elemento de Agenda[9]:

{Determinante=determinante ⋅,8}Llamada a RECONSTRUYE(Agenda[9]

,{Determinante=determinante ⋅,8})determinante es TerminalPreposición procede de: el elemento de Agenda[8]:

{Preposición=preposición ⋅,7}Llamada a RECONSTRUYE(Agenda[8]

,{Preposición=preposición ⋅,7})preposición es TerminalSintagmaNominal procede de: el elemento de Agenda[7]:

{SintagmaNominal=SintagmaNominal SintagmaPreposic ⋅,2}Llamada a RECONSTRUYE(Agenda[7] ,{SintagmaNominal=SintagmaNominal SintagmaPreposic ⋅,2})SintagmaPreposic procede de: el elemento de Agenda[7]:

{SintagmaPreposic=Preposición SintagmaNominal1 ⋅,4}Llamada a RECONSTRUYE(Agenda[7]

,{SintagmaPreposic=Preposición SintagmaNominal1 ⋅,4})SintagmaNominal1 procede de: el elemento de Agenda[7]:

{SintagmaNominal1=Determinante Núcleo ⋅,5}Llamada a RECONSTRUYE(Agenda[7]

,{SintagmaNominal1=Determinante Núcleo ⋅,5})Núcleo procede de: el elemento de Agenda[7]:

{Núcleo=núcleo ⋅,6}Llamada a RECONSTRUYE(Agenda[7]

,{Núcleo=núcleo ⋅,6})núcleo es TerminalDeterminante procede de: el elemento de Agenda[6]:

{Determinante=determinante ⋅,5}Llamada a RECONSTRUYE(Agenda[6]

,{Determinante=determinante ⋅,5})determinante es Terminal

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Preposición procede de: el elemento de Agenda[5]:{Preposición=preposición ⋅,4}

Llamada a RECONSTRUYE(Agenda[5],{Preposición=preposición ⋅,4})

preposición es TerminalSintagmaNominal procede de: el elemento de Agenda[4]:

{SintagmaNominal=SintagmaNominal1 ⋅,2}Llamada a RECONSTRUYE(Agenda[4]

,{SintagmaNominal=SintagmaNominal1 ⋅,2})SintagmaNominal1 procede de: el elemento de Agenda[4]:

{SintagmaNominal1=Determinante Núcleo ⋅,2}Llamada a RECONSTRUYE(Agenda[4]

,{SintagmaNominal1=Determinante Núcleo ⋅,2})Núcleo procede de: el elemento de Agenda[4]:

{Núcleo=núcleo ⋅,3}Llamada a RECONSTRUYE(Agenda[4]

,{Núcleo=núcleo ⋅,3})núcleo es TerminalDeterminante procede de: el elemento de Agenda[3]:

{Determinante=determinante ⋅,2}Llamada a RECONSTRUYE(Agenda[3]

,{Determinante=determinante ⋅,2})determinante es TerminalVerbo procede de: el elemento de Agenda[2]:

{Verbo=verbo ⋅,1}Llamada a RECONSTRUYE(Agenda[2]

,{Verbo=verbo ⋅,1})verbo es TerminalSintagmaNominal procede de: el elemento de Agenda[1]:

{SintagmaNominal=SintagmaNominal1 ⋅,0}Llamada a RECONSTRUYE(Agenda[1]

,{SintagmaNominal=SintagmaNominal1 ⋅,0})SintagmaNominal1 procede de: el elemento de Agenda[1]:

{SintagmaNominal1=Núcleo ⋅,0}Llamada a RECONSTRUYE(Agenda[1]

,{SintagmaNominal1=Núcleo ⋅,0})Núcleo procede de: el elemento de Agenda[1]:

{Núcleo=núcleo ⋅,0}Llamada a RECONSTRUYE(Agenda[1]

,{Núcleo=núcleo ⋅,0})núcleo es Terminal

Al añadir la regla de la complementación "oracional", la Agenda aumenta aunquemínimamente:

Agenda[0]Oración=⋅SintagmaNominal SintagmaVerbal 0 ⋅

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Oración=⋅Oración SintagmaPreposic 0⋅⋅

Agenda[4]⋅⋅Oración=Oración ⋅ SintagmaPreposic 0⋅⋅

Agenda[7]⋅⋅Oración=Oración SintagmaPreposic ⋅ 0⋅Oración=Oración ⋅ SintagmaPreposic 0⋅⋅

Agenda[10]⋅⋅Oración=Oración SintagmaPreposic ⋅ 0⋅Oración=Oración ⋅ SintagmaPreposic 0⋅⋅

Como en esta última Agenda[10] encontramos 2 elementos del tipo {Oración=α⋅,0}, habráal menos una ambigüedad que afecta a los niveles más altos del análisis. Además de lo ya visto,podremos reconstruir:

Llamada a RECONSTRUYE(Agenda[10],{Oración=Oración SintagmaPreposic ⋅,0})

SintagmaPreposic procede de: el elemento de Agenda[10]:{SintagmaPreposic=Preposición SintagmaNominal1 ⋅,7}

Llamada a RECONSTRUYE(Agenda[10],{SintagmaPreposic=Preposición SintagmaNominal1 ⋅,7})

SintagmaNominal1 procede de: el elemento de Agenda[10]:{SintagmaNominal1=Determinante Núcleo ⋅,8}

Llamada a RECONSTRUYE(Agenda[10],{SintagmaNominal1=Determinante Núcleo ⋅,8})

Núcleo procede de: el elemento de Agenda[10]:{Núcleo=núcleo ⋅,9}

Llamada a RECONSTRUYE(Agenda[10],{Núcleo=núcleo ⋅,9})

núcleo es TerminalDeterminante procede de:el elemento de Agenda[9]:

{Determinante=determinante ⋅,8}Llamada a RECONSTRUYE(Agenda[9]

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

,{Determinante=determinante ⋅,8})determinante es TerminalPreposición procede de: el elemento de Agenda[8]:

{Preposición=preposición ⋅,7}Llamada a RECONSTRUYE(Agenda[8]

,{Preposición=preposición ⋅,7})preposición es TerminalOración procede de: el elemento de Agenda[7]:

{Oración=Oración SintagmaPreposic ⋅,0}Llamada a RECONSTRUYE(Agenda[7]

,{Oración=Oración SintagmaPreposic ⋅,0})SintagmaPreposic procede de: el elemento de Agenda[7]:

{SintagmaPreposic=Preposición SintagmaNominal1 ⋅,4}Llamada a RECONSTRUYE(Agenda[7]

,{SintagmaPreposic=Preposición SintagmaNominal1 ⋅,4})SintagmaNominal1 procede de: el elemento de Agenda[7]:

{SintagmaNominal1=Determinante Núcleo ⋅,5}Llamada a RECONSTRUYE(Agenda[7]

,{SintagmaNominal1=Determinante Núcleo ⋅,5})Núcleo procede de: el elemento de Agenda[7]:

{Núcleo=núcleo ⋅,6}Llamada a RECONSTRUYE(Agenda[7]

,{Núcleo=núcleo ⋅,6})núcleo es TerminalDeterminante procede de: el elemento de Agenda[6]:

{Determinante=determinante ⋅,5}Llamada a RECONSTRUYE(Agenda[6]

,{Determinante=determinante ⋅,5})determinante es TerminalPreposición procede de: el elemento de Agenda[5]:

{Preposición=preposición ⋅,4}Llamada a RECONSTRUYE(Agenda[5]

,{Preposición=preposición ⋅,4})preposición es TerminalOración procede de: el elemento de Agenda[4]:

{Oración=SintagmaNominal SintagmaVerbal ⋅,0}Llamada a RECONSTRUYE(Agenda[4]

,{Oración=SintagmaNominal SintagmaVerbal ⋅,0})SintagmaVerbal procede de: el elemento de Agenda[4]:

{SintagmaVerbal=Verbo SintagmaNominal ⋅,1}Llamada a RECONSTRUYE(Agenda[4]

,{SintagmaVerbal=Verbo SintagmaNominal ⋅,1})SintagmaNominal procede de: el elemento de Agenda[4]:

{SintagmaNominal=SintagmaNominal1 ⋅,2}Llamada a RECONSTRUYE(Agenda[4]

,{SintagmaNominal=SintagmaNominal1 ⋅,2})SintagmaNominal1 procede de: el elemento de Agenda[4]:

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

{SintagmaNominal1=Determinante Núcleo ⋅,2}Llamada a RECONSTRUYE(Agenda[4]

,{SintagmaNominal1=Determinante Núcleo ⋅,2})Núcleo procede de: el elemento de Agenda[4]:

{Núcleo=núcleo ⋅,3}Llamada a RECONSTRUYE(Agenda[4]

,{Núcleo=núcleo ⋅,3})núcleo es TerminalDeterminante procede de: el elemento de Agenda[3]:

{Determinante=determinante ⋅,2}Llamada a RECONSTRUYE(Agenda[3]

,{Determinante=determinante ⋅,2})determinante es TerminalVerbo procede de: el elemento de Agenda[2]:

{Verbo=verbo ⋅,1}Llamada a RECONSTRUYE(Agenda[2]

,{Verbo=verbo ⋅,1})verbo es TerminalSintagmaNominal procede de: el elemento de Agenda[1]:

{SintagmaNominal=SintagmaNominal1 ⋅,0}Llamada a RECONSTRUYE(Agenda[1]

,{SintagmaNominal=SintagmaNominal1 ⋅,0})SintagmaNominal1 procede de: el elemento de Agenda[1]:

{SintagmaNominal1=Núcleo ⋅,0}Llamada a RECONSTRUYE(Agenda[1]

,{SintagmaNominal1=Núcleo ⋅,0})Núcleo procede de: el elemento de Agenda[1]:

{Núcleo=núcleo ⋅,0}Llamada a RECONSTRUYE(Agenda[1]

,{Núcleo=núcleo ⋅,0})núcleo es Terminal

Llegados a este punto, encontramos una nueva ambigüedad: la suboración que se extiendede yo a telescopio puede ser analizada como:

Oración procede dell elemento de Agenda[7]:{Oración=SintagmaNominal SintagmaVerbal ⋅,0}

o como:Oración procede del elemento de Agenda[7]:

{Oración=Oración SintagmaPreposic ⋅,0}

Como la segunda opción ya la hemos explorado, reconstruiremos la primera, previa copiade las reglas que les serán comunes a ambos análisis ( en este caso, las que van desde la primeraOración=Oración SontagmaPreposic hasta la segunda Oración=Oración SintagmaPreposic, laprimera inclusive, la segunda no):

Llamada a RECONSTRUYE(Agenda[7],{Oración=SintagmaNominal SintagmaVerbal ⋅,0})

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

SintagmaVerbal procede de: el elemento de Agenda[7]:{SintagmaVerbal=Verbo SintagmaNominal ⋅,1}

Llamada a RECONSTRUYE(Agenda[7],{SintagmaVerbal=Verbo SintagmaNominal ⋅,1})

SintagmaNominal procede de: el elemento de Agenda[7]:{SintagmaNominal=SintagmaNominal SintagmaPreposic ⋅,2}

Llamada a RECONSTRUYE(Agenda[7] ,{SintagmaNominal=SintagmaNominal SintagmaPreposic ⋅,2})SintagmaPreposic procede de: el elemento de Agenda[7]:

{SintagmaPreposic=Preposición SintagmaNominal1 ⋅,4}Llamada a RECONSTRUYE(Agenda[7]

,{SintagmaPreposic=Preposición SintagmaNominal1 ⋅,4})SintagmaNominal1 procede de: el elemento de Agenda[7]:

{SintagmaNominal1=Determinante Núcleo ⋅,5}Llamada a RECONSTRUYE(Agenda[7]

,{SintagmaNominal1=Determinante Núcleo ⋅,5})Núcleo procede de: el elemento de Agenda[7]:

{Núcleo=núcleo ⋅,6}Llamada a RECONSTRUYE(Agenda[7]

,{Núcleo=núcleo ⋅,6})núcleo es TerminalDeterminante procede de: el elemento de Agenda[6]:

{Determinante=determinante ⋅,5}Llamada a RECONSTRUYE(Agenda[6]

,{Determinante=determinante ⋅,5})determinante es TerminalPreposición procede de: el elemento de Agenda[5]:

{Preposición=preposición ⋅,4}Llamada a RECONSTRUYE(Agenda[5]

,{Preposición=preposición ⋅,4})preposición es TerminalSintagmaNominal procede de: el elemento de Agenda[4]:

{SintagmaNominal=SintagmaNominal1 ⋅,2}Llamada a RECONSTRUYE(Agenda[4]

,{SintagmaNominal=SintagmaNominal1 ⋅,2})SintagmaNominal1 procede de: el elemento de Agenda[4]:

{SintagmaNominal1=Determinante Núcleo ⋅,2}Llamada a RECONSTRUYE(Agenda[4]

,{SintagmaNominal1=Determinante Núcleo ⋅,2})Núcleo procede de: el elemento de Agenda[4]:

{Núcleo=núcleo ⋅,3}Llamada a RECONSTRUYE(Agenda[4]

,{Núcleo=núcleo ⋅,3})núcleo es TerminalDeterminante procede de: el elemento de Agenda[3]:

{Determinante=determinante ⋅,2}Llamada a RECONSTRUYE(Agenda[3]

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

,{Determinante=determinante ⋅,2})determinante es TerminalVerbo procede de: el elemento de Agenda[2]:

{Verbo=verbo ⋅,1}Llamada a RECONSTRUYE(Agenda[2]

,{Verbo=verbo ⋅,1})verbo es TerminalSintagmaNominal procede de: el elemento de Agenda[1]:

{SintagmaNominal=SintagmaNominal1 ⋅,0}Llamada a RECONSTRUYE(Agenda[1]

,{SintagmaNominal=SintagmaNominal1 ⋅,0})SintagmaNominal1 procede de: el elemento de Agenda[1]:

{SintagmaNominal1=Núcleo ⋅,0}Llamada a RECONSTRUYE(Agenda[1]

,{SintagmaNominal1=Núcleo ⋅,0})Núcleo procede de: el elemento de Agenda[1]:

{Núcleo=núcleo ⋅,0}Llamada a RECONSTRUYE(Agenda[1]

,{Núcleo=núcleo ⋅,0})núcleo es Terminal

Los árboles sintácticos coinciden con los ya mostrados aunque con diferente numeración(el primero de antes es ahora el tercero, el segundo coincide...).

Si la ambigüedad fuera totalmente interna (no afecte ni a la primera ni a la última palabra dela frase), la reconstrucción del segundo árbol será parcial y, desde ese momento, todo lo quecopiemos en el primer árbol, lo deberemos de copiar en el segundo.

VI.4.2.5 Complejidad del algoritmo

En un caso general de gramática ambigua, el número de operaciones será proporcional alcubo de N, la longitud de la cadena de entrada. Esto se justifica porque:

-El número de estados en cada Agenda[i] es proporcional a N (es el máximo valor quepuede tomar el registro de nivel), al número de reglas y la longitud media de las mismas.

-la predicción y el avance suponen recorrer una Agenda[] y con cada elemento realizar unaserie de operaciones:su complejidad conjunta será proporcional a N.

-la compleción, por su parte, supone recorrer una Agenda[] y para cada elemento de ellapodríamos tener que recorrer otra Agenda[], con lo cual la complejidad sería proporcional alcuadrado de N.

-como el número de Agendas[] es N+1, el total dará la proporcionalidad al cubo que yahabíamos adelantado.

CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

De todos modos estas cifras son engañosas, y lo que hace más lento el algoritmo es laabundancia de ambigüedades: con una gramática finamente sintonizada la velocidad creceenormemente.

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

CAPITULO VII

EL ENTORNO PARA EL DESARROLLO DEGRAMÁTICAS

VII.1 Presentación

La necesidad de escribir y probar una gramática se fundió con la de estudiar y tomarcontacto con los algoritmos de análisis sintáctico en la realización de un programa para alcanzarambos objetivos.

Entre las facilidades que no deberían faltar destacaremos:

-edición de los ficheros que constituyan la gramática. Sería recomendable edición orientadaal formato si este es mínimamente complejo

-compilación y verificación de los mismos, con mensajes claros acerca de las incorreccionesdetectadas

-transformación de la gramática a formatos de interés: YACC, Wild Card Parsing(Willemse[90].

-sencillez máxima para la variación del algoritmo sintáctico, a ser posible sin recompilación

-análisis automático de córpora textuales en modo normal y paso a paso

-visualización de los árboles sintácticos obtenidos

-generación de ficheros de resultados:-árboles escritos en ASCII-análisis mediante paréntesis etiquetados-posibles causas de la incorrección de las frases

agramaticales-estadísticas sobre la utilización de símbolos y reglas durante el análisis

El programa se desarrolló en entorno PC por razones de accesibilidad, para facilitar su usopor parte de lingüistas, ingenieros... sin necesidad de un hardware especial.

Tras comenzar la programación con TURBOC (siguiendo la tradición existente ya en elDepartamento de Ingeniería Electrónica), al poder disponer de su "lógico heredero" el compilador

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

BORLANDC++, cambiamos inmediatamente (sin más que un pequeño aunque imprevisto cambioen la semántica de los pre- y post-incrementos). Aunque no hemos explotado sus más avanzadasposibilidades (la programación orientada a objetos o para MS-WINDOWS) hemos optado porcompilarlo siempre en modo C++ (a pesar de su lentitud).

Por sencillez y portabilidad no hemos usado la pantalla en modo gráfico: los árbolessintácticos serán presentados en modo texto. Para una presentación más espectacular, que no útil,existen programas que convierten la estructura de paréntesis etiquetados en árboles en formatoLATEX.

VII.2 Estructura de la gramática

Dado que el presente trabajo tiene un carácter introductorio en el campo de la sintaxis, ydado el estado cambiante del mismo, la organización y formato de los ficheros gramaticales serásencilla sin caer en la simpleza. Aunque el saber acumulado tras el empleo del entorno no seperderá, una estructura avanzada o a la moda podría llegar a suponer una gran cantidad de tiempoinvertido en balde.

Siguiendo un enfoque formal generativista, como en general haremos, decidimos aislar almáximo los componentes léxico y sintáctico; entre el diccionario y la gramática de contexto libreexistirá un interfaz de traducción con objeto de que los cambios en una afecten mínimamente alotro y viceversa. Un cambio en las categorías presentes en cualquiera de los dos, debido quizás a lasustitución del diccionario por una base de datos morfológica o semántica o por unos de esosrobustos módulos de categorización léxica presentes en los sintetizadores texto-habla, deberíasuponer tan sólo unos pequeños cambios en el interfaz. Como ejemplos de ventajas de esteplanteamiento tenemos:

-la conocida dificultad de los categorizadores para distinguir los nombres sustantivos de losnombres adjetivos si están basados en morfología y carecen de información sintáctico-semántica, notiene porqué hacernos cambiar la gramática, simplemente habrá que añadir una línea al interfazindicando que los diferentes tipos de sustantivos y adjetivos sintácticos se corresponden con laúnica categoría léxica nombre que produce el categorizador

-la sustantivización de elementos tales como adjetivos adverbios de lugar y tiempo... puedeser elegantemente modelada como una traducción de sus categorías léxicas en varias categoríassintácticas, una de las cuales sería la de sustantivo

-las características especiales de la preposición POR (propia de la pasiva) o de lapreposición SEGÚN (que puede carecer de término sustantivo y aparecer sola) no las impidefuncionar en la mayoría de los casos como preposición ordinaria. Gracias al fichero interfaz, en esoscasos, se puede ocultar su carácter especial traduciéndolo en el fichero interfaz en vez de en lagramática

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

VII.3 Formato del diccionario

Las palabras, una por línea del fichero, deberán estar ordenadas: si no, la verificación de lagramática detectará el error e impedirá su uso). Un programa auxiliar ordena diccionarios con elformato correcto y de tamaño arbitrario. Si no excediese los 64K, es más rápido pasar eldiccionario previamente a través del filtro SORT del sistema operativo, que utiliza la memoria pararealizar la ordenación. Como no sigue la numeración ASCII y ordena por igual las mayúsculas y lasminúsculas...deberemos ejecutar el programa auxiliar, pero al estar parcialmente ordenado tardarápoco en acabar.

La extensión del diccionario será .DIC, con igual nombre que el resto de los ficherosgramaticales.

��������������������������������������������������������

�� ��

�� FICHERO .CMT ��

�� ��

��������������������������������������������������������

��

��������������������������������������������������������

�� ��

�� FICHERO .GRA ��

�� ��

��������������������������������������������������������

��

��������������������������������������������������������

�� ��

�� FICHERO .REG ��

�� ��

��������������������������������������������������������

�� ��������������������������������������������������������

�� ��

�� FICHERO .DIC ��

�� ��

��������������������������������������������������������

Ilustr. 17 Organización de la gramática.

Palabra_1 NumCategoría_iPalabra_1 NumCategoría_j

⋅⋅

Palabra_2 NumCategoría_l

⋅⋅

Palabra_N NumCategoría_M

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Un fichero adicional .AUX traducirá a categorías léxicas los NumCategorías deldiccionario. Se emplean números por ahorrar espacio y ganar velocidad; con un editor de dosventanas se puede cómodamente rellenar el diccionario sin equivocarse al categorizar la palabras.

VII.4Formato de los ficheros .REG

Queda recogido en elrecuadro 19.

VII.5 Formato del fichero .GRA

Para la definición de la gramática de contexto libre usaremos un lenguaje sencillo cuyagramática en notación simple es la del recuadro ¡Error!Marcador no definido. :

! 54" 30"desescuchadas" 3"politicismo" 2, 17- 17: 55; 17? 47a 51a 6abandonado 18abandonar 10abandono 2

CategoríaSintáctica_1=CategLéx_i CategLéca_j...

⋅⋅

CategoríaSintáctica_h=...

⋅⋅

CategoríaSintáctica_N=CategoríaLexica_k...

19 formato .REG

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

CadenaVacía será un carácter configurable desde el menú de opciones y que representará alsímbolo sin realización fonética. No todos los algoritmos de análisis sintáctico toleran gramáticascon cadena vacía, a si que su aceptación o no al usar la gramática dependerá del algoritmo en esemomento activo.

El carácter espacio en blanco ' ' será considerado separador de símbolos, al igual que labarra disyuntiva '|', el signo de igualdad '=' y el retorno de carro. No lo serán los caracterespredefinidos '+', '*', '(', ')', que deberán llevar intercalado antes del siguiente símbolo un separador.

Para utilizar un carácter predefinido dentro de un símbolo cualquiera deberá ir precedido dela barra de división '/'.

No se debe usar tabuladores ni barra hacia atrás '\', aunque lo permita el verificador. Estedistingue entre mayúsculas y minúsculas.

V=verbN=sustAdj=adjAdv1=adv advIns advNegAdv2=adv advIns advAutónomoPron=pronPrep=prep prepHacePrepDest=prepDestPrepOrig=prepOrig prepDeDet=art demostr posesivo

20 Muestra del fichero interfaz.

SímboloNoTerminal=Expresión_1Expresión_1=Expresión_1 | Expresión_2Expresión_1=Expresión_2Expresión_2=Expresión_2 TérminoExpresión_2=TérminoTérmino=Término2Término=( Término )Término2=SímboloTérmino2=Símbolo *Término2=Símbolo +Término2=Símbolo Término2Términos=Término2Símbolo=CadenaVacíaSímbolo=SímboloNoTerminalSímbolo=SímboloTerminal

21 Sintaxis del lenguaje de definición de la gramática.

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

El símbolo a la derecha del igual en la primera regla definida por nosotros será tomadocomo axioma generador del lenguaje. Si deseamos más de un axioma, la primer regla será del tipo:

Axioma=Axioma_1 | Axioma_2...

Finalmente, queremos reseñar que la notación descrita es una versión simplificada de laBNF extendida, no permitiéndose en la nuestra la anidación de paréntesis, estructuras del tipo (Tér-minos)* o (Términos)+ ni la inclusión de barras disyuntivas en el interior de los paréntesis. La razónhay que buscarla en la "regularización"43 y desestructuración que puede suponer para la gramáticade contexto libre su uso. Por ejemplo:

-lo incluido dentro de un paréntesis, si tiene una estructura compleja o recursiva, bienmerece la definición de un nuevo símbolo terminal

-si un paréntesis pudiera contener diversas alternativas, es que esas diversas alternativasrealizan una misma función sintáctica que convendría especifica

-la posibilidad de equivocarse al escribir una regla complicada es grande

Por todo esto no optamos por la potencia de la BNF al completo.

VII.6 Semántica de la notación empleada

Cada carácter especial posee una significación predefinida y hasta cierto punto inalterable.

La barra disyuntiva '|' indica que las cadenas de símbolos que separa son distintos modos dedesarrollar el símbolo no terminal que encabeza la regla.

El signo igual '=' permite marcar al símbolo a su izquierda como no terminal.

Las cadena de símbolos entre paréntesis serán opcionales, es decir, el símbolo no terminalde la regla podrá desarrollarse tanto con su concurso como sin él.

La adición de un signo más '+' al final de un símbolo equivale a decir que la regla acepta la

43La notación se hace compacta y formateada como la idealpara un lenguaje regular.

ORACION=(MOInicial) ORACION1ORACION1=Proposición (MOFinal)|OCompuesta (MOFinal)ORACION=(SP Coma) OImperativa|OImperativa Coma SPORACION=Interrogación Proposición1 InterrogaciónORACION=Exclamación Proposición1 ExclamaciónORACION=Exclamación OExclamat ExclamaciónOExclamat=OInterrogORACION=Interrogación OInterrog Interrogación

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

autoconcatenación de dicho símbolo un número de veces indeterminado pero no nulo.

La adición del ´* ́ equivale a añadir un '+' y encerrarlo todo, el símbolo y el más, entreparéntesis (pudiéndose así repetir el símbolo de 0 hasta INFINITO).

Si se elige la opción de simplificación de árboles, todos los símbolo acabados en unnúmero44 o un subrayado '_', no aparecerán en la pantalla ni en los ficheros generados.

VII.7 Extensión de las reglas

Los algoritmos que emplearemos usan reglas en notación simple o en una derivada de ella(la Forma Normal de Chomsky típica del CYK). El esfuerzo de compactar varias reglas en una deformato regular será por lo general estéril, ya que debemos diseñar un algoritmo que descompactelo que hemos compactado.

El método directo de compilación de reglas complejas tiene dos pasos:

-desdoblar las disyunciones, creando una nueva regla temporal por cada alternativa. De laregla:

saldrán:

En el árbol sintáctico de la regla equivale a eliminar las reglasSímboloNoTerminal=Expresión1, Expresión1=Expresión1 | Expresión2 y Expresión1=Expresión2.

-aplicar la siguiente semántica definida semiformalmente en la ilustración 23:

44Ver apartado dedicado a la sintaxis X-barra.

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Un ejemplo de extensión de regla sería:

que daría lugar a 2 elevado a 6 reglas (donde 6 es el número de paréntesis):

Partiendo del árbol sintáctico de la regla,e inicializandoa 0 la variable InParéntesis y a 1 MaxRegla:

-si existe una regla Término2=Símbolo,AñadirSímbolo();

-si Símbolo=SímboloTerminal,desde la regla nº1 hasta la MaxRegla,

si InParéntesis==1,añadir SímboloTerminal alas reglas pares;

si no,añadirlo a todas;-si Símbolo=SímboloNoTerminal,

desde la regla nº1 hasta la MaxRegla,si InParéntesis==1,añadir SímboloNoTerminal a

las reglas pares;si no,añadirlo a todas;

-si Términos=Símbolo Término2,AñadirTérmino2();

-si Términos=Término2AñadirTérmino2();

-si Símbolo=CadenaVacía,desde la regla nº1 hasta la MaxRegla,

si InParéntesis==1,añadir CadenaVacía a lasreglas pares;

si no,añadirlo a todas;-si Término=( Términos ),

copiar las reglas desde la primera hasta MaxReglaen las posiciones MaxRegla+1 hasta 2*MaxRegla;

MaxRegla=2*MaxRegla;AñadirTérminos();

23 Algoritmo de extensión de reglas.

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Evidentemente la compilación de reglas es, de este modo, ineficiente. El número de reglasasí obtenido crece de un modo polinomial y no exponencial.

VII.8 Dependencias intra-gramaticales

La escritura de la gramática en forma de varios fichero relacionados genera un conjunto deinter-dependencias que conviene no lleguen a ser molestas.

Las categorías léxica de cada una de las palabras del diccionario ha de ser traducida acategoría(s) sintáctica(s) en el fichero-interfaz45. El "ingeniero lingüístico" que trabaje en eldesarrollo de una gramática estará más seguro si el lexicón contiene al menos una palabraperteneciente a las categorías léxicas posibles; y que no se emplee ninguna con una categorizacióngramaticalmente no factible. Además el diccionario deberá tener un formato correcto y estarcorrectamente ordenado.

Las categorías sintácticas del fichero .REG han de corresponderse biunívocamente con lossímbolos terminales del .GRA, y éstos deben ser alcanzables a partir del axioma.También lossímbolos no terminales deben ser todos ramificaciones del primero de ellos, el axioma.

No deben existir reglas anulables sin cadena vacía (son indicio de error de escritura). Elcarácter opcional de todos los elementos del siguiente sintagma nominal no debe ser así expresado:

SN=(Det) (Sust) (Adj) (SintagmaPreposicional)sino que deberíamos escribir:

SN=(Det) (Sust) (Adj) (SintagmaPreposicional) #

suponiendo que la cadena vacía sea aceptada por el algoritmo de análisis y usemos elcarácter '#' como meta-CadenaVacía.

Los ciclos infinitamente ambiguos como (SN=SN1=SN2=SN) deben ser detectados yrechazados(cualquier SN admitiría un número no finito de análisis igualmente correctos, algoevidentemente absurdo e indeseable.

Una opción nos debería permitir verificar que no existen recursiones a derechas o aizquierdas (algo que algunos algoritmos no permiten), así como decidir el modo en el que soncompilados los símbolos afectados por un signo más (cada símbolo de este tipo da lugar a dosreglas que podrían ser A*=A* A y A*=A, o bien A*=A A* y A*=A).

45Es recomendable que,cuando la traducción no es ambigua,los nombres coincidan salvo ligero cambio de mayúsculas porminúsculas(Ej:Artículo=artículo) siguiendo una convención quefaciliten la escritura.

Install Equation Editor and double-click here to view equation.

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

¡Error!Nombre de archivo no especificado.Ilustr. 18 Esquema global del entorno.

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

VII.9 MENÚ PRINCIPAL

Al comenzar la ejecución del programa, y tras la cabecera gráfica y la explicativa , entramosen el menú principal.

Para escoger una opción debemos colocar la barra de selección sobre ella empleando lasflechas hacia arriba y hacia abajo, la tecla Inicio para ir a la primera opción y a la tecla Fin para ir ala última. Pulsando entonces Retorno de Carro (o la tecla Intro), se ejecutará la opción elegida.Pulsando la letra resaltada en mayúsculas dentro de la opción (en mayúsculas o en minúsculas, daráigual), obtendremos el mismo efecto.

Cuando comenzamos una sesión de trabajo con la intención de empezar, continuar odepurar el diseño de una gramática, dos serán las opciones más habituales (y que por ello serán lasprimeras):

-"Cargar en la memoria una gramática para su utilización"-"Editar fichero específico o no"

Opciones auxiliares independientes de las anteriores serán:

-Ejecutar comando o fichero del Dos-Finalizar la sesión de trabajo

Dependientes de que se cargue en memoria una gramática tendremos:

-Analizar fichero de Texto-Mostrar las Reglas de la gramática-Mostrar los Símbolos de la gramática-Listar las palabras de una categoría léxica

VII.9.1 Cargar

Lo normal será comenzar a trabajar deseando probar nuestra gramática con nuevos textos,y basándonos en los resultados, modificarla o no.

Las características de nuestro modelo por ficheros hacen necesario que se verifique lacorrección de la gramática, y la transforme.

Para una mayor claridad, legibilidad y facilidad de estudio, no escribiremos directamente elfichero .GRA, sino que en un fichero .CMT (de CoMenTario) escribiremos nuestras reglas enformato .GRA acompañadas de una líneas de comentarios, notas importantes y ejemplos. Cada unade esas líneas irá precedida de un par de caracteres de identificación que indicarán que para crearautomáticamente el fichero .GRA, esas líneas deberán ser eliminadas (aunque dicha informaciónquedará convenientemente guardada, como ya veremos en otra opción).

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

La lectura del recientemente creado .GRA o del .REG, el .AUX o el .DIC puede dar lugara detección de incorrecciones, sólo la primera de las cuales se mostrará en pantalla, ya que a talefecto se generarán: HayError.GRA, HayError.REG, HayError.AUX y HayError.DIC.

VII.9.1.1 Avisos y errores

Si al revisar el diccionario se encuentra que alguna de las Categorías Léxicas definidas en.AUX no es asignada a ninguna palabra del diccionario, se incorporará al fichero AUSENTES.DICdel siguiente modo:

%s=NumeroDeLaCategoríaLéxicaAusente

Si el desajuste se debe que el fichero .AUX que traduce las categorías léxicas a números(los empleados en el diccionario), nos hemos olvidado de alguna, definida previamente en el .REG,en AUSENTES.AUX nos encontraremos con:

CategoríaLéxicaInexistente=%u

Cuando una categoría terminal, presente en la gramática, carece de traducción a categoríasléxicas en .REG, AUSENTES.REG contendrá una línea como la que sigue:

CategoríaSintácticaNoTraducida=%s...

Como el fichero .GRA se obtiene automáticamente y sin errores del .CMT, y éste nodepende jerárquicamente de ningún otro, no será posible crear AUSENTES.GRA46.

En HayErrores.DIC podemos también encontrar:

-"Error de Formato en línea %s", que puede ser debido a:

-la presencia de una línea vacía-la no categorización de la palabra-que palabra y número de categoría no se hallen separados

por espacios en blanco.Si no nos encontramos con línea vacía, en AUSENTES.DIC podremos ver:

PalabraLeída=%u

-"Número de categoría desconocido", o sea, mayor que el máximo contabilizado en .AUX;en AUSENTES.AUX encontraremos:

46Como los símbolos no terminales serán únicamente aquellosque se encuentren a la derecha del igual ,si usamos pero no"definimos por medio de reglas" uno de ellos , se consideraráque son símbolos terminales y en AUSENTES.REG se nos indicará laimposibilidad de traducirlos a categorías léxicas.

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

%s=NumeroCategoríaSobrante

-"Palabra excesivamente larga", excede el MAXIMO=.

HayErrores.AUX nos puede señalar errores como:

-"Error de formato en línea %s", causado por una línea en blanco o la falta del signo igual"-"Símbolo %s presente en .AUX no es usado en .REG": un simple aviso que hay una

categoría léxica que no está siendo usada-"línea demasiado larga": no se puede leer entera.MÁXIMO=.

Los errores más típicos comisibles al escribir .REG son:

-"Error de formato en línea %s": ausencia del signo igual, utilización de símbolos nopermitidos como '|',... sin ir precedidos por /

-"Categoría léxica con nombre demasiado largo"-"demasiadas categorías léxicas.MÁXIMO=".-"línea demasiado larga.MÁXIMO=".

Para su aparición en HayErrores.GRA están reservados:

-"Símbolo demasiado largo %s.MÁXIMO=".-"Falta el '='en línea %s"-"Utilización de '|' en símbolo %s de la línea %s"-"Inmediatamente tras un ')' no pueden aparecer '*' o '+'"-"Demasiadas reglas.MÁXIMO=".-"Demasiados símbolos.MÁXIMO=".-"Demasiadas reglas tras transformación.MÁXIMO=".-"Demasiados símbolos tras transformación.MÁXIMO=".-"Presencia inaceptable de la CadenaVacía"

Finalmente, HayErrores.CMT puede contener:

-"Gramática sin reglas"-"Línea demasiado larga.MÁXIMO=".

En AVISOS.GRA:

-"regla %s no comentada"-"regla %s carente de NOTAS"-"regla %s sin ejemplos-"gramática no comentada": ninguna regla tiene comentario alguno-"gramática carente de NOTAS": ninguna regla tiene una NOTA-"gramática sin ejemplos": no se halla presente ningún ejemplo clarificador para ninguna

regla

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

En AVISOS.GRA:

-"la categoría léxica, indirectamente presente a través de %s+, ha sido creada"-"Debido a la recursión se ha creado las reglas..."-"Se ha usado recursión a izquierdas"-"Se ha usado la cadena vacía"

En AVISOS.AUX:

-"No se usa la categoría léxica %s"

En AVISOS.DIC:

-"Falta alguna palabra perteneciente a la categoría %u"

VII.9.1.2 Estadísticas

En Estadist.GRA:

-Relación entre el número de reglas desarrolladas y el número de símbolos:índice de lacompacidad de la forma de escribir la gramática.

-Número de reglas en las que aparece cada símbolo.-longitud media de las reglas en número de símbolos.

En Estadist.REG

-número medio de categorías léxicas asignadas a una categoría sintáctica.-relación entre número de categorías léxicas y número de categorías sintácticas terminales.

En Estadist.DIC:

-longitud media de las palabras del diccionario-número de las mismas-tiempo de lectura medio para la última palabra-número de palabras que comienzan por cada uno de los caracteres ASCII permitidos.

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

¡Error!Nombre de archivo no especificado.Ilustr. 19 Proceso de precompilación.

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

VII.9.2 Editar

La simplicidad de los formatos requeridos y la inexistencia de símbolos predefinidos largos(tampoco hay muchos caracteres reservados), nos desaconsejó la creación de un editor orientadopor sintaxis. Como el entorno no es un fin en sí mismo, ni una mera práctica académica, lasutilidades que posee el editor Norton nos parecieron suficientes para la tarea de editar los ficherosgramaticales sin mayores dificultades. Destacamos de entre las características de este editor:

-su reducido tamaño, que permite ejecutarlo desde el entorno sin necesidad de "overlays"...-no incluye en el texto caracteres especiales que "falsearían" lo escrito-permite limitar la longitud de línea, con salto automático de la misma-si el fichero que editar es grande (léase, el diccionario) y no cabe entero en la memoria, lo

carga parcialmente-las funciones habituales de manejo de bloques, búsquedas, salto a comienzo o fin de

fichero (consultar la ayuda pulsando la tecla F1)-es posible editar dos ficheros al mismo tiempo, transferir información de uno a otro,

comparar ambas ventanas...

Este último detalle es muy importante, ya que los ficheros de AUSENCIAS.* deberáneditarse en paralelo con sus respectivos ficheros gramaticales; la exigencias de la jerarquía deficheros hace también aconsejable la edición simultaneada del .GRA y el .REG, de este y el .AUXy,finalmente, del .AUX y el .DIC.

VII.9.2.1 Submenú de edición

De los específicos significados de las extensiones de los distintos fichero generados por elentorno, o de los necesarios para su funcionamiento, surge el submenú de edición.

Para escribir una gramática sólo necesitaremos usar la opción "Edición de ficherosgramaticales", que al ser escogida dará paso a otro menú con las distintas gramáticas contenidas enel directorio actual47. En el caso de no haber ninguna nos lo indicará un mensaje en pantalla:deberemos editar la nueva gramática desde la opción de "Editar fichero no específico").

Si elegimos una de las gramáticas, lo que aparecerá en la pantalla será un menú, también debarras, con las extensiones de los ficheros de la gramática seleccionada. Esta será la última elección,que nos conducirá al editor Norton con el fichero que hemos ido especificando paso a paso.

La edición de ficheros de textos nos permitirá crear los córpora que comprueben la bondadde nuestros desarrollos lingüísticos. Al escogerla aparecerá el menú de barras con los ficheros.TXT presentes en el directorio.

Dentro de la opción relativa a ficheros de resultados se nos pedirá que escojamos un texto

47Realmente llega con la existencia en dicho directorio deun fichero .CMT,no son necesarios .GRA,.REG...

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

de los disponibles en el disco, para luego solicitarnos qué tipo de resultado nos interesa, si árbolessintácticos dibujados mediante caracteres ASCII, paréntesis etiquetados, estadísticas de utilizaciónde reglas y símbolos o tiempos de "parsing", errores hallados en las oraciones agramaticales...

Los ficheros AUSENTES.* y HayError.* tienen cada uno su opción de menú y su menúintermedio, siguiéndose una mecánica de selección similar a los casos anteriores, solamente en laopción final, "Edición de ficheros no específicos", se entrará directamente al editor, que es quiennos pide, sin más menús, el nombre del fichero que editar.

Tras la edición de un diccionario, se verificará automáticamente la corrección de suordenamiento.

Recordar que las opciones de un menú que contengan una letra resaltada en mayúsculaspodrán ser escogidas sin más que presionarla en el teclado, estén o no bloqueadas las mayúsculas, yque pulsando ESC volveremos al menú precedente, incluido el principal.

Los ficheros que realizan listados del disco duro, darán u mensaje de error "No se haencontrado ningún fichero" si su busca ha sido infructuosa.

VII.9.3 Finalizar

Para salirse del programa deberemos escoger esta opción (o pulsar ESC, 'f' o 'F') yresponder 's' o 'S' a la pregunta de si deseados realmente salir del programa.

VII.9.4 Opciones

Un menú nos permite variar :

-los colores-las características del análisis o la compilación de reglas -guardar la situación actual

de los parámetros variables en el fichero de configuración por defecto

VII.9.5 Mostrar reglas

Aparecerán las reglas extendidas de veinte en veinte. Moviendo la barra resaltadarecorreremos las reglas; para ver de qué regla no extendida proceden, pulsaremos F2.Las notas, comentarios y ejemplos presentes en nuestro fichero .CMT se podrán ver por medio de F3.

Todas las convenciones de manejo de menús de barras son válidas aquí: tecla de Inicio,tecla de Fin...

ESC nos hará pasar a ver las siguientes reglas, y con Pausa volveremos al menú principal.

La velocidad, lenta, con la que se escriben en la pantalla las informaciones pedidas, se debeachacar a la necesidad de leer los ficheros numerados (un número sin extensión) donde se guarda la

CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

regla original y su información asociada. Las reglas creadas por el programa para gestionar lossímbolos acabados en '+' poseen comentarios también creados por programa.

VII.9.6 Mostrar símbolos

Permite ver, de veinte en veinte, los símbolos definidos por el usuario al escribir lagramática y las categorías léxicas del diccionario. Seleccionando uno de ellos y pulsando F2, para elsímbolo seleccionado, una ventana nos mostrará de qué símbolos no terminales puede ser nodo-hijoen un árbol sintáctico (eso quiere decir que, siguiendo al notación por niveles, si Det aparece en unaregla SN1=Det..., no será SN1 quien aparezca, sino SN, símbolo no terminal visible). También senos dirá cuáles son las categorías léxicas en las que admite debajo (si editamos las categoríasléxicas, la única información disponible será esta última invertida: en qué categorías sintácticasterminales se puede convertir la seleccionada).

Las convenciones son las de siempre; pulsando ESC saltamos a los siguientes veintesímbolos o categorías léxicas (éstas aparecen cuando se acaban los anteriores); la tecla Pausa nosdevuelve al menú principal.

VII.9.6 Analizar texto

Un menú de barras nos muestra los ficheros .TXT que tenemos en el directorio actual, sinverificar si se trata de ficheros de auténticos ficheros de texto (las longitudes de línea menores queel máximo permitido, no existencia de símbolos especiales como el tabulador...).

Frase a frase (una frase será cualquier secuencia de caracteres ASCII acabada con unpunto) se buscarán la palabras en el diccionario categorizado. Las que no se encuentren, seránacumuladas en NuevaPal.DIC para que al acabar de analizar el texto se llame al editor Norton ycategorizar NuevaPal.DIC; al salir del editor se mezclará el fichero editado con el diccionario y seordenará; nos preguntará si deseamos o no repetir el análisis.

Si una línea del texto excede la longitud máxima, se nos indicará y finalizará el análisis.

ORACION=(SP Coma) OImperativa|OImperativa Coma SP

<< Las oraciones Imperativas admiten llevar "por favor"... << antepuesto o pospuesto. ºº LA SEGUNDA ALTERNATIVA CARECE DE PARÉNTESIS PARA EVITAR ººLA DUPLICACIÓN DE REGLAS çç por favor , dame lo mío. çç dame lo mío , por favor.

Ilustr. 20 Comentarios asociados a una regla.

CAPITULO VIII: LINGUISTICA APLICADA⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

CAPITULO VIII

LINGÜÍSTICA APLICADA

VIII.1 Los conceptos de oración y enunciado

Si se suele coincidir en la definición de enunciado como una cadena perteneciente al hablasituada entre dos pausas mayores (generalmente puntos), la definición del término oración hasuscitado abiertas controversias.

Desde un enfoque semántico, la oración estaría constituida por uno o más enunciados consentido completo. La formalización del concepto de sentido completo es posible en determinadosentornos no completamente naturales (accesos a bases de datos, fundamentalmente, donde cadenunciado debe corresponderse con una petición a la misma, siendo inaceptables las peticiones cuyalógica no se ajuste al esquema conceptual de la base). En ámbitos más generales y no tanrestringidos, la formalización parece hallarse lejos y, en todo caso, precisaría de la intermediaciónde la sintaxis.

Ante estas dificultades preferiremos el enfoque sintáctico-formal: para el generativismo, laoración es el axioma del que se parte para analizar la lengua. Esta axiomatización no presuponedefinición alguna: con una adecuada escritura de las reglas la oración puede variar sustancialmentede contenido, desde la más complicada estructura subordinada al más simple sintagma pasando porlimitarse a las proposiciones dotadas de verbo en forma personal.

El enunciado será bien fragmentario bien oracional, y la oración podrá ser de posiciónrelativa (proposición inserta en otra de orden superior) o absoluta.

VIII.2 Sintaxis del enunciado fragmentario

Rapidez, emotividad o economía expresiva hacen que en diálogos, obras literarias,publicidad... se pausen como enunciados algunos sintagmas que desde un punto de vista formalistacarecen de autonomía sintáctica. La entonación y el contexto lingüístico o extralingüístico nospermiten asignar una significación a breves respuestas, exclamaciones, títulos...

Con nuestro entorno sólo podremos estudiar su sintaxis, teniendo que pasar por alto cómola variación de la entonación convierte "¡Bien!" en una expresión irónica o de reproche consignificado opuesto al habitual.

Aunque desde posiciones generativistas (Hernanz[87], página 56) se ha criticado el analizar

CAPITULO VIII: LINGUISTICA APLICADA⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

como oraciones los simples fragmentos carentes de verbo en forma personal en torno al cualordenarse, o sin independencia sintáctica, el pragmatismo que nos guía hace aconsejable tratar a lavez las oraciones formales y las "informales", aunque sin mezclarlas. Sin el estudio sintáctico de losfragmentos no podremos abordar sistemas basados en diálogo de una mediana complejidad, ni lacomprensión de textos con pocas restricciones.

En esta recta final cambiaremos el nombre de nuestro axioma gramatical, que ya no será laoración sino el enunciado, y distinguiremos entre oraciones formales y fragmentos (éstos no seránsusceptibles de aparecer en posiciones no absolutas: subordinaciones no entrecomilladas por serliterales...).

Así nuestra gramática será más robusta frente a texto irrestringido, aunque sin quepretendamos hacerla plenamente robusta, que acepte todo enunciado como correcto y le asigne unaestructura conocida o improvisada. En un entorno de reconocimiento de voz eso exigiría una tasade reconocimiento de palabras cercana a la infalibilidad, y eliminaría totalmente la posibilidad deguiado por sintaxis48.

VIII.2.1 Fragmentos y elipsis verbal

Conviene diferenciar a los fragmentos de las proposiciones con elipsis verbal recuperable apartir del contexto lingüístico oracional. En:

"el ganador recorrió 220 kilómetros y el segundo clasificado, la mitad"

no podemos considerar que "el segundo clasificado la mitad" constituya un fragmento coordinadocopulativamente con una proposición, ya que la pausa que antecede a "la mitad" nos señala laausencia del verbo, que, debido al paralelismo entre los sintagmas nominales, fácilmenterecuperamos de la primera proposición.

No obstante, la ausencia de antecedente en el interior del presente enunciado, si que darálugar a fragmento:

"el segundo clasificado, la mitad"

En la subordinada adverbial causal:

"porque él no quiso"

encontramos un verbo en forma personal articulando toda una proposición, pero ésta indica lacausa de un efecto no comprensible simplemente por el contenido del enunciado. Un "parser" 48En sistemas de lectura o comprensión de texto escrito yfiable,el análisis de fragmentos muy alejados del conceptoclásico de sintagma,una heurística de emergencia deberíaintentar ,partiendo de los constituyentes mayores o estadística-mente más probables,usar programación dinámica...para construir-les un árbol.Ver Russi[].

CAPITULO VIII: LINGUISTICA APLICADA⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

superior, de carácter semántico pragmático, debería enlazar nuestra subordinada con sucorrespondiente principal, completando así el sentido del texto.

VIII.2.2 Clasificación pragmática de los fragmentos

-respuestas: ver el capítulo dedicado a la oración interrogativa.

-exclamativas: consultar "Las oraciones exclamativas"

-imperativas informales:"Fuera"; "casa"

-descripciones rítmicas:"el patio, con su fuente y sus rosales.La cocina, con su puchero y su

gazpacho.Todo era típico"

-títulos de todo tipo de obras, objetos..."El sí de las niñas"

-refranes populares:"perro labrador, poco mordedor"

-dichos y tópicos:"un hombre, un voto"

-anuncios:"consulta a las cinco"

-fragmentación retórica:"nunca profeséis de gracioso.porque siempre hay ganas de reír.Aunque no falten

motivos para ello"

-fragmentos fáticos:"hola"; "¿que tal?"

VIII.2.3 Clasificación sintáctica de los fragmentos

-proposición de infinitivo:"No tener tanto que trabajar""a correr al patio hasta que os canséis"

-proposición de participio:"marido cansado de esperar a su esposa""prohibido el paso"

CAPITULO VIII: LINGUISTICA APLICADA⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

-proposición de gerundio:"jugador lanzando un golpe de castigo"

-otras subordinadas substantivas:"que te digan a los sesenta que ya eres viejo...""¡que ya no sirves!"

-otras subordinadas adjetivas:"que te quiere bien" (a modo de comentario)

-otras subordinadas adverbiales:"a pesar de lo dicho"

-sintagmas nominales varios:"papá y el periódico""peligro de muerte""silencio""última edición"

-sintagmas adjetivales varios:"verde por fuera,rojo por dentro"

-sintagmas adverbiales varios:"Bien""nunca más"

-sintagmas preposicionales:"¡a mi edad!""¿para qué derramar más sangre?"

VIII.3 La oración formal

Para que un enunciado sea formalmente una oración completa, deberá tener un verbo enforma personal (por elevación X con barra, un SintagmaVerbal).La misma caracterización de eseverbo como personal implica la existencia explícita o implícita, de un sujeto concordante con él.Aunque existen verbos que no admiten sujeto (meteorológicos como llover o impersonales reflejoscomo en se come bien allí), la mayoría de las oraciones que en castellano carecen de sujeto poseendesinencias verbales que nos permiten recuperarlo.

No consideraremos la flexión como constituyente inmediato de la proposición debido a queello supone una transformación en la estructura sintáctica por extracción de un elemento delsintagma verbal para situarlo entre éste y el sujeto. Como nuestras reglas de contexto libre impidenestos fenómenos, la flexión debe ser un rasgo que el sintagma verbal transmite al nivel proposición,que será quien verifique la concordancia con el sujeto49. 49 En los casos de elisión de sujeto deberá descender al sujeto elidido y caracterizarlo para otras posibles concordancias odeterminaciones.

CAPITULO VIII: LINGUISTICA APLICADA⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Pero la relación entre sujeto y verbo no se limita a la concordancia: pueden existir mássintagmas nominales que concuerden con el verbo y no sean sujetos, incluso puede haber un solosintagma nominal que concuerde con el verbo y lo anteceda sin tener por ello que ser su sujeto:

Propos[SN[las] SV[cogieron] SNSujeto[entre Juan y Pedro]]

La función de sujeto no se somete fácilmente a las reglas sintagmáticas y precisaría de unadeterminación posterior si no queremos limitarnos a oraciones de estructura:

Proposición→(SintagmaSujeto) SintagmaVerbal

o la muy ambigua:

Proposición→SintagmaVerbal Sujeto

En el capítulo de líneas futuras veremos como otros módulos adicionales de "parsing"podrían contemplar este caso y el de los constituyentes discontinuos:

Proposición[ SV[ transcurre diabólicamente] Sujeto[ el tiempo] SV[ SPrep[ con lentitudpropia de otras épocas ]]]

VIII.3.1 El sintagma nominal

En torno al sustantivo (al menos principalmente) se ordena uno de los dos constituyentesinmediatos de la oración: el sintagma nominal50. Siguiendo la sintaxis X con barra, será laproyección máxima del nombre, y en distintos niveles de ascensión se le irán añadiendodeterminantes, modificadores, la coordinación y la subordinación...

Aunque su papel temático o funcional varía (sujeto, objeto...), característica sintácticascomunes a todos ellos los hacen perfectamente integrables en un análisis mediante ordenamientos.Como muestra compárese la estructura de "una fuerte tormenta de nieve" en:

"una fuerte tormenta de nieve azotó la comarca" (sujeto)

"los meteorólogos anuncian una fuerte tormenta de nieve (objeto directo)

"todos temen el inicio de una fuerte tormenta de nieve" (término de un sintagmapreposicional complemento de nombre) 50En Brucart[], al sintagma nominal y verbal se añade laflexión,donde residirá la información de concordancia entreambos y que ,según los autores ,podrían ser considerado núcleode la oración.Como la flexión es parte del verbo,inseparablesintácticamente de él,nuestro formalismo no podría interpretarcorrectamente una gramática así.Los rasgos heredados porelevación cumplirán un papel similar.

CAPITULO VIII: LINGUISTICA APLICADA⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

"el invierno comenzó con una fuerte tormenta de nieve" (término de un sintagmapreposicional complemento del verbo)

VIII.3.1.2 Constituyentes del Sintagma Nominal

Tres tipos de elementos, con sintaxis muy particulares, pueden constituirse en núcleos delsintagma nominal: el nombre común, le nombre propio y el pronombre personal.

VIII.3.1.2.1 El nombre propio

Destacar sólo, dado que le dedicaremos a continuación un capítulo entero, que elanalizador léxico debería tener un mecanismo de inducción ya que no se basan en morfología ni sonnumerables, siendo desaconsejable la lista cerrada salvo en dominios semánticos muy restringidos.

VIII.3.1.2.2 Los pronombres personales

Conservan restos del sistema de casos del latín: como sujeto sólo pueden usarse yo, tu...;como complemento directo: la, lo...; como términos de una preposición no todos son factibles; alralizar funciones de complemnto directo equivalen a sintagmas con la preposición la...

Léxicamente presentan la particularidad de poder unirse al verbo y saltarse, al igual que lascontracciones, los espacios en blanco como delimitadores categoriales. Como los pronombres nopueden ir tras el verbo de otro modo, la gramática será distinta si incluimos el pronombre en elverbo o si los separamos.

Conviene categorizarlos por casos (sujeto, complemento directo...) y diferenciarlos paralimitar las posibilidades de coordinación y repetición (no es posible coordinar dos complementosdirectos pronominales; raros son los casos de doble complemnto directo; no son posibles lascombinaciones le lo...).

En los casos de elipsis siempre es posible sustituir el verbo ausente por un pronombrepersonal que concuerde con el verbo y realice las funciones del sujeto ausente.

VIII.3.1.1.3 El nombre común

Da lugar a la forma más general de sintagma nominal. Admite determinantes, sintagmasadjetivos o preposicionales previos, aposiciones nominales adjuntas o explicativas, sintagmasadjetivos y preposicionales posteriores, proposiciones de relativo con o sin preposición...

Las ambigüedades que pueden surgir de las reglas que contemplen tanta diversidad suelentener su origen en la rección prepositiva: si admitimos que cada nombre pueda tener comocomplementos a sintagmas preposicionales sin restricción alguna, la presencia en el sintagmanominal de varios complementos de ese tipo da lugar a, al menos, dos análisis: el segundo sintagmacomo complemento del primero o como complemnto del núcleo. Si admitimos complementos

CAPITULO VIII: LINGUISTICA APLICADA⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

preposiconales dentro de sintagmas adjetivos o aque se encuentren más allá de una proposición derelativo, las ambigüedades crecerán.

Para recortar su número, cada núcleo debe llevar codificada la información dequépreposiciones pueden regirlo. El número de sílabas o palabras de los sintagmas intermediosinfluye en la gramaticalidad de complementos lejanos, pero supone otra sencilla modificación en el"parsing".

Los sitagmas preposicionales previos al núcleo son problemáticos. Su escaso uso(generalmente por razones estéticas o de métrica) y la extrañeza que producen al oyente, nosrecomiendan su esclusión del patron más genérico del sintagma nominal.

VIII.3.1.3 ¿Nominalización o elipsis?

La ausencia de núcleo nominal en muchos sintagmas que pro su estructura deberían tenerloabunda en castellano. A lo largo de la historia de la lingüística se han sostenido diversas hipótesispara su explicación:

-la nominalización del determinante: en sintagmas como un desesperado, este de verde, misviejos... la función de núcleo recaería sobre el artículo, el demostrativo, la familia léxixa de ningún...

-la nominalización de los complementos: o sea, del adjetivo, el sintagma preposicional o laproposición de relativo en: el que te pegó, los blancos, los de Pamplona...

-la elipsis del núcleo nominal, que deberíamos extraer del contexto lingüístico o desituación. Hablando de fútbol, los de negro serían los señores de negro, los árbitros; en los dePamplona se sobreentiende el núcleo habitantes...

Si admitimos una de las opciones pronominalizadoras, podríamos incluir en el lexico lacategorización de los elementos nominalizables como sustantivos; así madrileño sería nombrecomún gentilicio además de adjetivo relativo a Madrid. La naturaleza sintáctica del problema no lohace aconsejable: los elementos pronominalizados sólo funcionan como tales en estructuras desintagma nominal muy determinadas. Deberíamos crear reglas que traten dichas estructuras yutilizar categorías intermedias AdjetivoPronominalizado, ArtículoNominalizado... para dejar claroen nuestros árboles cuál es nuestro modo de abordar el problema.

Si optamos por la elipsis (algo muy común en el generativismo) usaremos una categoríavacía NucleoNominal sub lambda que deje constancia de la ausencia del sustantivo51 y permitirá aotros módulos semántico-pragmáticos su relleno.

Aunque el tema no admite un tratamiento homogéneo52 (el artículo nuetro sí parece realizarlabores de núcleo al ir acompañado de adjetivos, sintagmas preposicionales o proposiciones de 51 Si el método de parsing no admitiera la cadena vacía siempre podríamos marcar la regla como especial y posprocesar los árbolesque la contengan.

52 En Hallebeek[91] se puede hallar una pequeña gramática para este tipo de sintagmas.

CAPITULO VIII: LINGUISTICA APLICADA⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

relativo), las diferencias entre los diversos planteamientos expuestos son mínimas al escribir lasreglas sintácticas (no funcionales).

VIII.3.2 El sintagma verbal

La importancia del verbo queda ya reflejada en su etimología ( verbum, la palabra).Aunque mucha gente asocia palabra con sustantivo, es el verbo la más característica de las palabrasde una oración gramaticalmente completa.

Ya hemos visto como el verbo concuerda con un elemento externo a su propio sintagma, elsujeto. Sin embargo, la verdadera riqueza sintáctica asociada a él se da en las relaciones quemantiene con sus otros complementos. La intimidad de trato que el verbo tiene con sus objetosdirecto e indirecto fue señalada por la gramática tradicional, diferenciando así a estoscomplementos de otros calificados como accesorios o circunstanciales.

Estos últimos complementos no subcategorizados gozan de una notable libertad demovimientos que dificultan considerablemente el análisis automático. Ellos provocan los másabundantes casos de relaciones lejanas intraoracionales y sintagmas discontinuos, provocando lamultiplicación del número de ambigüedades que ya causaban los sintagmas preposicionales en elinterior de los nominales.Como es necesario establecer marcos de subcategorización para losverbos, será en líneas futuras donde se siga tratando esta cuestión53.

VIII.4 La coordinación y la yuxtaposición

Definiremos la coordinación y la yuxtaposición como la concatenación de dos sintagmas uoraciones mediante nexos formales copulativos o yuxtapositivos, para formar un sintagma uoración de nivel X-barra superior.

Bajo este paraguas aparentemente sencillo se cobijan gran diversidad de fenómenos:oraciones asemánticas, jerarquías, subordinaciones sin nexo de subordinación tradicional,cuestiones estilísticas, ambigüedad en el ámbito...

Desde un punto de vista tradicional, no deberíamos analizar la coordinación y layuxtaposición conjuntamente: la ausencia de nexo gramatical en la segunda las diferencia claramen-te. Sin embargo, las relaciones tan estrechas que mantienen y sus características formales comunesjustificarán nuestra decisión (lo formal o estructural es lo que mejor podemos tener en cuenta conlas gramáticas de contexto libre).

Aunque lo semántico no es objeto principal de nuestro análisis, no se puede dejar de señalarque el significado desempeña un papel crucial en su funcionamiento. Desde concatenación deoraciones no relacionadas:

53 Por esta misma razón en la gramática incremental que estamos desarrollando nos hemos centrado en la estructura del sintagmanominal.

CAPITULO VIII: LINGUISTICA APLICADA⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

"Mis tíos se han ido de casa; el caballo parece mayor"

a la yuxtaposición con valor de coordinación:

"Comió peras, manzanas..."

o la subordinación consecutiva por medio de coordinación :

"fue empujado y cayó"

La independencia gramatical, y no la lógica, nos guiará a la hora de analizarlas: un módulosemántico o pragmático debería estudiar la propiedad o no de las concatenaciones que la sintaxisha aceptado. Esa misma independencia las diferenciará de las subordinadas incluso cuando todasellas puedan ser funcionalmente equivalentes: las oraciones subordinadas se integran en susrespectivas principales; las coordinadas y yuxtapuestas, no.

VIII.4.1 Paradigma transformacional

Al enfrentarnos a oraciones como:

"Juan comió y bebió todo lo que quiso"ó

"Juan es el autor y director de la obra"

podíamos considerar que se han producido una serie de elisiones no particularmente complejas apartir de:

"Juan comió todo lo que quiso y Juan bebió todo lo que quiso"

"Juan es el autor de la obra y Juan es el director de la obra"

Un enfoque radicalmente transformativo conlleva complicadas manipulaciones, elisiones...:

"Juan y María fueron al parque"

que realmente, en la estructura profunda sería:

"Juan fue al parque y María fue al parque"

Otro ejemplo sobre la existencia de coordinación y yuxtaposición en niveles no oracionaleslo encontramos en:

"un capón y una perdiz fueron comidos por ellos durante el banquete"

VIII.4.1 Aritmética coordinativa

CAPITULO VIII: LINGUISTICA APLICADA⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

Hasta ahora la mayoría de los ejemplos vistos seguían las reglas habituales de la aritmética:

singular+singular == pluralsingular + plural == pluralplural + singular == pluralplural + plural == plural

Existen, sin embargo, casos donde la suma de números no se produce:

"la directora y autora de la obra fue llamada al orden"

aunque:

"directora y autora de la obra fueron llamadas al orden"

También:

"me gustó la chica flaca y joven"

pero:

"la flaca y la joven no me gustan"

Parece que la determinación desempeña un papel importante para no tener que admitirambigüedad en el número a la hora de analizar los sintagmas nominales:

SN[ Det[ la ] Núcleo[ directora y autora ]]

y

SN[ SN1[ directora ] y SN1[ autora ]]

Así mismo:SN[ Det[ la ] Núcleo[ chica ] SAdj[ flaca y joven]]

y

SN[ SN1[ la flaca ] y SN1[ la joven ]]

VIII.4.2 Coordinación y elipsis

La fuerte relación entre elipsis y coordinación da lugar a abundantes ambigüedades:

"estos tres y aquellos cuatro maleantes..."

CAPITULO VIII: LINGUISTICA APLICADA⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

podría ser estructurado como:

SN[ Det[ estos tres y aquellos cuatro ] maleantes ]

o como:

SN[ SN1[ Det[ estos tres ] ] y SN1[ Det[ aquellos cuatro] maleantes ] ]

dependiendo del contexto extralingüístico en que sea enunciada (debe ser un módulosuperior el que desambigüe).

El análisis automatizado basado en ordenamientos encuentra más ambigüedades que lasreales, debido a la falta de información semántica, pragmática o de pausado. En:

"mujeres que van y vienen corriendo"versus:

"mujeres que van | y vienen corriendo"

o:"el ganado o los carros cavando las tierras o llevando en la cabeza las sellas del

agua o las cestas con fruta o pescado"

donde formalmente es posible la coordinación inverosímil:

"el ganado o los carros...o las cestas...o pescado"

VIII.4.3 Homogeneidad de coordinación

Habitualmente las estructuras coordinadas son del mismo tipo: sintagmas nominales,sintagmas adjetivales, verbos... La regla general nos dice que es la función más que la sintagmáticala que rige la coordinación:

"el chico pelirrojo y de mirada tierna..."

"del amigo amable y que te asegura fidelidad eterna, desconfía"

donde se coordinan diferentes sintagmas en función de modificador del sustantivo.

A pesar de esto el planteamiento sintáctico nos será útil sin más que permitir lacoordinación heterogénea en entornos delimitados, evitando aceptar ejemplos extremos(gramaticales o no):

"comió lechuga y de pie"

CAPITULO VIII: LINGUISTICA APLICADA⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

VIII.4.4 Tipos de coordinación oracional y su prioridad

Tradicionalmente la coordinación se divide (por sus nexos y significación) en:

-copulativa : "ni corrió ni se cansó"-disyuntiva : "lo mató o hizo algo parecido"-adversativa : "es muy trabajador pero no le cunde"-distributiva : "ora corre,ora anda: nunca está quieto"-explicativa : "es gallego, o sea, es peligroso"

De ellas sólo la adversativa no admite ni estructuras bimembres ni recursión.

?"se comió el pastel entero, pero no le sentó mal; sin embargo fue al médico"

En las principales gramáticas consultadas no se analiza la combinación en una mismaproposición de distintos tipos de coordinaciones (posiblemente por su no existencia en los textosliterarios de donde suelen sacar los ejemplos):

"hombre y mujeres, niños desamparados, ancianos y ancianas..."

VII.5.La sintaxis X con barra

Es normal que las categorías léxicas se proyecten sintacticamente dando lugar a sintagmasque lleven su nombre: (sintagmas verbal, nominal, preposicional...) porque, de algún modo, esascategorías constituyen el nucleo que les da entidad.

Dicho camino de ascensión ha sido directo en la gramática tradicional, sin reflejarsubestructuras intermedias presentes en dichos sintagmas:

-la relación especial entre un sustantivo y sus modificadores o entre un verbo transitivo y sucomplemento directo (al que va casi siempre adosado, sólo delante en las interrogativas...).

-la recursividad de un elemento (los varios adjetivos consecutivos que pueden anteceder osuceder a un sustantivo...) no debe multiplicar la presencia de éste en el árbol, como lo harían reglascomo:

donde se repite SintagmaAdjetival, un símbolo del cual no se puede prescindir en el árbol

Con el fin de aumentar de un modo sencillo y sistemático las categorías clásicas, Jackendoffpropuso que cada una de ellas adoptara una estructura de niveles numerados que toman su nombredel núcleo del sintagma y que se relacionan entre si de acuerdo con el patrón:

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.

CAPITULO VIII: LINGUISTICA APLICADA⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗

¡Error!Marcador no definido.

En nuestro entorno no seguiremos de un modo purista la notación X con barra empleadapor los lingüistas y conservaremos la noción de Sintagma nominal sin considerarla simplementecomo la proyección máxima del nombre y así evitar que tengamos que definir un número máximo omínimo de proyección (cuestión siempre muy polémica). Como los niveles intermedios,caracterizados por acabar en un número, no aparecerán en los árboles para evitar que éstos seanexcesivamente densos a la vista y aunque se usen en la estructuración de la gramática, debemoscuidar especialmente la existencia de extremos dibujables, que no acaben en número o comiencenpor subrayado.

Como ejemplo de su uso encontramos en M. L. Gutiérrez[78], convenientementetransformado a reglas sintácticas:

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

CAPITULO IX : EJEMPLO DE DESARROLLO DE UNA GRAMÁTICA¡Error!Marcador no definido.

CAPITULO IX

EJEMPLO DE DESARROLLO DE UNA GRAMÁTICA :EL NOMBRE PROPIO

Para explicar la metodología recomendada para construir una gramática que cubradeterminados aspectos del castellano natural, estudiaremos incrementalmente la del nombre propio,generando un pequeño conjunto de reglas para los sintagmas nominales que tengan al nombrepropio como núcleo54.

Los manuales generales de gramática del español apenas tratan las estructuras de dichossintagmas (especialmente si se apoyan en textos literarios para dar ejemplos). Se justifica sucarácter de categoría léxico-sintáctico-semántica diferenciada apoyándose en que:

-se escriben con mayúsculas y muchas veces este hecho nos permite reconocerlos

-suelen carecer de morfemas (salvo casos de composición como en: calle de"Rompeteelalma", donde se nominaliza y se hace propia una expresión...)

-no se hallan en los diccionarios sino en las enciclopedias porque carecen de semánticaconnotativa; Luisa, Barcelona... no son definibles sino que simplemente denotan seres humanos,entidades geográficas... concretas.

-la presencia de determinantes y complementos no es frecuentemente admisible o suponeuna importante variación o matiz de significado; comunalización+vulgarismo ("el Pepe"),temporalización ("la Marbella que tú conociste"), metonimia ("un Velázquez")...55

Normalmente el nombre propio se presentará solo, carente de complementos o 54 No entraremos en detalles sobre otro tipo de sintagmas(aunque también sean nominales);los ejemplos analizados usaránla gramática general que estamos desarrollando en su estadoactual;se ha procurado evitar interferencias con otros problemasdel castellano usando oraciones sencillas o sólo el análisisprincipal.

55 La comunalización puede ser tal que haya duplicación:"Mecenas",nombre propio latino;"mecenas",nombre común quedesigna a un benefactor de artistas.

CAPITULO IX : EJEMPLO DE DESARROLLO DE UNA GRAMÁTICA¡Error!Marcador no definido.

determinantes y rama única del nodo de un sintagma nominal (sujeto, complemento directo..). Unasencilla regla:

daría cuenta de ejemplos típicos del acceso a una base de datos o un libro de gramática:

"dame todos los vuelos del aeropuerto de Madrid hasta Barcelona"

"eran la flor de su pueblo de Vizcaya"

"Juan parece tonto pero no lo es"

Install Equation Editor and double-click here to view equation.

ORACION ≥ Proposición ≥ SVAtrib ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗↵ VerbCop Atrib ≥ ≥ ≥ SN ≥ ∨⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗↵ ≥ DET Nucl SPdirecc ≥ ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗↵ ≥ Det N PrepOrig SNOrig ≥ ≥ ≥ ≥ ∨⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ ≥ DET Nucl SPdeProp ≥ ≥ ≥ ≥ ≥ ≥ ∨⊗⊗⊗⊗⊗⊗ℑ⊗⊗↵ ≥ ≥ ≥ ≥ Det N PrepDe NombreProp ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ eran la flor de su pueblo de Vizcaya

ORACION

≥ OCompuesta

≥ OCoordinada

≥ OAdversativa

∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ Proposición NexoAdversat Proposición ∨⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗↵ ≥ ≥ SN SVAtrib ≥ SVAtrib ≥ ∨⊗⊗ℑ⊗⊗⊗↵ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗↵ NomProp VerbCop Atrib ≥ AdvNegativo PronPreVerb VerbCop ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ SAdj ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ Adj ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ Juan parece tonto pero no lo es

CAPITULO IX : EJEMPLO DE DESARROLLO DE UNA GRAMÁTICA¡Error!Marcador no definido.

Como admite la coordinación con otros nombres propios o incluso otro tipo de sintagmasnominales, no aparecerá directamente bajo SintagmaNominal, sino bajo SintagmaNominal_1, suderivado para coordinación:

"No aparecieron ni Juan ni el alcalde de la ciudad"

"Juan y Pepe fueron los autores"

En ese mismo nivel situaremos las aposiciones explicativas (las que van entre comas):

"Juan, que no parece fiable, será el jefe"

"Juan, rebelde hasta el extremo, no lo admitió"

Install Equation Editor and double-click here to view equation.

ORACION ≥ Proposición ∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗↵ SN V SAdv ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊕⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ SN1 NexoMonoCop SN1 ≥ Adv ≥ ≥ ≥ ≥ ≥ NombrePropio ≥ NombrePropio ≥ ≥ ≥ ≥ ≥ ≥ ≥ Juan y Pepe corren más ORACION ≥ Proposición ∨⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ SN SVAtrib

∨⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ∨⊗⊗⊗ℑ⊗⊗⊗↵ SN Coma Aposición Coma VerbCop Atrib ≥ ≥ ≥ ≥ ≥ ≥ NombrePropio ≥ ORelativo ≥ ≥ SN ≥ ≥ ≥ ≥ ≥ ∨⊗ℑ⊗↵ ≥ ≥ ORelativoSin ≥ ≥ DET Nucl ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ ≥ ≥ ≥ PronRelativo ORACION ≥ ≥ Det N ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ Proposición ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ SVAtrib ≥ ≥ ≥ ≥ ≥ ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜℑ⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ ≥ ≥ ≥ ≥ AdvNegativo PronPreVerb VerbCop Atrib ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ SAdj ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ Adj ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ Juan , que no me parece fiable , será el jefe

CAPITULO IX : EJEMPLO DE DESARROLLO DE UNA GRAMÁTICA¡Error!Marcador no definido.

Para tratar los nombres compuestos de entidades geográficas (ciudades, ríos, macizos...)que admiten o exigen artículos determinados, sintagmas preposicionales en "de"... (los EstadosUnidos deAmérica, La Coruña...), podemos optar por generar reglas sintácticas con unacategorización más fina:

SintNominal_1=NomGeoSinArt (SintPrepDE)SintNominal_1=ArtDet NomGeoConArt (SintPrepDE)SintNominal_1=NomPersona

o dejar que sea el analizador lexicográfico quien agrupe varias palabras bajo una mismacategoría (por ejemplo: NombrePropConArt o NombrePropSinArt).

Dado que nuestro entorno es léxicamente biunívoco (una palabra implica una categoría),pero para evitar una engorrosa escritura, simularemos el comportamiento de un analizadorlexicográfico más complejo uniendo en una las diferentes palabras de un nombre compuesto:

"Felipe_VI_de_Borbón_y_Grecia"

"Maximiliano_Victor_Caramés_Bartolomé"

"Santiago_Cortizas_González-Criado"

y crearemos cinco categorías léxico-sintácticas:

-NomPersonaSimple: "Juan"...-NomPersonaComp: "Juan_Carlos_I"...-NomGeoSimple: "Madrid"...-NomGeoCompConArt: "Cerro_de_los_Angeles"...-NomGeoCompSinArt: "Villafranca_del_Bierzo"...

Agregando la posibilidad de que los nombres de persona lleven títulos delante ("santo","san", "don"...):

SintNominal_1=(Título) NomPersonaSimpleSintNominal_1=NomGeoSimpleSintNominal_1=(Título) NomPersCompSintNominal_1=NomGeoCompSinArtSintNominal_1=ArtDet NomGeoCompConArt

cubriremos los ejemplos:

"(Don) Juan""Barcelona""(Don) Juan_Carlos""Santiago_de_Compostela""el Cerro_De_Los_Angeles"

Las categorías léxicas multisintácticas (las familias de "otro", "demás", "mucho"...) se

CAPITULO IX : EJEMPLO DE DESARROLLO DE UNA GRAMÁTICA¡Error!Marcador no definido.

diferencian de los adjetivos ordinarios en que no necesitan determinante:

"no hay otros Pirineos""busca otro Shakespeare porque éste no me vale""mucho Pérez veo por aquí suelto""conozco algún Javier que está loco por ti""Pepe es mucho Pepe"

ORACION ≥ OCompuesta ≥ OCoordinada ≥ OAdversativa

∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ Proposición NexoAdversat Proposición ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗↵ ≥ ≥ V SN ≥ SVAtrib ≥ ∨⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ ≥

∨⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ AdjAntAlgún NomPersona ≥ AdvNegativoVerbCop Atrib ≥ ≥ ≥ ≥ ≥

≥ ≥ ≥ ≥ NomPersSimple ≥ ≥

≥ SPde ≥ ≥ ≥ ≥ ≥

≥ ∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗↵ ≥ ≥ ≥ ≥ ≥

≥ PrepDe AdvAutónomo ≥ ≥ ≥ ≥ ≥

≥ ≥ ≥ conozco algún Javier pero no es de aquí

CAPITULO IX : EJEMPLO DE DESARROLLO DE UNA GRAMÁTICA¡Error!Marcador no definido.

Si admitimos estas construcciones (que deberíamos marcar como a-normales dado sufuerte grado de comunalización del nombre propio, las referencias contextuales que conllevan...),escribiremos una regla para cada caso:

NomPropSinArt=NomPersonaComp|NomPersonaSimple|NomGeoSimple|NomGeoCompSinArt

SintNominal_1=AdjALGUN (Titulo) NomPropSinArt (Compl)SintNominal_1=(DET) AdjMUCHO (Titulo) NomPropSinArt (Compl)SintNominal_1=(DET) AdjOTRO (Titulo) NomPropSinArt (Compl)

⋅⋅

Para "mismo" y "tal" (mucho más comunes en combinación con nombres propios) es fácilencontrar oraciones "normales":

"un tal Jiménez te llamó anoche"

"el mismísimo Balboa era quien conducía el timón"

Necesitan ir precedidos de determinante y permiten complementos pospuestos al nombrepropio:

"todos los tales Monteros eran gente de mal vivir"

"este mismo Pepe comía además de beber"

"tu misma Barcelona tampoco me parece una gran ciudad"

provisionalmente creamos las reglas:

SintNominal_1=DET AdjTAL NomPropSinArt (Compl)SintNominal_1=DET AdjMismo NomPropSinArt (Compl)SintNominal_1=NomProp AdjMismo

Los adjetivos que pueden anteceder al nombre (los llamaremos previos y no explicativospor nuestro enfoque sintáctico no funcional) son poco compatibles con las categorías queacabamos de mencionar en ausencia de más complementos:

* "una tal hermosa Isabel"* "la misma hermosa Isabel"

La razón es el choque entre el carácter especificativo de unos y el explicativo de los otros:

Para contemplar:

"tu bella Barcelona...""la desierta y desoladora Siberia..."

CAPITULO IX : EJEMPLO DE DESARROLLO DE UNA GRAMÁTICA¡Error!Marcador no definido.

"este tan centrado Cerro_de_los_Angeles...""la siempre glacialmente provocadora Sharon""la misma magistral Michelle_Pfeiffer que asombró en..."

construiremos:

SintNominal_1=DET AdjMISMO SAdjPre NomPropSin ComplSintNominal_1=DET SAdjPre NomPropSin (Compl)

Los posibles complementos pospuestos (sin contar con aposiciones adjuntas o explicativas)son SintagmaAdjetvoPosterior , SintagmaPreposicional, ProposiciónDeRelativo.

"esa Sharon_Stone perfecta e impecable de aquella película no se repetirá"

ORACION ≥ Proposición

∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ SN PronPreVerb V AdvIns ∨⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ DET AdjMismo SAdjPre NomPropSin ORelativo ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ Det ≥ Adj NomPersona ORelativoSin ≥ ≥ ≥ ≥ ≥ ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ ≥ ≥ ≥ NomPersComp PronRelativo ORACION ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ Proposición ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥

∨⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ PronPreVerb V SP ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗↵ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ Prep SN ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥

∨⊗⊗⊗ℑ⊗⊗⊗↵ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ DET Nucl ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥Det N ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ la misma magistral Michelle_Pfeiffer que nos asombró enaquella película nos cautiva ya ORACION ≥ Proposición ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ SN SVAtrib ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ DET SAdjPre NomPropSin AdvNegativo VerbCop Atrib ≥ ∨⊗⊗⊗⊗⊗ℑ⊗↵ ≥ ≥ ≥ ≥ Det SAdv Participio NomGeoSin ≥ ≥ SP ≥ ≥ ≥ ≥ ≥ ≥ ∨⊗⊗⊗⊗⊗⊗ℑ⊗↵ ≥ Adv2 ≥ NomGeoCompSinArt ≥ ≥ Prep SN ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ NomGeoSimple ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ este tan centrado CerroDeLosAngeles no está en Madrid

ORACION ≥ Proposición ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ SN SVAtrib ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗↵ DET SAdjPre NomPropSin VerbCop Atrib ≥ ∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ ≥

Det SAdv Adj NomPersona ≥ SAdj

≥ ∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗↵ ≥ ≥ ≥ ≥

≥ Adv1 Adv2 ≥ NomPersComp ≥ SAdjConAdv

≥ ≥ ≥ ≥ ≥ ≥ ∨⊗⊗⊗⊗ℑ⊗⊗⊗⊗↵

≥ ≥ ≥ ≥ ≥ ≥ SAdv Adj

≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥

≥ ≥ ≥ ≥ ≥ ≥ Adv2 ≥

≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ la siempre glacialmente provocadora Sharon_Stone era demasiado peligrosa

ORACION ≥ Proposición ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ SN AdvNegativo PronPreVerb V ∨⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ≥ ≥ ≥ DET NomPropSin SAdjPost SPde ≥ ≥ ≥ ≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊕⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ ∨⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗↵ ≥ ≥ ≥ Det NomPersona Adj NexoMonoCop Adj PrepDe SN ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ∨⊗⊗⊗ℑ⊗⊗⊗↵ ≥ ≥ ≥ ≥ NomPersComp ≥ ≥ ≥ ≥ DET Nucl ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ Det N ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ esa Sharon_Stone perfecta e impecable de aquella película no se repetirá

CAPITULO IX : EJEMPLO DE DESARROLLO DE UNA GRAMÁTICA¡Error!Marcador no definido.

CAPITULO X : INTEGRACIÓN... ¡Error!Marcador no definido.

CAPITULO X

INTEGRACIÓN DE LA SINTAXIS EN LOS SISTEMASDE RECONOCIMIENTO DE VOZ

X.1 Parsing de un lattice

Si dispone de una celosía de palabras detectadas en una serie de tramas de voz, de sustramas de comienzo y sus trama final, podemos aplicarle los algoritmos sintácticos para encontrar lasecuencia de palabras gramatical más probable.

X.1.1 CYK

Puede usarse el algoritmo de Ney que más adelante veremos, en su versión asíncrona, conlos mismos defecto que se reseñarán (Makino[91], Andry[91]).

X.1.2 Algoritmos predictivos

Con ellos tratamos de encontrar todos los caminos gramaticales presentes en el lattices,compuestos de palabras compatibles por sus tramas de comienzo y terminación (permitiremoscierto grado de solapamiento y pausas entre palabras).

-Inicialmente predecimos todas las posibles palabras que puedan ser principio de oración(caminos activos iniciales: nº1)

-Recorremos las tramas de voz:

-si encontramos que en una de ellas se ha detectado el comienzo de una o máspalabras predichas en alguno de los caminos gramaticales activos y su comienzo es compatible conel final de la última palabra de dicho camino, avanzamos el análisis hasta el final de la palabra.

-si para un mismo camino activo hemos encontrado varias palabras con distintatrama final, creamos una nueva rama activa para cada una menos la primera (que continuará por larama ya presente anteriormente)

La eliminación del "lattice" intermedio es teóricamente sencilla aunque en la prácticadelicada de implementar.

CAPITULO X : INTEGRACIÓN... ¡Error!Marcador no definido.

Ahora no disponemos de la probabilidad definitiva de que una palabra comience en unatrama determinada y finalice en otra dada: debemos ir continuamente actualizando la informaciónprobabilístico-fonética hasta que, o bien sea muy reducida y nos sea posible podar esa rama delanálisis (lo que antes llamábamos pila por similitud con el algoritmo LR), o bien hayamosprocesado todas las tramas y tengamos los resultados no parciales sino absolutos.

Para evitar que la anchura de análisis (el número de pilas simultáneamente activas)desborde la capacidad del sistema se debe establecer otro "pruning" (en Saito[89] se muestra ladependencia que en la práctica puede tener una buena o mala política de poda y en Kita[91] otrasimilar pero trabajando con fonemas en lugar de palabras).

CAPITULO X : INTEGRACIÓN... ¡Error!Marcador no definido.

Estructuras de datos:struct TipoCélula

{TipoPila PilaLR;PROBABILIDADES Q[n];BOOLEAN Aceptada;} Célula;

Inicialización:begin C=CrearCélula() C->Q[0]=1.0 for i=0 to N

C->Q[i]=0.0 MeteEnPila(C.PilaLR,EstadoInicial) C.Aceptada=FALSEend

Bucle:while () begin para cada célula C tal que C.Aceptada==FALSO begin s=CimaDeLAPila(C.PilaLR) para cada símbolo terminal 'a' tal que

ACCION(s,a)!=ERRORbegin si ACCION(s,a)=='dsh s2' begin for i=1 to N

Temp[i]=probabilidad del último estado de Markov para la trama i

if (máximo(Q)>UMBRAL)begin C.Q=Temp MeteEnLaPila(C.PilaLR,s2)end

elseDestruyeCélula(C)

end si ACCION(s,a)=="red a->B'

Reduce(C.PilaLR,A,B) si ACCION(s,a)=='aceptac"

C.Aceptada=CIERTOend

end

24 Algoritmo LR sin lattice intermedio.

CAPITULO X : INTEGRACIÓN... ¡Error!Marcador no definido.

X.2 Integración síncrona

X.2.1 Integración de CYK con la programación dinámica

En 1987 Ney propone combinar el algoritmo sintáctico CYK con el fonético dealineamiento temporal para habla continua, realizando simultáneamente el parsing y la detección delímites de palabra sin necesidad de posproceso.

EstadoAct[1]=0;NumPilas=1for TramaActual=0 to TramaFinal

beginPalabras={palabras que comiencen en esta trama}si cardinal(Palabras)==0

continuefor j=1 to NumPilas

beginExpect(j)={categorías esperadas para el

estado actual de la pila j }Si el cardinal de Expect(j)==0

beginRealizar las posibles reducciones de la

pila jend

si nobeginfor k=1 to Cardinal(Palabras)

beginsi (no ha sido actualizada

temporalmente y Ultima- Palabra(j) es compatible con Palabras[k]) avanzar la pila temporalmentesi (fue actualizada temporalmente

y UltimaPalabra escompatible con Palabras[k])

crear una nueva piladependiente de la anterior...

endend

endend

25 Algoritmo de Tomita para parsing de lattices de palabrasmediante LR(0) extendido.

CAPITULO X : INTEGRACIÓN... ¡Error!Marcador no definido.

Utilizando la versión síncrona de CYK e incorporando a los símbolos guardados lainformación de probabilidad y límites que el alineamiento temporal va calculando. Los dos pasosdel algoritmo serán las de la figura 26

,donde:

-el Chart es ahora tridimensional (no bidimensional con una pila en cada casilla) y guarda enChart[j][i][U] la probabilidad de que un símbolo No Terminal 'U' aparezca entre las tramas 'i' y 'j'

-B[j][i][U] guarda cual ha sido la regla con 'U' en su parte izquierda, que ha dado mayor

for i=1 to Ibegin

para cada palabra 'u' del vocabularioScore[j][i][u]=score acústico en i-2*J...i

for j=i-1 to max(0,i-2*J)para cada regla U->u

beginsi D[j][i][u]<Chart[j][i][U]

beginChart[j][i][U]= Score[j][i][u]

B[j][i][U]=NumRegla(U->u)

F[j][i][U]=0end

endend

for j=i-1 to 0recorrer las reglas U->VW

for l=j+1 to i-1begin

Aux=Chart[j][i][V]+Chart[l][i][W]

si (Aux<Chart[j][i][U])begin

Chart[j][i][U]=Aux

B[j][i][U]=NumRegla

F[j][i][U]=lend

end

26 Algoritmo de Ney.

CAPITULO X : INTEGRACIÓN... ¡Error!Marcador no definido.

probabilidad al ascender en el parsing

-F[j][i][U] contiene, si es que existe, la trama que separa los dos símbolos No Terminalesque el parsing ha unificado en 'U' al aplicar la regla B[j][i[U]

-el proceso de reconstrucción nunca será ambiguo al habernos quedado al ascender sólocon las reglas que nos dan la mayor probabilidad parcial (en eso consiste la programación dinámica)

El resultado es la secuencia de palabras más probable ateniéndose a las restriccionesimpuestas por la gramática, aunque a expensas de un enorme coste computacional:

-para cada trama hay que realizar el alineamiento hacia atrás de todas las palabras delvocabulario sin usar la información predictiva incluida en la gramática

-el Chart y las demás matrices son proporcionales en tamaño al número de tramas y no alnúmero de palabras como en el CYK convencional.

su-algoritmo nº de operaciones memoria usada

alineamiento temporal 2*J*J*I*Cardinal(u) 2*J*Card(u)

reglas U->u 2*J*I*Card(U->u) 3*I*I*Card(U->u)

reglas U->VW I*I*I*Card(U->VW)/6 3*I*I*Card(U->VW)

X.2.2 Guiado del reconocimiento mediante predicción sintáctica

Más elegante es el tratamiento modular de Okada[91], que utiliza un autómata creciente enel tiempo para guiar a un "one-pass": el algoritmo sintáctico(en su caso un "active chart", aunque esperfectamente extensible al Earley) va creando el autómata (o simplemente un árbol, si nodeseamos autolazos en el autómata creciente):

CAPITULO X : INTEGRACIÓN... ¡Error!Marcador no definido.

InicializaciónPara cada regla del tipo S->A..B

incorporar a la agenda {S-> ⋅A..B,0,0,[]}

Para cada regla A-> ⋅C..Dsi C es No Terminal

añadir a la agenda todas las reglas{C->E..F,0,0,[]}

Para cada regla A->a..Dsi 'a' es un símbolo Terminal

comunicar al reconocedor one-pass la existencia de un nodo {'a',0,0[]}

Actualización del chartmientras haya elementos activos en la agenda

beginsi el elemento no ha sido incorporado al chart

beginIncorporarlo

si es del tipo {A->a ⋅B..,i,j,[o,p,...]}beginpara cada B->C..D

incorporar {B-> ⋅C..D,j,j,[]}

para cada {B-> ⋅C..D,j,j,[]}incorporar {C-> ⋅E..F,j,j,[]}

para cada elemento del ChartB->C.. ⋅D..,j,k,[m,n,..]}

beginCrear un vértice 'l' en el Chart

añadir a la agenda el elemento{A->..B ⋅..,i,l,[k]}

end

para cada nuevo elemento{C->.. ⋅a..,j,j,[]}

Comunicar el nuevo nodo al 1-passend

si es del tipo B->.. ⋅,i,j,[o,p,..]}para cada {A->a ⋅B..,k,i,[m,n,...]}

beginCrear un vértice 'l'

Añadir {A->aB ⋅..,k,l,[j]}end

endend

27 Chart Parsing de Okada.

CAPITULO X : INTEGRACIÓN... ¡Error!Marcador no definido.

El one-pass sólo ve la existencia en el Chart de nodos léxicos: aquellos que están esperandola aceptación de una palabra o símbolo terminal, o aquellos que ya la han recibido. Cuando la zonaactiva de una palabra esperada alcanza su estado final de Markov, la palabra es aceptada y secomunica asíncronamente al Actualizador del Chart.

Los módulos sintáctico y acústico pueden ser implementados en procesadores diferentescon comunicación asíncrona.

En número de operaciones es proporcional al número de trama de voz, la longitud mediade las zonas activas y el número medio de nodos.

CAPITULO XII : LÍNEAS FUTURAS ¡Error!Marcador no definido.

CAPITULO XI

LÍNEAS FUTURAS

Aunque las gramáticas de contexto libre tal cual están contempladas en nuestro entorno nosproporcionan un aceptable marco para caracterizar una lengua natural como el castellano, la muydetallada labor de categorización necesaria para cubrir la multitud de aspectos que presentan laslenguas y la lentitud que para el "parsing" supone la generación de numerosas estructurasintermedias finalmente carentes de utilidad, hace aconsejable una ampliación del formalismo deescritura basándonos en rasgos.

La introducción de rasgos simples (género, número, persona...) no implica salirnos delparadigma generativo: si permitimos que cada símbolo de la gramática pueda llevar asociadas unascaracterísticas que lo diferencien de otros del mismo nombre (por ejemplo Sustantivo[+Masculino,+Plural]56), sólo tendremos que, por cada posible n-tupla

Símbolo[+Característica_1,... ,+Característica_n-1]

crearemos un nuevo símbolo terminal.

Por el número excesivo de reglas y símbolos a que dará lugar (cadaSustantivo[+Característica_1,+Característica_2] supondrá la existencia de variosSintagmaNominal_m[+Caract_1,+Caract_2]) preferiremos o bien el postproceso o bien el"parsing" con rasgos incorporados:

-Si los árboles que nuestra gramática da para la mayoría de las oraciones son pocos, unsimple posproceso podrá verificar la concordancia entre los rasgos mediante una función recursivade recorrido de cada árbol: partiendo del nodo raíz bajará hasta las palabras y desde allí elevará susrasgos y comprobará su compatibilidad con los de los restantes constituyentes de su nivel.

-conforme aplica las reglas gramaticales de contexto libre, el "parser" puede ir chequeandolas compatibilidades y evitando la aceptación de frases discordantes.

Rasgos más complejos que describan no sólo características de la palabra sino también elcontexto en el que puede o debe aparecer, podrían hacer imposible la tarea de hallar un algoritmode "parsing" (Ver Shieber[86]).

56 No confundir con el formalismo de las gramáticasindexadas,donde entre corchetes hay una pila propia del símbolo.

CAPITULO XII : LÍNEAS FUTURAS ¡Error!Marcador no definido.

Si nos limitamos a casos como el del verbo impersonal que exige ausencia de sujeto o unsustantivo que no admite sintagmas preposicionales en "de", seguiremos teniendo la dobleposibilidad: posproceso o integración. Por ejemplo:

-el verbo impersonal elevará a sus categorías superiores el rasgo "no se admite la presenciade sujeto". El "parser", cuando intente unificar un sintagma nominal con ese sintagma verbal, nopermitirá que al primero se le asigne la función de sujeto (podrá ser complemento temporal oespacial no subcategorizado...).

Los mecanismos de herencia requerirán barreras que impidan su propagación más allá dedonde son necesarios o significativos. Que una proposición no pueda tener sujeto porque el verboes meteorológico (llover...) y le ha transmitido dicho rasgo por elevación57, no quiere decir queproposiciones de nivel superior que contengan a la impersonal también sean impersonales.

La elipsis, tan frecuente en castellano, podría suponer alteraciones de estos límites alcombinarse con la coordinación o la yuxtaposición. En:

"Juan comió y María cocinó spaguetis"

el carácter transitivo de la construcción verbal influye más allá de los límites de lasproposiciones coordinadas, alcanzando el ámbito oracional. Aunque podría considerarse que lacoordinación no es entre proposiciones sino entre fragmentos incompletos de proposiciones ("Juancomió" y "María cocinó"), más lógico es considerar que hay una elipsis en la primera proposición yque el hueco es rellenado con un sintagma por el nivel superior (al unificar las proposicionescoordinadas en una oración completa, el rasgo "falta un sintagma nominal complemento directo"exige que dicho sintagma sea copiado desde la otra proposición o si no que no se unifique).

Para reducir la memoria, los rasgos pueden no ser continuamente ascendidos sino que,cuando es necesario comprobar una concordancia, se realiza una reconstrucción parcial paraextraer temporalmente dichos rasgos sólo presentes continuamente en el nivel de palabra. Laralentización sería notable ya que la reconstrucción es mucho más lenta que el análisis simple.

Gazdar propone en su "Generalised Phrase Structure Gramar" que sustituyamos lastransformaciones (mecanismos conceptualmente elegantes, muy gráficos pero poco prácticos a lahora de analizar) por un método doble:

-incluir dentro de las reglas sintácticas la posibilidad de emplear categorías derivadas (laspropias de las Gramáticas Categoriales) para dar que se puedan transmitir de un modo sencillo laselipsis

-meta-reglas que alteren la estructura superficial que se va creando para que salga a la luz laestructura de relaciones correcta

Bresnan, por su parte, creó junto a Kaplan el formalismo llamado "Lexical Functional 57 Este concepto de elevación no implica que el algoritmo debade ser ascendente.Los algoritmos descendentes también puedenemplear rasgos.

CAPITULO XII : LÍNEAS FUTURAS ¡Error!Marcador no definido.

Gramar" donde realiza el "parsing" secuencialmente en dos niveles:

-el sintáctico, bastante laso y de contexto libre como los de este proyecto

-el funcional, basado en ir rellenando patrones desde el nivel terminal hasta el nivelaxiomático de los árboles sintácticos.

Para la oración:

"una niña le dió un regalo"

obtendríamos una estructura sintagmática simple (26).

El verbo, principal componente de la mayoría de las oraciones gramaticales, guiará elanálisis funcional:

Unas reglas sintáctico-funcionales traducirán las categorías funcionales en categoríassintácticas:

Los posibles ordenamientos de las categorías funcionales también deberán serespecificados:

⋅⋅

ORACION

∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊕⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵ SintagmaNominal SintagmaVerbal SintagmaNominal ∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ ∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵

∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗↵ Det Núcleo Prononbre VerboTransit Det Núcleo

Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

Install Equation Editor and double-click here to view equation.Install Equation Editor and double-click here to view equation.

CAPITULO XII : LÍNEAS FUTURAS ¡Error!Marcador no definido.

El resultado funcional será :

Las distintas cadenas vacías :

Install Equation Editor and double-click here to view equation.

CAPITULO XII : LÍNEAS FUTURAS ¡Error!Marcador no definido.

Install Equation Editor and double-click here to view equation.

CAPITULO XII : LÍNEAS FUTURAS ¡Error!Marcador no definido.

resultarían útiles al hacer el "parsing":su presencia indicaría al "parsing" funcional que debe buscarmás allá de los límites proposicionales lo que falta.

Las referencias pronominales podrían recibir un tratamiento similar.

Aunque con estos mecanismos nos salimos de la ortodoxia generativa, los estudios de éstasobre restricciones a la aplicación de transformaciones (ningún elemento puede ser extraído de unaproposición coordinada aunque sí puede ser copiado...), las reglas de elisión (recuperabilidadgracias a la huella...), ... nos seguirán siendo útiles.

¡Error!Marcador no definido.

BIBLIOGRAFÍA

[Aho 72] A.V.Aho y J.D.Ullman, The theory of parsing, translation and compiling:volume I: parsing, Ed. Prentice Hall, 1972.

[Alcina 75]J.Alcina y J.M.Blecua, Gramática española, Ed. Ariel, 1991.

[Andry 91] F.Andry y S.Thornton, "A parser for speech lattices using a UnificationCategorial Gramar", IEEE-ICASSP, pp.219-222, 1991.

[Ascen 93] Ascension Gallardo, Proyecto Fin de Carrera, ETSI Telecomunicación (UPM),1993.

[Dik 78] S.C.Dik, Gramática Funcional, Ed. Sociedad General Española de Librería S.A.,1981.

[Dirksen 92] A.Dirksen, "PROS-3 Sintax and Prosody for text-to-speech", Polyglot, 1992.

[Earley 70] J.Earley, "An efficient context-free parsing algorithm", en Grosz [86], pp.25-33.

[Edinburgh 89] "Edinburgh course on computational sintax".

[Esbozo 73] Comisión de gramática de la R.A.E., Esbozo de una nueva gramática de la lengua española, Ed.Espasa-Calpe, 1991.

[Fissore 88] L.Fissore et al, "Interaction between fast lexical access and word verification inlarge vocabulary continuous speech recognition", IEEE-ICASSP, pp.279-282, 1988.

[Fissore 89] L.Fissore et al, "A word hypothesizer for a large vocabulary continuous speechunderstanding system", IEEE-ICASSP, pp.453-456, 1989.

[Fu ] K.Fu, "Syntactic approach to pattern recognition"

[Fu 85] K.Fu, "VLSI Architectures for recognition of context-free languages".

[Granda 90] J.S.Granda, "Clasificación del léxico para un algoritmo probabilístico deetiquetado automático en microordenadores", Actas del VI Congreso de lenguajes naturales ylenguajes formales, pp.949-970, 1991.

[Grosz 86] B.Grosz et al, Readings in Natural Language Processing, Ed. MorgnaKaufmann, 1986.

[Gutiérrez 78] M.L.Gutiérrez, Estructuras sintácticas del español actual, Ed. SociedadGeneral Española de Librería S.A., 1978.

[Hallebeek 90] J.Hallebeek, "Nominalización funcional y análisis sintáctico automatizado",

¡Error!Marcador no definido.

Actas del VI Congreso de lenguages naturales y lenguajes formales, pp.621-640, 1991

[Haller 91], "La ingeniería lingüística: un ejemplo de cooperación entre Universidad eIndustria", ASPLN, Barcelona, 1991

[Hernanz 87] J.M.Brucart y M.L.Hernanz, La sintaxis.Volumen 1: Principios teóricos.Laoración simple", Ed. Crítica, 1987.

[Leandro 89] M.A.Leandro, "Análisis semántico automático de la lengua española aplicadoal reconocimiento de habla", Proyecto Fin de Carrera DIE-ETSIT-UPM, 1989.

[Levinson 87] S.E.Levinson, "Continuous speech recognition of acoustic/phoneticclassification obtained from a Hidden Markov Model", IEEE-ICASSP, pp.93-96, 1987.

[Levinson 88] S.E.Levinson et al, "Large vocabulary speech recognition using a HiddenMarkov Model for acoustic/phonetic classification", pp.505508, 1988.

[Macías 92] J. Macías,Proyecto Fin De Carrera, DIE-ETSIT-UPM, 1992.

[Miller 88] L.G.Miller y S.E.Levinson, "Syntactic analysis for large vocabulary speechrecognition using a context-free covering gramar", pp.271-274, 1988

[Nakagawa 87] S.Nakagawa, "Spoken sentence recognition by time-synchronous parsingalgorithm of context-free gramar", IEEE-ICASSP, pp.829-832, 1987.

[Ney 87] H.Ney, "Dynamic programming speech recognition using a context-free gramar⋅,IEEE-ICASSP, pp.69-72, 1987.

[Niemann 86] H.Niemann et al, "Generating word hypotheses in continuous speech",IEEE-ICASSP, pp.1565-1568, 1986.

[Okada 91] M.Okada, "A unification-gramar-directed One-Pass search algorithm forparsing spoken language", pp.721-724, 1991.

[Pereira 87] F.C.N.Pereira y S.Shieber, Prolog and natural language analysis, Ed. CLSI,1987.

[Perrault 84] "On the mathematical properties of linguistic theories", en Grosz[86]

[Pieraccini 91] R. Pieraccini, E. Levin, "Stochastic representation of semantic structure forspeech understanding", IEEE-ICASSP, pp. 383-386 ,1991.

[Pieraccini 92] R. Pieraccini et al, "A speech understanding system based on statisticalrepresentation of semantics", IEEE-ICASSP, pp.193-196, 1991

[Radford 81] A.Radford, Introducción a la sintaxis transformativa, Ed.Teide, 1988.

[Roe 91] Roe et al "Toward a spoken language translation for restricted-domain context-

¡Error!Marcador no definido.

free languages", IEEE-ICASSP, pp.1063-1066, 1991.

[Roe 92] Roe et al, "Efficient gramar processing for a spoken language translation system",IEEE-ICASSP, pp.213-216, 1992.

[Russi 91] T.Russi, "Robust and efficient parsing for applications such as text-to-speechconversion", IEEE-ICASSP, pp.775-778, 1991.

[Sager 91] "Panorama de aplicaciones de la lingüística computacional a problemas decomunicación bilingüe", ASPLN, Barcelona, 1991

[Saito 89] H.Saito et al, "HMM continuous speech recognition using predictive LRparsing", IEEE-ICASSP, pp.703-706, 1989.

[Seneff 92] S. Seneff, "Robust parsing for spoken languaje systems", IEEE-ICASSP, pp.189-192, 1992

[Shieber 86] S.Shieber, An introduction to Unification-based aproaches to gramar, CLSILecture Notes, 1986.

[Smaïli 90] K.Smaïli et al, "A continuous speech recognition approach for the design of adictation machine", IEEE-ICASSP, pp.953-956, 1990.

[Subirats 91] C.Subirats, "System of electronic dictionaries of Spanish", Congreso deBarcelona, Septiembre 1991.

[Tomita 86a] M.Tomita, "An efficient word lattice parsing algorithm for continuous speechrecognition", IEEE-ICASSP, pp.1569-1562, 1986.

[Tomita 86b] M.Tomita, Efficient parsing for natural language.A fast algorithm forpractical systems, Ed. Kluger Academic Publishers, 1986.

[Vidal 90] E.Vidal y P.García, "Inference of k-testable languages in the strict sense andapplication to syntactic pattern recognition", IEEE Transactions on Pattern Analysis and MachineIntelligence, pp.920-925, Septiembre 1990.

[Vidal 91] E.Vidal y N.Prieto, "Learning language models through the EGGI method",IEEE-ICASSP, pp.395-398, 1991.

[Waibel 92] A. Waibel et al, "Testing generality in Janus: a multilingual speech translationsystem", IEEE-ICASSP, pp. 209-212, 1992

[Ward 91] W.Ward, "Incorporating LR parsing into SPHINX", IEEE-ICASSP, pp.269-272, 1991.

[Willemse 90] R.Willemse, Wild Card Parser user manual.

[Winograd 83] T.Winograd, Language as a cognitive process. Volume I: Syntax, Ed.

¡Error!Marcador no definido.

Addison Wesley, 1983.

[Wirth 82] N.Wirth, Programación en Modula-2, Ed.El Ateneo, 1987.

[Young 91] S.Young y M.Matessa, "Using pragmatic and semantic knowledge to correctparsing of spoken language utterances", IEEE-ICASSP, pp.223-227, 1991.