Download Etiquetadores sintácticos aplicados al castellano
Document related concepts
Transcript
Una comparativa de etiquetadores sintácticos aplicados al castellano Manuel Díaz García Universidad Europea de Madrid C/ Tajo S/N Villaviciosa de Odón - Madrid helyos@terra.es Miguel Bravo Yubero Universidad Europea de Madrid C/ Tajo S/N Villaviciosa de Odón - Madrid mb_yubero@terra.es Resumen: Este trabajo presenta un estudio comparativo experimental de potenciales etiquetadores sintácticos para el español. Se han entrenado tres etiquetadores sobre dos colecciones de textos en castellano, etiquetadas una manual y la otra automáticamente, y hemos evaluado su efectividad mediante la aplicación de criterios objetivos. Los resultados del estudio permiten afirmar que es posible construir etiquetadores sintácticos para nuestro idioma, -y razonablemente efectivos- utilizando herramientas y colecciones de textos de libre disposición. Palabras clave: etiquetador, sintáctico, sintaxis, castellano, comparativa, corpus Abstract: This work shows a comparative experimental study about potentially syntactical taggers for Spanish. We trained three taggers over two text sets in Spanish. The text sets are manually tagged one, and the other is auto tagged. We evaluated the accuracy using objective benchmarks. The results of this experiment allow say that it is possible build syntactical tagger to Spanish language, reasonably efficient, using free distribution tools and text sets. Keywords: tagger, syntactical, syntax, Spanish, comparison, corpus 1 Introducción El objetivo de este trabajo consiste en un estudio comparativo entre los etiquetadores sintácticos más usados de libre distribución que puedan ser entrenados para adaptarlos a nuestras necesidades. Los resultados pueden servir de ayuda para todos aquellos que necesiten etiquetar sintácticamente textos en castellano y que no sepan con exactitud cuál de las herramientas de libre distribución disponibles resultaría idónea para su proyecto. En primer lugar se han buscado en Internet los etiquetadores sintácticos libres más requeridos y utilizados por personas o grupos interesados en el procesamiento de lenguaje natural. Hemos filtrado todos aquellos que no se podían entrenar para otros lenguajes. Entre los seleccionados como aspirantes, procedimos a su estudio para posterior evaluación: modos de funcionamiento (opciones, si procedían), algoritmos de aprendizaje, formatos de input y output (entrada/salida de textos) y otras pruebas bajo los sistemas operativos que los soportaban. Tras la selección y aprendizaje de las herramientas a evaluar, se procedió a la búsqueda de colecciones de texto del castellano, lo suficientemente representativas (corpus fiables), que también fueran de libre distribución y así realizar el entrenamiento con ellas y ver resultados. Una vez obtenidos éstos, fueron aislados y agrupados los conjuntos de datos que consideramos representativos, para compararlos entre ellos. Estas decisiones, los resultados obtenidos y las diferentes comparaciones serán discutidos y razonados posteriormente. 2 Etiquetado sintáctico Las etiquetas sintácticas – o mejor dicho y para hablar con propiedad morfosintácticas- son aquellas que identifican cada palabra como perteneciente a una clase o categoría gramatical, veamos los ejemplos (1) y (2): (1) El coche rojo necesita un cambio de aceite. El_artículo coche_sustantivo rojo_adjetivo necesita_verbo un_artículo cambio_sustantivo de_preposición aceite_sustantivo (2) Le cambio el aceite al coche rojo. Le_pronombre cambio_verbo el_artículo al_preposición+artículo coche_sustantivo rojo_adjetivo Se puede ver como la palabra “cambio” posee dos etiquetas sintácticas diferentes, en (1) es sustantivo, en (2) verbo. Los casos de polisemia y homonimia son muy frecuentes en la lengua, pues obedecen a razones de economía lingüística. Fijémonos en las palabras subrayadas de los siguientes ejemplos: Deja en la barra (del bar) la barra de pan, para que el camarero barra. Pon el sobre sobre la mesa. O en este más curioso, tomado de Horacio Rodríguez 1: Yo bajo con el hombre bajo a tocar el bajo bajo la escalera. A la palabra “bajo” le corresponderían cuatro etiquetas diferentes: verbo, adjetivo, sustantivo y preposición. El lenguaje humano es complejo, ambiguo y algunas veces impreciso, -inconvenientes que se resuelven sin mayor problema gracias al contexto, al lenguaje no verbal y a la redundancia- lo cual hace muy difícil una tarea de etiquetado automático. A pesar de la dificultad de esta tarea, esa labor de etiquetado resulta fundamental para el análisis sintáctico y textual, para la generación y reconocimiento de oraciones correctas en una determinada lengua. Por ejemplo, la secuencia 1 Rodríguez Hontoria, Horacio; Técnicas básicas en el tratamiento informático de la lengua, UPC (3) sería válida para el castellano, pero no para el inglés: (3) Art. + Nom. + Adj. + Verb. + Adv. El (*) The coche rojo car red está is aquí here El orden de colocación de algunos elementos lingüísticos puede resultar pertinente en una determinada lengua: la anteposición del adjetivo al sustantivo es obligatoria en inglés, mientras que en español no lo es tanto, pues excepto en el caso de los adjetivos relacionales, que forzosamente deben ir pospuestos, también sería admisible la anteposición del adjetivo al sustantivo: La araña asquerosa está debajo de tu cama. La asquerosa araña está debajo de tu cama. pero : Su enfermedad afecta al sistema nervioso (*) Su enfermedad afecta al nervioso sistema Las frases marcadas con (*) son incorrectas. Etiquetar morfosintácticamente no es solo interesante para los lingüistas y filólogos (establecimiento de reglas del lenguaje, lingüística comparada, identificación de lenguas, estudios diacrónicos, etc….), sino también para todos aquellos que quieran trabajar con lenguaje natural humano. El etiquetado sintáctico es especialmente útil en conjunción con otras herramientas (sistemas expertos principalmente), para fines precisos en los que el reconocimiento/tratamiento de ciertos tipos de texto sea imprescindible (minería de datos). Una utilidad práctica por ejemplo, sería la detección de spam o publicidad masiva no requerida por el usuario (predominan los verbos en forma imperativa pertenecientes al campo semántico de la compra y la venta; las admiraciones e interrogaciones…), contenidos sexuales (abundante adjetivación calificativa antepuesta al sustantivo…), clasificación de textos pertenecientes a lenguajes específicos (cultismos, prefijos y sufijos de origen griego…) etc. Tampoco debemos olvidar su interés en el campo de la traducción, pues se basa en el etiquetado sintáctico para entender estructuras del lenguaje origen o elegir entre posibles sinónimos del lenguaje destino. 3 Etiquetadores sintácticos La globalización implica nuevas necesidades, especialmente en la era de las comunicaciones. La distribución de la información con destinos muy diversos (y lenguajes igualmente diversos) crea situaciones críticas que se simplifican notablemente con la correcta identificación del texto que transmite la información. En estas situaciones, el etiquetado morfosintáctico resulta especialmente valioso. No está de más recordar que la tarea de etiquetar resulta bastante sencilla para un humano con mediana formación, ya que posee mucha experiencia en el uso de la lengua y unos básicos conocimientos de teoría gramatical del lenguaje, pero materialmente sería imposible realizar un etiquetado humano, manual y perfecto de toda la información escrita que existe hoy en el mundo. La especialidad informática de lenguaje computacional trabaja en los etiquetadores sintácticos: programas capaces de realizar etiquetados automáticos con un porcentaje de aciertos razonablemente aceptable (actualmente se considera que un etiquetador sintáctico es aceptable cuando ofrece una precisión superior al 95%). 3.1 Componentes Diccionario de palabras o Lexicón: formado por una lista de elementos pertenecientes a clases cerradas (artículos, preposiciones, conjunciones…) o clases abiertas (sustantivos, verbos, adjetivos…). Mecanismos para asignar etiquetas: que pueden ser libres de contexto, -asignando por frecuencia-; o por contexto, -usando reglas definidas a mano, o bien mediante bigramas, trigramas etc. Mecanismos para manejar palabras desconocidas: usan un diccionario extra no definido pero sí aprendido a partir de mayúsculas o de la morfología de las palabras (por ejemplo –oso e –ico son sufijos que forman adjetivos a partir de sustantivos). 3.2 Evaluación Hemos evaluado los distintos etiquetadores sintácticos de libre distribución según los siguientes criterios: Su posibilidad de ser entrenados o no. Algunos de los etiquetadores fueron diseñados sólo para etiquetar textos en un idioma concreto. Otros tienen sus propios archivos de diccionario para otros idiomas incluidos por el autor. Otros permiten un entrenamiento a través de archivos con una configuración determinada para cualquier tipo de lenguaje y etiquetas. Su capacidad de configuración para el etiquetado. Algunos etiquetadores nos dejan configurar la manera en que los archivos de texto se van a tratar, el tipo de algoritmo que se va a usar o el número de iteraciones que permiten. 4 Evaluación experimental Para realizar nuestro estudio hemos escogido tres etiquetadores que cumplieran el primer requisito. En ellos hemos entrenado dos colecciones de textos, una corregida y etiquetada a mano y la otra de manera automática. 4.1 4.1.1 Etiquetadores usados MBT El MBT, o Memory Based Tagger, es una herramienta etiquetadora que se basa en el paquete de desarrollo de aprendizaje memorístico Timbl, del que usa toda la potencia de los algoritmos de memoria. Los algoritmos de memoria se basan en la hipótesis de que las nuevas situaciones serán del mismo tipo que las últimas experiencias en las que coincidan ciertos parámetros. Su uso está restringido a Linux aunque tanto el paquete Timbl como la herramienta MBT tienen disponible su código fuente. Tras instalar el Timbl, sólo se debe cambiar una línea del Make instalador suministrando la ruta del Timbl para la instalación del MBT. Es sencillo de usar. Tiene dos comandos: Mbtg para generar un etiquetador con ficheros de entrenamiento y Mbt para aplicar un etiquetador a un archivo de texto dado. Presenta varios parámetros de configuración, los más importantes son los que definen la separación entre palabra y palabra, el modo de aprendizaje de etiquetas y cómo debe de tratar las palabras desconocidas. Con las opciones por defecto de la herramienta, para entrenar un etiquetador, espera un fichero de entrenamiento en que las palabras están separadas por un espacio de sus etiquetas, y hay un retorno entre ellas. Para usar un etiquetador, espera un archivo de texto con las palabras separadas por retornos, y ofrece una salida con las palabras etiquetadas. Tras el proceso muestra una pequeña estadística de palabras reconocidas, desconocidas y tiempo usado. Como se verá posteriormente, ofrece unos resultados bastante aceptables en un margen de tiempo de entrenamiento y de etiquetado muy buenos (apenas unos minutos para archivos de 20 Mb). 4.1.2 MXPOST El nombre de este etiquetador proviene de su algoritmo de aprendizaje: máxima entropía. A diferencia del MBT, el MXPOST analiza toda la frase, puesto que tiene en cuenta todos los elementos de ésta para la toma de decisiones. La entropía de información de la base de ejemplos es igual al número de bits de información que se necesitan para conocer la solución dado un patrón. Se obtiene con la fórmula (1), donde pi (la probabilidad de la solución i) es estimada a partir de su frecuencia relativa dentro del conjunto de entrenamiento. (1) El autor no ofrece el código fuente. Está realizado en Java por lo que se puede usar en cualquier plataforma que disponga de su VM correspondiente. Al igual que MBT, primero se debe entrenar un proyecto con un archivo etiquetado. El formato de este archivo son palabras etiquetadas formando frases, separadas por retornos. Una vez creado el proyecto ya se puede etiquetar un texto cualquiera, estando éste en el mismo formato que el de entrenamiento (pero sin etiquetas, evidentemente). Para el proceso de entrenamiento se pueden configurar el número de iteraciones que se realizarán sobre el conjunto de entrenamiento, lo cual puede perfeccionar (o no) el posterior proceso de etiquetado con ese proyecto. A la vista de los resultados veremos que es el etiquetador que con diferencia más precisión ofrece. Como contraprestación requiere mucho tiempo de entrenamiento (unas 9 horas para un archivo de 20 Mb). 4.1.3 QTAG La herramienta QTAG está basada en métodos estadísticos que calculan cuál es la mejor opción de las experimentadas para los nuevos casos. Al igual que MXPOST, está desarrollado en Java y no está disponible su código fuente. Se entrena introduciendo un corpus etiquetado y él genera un archivo que será su diccionario para ese corpus, con el que más tarde podrá etiquetar textos limpios. Necesita que las palabras estén separadas por retornos. Su uso es realmente simple porque sólo hace falta llamar a dos clases distintas dentro del mismo paquete para realizar las operaciones de entrenamiento y etiquetado. Quizás demasiado simple puesto que no dispone de ninguna opción de configuración. No ofrece resultados satisfactorios, la misma licencia de uso advierte que es un sistema estocástico, aunque realmente no sea del todo cierto. A su favor tiene que el tiempo empleado en entrenar y etiquetar es mínimo. 4.2 Colecciones usadas Se han usado para hacer las pruebas con los distintos etiquetadores dos colecciones de textos (corpus) de libre distribución. La decisión de evaluar sobre dos colecciones distintas se debe al deseo de conseguir los resultados más independientes posibles de los textos entrenados, así como de la cantidad de errores que estos contengan en sus etiquetas de entrenamiento. 4.2.1 CONLL La colección de textos de CONLL es un conjunto de artículos de noticias ofrecidas por la Agencia de Noticias EFE. Los artículos son de mayo del 2000. El etiquetado fue llevado a cabo por el Centro de Investigación TALP de la Universidad Politécnica de Cataluña y el Centro de Lenguaje Computacional de la Universidad de Barcelona. Esta colección usa un conjunto de etiquetas sintácticas relativamente pequeño puesto que su uso estaba destinado principalmente para el reconocimiento de entidades nombradas. Al ser una colección etiquetada automáticamente es la que más errores potenciales contiene, puesto que al error humano al etiquetarla inicialmente, hay que sumar el error del proceso de etiquetado al que fue sometido. Su formato es palabra etiqueta_sintáctica etiqueta_entidad_nombrada Este corpus está disponible en http://cnts.uia.ac.be/conll2002/ner/data/ 4.2.2 ITU El ITU es un corpus desarrollado por el Laboratorio de Lingüística Informática de la Universidad Autónoma de Madrid. Etiqueta sintácticamente, pero de forma muy rigurosa con un número elevado de etiquetas que definen de manera precisa cada palabra. Está corregido a mano por lo que, en teoría, debería contener muy pocos errores (tan sólo los humanos). El formato del archivo es por oraciones en vez de palabras: palabra_etiqueta palabra2_etiqueta2 … retorno. Este corpus está disponible en ftp://ftp.lllf.uam.es/pub/corpus/ 4.3 Métricas de efectividad Para realizar la evaluación de los etiquetadores, utilizamos las tres métricas principales en el procesamiento del lenguaje natural: tasa de recuperación o recall, precisión y la Fβ de Van Rijsbergen. La tasa de recuperación o recall mide la proporción entre etiquetas sintácticas correctamente predichas y etiquetas correctas totales. Se calcula mediante la fórmula r= A donde A son las etiquetas correctas A+ B recuperadas y A + B es el total de etiquetas correctas. La precisión mide la proporción entre las etiquetas correctas recuperadas y el total de etiquetas. Para obtener el valor de la precisión calculamos: p= A A+C con A etiquetas 5 Resultados y discusión 5.1 Ejecución del estudio En primer lugar decidimos que se iba a usar un noventa por ciento del texto de los corpus para entrenamiento de los etiquetadores y un diez por ciento para probarlos. El repartir texto de la colección ITU podía distorsionar los resultados, ya que son archivos de temas muy especializados y no podíamos tomar nueve archivos de cada diez, porque en el archivo diez aparecerían términos que el etiquetador desconocería. Para evitar esta inconveniencia realizamos un pequeño programa que toma el noventa por ciento de cada archivo para entrenamiento y el diez por ciento final para prueba, asegurándonos así que todos los archivos tendrían presencia en el entrenamiento. Tras tener preparados los archivos de entrenamiento y prueba para cada una de las colecciones de textos, se realizó otro programa para formatear dichos textos y probar con cada uno de los etiquetadotes. Asimismo, guardamos un archivo que fuera igual que el archivo de prueba pero con las etiquetas verdaderas, para luego introducir en él las predichas por cada etiquetador y así comparar los resultados de manera precisa. El entrenamiento de estos archivos en los distintos etiquetadores fue realizado en un ordenador con procesador AMD Opteron 1,8 Ghz, 512 Mb. de Ram DDR 2100 y disco duro 120 Gb. 7200 RPM UDMA. Se usaron los sistemas operativos Windows 2000 Server y Knoppix 3.3. Con esta configuración los tiempos de entrenamiento y etiquetado se muestran en la Tabla 1. MBT MXPOST QTAG CONLL Entr. Eti. 1,5 0,5 30 2 5 1 ITU Entr. 4 480 10 Eti. 1 4 2 Tabla 1: Tiempo en minutos correctas y A + C el total de etiquetas. La última métrica, la Fβ de Van Rijsbergen se utiliza para obtener una medida de efectividad. La fórmula es Fβ = ( β 2 + 1). p.r . β 2.p + r En nuestro caso, β = 1, y por tanto se da igual de importancia a recall como a precisión. Finalizado el entrenamiento de los archivos y obtenido el de las etiquetas verdaderas y predichas, las pasamos por un script de Perl que nos hallase los porcentajes de Recall, Precisión y FB1 para cada una de las etiquetas. CONLL MBT QTAG MXPOST 50 MXPOST 100 MXPOST 200 Precisión 96,63 % 88,39 % 92,74 % 92,03 % 93,04 % Recall 95,45 % 79,28 % 91,12 % 92,03 % 91,38 % FB1 95,35 % 81,18 % 91,86 % 92,03 % 92,13 % Accuracy 96,54 % 87,53 % 96,13 % 96,26 % 96,33 % Tabla 2: Resultados globales CONLL CONLL Adjetivos Adverbios Artículo Pronombre Nombre Común Verbo Prec 91,91 99,34 98,9 96,59 94,07 94,55 MBT Recall 91,25 92,81 99,54 91,61 95,45 91,89 FB1 91,58 95,7 99,22 93,35 94,75 93,2 Prec 91,21 92,2 98,75 95,74 93,72 94,33 MXPOST 200 Iteraciones Recall FB1 90,96 91,08 92,59 92,39 99,42 99,08 89,98 92,6 95,58 94,64 90,6 92,43 Tabla 3: Resultados parciales CONLL 5.2 Colección CONLL En la Tabla 2 podemos observar que en todas las métricas, el etiquetador basado en memoria MBT obtiene los mejores valores. El segundo etiquetador más eficiente es el MXPOST entrenado con 200 iteraciones (Tabla 3). Desglosando los resultados por etiquetas vemos que el sistema MBT obtiene unos resultados más eficientes tanto en precisión, tasa de recuperación y F de Van Rijsbergen para las clases de palabras básicas como pueden ser los verbos, sustantivos y adjetivos. Los buenos resultados del etiquetador memorístico se deben a su método de aprendizaje. Al tener las etiquetas de las palabras en memoria, cuando en el conjunto de evaluación aparece una palabra ya almacenada el etiquetador pone la etiqueta, presumiblemente correcta. El problema que ITU MBT QTAG MXPOST 50 MXPOST 100 MXPOST 200 Prec 89,96 % 79,64 % 93,69 % 93,66 % 93,48 % tiene este etiquetador es que si el conjunto de evaluación no contuviera las mismas palabras que en el de entrenamiento, los resultados serían bastante deficientes. En cuanto a los resultados del MXPOST, vemos que hay una pequeña mejoría en función del número de iteraciones en el entrenamiento. El problema es que el tiempo que tarda en ejecutar el entrenamiento puede no resultar interesante viendo la evolución de los resultados. En el caso de necesitar resultados más ajustados se pueden añadir iteraciones de entrenamiento. 5.3 Colección ITU Comparando los resultados de etiquetado (Tabla 4) usando esta colección de textos observamos que el mejor etiquetador en este caso es el MXPOST, entrenado con 200 iteraciones. El segundo etiquetador mejor es el Recall 89,37 % 71,48% 93,97 % 94,14 % 94,38 % FB1 89,03 % 71,28% 93,42 % 93,49 % 93,60 % Tabla 4: Resultados generales ITU Accuracy 97,34 % 83,62 % 98,04 % 98,09 % 98,11 % ITU Adjetivos Adverbios Artículo Pronombre Nombre Común Verbo MBT Recall 95,61 93,52 99,61 100 99,12 86,77 Prec 95,54 91,91 100 94,79 98,74 79,63 FB1 93,61 94,41 99,80 96,66 98,83 80,29 MXPOST 200 Iteraciones Prec Recall FB1 95,42 96,04 95,73 96,48 95,61 96,04 99,81 99,96 99,88 99,13 99,69 97,88 98,59 98,95 98,77 97 96,59 96,8 Tabla 5: Resultados parciales ITU MBT. La métrica de tasa de recuperación o recall es la que más difiere en valor (con más de 5 puntos). Estudiando los resultados por etiquetas (Tabla 5), vemos que los resultados del MXPOST son más homogéneos que los del MBT. Éste último presenta unos valores muy dispares en función de la categoría sintáctica de la palabra a etiquetar. Esto se debe al aprendizaje memorístico y sus problemas que hemos citado en el apartado anterior. Lenguaje Natural de la Universidad Politécnica de Cataluña. Un analizador especializado debería poder conseguir una mayor exactitud y precisión, ser más independiente del tipo de texto analizado y mejorar el tiempo de etiquetado. Estas características podrían hacer del FreeLing el sistema de etiquetado definitivo para el lenguaje castellano. 6 http://www.lsi.upc.es/~nlp/ Conclusiones y trabajo futuro Como hemos podido comprobar, a la vista de estos resultados, podemos concluir que tanto el MBT como el MXPOST se pueden usar adecuadamente, con una exactitud razonable, para el etiquetado morfosintáctico en castellano. También se debe valorar que se han detectado varios errores en las colecciones de texto CONLL y en la ITU, que nos han obligado a hacer algunos ajustes a mano en los archivos de comparación de etiquetas. Estos errores sin duda han influido negativamente en los resultados. Si se quisiera conseguir una mayor exactitud, habría que realizar mejoras de este experimento en dos campos, principalmente: la obtención de un corpus fiable al cien por cien – que probablemente no existe- y asegurarse de que el corpus entrenado corresponde al estilo del texto a etiquetar. Como trabajo futuro nos planteamos realizar otra evaluación experimental, pero esta vez, usando un corpus más fiable (sería interesante usar el CLiC-TALP de la Universidad Politécnica de Cataluña) e incluir en las pruebas el recientemente lanzado FreeLing, analizador sintáctico especializado para castellano según sus creadores, el Grupo de Investigación de Fuentes consultadas: http://cnts.uia.ac.be/conll2002/ner/ http://iling.torreingenieria.unam.mx/CursoPLN/ http://www.cs.pitt.edu/~litman/courses/cs2731/ hw/hw2old/evaluating-taggers.html http://linguistics.arizona.edu/~sandiway/ling388 /Lecture22.ppt http://ilk.uvt.nl/software.html#mbt Carreras, X., I. Chao, L. Padró y M. Padró. Freeling: An Open-Source Suite of Language Analyzers. Proceedings of the 4th International Conference on Language Resources and Evaluation (LREC’04). Lisbon, Portugal. 2004. Junker, M. Hoch, R. Dengel, A On the evaluation of document analysis components by recall, precision and accuracy. Proceedings ICDAR’ 99, Fifth Intl. Conference on Document Analysis and Recognition. Bangalore, India. 1999.