Nous avons pu noter, à travers quelques tests, que les points faibles de
LanguageTool, pour la correction grammaticale du français en particulier,
sont l'absence de désambiguïsation et les règles de détection des
fautes.

Une partie de notre travail va donc consister à réaliser un outil de
désambiguïsation qui nous permettra de réduire le nombre de tags des mots
ambigus (sans toutefois le limiter nécessairement à un tag unique). Nous
pourrons nous aider pour cela des règles de désambiguïsation écrites par Myriam
Lechelt pour Gramadoir.

Pour ce qui est des règles d'erreurs, nous allons utiliser l'approche
proposée par
Myriam, à savoir la segmentation en chunks et l'unification de
structures de traits. Voici une petite explication sur ce qui se cache
derrière ces deux notions.

Qu'est-ce qu'un chunk
?


Un chunk, ou syntagme, est "une unité constituée d'une série de mots tous
contigus les uns aux autres et regroupés autour d'une tête lexicale, le plus
souvent un nom ou un verbe, plus rarement un adverbe, un adjectif ou un
pronom.
" (GIGUET, 1998).

Les chunks sont délimités grâce aux mots grammaticaux, à la ponctuation ou
aux marques morphologiques. En général, un chunk commence par un mot
grammatical ou juste après une ponctuation, et se termine juste avant une
ponctuation ou le mot grammatical suivant, qui marquent le début d'un
nouveau syntagme.

Par exemple, un syntagme nominal contient obligatoirement un nom (tête du
chunk) et commence généralement par un déterminant. Un syntagme verbal
commence par un verbe, parfois un pronom personnel ou un adverbe de
négation, et contient nécessairement un verbe.

Un chunk dépend généralement de son prédécesseur, sauf dans le cas d'un
chunk verbal. Ce dernier dépend du chunk sujet, qui correspond en principe
au premier syntagme à gauche, à condition qu'il soit nominal.

La structure interne d'un chunk est relativement figée. Les mots
fonctionnels qu'il contient entretiennent des relations de dépendance avec
la tête lexicale et les contraintes d'accords sont assez fortes. Par contre,
au sein d'une phrase, les différents chunks sont permutables. Dans l'exemple
suivant extrait du Bourgeois Gentilhomme de Molière, nous pouvons voir que
la phase est constituée de cinq syntagmes que l'on peut permuter, mais au
sein desquels les éléments ont une place fixe :

[Belle Marquise], [vos beaux yeux] [me font] [mourir] [d'amour].
[D'amour] [mourir] [me font], [belle Marquise], [vos beaux yeux].
[Vos yeux beaux] [d'amour] [me font], [belle Marquise], [mourir].
[Mourir] [vos beaux yeux], [belle Marquise], [d'amour] [me font].
[Me font] [vos yeux beaux] [mourir], [belle Marquise], [d'amour].

Un chunk dépend généralement de son prédécesseur, sauf dans le cas d'un
chunk verbal.

Qu'est-ce que l'unification de structure de traits ?


Les structures de traits décrivent chaque élément d'une phrase un énumérant
ses caractéristiques linguistiques, syntaxiques ou sémantiques, sous la
forme de listes de couples trait-valeur.
Un trait peut avoir pour valeur un ou plusieurs couples trait-valeur. Dans
ce cas, la structure de trait est dite récursive.

L'unification consiste à combiner les informations (sous forme de
structures de traits) de deux éléments d'une phrase et permet de vérifier
leur compatibilité.
Si 2 structures de traits ont les mêmes valeurs pour des traits identiques,
alors elles peuvent s'unifier. Si 2 traits identiques n'ont pas la même
valeur dans les 2 structures de traits, alors l'unification échoue. Si un
trait n'est présent que dans une des deux structures, cela n'influe pas sur
l'unification, qui échoue dans le cas de valeurs contradictoires pour un
même trait, mais pas dans le cas d'absence d'un trait.

Il y a unification entre les et chats dans l'exemple 1
ci-dessous, mais pas entre les et chat dans l'exemple 2, car
les traits "nombre" ont deux valeurs contradictoires :

 

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