Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TITULO
DESARROLLO DE UN ENTORNO PARA EL ANÁLISIS SINTÁCTICO DE
UNA LENGUA NATURAL. APLICACIÓN AL CASTELLANO
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
hacia el uso de unos modelos del lenguaje humano más complejos. Los algoritmos surgidos en los
años sesenta y setenta, en los albores de la lingüística computacional, cuando se buscaban métodos
potentes y rápidos para compilar lenguajes de programación, fueron retomados y mejorados para
adaptarlos a las nuevas necesidades: ambigüedades, errores en la cadena de entrada, integración en
los 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 para
incorporar información sintáctica a la algorítmica de reconocimiento que ya se poseía, continuación
de las primeras experiencias en sintaxis y guiado mediante autómatas conseguidas en diversos
Proyectos Fin de Carrera previos.
I.2.Ingeniería lingüística
4
Con el nacimiento de las llamadas Industrias del Lenguaje , la utilidad de los conocimientos
gramaticales que esperamos obtener no se reducen al reconocimiento de voz para gran vocabulario
y alta calidad. Entre otros campos donde sería posible usar información sintáctica, encontramos:
-síntesis de voz
5
-traducción y doblaje automáticos
4
En 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 los
Los sistemas de síntesis de voz a partir de texto, a pesar de haber conseguido una elevada
inteligibilidad en su conversión grafema-fonema, no producen un habla natural como sería deseable
para 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 irregular
que dan las reglas heurísticas de corto alcance, requiere de información relativamente completa
sobre la estructura de los enunciados (Garrido[91], pág.10 ).
6
En el siguiente ejemplo tomado de Alcina[75], pág.457 , se puede observar como las
relaciones sintácticas influyen poderosamente en la introducción "lógica" de pausas (señaladas con
barra vertical):
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 a
descendente con el fin de marcar que existen elementos concordantes en orden diferente al habitual.
Si el acento recae sobre una palabra marcada como débil no provocará inversiones de
acento caso de intentar acentuarla mediante la regla anterior.
Si se suceden varias palabras débiles complementando a una fuerte (adjetivos y un
sustantivo) será necesario hacer alternativamente alguna de ellas fuerte para llevar un ritmo
agradable y no monótono.
6
El resto de oraciones del texto de Azorín son más sencillas
de 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 su
inclusión: subordinación, concordancia, dependencias lejanas, la
elipsis... Más ejemplos en Esbozo[73], pág. 399.
CAPITULO I : MOTIVACIONES Y JUSTIFICACIÓN ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
-la reglas de omisión de determinante difieren: los bonos del Tesoro se convierten en
Treasury notes debido a la aposición.
-la combinación de todo lo anterior, puede dar lugar a una fuerte reordenación: la
transformació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 rodeos
lingüísticos: lo político frente a the political cuestion
-la concordancia de número posee diferente aritmética en ambos idiomas: tres dólares en
castellano, pero three dollar en inglés.
Las actuales funciones de análisis léxico resultan insuficientes. Mediante simple consulta en
el diccionario de cada palabra que usemos, no se pueden corregir errores tan típicos como:
Cualquier lenguaje para la manipulación de una base de datos posee una sintaxis artificial
que 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 propio
vocabulario y nuestra propia gramática, eso sí) y por medio de él somos capaces de pedir
información en cualquier organismo público.La utilización de lengua natural en nuestras
interacciones con las máquinas simplificaría notablemente la labor del usuario.
7
En Sager[91] encontrarán una visión amplia del tema de la
traducción automática:reutilización de traducciones
previas,traducción incremental...
CAPITULO I : MOTIVACIONES Y JUSTIFICACIÓN ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
-la semántica viene guiada por los verbos (list... ), que son los que imponen los marcos de
predicación, y las palabras típicas (flight...)
-algunas estructuras sintácticas son más empleadas en este entorno que en la vida
cotidiana,y deben ser tratada muy especialmente. Por ejemplo "from...to..." debería tener menor
prioridad (luego mayor posibilidad de reflejar relaciones lejanas) que "...in NombrePropio",de tal
modo que se pueda integrar una en la otra caso de darse conjuntamente. En:
"in Dallas" forma parte del término del sintagma preposicional "from..." y no funciona como
complemento de un hipotético verbo.
Lo mismo sucede con las expresiones de tiempo: before noon, this week...
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 ?
ORACION
ORACIÓN
∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊕⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵
∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊕⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵
Interrog OInterrog Interrog
≥ Interrogación ≥OInterrog ≥
Interrogación
≥ ≥ ≥
OInterrCompl ≥ ≥
≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵
OInterrCompl ≥ ≥
≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵
SNInterrog V SPdirecc ≥ ≥
≥ ≥ ≥ SNInterrog ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵
V SPTemp ≥ ≥
≥ ≥ ≥
SNIntSimple ≥≥ PrepOrig≥ SNOrig ≥PrepDest SNDest ≥
≥ ≥ ∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵
SNIntSimple ≥ SPTempDest ≥ ≥≥ ≥ ≥ ≥ ≥
≥ ≥DetInterrogat SAdjPost ≥ ≥ NomGeoSin
∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗ℜ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵
N ≥ NomGeoSin ≥
≥ ∨⊗⊗⊗⊗⊗⊗⊗⊕⊗⊗⊗⊗⊗⊗⊗↵ ≥
≥ ≥ ≥ DetInterrogat
≥ ≥N ≥ SAdjPost
≥ ≥≥ PrepDest
≥ ≥ Numeral
ArtDet ≥ ≥
≥ ≥ ≥ ≥ ≥ ≥Adj ≥≥ ≥≥ NomGeoSimple
≥ ≥ ≥ ≥ ≥ NomGeoSimple ≥
≥ ≥ ≥ ≥ ≥ ≥ ≥ Adj ≥ ≥≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥
¿ ≥ qué ≥transportes ≥ terrestres
≥ ≥hay ≥de ≥ Madrid≥ ≥a Barcelona ?
Figure 2
¿ qué Ejemplos
transportes de
terrestres ATIS(II).
hay hasta las tres ?
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).
I.2.6 Otros
CAPITULO I : MOTIVACIONES Y JUSTIFICACIÓN ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
8
En Haller[91] y Sager[91] encontrará ejemplos de investi-
gación en la materia tanto en Alemania como en Gran Bretaña o
Españ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 y
significación a manifestaciones simbólicas tanto orales como escritas. Aunque en sentido estricto el
lenguaje sería la capacidad humana para comunicarse mediante lenguas, se suele usar para denotar
los mecanismos de comunicación no humanos (el lenguaje de las abejas o el de los delfines) o los
creados por los hombres con fines específicos (los lenguajes de programación, el lenguaje de la
lógica, de la aritmética...).
9
La característica externa fundamental de las lenguas naturales (los idiomas humanos "de
propósito general") es su enorme complejidad formal. De la sintaxis, componente clásico de la
mayorí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". Mientras
cualquier lenguaje de programación puede ser descrito por medio de menos de cuatrocientas reglas
sintácticas, modelar groseramente, en sus mecanismos generales, un idioma como el castellano
10
precisa de al menos esa cifra (sin incluir las palabras propiamente dichas, que ya son miles) .
9
Las lenguas naturales poseen características de adquisición
y modelado cerebral cuyo contenido y alcance,en general,des-
conocemos.Chomsky ha alternado a lo largo de su vida las
reflexiones puramente lingüísticas con las lingüístico-cerebra-
les , a la búsqueda de esos universales comunes a las gramáticas
de todas las lenguas que demuestren su teoría del
innatismo.Afortunadamente su teoría formal es independiente de
su filosofía de la mente,pudiéndose usar una sin aceptar la
otra.
10
Ver las descripciones gráficas y textuales que Wirth[82]
da de Modula-2 y compararlas con las breves y muy incompletas
que 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 Chomsky
propuso:
Con objeto de dejar clara la diferencia de complejidad entre los lenguajes artificiales y las
lenguas naturales, daremos aquí un breviario de fenómenos lingüísticos presentes en una lengua
natural como el castellano:
"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 ..."
11
Además de las propuestas por Chomsky,muy adecuadas para un
paradigma generativista,diferentes teorías han dado otros
enfoques a la adecuación explicativa.S.C.Dik[81] define obje-
tivos pragmáticos,funcionales y de tipología del lenguaje en
este 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 asignar
diversos significados con dependencia o no del contexto lingüístico. En:
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 una
combustión.Igual sucede con:
-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:
no queda claro si es que habló de lingüística a los estudiantes, o habló de esa materia, o de
cualquier otra, a los estudiantes que cursan la disciplina de lingüística.
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
12
Hemos 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 de
reconocer automáticamente.
13
Quizá deberíamos catalogar esta ambigüedad como léxica,al
variar el significado de la contracción "del",en un caso
significando "hecha por el" y en el otro "hecha al".(Ver
Hernanz[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 y
composición de palabras permiten a cualquier hablante ampliar el vocabulario existente sin que por
14
ello tenga que dejar de ser entendido . Cada región, familia, clase social, profesión... incluso cada
hablante tiene su propia visión del lenguaje común por todos empleado (la variedad del fenómeno
no es comparable a los dialectos "intencionados" de un lenguaje de programación).
-la anáfora permite que ciertos elementos nos remitan a otros sin necesidad de que
aparezcan explícitamente:
En el ya clásico hipérbaton:
14Los actuales correctores ortográficos de los procesadores de texto desconocen palabras empleadas en la redacción de este
proyecto 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.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
o como del salón modifica a ángulo, de su dueño a olvidada, olvidada a "arpa", el primer verso no
es 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 que
15
caracteriza a los lenguajes de programación, sean estos imperativos,funcionales ... La construc-
ción del más complejo de los compiladores es mucho más sencilla que la de un módulo de
interpretación o comprensión de cuentos infantiles.
donde "who" es núcleo del sintagma nominal asociado a "talk to" (más "lógica" parece "to whom
did 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ómo
pongamos los signos de puntuación:
CAPITULO III
III.1 Definición
Dada la oración castellana: "este perro es de mi padre", es posible construir otras como:
Como es obvio, resultaría absurdo intentar escribir todas las posibles combinaciones de
palabras aceptadas en castellano.
Pero son los formalismos la llave que puede abrirnos la puerta del tratamiento informático
cómodo y generalizado: dada una secuencia perteneciente a un idioma como el nuestro y un
conjunto de propiedades que debe satisfacer, sólo habremos de aplicarlas
16
para verificar su gramaticalidad . Del mismo modo podría llegar a la traducción automática entre
lenguajes formales, a la generación más o menos intencionada y automática de oraciones
correctas...
16
Más adelante veremos que hay que imponer ciertas restric-
ciones a los formalismos si queremos que exista un algoritmo,una
secuencia de pasos que nos garantice la finalización ,exitosa o
no, de la operación en un tiempo finito.
CAPITULO III LOS LENGUAJES FORMALES ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
-P : un conjunto también finito de reglas de producción que nos dicen cómo se puede
generar los enunciados, cómo partiendo del axioma podemos llegar a la oración terminal. Este
conjunto será un simple subconjunto de:
Install Equation Editor and double-
click here to view equation.
donde:
Install
InstallEquation
EquationEditor
Editorand
anddouble-
double-
click
clickhere
heretotoview
viewequation.
equation.
siendo posible que tanto α como β como γ sean iguales a la cadena nula.
-si αβγ es una forma oracional y β->δ pertenece a P, αδγ también será forma oracional
-una forma oracional compuesta únicamente por símbolos terminales constituirá una
oración del lenguaje.
S->SintagmaNominalSujeto SintagmaVerbalPredicado
->Determiante Sustantivo SVP
CAPITULO III LOS LENGUAJES FORMALES ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
A fin de precisar más que tipo de gramática es capaz de generar un lenguaje lo más similar
posible a los naturales, Chomsky distinguió cuatro formatos de reglas que se correspondían con
gramáticas generativas más o menos potentes.
III.2.1 Tipo 3
Equivalen, en cuanto a poder descriptivo, a las redes finitas de transición de estados que se
estudian en teoría de autómatas. Dado un lenguaje regular (aquel que es posible caracterizar
usando una gramática de tipo 3), siempre será posible hallar su autómata equivalente (cada símbolo
No Terminal es un estado, cada regla A→aB una rama que conecta los estados A y B por medio
del 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. Las
notaciones más compactas para la expresión de lenguajes regulares son las BNF (Backus Normal
Form, Backus Naur Form, en homenaje a Backus, su creador, y Naur, su continuador), que
reducen 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 la
izquierda 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 equivalen
a 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 y
A→... 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 mismo
que (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]+.
NotaciónBNF→ Expresión
Expresión → Término | Expresión
Expresión → Término
Término1 → Paréntesis
Término1 → Término *
Término1 → Término +
Término1 → Término
Término → Símbolo
Término → Corchete
Corchete → [ Expresión ]
Paréntesis → ( Expresión )
"La importante reducción en la remuneración de los bonos del Tesoro hasta el 14,505 por
ciento en tasa interna bruta de rentabilidad supone el inicio de un descenso progresivo de los tipos
de 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, con
sencillez y elegancia, decirnos cuál es la estructura de este sintagma nominal (a qué núcleo nominal
a 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 el
17
capítulo dedicado a la lengua natural .
Aunque el ejemplo es extremo e inaceptable (una gramática que falle en esa frase no puede
ser rechazada en la práctica), pretende mostrar que la inserción generalizada y recursiva de
proposiciones en posición relativa y no absoluta, con sus parejas de sujetos y predicados, constituye
17
Esta capacidad de reconocer cadenas pero no dar
correctamente su estructura supone un caso de capacidad
generativa débil y no fuerte (Edimburgh[89], cap.1).
CAPITULO III LOS LENGUAJES FORMALES ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
"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 que
supone la inserción de una proposición dentro de otra; cada verbo no tiene al sustantivo anterior
18
más cercano como sujeto, sino al anterior más cercano que no tenga un verbo más cercano aún .
III.2.2 Tipo 2
Describen los llamados lenguajes de contexto libre (en ellos se pueden insertar
proposiciones dentro de proposiciones independientemente del contexto de la oración).
Equivale, en cuanto a potencia descriptiva, al autómata con pila y nos permite describir
adecuadamente las relaciones intra- e inter-sintagmáticas de la lengua natural:
-concordancia sujeto-verbo
-concordancia sujeto-atributo
-inserción de proposiciones en posiciones centrales
⋅
⋅
18
La incapacidad para aceptar un elevado grado de recursividad
de inserción parece más ligada con nuestras capacidades para el
lenguaje hablado (inferiores a las que tenemos al leer o
escribir) que al posible carácter regular del lengua natural.
CAPITULO III LOS LENGUAJES FORMALES ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
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 en
castellano.
Hay quien objeta que la multiplicación de categorías sintácticas necesaria para contemplar
las concordancias es claramente antinatural, que sería mejor que los símbolos llevaran asociados
rasgos como el género, el número, la persona... Parece poco natural la creación de categorías
sintácticas como Sintagma Nominal masculino plural propio geográfico, Sintagma Adjetival largo
CAPITULO III LOS LENGUAJES FORMALES ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
con sintagma adverbial antepuesto... o incluso de categorías léxicas como sustantivo masculino
plural propio geográfico, adjetivo femenino singular especificativo... Sin embargo, nuestro intento
como ingenieros es modelar la lengua externamente de un modo sencillo; la multiplicación de reglas
y 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:
Install Equation Editor and double-
click here to view equation.
SNSujetomasculinosingular=
(Determinantemasculinosingular)
(SintagmaAdjetivalPreviomasculinosingular) Nombremasculinosingular
(SintagmaAdjetivalPreviomasculinosingular)
(SintagmaPreposicional) (OraciónDeRelativo)
SintagmaAdjetivalPreviomasculinosingular=
(SintagmaAdverbialPrevioDeGrado)*
AdjetivoPreviomasculinosingular
hay un fenómeno que no es elegante describir mediante GCL (requerirían categorías como
SintagmaNominalcon2elementos...). Sin embargo, la gramaticalidad parece más ligada a la
semántica de "respectivamente", más fácil de verificar por el componente semántico:
suelen requerir del oyente una cierta transformación, un posproceso que no todos los hablantes son
capaces de realizar con corrección (depende mucho de su cultura especialmente de la literaria si nos
19
enfrentamos a enunciados de corte poético) .
III.2.3 Tipo 1
S → a S B C
S → a b C
b B → b b
b C → b c
c C → c c
C B → C D
C D → E D
E D → E C
E C → B C
No existe algoritmo que en tiempo finito nos diga si una cadena obedece o no las
reglas de una gramática de reescritura tan generalizada.
19
En inglés son comunes las oraciones de relativo con la
preposición al final en lugar de al principio, más difíciles de
tratar correctamente.
CAPITULO III LOS LENGUAJES FORMALES ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
Cuando Chomsky formuló sus objeciones a las gramáticas de estructura de sintagma (tipo
2), propuso la utilización de reglas de tipo 0 para el reordenamiento, elisión... de elementos. La no
existencia de algoritmo de parsing mostraba que su potencia superaba en mucho a las lenguas
naturales y el formato de las reglas de reescritura se limitó mucho (los clásicos movimientos de
sintagmas 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
-la fonética: estudio de la estructura material del sonido, de sus propiedades y cualidades
físicas que nos permiten diferenciarlos, pronunciarlos... Tono, intensidad, timbre, cantidad y lugar
de articulación son objeto de estudio para la fonética acústica; lugar y modo de articulación lo son
para la fonética articulatoria
-la fonología: qué función desempeñan los elementos fónicos y cuál es su capacidad para
20
formar mensajes y signos diferentes : cómo se forman las sílabas, cómo remarcamos la intensidad
en algunas de ellas (acento real, no ortográfico), en qué consiste la entonación y para qué la
usamos...
-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 los
21
enunciados
-la gramática del discurso: influjos lingüísticos más allá del restrictivo mundo de las
oraciones tradicionalmente considerado por la sintaxis
20
Estas dos ramas suelen ser el punto de comienzo de
cualquier descripción genérica del castellano. (Esbozo[73],
Alcina y Blecua[75].
21
En 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.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
La descomposición empleada en esta obra se basará en la más clásica dentro del marco
22
generativista , centrándonos en el subsistema sintáctico por interés del obletivo del proyecto.
componente léxico
componente sintáctico
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 de
datos. Como se ha señalado al caracterizar la lengua natural, el léxico presenta notables
regularidades 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 encuentra
la ampliación detallada, para el paradigma transformacional.
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 datos
relacional o un autómata basados en morfología...).
23
Las palabras no son entes simples: se componen de morfemas tanto lexemáticos como
24
categorizadores . Si nos basamos en los primeros agrupamos las palabras por familias léxicas (lo
cual 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 denotar
con el más sencillo de sus componentes: casa.
Es obvio el estrecho vínculo existente entre éstas palabras que, sin embargo, no impide que
su 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.
25
Este carácter estructurado que poseen las palabras nos permite que ante una palabra
nueva como observacionalmente, y mediante la extracción de su lexema observ- (del verbo
observar) y sus morfemas -acion- (sustantivador) , -al- (adjetivador) y mente (que convierte a la
palabra en adverbio generalmente de modo), deduzcamos que significa "desde el punto de vista
basado en la observación". También nos permite elidir morfemas flexibles cuando, por redundancia,
su información es recuperable. En:
norma.
Dado que la elaboración de un módulo léxico está siendo abordada ya por otro equipo del
Departamento (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 o
26
en memoria de un modo eficiente), concentrándonos en el módulo central: el sintáctico .
La Sintaxis, del griego "συνταξις", que significa ordenamiento, estudia cómo se combinan
y 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 mal
formadas. "el madre comió niño helado de su el " posee las mismas palabras que "el niño comió el
helado de su madre", y mientras la segunda nos resulta perfectamente comprensible a todos los
27
castellano-parlantes, la primera carece de una mínima organización lógica .
Ligeras variaciones del orden de una oración correcta como la anterior nos hacen ver que
las 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" es
aceptable (aunque retórica) pero no "el niño comió el helado de madre su". Es fácil extraer como
constituyentes de la oración: el niño, comió, el helado y de su madre.
Sin embargo, estos constituyentes tampoco son totalmente independientes: "el helado
comió el niño de su madre" no significa lo mismo que la original y "de su madre comió el niño el
28
helado" es agramatical aunque comprensible con un poco de buena intención. La sintaxis debe
desvelar cómo se forman los constituyentes y cuáles son las relaciones existentes entre ellos. El
modo usual de representarlo son los diagramas arbóreos.
-el fenómeno de las concordancias también está regido por criterios de estructura: el y niño
poseen el mismo género y número y la variación de sólo uno de ellos da lugar a agramaticalidad; el
niño concuerda en la persona con el verbo "comió"...
26
En los capítulos de conclusiones y futuras líneas de
investigación se volverá sobre las limitaciones de esta opción.
27
Si no fuera así, la sintaxis tendría una única regla de
formación de predicados:oración será cualquier secuencia de
piezas léxicas en orden y número indeterminados.
28
El ejemplo escogido muestra la libertad de orden de
constituyentes que caracteriza al castellano,sólo limitada por
marcos de subcategorización como los que ligan al verbo con su
complemento directo,la rección prepositiva...
CAPITULO 4 : EL MODELO LINGÜÍSTICO ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
-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"
o en el oracional:
"compró un piso y vendió su casa"
-El vocativo:
"señorita, no se puede"
frente a:
"¿quien vive con vosotros os dijo eso?"
Por supuesto, existen algunos fenómenos jerárquicos que requerirían árboles con una
estructura más libre o más general: ramas cruzadas, correferencias entre elementos... Las
29
dificultades para su análisis automatizado nos harán excluirlos .
Relacionados con la semántica están dos de los puntos más conflictivos de nuestro
planteamiento: la autonomía de la sintaxis respecto a la semántica y la de ésta respecto a la
pragmática.
Aislar la sintaxis de la semántica podría parecer simple (según Chomsky, su más ardoroso
defensor, es una hipótesis de trabajo básica para adentrarnos en la organización de la lengua). La
29
Más información en el capítulo de líneas futuras.
30
Aunque en el aprendizaje de una segunda lengua influye
mucho el grado de maduración del cerebro (los niños,con el
cerebro más virgen,encuentran mucho más fácil esta tarea),así
como las interferencias de la lengua materna,todos hemos
experimentado al aprender otro idioma lo que facilita la
comprensión el hallarse situado en un contexto,predecir la línea
sintáctica y semántica que va a seguir el discurso...La
predisposición a escuchar algo agudiza nuestra capacidad de
acierto si nuestras previsiones se cumplen.
CAPITULO 4 : EL MODELO LINGÜÍSTICO ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
Una sintaxis integrada con semántica consideraría anómalo el segundo enunciado, ya que el
verbo opina exigiría a su sujeto la presencia del rasgo [+HUMANO] del cual carece mi gato. Sin
embargo, la oración cobraría pleno sentido en un contexto de cuento fantástico. ¿Puede ser
semánticamente correcta sin serlo previamente en el plano sintáctico? Juzgamos que no: la oración
tiene sentido sintáctico, si al verbo en torno al cual gira somos capaz de asignarle un sujeto ("mi
gato") y un complemento directo ("que soy un gran cocinero"), con lo que ve saciadas sus
necesidades sintácticas.
Para la tercera no soy capaz de hallar contexto en el que resulte aceptable. Aunque pasaría
el 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ática
común del castellano.
Igual que al hablar de fonología hemos destacado cómo la sintaxis condiciona, hasta cierto
punto, lo que esperamos oír, un módulo superior semántico-pragmático podría deducir información
de 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 inteligencia
humana deberían por ahora obligar a una hipotética máquina dialogante a interrogarnos acerca de
lo 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: el
que pretende emplear de la lógica de predicados, el funcional (el verbo sería el predicado que
selecciona a los demás elementos: sus argumentos), el generativista...
CAPITULO 4 : EL MODELO LINGÜÍSTICO ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
Ya sabemos que al reconocer poseemos una secuencia sonora de la cual deseamos saber, si
es que existe, su transcripción grafémica. Para esta labor disponemos de la información fonológica
que nos permitirá pasar los fonemas a grafemas (se producirán inserciones, sustituciones y
borrados). Estos grafemas será preciso unirlos para formar palabras: deberemos consultar el
diccionario léxico (en este nivel comenzarán a aparecer ambigüedades). Un módulo sintáctico
deberá discriminar qué secuencias de palabras son gramaticales y cuales no. Finalmente la
semántica interpretará lo dicho. Nuestro esquema secuencial simplificado será el de la 13.
componente semántico
componente sintáctico
componente léxico
componente fonético
Entre todos los niveles debería ser posible realimentar información al anterior y que éste la
propague hasta el más bajo, pero la opción elegida suele ser que el módulo inferior sea lo
CAPITULO 4 : EL MODELO LINGÜÍSTICO ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
suficientemente laxo como para aceptar todas las posibilidades (asignándoles una cierta
probabilidad de ocurrencia por él estimada) y permitir que sea su superior quien, manejando un
31
modelo más completo de la lengua, decida . Como ya mencionamos al hablar del componente
fonológico, llegados arriba y sin posibilidad de interpretar lo enunciado, sólo nos queda rogar una
repetición de lo dicho, una aclaración a un término...
31
En los sistemas de dictado automáticos como el
desarrollado para el Inserso (Macías[92]) el módulo sonido-
fonema trata de encontrar todos los posibles fonemas presentes
en la secuencia sonora y que un módulo posterior de acceso a un
diccionario discrimine las palabras posibles que ,finalmente,un
mó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 de
reconocimiento y síntesis de habla, de procesamiento de textos de lengua natural...
Aunque la utilización de índices (punteros a la zona de las palabras que empiezan por un
determinado 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 espacio
debido a las redundancias del vocabulario: numerosas palabras comienzan o terminan con la misma
cadena de signos...
Todo vocabulario de cardinal finito, como ya hemos señalado al hablar de los lenguajes
formales, 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 del
vocabulario : alófonos, fonemas, grafemas, morfemas... El axioma será en nuestro caso la palabra, y
los símbolos no terminales carecerán, por lo general, de significación intencionada ( un conjunto de
caracteres podría corresponderse con un símbolo no terminal y con un morfema de nuestro
lenguaje, pero no por nuestra voluntad expresa).
⋅
⋅
Install Equation Editor and double-
click here to view equation.
-puede aprovechar las redundancias del vocabulario para reducir el espacio que nos
ocupa a la hora de almacenarlo, en memoria especialmente
-el tiempo que tarda en reconocer una cadena de entrada es independiente del
tamañ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 cada
unidad de una palabra en un estado diferente y encadenarlos de acuerdo con la regla que describe
32
dicha palabra . Los autómatas por palabras así conseguidos, serían individualmente deterministas,
aunque globalmente indeterministas. Si los sumamos todos ( hacemos comunes sus estados inicial y
final), será normal que al estado inicial le sucedan varios estados con igual símbolo en su rama
33 34
intermedia. El algoritmo de conversión de AFN a AFD queda reducido, por el carácter arbóreo
de nuestro autómata, a la fusión en las cabeceras de palabra de los estados equivalentes: aquellos
que tienen igual predecesor e igual símbolo.
32
La notación que emplearemos de ahora en adelante para
nombrar los estados del autómata se componen del signo asociado
al mismo (un fonema,una letra...) y un subíndice que se asignará
secuencialmente a todos los estados de igual símbolo.
33
Autómata Finito Indeterminado,en la bibliografía inglesa
NFA.
34
Autómata Finito Determinado,en inglés DFA.
CAPITULO V : COMPILACIÓN DE DICCIONARIOS ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
ini fin
4 1 2
5 1 3
Similar operación podría ser realizada con los finales de palabra (las "colas"), pero
perderíamos la morfología en árbol, y algunos algoritmos de reconocimiento de voz admiten sólo
este tipo de estructuras para su guiado: la eliminación o no aceptación de un estado supone la
35
inmediata exclusión de sus sucesores en el árbol .
Como en castellano los lexemas o prefijos+lexemas suelen tener mayor longitud que los
sufijos 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 una
palabra, el autómata podría aceptar palabras no pertenecientes a nuestro
vocabulario. 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.
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".
y en:
En cambio, al realizar las operaciones también globalmente pero en orden inverso, primero
colas y luego cabeceras, el resultado es más eficiente:
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.
La mayor o menor redundancia entre colas o cabeceras hace que se reduzca más o menos
el número de estados. Sin embargo, la unificación de las colas primero puede dar lugar a autómatas
no deterministas como:
Install Equation Editor and double-
click here to view equation.
Si operamos palabra a palabra, primero las cabeceras y luego las colas, los cuatro pasos
serán:
Install Equation Editor and double-
click here to view equation.
Trabajando palabra a palabra también influye qué unificamos primero, si colas o cabeceras.
Si empezamos por las cabeceras:
Install Equation Editor and double-
click here to view equation.
Install Equation Editor and double-
click here to view equation.
Las diferencias debidas al orden en el que unifiquemos sólo se producen cuando las
palabras contienen unidades que se pueden fundir simultáneamente como cabeceras y como colas.
Comparando :
Install Equation Editor and double-
click here to view equation.
y
Install Equation Editor and double-
click here to view equation.
donde la primera ha unificado antes las cabeceras, vemos que el estado 5 sub 0 posee dos
predecesores y un solo sucesor, cuando podría tener uno de cada, reduciéndose el número total de
estados.
-si el cardinal del conjunto de los estados que están asociados al símbolo 'I' es mayor que el
nú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).
pasaría a ser:
Install Equation Editor and double-
click here to view equation.
donde se elimina un estado asociado al símbolo 1 (ya que sólo poseía dos sucesores), pero se crea
una indeterminación en el estado 5 sub 0.
CAPITULO V : COMPILACIÓN DE DICCIONARIOS ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
36
Otra regla iterativa muy lógica nos dice que si dos estados del mismo símbolo poseen el
mismo conjunto de predecesores o sucesores, deben ser equivalentes. Esta fusión de dos estados en
uno no provoca indeterminación: si previamente dos estados de un mismo símbolo no tienen un
estado común predecesor, al unirse debido a la igualdad de sucesores, tampoco sucederá (XXXX).
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án
ser equivalentes,ya que para llegar a ellos se llegará por medio
de símbolos de entrada diferentes.
CAPITULO V : COMPILACIÓN DE DICCIONARIOS ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
Una pequeña ampliación no debería suponer la adición de las nuevas palabras al diccionario
y volver a aplicarle a todo ello el algoritmo de reducción (la complejidad del algoritmo es
dependiente de la longitud del vocabulario): debemos guardar en un fichero los resultados del
algoritmo sobre el léxico original (la secuencia de estados, símbolo y subíndice, que componen cada
palabra), para así poder recuperarlos a la hora de ampliar, añadirle las nuevas palabras con nuevos
estados, y aplicar el algoritmo sobre una base ya bastante optimizada.
Para un vocabulario poco redundante como los dígitos del cero al nueve la disminución no
vale la pena. Estos casos (que llamaríamos lexemáticos) tienen gran variedad de lexemas y apenas
morfemas.
Una mejor medida nos la dará un diccionario castellano de cierto tamaño. Usando la
máxima reducción:
número de palabras número total de número total de estados tamaño de tabla del perplejidad del autómata reducción
alófonos autómata
número de palabras número total de número total de tamaño de la tabla del perpleji-dad del autómata reducción
alófonos estados autómata
-la unificación de colas y cabeceras es casi tan efectiva reduciendo como la optimizada
-si se unifican también cabeceras, al ampliar el vocabulario se amplian las posibles cabeceras
comunes y mejora la reducción.
CAPITULO V : COMPILACIÓN DE DICCIONARIOS ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
Si las palabras que debemos reconocer se hallan corrompidas por inserciones, sustituciones
y borrados, los autómatas anteriormente generados no son directamente utilizables.
Para la obtención de los resultados anteriores, y principalmente para su uso en sistemas que
necesiten guiado o acceso léxico dentro del Departamento, hemos implementado los diversos
algoritmos en C:
-obtención del autómata en forma de árbol usando la memoria (lo que supone limitarse a
poco más de dos mil palabras ) o el disco (permitiendo así compilar decenas de miles de palabras, a
costa de una lentitud exponencialmente mayor)
Como entrada esperan recibir un fichero .LIS que contenga en cada línea:
Install Equation Editor and double-
click here to view equation.
-.TAB: cada línea contiene los estados a los que se puede saltar desde el que tiene el mismo
número que la línea.
-.EX1: contiene pares [número de palabra, símbolo siguiente] que caracterizan, junto a la
información de estado, a cada una de las palabras.
-.EX2: si no tomamos al estado final de cada palabra como caracterizador, contiene dos
números que indican la posiciones mínima y máxima de las zonas de .EX1 asociadas al estado cuyo
número coincide con el número de línea de .EX2.
V.5.1. Implementación en PC
los subdividiremos de nuevo, unificaremos sus cabeceras invertidas. Tras volver a invertir,
subdividiremos de nuevo, generaremos los ficheros resultado para los subvocabularios y
mezclaremos como antes.
CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
CAPITULO VI
VI.1 Presentación
-la complejidad, debida al retroceso causado por los errores, es en general exponencial con
la longitud en caracteres de la cadena de entrada
-la posibilidad de tener que generar diversos análisis para una misma frase multiplica aún
más la lentitud del "parsing"
- el ordenamiento de las reglas influye en los resultados: las reglas recursivas a izquierdas
deben ser las últimas en ser usadas a la hora de comparar patrones para evitar los bucles infinitos, o
bien, debemos limitar la profundidad de recursión, método siempre arriesgado, conflictivo y un
tanto arbitrario.
37
En Prolog (Pereira[87]) es especialmente fácil,aunque es
más difícil su integración con otros programas escritos en otros
lenguajes.
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 sino
parámetros de las llamadas a las distintas funciones.
Este procedimiento descendente tiene su versión ascendente: para cada símbolo terminal o
secuencia de símbolos terminales intentamos encontrar un símbolo no terminal que permita
generarlos. Estos símbolos no terminales son sometidos a un similar proceso ascendente hasta
poder alcanzar el axioma.
Un procedimiento descendente así hallado fue el LL(k), que genera una tabla, similar a la
38
de descripción de un autómata, que permite reconocer en tiempo O(n) .
Las gramáticas LL(1), las más comunes, son insuficientemente potentes para tratar el
lenguaje 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 camino
gramatical que lo conecte con el axioma.
-no existe ni existirá algoritmo que transforme una gramática cualquiera a gramática LL(1)
Sin embargo, dada su sencillez, podría ser útil en lenguajes de comandos sencillos, con
características de notación prefija. Por ejemplo la gramática BNF prefija es LL(1): existen unos
prefijos que nos indican qué tipo de frase estamos analizando
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 denotar
el comportamiento medio del algoritmo al variar la longitud de
la 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ácilmente
disponibles (YACC para máquinas UNIX, Bisón para PC...), no detallaremos el algoritmo que la
produce. En Aho[72] se describen varios, de potencia descriptiva creciente y en Tomita[86b] se
encuentra el código en LISP para generar las LALR(1).
Las gramáticas que no sean LR(1), aunque sean de contexto libre, darán lugar a tablas de
reconocimiento tablas ambiguas, con varias entradas por casilla.
0 sh3 sh4 2 1
1 sh6 acc 5
2 sh7 sh6 9 8
3 sh10
5 re2 re2
6 sh3 sh4 11
7 sh3 sh4 12
8 re1 re1
12 re7,sh6 re7 9
Al intentar usar la gramática g1.gra con más de quinientas reglas, bison se quedó sin
memoria en el PC.
Dado que :
-que no plantee ningún problema a la hora de escribir las reglas (en todo caso que se pueda
solucionar 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 Carnegie
Mellon (CMU).
VI.3 ATNs
Muy populares en su tiempo, las Redes de Transición Aumentadas surgieron al añadir a las
RTN 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:
SN V V SN
A B C D E
V SN
SP
SP
SN
Ilustr. 13 Ejemplo de gramática ATN.
-si recibimos más verbos y el VerboPrincipal no es Auxiliar (to be, to do, to have...),
CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
-el tamaño de la red se haría inmanejable al intentar tratar la multitud de fenómenos que
caracterizan a una lengua natural,
VI.4.1.1 Preproceso
Begin
P':=0
añadir a P' todas las reglas de la forma A->BC
añadir a P' todas las reglas de la forma A->a
reservar aparte las reglas del tipo A->B
No todas las gramáticas pueden ser puestas en forma Normal de Chomsky sin cadena vacía
ni eliminación de reglas unitarias del tipo A->B.Por ello les daremos un tratamiento diferenciado al
aplicar CYK.
La conversión multiplica el número de reglas aplicables, aunque ello no tiene por qué hacer
linealmente más lento el "parsing": las reglas son más pero su uso es mucho más simple, sin
necesidad de recorrer los símbolos de su parte derecha ya que sólo tiene dos. Eso sí, es necesario
ordenar las reglas por su parte derecha y guardar con cada símbolo
cuál es la primera regla que contiene dicho símbolo como primero en su parte derecha (si no la
velocidad depende directamente del número medio de reglas, multiplicándose por veinte o treinta el
tiempo de reconocimiento de una frase).
Como las reglas de los dos tipos permitidos no se aplican conjuntamente, una extensión
regular de las reglas originales (las que permiten paréntesis...) disminuye el nº de reglas en FNC
creadas.
-aplicación de las reglas tipo A->a para traducir las categorías sintácticas Terminales a No
Terminales:
Install Equation Editor and double-
click here to view equation.
Si tras realizar los cálculos en chart[0,n] hemos incluido el axioma, la cadena es aceptada.
for j=1 to n
chart[j-1,j] <- {A / existe A->a}
for i= to
for j= to
for k= to
chart[i,j] <- { A / existen a->BC ,
chart[i,k] incluye B ,
chart[k,j] incluye C}
for j=1 to n
begin
chart[j-1,j] <- {A / existe A->a}
for i=j-1 to 0
for k=i+1 to j-1
chart[i,j] <- {A / existe A->BC ,
chart[i,k] incluye B ,
chart[k,j] incluye C }
end
El árbol sintáctico se irá creando a partir del axioma, que será el nodo raíz por medio del
algoritmo descrito en el recuadro 10.
CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
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 nodoA
end
Oración=SintagmaNominal SintagmaVerbal
SintagmaNominal1=Determinante Núcleo
Determinante=determinante
SintagmaNominal1=Núcleo
Núcleo=núcleo
SintagmaNominal=SintagmaNominal SintagmaPreposic
SintagmaNominal=SintagmaNominal1
SintagmaPreposic=Preposición SintagmaNominal1
Preposición=preposición
SintagmaVerbal=Verbo SintagmaNominal
Verbo=verbo
Verbo=verbo
11 Gramática en FNC.
Usando una gramática que por hallarse en FNC (salvo la regla SN->SN1) no necesita
transformación (así evitamos la complicación de que existan símbolos artificiales en la "chart") con
la frase: "yo vi un hombre en el apartamento con un telescopio" obtenemos la tabla siguiente:
CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
j 1 2 3 4 5 6 7 8 9 10
0 núcl,Núcl, O O O
SN1,SN
verb, SV SV SV
1 Verb
3 núcl,Núcl, SN SN
SN1,SN
4 prep,Prep SPrep
5 det,Det SN1,SN SN
6 núcl,Núcl, SN
SN1,SN
7 prep, SPrep
Prep
8 det,Det SN1,SN
9 núcl,Núcl,
SN1,SN
La reconstrucción será:
,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
39
Creando esta regla se producen las mismas ambigüedades
que añadiendo SV->SV SP y además no varía la tabla de
reconocimiento.
CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
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
,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)
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
Tras realizar el primer análisis completo, realizamos el segundo, para lo cual sólo debemos
copiar de un árbol a otro el nodoO1.
Lo mismo sucede con el tercero, pero no con el cuarto. Este último parte de un tercer
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 una
estructura 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 a
izquierdas desde el nodo raíz hasta el nodo anterior, ambos inclusive.
Resulta especialmente útil que el algoritmo sintáctico pudiese predecir, tras realizar los
cálculos asociados a una palabra, cuáles son las posibles siguientes.
Nuevos=FALSO
hacer
begin
Para cada regla A->BC
begin
Añadir a Cabecera[A] la Cabecera[B]
Si ha habido nuevos
Nuevos=VERDADERO
end
end
mientras Nuevos==VERDADERO
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 de
N*N*NT casillas, siendo N el máximo número de palabras por frase y NT el cardinal del conjunto
de símbolos No Terminales.
CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
for j=1 to n
begin
para cada regla B->b
begin
incorporar B a Chart[j-1,j]
for i=j-1 to 0
for k=i+1 to j-1
begin
para cada símbolo B de Chart[i][k]
y cada C de Chart[k][j]
Si existe Regla A->BC
begin
Incorporar A a Chart[i][j]
end
for i=1 to N
for j=1 to N
para cada símbolo U
Chart[i][j][U]=NO_USADO
for i=1 to N
begin
para cada símbolo terminal 'a'en posición i
Chart[i-1][i][a]=USADO
for j=i-1 to 0
para cada regla A->BC
for k=j+1 to i-1
si (Chart[i][k][B]==USADO y
Chart[k][j][C]==USADO)
Chart[i][j][A]=USADO
end
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á
41
limitado por una constante calculada empíricamente: NumMedioNT .
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 la
consiguiente imposibilidad de analizar una frase muy ambigua por
CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
nos haría perder mucho espacio, ordenaremos las reglas por su parte derecha, tanto las
binarias 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 media
será igual al número de reglas binarias dividido por el número de símbolos no terminales (para una
gramática normal será menor a dos, con una ocupación de espacio considerablemente menor):
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º
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 de
una gramática de contexto libre sin restricciones de formato o eliminación de la cadena vacía.
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])
hacer
begin
Nuevos=0
Iteración:
for j=1 to N
begin
Nuevos=0
para 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=0
devolver ERROR
hacer
begin
Nuevos=0
para cada elemento {A->..⋅B..,i} de Agenda[j]
para cada regla B->...
Nuevos=AñadirElemento({B->⋅..,j}
,Agenda[j])
-Compleción: si hemos llegado a un estado completo {A->..⋅,i} , algún estado previo debe
haber predicho A y querrá que le avancemos el puntero: {B->..A⋅..,i}
-Avance: una vez hechas todas las posibles predicciones de símbolos terminales, debemos
comprobar que la cadena de entrada posee alguno de ellos y avanzar el puntero correspondiente del
elemento: {A->..a⋅..,i}
Reconstruye({A->B1 B2..Bm⋅,i},j)
begin
Añade a ListaDeReglas el elemento (A->B1 B2..Bm)
k=m
l=j
hacer
begin
si Bk es terminal
begin
k=k-1
l=l-1
end
si no
begin
si existe en Agenda[l] un {Bk->β⋅,r} tal que
en Agenda[r] esté {A->B1..⋅Bk,i}
begin
Reconstruye({B->β⋅,r},l)
k=k-1
l=r
end
end
end
mientras k>0
end
Usando la misma gramático no ambigua del ejemplo con CYK (figura 11) y la misma
oración, obtenemos:
En un primer paso (el de inicialización), el algoritmo predice cuáles son los símbolos
terminales (en este caso son categorías léxico-sintácticas) que pueden encabezar todas las oraciones
posibles: Det, Núcleo. Como nuestra frase (traducida a terminales) es:
Agenda[0]
Oración=⋅SintagmaNominal SintagmaVerbal 0
SintagmaNominal=⋅SintagmaNominal SintagmaPreposic 0
SintagmaNominal=⋅SintagmaNominal1 0
SintagmaNominal1=⋅Determinante Núcleo 0
SintagmaNominal1=⋅Núcleo 0
Determinante=⋅determinante 0
Nú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 ⋅ 0
SintagmaNominal1=Núcleo ⋅ 0
SintagmaNominal=SintagmaNominal1 ⋅ 0
Oración=SintagmaNominal ⋅SintagmaVerbal 0
CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
SintagmaNominal=SintagmaNominal ⋅SintagmaPreposic 0
SintagmaVerbal=⋅Verbo SintagmaNominal 1
SintagmaPreposic=⋅Preposición SintagmaNominal1 1
Verbo=⋅verbo 1
Preposición=⋅preposición 1
Agenda[2]
Verbo=verbo ⋅ 1
SintagmaVerbal=Verbo ⋅SintagmaNominal 1
SintagmaNominal=⋅SintagmaNominal SintagmaPreposic 2
SintagmaNominal=⋅SintagmaNominal1 2
SintagmaNominal1=⋅Determinante Núcleo 2
SintagmaNominal1=⋅Núcleo 2
Determinante=⋅determinante 2
Núcleo=⋅núcleo 2
Agenda[3]
Determinante=determinante ⋅ 2
SintagmaNominal1=Determinante ⋅Núcleo 2
Núcleo=⋅núcleo 3
Agenda[4]
Núcleo=núcleo ⋅ 3
SintagmaNominal1=Determinante Núcleo ⋅ 2
SintagmaNominal=SintagmaNominal1 ⋅ 2
SintagmaVerbal=Verbo SintagmaNominal ⋅ 1
SintagmaNominal=SintagmaNominal ⋅SintagmaPreposic 2
Oración=SintagmaNominal SintagmaVerbal ⋅ 0
SintagmaPreposic=⋅Preposición SintagmaNominal1 4
Preposición=⋅preposición 4
Agenda[5]
Preposición=preposición ⋅ 4
SintagmaPreposic=Preposición ⋅SintagmaNominal1 4
SintagmaNominal1=⋅Determinante Núcleo 5
SintagmaNominal1=⋅Núcleo 5
Determinante=⋅determinante 5
Núcleo=⋅núcleo 5
Agenda[6]
Determinante=determinante ⋅ 5
SintagmaNominal1=Determinante ⋅Núcleo 5
Núcleo=⋅núcleo 6
Agenda[7]
Núcleo=núcleo ⋅ 6
SintagmaNominal1=Determinante Núcleo ⋅ 5
CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
SintagmaPreposic=Preposición SintagmaNominal1 ⋅ 4
SintagmaNominal=SintagmaNominal SintagmaPreposic ⋅ 2
SintagmaVerbal=Verbo SintagmaNominal ⋅ 1
SintagmaNominal=SintagmaNominal ⋅SintagmaPreposic 2
Oración=SintagmaNominal SintagmaVerbal ⋅ 0
SintagmaPreposic=⋅Preposición SintagmaNominal1 7
Preposición=⋅preposición 7
Agenda[8]
Preposición=preposición ⋅ 7
SintagmaPreposic=Preposición ⋅SintagmaNominal1 7
SintagmaNominal1=⋅Determinante Núcleo 8
SintagmaNominal1=⋅Núcleo 8
Determinante=⋅determinante 8
Núcleo=⋅núcleo 8
Agenda[9]
Determinante=determinante ⋅ 8
SintagmaNominal1=Determinante ⋅Núcleo 8
Núcleo=⋅núcleo 9
Agenda[10]
Núcleo=núcleo ⋅ 9
SintagmaNominal1=Determinante Núcleo ⋅ 8
SintagmaPreposic=Preposición SintagmaNominal1 ⋅ 7
SintagmaNominal=SintagmaNominal SintagmaPreposic ⋅ 2
SintagmaVerbal=Verbo SintagmaNominal ⋅ 1
SintagmaNominal=SintagmaNominal ⋅SintagmaPreposic 2
Oración=SintagmaNominal SintagmaVerbal ⋅ 0
SintagmaPreposic=⋅Preposición SintagmaNominal1 10
Preposición=⋅preposición 10
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 Terminal
Determinante procede de: el elemento de Agenda[9]:
{Determinante=determinante ⋅,8}
Llamada a RECONSTRUYE(Agenda[9]
,{Determinante=determinante ⋅,8})
determinante es Terminal
Preposició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 Terminal
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 Terminal
Determinante 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.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
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 Terminal
Determinante 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 Terminal
Preposició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 Terminal
Oració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 Terminal
Determinante procede de: el elemento de Agenda[6]:
{Determinante=determinante ⋅,5}
Llamada a RECONSTRUYE(Agenda[6]
,{Determinante=determinante ⋅,5})
determinante es Terminal
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 Terminal
Oració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.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
Llegados a este punto, encontramos una nueva ambigüedad: la suboración que se extiende
de 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}
Llamada a RECONSTRUYE(Agenda[7]
,{Oración=SintagmaNominal SintagmaVerbal ⋅,0})
CAPITULO VI : ANÁLISIS SINTÁCTICO ... DE CONTEXTO LIBRE ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
,{Determinante=determinante ⋅,2})
determinante es Terminal
Verbo procede de: el elemento de Agenda[2]:
{Verbo=verbo ⋅,1}
Llamada a RECONSTRUYE(Agenda[2]
,{Verbo=verbo ⋅,1})
verbo es Terminal
SintagmaNominal 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...).
-El número de estados en cada Agenda[i] es proporcional a N (es el máximo valor que
puede 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 una
serie de operaciones:su complejidad conjunta será proporcional a N.
-la compleción, por su parte, supone recorrer una Agenda[] y para cada elemento de ella
podríamos tener que recorrer otra Agenda[], con lo cual la complejidad sería proporcional al
cuadrado de N.
De todos modos estas cifras son engañosas, y lo que hace más lento el algoritmo es la
abundancia de ambigüedades: con una gramática finamente sintonizada la velocidad crece
enormemente.
CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
CAPITULO VII
VII.1 Presentación
-edición de los ficheros que constituyan la gramática. Sería recomendable edición orientada
al formato si este es mínimamente complejo
-compilación y verificación de los mismos, con mensajes claros acerca de las incorrecciones
detectadas
-sencillez máxima para la variación del algoritmo sintáctico, a ser posible sin recompilación
BORLANDC++, cambiamos inmediatamente (sin más que un pequeño aunque imprevisto cambio
en la semántica de los pre- y post-incrementos). Aunque no hemos explotado sus más avanzadas
posibilidades (la programación orientada a objetos o para MS-WINDOWS) hemos optado por
compilarlo siempre en modo C++ (a pesar de su lentitud).
Por sencillez y portabilidad no hemos usado la pantalla en modo gráfico: los árboles
sintá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 formato
LATEX.
-la conocida dificultad de los categorizadores para distinguir los nombres sustantivos de los
nombres adjetivos si están basados en morfología y carecen de información sintáctico-semántica, no
tiene porqué hacernos cambiar la gramática, simplemente habrá que añadir una línea al interfaz
indicando 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... puede
ser elegantemente modelada como una traducción de sus categorías léxicas en varias categorías
sintácticas, una de las cuales sería la de sustantivo
Palabra_1 NumCategoría_i
Palabra_1 NumCategoría_j
FICHERO .CMT
⋅
⋅
Palabra_2 NumCategoría_l
⋅
⋅
Palabra_N NumCategoría_M
FICHERO .GRA
FICHERO .REG
FICHERO .DIC
Las palabras, una por línea del fichero, deberán estar ordenadas: si no, la verificación de la
gramática detectará el error e impedirá su uso). Un programa auxiliar ordena diccionarios con el
formato correcto y de tamaño arbitrario. Si no excediese los 64K, es más rápido pasar el
diccionario previamente a través del filtro SORT del sistema operativo, que utiliza la memoria para
realizar la ordenación. Como no sigue la numeración ASCII y ordena por igual las mayúsculas y las
minú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 ficheros
gramaticales.
CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
! 54
" 30
"desescuchadas" 3
"politicismo" 2
, 17
- 17
: 55
; 17
? 47
a 51 VII.4
Formato de los a 6 ficheros .REG
abandonado 18
Queda abandonar 10 recogido en el
abandono 2
recuadro 19.
CategoríaSintáctica_1=CategLéx_i CategLéca_j...
⋅
⋅
CategoríaSintáctica_h=...
⋅
⋅
CategoríaSintáctica_N=CategoríaLexica_k...
19 formato .REG
V=verb
N=sust
Adj=adj
Adv1=adv advIns advNeg
Adv2=adv advIns advAutónomo
Pron=pron
Prep=prep prepHace
PrepDest=prepDest
PrepOrig=prepOrig prepDe
Det=art demostr posesivo
SímboloNoTerminal=Expresión_1
Expresión_1=Expresión_1 | Expresión_2
Expresión_1=Expresión_2
Expresión_2=Expresión_2 Término
Expresión_2=Término
Término=Término2
Término=( Término )
Término2=Símbolo
Término2=Símbolo *
Término2=Símbolo +
Término2=Símbolo Término2
Términos=Término2
Símbolo=CadenaVacía
Símbolo=SímboloNoTerminal
Símbolo=SímboloTerminal
El carácter espacio en blanco ' ' será considerado separador de símbolos, al igual que la
barra disyuntiva '|', el signo de igualdad '=' y el retorno de carro. No lo serán los caracteres
predefinidos '+', '*', '(', ')', que deberán llevar intercalado antes del siguiente símbolo un separador.
No se debe usar tabuladores ni barra hacia atrás '\', aunque lo permita el verificador. Este
distingue entre mayúsculas y minúsculas.
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á tomado
como axioma generador del lenguaje. Si deseamos más de un axioma, la primer regla será del tipo:
Axioma=Axioma_1 | Axioma_2...
-lo incluido dentro de un paréntesis, si tiene una estructura compleja o recursiva, bien
merece la definición de un nuevo símbolo terminal
-si un paréntesis pudiera contener diversas alternativas, es que esas diversas alternativas
realizan una misma función sintáctica que convendría especifica
ORACION=(MOInicial) ORACION1
ORACION1=Proposición (MOFinal)|OCompuesta (MOFinal)
ORACION=(SP Coma) OImperativa|OImperativa Coma SP
ORACION=Interrogación Proposición1 Interrogación
ORACION=Exclamación Proposición1 Exclamación
ORACION=Exclamación OExclamat Exclamación
OExclamat=OInterrog
ORACION=Interrogación OInterrog Interrogación
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 de
desarrollar el símbolo no terminal que encabeza la regla.
Las cadena de símbolos entre paréntesis serán opcionales, es decir, el símbolo no terminal
de 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
43
La notación se hace compacta y formateada como la ideal
para un lenguaje regular.
CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
La adición del ´*´ equivale a añadir un '+' y encerrarlo todo, el símbolo y el más, entre
paréntesis (pudiéndose así repetir el símbolo de 0 hasta INFINITO).
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 de
formato regular será por lo general estéril, ya que debemos diseñar un algoritmo que descompacte
lo que hemos compactado.
-desdoblar las disyunciones, creando una nueva regla temporal por cada alternativa. De la
regla:
Install Equation Editor and double-
click here to view equation.
saldrán:
Install Equation Editor and double-
click here to view equation.
Install Equation Editor and double-
click here to view equation.
44
Ver apartado dedicado a la sintaxis X-barra.
CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
-si Símbolo=SímboloTerminal,
desde la regla nº1 hasta la MaxRegla,
si InParéntesis==1,añadir SímboloTerminal a
las 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érmino2
AñadirTérmino2();
-si Símbolo=CadenaVacía,
desde la regla nº1 hasta la MaxRegla,
si InParéntesis==1,añadir CadenaVacía a las
reglas pares;
si no,añadirlo a todas;
-si Término=( Términos ),
copiar las reglas desde la primera hasta MaxRegla
en las posiciones MaxRegla+1 hasta 2*MaxRegla;
MaxRegla=2*MaxRegla;
AñadirTérminos();
⋅
CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
Las categorías léxica de cada una de las palabras del diccionario ha de ser traducida a
45
categoría(s) sintáctica(s) en el fichero-interfaz . El "ingeniero lingüístico" que trabaje en el
desarrollo de una gramática estará más seguro si el lexicón contiene al menos una palabra
perteneciente a las categorías léxicas posibles; y que no se emplee ninguna con una categorización
gramaticalmente no factible. Además el diccionario deberá tener un formato correcto y estar
correctamente ordenado.
Las categorías sintácticas del fichero .REG han de corresponderse biunívocamente con los
símbolos terminales del .GRA, y éstos deben ser alcanzables a partir del axioma.También los
sí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). El
carácter opcional de todos los elementos del siguiente sintagma nominal no debe ser así expresado:
suponiendo que la cadena vacía sea aceptada por el algoritmo de análisis y usemos el
carácter '#' como meta-CadenaVacía.
Una opción nos debería permitir verificar que no existen recursiones a derechas o a
izquierdas (algo que algunos algoritmos no permiten), así como decidir el modo en el que son
compilados los símbolos afectados por un signo más (cada símbolo de este tipo da lugar a dos
reglas que podrían ser A*=A* A y A*=A, o bien A*=A A* y A*=A).
45
Es recomendable que,cuando la traducción no es ambigua,
los nombres coincidan salvo ligero cambio de mayúsculas por
minúsculas(Ej:Artículo=artículo) siguiendo una convención que
faciliten la escritura.
CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
Para escoger una opción debemos colocar la barra de selección sobre ella empleando las
flechas hacia arriba y hacia abajo, la tecla Inicio para ir a la primera opción y a la tecla Fin para ir a
la ú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.
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 la
corrección de la gramática, y la transforme.
La lectura del recientemente creado .GRA o del .REG, el .AUX o el .DIC puede dar lugar
a detección de incorrecciones, sólo la primera de las cuales se mostrará en pantalla, ya que a tal
efecto se generarán: HayError.GRA, HayError.REG, HayError.AUX y HayError.DIC.
%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
CategoríaSintácticaNoTraducida=%s...
Como el fichero .GRA se obtiene automáticamente y sin errores del .CMT, y éste no
46
depende jerárquicamente de ningún otro, no será posible crear AUSENTES.GRA .
PalabraLeída=%u
46
Como los símbolos no terminales serán únicamente aquellos
que 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á la
imposibilidad de traducirlos a categorías léxicas.
CAPITULO VII : EL ENTORNO PARA EL DESARROLLO DE GRAMÁTICAS ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
%s=NumeroCategoríaSobrante
-"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=.
-"Error de formato en línea %s": ausencia del signo igual, utilización de símbolos no
permitidos 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=".
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:
En AVISOS.AUX:
En AVISOS.DIC:
VII.9.1.2 Estadísticas
En Estadist.GRA:
En Estadist.REG
En Estadist.DIC:
VII.9.2 Editar
-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án
editarse en paralelo con sus respectivos ficheros gramaticales; la exigencias de la jerarquía de
ficheros hace también aconsejable la edición simultaneada del .GRA y el .REG, de este y el .AUX
y,finalmente, del .AUX y el .DIC.
De los específicos significados de las extensiones de los distintos fichero generados por el
entorno, 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 ficheros
gramaticales", que al ser escogida dará paso a otro menú con las distintas gramáticas contenidas en
47
el directorio actual . 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 de
barras, 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 bondad
de 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
47
Realmente llega con la existencia en dicho directorio de
un 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 árboles
sintácticos dibujados mediante caracteres ASCII, paréntesis etiquetados, estadísticas de utilización
de 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 la
opción final, "Edición de ficheros no específicos", se entrará directamente al editor, que es quien
nos pide, sin más menús, el nombre del fichero que editar.
Recordar que las opciones de un menú que contengan una letra resaltada en mayúsculas
podrán ser escogidas sin más que presionarla en el teclado, estén o no bloqueadas las mayúsculas, y
que 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 ha
encontrado 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') y
responder 's' o 'S' a la pregunta de si deseados realmente salir del programa.
VII.9.4 Opciones
-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
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 debe
achacar 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 los
símbolos acabados en '+' poseen comentarios también creados por programa.
Permite ver, de veinte en veinte, los símbolos definidos por el usuario al escribir la
gramática y las categorías léxicas del diccionario. Seleccionando uno de ellos y pulsando F2, para el
símbolo seleccionado, una ventana nos mostrará de qué símbolos no terminales puede ser nodo-hijo
en un árbol sintáctico (eso quiere decir que, siguiendo al notación por niveles, si Det aparece en una
regla SN1=Det..., no será SN1 quien aparezca, sino SN, símbolo no terminal visible). También se
nos dirá cuáles son las categorías léxicas en las que admite debajo (si editamos las categorías
léxicas, la única información disponible será esta última invertida: en qué categorías sintácticas
terminales se puede convertir la seleccionada).
Las convenciones son las de siempre; pulsando ESC saltamos a los siguientes veinte
símbolos o categorías léxicas (éstas aparecen cuando se acaban los anteriores); la tecla Pausa nos
devuelve al menú principal.
Un menú de barras nos muestra los ficheros .TXT que tenemos en el directorio actual, sin
verificar si se trata de ficheros de auténticos ficheros de texto (las longitudes de línea menores que
el 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 un
punto) se buscarán la palabras en el diccionario categorizado. Las que no se encuentren, serán
acumuladas en NuevaPal.DIC para que al acabar de analizar el texto se llame al editor Norton y
categorizar NuevaPal.DIC; al salir del editor se mezclará el fichero editado con el diccionario y se
ordenará; 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.
CAPITULO VIII: LINGUISTICA APLICADA ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
CAPITULO VIII
LINGÜÍSTICA APLICADA
Desde un enfoque semántico, la oración estaría constituida por uno o más enunciados con
sentido completo. La formalización del concepto de sentido completo es posible en determinados
entornos no completamente naturales (accesos a bases de datos, fundamentalmente, donde cad
enunciado debe corresponderse con una petición a la misma, siendo inaceptables las peticiones cuya
lógica no se ajuste al esquema conceptual de la base). En ámbitos más generales y no tan
restringidos, la formalización parece hallarse lejos y, en todo caso, precisaría de la intermediación
de la sintaxis.
El enunciado será bien fragmentario bien oracional, y la oración podrá ser de posición
relativa (proposición inserta en otra de orden superior) o absoluta.
Con nuestro entorno sólo podremos estudiar su sintaxis, teniendo que pasar por alto cómo
la variación de la entonación convierte "¡Bien!" en una expresión irónica o de reproche con
significado opuesto al habitual.
como oraciones los simples fragmentos carentes de verbo en forma personal en torno al cual
ordenarse, o sin independencia sintáctica, el pragmatismo que nos guía hace aconsejable tratar a la
vez las oraciones formales y las "informales", aunque sin mezclarlas. Sin el estudio sintáctico de los
fragmentos no podremos abordar sistemas basados en diálogo de una mediana complejidad, ni la
comprensión de textos con pocas restricciones.
En esta recta final cambiaremos el nombre de nuestro axioma gramatical, que ya no será la
oración sino el enunciado, y distinguiremos entre oraciones formales y fragmentos (éstos no serán
susceptibles de aparecer en posiciones no absolutas: subordinaciones no entrecomilladas por ser
literales...).
Así nuestra gramática será más robusta frente a texto irrestringido, aunque sin que
pretendamos hacerla plenamente robusta, que acepte todo enunciado como correcto y le asigne una
estructura conocida o improvisada. En un entorno de reconocimiento de voz eso exigiría una tasa
de reconocimiento de palabras cercana a la infalibilidad, y eliminaría totalmente la posibilidad de
48
guiado por sintaxis .
Conviene diferenciar a los fragmentos de las proposiciones con elipsis verbal recuperable a
partir del contexto lingüístico oracional. En:
no podemos considerar que "el segundo clasificado la mitad" constituya un fragmento coordinado
copulativamente con una proposición, ya que la pausa que antecede a "la mitad" nos señala la
ausencia del verbo, que, debido al paralelismo entre los sintagmas nominales, fácilmente
recuperamos de la primera proposición.
"porque él no quiso"
encontramos un verbo en forma personal articulando toda una proposición, pero ésta indica la
causa de un efecto no comprensible simplemente por el contenido del enunciado. Un "parser"
48
En sistemas de lectura o comprensión de texto escrito y
fiable,el análisis de fragmentos muy alejados del concepto
clásico de sintagma,una heurística de emergencia debería
intentar ,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.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
-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"
-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?"
-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"
-sintagmas preposicionales:
"¡a mi edad!"
"¿para qué derramar más sangre?"
Para que un enunciado sea formalmente una oración completa, deberá tener un verbo en
forma personal (por elevación X con barra, un SintagmaVerbal).La misma caracterización de ese
verbo 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 reflejos
como en se come bien allí), la mayoría de las oraciones que en castellano carecen de sujeto poseen
desinencias verbales que nos permiten recuperarlo.
Pero la relación entre sujeto y verbo no se limita a la concordancia: pueden existir más
sintagmas nominales que concuerden con el verbo y no sean sujetos, incluso puede haber un solo
sintagma nominal que concuerde con el verbo y lo anteceda sin tener por ello que ser su sujeto:
Proposición→(SintagmaSujeto) SintagmaVerbal
o la muy ambigua:
Proposición→SintagmaVerbal Sujeto
Proposición[ SV[ transcurre diabólicamente] Sujeto[ el tiempo] SV[ SPrep[ con lentitud
propia de otras épocas ]]]
En torno al sustantivo (al menos principalmente) se ordena uno de los dos constituyentes
50
inmediatos de la oración: el sintagma nominal . Siguiendo la sintaxis X con barra, será la
proyección máxima del nombre, y en distintos niveles de ascensión se le irán añadiendo
determinantes, modificadores, la coordinación y la subordinación...
"el invierno comenzó con una fuerte tormenta de nieve" (término de un sintagma
preposicional complemento del verbo)
Tres tipos de elementos, con sintaxis muy particulares, pueden constituirse en núcleos del
sintagma nominal: el nombre común, le nombre propio y el pronombre personal.
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; al
ralizar 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 las
contracciones, los espacios en blanco como delimitadores categoriales. Como los pronombres no
pueden ir tras el verbo de otro modo, la gramática será distinta si incluimos el pronombre en el
verbo o si los separamos.
En los casos de elipsis siempre es posible sustituir el verbo ausente por un pronombre
personal que concuerde con el verbo y realice las funciones del sujeto ausente.
Las ambigüedades que pueden surgir de las reglas que contemplen tanta diversidad suelen
tener su origen en la rección prepositiva: si admitimos que cada nombre pueda tener como
complementos a sintagmas preposicionales sin restricción alguna, la presencia en el sintagma
nominal de varios complementos de ese tipo da lugar a, al menos, dos análisis: el segundo sintagma
como 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 de
relativo, las ambigüedades crecerán.
La ausencia de núcleo nominal en muchos sintagmas que pro su estructura deberían tenerlo
abunda en castellano. A lo largo de la historia de la lingüística se han sostenido diversas hipótesis
para su explicación:
-la nominalización del determinante: en sintagmas como un desesperado, este de verde, mis
viejos... la función de núcleo recaería sobre el artículo, el demostrativo, la familia léxixa de ningún...
-la elipsis del núcleo nominal, que deberíamos extraer del contexto lingüístico o de
situación. Hablando de fútbol, los de negro serían los señores de negro, los árbitros; en los de
Pamplona se sobreentiende el núcleo habitantes...
Si optamos por la elipsis (algo muy común en el generativismo) usaremos una categoría
51
vacía NucleoNominal sub lambda que deje constancia de la ausencia del sustantivo y permitirá a
otros módulos semántico-pragmáticos su relleno.
52
Aunque el tema no admite un tratamiento homogéneo (el artículo nuetro sí parece realizar
labores 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 árboles
que 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 las
reglas sintácticas (no funcionales).
Ya hemos visto como el verbo concuerda con un elemento externo a su propio sintagma, el
sujeto. Sin embargo, la verdadera riqueza sintáctica asociada a él se da en las relaciones que
mantiene con sus otros complementos. La intimidad de trato que el verbo tiene con sus objetos
directo e indirecto fue señalada por la gramática tradicional, diferenciando así a estos
complementos de otros calificados como accesorios o circunstanciales.
53 Por esta misma razón en la gramática incremental que estamos desarrollando nos hemos centrado en la estructura del sintagma
nominal.
CAPITULO VIII: LINGUISTICA APLICADA ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
podíamos considerar que se han producido una serie de elisiones no particularmente complejas a
partir de:
"Juan comió todo lo que quiso y Juan bebió todo lo que quiso"
"un capón y una perdiz fueron comidos por ellos durante el banquete"
Hasta ahora la mayoría de los ejemplos vistos seguían las reglas habituales de la aritmética:
singular+singular == plural
singular + plural == plural
plural + singular == plural
plural + plural == plural
aunque:
También:
pero:
Parece que la determinación desempeña un papel importante para no tener que admitir
ambigüedad en el número a la hora de analizar los sintagmas nominales:
Así mismo:
SN[ Det[ la ] Núcleo[ chica ] SAdj[ flaca y joven]]
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ódulo
superior el que desambigüe).
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"
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ática
la que rige la coordinación:
A pesar de esto el planteamiento sintáctico nos será útil sin más que permitir la
coordinación heterogénea en entornos delimitados, evitando aceptar ejemplos extremos
(gramaticales o no):
?"se comió el pastel entero, pero no le sentó mal; sin embargo fue al médico"
Es normal que las categorías léxicas se proyecten sintacticamente dando lugar a sintagmas
que lleven su nombre: (sintagmas verbal, nominal, preposicional...) porque, de algún modo, esas
categorías constituyen el nucleo que les da entidad.
-la relación especial entre un sustantivo y sus modificadores o entre un verbo transitivo y su
complemento 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 o
suceder a un sustantivo...) no debe multiplicar la presencia de éste en el árbol, como lo harían reglas
como:
Install Equation Editor and double-
click here to view equation.
Con el fin de aumentar de un modo sencillo y sistemático las categorías clásicas, Jackendoff
propuso que cada una de ellas adoptara una estructura de niveles numerados que toman su nombre
del 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.
CAPITULO VIII: LINGUISTICA APLICADA ¡Error!Marcador no definido.
⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
CAPITULO IX
Para explicar la metodología recomendada para construir una gramática que cubra
determinados aspectos del castellano natural, estudiaremos incrementalmente la del nombre propio,
generando un pequeño conjunto de reglas para los sintagmas nominales que tengan al nombre
54
propio como núcleo .
Los manuales generales de gramática del español apenas tratan las estructuras de dichos
sintagmas (especialmente si se apoyan en textos literarios para dar ejemplos). Se justifica su
cará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
-no se hallan en los diccionarios sino en las enciclopedias porque carecen de semántica
connotativa; Luisa, Barcelona... no son definibles sino que simplemente denotan seres humanos,
entidades geográficas... concretas.
daría cuenta de ejemplos típicos del acceso a una base de datos o un libro de gramática:
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 sintagmas
nominales, no aparecerá directamente bajo SintagmaNominal, sino bajo SintagmaNominal_1, su
derivado para coordinación:
En ese mismo nivel situaremos las aposiciones explicativas (las que van entre comas):
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 Estados
Unidos deAmérica, La Coruña...), podemos optar por generar reglas sintácticas con una
categorizació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 misma
categorí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 analizador
lexicográ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"
-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) NomPersonaSimple
SintNominal_1=NomGeoSimple
SintNominal_1=(Título) NomPersComp
SintNominal_1=NomGeoCompSinArt
SintNominal_1=ArtDet NomGeoCompConArt
"(Don) Juan"
"Barcelona"
"(Don) Juan_Carlos"
"Santiago_de_Compostela"
"el Cerro_De_Los_Angeles"
ORACION
≥
OCompuesta
≥
OCoordinada
≥
OAdversativa
∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗
↵
Proposición NexoAdversat
Proposición
∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗↵ ≥
≥
V SN ≥
SVAtrib
≥ ∨⊗⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ ≥
∨⊗⊗⊗⊗⊗⊗⊗⊗⊗ℜ⊗⊗ℑ⊗⊗⊗⊗⊗⊗⊗⊗⊗↵
≥ AdjAntAlgún NomPersona ≥ AdvNegativo
VerbCop 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.
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ácil
encontrar oraciones "normales":
Los adjetivos que pueden anteceder al nombre (los llamaremos previos y no explicativos
por nuestro enfoque sintáctico no funcional) son poco compatibles con las categorías que
acabamos de mencionar en ausencia de más complementos:
Para contemplar:
construiremos:
Los posibles complementos pospuestos (sin contar con aposiciones adjuntas o explicativas)
son SintagmaAdjetvoPosterior , SintagmaPreposicional, ProposiciónDeRelativo.
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
CAPITULO IX : EJEMPLO DE DESARROLLO DE UNA GRAMÁTICA
¡Error!Marcador no definido.
CAPITULO X : INTEGRACIÓN... ¡Error!Marcador no definido.
CAPITULO X
Si dispone de una celosía de palabras detectadas en una serie de tramas de voz, de sus
tramas de comienzo y sus trama final, podemos aplicarle los algoritmos sintácticos para encontrar la
secuencia 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, con
los mismos defecto que se reseñarán (Makino[91], Andry[91]).
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 (permitiremos
cierto 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)
-si para un mismo camino activo hemos encontrado varias palabras con distinta
trama final, creamos una nueva rama activa para cada una menos la primera (que continuará por la
rama ya presente anteriormente)
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 la
dependencia que en la práctica puede tener una buena o mala política de poda y en Kita[91] otra
similar 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=FALSE
end
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)!=ERROR
begin
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
else
DestruyeCélula(C)
end
si ACCION(s,a)=="red a->B'
Reduce(C.PilaLR,A,B)
si ACCION(s,a)=='aceptac"
C.Aceptada=CIERTO
end
end
EstadoAct[1]=0;
NumPilas=1
for TramaActual=0 to TramaFinal
begin
Palabras={palabras que comiencen en esta trama}
si cardinal(Palabras)==0
continue
for j=1 to NumPilas
begin
Expect(j)={categorías esperadas para el
estado actual de la pila j }
Si el cardinal de Expect(j)==0
begin
Realizar las posibles reducciones de la
pila j
end
si no
begin
for k=1 to Cardinal(Palabras)
begin
si (no ha sido actualizada
temporalmente y Ultima-
Palabra(j) es compatible con
Palabras[k])
avanzar la pila temporalmente
si (fue actualizada temporalmente
y UltimaPalabra es
compatible con Palabras[k])
crear una nueva pila
dependiente de la anterior...
end
end
end
end
for i=1 to I
begin
para cada palabra 'u' del vocabulario
Score[j][i][u]=score acústico en i-2*J...i
B[j][i][U]=
NumRegla(U->u)
F[j][i][U]=0
end
end
end
for j=i-1 to 0
recorrer las reglas U->VW
for l=j+1 to i-1
begin
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]=l
end
end
26 Algoritmo de Ney.
,donde:
-el Chart es ahora tridimensional (no bidimensional con una pila en cada casilla) y guarda en
Chart[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
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 Terminales
que 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ólo
con las reglas que nos dan la mayor probabilidad parcial (en eso consiste la programación dinámica)
-para cada trama hay que realizar el alineamiento hacia atrás de todas las palabras del
vocabulario 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 al
número de palabras como en el CYK convencional.
Inicialización
Para cada regla del tipo S->A..B
incorporar a la agenda {S->⋅A..B,0,0,[]}
Añadir {A->aB⋅..,k,l,[j]}
end
end
end
El one-pass sólo ve la existencia en el Chart de nodos léxicos: aquellos que están esperando
la aceptación de una palabra o símbolo terminal, o aquellos que ya la han recibido. Cuando la zona
activa de una palabra esperada alcanza su estado final de Markov, la palabra es aceptada y se
comunica asíncronamente al Actualizador del Chart.
CAPITULO XI
LÍNEAS FUTURAS
Aunque las gramáticas de contexto libre tal cual están contempladas en nuestro entorno nos
proporcionan un aceptable marco para caracterizar una lengua natural como el castellano, la muy
detallada labor de categorización necesaria para cubrir la multitud de aspectos que presentan las
lenguas y la lentitud que para el "parsing" supone la generación de numerosas estructuras
intermedias finalmente carentes de utilidad, hace aconsejable una ampliación del formalismo de
escritura basándonos en rasgos.
Símbolo[+Característica_1,... ,+Característica_n-1]
-Si los árboles que nuestra gramática da para la mayoría de las oraciones son pocos, un
simple posproceso podrá verificar la concordancia entre los rasgos mediante una función recursiva
de recorrido de cada árbol: partiendo del nodo raíz bajará hasta las palabras y desde allí elevará sus
rasgos 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 chequeando
las 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 el
contexto en el que puede o debe aparecer, podrían hacer imposible la tarea de hallar un algoritmo
de "parsing" (Ver Shieber[86]).
56
No confundir con el formalismo de las gramáticas
indexadas,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 un
sustantivo que no admite sintagmas preposicionales en "de", seguiremos teniendo la doble
posibilidad: posproceso o integración. Por ejemplo:
-el verbo impersonal elevará a sus categorías superiores el rasgo "no se admite la presencia
de sujeto". El "parser", cuando intente unificar un sintagma nominal con ese sintagma verbal, no
permitirá que al primero se le asigne la función de sujeto (podrá ser complemento temporal o
espacial no subcategorizado...).
Los mecanismos de herencia requerirán barreras que impidan su propagación más allá de
donde son necesarios o significativos. Que una proposición no pueda tener sujeto porque el verbo
57
es meteorológico (llover...) y le ha transmitido dicho rasgo por elevación , no quiere decir que
proposiciones de nivel superior que contengan a la impersonal también sean impersonales.
el carácter transitivo de la construcción verbal influye más allá de los límites de las
proposiciones coordinadas, alcanzando el ámbito oracional. Aunque podría considerarse que la
coordinación no es entre proposiciones sino entre fragmentos incompletos de proposiciones ("Juan
comió" y "María cocinó"), más lógico es considerar que hay una elipsis en la primera proposición y
que el hueco es rellenado con un sintagma por el nivel superior (al unificar las proposiciones
coordinadas 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 para
extraer temporalmente dichos rasgos sólo presentes continuamente en el nivel de palabra. La
ralentización sería notable ya que la reconstrucción es mucho más lenta que el análisis simple.
-incluir dentro de las reglas sintácticas la posibilidad de emplear categorías derivadas (las
propias de las Gramáticas Categoriales) para dar que se puedan transmitir de un modo sencillo las
elipsis
-meta-reglas que alteren la estructura superficial que se va creando para que salga a la luz la
estructura 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 deba
de ser ascendente.Los algoritmos descendentes también pueden
emplear 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 nivel
axiomático de los árboles sintácticos.
Para la oración:
ORACION
∨⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊕⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗⊗↵
SintagmaNominal SintagmaVerbal
SintagmaNominal
∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵ ∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗⊗⊗↵
∨⊗⊗⊗⊗⊗ℑ⊗⊗⊗↵ Det Núcleo Prononbre VerboTransit
Det Núcleo
⋅
⋅
CAPITULO XII : LÍNEAS FUTURAS ¡Error!Marcador no definido.
El resultado funcional será :
Install Equation Editor and double-
click here to view equation.
Aunque con estos mecanismos nos salimos de la ortodoxia generativa, los estudios de ésta
sobre restricciones a la aplicación de transformaciones (ningún elemento puede ser extraído de una
proposición coordinada aunque sí puede ser copiado...), las reglas de elisión (recuperabilidad
gracias 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.
[Andry 91] F.Andry y S.Thornton, "A parser for speech lattices using a Unification
Categorial 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.
[Fissore 88] L.Fissore et al, "Interaction between fast lexical access and word verification in
large vocabulary continuous speech recognition", IEEE-ICASSP, pp.279-282, 1988.
[Fissore 89] L.Fissore et al, "A word hypothesizer for a large vocabulary continuous speech
understanding system", IEEE-ICASSP, pp.453-456, 1989.
[Grosz 86] B.Grosz et al, Readings in Natural Language Processing, Ed. Morgna
Kaufmann, 1986.
[Gutiérrez 78] M.L.Gutiérrez, Estructuras sintácticas del español actual, Ed. Sociedad
General Española de Librería S.A., 1978.
[Levinson 88] S.E.Levinson et al, "Large vocabulary speech recognition using a Hidden
Markov Model for acoustic/phonetic classification", pp.505508, 1988.
[Miller 88] L.G.Miller y S.E.Levinson, "Syntactic analysis for large vocabulary speech
recognition using a context-free covering gramar", pp.271-274, 1988
[Ney 87] H.Ney, "Dynamic programming speech recognition using a context-free gramar⋅,
IEEE-ICASSP, pp.69-72, 1987.
[Pereira 87] F.C.N.Pereira y S.Shieber, Prolog and natural language analysis, Ed. CLSI,
1987.
[Pieraccini 92] R. Pieraccini et al, "A speech understanding system based on statistical
representation of semantics", IEEE-ICASSP, pp.193-196, 1991
[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-speech
conversion", IEEE-ICASSP, pp.775-778, 1991.
[Saito 89] H.Saito et al, "HMM continuous speech recognition using predictive LR
parsing", IEEE-ICASSP, pp.703-706, 1989.
[Seneff 92] S. Seneff, "Robust parsing for spoken languaje systems", IEEE-ICASSP, pp.
189-192, 1992
[Smaïli 90] K.Smaïli et al, "A continuous speech recognition approach for the design of a
dictation machine", IEEE-ICASSP, pp.953-956, 1990.
[Tomita 86a] M.Tomita, "An efficient word lattice parsing algorithm for continuous speech
recognition", IEEE-ICASSP, pp.1569-1562, 1986.
[Tomita 86b] M.Tomita, Efficient parsing for natural language.A fast algorithm for
practical systems, Ed. Kluger Academic Publishers, 1986.
[Vidal 90] E.Vidal y P.García, "Inference of k-testable languages in the strict sense and
application to syntactic pattern recognition", IEEE Transactions on Pattern Analysis and Machine
Intelligence, 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 translation
system", IEEE-ICASSP, pp. 209-212, 1992
[Young 91] S.Young y M.Matessa, "Using pragmatic and semantic knowledge to correct
parsing of spoken language utterances", IEEE-ICASSP, pp.223-227, 1991.