2 puntos por GN⁺ 2025-08-04 | Aún no hay comentarios. | Compartir por WhatsApp
  • El tratamiento de la declinación de nombres personales en islandés cambia a 4 formas según el contexto
  • Se desarrolló una librería de JavaScript basada en datos con capacidad de devolver el caso gramatical adecuado para el nombre ingresado
  • Guardar todos los nombres directamente generaba aumento de tamaño y faltantes de datos, por lo que se resolvió usando una estructura trie y técnicas de compresión
  • Gracias a la compresión trie, es posible inferir automáticamente a partir de patrones comunes y se alcanzó una base de datos muy pequeña que cubre más del 80% de los datos
  • En situaciones normales muestra más de 74% de precisión, y para el sector público y casos donde se requiere precisión se ofrece una versión strict aparte

Antecedentes del problema

  • En las interfaces en islandés, mostrar nombres personales presenta dificultades debido a la declinación
  • En islandés, los nombres cambian de forma según los casos gramaticales nominativo, acusativo, dativo y genitivo
  • La base de datos suele guardar normalmente los nombres en forma nominativa, y surgen dificultades cuando se requiere otro caso según el contexto
  • Si no se usa la forma correcta, suena poco natural o forzado para un hablante nativo

Recolección y limpieza de datos

  • Islandia dispone de los datos abiertos DIM (Database of Icelandic Morphology) administrados por Árnastofnun
  • Los datos de declinación de nombres pueden prepararse como CSV en Kristín’s Format (formato K)
  • Aunque el conjunto completo DIM tiene 7 millones de filas y es excesivamente grande, se filtran 4,500 nombres personales oficialmente aprobados, y se pueden obtener datos de declinación para poco más de 3.600
  • Para cada nombre se puede construir una matriz con las formas desde nominativo hasta genitivo

Estructura base de la librería

  • La implementación inicial comenzó con una función applyCase para retornar la forma adecuada a partir del arreglo nombre-formas de caso
  • Sin embargo, la carga mediante simple lectura de arreglo ocupaba 30kB gzipped
  • Tiene la limitación de que no responde para nombres que no están incluidos en los datos

Eliminación de duplicados y extracción de patrones

  • Se extrajeron prefijos comunes entre las 4 formas de cada nombre y se almacenaron solo los conjuntos de sufijos (suffix encoding) para minimizar duplicados
  • Se observó que hay muchos nombres que comparten el mismo patrón de declinación

Introducción de trie para coincidencia de patrones

  • Se optimiza la asignación de valores para grupos de nombres que comparten patrones mediante una estructura trie (inserción inversa por sufijo)
  • Se almacena la información de declinación solo una vez bajo patrones comunes de terminación (name endings), manteniendo alta capacidad de predicción para nombres nuevos

Compresión y optimización del trie

  • Cuando los valores son iguales en cada hoja del subárbol, se asigna el valor al nodo padre y se eliminan los hijos para comprimir el árbol
  • Esto redujo el número de nodos hasta un 15,4%, y el tamaño bajó a 4.01kB
  • Una compresión de segundo nivel que fusiona hojas hermanas con valores idénticos en un solo nodo llevó a 3.27kB

Rendimiento y generalización del trie

  • Al ingresar un nombre nuevo, es posible declinar automáticamente usando patrones similares
  • En la práctica, con nombres no conocidos mostró 74% de declinación correcta y 26% de error; la tasa de error para usuarios reales fue solo 0.34%
  • Cuanto mayor es la regularidad y la exhaustividad de los datos, mayor es el beneficio de la compresión y la precisión de inferencia automática

Librería real y aplicación

  • Finalmente se distribuyó la librería comprimida con trie beygla
  • Se ofrece un tamaño mínimo de 4.46kB y un módulo strict más estricto y completo de 15kB
  • En contextos que requieren 100% de precisión, como documentos públicos, se puede elegir la versión strict; en aplicaciones web comunes, elegir la versión ligera

Conclusiones y potencial de expansión

  • La compresión de datos de patrones de declinación de lenguas con trie puede aplicarse a la automatización de nombres, direcciones y otros sustantivos en otras lenguas flexivas, además del islandés
  • La combinación de datos con alta regularidad y compresión trie es una forma de maximizar la eficiencia de datos y rendimiento en la automatización de la flexión morfológica

Agradecimientos

  • En el desarrollo de beygla hubo retroalimentación de diversos expertos y optimizaciones
  • Una compresión adicional del trie redujo el tamaño de 3.43kB a 3.27kB

Resumen

  • Presenta un caso de automatización de la declinación de nombres islandeses mediante la miniaturización automática basada en patrones con una estructura trie
  • Sugiere una estrategia práctica de procesamiento de datos con un equilibrio de tamaño-precisión bien planteado

Aún no hay comentarios.

Aún no hay comentarios.