OK
AJAX error!

Les forumsDictionnaire[Hunspell] La suggestion de l’orthographe correcte

[Hunspell] La suggestion de l’orthographe correcte

Un correcteur orthographique ne se contente pas de reconnaître les mots corrects et de souligner les formes erronées, il doit aussi être capable de suggérer l’orthographe correcte.

Pour ce faire, nous disposons de peu de moyens. Dans le fichier des affixes, qui définit les règles de déclinaison-conjugaison, il y a quelques commandes qui permettent d’aider le correcteur à suggérer les formes correctes.

TRY - Cette ligne indique les caractères avec lesquels jouer:

TRY aàâäbcçdeéèêëfghiîïjklmnoôöpqrstuùûüvwxyzæœAÀÂÄBCÇDEÉÈÊËFGHIÎÏJKLMNOÔÖPQRSTUÙÛÜVWXYZÆŒáíÿñåóşăã



Ces lignes associent les caractères affiliés :

MAP 12
MAP aàâä
MAP eéèêë
MAP iîïy
MAP oôö
MAP uùûü
MAP cç
MAP AÀÂÄ
MAP EÉÈÊË
MAP IÎÏY
MAP OÔÖ
MAP UÙÛÜ
MAP CÇ



REP - Cette commande associe des groupes de caractères :

REP 60
REP f ph
REP ph f
REP c qu
REP qu c
REP k qu
REP qu k
REP x ct
REP ct x
REP bb b
REP b bb
REP cc c
REP c cc
REP ff f
REP f ff
REP ll l
REP l ll
REP mm m
REP m mm
REP nn n
REP n nn
REP pp p
REP p pp
REP rr r
REP r rr
REP ss s
REP s ss
REP ss c
REP c ss
REP ss ç
REP ç ss
REP tt t
REP t tt
REP œ oe
REP oe œ
REP æ ae
REP ae æ
REP ai é
REP é ai
REP ai è
REP è ai
REP ai ê
REP ê ai
REP ei é
REP é ei
REP ei è
REP è ei
REP ei ê
REP ê ei
REP o au
REP au o
REP o eau
REP eau o
REP disez dites
REP fesez faites
REP faisez faites
REP sanctionnable punissable
REP questionnable discutable
REP décrédibilis discrédit
REP antitartre détartrant
REP puit puits


Comme vous le voyez, il est aussi possible de suggérer la correction de barbarismes ou d’erreurs récurrentes.


KEY - Cette commande permet de décrire le clavier (et devrait permettre au correcteur de mieux repérer les erreurs de frappe) :

KEY azertyuiop|qsdfghjklmù|wxcvbn|aéz|yèu|iço|oàp|aqz|zse|edr|rft|tgy|yhu|uji|iko|olpm|qws|sxd|dcf|fvg|gbh|hnj


KEY est une nouvelle fonctionnalité de Hunspell qui ne servira que dans les prochaines versions du dictionnaire et d’OOo.


MAXNGRAMSUGS - Cette commande permet d’étendre le nombre de suggestions faites par le correcteur.

MAXNGRAMSUGS num


Cette valeur n’est pas définie dans le fichier des affixes. Le nombre d’entrées suggérées est donc celui par défaut.
le 20 juillet 2010 à 15:39
Comparaison des correcteurs d’OOo et de Word, par Agnès Souque :
fr.openoffice.org… (2006)

L’analyse datant de 2006, les résultats devraient être meilleurs pour OOo, puisqu’à cette époque, OOo était très mauvais avec les mots accentués et les doubles consonnes. Les lignes REP et MAP dont j’ai parlé plus haut ont grandement amélioré la suggestion sur cet aspect, mais c’est encore perfectible.
le 20 juillet 2010 à 15:40
Comment améliorer les suggestions du correcteur orthographique ?

Lorsque nous tapons francois, le correcteur ne propose ni François, ni français ...
Autre exemple détérer ne suggère pas déterrer alors que détèrer nous le propose !
le 20 juillet 2010 à 15:41
C’est plutôt énigmatique.
Pourquoi, avec détèrer, le correcteur arrive à suggérer déterrer, mais pas avec détérer, je n’en ai pas la moindre idée.

En revanche, le domaine des commandes MAP et REP demande à être exploré. Pour l’instant, je me suis contenté de créer ce qui me semblait évident, mais je n’ai jamais fait de tests poussés.

Par exemple, rien qu’en ajoutant la ligne:

MAP fF


Le correcteur parvient à suggérer François au lieu de francois.
le 20 juillet 2010 à 15:41
J’ai discuté de ça avec l’auteur de Hunspell.

Voilà ce qu’il m’a dit:

Hunspell utilise un mélange de plusieurs algorithmes.

L’algorithme basé sur la ligne TRY recherche toutes les suggestions possibles à une distance de Levenshtein de 1 (fr.wikipedia.org…) depuis le mot mal orthographié.

Dans le cas, d’une substitution réussie avec cet algorithme, il n’y a pas de recherche dans le dictionnaire.
La raison principale est le gain de temps. Mais les futures versions de Hunspell ne contiendront pas cette limitation.

La prochaine version de Hunspell fera une recherche dans le dictionnaire, même si l’algorithme de TRY trouve quelque chose. Ça étendra donc le domaine de recherche.

Les lignes MAP et REP ne sont pas utilisées par l’algorithme de suggestion basé sur le dictionnaire. C’est pourquoi les caractères accentués sont aussi éloignés qu’un autre du même caractère accentué.
Et, dans cet algorithme, l’ajout ou le retrait d’une lettre est considéré comme plus coûteux que la substitution d’une lettre par une autre. C’est pourquoi changer, par exemple, mm en m sera moins bien évalué que changer mm en me.
le 20 juillet 2010 à 15:41
Bon sang! Je devais planer à des altitudes élevées quand j’ai lu la doc de Hunspell. Je viens de m’apercevoir que la commande PHONE ne nécessite pas d’accoler à chaque mot du dico une transcription phonétique pour fonctionner.
Voilà ce que c’est que de lire la doc trop vite (et surtout de supposer des choses qui ne sont pas écrites). Il faut dire que le dictionnaire de référence (le hongrois, car l’auteur de Hunspell est hongrois) n’utilise pas cette commande. Du coup, je n’y avais pas prêté une grande attention, puis j’ai oublié. Mais le dictionnaire anglais sorti il y a quelques mois fait usage de ce système, et m’a montré que je n’ai pas assez prêté d’attention à ce point, vraiment pas.

En bref, il est donc possible d’écrire des règles de transcription des mots en un langage phonétique simplifié. En fait, c’est à la doc d’Aspell que celle de Hunspell renvoie : aspell.net…
le 01 décembre 2010 à 02:05
Premier jet rapide.
Je poste sur Pastebin pour une question de lisibilité.
pastebin.com…
le 01 décembre 2010 à 18:55
Quelques tests, très inspirés du lien ci-dessus (fr.openoffice.org…).

fautes de frappe : frzançais frannçais françamis frnçais ftançais frapçais françias
ç : francais, hamecon, tracage, ca
accents : elève, éléve, rejete, évéché,
phonétique 1 : helicoptaire metodique carro
phonétique + : caçoulé caro phonnaithique

A l'air parfait sur les fautes de frappe, KEY est une excellente idée de Hunspell.
Pas de problème sur les ç et les accents, les règles MAP marchent bien.
Phonétique, les règles REP donnent déjà d'excellents résultats lorsqu'il n'y a qu’une faute. Par contre, la suggestion s'embrouille avec deux fautes. Exemple (sans règles PHONE).

caçoulé
0: cagoulé
1: camouflé
2: capsulé
3: caroublé
4: calculé

caro
0: faro
1: cari
2: car
3: cargo
4: caron
5: haro
6: calo
7: cars
8: taro
9: car o

On voit l'effet de la force brute de la distance levenhstein fr.wikipedia.org… (nombre de permutations pour arriver au mot), pas très pertinent. Toutefois, même avec des règles PHONE, je ne vois pas d'amélioration de la suggestion Hunspell. Afin de diminuer les risques de confusion au minimum, je suis allé voir dans la distribution Hunspell source, le test “phone”. Il marche bien avec une seule erreur phonétique, beaucoup moins avec plusieurs (dans phone.wrong, essayer brazillia, brasylya…), , comme s'il les règles PHONE était appliquées comme des REP (une seule). Même avec un dictionnaire très restreint, les règles PHONE ne semblent pas appliquées de manière à ce qu'un équivalent phonétique soit prioritaire sur les autres mots. Par ailleurs, je n'ai pas constaté de mauvais effet sur la mémoire, au moins, cela ne nuit pas, mais est-ce que cela ajoute quelque chose ? Cela demande à être vérifié par quelqu'un d'autre.

Remarque, dans en_AU.aff (ou hunspell/tests/phone, recopié de l'anglais Aspell), les règles sont accompagnées d'un commentaire avec un mot exemple, permettant de comprendre leurs raisons.
le 04 décembre 2010 à 18:29
Oui, je n’ai constaté aucune amélioration avec les commandes PHONE, mais pour l’instant je vais considérer que je m’y suis mal pris, je vais tenter autre chose.
Finalement, il est probablement utile de phonétiser les entrées du dictionnaire.
le 04 décembre 2010 à 19:24
Je ne sais pas si la liste d’origine est à jour après tant d’années mais que pensez vous d’ajouter les commandes :
REP t th
REP th t

Cela pourrait permettre au correcteur d’envisager tous les oublis de H muets après un T ou les ajouts erronés d’un H muet là où il n’y en a pas.
Une autre limitation de la distance de Levenshtein* est son application sur les mots de 2 ou 3 lettres . Même avec une valeur de 1, le nombre de substitutions possibles est parfois très grands et on se retrouve parfois avec une liste de suggestions qui dépasse l’écran. Le pire, c’est que la plupart ne sont pas pertinentes.


* Note : voir même tout simplement de la substitution de caractère sans autre règle en complément.
le 25 février 2016 à 16:08
J’ai ajouté les deux lignes REP.
Quant au reste, malheureusement, nous avons peu de moyens de contrôle sur le moteur de suggestion. Par ailleurs, l’efficacité de ces moyens est discutable. Bref…
le 26 février 2016 à 10:19

Notification par e-mail    0