• No se han encontrado resultados

Una extensión a plena - una aproximación al procesamiento del lenguaje natural

N/A
N/A
Protected

Academic year: 2020

Share "Una extensión a plena - una aproximación al procesamiento del lenguaje natural"

Copied!
70
0
0

Texto completo

(1)ISC 2003-1-11 UNA EXTENSIÓN A PLENA: UNA APROXIMACIÓN AL PROCESAMIENTO DEL LENGUAJE NATURAL. JULIA HELENA DÍAZ BERNAL. UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERÍA DEPARTAMENTO DE SISTEMAS Y COMPUTACIÓN BOGOTÁ D.C. ,JULIO DE 2003.

(2) ISC-2003-1-11. Quiero agradecer en primer lugar a mi familia, porque ellos son los responsables de la mayoría de las cosas buenas que me han pasado. Agradezco también a mi asesora Silvia Takahashi, por su interés, comprensión y colaboración prestados desde el inicio de este trabajo y a Igor, porque sin su intervención este proyecto no hubiera comenzado. Doy las gracias a Yannick Toussaint, Amedeo Napoli, Nuria Gala, Salah Aït-Moktar, Jean-Pierre Chanod y en general a toda la comunidad científica francesa, por poseer ese espíritu de colaboración tan abierto y descomplicado. Y agradezco especialmente a Harry, por salir de su closet y hacer que mis tardes de trabajo tuvieran un toque mágico.. 2.

(3) ISC-2003-1-11. INDICE DE CONTENIDO. 1. INTRODUCCIÓN.............................................................................................................................. 5. 2. ESTADO DEL ARTE ........................................................................................................................ 7 2.1 EL MÉTODO CONSTRUCTIVISTA ................................................................................................... 7 2.1.1 Identificación de frases básicas ........................................................................................ 7 2.1.2 Utilización de patrones sintácticos ................................................................................... 9 2.1.3 Método de chunks.............................................................................................................10 2.2 EL MÉTODO REDUCCIONISTA ......................................................................................................11 2.3 LA HERRAMIENTA IFSP: INCREMENTAL FINITE STATE PARSER ....................................................11 2.3.1 Composición ....................................................................................................................11 2.3.2 Funcionamiento ...............................................................................................................12 2.3.3 Desempeño de la herramienta .........................................................................................15 2.4 LA HERRAMIENTA XIP: XEROX INCREMENTAL PARSER ................................................................16 2.4.1 Funcionamiento ...............................................................................................................16 2.4.2 Composición ....................................................................................................................17 2.4.3 Alcance de la herramienta ...............................................................................................20. 3. PLENA ...............................................................................................................................................21 3.1 FUNCIONALIDADES.....................................................................................................................21 3.1.1 Corrección de ortografía .................................................................................................21 3.1.2 Búsqueda de significados.................................................................................................21 3.1.3 Análisis morfosintáctico...................................................................................................21 3.2 COMPOSICIÓN.............................................................................................................................22 3.2.1 Interfaz de configuración .................................................................................................22 3.2.2 Diccionario ......................................................................................................................23 3.2.3 Cliente ..............................................................................................................................24 3.2.4 Servidor............................................................................................................................24 3.2.5 Analizador........................................................................................................................24 3.3 ALCANCE DE LA HERRAMIENTA .................................................................................................25 3.3.1 Corrección de ortografía .................................................................................................25 3.3.2 Búsqueda de significados.................................................................................................25 3.3.3 Análisis morfosintáctico...................................................................................................26 3.4 DEFINICIÓN DEL PROYECTO DE EXTENSIÓN ................................................................................26. 4. UNA EXTENSIÓN A PLENA .........................................................................................................27 4.1 PROBLEMA ESPECIAL .................................................................................................................27 4.1.1 Analizador léxico (Lexer).................................................................................................28 4.1.2 Analizador sintáctico (Parser).........................................................................................28 4.1.3 Alcance de la herramienta ...............................................................................................29 4.2 ADAPTACIÓN DE PROBLEMA ESPECIAL ......................................................................................29 4.2.1 Diálogo con Java .............................................................................................................29 4.2.2 El módulo Qtag ..............................................................................................................30 4.2.3 La clase Analisis ........................................................................................................33 4.2.4 La clase Postagger......................................................................................................33 4.2.5 Analizador léxico .............................................................................................................33 4.2.6 Analizador sintáctico .......................................................................................................34 4.2.7 Árbol de sintaxis...............................................................................................................34 4.3 DIAGRAMA DE INTERACCIÓN......................................................................................................37. 3.

(4) ISC-2003-1-11. 4.4 ALCANCE DE LA HERRAMIENTA .................................................................................................38 4.4.1 Estructuras gramaticales .................................................................................................38 4.4.2 Categorías gramaticales ..................................................................................................40 4.4.3 Visualización del árbol de sintáxis...................................................................................41 5. OTRA EXTENSIÓN A PLENA ......................................................................................................42 5.1 ESTADÍSTICAS MÁS EXACTAS .....................................................................................................42 5.2 IDENTIFICACIÓN DE SUJETOS Y OBJETOS.....................................................................................42 5.3 EXPRESIONES COMPUESTAS POR MÁS DE UNA PALABRA.............................................................43 5.4 EXPANSIÓN DE REGLAS GRAMATICALES .....................................................................................44 5.4.1 El verbo haber y el verbo participio ................................................................................44 5.4.2 El gerundio y el infinitivo.................................................................................................44 5.4.3 Pronombre relativo y pronombre objeto..........................................................................45. 6. MANUALES......................................................................................................................................46 6.1 REQUIERIMIENTOS E INSTALACIÓN .............................................................................................46 6.2 MANUAL DE USO DE QTAG ..........................................................................................................46 6.2.1 Tokenización ....................................................................................................................47 6.2.2 Etiquetaje manual ............................................................................................................47 6.2.3 Generación de estadísticas ..............................................................................................49 6.2.4 Etiquetaje automático ......................................................................................................49 6.3 MANUAL DE LA INTERFAZ DE CONFIGURACIÓN DE PLENA ........................................................50 6.3.1 Configuración de la morfología.......................................................................................50 6.3.2 Creación del diccionario..................................................................................................57 6.4 MANUAL DE USO DE PLENA.......................................................................................................61. 7. CONCLUSIONES.............................................................................................................................63. 8. GLOSARIO .......................................................................................................................................64. 9. BIBLIOGRAFÍA...............................................................................................................................67. TEXTO DEL RESUMEN ........................................................................................................................70. 4.

(5) ISC-2003-1-11. 1 Introducción El tratamiento automático de textos ha demostrado ser un campo de la informática que desafía los objetivos de la ciencia. En efecto, debido a su relación intrínseca con el lenguaje natural, esta disciplina adquiere características que la sitúan en ocasiones dentro de la Inteligencia Artificial. Puesto que en el momento de analizar un texto son necesarias habilidades propias de la mente humana, los procesos que conforman de este tipo de tarea requieren de una atención especial y métodos cuidadosamente desarrollados. Esto ha conducido a que en la actualidad existan múltiples disciplinas diferentes encaminadas a resolver un problema específico relacionada con el procesamiento de textos. Por ejemplo, la diferencia existente entre la Extracción de Información y la Recuperación de Información, es una prueba del grado de especialización de estas ramas [Cunningham,1999]. Sin embargo, es importante notar que, aunque todas las ramas de esta ciencia parezcan divergir, en realidad existen muchos elementos comunes entre ellas. El trabajo realizado en el presente proyecto evidencia uno de esos aspectos. En Una extensión a PLeNa, se pretende continuar el trabajo realizado como tesis de pregrado por Igor Támara[Támara,2000], en donde se diseña e implementa una herramienta con diferentes funcionalidades para el análisis de textos. Los esfuerzos de este trabajo se concentran, en particular, en desarrollo de una herramienta capaz de realizar análisis sintácticos. A lo largo de la investigación realizada con el fin situar el proyecto dentro de los adelantos realizados hasta el momento, se encontró que muchas herramientas desarrolladas dentro del marco de disciplinas cuyo objetivo no es precisamente el mismo, eran de gran ayuda para explicar los principios operadores de la metodología adoptada. Un ejemplo de ello es el sistema FASTUS para la Extracción de Información [Hobbes&Israel,s.f.]. Esta herramienta no se ocupa, en principio, de modelar la estructura sintáctica de los textos considerados, sino que se interesa por la identificación del contenido semántico del mismo, mediante el uso de patrones. Sin embargo, y aunque el resultado final no es el mismo que perseguido por PLeNa, FASTUS hace uso de un esquema que necesita los mismos componentes. En efecto, los patrones utilizados por FASTUS están definidos por reglas que diferencian categorías gramaticales y palabras claves que modelan un tipo de contenido específico. El requerimiento inicial de los dos sistemas es pues, el mismo: Debe ser posible identificar las categorías gramaticales de las palabras del texto. Lo anterior proporciona una idea acerca de las múltiples posibilidades en las que se puede abordar una tarea relacionada con el tratamiento de textos. En el capítulo 2 de este documento se aborda precisamente el estado del arte del desarrollo de analizadores sintácticos, muchas veces inspiradas en ramas diferentes de esta disciplina. En el capitulo 3 se explica el origen de este proyecto como una extensión de un trabajo anterior, el cual adoptaba a su vez un tipo distinto de metodología.. 5.

(6) ISC-2003-1-11. En el capítulo 4 se aborda el desarrollo y los resultados del trabajo propiamente dicho, inspirado a su vez en investigaciones externas al trabajo inicial. El capítulo 5 explica las diferentes maneras en que se podría continuar el trabajo desarrollado, teniendo en cuenta que estos adelantos tienen una naturaleza muy diversa. Allí se proporcionan así mismo lecturas recomendadas para cada caso. El capítulo 6 consta de tres manuales de ejecución e instalación de la herramienta desarrollada, los cuales esperan poseer la claridad necesaria. El capítulo 7 presenta las conclusiones de este proyecto. El capítulo 8 contiene un pequeño glosario de términos clave dentro del contexto de este documento, y finalmente el capítulo 9 consta de la lista de referencias bibliográficas utilizadas, fuertemente recomendadas para quien se interese por el posterior desarrollo de este proyecto.. 6.

(7) ISC-2003-1-11. 2 Estado del arte Son muchas las líneas de investigación e, igualmente, muy diversos los adelantos que el tratamiento automático de textos ha experimentado. Por esta razón, para entender el desarrollo de este trabajo, es necesario conocer el principio de funcionamiento de algunas herramientas desarrolladas con anterioridad. A continuación, se presenta pues, una descripción breve de los métodos más utilizados para la construcción de analizadores sintácticos, y dos ejemplos construidos a partir de una de las arquitecturas más robustas para el análisis de textos en inglés y francés. Más adelante podrá verse cómo, a partir de los lineamientos generales de esta metodología, se logra implementar una funcionalidad sintáctica en pequeña escala para PLeNa, y se sugieren posibles caminos de desarrollo posterior.. 2.1 El método constructivista El primer enfoque para el desarrollo de analizadores sintácticos de textos es el método constructivista [Aït-Moktar&Chanod,1997]. El principio básico de esta técnica, es el de construir progresivamente la información sintáctica del texto analizado, obteniendo un resultado cada vez más completo en cada fase del proceso. Existen muchas aproximaciones agrupadas bajo esta perspectiva, dentro de las cuales se pueden encontrar las siguientes propuestas:. 2.1.1 Identificación de frases básicas Esta técnica consiste en construir un modelo semántico utilizando la estructura básica del tipo de elementos que se quieren extraer. Un buen ejemplo lo proporciona el sistema FASTUS para la extracción de información [Hobbes&Israel,s.f.], el cual construye estructuras de información mediante patrones definidos por medio de frases básicas. A continuación se describe su funcionamiento. Se toma el siguiente fragmento: “—Lo que están diciendo— insistió— es que la pasada noche Voldemort apareció en el valle de Godric. Iba a buscar a los Potter. El rumor es que Lily y James Potter están… están…, bueno, que están muertos.” [Rowling,2000,p.14]. Antes de comenzar el ejemplo, y por efectos de mayor claridad, se simplifica el párrafo, de manera que en realidad se analiza la siguiente oración: “El rumor es que la pasada noche Voldemort apareció en el valle de Godric buscando a los Potter y dicen que Lily y James Potter están muertos.” Las etapas de construcción del modelo son entonces las siguientes:. 7.

(8) ISC-2003-1-11. 1) División las oraciones del texto en segmentos gramaticales. En el ejemplo FASTUS proporciona el resultado siguiente: Grupo Nominal: el rumor Grupo Verbal: es Conjunción: que Grupo Nominal: la pasada noche Nombre: Voldemort Grupo Verbal: apareció Preposición: en Grupo Nominal: el valle de Godric Grupo Verbal: buscando Preposición: a Grupo Nominal: los Potter Conjunción: y Grupo Verbal: dicen Conjunción: que Grupo Nominal: Lily y James Potter Grupo Verbal: están muertos 2) Reconocimiento de patrones presentes en el texto. En este ejemplo FASTUS reconoce dos estructuras, o “frases básicas”: <Rumor><Tiempo><Perpetrador>apareció en<Lugar><AcciónCriminal>a<BlancoHumano> <Rumor><BlancoHumano><ResultadoCrimen>. A partir ellas se construyen las estructuras correspondientes: Incidente: INCIDENTE Perpetrador: Voldemort Lugar: el valle de Godric Confianza: rumor Blanco Humano: los Potter Incidente: ASESINATO Perpetrador: Lugar: Confianza: rumor Blanco Humano: Lily y James Potter 3) FASTUS enlaza de las estructuras identificadas, utilizando la información más específica para de cada una, resultando en otra estructura: Incidente: ASESINATO Perpetrador: Voldemort Lugar: el valle de Godric Confianza: rumor Blanco humano: Lily y James Potter. 8.

(9) ISC-2003-1-11. Ha de notarse que esta técnica se utiliza sobre todo en tareas de extracción de información, en donde se busca principalmente organizar el contenido de un texto en plantillas que proporcionen información semántica (no sintáctica) del mismo. Sin embargo, es importante mostrar cómo en la construcción de dichas plantillas intervienen, de un modo muy importante, técnicas de análisis sintáctico.. 2.1.2 Utilización de patrones sintácticos Esta técnica temprana, introducida por un trabajo desarrollado en la Universidad de Pennsylvania de 1958 a 1959 [Joshi,1996], consiste en la implementación de transductores de estados finitos, aplicados en cadena mediante las siguientes fases: 1) Asignación de categorías gramaticales a cada palabra del texto. v.gr. se asigna sustantivo a gato, y verbo a comen. Si una palabra es susceptible de más de una categoría, se le asigna una lista ordenada de éstas según la frecuencia con la que ocurren para dicha palabra. 2) Asignación de categorías gramaticales a expresiones compuestas. v.gr. se asigna adverbio a por supuesto. 3) Eliminación de categorías asignadas. v.gr. para la palabra camino, para la cual se han asignado las categorías posibles verbo y sustantivo, se elimina la categoría menos probable. 4) Marcación de sintagmas nominales (Noun Phrases), mediante la técnica del “patrón más largo”, es decir, la secuencia de palabras más larga que corresponda a los requerimientos de las expresiones regulares que definen los transductores. Por ejemplo, tomando como el párrafo: … Eso no es todo. Dicen que quiso matar al hijo de los Potter, a Harry. Pero no pudo. No pudo matar a ese niño. Nadie sabe por qué, ni cómo, pero dicen que como no pudo matarlo, el poder de Voldemort se rompió ... [Rowling,2000,p.15] Usando los caracteres ‘[‘ y ‘]’ como delimitación se obtiene: [Eso] no es todo. Dicen que quiso matar al [hijo] de [los Potter], a [Harry]. Pero no pudo. No pudo matar a [ese niño]. [Nadie] sabe por qué, ni cómo, pero dicen que como no pudo matarlo, [el poder] de [Voldemort] se rompió... 5) Marcación de sintagmas preposicionales (Prepositional Phrase) y sintagmas adverbiales (Adverbial Phrase). Mediante la misma técnica anterior, usando los caracteres ‘(‘ y ‘)’ se obtiene el resultado siguiente: [Eso] (no) es todo. Dicen que quiso matar (al [hijo])(de [los Potter]), (a [Harry]). Pero (no) pudo. (No) pudo matar (a [ese niño]). [Nadie] sabe por qué, ni cómo, pero dicen que como (no) pudo matarlo, [el poder] (de [Voldemort]) se rompió.... 9.

(10) ISC-2003-1-11. 6) Marcación de sintagmas verbales (Verb Cluster). De manera similar, a partir del ejemplo anterior, y utilizando los caracteres ‘{‘ y ‘}’ se obtiene: [Eso] (no) {es} todo. {Dicen} que {quiso matar} (al [hijo])(de [los Potter]), (a [Harry]). Pero (no) {pudo}. (No) {pudo matar} (a [ese niño]). [Nadie] {sabe} por qué, ni cómo, pero {dicen} que como (no) {pudo matarlo}, [el poder] (de [Voldemort]) {se rompió}... 7) Marcación de frases. Consiste en identificar las frases presentes en el texto, usando los caracteres ‘<’ y ‘>’. Las frases principales no se marcan. El resultado final sería entonces: [Eso] (no) {es} todo. {Dicen} < que {quiso matar} <(al [hijo])(de [los Potter])+>>, <(a [Harry])+>. Pero (no) {pudo}. (No) {pudo matar} <(a [ese niño])+>. [Nadie] {sabe} por qué, ni cómo, pero {dicen} < que como (no) {pudo matarlo}>, <[el poder] (de [Voldemort]) {se rompió}>.... 2.1.3 Método de chunks Este método consiste en dividir el texto en segmentos gramaticales, de utilidad para la posterior identificación de funciones más complejas. Una propuesta muy bien desarrollada puede encontrarse en [Abney,1996], en donde se presenta una herramienta que diferencia dos etapas dentro del proceso del análisis sintáctico: La separación del texto inicial en sintagmas (chunker), y la relación de dichos sintagmas entre sí formando frases con información sintáctica (attacher). Por ejemplo, el resultado de la división de la oración “Harry se vio en el espejo” en segmentos gramaticales sería: [NP Harry] [VC se vio] [PP en el espejo]. El resultado relacionar dichos segmentos sintacticamente entre sí sería: [IP [Harry] [VP [se vio] [en el espejo]]]. Estas dos operaciones se realizan mediante operadores de reemplazo sobre expresiones regulares. El resultado final es un árbol de sintaxis que agrupa cada uno de los segmentos según estén relacionados entre sí. El método que allí se expone argumenta cómo, el hecho de efectuar esta separación de tareas mediante el uso de dos módulos distintos, el chunker y el attacher, evita la implementación innecesaria de la maquinaria usada para reducir las ambigüedades sintácticas. En efecto, su uso se limita únicamente al módulo de la herramienta en donde son útiles, es decir, al attacher.. 10.

(11) ISC-2003-1-11. 2.2 El método reduccionista Este método consiste en la realización y reducción de un número de análisis mediante la aplicación de restricciones. Esto puede efectuarse por medio de reglas de eliminación aplicadas de manera secuencial, o en paralelo. Dentro de esta línea se encuentra el concepto de gramática de estados finitos con restricciones [Chanod&Tapanainen,1996b], la cual consiste en una red que representa todas las combinaciones posibles de las lecturas léxicas asociadas a una palabra, y en un conjunto de redes de restricciones. Las lecturas aceptables de un fragmento son pues, resultado de la intersección de la red inicial con las redes de restricciones. Esta técnica proporciona lo que se conoce como granularidad lingüística, es decir, una mayor cantidad de información lingüística gracias a la mayor cobertura de posibles lecturas.. 2.3 La herramienta IFSP: Incremental Finite State Parser IFSP es una herramienta desarrollada en el laboratorio del Centro de Investigación Europeo Xerox, en Grenoble, Francia, por Salah Aït-Moktar y Jean-Pierre Chanod, la cual ofrece una aproximación a la vez constructivista y reduccionista de las técnicas de análisis sintáctico de textos [Aït-Moktar&Chanod,1997]. Su propuesta es la de combinar los métodos descritos anteriormente, ofreciendo la cobertura y granularidad lingüística del segundo, al menor costo computacional del primero. Mediante la implementación de una secuencia de redes de estados finitos, IFSP adiciona de manera incremental, información sintáctica al análisis de los documentos trabajados. En particular, los segmentos sintácticos se definen en IFSP por medio de restricciones y no por patrones, asegurando una mayor cobertura lingüística. A continuación se presenta una descripción de IFSP completamente extraída de [AïtMoktar&Chanod,1997]. Se recomienda consultar dicha fuente si se desea una más amplia visión sobre esta herramienta.. 2.3.1 Composición 2.3.1.1 Herramienta de etiquetaje IFSP recibe como entrada un texto etiquetado, procesado de antemano por una herramienta independiente. Debe entenderse entonces que el primer módulo del análisis sintáctico es en realidad externo a la herramienta y realiza la labor de etiquetar morfosintácticamente cada palabra del texto. Cada una de estas etiquetas representa la categoría gramatical de cada palabra, y alguna información morfológica básica.. 11.

(12) ISC-2003-1-11. En el caso particular de IFSP, se utilizó una versión revisada del Etiquetador Francés de Xerox (Xerox French Tagger), para proporcionar las etiquetas necesarias al texto de entrada. 2.3.1.2 Transductores El analizador sintáctico incremental IFSP como tal, consiste en una secuencia de transductores, los cuales añaden información sintáctica al texto etiquetado por medio de la adición de símbolos especiales, que representan los límites de segmentos sintácticos. Los transductores se ejecutan en cadena, de tal manera que un transductor recibe como entrada el resultado de la aplicación del transductor anterior. Igualmente, su ejecución obedece al cumplimiento de ciertas restricciones, que de no tener lugar, ocasionan que la información de la cadena permanezca inalterada. Esto asegura que después de la aplicación de cada transductor habrá siempre una cadena de salida (diferente o no a la cadena de entrada).. 2.3.2 Funcionamiento Cada transductor de IFSP realiza una tarea lingüística específica. Una construcción sintáctica, base del análisis que IFSP busca realizar, se define por medio de dos operaciones: La segmentación y la marcación sintáctica. Sin embargo, y aunque un transductor no ejecuta más que una tarea, puede haber más de uno involucrado en el mismo tipo de tarea. Por ejemplo, supóngase tres transductores Transductor1, Transductor2 y Transductor3; los cuales ejecutan una y solo una tarea específica cada uno. La ejecución de dichos transductores se efectúa consecutivamente. Transductor1. Transductor2. Transductor3. La segmentación y la marcación sintáctica pueden depender una de la otra durante el transcurso de la ejecución. Hay que tener presente que una construcción que no es reconocida en algún punto, debido a que sus restricciones constructoras son muy fuertes, puede reconocerse en una etapa posterior. Continuando con el ejemplo anterior, supóngase que el Transductor1 ejecuta la Tarea1 bajo la definición de ciertas reglas, y análogamente, el Transductor2 ejecuta la Tarea2. Ahora bien, el Transductor3 puede ejecutar también la Tarea1, pero bajo otras restricciones o reglas más amplias que las definidas por el Transductor1, abarcando así los. 12.

(13) ISC-2003-1-11. posibles casos de análisis no contemplados por él. A continuación se presenta un esquema del proceso de ejecución. Segmentación. Marcación Sintáctica. Transductor1 Transductor2. Transductor3. Ha de notarse, igualmente, que esto es posible gracias a que la implementación de los transductores no está basada en reconocimiento del “patrón más largo” definido por expresiones regulares, sino que las restricciones en que opera requieren de fuerte evidencia antes de agrupar en un mismo sintagma expresiones posiblemente relacionadas. A continuación se presenta un ejemplo que ilustra este proceso. Debe entenderse que éstos no son los únicos transductores en todo el sistema, pero se han escogido como ejemplos para ilustrar un “momento” del proceso de análisis. Supóngase además que la Tarea1 se ocupa de segmentar, la Tarea2 de marcar sintacticamente, y la Tarea3, nuevamente de segmentar. 2.3.2.1 Segmentación primaria El objetivo de la segmentación primaria es el de identificar los sintagmas presentes dentro de un texto. Se tienen en cuenta los sintagmas nominales (NP), sintagmas adverbiales (AP), sintagmas preposicionales (PP) y sintagmas verbales (VC). Para la marcación se utiliza la notación [ y ], acompañada por el identificador del tipo de sintagma designado. Por ejemplo, para la oración “Ninguno vio la gran lechuza parda …” [Rowling,2000,p.4], el resultado sería: [NP Ninguno NP][VC vio [NP la [AP gran AP] lechuza NP] [AP parda AP] VC]./SENT. 13.

(14) ISC-2003-1-11. Los pasos para la definición de un sintagma nominal NP en el ejemplo anterior son: 1) Marcación de inicios temporales de sintagmas (etiqueta TBeginNP), v.gr. un numeral, un pronombre, un artículo, un determinante, etc. En el ejemplo anterior, la palabra la, que ha sido etiquetada como artículo en la etapa de pre-procesamiento, se marca así: [TBeginNP la 2) Marcación de finales temporales de sintagmas (etiqueta TEndNP), v.gr. nombres, pronombres, numerales, etc. Continuando el mismo ejemplo, se marca la palabra lechuza, etiquetada como nombre así: lechuza TEndNP] 3) Un transductor se encarga de insertar las marcaciones [NP y NP] alrededor de la secuencia más larga que contiene al menos una etiqueta de inicio seguida de una etiqueta de final. Finalmente encontramos la cadena [NP la gran lechuza NP] 4) Se eliminan las etiquetas temporales que no han sido reemplazadas. 2.3.2.2 Marcación sintáctica La marcación sintáctica consiste en identificar las funciones sintácticas de los sintagmas presentes en la oración. IFSP aborda, en primer lugar, funciones sintácticas en sintagmas no recursivos, como APs, NPs, PPs, por ser éstos más fáciles de etiquetar. Luego se consideran las funciones en sintagmas verbales VC y en el nivel de las frases (sujeto, objeto directo, modificador del verbo, etc.). Por ejemplo, para la marcación de la función sintáctica sujeto, en el texto del ejemplo anterior, IFSP sigue los siguientes pasos: 1) Marcación de los sujetos potenciales, mediante la agregación de /SUBJ al final del sintagma considerado. [NP Ninguno NP]/SUBJ [VC vio [NP la [AP gran AP] lechuza NP]/SUBJ [AP parda AP] VC]./SENT. 2) Aplicación de restricciones sintácticas para eliminar algunos candidatos. Por ejemplo, una restricción puede impedir a cualquier sintagma nominal contenido en un VC, el ser considerado un sujeto. De esta forma, se obtiene: [NP Ninguno NP]/SUBJ [VC vio [NP la [AP gran AP] lechuza NP] [AP parda AP] VC]./SENT. 14.

(15) ISC-2003-1-11. 3) Los sujetos restantes se consideran sujetos auténticos dentro del texto. 2.3.2.3 Revisión y refinamiento La información proporcionada en cada etapa del análisis de IFSP es utilizada en la definición de etapas posteriores, por lo que las redes que lo constituyen están ordenadas de tal forma que las tareas más fáciles son aquellas que se ejecutan primero. Adicionalmente, IFSP tiene la capacidad de poder modificar el resultado de procesamientos anteriores en la cadena de ejecución del analizador sintáctico. Esto hace posible la reasignación de anotaciones y de marcadores sintácticos en un momento posterior del análisis. Esta característica permite, por un lado, proporcionar información preliminar, esencial para etapas posteriores, mediante marcaciones básicas colocadas por defecto; y corregir esta información después si el contexto así lo requiere. Por otra parte, es posible también marcar segmentos con anotaciones muy generales, que serán refinadas a medida que el contexto lo permita. Para el caso de fenómenos lingüísticos que pueden tener lugar con poca frecuencia en algunos textos (sujeto sin coordinación gramatical con el verbo, verbos sin sujeto, oraciones al parecer incompletas, etc.), los transductores al inicio de la secuencia no tendrán efecto ya que las fuertes restricciones no podrán aplicarse. En etapas posteriores, sin embargo, estas construcciones podrán ser reconsideradas, usando la información lingüística diferente que para ese momento se ha recolectado. Esto hace evidente que las restricciones que se aplican en el funcionamiento global de la herramienta, son a la vez, ordenadas según prioridades de ejecución, y violadas en etapas posteriores, si el texto así lo amerita.. 2.3.3 Desempeño de la herramienta ISFP ha demostrado poder analizar un total de 150 palabras por segundo. La siguiente tabla compara el desempeño al procesar tanto un texto de naturaleza técnica y un texto extractado del periódico Le Monde [Aït-Moktar&Chanod,1997]: Precisión. Recall. Manual técnico. 99.2%. 97.8%. Le monde. 92.6%. 82.6%. El menor desempeño en textos extraídos de Le Monde, se debe a que el analizador se desarrolló a partir de textos de manuales técnicos, los cuales incluyen estructuras sintácticas mucho menos ricas y variadas que las encontradas habitualmente en los periódicos.. 15.

(16) ISC-2003-1-11. 2.4 La herramienta XIP: Xerox Incremental Parser El Xerox Incremental Parser (XIP) es un analizador sintáctico desarrollado en el Centro Europeo de Investigación de Xerox, en Grenoble, Francia, por Salah Aït-Moktar, JeanPierre Chanod y Claude Roux. Básicamente, XIP puede modificar y enriquecer las entradas léxicas, construir sintagmas y otros tipos de agrupaciones, y establecer relaciones de dependencia entre las entidades que identifica. A continuación se presenta una descripción de su funcionamiento y composición, totalmente extraída de [Díaz,2002].. 2.4.1 Funcionamiento Para comprender mejor el funcionamiento de XIP funcionamiento, se considera un ejemplo simple: Probamos XIP con la frase “Disruption of gene HI0894 caused susceptibility to penicillin.” Como. salida,. XIP. despliega. el. resultado. siguiente:. TOP | SC | NP. | PP. NP | FV. PP | NP. | NP | | NOUN PREP NOUN NOUN VERB NOUN PREP NOUN PUNCT | | | | | | | | | Disruption of gene HI0894 caused susceptibility to penicillin .. Esto quiere decir que en este caso, XIP encontró cuatro agrupaciones gramaticales principales dentro de la frase. Éstas, XIP las representa siempre bajo el nodo padre TOP: •. SC (Sentence Clause): Identifica la estructura clásica de la oración compuesta por un sintagma verbal y su correspondiente sujeto, un sintagma nominal. Aquí encontramos el fragmento “Disruption of gene HI0894 caused”.. 16.

(17) ISC-2003-1-11. •. NP (Noun Phrase): Es la representación de sustantivos y sus complementos eventuales, es decir, identifica sintagmas nominales. Aquí encontramos el nombre “susceptibility”.. •. PP (Prepositional Phrase): Es la reunión de una preposición y de su complemento. Es decir, identifica sintagmas preposicionales. En este caso, se trata del fragmento “to penicillin”.. •. PUNCT (Punctuation mark): Es la categoría que agrupa los signos de puntuación. En este caso es el punto final del texto.. Estas agrupaciones están a veces constituidas por otras asociaciones. En el ejemplo anterior, el SC comprende un NP (“Disruption”), un PP (“of gene HI0894”) y un FV (final verb, “caused”). Estos grupos se descomponen a su vez hasta obtener entidades irreducibles. Las entidades más simples que XIP manipula, es decir, aquellas que no se descomponen, son las categorías gramaticales. Para este ejemplo encontramos “Disruption”, “gene”, “HI0894”, “susceptibility” y “penicillin” como sustantivos; “of” y “t” como preposiciones; “caused” como verbo; y finalmente “.” como un signo de puntuación.. 2.4.2 Composición Para poder construir sintagmas y posteriormente establecer sus funciones gramaticales, XIP necesita de un proceso que comprende varias etapas, cada una de ellas definida por un módulo de tratamiento específico. 2.4.2.1 Pre-procesamiento XIP comprende dos módulos opcionales de pre-tratamiento de textos. El primer módulo es el módulo NTM (Normalisation, Tokenisation, Morphological analysis). Es el encargado de separar las palabras de la cadena de entrada unas de otras (Tokenisation), de encontrar las formas simplificadas de cada palabra (Normalisation) y de encontrar para cada una de ellas las categorías gramaticales que pueden asociársele (Morphological analysis). Para el ejemplo anterior, al final de la ejecución del módulo NTM, XIP despliega el siguiente resultado: gene caused caused caused. gene cause cause caused. +Noun+countable+Sg+NOUN +Verb+s_sc_np_toinf+Trans+PastBoth+123SP+VPAST +Verb+s_sc_np_toinf+Trans+PastBoth+123SP+VPAP +Adj+VPap+ADJPAP. 17.

(18) ISC-2003-1-11. Lo anterior quiere decir que para la palabra gene, por ejemplo, el módulo sólo encontró una categoría posible, el sustantivo. Por el contrario, la palabra caused, puede tratarse de un verbo en pasado simple, pasado participio, o bien de un adjetivo. El segundo módulo de pretratamiento es el módulo HMM (Hidden Markov Model). Este módulo utiliza el algoritmo de modelos de Markov escondidos para determinar, para cada una de las palabras, la categoría más probable entre aquellas establecidas por el módulo anterior. Para el ejemplo anteror ejemplo, la salida final de los módulos de pretratamiento sería: NOUN, PREP, NOUN, NOUN, VERB, NOUN, PREP, NP, PUNCT 2.4.2.2 Módulos clave Los módulos clave son aquellos que se ocupan del tratamiento de los textos propiamente dicho. Están definidos por un archivo específico a cada uno que contiene las reglas de construcción o de modificación que ellos implementan. En orden por defecto, estos módulos son: •. Adjust : Es aquel que implementa las correcciones eventuales a los resultados del módulo HMM.. •. Local grammar : Es aquel que define entidades gramaticales específicas.. •. Chunker : Es aquel que construye la mayoría de las entidades gramaticales complejas, v.gr. sintagmas.. •. Dependency : Es aquel que establece las relaciones de dependencia gramatical entre estas entidades complejas, v.gr. funciones sintácticas.. Para el establecimiento de las agrupaciones gramaticales, es necesaria cierta organización en la ejecución. Como primera medida, las asociaciones más simples tienen prioridad, ya que las más complejas necesitan de ellas para construirse. Por ejemplo: SC | NP. PP |. FV NP |. NOUN PREP | | Disruption of. NOUN NOUN | | gene HI0894. 18. VERB | caused.

(19) ISC-2003-1-11. Para construir el nodo SC, se necesita disponer de los nodos correspondientes a los sintagmas NP, PP y FV. Para el sintagma PP hacen falta los nodos PREP y NP, y este último necesita a su vez los dos nodos NOUN. Es por ello que XIP introduce un principio de prioridad en la construcción de los nodos. Todas las reglas pertenecen a un nivel específico y aquellas que pertenecen al nivel más bajo son las que se ejecutan primero. Así, todas las reglas que construyen los nodos correspondientes a los sintagmas PP, NP y FV, por ejemplo, son situadas en una capa inferior a aquellas donde se sitúan las reglas que construyen los nodos de los sintagmas SC. Algunas reglas utilizadas en la construcción del árbol de gramática del ejemplo anterior son: PP PREP NP | | to penicillin. En el módulo Chunk se encuentra la regla 14> PP -> prep [first :+, form:~fas] , np[last:+]. He aquí algunas explicaciones: • La regla se encuentra en la capa 14, pues todos los NP se construyen en la capa 13. • Construye un nodo PP a partir de una preposición (prep) y de un sustantivo (np). • Atribuye un valor positivo al atributo first del nodo prep, indicando que éste será el primer componente del nuevo nodo y el NP será el último (last :+). • Para que la regla tenga éxito, la preposición no debe ser “as” (no debe tener el valor fas como atributo form) ya que esta preposición es tratada en otra regla. Igualmente, en el módulo Dependency se encuentra la regla: PP#3{prep#2} | if ( HEAD(#1,#3) & ~NUCL[particle](?,#2) ) PREPD(#2,#1). Lo que conduce a las siguientes observaciones: • Esta regla construye la relación PREPD entre la cabeza de un nodo PP (el NP) y su preposición. En nuestro ejemplo, XIP establece la relación PREPD (to,penicillin). • La relación HEAD establece que el nodo #1 es efectivamente la cabeza del nodo #3. En nuestro ejemplo, verifica que penicillin es la cabeza (el sustantivo) del nodo preposicional PP que agrupa las dos palabras (to, penicillin). • La relación NUCL[particle] hace alusión a la relación entre un verbo y su preposición auxiliar (put on, jump in, about to, etc.). Es necesario que ninguna relación de este tipo involucre la preposición del PP para que la regla tenga éxito. En el ejemplo, es necesario que la preposición to no pertenezca a un grupo verbal.. 19.

(20) ISC-2003-1-11. 2.4.3 Alcance de la herramienta Para evaluar el desempeño de XIP se partió de oraciones de un corpus real, transformadas y simplificadas para comprender mejor el comportamiento de la herramienta. Por ejemplo, para la oración: “Against resistant strains, cats and dogs exhibited superior activity.” XIP nos muestra el siguiente resultado: TOP | PP NP |. SC |. AP | PREP. |. ADJ. NP | NOUN. |. NP |. PUNCT NOUN CONJ NOUN. |. Against resistant strains. | ,. |. |. |. NP | FV |. AP |. VERB. NADJ. |. |. NOUN PUNCT. |. cats and dogs exhibited superior activity. | .. He aquí algunas observaciones: •. XIP ejecuta correctamente la tarea de base, es decir, etiquetaje gramatical de términos simples. Sin embargo, se hace notar que algunas palabras originales fueron reemplazadas por cats y dogs, para simplificar el tratamiento de la frase. En caso contrario, XIP no hubiera sido capaz de identificar estas palabras (propias del léxico de microbiología) como sustantivos, y por consiguiente no hubiera podido establecer el sujeto de la frase.. •. XIP efectúa también la agrupación gramatical de forma correcta si el contexto encontrado es relativamente simple. Pero esto no es el caso en estructuras un poco más complicadas. En el ejemplo anterior, aunque XIP identifica la palabra dogs como parte del sujeto, ignora la palabra cats a causa de la organización compleja de la frase. Esto significa que el llamado de las diferentes reglas de XIP no permite, actualmente, el correcto tratamiento de este tipo de figura.. Por otro lado, las dependencias gramaticales que puede establecer son las siguientes: SUBJ_PRE(dogs, exhibited) OBJ_POST(exhibited,activity). Que identifican a dogs como el sujeto de la frase, exhibited como el verbo y activity como el complemento de objeto directo. Puesto que XIP no es capaz de incluir cats dentro del sujeto, no identifica entonces la relación: SUBJ_PRE(cats, exhibited). Aunque sutil, este tipo de problema puede ocasionar la pérdida de información preciosa para el modelaje de la información en los textos.. 20.

(21) ISC-2003-1-11. 3 PLeNa PLeNa: Una aproximación al Procesamiento del Lenguaje Natural, es una herramienta de análisis de textos diseñada y desarrollada como tesis de pregrado de Ingeniería de Sistemas y Computación por Igor Támara [Támara,2000]. Por ser el punto de partida de este proyecto, a continuación se presenta una descripción de sus funcionalidades, composición y alcance. Igualmente, al finalizar esta sección se introducirá la manera en la que este trabajo pretende extender el alcance de dicha herramienta.. 3.1 Funcionalidades En el momento de comenzar este trabajo, la interfaz de PLeNa ofrecía al usuario tres funcionalidades: Corrección de ortografía, búsqueda de significados y análisis morfosintáctico de textos. A continuación se presenta una breve descripción de cada una de ellas.. 3.1.1 Corrección de ortografía El corrector de ortografía busca señalar las palabras de un texto que no están bien escritas. Como resultado, el corrector despliega en color rojo las palabras no identificadas en la base de datos de PLeNa (palabras desconocidas o que fueron mal escritas por el usuario), y en color negro las palabras que sí fueron reconocidas.. 3.1.2 Búsqueda de significados La herramienta de búsqueda de significados despliega como resultado tanto la definición de la palabra como la información morfológica de la misma. Si una palabra presenta más de un significado o más de una categoría gramatical, todos estos datos son igualmente presentados.. 3.1.3 Análisis morfosintáctico El análisis morfosintáctico busca mostrar, para una oración dada, su estructura sintáctica y la información morfológica pertinente para cada una de las palabras que la componen. Un primer enfoque consiste en proporcionar, para cada palabra, toda la información morfológica almacenada sobre ella en la base de datos (una variante de la búsqueda de significados, pero únicamente considerando la información morfológica).. 21.

(22) ISC-2003-1-11. 3.2 Composición Básicamente, el funcionamiento de PLeNa depende de la información almacenada en una base de datos implementada en PostgreSQL, que hace las veces de diccionario de términos. A través de una interfaz de configuración, es posible agregar cualquier palabra a dicho diccionario, proporcionando en el momento de la inserción al menos un significado y las características morfológicas correspondientes según la categoría gramatical a la que cada una pertenece (Ver sección 6.3. Manual de la interfaz de configuración de PLeNa). Para aclarar un poco más esta arquitectura a continuación se describen cada uno de los componentes esenciales de PLeNa.. 3.2.1 Interfaz de configuración La interfaz de configuración es una herramienta anexa al funcionamiento del usuario final de PLeNa. En efecto, tiene dos funciones: Definir qué características morfológicas deben tener las palabras que van a ser insertadas al diccionario, según sea su categoría gramatical y crear esta base de datos antes de que el usuario final utilice la herramienta. Esta interfaz está definida mediante la clase InterfazConfiguracion. 3.2.1.1 Configuración de la morfología La gramática de un lenguaje natural exige que sus componentes obedezcan a ciertos requerimientos morfológicos y semánticos. En particular, el español establece explícitamente, qué características debe poseer cada una de sus categorías gramaticales. Por ejemplo, según [Revilla,1996], un sustantivo debe poseer imperativamente las siguientes características morfológicas: Género, número, especificar si es variable (o invariable) en género y en número, especificar si es simple, compuesto, primitivo, derivado o parasintético. Similarmente, dentro de las características semánticas que un sustantivo debe poseer, se encuentra el especificar si es común o propio, concreto o abstracto, individual o colectivo, y ,opcionalmente, si es partitivo o múltiplo. Para mayor información acerca de estas y otras características, de esta o de otra categoría gramatical, se recomienda consultar [Revilla,1996]. La función de la herramienta de configuración, es la de crear una plantilla correspondiente para cada una de las categorías gramaticales, la cual debe ser llenada en su totalidad antes de insertar cualquier palabra en el diccionario. De este modo se garantiza que cada palabra de la base de datos posee toda la información semántica y sintáctica necesaria según su categoría. Para un ejemplo más claro del principio y funcionamiento de esta interfaz, se recomienda consultar la sección 6.3. Manual de la interfaz de configuración de PLeNa.. 22.

(23) ISC-2003-1-11. Al finalizar la ejecución de esta interfaz, se crea un archivo-plantilla que será utilizado por la herramienta de consulta de PLeNa. 3.2.1.2 Construcción del diccionario Además de tener la tarea de configurar la morfología de las palabras, la interfaz de configuración de PLeNa es también responsable de la creación del diccionario de términos de la herramienta. Esto se hace mediante inserciones de palabras a la base de datos, cuya información morfológica ha sido proporcionada en su totalidad siguiendo las plantillas definidas en la etapa anterior. Además de la información de la plantilla, al crear una palabra en el diccionario debe proporcionarse igualmente una definición textual o significado de la misma. Puesto que el idioma español no es unívoco, pueden insertarse varias entradas de la misma palabra, con la condición de que, para cada una, exista una información morfológica de plantilla diferente. Esto es debido a que para cada significado existen características morfológicas diferentes e incluso categorías gramaticales diferentes.. 3.2.2 Diccionario Tal como se dijo anteriormente, el diccionario utilizado por PLeNa, consiste en una base de datos implementada en postgres, la cual almacena palabras con significado e información morfológica asociados, y sobre la cual se realizan todas las consultas formuladas por el cliente a PLeNa. Algunas de las principales tablas que ésta contiene son, de manera simplificada [Támara,2000,p.43]: grafema id Valor. INTEGER CONSECUTIVO VARCHAR(20) PIMARY KEY. morfologia id tipo. INTEGER CONSECUTIVO VECTOR[INTEGER]. significado id INTEGER PRIMARY KEY CONSECUTIVO texto VARCHAR(200) UNIQUE. 23.

(24) ISC-2003-1-11. palabra id grafema morfología significado. INTEGER INTEGER INTEGER INTEGER. PRIMARY KEY CONSECUTIVO NOT NULL NOT NULL NOT NULL. Para una información más completa y detallada acerca de la estructura de dicha base de datos, se puede consultar [Támara,2000,p.43].. 3.2.3 Cliente El cliente proporciona la interfaz mediante la cual el usuario final de PLeNa puede realizar consultas sobre el diccionario. Básicamente consiste en un applet llamado ClienteDiccionario, el cual ofrece una interfaz gráfica con distintas opciones de consulta. Al comenzar su ejecución, el cliente se conecta al servidor de PLeNa, y según el tipo de acción solicitada por el usuario, transmite el mensaje de acción requerida para que sea manejada por el servidor.. 3.2.4 Servidor El servidor es el componente que pone en marcha a PleNa. Consiste en una clase llamada ServidorDiccionario, la cual acepta las conexiones del cliente, crea una sesión de ejecución para el usuario y recibe las solicitudes del cliente. Mediante el uso de la clase Analizador, el servidor está en capacidad de transmitir dichas solicitudes a la base de datos y de obtener respuesta a las consultas del cliente.. 3.2.5 Analizador Puede decirse que el analizador es el corazón de PLeNa, ya que es el encargado de proporcionar las implementaciones de todas las funcionalidades presentadas en la interfaz del cliente. La clase Analizador se encuentra definida dentro de un paquete llamado plena, el cual reúne un número de clases que interactúan entre sí para proporcionar los resultados de las consultas. Analizador es la clase que recibe del servidor las solicitudes hechas por el cliente, y se encarga de ejecutar las consultas correspondientes sobre la base de datos. Al finalizar su ejecución, Analizador crea un nuevo archivo html, en el cual está escrito el resultado de la consulta.. 24.

(25) ISC-2003-1-11. 3.3 Alcance de la herramienta A continuación se presenta brevemente el alcance de cada una de las funcionalidades de PLeNa en el momento de iniciar este trabajo.. 3.3.1 Corrección de ortografía Siempre y cuando las palabras que constituyen el texto a analizar por el corrector se encuentren en la base de datos, PLeNa está en capacidad de responder correctamente a esta tarea. Sin embargo, puesto que el principio de su funcionamiento es una consulta a la base de datos, que como resultado proporciona una respuesta afirmativa o negativa, el corrector de ortografía no está en capacidad de proporcionar análisis más profundos, importantes para el análisis ortográfico. Por ejemplo, en la oración: “Ellos estaban muy entusiasmadas”, es claro que hay un error de escritura, en la concordancia del género de los sustantivos. Sin embargo, si las palabras ellos y entusiasmadas existen en la base de datos, el corrector no reportará ningún error. Aquí es importante ilustrar el ejemplo de las palabras derivadas, como es el caso de las conjugaciones de los verbos. Existe en PLeNa la clase Derivación [Támara,2000,p.36] la cual permite la definición de reglas de derivación entre palabras. Por ejemplo, partiendo de la palabra amar, con morfología Verboide infinitivo, regular, se puede definir una derivación hacia la palabra amas, con morfología Verbo presente, segunda persona singular, modo indicativo, regular. Sin embargo, aunque esta regla esté definida, la palabra amas no será reconocida por el diccionario a menos que sea adicionada directamente. Por último, PLeNa no ofrece alternativas de corrección de palabras con otras palabras existentes en el diccionario.. 3.3.2 Búsqueda de significados El alcance de esta funcionalidad está obviamente limitado a la capacidad de almacenamiento de la base de datos. Siempre que la palabra analizada sea reconocida por PLeNa, esta tarea se realizará correctamente. Sin embargo, el resultado de esta búsqueda opera únicamente sobre palabras individuales, no sobre oraciones completas. Esto quiere decir, que si se desea conocer el significado de cada una de las palabras presentes en un texto, se debe ejecutar esta funcionalidad para cada palabra de forma individual. De hecho, pretender realizar una consulta semántica sobre un texto completo es una tarea muy difícil. En la sección 3.4. Definición del proyecto de extensión se podrá ver con más claridad porqué.. 25.

(26) ISC-2003-1-11. 3.3.3 Análisis morfosintáctico Al momento de comenzar este trabajo, la tercera funcionalidad de PLeNa no se encontraba en funcionamiento. Sin embargo, mediante la implantación de consultas ordinarias a la base de datos, PLeNa estaría en capacidad de proporcionar una tabla con la información morfológica de todas las interpretaciones posibles de cada palabra del texto. De manera similar a la funcionalidad anterior, esto sólo podría operar sobre palabras individuales, y no sobre textos completos.. 3.4 Definición del proyecto de extensión Al iniciar este proyecto se definió como objetivo principal el desarrollar un analizador morfosintáctico que enriqueciera el trabajo que PLeNa podía realizar hasta el momento. Ha de notarse que el alcance que se quiere lograr es el de poder aplicar el análisis morfosintáctico sobre textos completos y no sobre palabras individuales. Como ya se introdujo en secciones anteriores, el resultado de dicho análisis no puede obtenerse mediante la consulta de cada palabra de manera individual a la base de datos, ya este enfoque no proporciona el estatuto unívoco que cada palabra necesita para proporcionar un análisis correcto. En efecto, puesto que cada palabra puede adoptar múltiples significados según el contexto en el que se encuentre dentro de un texto, es imposible para PLeNa, en primera instancia, saber cual de ellos es el correcto. Esta es la misma razón por la cual el análisis semántico de textos es tan complicado. El objetivo principal del trabajo es, pues, el de concebir una funcionalidad capaz de proporcionar un análisis sintáctico de textos simples en idioma español, e integrarla a PLeNa. Tal como el lector podrá apreciar, el desarrollar la funcionalidad del analizador sintáctico constituye adicionalmente un primer paso hacia una implementación de un analizador morfosintáctico y semántico. Un objetivo secundario es el de conocer, comprender, y, en lo posible, aprovechar los modelos de implementación de analizadores sintácticos propuestos por la comunidad científica. A lo largo del documento podrá apreciarse en qué medida las técnicas, conceptos, y observaciones encontradas en el contenido de la sección 2. Estado del arte, son tenidas en cuenta para el desarrollo del proyecto.. 26.

(27) ISC-2003-1-11. 4 Una extensión a PLeNa Esta sección pretende ilustrar el trabajo desarrollado dentro del proyecto de extensión de PLeNa propiamente dicho, es decir, la implementación del analizador sintáctico. Para comenzar el trabajo, se partió de la base de los estudios y pruebas hechos por Igor Támara para el diseño inicial de PLeNa. Tal como se puede observar en [Támara,2000,p.17], ya en el primer bosquejo de la herramienta se había considerado el uso de un analizador desarrollado en CamL; desafortunadamente, la primera implementación de dicho analizador no ofrecía un desempeño aceptable para PLeNa, por lo que se descartó. El presente proyecto presenta una propuesta de adaptación de este analizador que proporciona un nivel de desempeño satisfactorio para el objetivo trazado. A continuación se describe la herramienta inicial, los cambios aplicados en el marco del proyecto de extensión, los componentes adicionales que se implementaron para lograr su integración a PLeNa, y por último, una evaluación de su desempeño y alcance.. 4.1 Problema Especial Gracias al trabajo de Igor Támara y Jaime Irving Dávila, denominado Problema Especial [Dávila&Támara,1998], se dispone de un sencillo analizador sintáctico para el español desarrollado en CamL. El siguiente diagrama ilustra el funcionamiento de esta herramienta.. Este es el texto de entrada. Consiste en un texto sencillo el cual va a ser analizado.. Analizador léxico. Analizador Sintáctico. (Lexer). (Parser). true. Parse error. A continuación se describe brevemente la composición y funcionamiento inicial de esta herramienta, así como algunos ejemplos de su alcance.. 27.

(28) ISC-2003-1-11. 4.1.1 Analizador léxico (Lexer) El analizador léxico (lexer) es el componente del analizador que se encarga de recibir el texto de entrada y decidir cómo va a ser procesado. Básicamente, para cualquier secuencia de caracteres, la versión original de este componente ejecuta una función de reconocimiento mediante la comparación de cada palabra de la cadena de entrada con palabras almacenadas en un archivo de texto, que hace las veces de diccionario. En dicho archivo, cada línea contiene una y sólo una palabra. En las líneas impares se encuentran las palabras que el diccionario puede reconocer, y en las pares figura la categoría gramatical de la palabra de la línea anterior. De esta manera, mediante una sencilla función de lectura, el analizador sintáctico proporciona la categoría gramatical a la que pertenece cada palabra. Una vez el analizador léxico reconoce una palabra, envía la categoría gramatical respectiva al analizador sintáctico para ser analizada. Si por el contrario, la palabra no es encontrada en el diccionario, el analizador léxico genera una excepción y suspende la ejecución.. 4.1.2 Analizador sintáctico (Parser) El analizador sintáctico (parser) es el componente que realiza el análisis sintáctico propiamente dicho. Recibe sucesivamente del analizador léxico las categorías gramaticales de cada una de las palabras del texto inicial, formando así una cadena de palabras que representan categorías gramaticales. Posteriormente, por medio de reglas de gramática definidas a partir de expresiones regulares, transforma la cadena agrupando las palabras en sintagmas. A su vez, estos sintagmas son agrupados en sintagmas más grandes, hasta que el analizador encuentra una regla válida para la cadena, que representa una configuración gramatical válida para una oración. Cuando una regla encuentra un símbolo terminal de la gramática, retorna como resultado el valor booleano true. Si, por el contrario, encuentra un símbolo no terminal, retorna el resultado de aplicar el operador lógico && sobre sus componentes. El resultado del analizador sintáctico es entonces, en última instancia, un valor booleano. Si el resultado final es true, puede decirse que la oración es una oración válida, es decir, que está gramaticalmente bien construida, pues el analizador sintáctico encontró un conjunto de reglas que la reducen a símbolos terminales. Si, por el contrario, la ejecución termina en un error (parse error), quiere decir la cadena está gramaticalmente mal construida, pues el analizador sintáctico no encontró ninguna regla que redujera la cadena que a símbolos terminales.. 28.

(29) ISC-2003-1-11. 4.1.3 Alcance de la herramienta Este analizador fue diseñado para considerar frases que respeten cierta estructura y que contengan sólo ciertas palabras definidas de antemano. Así pues, por ejemplo, analiza correctamente frases constituidas por un sujeto y un verbo, con un eventual complemento tales como: “El perro corre por el camino”, “el gato camina sobre el tejado” y “el niño come pastel”; siempre y cuando las palabras el, la, niño, gato, perro, camino, tejado, pastel, come, camina, corre, tejado, por y sobre se encuentren en el archivo de texto utilizado por el analizador léxico, seguidas por la correspondiente categoría gramatical adecuada para cada oración. Para una visión mas detallada de las estructuras gramaticales soportadas por este analizador, se recomienda ver [Támara,2000, p.13]. Sin embargo, ha de notarse que oraciones como “yo camino por el camino” o “ella abrió el sobre sobre la cama”, no pueden ser analizadas correctamente. Ello obedece a que las palabras como y sobre presentan dos categorías gramaticales distintas simultáneamente dentro de la misma oración. Puesto que la forma del archivo de texto usado por el analizador léxico sólo permite definir una categoría para cada palabra, es imposible pues, conferir a la vez las categorías de verbo y sustantivo a camino, o de preposición y sustantivo a sobre, a pesar de que las oraciones así lo requieren.. 4.2 Adaptación de Problema Especial A partir de lo explicado en la sección anterior, puede inferirse fácilmente que el funcionamiento del analizador definido en Problema Especial esta limitado por varios aspectos: El número de palabras almacenadas en el diccionario usado por el analizador léxico, la categoría gramatical asignada a cada una y el alcance de las reglas de gramática definidas en el analizador sintáctico. Adicionalmente, el retornar tan sólo un valor booleano, indicando el éxito o fracaso de la validación de la oración, no representa la implementación más conveniente para el analizador si lo que se pretende es presentar la estructura sintáctica de la oración. Por todo ello, y con el objetivo de integrar la funcionalidad del analizador de Problema Especial a PLeNa, se realizaron diversas adaptaciones. A continuación se explican una a una.. 4.2.1 Diálogo con Java El primer gran paso para utilizar efectivamente el resultado adaptado de Problema Especial en PLeNa, fue hacer posible la comunicación entre el analizador implementado en CamL y el sistema en Java. Esto es posible gracias a una arquitectura que permite invocar funciones escritas en C desde Java, y a su vez, la llamada de funciones escritas en CamL desde C. El principio del diálogo completo consiste entonces en encadenar las dos interfaces.. 29.

(30) ISC-2003-1-11. Primero se realizó la interfaz entre Java y C, mediante el uso de las funciones del JNI de Java [Stearns,s.f.],[Gagnon,2001]. Seguidamente, se utilizaron las funcionalidades de CamL para posibilitar la interfaz con C [docCamL]. Un ejemplo de una implementación completa de esta arquitectura se encuentra en [Pinzón,2001] y fue de invaluable ayuda.. 4.2.2 El módulo Qtag Tal como se explicó en secciones anteriores, es deseable que las posibilidades gramaticales no se limiten solamente a una misma categoría gramatical para cada palabra. En realidad, el proceso de asociación entre palabras y categorías gramaticales no es determinístico, y depende de la ocurrencia particular de la palabra dentro de un contexto dado. Así pues, una palabra debe tener la posibilidad de adoptar cualquier categoría. El proceso de decidir la categoría gramatical de las palabras de manera automática es muy complejo y ha sido abordado de diversas maneras dentro de las diferentes disciplinas que se interesan por el tratamiento automático de textos. En particular, uno de los métodos más utilizados es el del Modelo de Markov Escondido (Hidden Markov Model), el cual es igualmente utilizado en el desarrollo de los dos analizadores presentados en secciones anteriores. Por estas razones se decidió emplear esta técnica dentro de la construcción del analizador sintáctico de PLeNa. En la actualidad, existen disponibles diversas herramientas adecuadas para la asignación de categorías gramaticales por medio de Modelos de Markov. Por conveniencia para el desarrollo en Java, se decidió utilizar Qtag [Mason,1994]. 4.2.2.1 Principios de Qtag Qtag es una herramienta de software libre escrita en lenguaje Java, la cual, aunque no implementa un Modelo de Markov escondido propiamente dicho, si utiliza una versión del Modelo de Markov que permite asignar categorías gramaticales a las palabras de un texto.. Como todas las implementaciones de Modelos de Markov, Qtag basa su funcionamiento en el uso de estadísticas, es decir, requiere una fuente de información que le proporcione las posibles categorías gramaticales de cada palabra, junto con las probabilidades de ocurrencia de cada una dentro de determinado contexto. La única manera de proporcionar dicha información a Qtag, es por medio de un texto de entrenamiento. Etiquetando manualmente las palabras de un texto corriente con la categoría gramatical correcta dentro del contexto específico, es posible crear un archivo de estadísticas, que Qtag consultará en el momento de la ejecución.. 30.

(31) ISC-2003-1-11. 4.2.2.2 Generación de un archivo de estadísticas con Qtag Como ya se dijo anteriormente, para la creación de las estadísticas de Qtag es necesario un texto de entrenamiento. Para la creación de dichas estadísticas, es necesario seguir los pasos explicados a continuación: 1) Se escoge un texto cualquiera, por ejemplo: “Habían pasado aproximadamente diez años desde el día en que los Dursley se despertaron y encontraron a su sobrino en la puerta de entrada, pero Privet Drive no había cambiado en absoluto.” [Rowling,2000,p.20] 2) Se crea manualmente un texto de entrenamiento, añadiendo las categorías gramaticales correspondientes a cada palabra, de la forma: Habían verbo_hab pasado verb_part aproximadamente adv diez car años sus desde pre el art_def día sus en pre que pron_rel los art_def Dursley sus se aux despertaron verbo y conj encontraron verbo a a su pos sobrino sus en pre la art_def puerta sus de de entrada sus , coma pero conj Privet sus Drive sus no adv había verbo_hab cambiado verb_part en pre absoluto adj . punct. 31.

(32) ISC-2003-1-11. 3) Se invoca el método qtag.ResourceCreator desde la línea de comandos, pasando como argumentos el texto de entrenamiento y el nombre del archivo de estadísticas que se quiere crear a partir de él. Por ejemplo: java qtag.ResourceCreator. nombreTextoEntr.txt. nombreArchivoEst. Por supuesto, entre más grande sea el texto de entrenamiento, más preciso será el archivo de estadísticas obtenido. En particular, en la creación del archivo de estadísticas para PLeNa, se utilizaron los dos primeros capítulos de [Rowling,2000], procesando un total de 1984 palabras diferentes. Es preciso aclarar que la autora respeta los derechos de autor de [Rowling,2000] y que la utilización de una versión de éste, conseguida por internet, obedece únicamente a los fines académicos que enmarcan este proyecto y a la necesidad de contar con textos electrónicos para el desarrollo del mismo. No se pretende, en ningún momento, incitar la adquisición de dicho manuscrito por ningún medio que perjudique su distribución legal. 4.2.2.3 Utilización de Qtag Qtag es un componente jar que actúa como una caja negra que contiene diversas clases. Una de ellas es la clase Tagger, la cual, aunque esconde su código fuente debido al empaquetamiento del módulo Qtag, puede ser instanciada por otra clase, tomando como único argumento para su construcción el nombre de un archivo de estadísticas. Qtag pone. así a disposición de la clase que lo invoca los métodos útiles para la asignación de categorías gramaticales. El método String[] tag(String[]) de la clase Tagger proporciona en un arreglo de palabras las categorías gramaticales correspondientes a las palabras almacenadas en el arreglo de entrada. Para integrar los resultados de Qtag a PLeNa, se creó una instancia de la clase Tagger tomando como argumento el archivo de estadísticas recién creado. Es decir, se utilizó la instrucción: Tagger qtagger = new Tagger (“nombreArchivoEst”);. Posteriormente, se invoca el método tag(), tomando como argumento el nombre del arreglo que contiene las palabras del texto a analizar de la manera siguiente: arregloCategorias = qtagger.tag(arregloPalabras);. El resultado, como se introdujo anteriormente, es un arreglo de categorías gramaticales correspondientes a cada una de las palabras contenidas en el arreglo inicial. Para lograr la integración del resultado generado por Qtag a PLeNa, es necesario convertir el arreglo de cadenas resultante en una sola cadena. Con un ciclo sencillo es trivial convertir el arreglo arregloCategorías en la cadena cadenaCategorias.. 32.

Referencias

Documento similar

Como mujer joven preparando la celebración de tu quince cumpleaños, planear y celebrar tu quin- ceañera es la oportunidad perfecta para demos- trar a tu familia y amigos

Entre las rut a s turísticas que ofrece la provi ncia de Castel lón destaca no ta b le men te por su at ra c ti vo e inte rés a rqu eológ ico e históric o , la que p a rtie ndo de la

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

• Ello permite plantear una primera etapa de normalización de los sistemas de clasificación, al proveer al Ayuntamiento de un marco general que abarque toda su

El Órgano de Apelación parece ir en esta línea, en cuanto que deshecha el análisis realizado por el Grupo Especial en la apelación. A pesar de los nume- rosos

Esta población eminentemente juvenil, presenta altas tasas de analfabetismo que se sitúan en torno al treinta y siete por ciento entre los hombres, y el sesenta y seis por

Como hemos visto, Muhamad apenas tiene lo que podríamos calificar como tiempo de ocio que, en mayor o menor medida, tanto Mustafa como Walid y Maher poseen para desarrollar su

Puesto que mediante el concepto de «trascendental» la filosofía de Husserl se pone, de entrada, en la estela de I&lt;¿nt, deberá comparar el desarrollo concreto de su filosofía con