Bilan du travail sur le correcteur grammatical LanguageTool


Fri 13 July 2007 By nuxeo





J'ai terminé mon premier travail sur LanguageTool, qui consistait à adapter
cet outil à la correction grammaticale du français. Voici un résumé qui
présente la fin de ce travail.


Travail sur les règles


Grâce à Marcin Miłkowski qui a développé un désambiguïseur selon mes
indications, j'ai pu convertir au formalisme de LanguageTool toutes les
règles de désambiguïsation et de correction écrites pour An Gramadóir.
Le langage XML m'a permis de beaucoup simplifier les règles et de réduire
leur nombre en faisant des regroupements.



J'ai par la suite analysé un corpus de fautes (V. Lucci et A. Millet, 1994,
L'orthographe de tous les jours, enquête sur les pratiques
orthographiques des français
, Éditions Champion) afin d'en extraire de
nouvelles règles de correction.



LanguageTool détecte actuellement des erreurs :

  • de proximité phonétique (confusion d'homophones : ça/sa, ont/on,
    cet/cette/c'est/ces,
    etc.)


d'accord dans le syntagme nominal (en genre et en nombre)

  • dans le groupe verbal (confusion infinitif et participe passé, forme
    conjuguée et participe passé, etc.)

  • d'accord sujet-verbe (pronom personnel sujet ou syntagme nominal simple
    : déterminant + nom)



Limites du formalisme


Avec des tests effectués lors du travail sur les règles, j'ai pu constater
les faiblesses du formalisme de LanguageTool. Il se fonde sur le
pattern-matching rigide, ce qui implique que si les modèles décrits
dans les règles ne correspondent pas exactement au texte, au mot près, les
règles deviennent inefficaces et génèrent du silence dans la détection des
fautes. Par ailleurs, il faut prévoir toutes les combinaisons de mots
erronées. On obtient ainsi une explosion combinatoire des règles, surtout
pour les syntagmes nominaux.

Le formalisme est aussi à l'origine de beaucoup de bruit (mauvaises
détections). Les mots mal étiquetés ou ambigus, par exemple, provoquent des
fausses alarmes. Nous avons des détections redondantes lorsque certaines
erreurs sont détectées par plusieurs règles différentes simultanément.
Enfin, les règles se fondant sur le contexte immédiat des mots, une erreur
sur un mot peut entrainer de fausses détections en cascade sur les autres
mots du contexte.


Nouveau formalisme


Pour dépasser les limites de LanguageTool, j'ai développé un nouveau
formalisme, fondé sur la segmentation en chunks et l'unification de
structures de traits. Je mêle ici une théorie syntaxique contextuelle
(chunks, Abney) et une théorie syntaxique générativiste (grammaire
d'unification, Chomsky). Cette combinaison est atypique, mais elle permet
d'aller plus loin dans la correction grammaticale, en délimitant des zones
de calculs à l'intérieur desquelles tout doit s'accorder. Il n'est alors
plus nécessaire de décrire toutes les combinaisons de mots erronées. Au lieu
d'énumérer les fautes d'accord, nous détectons les incohérences au sein des
syntagmes.


Conclusion


Mon travail de mémoire de Master Recherche permet de doter OpenOffice.org de
la correction grammaticale pour le français. Il reste cependant beaucoup de
travail en perspective. Il faut notamment développer un outil capable de
prendre en charge le nouveau formalisme, et également constituer et analyser
un corpus de fautes pour modéliser de nouvelles règles de correction.


Vers une autre approche de la correction grammaticale


Pour améliorer encore la correction grammaticale, j'envisage une autre
approche. Elle consiste à effectuer simultanément l'analyse morphosyntaxique
et la correction grammaticale au fur et à mesure de la lecture de la phrase.
C'est une approche gauche-droite qui se fonde sur le principe de latences
(Tesnières, 1959). Elle permet de déclarer ce qui est attendu après un mot
ou un syntagme et de détecter ainsi les incohérences, au lieu d'énumérer les
fautes possibles.

Cette approche permet aussi de sortir du cercle vicieux en correction
grammaticale. En effet, pour que les fautes soient bien détectées, les mots
doivent être bien étiquetés morphosyntaxiquement. Mais pour que le calcul
des étiquettes soit correct, le texte ne doit pas contenir de fautes...

(Post originally written by Agnes Souque on the old Nuxeo blogs.)


Category: Product & Development