Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Tratamiento Automático de Reglas Ortográficas para la Detección y Corrección de Errores Brian Plüss Laura Pomponio Universidad Nacional de Rosario Facultad de Ciencias Exactas, Ingenierı́a y Agrimensura Departamento de Computación {bpluss,pomponio}@fceia.unr.edu.ar 11 de septiembre de 2008 Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Contenidos 1 Introducción 2 Reglas Ortográficas 3 El Corrector 4 Ejemplos 5 Trabajos Futuros y Conclusiones Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Motivación La detección y corrección de errores ortográficos es un problema importante y cotidiano. Enfoque universal: diccionarios Se busca la palabra en el diccionario. Correcciones propuestas de acuerdo a una distancia. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Motivación Problema 1: falsos errores. Problema 2: errores no detectados. Estas soluciones no utilizan propiedades lingüı́sticas de la palabra y su contexto. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Propuesta Propuesta: atacar el problema mediante reglas que usen estas propiedades. ¿Cuáles reglas? Las que propone la Real Academia Española (RAE). Análisis y clasificación según sus cualidades lingüı́sticas. Implementación de un prototipo en Prolog. Esbozo de una arquitectura que integre el corrector a editores de texto y haga uso de herramientas auxiliares. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Propuesta Propuesta: atacar el problema mediante reglas que usen estas propiedades. ¿Cuáles reglas? Las que propone la Real Academia Española (RAE). Análisis y clasificación según sus cualidades lingüı́sticas. Implementación de un prototipo en Prolog. Esbozo de una arquitectura que integre el corrector a editores de texto y haga uso de herramientas auxiliares. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Las Reglas Formuladas para su uso por humanos. Resuelven ambigüedades con información adicional sobre a palabra. Quien escribe posee esa información, lo que permite su aplicación. Ejemplos: (Se escriben con b) Las terminaciones -aba, -abas, -ábamos, -abais, -aban del pretérito imperfecto de indicativo de los verbos de la primera conjugación. Ejemplos: cantaba, bajabas, amaban. Terminaciones, conjugación: morfologı́a. (Se escriben con b) Las que contienen el elemento compositivo bio-, -bio (‘vida’). Ejemplos: biografı́a, biosfera, anaerobio, microbio. Significado (‘vida’): semántica. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Las Reglas Formuladas para su uso por humanos. Resuelven ambigüedades con información adicional sobre a palabra. Quien escribe posee esa información, lo que permite su aplicación. Ejemplos: (Se escriben con b) Las terminaciones -aba, -abas, -ábamos, -abais, -aban del pretérito imperfecto de indicativo de los verbos de la primera conjugación. Ejemplos: cantaba, bajabas, amaban. Terminaciones, conjugación: morfologı́a. (Se escriben con b) Las que contienen el elemento compositivo bio-, -bio (‘vida’). Ejemplos: biografı́a, biosfera, anaerobio, microbio. Significado (‘vida’): semántica. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Las Reglas Formuladas para su uso por humanos. Resuelven ambigüedades con información adicional sobre a palabra. Quien escribe posee esa información, lo que permite su aplicación. Ejemplos: (Se escriben con b) Las terminaciones -aba, -abas, -ábamos, -abais, -aban del pretérito imperfecto de indicativo de los verbos de la primera conjugación. Ejemplos: cantaba, bajabas, amaban. Terminaciones, conjugación: morfologı́a. (Se escriben con b) Las que contienen el elemento compositivo bio-, -bio (‘vida’). Ejemplos: biografı́a, biosfera, anaerobio, microbio. Significado (‘vida’): semántica. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Las Reglas Formuladas para su uso por humanos. Resuelven ambigüedades con información adicional sobre a palabra. Quien escribe posee esa información, lo que permite su aplicación. Ejemplos: (Se escriben con b) Las terminaciones -aba, -abas, -ábamos, -abais, -aban del pretérito imperfecto de indicativo de los verbos de la primera conjugación. Ejemplos: cantaba, bajabas, amaban. Terminaciones, conjugación: morfologı́a. (Se escriben con b) Las que contienen el elemento compositivo bio-, -bio (‘vida’). Ejemplos: biografı́a, biosfera, anaerobio, microbio. Significado (‘vida’): semántica. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Las Reglas Formuladas para su uso por humanos. Resuelven ambigüedades con información adicional sobre a palabra. Quien escribe posee esa información, lo que permite su aplicación. Ejemplos: (Se escriben con b) Las terminaciones -aba, -abas, -ábamos, -abais, -aban del pretérito imperfecto de indicativo de los verbos de la primera conjugación. Ejemplos: cantaba, bajabas, amaban. Terminaciones, conjugación: morfologı́a. (Se escriben con b) Las que contienen el elemento compositivo bio-, -bio (‘vida’). Ejemplos: biografı́a, biosfera, anaerobio, microbio. Significado (‘vida’): semántica. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Las Reglas Ejemplos: (Se escriben con b) Las que empiezan por el elemento compositivo bi-, bis-, biz- (‘dos’ o ‘dos veces’). Ejemplos: bipolar, bisnieto, bizcocho. (Se escriben con v ) Las que empiezan por el elemento compositivo vice-, viz- o vi- (‘en lugar de’). Ejemplos: vicealmirante, vizconde, virrey. Sı́labas homófonas, semántica, ambigüedad: pragmática Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Las Reglas Ejemplos: (Se escriben con b) Las que empiezan por el elemento compositivo bi-, bis-, biz- (‘dos’ o ‘dos veces’). Ejemplos: bipolar, bisnieto, bizcocho. (Se escriben con v ) Las que empiezan por el elemento compositivo vice-, viz- o vi- (‘en lugar de’). Ejemplos: vicealmirante, vizconde, virrey. Sı́labas homófonas, semántica, ambigüedad: pragmática Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Lingüı́stica Fonologı́a: determina qué secuencias de sonidos están en un idioma. Conceptos: fonema, sı́laba Aplicación: separación en sı́labas, determinación de elementos compositivos Morfologı́a: estudia la estructura interna de las palabras. Conceptos: categorı́as, flexiones, derivación, composición, palabra, forma de palabra. Aplicación: categorización, lematización. Sintaxis: estudia la combinatoria de palabras en estructuras superiores. Conceptos: sintagmas, oración. Aplicación: clasificación por análisis sintáctico, resolución de ambigüedades. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Lingüı́stica Fonologı́a: determina qué secuencias de sonidos están en un idioma. Conceptos: fonema, sı́laba Aplicación: separación en sı́labas, determinación de elementos compositivos Morfologı́a: estudia la estructura interna de las palabras. Conceptos: categorı́as, flexiones, derivación, composición, palabra, forma de palabra. Aplicación: categorización, lematización. Sintaxis: estudia la combinatoria de palabras en estructuras superiores. Conceptos: sintagmas, oración. Aplicación: clasificación por análisis sintáctico, resolución de ambigüedades. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Lingüı́stica Fonologı́a: determina qué secuencias de sonidos están en un idioma. Conceptos: fonema, sı́laba Aplicación: separación en sı́labas, determinación de elementos compositivos Morfologı́a: estudia la estructura interna de las palabras. Conceptos: categorı́as, flexiones, derivación, composición, palabra, forma de palabra. Aplicación: categorización, lematización. Sintaxis: estudia la combinatoria de palabras en estructuras superiores. Conceptos: sintagmas, oración. Aplicación: clasificación por análisis sintáctico, resolución de ambigüedades. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Lingüı́stica Semántica: ciencia de los significados literales. Conceptos: léxica, textitcomposicional, mapeo cognitivo. Aplicación: desambiguación respecto del significado absoluto. Pragmática: trata del lenguaje en uso. Conceptos: contexto, textitsentido común, inferencia, referencia, interpretación, coherencia. Aplicación: desambiguación respecto del significado en contexto. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Lingüı́stica Semántica: ciencia de los significados literales. Conceptos: léxica, textitcomposicional, mapeo cognitivo. Aplicación: desambiguación respecto del significado absoluto. Pragmática: trata del lenguaje en uso. Conceptos: contexto, textitsentido común, inferencia, referencia, interpretación, coherencia. Aplicación: desambiguación respecto del significado en contexto. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Arquitectura Gran parte de los editores populares soportan plugins. Ejemplos: OpenOffice.org, jEdit, Eclipse, EditPlus, emacs,. . . Frontera entre el editor y el corrector. Herramientas auxiliares: tokenizers, que eliminen signos de puntuación; alguna función de librerı́a, que lleve las palabras a minúsculas; un silabeador, que separe en sı́labas cada una de las palabras; por nombrar sólo algunas. El Corrector utiliza las reglas en la BC para tratar cada palabra. Cuando necesita información lingüı́stica usa herramientas externas. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Prototipo Implementado en Prolog. BC con las reglas, mecanismo de inferencia y algunas de las herramientas auxiliares parciales, implementadas ad-hoc. No se intentó vincular el mismo a ninguna de las herramientas de procesamiento lingüı́stico mencionadas en la arquitectura propuesta. Reglas clasificadas de acuerdo a la información lingüı́stica que requerirán del usuario. Se tratan las palabras con las letras “conflictivas”. Excepciones tratadas en primer lugar. Se asume que hay error y se intenta determinar qué reglas se violaron. Reglas con poca o nula intervención del usuario se aplican antes. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Prototipo aplicar(X,Q):- (excepcion(X) -> (Q = X, write(’Es excepción : \"’), write(Q), write(’\".’),nl,!)); ((retract(buffer(_)) -> true; true), assert(buffer(X)), (exist_v(X) -> ((regla_b(Regla), aplicar_reglas(Regla,Z,Y,T)); (exist_b(X) -> ((regla_v(Regla), aplicar_reglas(Regla,Z,Y,T)); %%Si exist_v y exist_b buffer(Q)); %%Si exist_v y NO exist_b buffer(Q))); %% Si NO exist_v (exist_b(X) -> ((regla_v(Regla), aplicar_reglas(Regla,Z,Y,T)); %%Si NO exist_v y exist_b buffer(Q)); %% Si NO exist_v y NO exist_b Q=X))). aplicar_reglas(Regla,Z,Y,T):- buffer(Z), T =.. [Regla,Z,Y], T, write(’Aplicar regla a \"’),write(Z), write(’\" : ’), write(T),nl, retract(buffer(Z)),assert(buffer(Y)),fail. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Prototipo Ejemplo: (Se escriben con b) Las palabras acabadas en -bilidad. Ejemplos: amabilidad, habilidad, posibilidad. Excepciones: movilidad, civilidad y sus compuestos. rb4(X, Y):- ((sub_atom(X,_,_,0,’vilidad’)-> H = bilidad); (sub_atom(X,_,_,0,’vilidades’)-> H = bilidades) ) -> (atom_length(H,N), sub_atom(X,0,_,N,Pre), atom_concat(Pre,H,Y)); Y=X. Al aplicar rb4, se corrige una palabra termina en -vilidad/-vilidades. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Ejemplo 1 verificabilidad. 1. f. Fil. Cualidad de verificable. Del diccionario de la RAE. Pero. . . Microsoft Word 2003 Mozilla Thunderbird Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Ejemplo 1 2 ?- corregir. Ingrese una frase o una lista de palabras entre doble comilla " " y en letras minúsculas: |: "la verificabilidad es una caracterı́stica deseable". Aplicar regla a "verificabilidad" : rb1(verificabilidad, verificabilidad) ... Aplicar regla a "verificabilidad" : rb17(verificabilidad, verificabilidad) Aplicar regla a "verificabilidad" : rv1(verificabilidad, verificabilidad) ... Aplicar regla a "verificabilidad" : rv10(verificabilidad, verificabilidad) Aplicar regla a "deseable" : rv1(deseable, deseable) ... Aplicar regla a "deseable" : rv10(deseable, deseable) El resultado de la corrección es: "la verificabilidad es una caracterı́stica deseable" Yes 3 ?- corregir. Ingrese una frase o una lista de palabras entre doble comilla " " y en letras minúsculas: |: "la verificavilidad es una caracterı́stica deseable". Aplicar regla a "verificavilidad" : rb1(verificavilidad, verificavilidad) ... Aplicar regla a "verificavilidad" : rb4(verificavilidad, verificabilidad) ... Aplicar regla a "verificabilidad" : rb17(verificabilidad, verificabilidad) El resultado de la corrección es: "la verificabilidad es una caracterı́stica deseable" Yes Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Ejemplo 2 Tanto “vaya” como “baya” estarán en los diccionarios. Entonces. . . Microsoft Word 2003 Mozilla Thunderbird Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Ejemplo 2 4 ?- corregir. Ingrese una frase o una lista de palabras entre doble comilla " " y en letras minúsculas: |: "esto no significa que baya a funcionar correctamente". Aplicar regla a "baya" : rv1(baya, baya) ... Aplicar regla a "baya" : rv8(baya, baya) ¿Ud. quiso escribir "vaya" en lugar de "baya" donde "vaya" es presente subjuntivo del verbo "ir" ?(s / n) : s. Aplicar regla a "baya" : rv9(baya, vaya) Aplicar regla a "vaya" : rv10(vaya, vaya) El resultado de la corrección es: "esto no significa que vaya a funcionar correctamente" Yes Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Trabajos futuros Implementar más reglas. Análisis de herramientas de procesamiento lingüı́stico y factibilidad de integración, intervención del usuario, posibles errores, etc. Pruebas estadı́sticas de efectividad y comparación con herramientas tradicionales. Corpus y scripts. Implementación de un plugin para incorporar el corrector a algún editor popular. Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas Introducción Reglas Ortográficas El Corrector Ejemplos Trabajos Futuros y Conclusiones Conclusiones Propuesta alternativa para resolver un problema habitual. Análisis de factibilidad práctica y teórica. Posibilidad de automatización total con el uso de herramientas de auxiliares. ¿Nunca antes abordado? El inglés, ¿cuántas reglas ortográficas tiene? Brian Plüss, Laura Pomponio Tratamiento Automático de Reglas Ortográficas