Le principe de la normalisation

Lorsque l'on emploie un terme dans une langue flexionnelle ou agglutinante, celui-ci subit des flexions. Une flexion est une modification morphologique d'un terme afin de marquer la position grammaticale, le temps de conjugaison, ... Par exemple, le verbe manger se fléchit en "mangeons" lorsqu'il est placé dans une phrase au présent et a pour sujet une première personne du pluriel. Le mot cheval se fléchit en chevaux au pluriel, ...

L'objectif de la normalisation (stemmatisation ou encore lemmatisation) est d'effectuer l'opération inverse, ie retrouver la forme canonique commune à des mots fléchis.

Si l'on prend la phrase :

Les chevaux courent dans les prairies.

la normalisation des mots la composant donne :

Le cheval courir dans le prairie.

Le découpage en pseudo-syllables

L'algorithme de Porter travaille sur les mots, mots composés à leur plus bas niveau de lettres. On peut partitionner l'ensemble des lettres de l'alphabet latin en deux classes :

  • les voyelles (notées v) : A, E, I, O, U et Y quand il est précédé d'une consonne ;
  • les consonnes (notées c) : toutes les autres lettres et Y quand il est précédé d'une voyelle ;

D'après cette classification des lettres, chaque mot peut s'écrire [C]VC...[V] avec V une séquence d'au moins une voyelle et C une séquence d'au moins une consonne. Les couples VC correspondent alors aux pseudo-syllables du mot. Le nombre de pseudo-syllables du mot est appelée la mesure du mot et se note m.

Si l'on prend le mot basket, le découpage présenté ci-dessous révèle deux pseudo-syllables (ASK et ET), d'où la mesure du mot basket est de deux (m=2).

+---+---+---+---+---+---+
| B | A | S | K | E | T |
| c | v | c | c | v | c |
+---+---+---+---+---+---+
| C | V     C   | V   C |
| B | A   S   K | E   T |
+---+---+---+---+---+---+

Si l'on prend le mot toy, le découpage présenté ci-dessous révèle une seule pseudo-syllable, la mesure du mot toy est donc de une (m=1). À noter ici que la lettre Y étant précédée de la voyelle O, elle est considérée comme une consonne.

+---+---+---+
| T | O | Y |
| c | v | c |
+---+---+---+
| C | V | C |
| T | O   Y |
+---+---+---+

Les règles de transformation

Les règles de transformation morphologiques introduites par Porter ont la syntaxe suivante : (<condition>) S1 -> S2, avec :

  • S1 est le suffixe que l'on retire au mot afin d'obtenir le radical ;
  • S2 est le suffixe que l'on ajoute au radical si la condition est remplie ;
  • condition est une condition que le radical doit vérifier pour que la règle soit appliquée.

La condition s'applique sur le mot considéré privé de S1, partie du mot qu'on appellera radical par la suite, Il y a un certain nombre de notations spécifiques à certaines conditions :

  • *S signifie que le radical se termine par la lettre S ;
  • *v* signifie que le radical contient une voyelle ;
  • *d signifie que le radical se termine par deux consonnes ;
  • *o signifie que le radical se termine par la séquence cvc (une consonne, une voyelle et une consonne) et que la dernière consonne n'est ni W, ni X, ni Y.

La dernière notation peut sembler quelque peu farfelue, mais il ne faut pas oublier que l'algorithme a été mis au point pour l'anglais.

Si le radical du mot est BREW, la condition (*W) sera remplie, mais pas la condition (*o) car bien que REW respecte la séquence cvc, W fait partie ne peut pas être la dernière lettre du radical.

Application de l'algorithme

L'algorithme de Porter permet donc d'appliquer des règles définies dans une syntaxe particulière sur des mots fléchis. L'application des dites règles permet de réaliser des transformations morphologiques afin d'obtenir une version normalisée à partir d'une version fléchie.

Quelques exemples bien choisis étant plus parlant qu'un beau discours, considérons les règles suivantes :

  • (m>0) EED -> EE ; soit EED le suffixe à retirer pour obtenir le radical, et EE le suffixe à ajouter au radical si la condition m>0 est remplie (m est la mesure du mot, soit son nombre de pseudo-syllables, cf plus haut) ;
  • (*v*) ED -> ; soit ED le suffixe à retirer pour obtenir le radical, et l'on n'ajoute aucun suffixe au dit radical si la condition *v* est remplie (*v* signifie que le radical contient une voyelle cf plus haut) ;
  • (*v*) ING -> ; à vous de deviner ...

Prenons le mot agreed, en supprimant le suffixe EED, on obtient le radical agr. Ce radical contient une pseudo-syllable et rempli donc la condition m>0, on y ajoute donc le suffixe EE pour obtenir agree, la forme normalisée de agreed.

Prenons maintenant le mot sing, on tente d'y appliquer la troisième règle, puisque les suffixes des deux premières ne correspondent pas. On obtient donc le radical s. Ce dernier ne contient aucune voyelle et ne remplit donc pas la condition *v*. On conserve donc la forme sing comme forme normalisée étant donnée qu'il n'y a aucune autre règle qui peut s'y appliquer.

Prenons finalement le mot spending, en supprimant le suffixe ING on obtient le radical spend qui contient effectivement une voyelle. La condition *v* étant remplie, on applique la règle, et on ajoute donc le suffixe S2 au radical pour obtenir la forme normalisée. Étant donnée qu'il n'y a pas de suffixe S2, le radical correspond à la forme normalisée : spend.