Tests de règles existantes
Nous avons rapidement testé LanguageTool avec quelques règles en français,
écrites par Myriam
Lechelt pour Gramadoir, et adaptées ensuite au formalisme de
LanguageTool.Conséquences de l'absence de désambiguïsation
Nous avons alors pu remarquer beaucoup de problèmes dans la détection des
erreurs, dus principalement à l'absence de désambiguïsation après le
tagging. En effet, les mots ambigus ont plusieurs tags et lors de
l'application des règles d'erreurs, il suffit qu'un des tags corresponde à
une règle pour que celle-ci soit appliquée, même si un ou plusieurs autres
tags du mot ne correspondent pas à cette règle.On peut constater cela avec l'exemple suivant, portant sur la confusion entre sa et ça.
Nous disposons des deux règles suivantes :
- si sa est suivi d'un verbe puis d'un mot quelconque, alors il y a une erreur et il faut remplacer sa par ça.
- si ça est suivi d'un nom puis d'un mot quelconque, alors il y a
une erreur et il faut remplacer ça par sa.
- (a) Sa voiture est en panne.
- (b)*Ça voiture est en panne.
Le mot voiture est ambigu. Il peut s'agir du nom voiture ou du verbe voiturer. Le mot a donc 2 étiquettes : "nom" et "verbe".
Lors de la vérification des phrases, tous les tags d'un mot sont pris en compte pour l'application des règles.
La règle 1. s'applique donc (à tort) à la phrase (a) car elle trouve un tag "verbe" pour voiture, précédé de sa. Il est alors suggéré de remplacer sa par ça. Il aurait fallu ici que le tag "verbe" soit ignoré et que seul le tag "nom" soit pris en compte puisque c'est celui qui correspond au mot voiture dans cet exemple.La règle 2. s'applique à la phrase (b) car elle trouve un tag "nom" pour voiture, précédé de ça. Il est alors suggéré de remplacer ça par sa. Ici, la détection est correcte. Il y a bien une faute.
Les énoncés (a) et (b) sont donc tous deux considérés comme faux, chacun donnant l'autre comme correction, ce qui est contradictoire.
Tentative de contournement du problème...
Nous avons tenté de réduire le bruit provoqué par la règle 1. en la modifiant : ça suivi de 2 verbes au lieu d'un seul. Cela permet de pallier en partie le problème de l'ambiguïté de voiture, mais nous réalisons alors qu'il est nécessaire d'avoir des règles plus complexes et précises pour contourner l'absence de désambiguïsation et le fait que beaucoup de mots ont plus d'une étiquette.D'autres exemples sur ce problème
Les autres règles aussi entraînent beaucoup de mauvaises détections
d'erreurs, dues à l'ambiguïté verbe-nom le plus souvent.Par exemple :
La visite a duré longtemps est corrigé : La visite à duré longtemps car le tag "verbe" de visite correspond à la règle.Il se trompe toujours de numéro est corrigé : Il ce trompe toujours de numéro car le tag "nom" de trompe correspond à la règle.
Tu peux utiliser ce téléphone est corrigé : Tu peux utiliser se téléphone à cause du tag "verbe" de téléphone qui correspond à la règle.
Ces lignes ne sont pas droites est corrigé : Ces lignes ne son pas droites car pas a le tag "nom" qui entraine l'application de la règle.
Il a publié son livre est corrigé : Il a publié sont livre car le tag "verbe" de livre correspond à la règle.
Création de nouvelles règles
Nous avons aussi tenté de créer des règles nouvelles pour nous confronter aux problèmes d'écriture de règles d'erreur.La négation
Nous avons écrit une règle pour la détection d'erreur sur la négation, qui permet de détecter l'omission de la particule ne dans une phrase négative avec pas ou jamais.
Si dans une phrase un verbe n'est pas précédé de ne ou n', mais qu'il est suivi de pas ou jamais (eux-mêmes non précédés d'un déterminant pour éviter la confusion avec le nom pas), avec une suite quelconque de mots entre le verbe et pas, alors une faute est détectée.
Même si la règle fonctionne relativement bien, nous nous rendons compte là encore qu'il est nécessaire de contourner l'absence de désambiguïsation par des règles plus compliquées.L'accord déterminant-nom
Nous avons voulu faire une règle pour l'accord entre un déterminant et un nom qui détecterait une erreur dans le cas où un nom masculin singulier ne serait pas précédé d'un déterminant autre que masculin singulier. Mais nous avons eu un souci avec l'expression régulière qui n'a jamais voulu fonctionner...Cependant, cela nous a quand même permis de prendre conscience du très grand nombre de règles qu'il est nécessaire de rédiger pour couvrir le plus de cas possibles. Dans son mémoire, Myriam avait calculé le nombre de combinaisons possibles déterminant, adjectif, nom et déterminant, nom, adjectif. Étant donné que chacune de ces catégories peut avoir trois genres (masculin, féminin, épicène) et trois nombres (singulier, pluriel, invariable), on obtient 1458 combinaisons possibles, donc presque autant de règles à rédiger (il faut enlever les combinaisons correctes puisque les règles décrivent des erreurs).
Il y a bien sûr moyen de créer un programme qui génère ces règles automatiquement, mais c'est un nombre tout de même très important et qui correspond au traitement d'une petite partie de la syntaxe seulement. On voit donc que la liste de règles à créer peut vite devenir considérable, sans jamais pouvoir être exhaustive, car il n'est pas possible de prévoir toutes les erreurs qui peuvent être commises dans un texte.
Conclusion
En conclusion de ces petits tests, nous pouvons dire que le principal problème que nous avons rencontré est celui de l'absence de désambiguïsation, que nous allons essayer de combler. Nous allons par ailleurs modifier la méthode actuelle de détection des fautes, qui nécessite trop de règles, afin qu'elle soit plus adaptée à la grammaire française.(Post originally written by Agnes Souque on the old Nuxeo blogs.)
Comments