Lietuvių kalbos morfologija atvirojo kodo „Hunspell“ platformoje
Full text
VIRGINIJUS DADURKEVIČIUS
Universidad de Vilna
MORFOLOGÍA DE LA LENGUA LITUANA EN LA PLATAFORMA DE CÓDIGO ABIERTO HUNSPELL1
PALABRAS CLAVE: lingüística computacional, lengua lituana, gramática, morfología, análisis morfológico, corrección ortográfica, indexación de textos, búsqueda, código abierto, Hunspell.
INTRODUCCIÓN
Hace más de 100 años, gracias a los esfuerzos de Jonas Jablonskis (1901, 1918, 1922), comenzó la normalización de la lengua lituana y esta se adaptó para ser el principal instrumento de cohesión del Estado. Ya en la primera Gramática de la lengua lituana de Jonas Jablonskis (1901), la fonética, la morfología y la sintaxis de la lengua lituana quedaron formalizadas: se definieron los conceptos fundamentales y se presentaron reglas de flexión de las palabras y de estructura de la oración (véase la fig. 1).
FIG. 1. Extracto de la Gramática de la lengua lituana de Jonas Jablonskis, 19012
La contribución inestimable de Jonas Jablonskis a la normalización del léxico de la lengua lituana y a la explicación de las particularidades semánticas de las palabras.
Durante mucho tiempo, esto fue más que suficiente para alumnos y profesores, escritores y lectores, funcionarios y científicos. Con la aparición de una innovación que cambiaría la civilización —los ordenadores—, la gramática y el léxico clásicos se vieron ante la necesidad de «vestirse con un traje nuevo» y convertirse en parte plenamente integrada de las nuevas
1 El artículo se preparó a partir de la ponencia La gramática de la lengua lituana en el mundo del código abierto, presentada en la 24.ª conferencia internacional Jonas Jablonskis, Recursos lingüísticos digitales, sus direcciones de desarrollo y posibilidades de uso (29-09-2017); la organizaron el Centro de Investigación de la Lengua Estándar del Instituto de la Lengua Lituana y el Departamento de Lengua Lituana de la Universidad de Vilna.
2 Figura de http://www.epaveldas.lt/vbspi/biRecord.do?biRecordId=25383.
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 2
parte de las tecnologías. En primer lugar, se necesitaron conocimientos lingüísticos en los ordenadores para codificar texto (convertir letras en números), corregir automáticamente los errores del texto introducido y silabear el texto de las columnas con alineación justificada. Más tarde, se emplearon en la búsqueda de información, el análisis y la síntesis del habla, la traducción automática de una lengua a otra, la comprensión automática del contenido, el análisis «sentimental» del texto, etc. Los aspectos lingüísticos debían formalizarse minuciosamente y anotarse de otro modo, comprensible para los ordenadores. El más importante de ellos es la morfología, pues constituye la base de cualquier trabajo más profundo de lingüística computacional (sintaxis, análisis semántico, etc.).
El primer trabajo de este tipo lo realizó, a finales del siglo XX, Vytautas Zinkevičius (1996, 2000), programador de la planta experimental «Bitas». Durante casi dos décadas, fue un recurso insustituible y único para la investigación moderna de la lengua lituana y sus aplicaciones informáticas. Este sistema se utilizó con éxito para detectar errores ortográficos en programas de edición de textos, así como para realizar análisis y síntesis morfológicos en trabajos científicos y aplicados en el Instituto de la Lengua Lituana, la Universidad Vytautas Magnus (donde sus trabajos recibieron el nombre de «Lemuoklis») y la Universidad de Vilna. Incluso se creó una variante del sistema adaptada para analizar el lituano antiguo (Gelumbeckaitė et al. 2012). Sin embargo, a medida que crecían las necesidades de la lingüística computacional, empezaron a hacerse evidentes las deficiencias del sistema: estructuras de datos no estándar e innecesarias; código cerrado; implementación incompleta de nombres propios, ilativo, dual, futuro de los verbos primarios, formas reducidas y formas poco frecuentes. El código cerrado dificultaba especialmente el desarrollo posterior del sistema: en la práctica, solo el propio autor podía modificar los datos y el algoritmo.
Para evitar las deficiencias descritas anteriormente y crear una morfología computacional de la lengua lituana de nueva generación, se establecieron los siguientes requisitos:
1) utilizar y crear únicamente código abierto;
2) solo los datos, pero no su forma ni su interpretación, pueden tener características específicas de la lengua lituana;
3) todo el código del programa debe ser universal y servir para cualquier otra lengua;
4) aprovechar las soluciones que han demostrado su eficacia para otras lenguas del mundo.
La plataforma Hunspell cumple bien los requisitos mencionados3. Además, al describir la lengua de este modo, más adelante se pueden detectar fácilmente errores ortográficos en muchas (más de 50) aplicaciones (OpenOffice, LibreOffice, Firefox, Chrome, Safari, InDesign, etc.), realizar análisis y síntesis morfológicos de palabras, efectuar búsquedas inteligentes de información textual, etc.
3 Acceso en internet: https://en.wikipedia.org/wiki/Hunspell.
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 3
En este artículo se presenta una nueva implementación de la morfología de la lengua lituana basada en la plataforma Hunspell. Se examinan los problemas relacionados y las formas de resolverlos, y se ofrecen ejemplos de pruebas satisfactorias y de aplicación práctica.
1. CARACTERÍSTICAS DEL FORMATO HUNSPELL PARA LA DESCRIPCIÓN DE LA LENGUA LITUANA
1.1. Origen de la plataforma Hunspell y principios generales
La plataforma de código abierto Hunspell evolucionó a partir de las herramientas más sencillas de corrección ortográfica Ispell4, Aspell5, MySpell6 y otras. Al hacerlas gradualmente más complejas y adaptarlas a una variedad cada vez mayor de lenguas (especialmente las aglutinantes, como el finés, el húngaro, el turco, etc.), fue posible abordar no solo la corrección ortográfica, sino también tareas de análisis y síntesis morfológicos. Los autores de esta plataforma, muy popular en todo el mundo, son principalmente científicos e ingenieros-programadores de origen húngaro (Trón y otros, 2005). No es de extrañar que el primer elemento de su nombre, «Hun-», provenga del nombre de Hungría en inglés.
En la plataforma Hunspell, la morfología de una lengua se describe mediante dos archivos de texto: las reglas de flexión se escriben con la extensión .aff, mientras que el diccionario de formas de palabras, con información morfológica inicial y referencias a uno o varios grupos de reglas de flexión que pueden aplicarse además, se escribe con la extensión .dic. Una regla individual puede concebirse como una instrucción que especifica:
1) Qué se puede cambiar y por qué en una palabra del diccionario de formas. Por ejemplo, en la regla
SFX 85 čias ty [^š]čias is:Masc_Sg_Voc
«SFX» indica que se modifica el final de la palabra, y que «-čias» puede cambiarse por «-ty».
«PFX» indicaría que se modifica el comienzo de la palabra. No se contemplan cambios en el interior de la palabra.
2) El número del grupo de reglas de flexión al que pertenece esta regla. El grupo puede constar de una o varias reglas que siempre se aplican conjuntamente. En el ejemplo anterior, la regla pertenece al grupo cuyo número es «85».
3) Las condiciones bajo las cuales es posible efectuar el cambio (se emplea cierto formalismo de expresiones regulares). En nuestro ejemplo, el cambio solo es posible si el final de la palabra del diccionario de formas no es «-ščias» (por ejemplo, «vaikiščias»).
4) La información morfológica asociada a este cambio. En nuestro ejemplo, a este cambio de final de palabra se le asocia la etiqueta morfológica «Masc_Sg_Voc» (género masculino, singular, caso vocativo; por ejemplo, «svety»).
4 Acceso en línea: https://www.cs.hmc.edu/~geoff/ispell.html.
5 Acceso en línea: http://aspell.net.
6 Acceso en línea: https://code.google.com/archive/a/apache-extras.org/p/ooo-myspell.
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 4
Puede consultarse con más detalle los principios de elaboración de las reglas de flexión y de especificación de la información morfológica de Hunspell en el sitio web de esta plataforma7; además, las posibilidades que ofrece esta plataforma para describir la morfología de diversas lenguas se examinan bastante bien en la tesis doctoral de Tommi A. Pirinen (2014).
1.2. Requisitos específicos para la implementación en lituano
Para que una formalización de la lengua de este tipo sirva para el análisis morfológico, la síntesis, la indexación de información textual y la búsqueda, deben cumplirse los dos requisitos siguientes:
1) en el diccionario de formas de palabras solo pueden incluirse lemas (formas de entrada);
2) la formación mediante prefijos, sufijos y formas reflexivas debe reflejarse no en el archivo .aff, sino en el archivo .dic.
El primer requisito no es fácil de implementar en lituano debido a la gran diversidad de la flexión verbal (unos 170 patrones), pero la posibilidad de la plataforma Hunspell de encadenar una regla de flexión con otra ayudó a resolver este problema. Aunque la «profundidad» de estos encadenamientos solo puede ser de una unidad, reduce considerablemente el tamaño del archivo de reglas de flexión: de varios millones a unas pocas decenas de miles de líneas.
El cumplimiento del segundo requisito aumenta algo el tamaño del archivo .dic, ya que, por ejemplo, los derivados con prefijos, sufijos y formas reflexivas de una misma raíz —«imti», «paimti», «suimti» y «nesiimti»— se incluirán en líneas separadas. Y esta no es la única consecuencia negativa del requisito: es fácil cometer un error y omitir algún derivado de un verbo o adjetivo de uso menos frecuente. Sin embargo, este problema se aborda de manera bastante exhaustiva al seleccionar los lemas, sobre todo no de diccionarios publicados, sino de corpus recopilados.
1.3. Fragmentos de archivos.dic y.aff en lituano (ejemplos)
En la figura 2 se muestran varios fragmentos de un archivo .dic (diccionario) de lituano, con los equivalentes de las palabras de ejemplo de Jonas Jablonskis resaltados.
7 Acceso en línea: https://github.com/hunspell/hunspell.
BENDRINĖ KALBA 90 (2017) www.bendrinekalba.lt ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 5
laukakmenis/118,122,132,137,141,145,157,159,9999 po:sustantivo
laukan po:adverbio
laukas/1,3,7,10,12,14,20,21,30,9999 po:sustantivo
Laukavičienė/738,740,745,9999 po:apellido_familiar
...
svečias/1467,1767,1775,1781,1784,1841,9999 po:adjetivo
svečias/71,73,85,93,98,100,106,116,9999 po:sustantivo
svečiavimasis/1308,1310,1314,1315,1317,1319,9999 po:sustantivo_reflexivo
Svečiulienė/738,740,745,9999 po:apellido_familiar
...
Gaidulis/118,122,132,141,145,157,9999 po:apellido_familiar
Gaidulytė/738,740,745,749,754,760,9999 po:apellido_familiar
gaidys/264,268,278,280,284,288,300,302,9999 po:sustantivo
Gaidys/264,268,278,284,288,300,9999 po:apellido_familiar
...
peilinis/2036,9999 po:adjective
peilis/118,122,132,137,141,145,157,159,9999 po:sustantivo
peiliukas/1,3,8,10,12,14,20,21,30,9999 po:sustantivo
Peipus/444,446,452,9999 po:noun_geographic_name
FIG. 2. Fragmento de archivo de formas de palabras .dic. Los números después de la barra oblicua indican referencias a grupos de reglas de flexión direccionables. En rojo aparecen resaltadas las referencias a los grupos de reglas que se muestran en la FIG. 3.
En la Fig. 3 se muestran varios fragmentos del archivo .aff de reglas de flexión del lituano:
SFX 21 Y 1
SFX 21 como uosna. is:Masc_Pl_I
...
SFX 98 Y 2
SFX 98 como ai. is:Masc_Pl_Nom
SFX 98 as ų. is:Masc_Pl_Gen
...
SFX 264 Y 6
SFX 264 como is. is:Masc_Sg_Nom
SFX 264 ys ys. is:Masc_Sg_Nom
SFX 264 is žio. is:Masc_Sg_Gen
SFX 264 ys žio. is:Masc_Sg_Gen
SFX 264 ai ai. is:Masc_Pl_Nom
SFX 264 ai ų. is:Masc_Pl_Gen
...
SFX 145 Y 12
SFX 145 como iams. is:Masc_Pl_Dat
SFX 145 ys iams. is:Masc_Pl_Dat
SFX 145 es iam. es:Masc_Pl_Dat_short
SFX 145 ys iam. es:Masc_Pl_Dat_short
SFX 145 es ius. es:Masc_Pl_Acc
SFX 145 ys ius. es:Masc_Pl_Acc
SFX 145 es iais. es:Masc_Pl_Inst
SFX 145 ys iais. es:Masc_Pl_Inst
SFX 145 is iuose. es:Masc_Pl_Loc
SFX 145 ys iuose. es:Masc_Pl_Loc
SFX 145 es iuos. es:Masc_Pl_Loc_short
SFX 145 ys iuos. es:Masc_Pl_Loc_short
FIG. 3. Fragmentos del archivo de reglas de flexión .aff. Se resaltan varias reglas que se utilizan a continuación para ilustrar el análisis morfológico.
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 6
Tras utilizar la descripción lingüística presentada en los ejemplos y las herramientas estándar de análisis (independientes de la lengua) Hunspell, obtendríamos la siguiente respuesta para las palabras de ejemplo de Jonas Jablonskis (véase la fig. 4).
FIG. 4. Ejemplo de análisis morfológico de palabras
2. DESARROLLO DEL TRABAJO Y RESULTADOS
Una vez que se ha elaborado una descripción lingüística completa en formato Hunspell (es decir, se han creado los archivos .dic y.aff correspondientes), se abren posibilidades prácticamente ilimitadas para aplicaciones prácticas, desde la corrección ortográfica o gramatical hasta los sistemas inteligentes de búsqueda de información. Debido a la morfología bastante compleja del lituano (muchas reglas y grupos de reglas) y a la necesidad de ajustar la lista de lemas a corpus extensos (de más de 1.000 millones de palabras) que reflejen el estado actual de la lengua escrita lituana, transcurrieron aproximadamente cinco años desde los primeros intentos hasta la creación de una versión morfológica que funcionara correctamente. Los ejemplos presentados anteriormente en este artículo son principalmente ilustrativos y sirven solo para comprender la idea; en realidad, las reglas y sus grupos son mucho más complejos, sobre todo los relacionados con los verbos.
Para acelerar la creación de la morfología y evitar errores al enumerar miles de reglas y asignarlas a los lemas, primero se creó una descripción morfológica inicial, más abstracta que la exigida por las especificaciones de Hunspell (reglas en una tabla de MS Excel; lemas y su clasificación en una base de datos de MS Access). También se crearon herramientas de software para transformar automáticamente estas estructuras iniciales, más fáciles de leer y comprender para las personas, en archivos .aff y.dic o en otro formato definido por las características específicas de la aplicación. La versión más reciente de los archivos .aff y.dic para el lituano está disponible en el sitio web GitHub del autor8.
Durante todo el proceso de formalización morfológica se utilizaron las siguientes fuentes principales:
8 Disponible en línea: https://github.com/dadurka/hunspell_morphology_lt.
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 7
1) Gramática del lituano contemporáneo (DLKG 2006);
2) Corpus del lituano contemporáneo de la Universidad Vytautas Magnus (en adelante, VDU)9: ~140 millones de palabras;
3) Corpus de traducción automática de la Universidad de Vilna10: ~800 millones de palabras, ~4 millones de formas únicas;
4) Documentos del Seimas de la República de Lituania (en adelante, LRS)11: ~400 millones de palabras, ~1 millón de formas únicas;
5) Diccionario del lituano contemporáneo (DŽ 2006): ~60.000 lemas;
6) Diccionario de la lengua lituana12: ~500.000 entradas;
7) Diccionario de palabras internacionales (VTŽŽe): ~22.000 lemas;
8) Diccionario de apellidos lituanos (LPŽ) (~80.000 apellidos).
En total, se crearon aproximadamente 5.000 grupos de reglas direccionables (18.000 reglas individuales). La distribución de los grupos de reglas por categorías gramaticales se muestra en la figura 5.
FIG. 5. Distribución de los grupos de reglas de flexión según las partes de la oración
El archivo .dic (diccionario) se elaboró a partir de 171 000 lemas. La distribución de los lemas según las partes de la oración se muestra en la figura 6.
9 Disponible en internet: http://tekstynas.vdu.lt/tekstynas/.
10 Disponible en internet: https://www.versti.eu/.
11 Disponible en internet: http://www.lrs.lt/.
12 Disponible en internet: http://www.lkz.lt/.
BENDRINĖ KALBA 90 (2017) www.bendrinekalba.lt ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 8
FIG. 6. Distribución de los lemas según las partes de la oración
En el proceso de selección se limitó el corpus al lituano contemporáneo correcto y se evitaron las palabras incorrectas, no lituanas, no recomendables, ofensivas y en desuso. Los sustantivos propios se clasificaron además en apellidos, nombres de pila, topónimos y otros casos. Esta selección facilita la aplicación de la morfología desarrollada para la corrección ortográfica y permite utilizar más fácilmente los resultados del análisis en etapas posteriores del análisis de textos (sintaxis, reconocimiento de entidades nombradas, indexación y búsqueda).
La precisión del nuevo analizador morfológico es de aproximadamente el 98%, es decir, el analizador morfológico interpreta correctamente, en promedio, 98 de cada 100 palabras (Kapočiūtė-Dzikienė et al. 2017). El 2% restante de las palabras no reconocidas suele estar compuesto por errores ortográficos, palabras de otras lenguas (nombres, apellidos, citas de frases, etc.), palabras no recomendables o no normativas y palabras correctas que no se incluyeron en la lista de lemas.
3. APLICACIÓN PRÁCTICA
3.1. Sistema de análisis sintáctico-semántico de VDU
La morfología lituana recién creada en la plataforma Hunspell se aplicó entre 2011 y 2015 en el sistema de análisis sintáctico-semántico de VDU13 para revisar la ortografía y la gramática y realizar análisis morfológicos y sintácticos de textos (véase la fig. 7). El análisis morfológico se complementó con una desambiguación estadística-reglada mixta (modelo oculto de Markov, probabilidades de trigramas aproximadas según el estándar de referencia, algoritmo de Viterbi y algunas excepciones). La publicación de Jurgita Kapočiūtė-Dzikienė, Erika Rimkutė y Loïc Boizou (2017) ofrece más información sobre la desambiguación en el análisis morfológico.
13 Acceso en línea: http://semantika.lt/SyntacticAndSemanticAnalysis/Analysis.
BENDRINĖ KALBA 90 (2017) www.bendrinekalba.lt ISSN 2351-7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 9
FIG. 7. Hunspell Aplicación de la morfología lituana en el sistema de análisis sintáctico-semántico de VDU
3.2. Sistema de búsqueda del registro de actos jurídicos de LRS
Entre 2011 y 2013, paralelamente a la creación de una nueva morfología lituana, se llevó a cabo su aplicación en el sistema de búsqueda del Registro de Actos Jurídicos de la cancillería de LRS14. Normalmente, en sistemas de este tipo, antes de realizar la primera búsqueda, todos los documentos se indexan lematizándolos; es decir, todas las palabras de los documentos se sustituyen por sus lemas y se registra dónde aparece cada lema. Antes de ejecutar una consulta de búsqueda, su texto también se lematiza del mismo modo, por lo que después se encuentra no solo la forma de la palabra escrita en la consulta, sino también cualquier otra forma de esa palabra presente en los documentos buscados. Como en este sistema no era posible utilizar directamente los datos .dic,.aff, el formato original requerido por el sistema (un archivo de texto en el que cada línea tiene la forma [lema] [categoría gramatical] → [lista de formas]) se generó a partir de la descripción morfológica primaria mencionada anteriormente. Aunque a partir de esta descripción se pueden generar unos 15 millones de formas de palabras teóricamente posibles, debido a las limitaciones internas del sistema de búsqueda solo se utilizaron alrededor de un millón de las más frecuentes. La decisión resultó acertada: la búsqueda funciona bastante bien y sigue utilizándose hasta hoy (véase la fig. 8).
14 Acceso en línea: https://www.e-tar.lt
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 10
FIG. 8. Aplicación de la morfología de la lengua lituana en el buscador del Registro de Actos Jurídicos del LRS
4.3. Sistema de código abierto para la indexación y búsqueda de documentos Solr/Lucene15
Para aprovechar más ampliamente las ventajas y la experiencia acumulada del código abierto al implementar la morfología de la lengua lituana en el Registro de Actos Jurídicos, se creó un sistema para indexar y buscar documentos lituanos basado en Solr/Lucene. La aplicación directa de los datos .dic,.aff en este sistema es posible, pero muy ineficiente; por ello, se sustituyó por un transductor de estados finitos (FST – Finite State Transducer), construido a partir de la descripción morfológica primaria mencionada anteriormente y capaz de generar todas las formas de palabra teóricamente posibles de acuerdo con dicha descripción. Esta solución permite no solo indexar y encontrar con precisión todas las formas de palabra deseadas, sino también acelerar la indexación cientos de veces y obtener resultados de búsqueda utilizando diversas relaciones semánticas, teniendo en cuenta información taxonómico-semántica adicional. Por ejemplo, si la consulta incluye la palabra «gyvatė» («serpiente»), el sistema también busca «angis» («víbora»), «barškuolė» («serpiente de cascabel»), etc. (véase la fig. 9); en cambio, si la consulta incluye «angis», los resultados de búsqueda ya no contendrán ni «gyvačių» ni «barškuolių» (Ralys, Dadurkevičius 2017).
15 Disponible en Internet: http://lucene.apache.org/solr/.
BENDRINĖ KALBA 90 (2017) www.bendrinekalba.lt ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 11
FIG. 9. Ejemplo de aplicación de la morfología de la lengua lituana en el sistema de código abierto para la indexación y búsqueda de documentos Solr/Lucene
4. PERSPECTIVAS
Para ampliar la aplicación de la implementación de la morfología de la lengua lituana en la plataforma Hunspell, habría que desarrollar dos variantes: una de la lengua normativa y otra completa (lengua normativa y no normativa). La primera permitiría seguir realizando tareas de corrección ortográfica y ofrecer recomendaciones para corregir infracciones de las normas lingüísticas, mientras que la segunda sería adecuada para resolver tareas aplicadas de análisis de la lengua viva.
Otra tarea de futuro igualmente importante es ampliar continuamente el diccionario morfológico con las palabras que aún no se han incluido y las de nueva aparición, corregir los errores detectados en las reglas de flexión y en la clasificación de palabras, y publicar al menos una vez al año las versiones más recientes de .dic,.aff.
Aprovechando la experiencia ya acumulada, sería fácil preparar también una descripción formal de los dialectos lituanos (especialmente el samogitio) o de la lengua de los antiguos textos lituanos.
BENDRINĖ KALBA 90 (2017) www.bendrinekalba.lt ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 12
ŠALTINIAI
DLKG 2006 – Dabartinės lietuvių kalbos gramatika. Red. Vytautas Ambrazas. 4-oji pataisyta laida, Vilnius: Mokslo ir enciklopedijų leidybos institutas.
DŽ 2006 – Dabartinės lietuvių kalbos žodynas (elektroninis). Vyr. red. Stasys Keinys. 6-as leid. Vilnius: Lietuvių kalbos institutas.
LKŽe – Lietuvių kalbos žodynas, elektroninis variantas. Red. kolegija: Gertrūda Naktinienė (vyr. red.), Jonas Paulauskas, Ritutė Petrokienė, Vytautas Vitkauskas, Jolanta Zabarskaitė, Vilnius: Lietuvių kalbos institutas, 2005. Atnaujinta versija, 2008. Prieiga internete: www.lkz.lt.
LPŽ – Aleksandras Vanagas (red.), Lietuvių pavardžių žodynas 1–2, Vilnius: Mokslas, 1985–1989.
VTŽŽe 2003 – Vaitkevičiūtė V. Tarptautinių žodžių žodynas (elektroninis). Vilnius: Fotonija.
LITERATŪRA
Gelumbeckaite ir kt. 2012: Gelumbeckaite J., Šinkūnas M., Zinkevičius V. Old Lithuanian Reference Corpus (SLIEKKAS) and Automated Grammatical Annotation. – Journal for Language Technology and Computational Linguistics (JLCL), 2012. - 27.2. Altüberlieferte Sprachen als Gegenstand der Texttechnologie. Ancient Languages as the Object of Text Technology, ed. by Armin Hoenen, Thomas Jügel, Gesellschaft für Sprachentechnologie und Computerlinguistik (GSCL), 83–96 p.
Jablonskis J. 1901: Lietuviškos kalbos gramatika. Rašytojams ir skaitytojams vadovėlis. Parašė Petras Kriaušaitis. Tilžėje 1901. Spausdinta pas Otto v. Mauderode. 88 p.
Jablonskis J. 1918: Lietuvių kalbos gramatika: etimologija: pirmosioms mūsų aukštesniosioms mokslo įstaigoms / P. Kriaušaičio ir Rygiškių Jono. Vilnius: Lietuvių mokslo draugija. 237 p.
Jablonskis J. 1922: Lietuvių kalbos gramatika: etimologija: vidurinėms mokslo įstaigoms / Rygiškių Jonas. 2-asis leid. Kaunas; Vilnius: „Švyturio“ b-vė, (Tilžė: Otto v. Mauderodės sp.). 280 p.
Kapočiūtė-Dzikienė J. ir kt. 2017: Jurgita Kapočiūtė-Dzikienė, Erika Rimkutė, Loïc Boizou Comparison of Lithuanian Morphological Analyzers. – Text, Speech, and Dialogue. 20th International Conference, TSD 2017, Prague, August 27–31, 2017, Proceedings, 47–56.
BENDRINĖ KALBA 90 (2017) www.bendrinekalba.lt ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 13
Ralys D., Dadurkevičius V. 2017: Informacijos paieškos sistemos ir lietuvių kalba, [žiūrėta 2017-10-30]. Prieiga internete:
https://www.slideshare.net/DanieliusRalys/informacijos-paiekos-sistemos-ir-lietuvi-kalba-81373517.
Tommi A Pirinen 2014: Weighted Finite-State Methods in Spell-Checking and Correction, Doctoral dissertation, University of Helsinki.
Trón V. ir kt. 2005: Viktor Trón, András Kornai, György Gyepesi, László Németh, Péter Halácsy, and Dániel Varga. 2005. Hunmorph: open source word analysis. – Proceedings of the Workshop on Software (Software '05). Association for Computational Linguistics, Stroudsburg, PA, USA, 77–85.
Zinkevičius V. 1996: Lietuvių kalbos morfologinių reiškinių kompiuterizavimo lingvistiniai aspektai. – Lietuvių katalikų mokslų akademijos suvažiavimo darbai, XVI tomas, 148–154.
Zinkevičius V. 1996: Lietuvių kalbos morfologinių reiškinių kompiuterizavimas. – Lietuvių katalikų mokslų akademijos suvažiavimo darbai, XVI tomas, 155–162.
Zinkevičius V. 2000: Lemuoblis – morfologinei analizei. – Darbai ir dienos 24, 245–273.
Gauta 2017 10 31
Priimta 2017 12 08
VIRGINIJUS DADURKEVIČIUS
Vilniaus universiteto Taikomųjų mokslų institutas
M. K. Čiurlionio g. 29, 03100 Vilnius
[email protected]
[email protected]
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 14
LITHUANIAN MORPHOLOGY IN THE HUNSPELL FRAMEWORK
Summary
The paper presents the results of an attempt to build basic Lithuanian language resources using the widespread Hunspell platform. The spelling is actually the primary target of this open-source platform but the morphological analysis and synthesis are also possible. Moreover, the ability to efficiently perform lemmatization (stemming) makes this platform the best option for text search engines (e.g. Solr/Lucene) and information retrieval. Taggers, grammar checkers and other basic natural language processing tools can also be build using properly built Hunspell language resources.
Every Hunspell language resource consists of two files: dictionary and affixes (it may be empty). The dictionary contains main forms (lemmas) whereas the affixes contain the morphological rules to generate all possible forms. As a source for the dictionary we have used the Modern Lithuanian Dictionary (6-th edition), Corpus of the Contemporary Lithuanian Language compiled at the Center of Computation Linguistics of Vytautas Magnus University, database of documents of the Lithuanian Parliament, versti.eu machine translation corpus of Vilnius University and various public internet sources (totally 1.3 billion tokens). Main criteria for semi-manual compilation of the Lithuanian dictionary of lemmas from these sources was correctness, usability, actuality and approval by language authorities. Deprecated loanwords or extremely rare, exotic, obsolete, jargon, insulting forms were discarded from the list. Resulting dictionary consists of 171 000 lemmas: 42 000 common nouns, 73 000 proper nouns, 15 000 adjectives, 53 pronouns, 153 numerals, 35 000 verbs, 4 000 adverbs and 2 000 others (prepositions, conjunctions, particles, onomatopoeias, interjections, acronyms and abbreviations).
The second component of language resource, the so called “affix file”, contains information of various kind: metadata, preferable suggestions for spelling correction, grouping of rules, explicit tags for flexing and non-flexing properties, rules for suffix and affix alteration.
In order to make the Hunspell resources suitable for creating basic language tools, e.g. morphological analyzer and synthesizer, some principles should be kept:
1) every flexion paradigm (consisting of one or more rules) should be thoroughly generated from one single lemma in dictionary file (it is not trivial, especially for irregular verbs);
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 15
2) every individual alteration case should have its own morphological tag, e.g. ‘Masc_Sg_Il’ for masculine + singular + illative;
3) every dictionary item should have references for part of speech and other non-flexing information;
4) avoid prefixation via rules, use dictionary instead – affixed forms may have completely different meanings and using them under single lemma may cause problems for text search engines;
5) do not rely much on calling rules from rules – calling depth can by no more than 1.
The coverage of the contemporary Lithuanian by this implementation of Lithuanian morphology is about 98 percent. The full list of all the theoretically possible forms generated by this resource contains about 17 million entries.
This work clearly shows an efficient way for any language (especially with scarce funding resources) to make basic language tools using a single open source development platform – the Hunspell.
KEYWORDS: Lithuanian, grammar, morphology, computational linguistics, Hunspell, speller, tagger, analyser, parsing, disambiguation, indexing, search.
VIRGINIJUS DADURKEVIČIUS
Institute of Applied Research
Vilnius University
M. K. Čiurlionio g. 29, 03100 Vilnius, Lithuania
[email protected]
[email protected]
BENDRINĖ KALBA 90 (2017) www.bendrinekalba.lt ISSN 2351–7204