[GramOOo] [Languagetool] Principes


Mon 16 May 2005 By nuxeo

Languagetool est un
correcteur de style et de grammaire pour l'anglais créé par Daniel Naber. Il
est écrit en Python.

C'est un système « rule-based », c'est-à-dire basé sur des règles
syntaxiques écrites à la main.

Il procède à plusieurs étapes d'analyse grammaticale.

Il faut découper le texte en phrases, puis à chaque espace pour obtenir une
liste de mots. Il étiquette ces mots (phase de tagging), puis il découpe en
syntagmes (chunks) c'est-à-dire des groupes nominaux, verbaux etc. Ensuite,
il applique des règles écrites en XML.

Le tagging est basé sur des probabilités et des règles. Il créé deux
tableaux associatifs. Le premier expose le mot, son étiquette (c'est-à-dire
sa catégorie grammaticale et des informations morphologiques) et la
probabilité qui correspond au tag. Le deuxième montre une suite de deux tags
avec la probabilité correspondant à cette séquence (par exemple sequence
[(DET, AJ0)] = 0,1] signifie que la probabilité qu'un adjectif suive un
déterminant est de 0,1).

Plusieurs mots peuvent être ambigus, on prend alors une suite une séquence
de trois mots et on regarde les probabilités que ces trois mots se suivent
(par exemple qu'un déterminant soit suivit d'un nom et d'un adjectif) et on
sélectionne la plus haute probabilité. On avance d'un mot et on continue le
traitement.

Daniel Naber ajoute une phase à son tagger probabiliste. Si le résultat du
tagger n'est pas correct et des mots nécessites d'être désambiguïsés, des
règles écrites manuellement sont appliquées.

Ensuite vient la phase de chunking qui est basée sur des règles. Par
exemple, un NP (noun phrase c'est-à-dire un syntagme nominal) se compose
d'un déterminant et d'un nom.

Enfin vient la phase de grammaire basée sur de règles XML. Ces règles sont
dépendantes des étiquettes. Elles se composent de plusieurs éléments :

  • id et name qui sont l'identifiant et le nom de la
    règle
  • pattern qui décrit ce qui est incorrect,
  • message qui est l'énonciation de la règle et qui est destiné à
    l'utilisateur, et
  • example qui est l'exemple de l'erreur.

    On a par exemple une règle d'accord sujet verbe.


    (Post originally written by Myriam Lechelt on the old Nuxeo blogs.)


Category: Product & Development