Projet CORTINA

Fonctionnalités


Vous pouvez essayer les démonstrateurs ou retourner à la page principale.

Contenu


Fonctionnalités du correcteur orthographique

Le but du projet CORTINA est de réaliser un prototype de correcteur orthographique pour la langue luxembourgeoise. Dans un premier temps, notre objectif est d´implanter un correcteur offrant certaines fonctionnalités de base. Ces fonctionnalités se résument comme suit :


Vérification de l´orthographe

Pour vérifier l´orthographe des mots, le correcteur dispose d´une liste de mots appelée « dictionnaire ». Ce dictionnaire contient toutes les formes fléchies des mots. Plus spécifiquement, on y retrouve :

Un mot est considéré comme étant correctement orthographié s´il appartient au dictionnaire. S´il n´y appartient pas, il est considéré comme étant mal orthographié. Dans ce dernier cas, le correcteur propose (si possible) des alternatives au mot mal orthographié.


Proposition d´alternatives

Pour proposer des alternatives lorsqu´un mot est mal orthographié, le correcteur doit sélectionner, dans le dictionnaire, une liste de mots « proches » du mot mal orthographié. Cette liste est construite comme suit :

  1. Le correcteur orthographique calcule une « distance » entre les mots du dictionnaire et le mot mal orthographié.

  2. Les mots du dictionnaire dont la distance au mot mal orthographié est en dessous d´un « seuil acceptable », sont sélectionnés.

  3. Les « quelques premiers » mots de la sélection, dans l´ordre croissant des distances, sont considérés comme alternatives « raisonnables ».

Distance entre deux mots

Le calcul de la distance fait appel à une fonction lcs, fournissant, pour deux mots, la sous-séquence la plus longue (des informations supplémentaires sur le problème de la sous-séquence la plus longue sont disponibles).

Soient m1 et m2 deux mots, un mot étant une séquence de caractères :

lcs(m1, m2) = séquence de caractères la plus longue qui est à la fois une sous-séquence de m1 et une sous-séquence de m2.

Soit m une séquence de caractères :

l(m) = nombre de caractères de la séquence m.

Soient m1 et m2 deux mots, nous définissons la distance entre ces deux mots comme suit :

distance(m1, m2) = (l(m1) - l(lcs(m1, m2))) + (l(m2) - l(lcs(m1, m2)))

De manière plus prosaïque, la distance exprime le nombre de caractères qu´il faut enlever de m1 et ajouter ensuite pour obtenir m2 (ou inversement, qu´il faut enlever de m2 et ajouter ensuite pour obtenir m1).

Seuil d´acceptabilité

Pour qu´un mot du dictionnaire puisse être sélectionné comme alternative potentielle à un mot mal orthographié, sa distance à ce dernier ne doit pas dépasser un certain seuil.

Soit m le mot mal orthographié et c une constante déterminée empiriquement, nous définissons le seuil d´acceptabilité comme suit :

seuil = min(c, l(m) + 1)

Sélection d´alternatives raisonnables

Les mots qui sont finalement sélectionnés comme alternatives sont ceux qui se trouvent à la distance la plus faible du mot mal orthographié.

Soit li la liste des mots du dictionnaire dont la distance au mot mal orthographié est inférieure au seuil d´acceptabilité (la liste étant triée dans l´ordre croissant des distances), et t(li) le nombre de mots de cette liste. Soit c une constante déterminée empriquement, le nombre n des premiers mots de li qui seront retenus comme alternatives au mot mal orthographié est défini comme suit :

n = min(c, t(li))


Optimisations

Afin d´accélérer les calculs, le correcteur procède à quelques optimisations. Ces optimisations sont de deux types :

Optimisation par normalisation

La forme « normalisée » d´un mot s´obtient en transformant toutes les lettres du mot en minuscules et en supprimant tous les accents. Ainsi, par exemple, la forme normalisée du mot « Méiglechkeet » est « meiglechkeet ».

Pour procéder à des optimisations par normalisation, le correcteur orthographique gère, à côté du dictionnaire mentionné ci-dessus, un dictionnaire dit « normalisé ». Le dictionnaire normalisé est un dictionnaire qui nous permet de connaître, pour une forme normalisée donnée, tous les mots du dictionnaire partageant cette forme normalisée.

Soit m un mot :

norm(m) = forme normalisée de m.

Grâce à cette forme normalisé, nous pouvons redéfinir la distance entre deux mots dans certains cas particuliers. Soit m1 le mot à vérifier et m2 un mot du dictionnaire :

Si norm(m1) = norm(m2) alors distance(m1, m2) = 0

Comme le dictionnaire normalisé, pour un mot à vérifier, peut fournir au correcteur la liste de tous les mots qui ont la même forme normalisée, le correcteur n´a plus besoin de calculer la distance de ces mots au mot à vérifier, la distance étant donnée par définition.

L´idée centrale de ce procédé consiste à considérer des mots, qui ne diffèrent du mot à vérifier que par les accents et le caractère majuscule ou minuscule de la première lettre, comme des alternatives de premier choix au mot à vérifier si ce dernier n´est pas retrouvé dans le dictionnaire.

Optimisation par réduction

Une deuxième façon d´optimiser les calculs consiste à réduire l´ensemble des mots dont on calcule la distance au mot à vérifier.

Soit m1 le mot mal orthographié, m2 un mot du dictionnaire et c une constante déterminée empiriquement. Le correcteur ne calcule la distance entre les mots m1 et m2 que si :

| l(m1) - l(m2) | < min(c, l(m1)/2)

L´idée centrale de ce procédé consiste à considérer qu´il est intutile de calculer la distance entre le mot à vérifier et un mot du dictionnaire si la différence de taille entre les deux mots dépasse un certain seuil.


Majuscules en début de phrase

Le correcteur orthographique traite également les débuts de phrase. Lorsqu´il détecte un point devant un mot à corriger, il vérifie si le mot qui précède le point appartient à une liste d´abréviations.

S´il s´agit d´une abréviation, le mot à corriger est traité comme tous les autres mots.

S´il ne s´agit pas d´une abréviation, le mot à corriger se trouve donc en début de phrase et le correcteur procède de la manière suivante pour la vérification :

Si le mot à vérifier commence avec une lettre majuscule et se trouve dans le dictionnaire, il est considéré comme étant correctement orthographié. Si le mot commence avec une lettre majuscule mais ne se trouve pas dans le dictionnaire, le correcteur vérifie si l´équivalent minuscule du mot se trouve dans le dictionnaire. Si oui, le mot est considéré comme étant correctement orthographié. Sinon, le correcteur calcule des alternatives au mot selon la méthode décrite ci-dessus, en prenant soin de remplacer la première lettre de chaque alternative par son équivalent majuscule.

Si le mot à vérifier ne commence pas avec une lettre majuscule mais se trouve dans le dictionnaire, le correcteur propose comme unique alternative l´équivalent majuscule du mot. Si le mot ne commence pas avec une lettre majuscule et ne se trouve pas dans le dictionnaire, le correcteur vérifie si l´équivalent majuscule du mot appartient au dictionnaire. Si oui, le correcteur propose ce mot comme unique alternative. Sinon, il calcule des alternatives selon la méthode décrite ci-dessus, en prenant soin de remplacer la première lettre de chaque alternative avec son équivalent majuscule.


« Äifeler Regel »

Les dernières versions du correcteur tiennent compte de « l´Äifeler Regel ». Des détails seront publiés prochainement.


Dernière mise à jour : mars 2001
Auteur : Pierre Mousel