2 points par GN⁺ 2025-08-04 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • La déclinaison des noms propres islandais varie selon le contexte en 4 formes
  • Développement, via une bibliothèque JavaScript basée sur les données, d'une fonction renvoyant le cas grammatical approprié pour un nom saisi
  • En stockant tous les noms, on rencontre une augmentation de taille et des problèmes de données manquantes ; l'utilisation d'une structure en trie et de techniques de compression permet de les résoudre
  • Grâce à la compression par trie, il devient possible d'inférer automatiquement à partir de motifs communs et d'obtenir une base de données extrêmement petite, couvrant plus de 80 % des données
  • En situation normale, la précision dépasse 74 %, tandis qu'une version stricte distincte (strict) est fournie pour le secteur public et les cas exigeant une grande exactitude

Contexte du problème

  • L'affichage des noms personnels dans une interface islandaise est compliqué par la déclinaison
  • Les noms islandais ont des formes différentes selon les 4 cas grammaticaux : nominatif, accusatif, datif et génitif
  • Les bases de données stockent généralement les noms sous forme nominative, ce qui pose problème quand d'autres cas grammaticaux sont nécessaires selon le contexte
  • Utiliser une forme incorrecte donne une impression peu naturelle, voire maladroite, à un locuteur natif

Collecte et nettoyage des données

  • L'Islande a publié les données DIM (Database of Icelandic Morphology), gérées par Árnastofnun
  • Les données de déclinaison des noms peuvent être transformées au format CSV Kristín's Format (K-format)
  • Les données DIM comptent 7 millions de lignes au total, ce qui est extrêmement volumineux ; en retenant seulement les noms personnels officiellement approuvés (4 500), on obtient des informations de déclinaison pour un peu plus de 3 600 noms
  • Pour chaque nom, on peut construire un tableau des formes allant du nominatif au génitif

Structure de base de la bibliothèque

  • L'implémentation initiale commence avec une fonction applyCase qui renvoyait la forme appropriée à partir d'un tableau nom~cas
  • Mais le chargement simple du tableau est massif (30 kB gzipped)
  • Elle ne pouvait pas gérer les noms qui ne sont pas inclus dans les données

Déduplication et extraction de motifs

  • J'ai extrait les préfixes communs entre les 4 formes d'un nom et j'ai stocké uniquement des ensembles de suffixes (encodage de suffixes) pour minimiser les doublons
  • Il existe beaucoup de noms suivant le même schéma de déclinaison

Introduction d'un trie pour la correspondance de motifs

  • L'adoption d'une structure trie (insertion inversée par suffixe) permet d'optimiser la correspondance de valeurs pour les groupes de noms partageant des motifs similaires
  • L'information de déclinaison n'est stockée qu'une seule fois sous les terminaisons communes des noms, tout en conservant une forte capacité de prédiction pour les noms nouveaux

Compression et optimisation du trie

  • Si la valeur est identique pour chaque feuille (leaf) d'un sous-arbre, j'affecte la valeur au nœud parent et je supprime les enfants pour compresser l'arbre
  • Ainsi, le nombre de nœuds diminue de 15,4 % et la taille est réduite à 4,01 kB
  • Une deuxième compression qui fusionne les nœuds feuilles frères ayant la même valeur atteint 3,27 kB

Performances et généralisation du trie

  • Lorsqu'un nouveau nom est saisi, la déclinaison peut être faite automatiquement grâce aux motifs similaires
  • Pour des noms inconnus en pratique, 74 % des résultats sont corrects et 26 % erronés ; pour les utilisateurs réels, le taux d'erreur n'est que de 0,34 %
  • Plus la régularité (regularity) et la couverture (comprehensiveness) des données sont élevées, plus les gains sur la précision de la compression et de l'inférence automatique sont importants

Déploiement réel de la bibliothèque

  • La librairie beygla, qui utilise un trie compressé, a été publiée
  • Elle est proposée en taille minimale (4,46 kB) et en module strict plus rigoureux et plus complet (15 kB)
  • Le version strict est destinée aux documents officiels, où 100 % de précision est exigée, tandis que la version légère convient aux applications web courantes

Conclusion et possibilités d'extension

  • La compression des données de schéma de déclinaison via trie peut être appliquée à l'automatisation des noms propres, adresses et autres noms dans plusieurs langues flexionnelles en dehors de l'islandais
  • La combinaison de données à forte régularité et de compression par trie constitue une voie optimale pour maximiser l'efficacité des données et des performances du traitement automatique de la déclinaison

Remerciements

  • Le développement de beygla a bénéficié de retours d'experts et d'une série d'optimisations
  • La compression supplémentaire du trie a réduit la taille de 3,43 kB à 3,27 kB

Résumé

  • C'est un exemple de cas d'automatisation et de miniaturisation du problème de déclinaison des noms islandais avec une structure trie basée sur des motifs
  • Cela illustre une stratégie pratique de traitement des données, en choisissant intelligemment le compromis entre taille et précision

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.