Fonctionnement d'un correcteur grammatical

Avant de décrire la structure de LanguageTool, nous pouvons commencer par expliquer le fonctionnement des correcteurs grammaticaux de manière générale.

Le texte à vérifier est d'abord découpé en phrases, puis les phrases en mots. C'est la tokenisation.

Vient ensuite la phase d'étiquetage morpho-syntaxique (ou tagging). Chaque mot se voit attribuer une ou plusieurs étiquettes (tags) contenant des informations telles que la catégorie morpho-syntaxique (verbe, nom, adjectif, pronom, etc), ainsi que le genre et le nombre (pour les noms, les adjectifs...), le temps, le mode, la personne, etc... pour les verbes.

Lors du tagging, les très nombreux mots ambigus reçoivent plusieurs tags. Une désambiguïsation est nécessaire pour limiter le nombre d'étiquettes de chaque mot et améliorer par la suite la détection de fautes de grammaire.
Certains correcteurs utilisent une méthode probabiliste pour désambiguïser les mots. Ils nécessitent un corpus d'apprentissage sans erreurs et étiqueté avec les informations morpho-syntaxiques. Ils calculent alors la probabilité que tel mot ait tel tag plutôt qu'un autre, ou encore la probabilité qu'un mot ait un certain tag en fonction des tags des mots qui l'entourent. Lors du tagging, ces probabilités sont appliquées aux mots du texte à analyser et chaque mot reçoit alors le tag qui correspond à la plus forte probabilité.
Cette méthode est contraignante dans la mesure où la détection des fautes est très dépendante du corpus ayant servi à l'apprentissage. Par ailleurs, le corpus étiqueté nécessaire doit être le plus grand possible. Il n'en existe pas forcément de disponible ou de convenable, et la constitution d'un tel corpus est très coûteuse.
Une autre méthode consiste à utiliser des règles manuelles de désambiguïsation sous forme d'expressions régulières, basées sur le contexte immédiat. Cette méthode est plus contrôlable que la méthode statistique, mais elle nécessite des règles descriptives qui doivent être suffisamment nombreuses pour couvrir le plus de cas possibles, des règles qui sont rédigées manuellement et donc longues à produire, et qui ne peuvent par ailleurs pas être exhaustives.
Certains correcteurs combinent les 2 méthodes, d'autres ne font pas de désambiguïsation.

Une fois l'étiquetage terminé, commence alors l'étape de détection des erreurs. Il existe là encore deux manières de procéder.
Certains correcteurs utilisent des règles prescriptives et d'autres des règles d'erreurs. Les premiers comparent donc le texte avec une liste de formes correctes. Dans le cas où ils ne trouvent pas de correspondance, ils détectent une erreur. Les seconds, au contraire, comparent le texte avec des règles décrivant des erreurs. S'il y a correspondance, c'est qu'il y a une faute.
Dans les deux cas, plus il y a de règles, meilleure sera la détection. Mais il est impossible de prévoir et donc de décrire toutes les erreurs possibles. Il y aura donc potentiellement toujours des erreurs non décrites dans les règles, non détectables par le correcteur, et donc beaucoup de silence.
Les règles de grammaire sont moins nombreuses mais tout de même difficiles à rédiger de manière exhaustive, et tout ce qui ne correspond pas à une règle étant considéré comme une faute, il peut y avoir beaucoup de bruit, c'est-à-dire beaucoup de détections d'erreurs qui n'en sont pas.

Important announcement: Join the Nuxeo team and contribute to the Nuxeo project! We have open positions in France and the UK for open source Java EE developers and sales engineers, both junior and senior.

Like this post? Share it:

Posted by Agnes Souque @ 03/21/2007 04:24 PM. - Categories: indesko, openoffice -  0 comments

Nuxeo Bloggers: Log in!
Nuxeo - Indesko - Nuxeo 5 Project
All content is copyrighted by their author.
CPSSkins is Copyright © 2003-2006 by Jean-Marc Orliaguet. | CPS is Copyright © 2002-2006 by Nuxeo SAS.