Avant de nous lancer dans la conception d'un outil de désambiguïsation,
prenons le temps de faire un petit point sur ce sujet. Nous verrons d'abord
quelles sont les différentes méthodes existantes pour désambiguïser les mots
polycatégoriels (appartenant à plusieurs catégories morpho-syntaxiques).
Nous parlerons ensuite de la méthode choisie par Myriam,
ainsi que des problèmes qu'elle a rencontrés, et pour finir nous ferons des
suggestions pour résoudre certaines difficultés et améliorer la
désambiguïsation.

Méthodes de désambiguïsation


Les désambiguïseurs sont de deux types. Certains sont probabilistes et
d'autres à base de règles.
Ils ont tous deux des avantages et des
inconvénients.

1. Méthode statistique


Des probabilités sont calculées à partir d'un apprentissage sur un corpus
étiqueté
. Selon le système, les probabilités calculées sont celles de la
contiguïté de 3 tags (ex.: GRAC), de 2 tags (ex.: première version de
LanguageTool), ou celles que tel mot prenne tel tag.

Cette méthode a l'avantage d'être automatique et donc relativement facile à
mettre en place. Un outil probabiliste peut par ailleurs être facilement
appliqué à des langues diverses. Il suffit de fournir le corpus adéquat pour
l'apprentissage des probabilités.

Par contre, la désambiguïsation est par la suite entièrement dépendante
du corpus sur lequel a été effectué l'apprentissage.
Ce corpus ne doit
pas être trop spécialisé et doit être suffisamment grand pour contenir le
maximum de structures, tout en ne pouvant jamais les contenir toutes. Qui
plus est, il n'existe pas pour le français par exemple de corpus étiqueté
qui soit librement utilisable, ce qui constitue donc un obstacle.

Par ailleurs, en cas d'erreur de désambiguïsation, il n'y a
aucun recours possible au texte. Cette méthode n'est donc pas vraiment
maîtrisable.

2. Méthode par règles


Les règles sont construites manuellement, elles se présentent
généralement sous forme d'expressions régulières
(ex.: Gramadoir) et
portent sur le contexte immédiat.
Comme les règles de détection d'erreurs, elles fonctionnent sur le
système du "pattern matching".
Le mot et son contexte proche doivent
donc correspondre exactement aux descriptions faites dans les règles pour
pouvoir être désambiguïsés.
Si les systèmes appliquent les règles dans l'ordre où elles apparaissent
dans le fichier, elles doivent être ordonnées (les plus générales en
dernier).

L'avantage de cette méthode, par rapport à la méthode statistique, est
qu'elle est bien plus maitrîsable. En cas d'erreur de désambiguïsation, il
est facile de retrouver et modifier la règle qui pose problème. Il est par
ailleurs possible de rajouter de nouvelles règles ou d'en supprimer selon
les besoins.

Par contre, cette méthode requiert la rédaction, longue et coûteuse, de
nombreuses règles.

Désambiguïsation pour Gramadoir


Myriam
Lechelt a réalisé un important travail sur la désambiguïsation dans le
cadre de l'adaptation de Gramadoir au français.
Elle a réalisé des règles de désambiguïsation dont elle a pu tester
l'efficacité, en terme de décision (nombre de mots désambiguïsés) et de
précision (nombre de mots désambiguïsés correctement), avec les outils de la
campagne d'évaluation GRACE.

Ces règles sont de trois types :


  • Au début du fichier se trouvent les règles particulières, qui
    désambiguïsent des cas bien précis
    . Ces règles ne fonctionnent que sur
    contexte non ambigu (au niveau de la catégorie morpho-syntaxique).

  • Viennent ensuite les règles par défaut. Ces règles sont
    appliquées par exemple lorsque qu'un contexte ambigu empêche l'application
    des règles particulières. L'utilisation de règles par défaut est suggérée
    par Jacques Vergne et Emmanuel Giguet (Regards théoriques
    sur le tagging
    , 1998, GREYC, Université de Caen).

  • Pour finir, des règles brutes très générales désambiguïsent tout (ou
    presque)
    ce qui n'a pas pu être désambiguïsé avec les règles
    précédentes. Ces règles sont nécessaires pour que plus aucun mot ne soit
    ambigu, car sinon la correction échoue. Le système de Gramadoir ne tolère
    en effet aucune ambiguïté.


Avec ses règles,
Myriam a pu désambiguïser 98,88% des mots (décision), dont 84,49% avec
la bonne étiquette (précision), ce qui est plutôt encourageant même s'il
reste encore beaucoup de travail et de problèmes à résoudre.

Par exemple, la désambiguïsation de la négation ne pas, ainsi que
des modes et des personnes pour les verbes, pose un problème qui n'a pas été
résolu.
Ce problème est dû notamment au fait que la désambiguïsation utilise le
contexte immédiat du mot à désambiguïser
. Dans le cas des modes, le
contexte immédiat ne suffit pas et une analyse de la phrase entière est
nécessaire pour désambiguïser.
Par ailleurs, le contexte peut parfois être inconnu, ambigu ou faux, et
dans ce cas la désambiguïsation est mal ou pas du tout effectuée.
Une
règle disant que "si pas est précédé de ne, alors pas
est adverbe de négation" ne désambiguïsera que si elle trouve ne dans
le contexte. Or, l'oubli de ne est justement une faute très fréquente
en français.

Suggestions d'amélioration


La désambiguïsation a pour but de définir pour chaque mot une étiquette
unique, parmi celles attribuées par le tagger. Mais une désambiguïsation
erronée, conduisant donc à un mauvais étiquetage, peut entraîner de fausses
détections lors de la vérification grammaticale. Or, le bruit est très
gênant pour l'utilisateur, bien plus que le silence.

Ne vaudrait-il pas mieux laisser plusieurs étiquettes dans certains cas ?
En particulier dans le cas d'une ambiguïté au niveau des traits pour une
même catégorie ? Nous pourrions limiter la désambiguïsation aux seules
catégories, et non aux tags complets.

Par exemple, si l'utilisateur a écrit une livre, le désambiguïseur
déduira sans doute sans difficulté, grâce au déterminant, que livre
est ici un nom et non le verbe livrer. Mais une ambiguïté persiste
alors au niveau du genre de ce nom, puisqu'il peut être masculin ou féminin.
Si une règle par défaut attribue le tag "N sing masc" à livre, lors
de la détection d'erreurs, le système va repérer un problème d'accord entre
une et livre, alors que l'utilisateur n'avait en fait pas
commis d'erreur. En laissant l'ambiguïté au niveau du trait genre, aucune
erreur n'aurait été détectée.

L'avantage de cette méthode est qu'elle privilégie le silence au bruit
.
Elle peut en effet laisser passer de vraies fautes puisque l'étiquetage est
moins précis, mais elle permet aussi de réduire les mauvaises détections
dues à un mauvais étiquetage. La faute est détectée seulement si aucune des
étiquettes ne convient.

L'intérêt réside aussi dans la résolution partielle des problèmes dus à
un contexte faux
. Il faut en effet garder à l'esprit que le tagging
s'effectue sur des phrases potentiellement fausses
, puisque le but est
justement d'en vérifier la grammaire. Ainsi, si nous avons le syntagme le
plante
, (plante pouvant être un nom ou un verbe) avec une règle
qui dit que "si un nom féminin singulier ambigu est précédé d'un déterminant
féminin singulier, alors c'est un nom féminin singulier", dans ce cas la
règle ne correspond pas puisque le déterminant est masculin. La
désambiguïsation n'est donc pas effectuée.
En ne travaillant qu'avec les catégories des mots ambigus, on aurait une
règle du type : "si un nom ambigu est précédé d'un déterminant, alors c'est
un nom". Dans ce cas, la règle de désambiguïsation peut s'appliquer.

Par contre, LanguageTool fonctionne actuellement d'une manière différente
de celle que nous venons d'évoquer, à savoir la non application d'une règle
d'erreur si un des tags ne lui correspond pas. En effet, lorsqu'il rencontre
un mot ambigu (il n'a pas de désambiguïseur), il essaye d'appliquer les
règles à tous les tags du mot. Il suffit qu'un seul d'entre eux corresponde
à la règle pour qu'elle s'applique (cf.
test des règles
). Il faudrait au contraire que la règle ne
s'applique que si tous les tags lui correspondent. Autrement dit, une seule
étiquette ne remplissant pas les conditions de la règle devrait suffire à
empêcher son application.

Par ailleurs, la désambiguïsation pourrait aussi être améliorée en
utilisant des règles de déduction négative, c'est-à-dire des règles
permettant de dire que, dans tel contexte, un mot ne peut pas avoir telle
étiquette.

Gramadoir ne prend pas en charge ce genre de règles. Il n'utilise que la
déduction "affirmative", pour laquelle il est nécessaire d'écrire des règles
parfois nombreuses pour énumérer tous les contextes dans lesquels tel mot
prend tel tag. Il serait utile dans ces cas-là de pouvoir utiliser des
règles fonctionnant sur le principe de l'élimination.
Cependant, tout comme l'application des règles "affirmatives" dépend du
contexte immédiat, les règles négatives dépendent de l'exhaustivité de la
liste des tags attribués à chaque mot. En effet, il faut impérativement que
l'étiquette attendue fasse partie de la liste. Or les lexiques ne sont pas
nécessairement exhaustifs.

Conclusion


Nous voyons un peu mieux ce qu'il en est de la désambiguïsation, les
différentes manières de la réaliser, avec leurs avantages et leurs
inconvénients, les problèmes qui peuvent se poser, les solutions et
améliorations que l'on peut apporter.
Nous pouvons donc maintenant réfléchir plus sérieusement à la manière dont
nous allons construire le désambiguïseur que nous implanterons dans
LanguageTool, pour traiter les nombreux cas d'ambiguïté morpho-syntaxique
que compte la langue française.

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