Par: Benoît TROUVILLIEZ

Introduction

Nous allons nous intéresser à deux techniques largement employées dans le cadre de l’analyse sémantique : La lemmatisation et la racinisation parfois appelée stemmatisation. Nous verrons notamment quelques outils utiles dans le cas du Français. Si vous voulez en savoir plus sur ce qu’est l’analyse sémantique, vous pouvez consulter cet article du blog qui explicite ce terme et quelques autres.

Les Flexions et le Lemme

Les flexions sont les différentes formes fléchies d’un même mot. Les formes fléchies correspondent aux formes “conjuguées” ou “accordées” d’un mot de base non conjugué et non accordé : le Lemme.

Par exemple, le mot “jouer” , verbe à l’infinitif ni accordé, ni conjugué est un lemme. Il possède différentes flexions qui correspondent à ses formes conjuguées à diverses personnes et temps : “il jouera” , “nous jouons” , “ils ont joué” , …

Un autre exemple? Avec un nom cette fois. Le mot “garage” correspond à la forme non accordée et donc au lemme des flexions accordées “un garage” et “des garages” .

Racine d’un mot

La racine d’un mot correspond à la partie du mot restante une fois que l’on a supprimé son préfixe et son suffixe, à savoir son radical. Elle est aussi parfois connu sous le nom de stemme d’un mot. Contrairement au lemme qui correspond à un mot réel de la langue, la racine ou stemme ne correspond généralement pas à un mot réel.

Par exemple, le mot “chercher” a pour radical ou stemme “cherch” qui ne correspond pas à un mot réel. Par contre dans l’exemple de “frontal“, le radical ou stemme est “front” qui lui l’est.

Le problème des flexions

Les flexions sont un problème en TAL dans le sens où elles provoquent l’apparition de mots différents d’un point de vue graphique (différences d’accord) mais ayant un sens relativement proche à l’accord près.

Par exemple, les mots “joue” et “jouons” apparaissent comme différents pour les traitements linguistiques qui ne feront alors pas le rapprochement alors qu’il s’agit bien du même mot conjugué à deux personnes différentes. Cela a principalement pour effet de provoquer une augmentation non désirée du nombre de mots différents dans le corpus de textes.

Pour résoudre ce problème, il faut être capable de représenter les différentes flexions d’un même mot par un même terme afin que les traitements linguistiques puissent les voir sémantiquement équivalent de manière assez triviale. Pour cela, il est courant de représenter les différentes flexions soit par leur lemme, soit par leur racine ou stemme.

Lemmatisation

La lemmatisation est le nom du procédé en TAL qui consiste à transformer les flexions en leur lemme.
Plusieurs ressources et logiciels existent pour réaliser cette tâche. Parmi eux, nous citerons :

Parmi ces choix, TreeTagger se démarque pour deux raisons :

  • Sa capacité d’adaptation à de multiples langues par l’intermédiaire de ces fichiers de configuration. On dénombre d’après la page officielle de l’outil, la gestion de 13 langues différentes : l’allemand, l’anglais, le français, l’italien, le néerlandais, l’espagnol, le bulgare, le russe, le grec, le portugais, le chinois, le Swahili et le vieux français.
  • La présence d’un algorithme sous la forme d’un arbre de décision lui permettant de décider en contexte de la fonction grammaticale a attribuer au mot et d’en déduire le lemme le plus probable. Sur ce point, les autres alternatives (le LEFFF et le DELAF) nous fournissent uniquement pour chaque forme fléchie, la liste des lemmes possibles en fonction de la fonction grammaticale du mot (on parle alors de lexiques). Ces réflexions nous amène à aborder les deux types de lemmatisation existantes : la “lemmatisation en contexte” (comme celle réalisée par TreeTagger) et la “lemmatisation hors contexte” (que l’on peut réaliser avec les lexiques présentés).

Lemmatisation en contexte

Cette famille de techniques de lemmatisation consiste à identifier la fonction grammaticale d’un mot fléchi pour pouvoir en déduire son lemme. Pour cela, il est indispensable pour le lemmatiseur de connaître la phrase (et donc le contexte) dans laquelle le mot fléchi a été employé. A partir du moment où la fonction grammaticale a pu être détectée, le lemmatiseur recherche dans sa base de connaissance la forme fléchie courante puis retourne le lemme associé à la fonction grammaticale détectée pour cette flexion. S’il échoue soit à identifier convenablement la fonction grammaticale, soit à trouver un lemme pour cette fonction, alors le lemmatiseur ne retournera aucun résultat.

Lemmatisation hors contexte

Cette famille de techniques de lemmatisation n’a pas besoin du contexte pour fonctionner. A partir de la forme fléchie recherchée, le lemmatiseur retourne directement l’ensemble des lemmes possibles pour cette flexion dans chaque contexte grammaticale où elle peut être résolue. En d’autres termes, ce type de lemmatiseur ne renvoie pas un lemme unique mais une collection de lemmes possibles en fonction de la catégorie grammaticale du mot. Il est possible ensuite à postériori de départager les différents lemmes retournés soit en effectuant une analyse probabiliste sur les lemmes, soit en effectuant une analyse morpho-syntaxique de la phrase afin d’obtenir la fonction grammaticale du terme. Dans tous les cas, le lemmatiseur retournera une réponse dès lors que la forme fléchie présentée correspond à une forme fléchie existante pour la langue désignée.

Comparaison des deux méthodes

Les deux types de lemmatisation ont chacune leurs avantages et leurs inconvénients.

La lemmatisation en contexte possède :

  • l’avantage de retourner directement un lemme unique adapté à la fonction grammaticale détectée. Cela est particulièrement intéressant si on ne dispose pas d’une analyse grammaticale par ailleurs.
  • l’avantage de garantir une simplification du problème des flexions en créant dans le pire des cas un lemme différent pour chaque flexion envoyée.
  • l’inconvénient d’engendrer le risque de mal choisir et de provoquer une erreur ayant potentiellement des répercutions pour la suite du traitement.

La lemmatisation hors contexte possède :

  • l’avantage de nous présenter tous les résultats possibles nous laissant ensuite maître de nos choix à appliquer pour les départager (statistiques de langue, statistiques liés au corpus, fonction grammaticale, un mélange du tout,….). Cela n’est intéressant que dans le cadre où l’on dispose d’une solution fiable et viable pour départager les concurrents.
  • l’inconvénient de ne pouvoir garantir une simplification du problème des flexions en nous renvoyant parfois plus de lemmes que de flexions envoyées.

Racinisation / Stemmatisation

La stemmatisation ou racinisation est le nom donné au procédé qui vise à transformer les flexions en leur radical ou stemme.

Quelque soit l’outil retenu, la façon de procéder est toujours la même : le stemmatiseur recherche selon la forme du mot fléchi et la langue défini, le radical le plus probable pour ce mot. Contrairement à la lemmatisation qui repose donc sur une base de connaissance des formes fléchies de la langue auxquelles on associe les lemmes possibles (appelée lexique), la stemmatisation fonctionne uniquement avec une base de connaissance des règles syntaxiques et grammaticales de la langue.

Cela provoque deux différences notables avec la lemmatisation :

  • La stemmatisation est moins sensible aux fautes d’orthographes que la lemmatisation. La lemmatisation échoue à la moindre faute d’orthographe (la forme fléchie servant à la recherche dans la base de connaissance devenant inconnue ou erronée) alors que la stemmatisation peut réussir si la faute ne perturbe pas la détection du radical et si celui-ci n’est pas modifié.
  • La stemmatisation n’a pas besoin du contexte pour fonctionner. Elle ne requiert que le mot à raciniser et la langue dans laquelle ce mot est écrit.

Le projet Snowball, inclus dans “Lucene Contrib”, espace de travail du projet Apache Lucene, vise à fournir des stemmatiseurs pour de nombreuses langues dont le français. Il s’agit en fait de l’intégration dans le projet Lucene de stemmatiseurs pré compilés à partir du langage Snowball Stemmer écrit par Martin Porter pour la description de stemmatiseurs.

Perspectives

Dans un article ultérieur sur la lemmatisation et la racinisation, nous aborderons plus finement les cas de TreeTagger et du projet Snowball de Lucene. Nous y verrons notamment comment nous les avons étudiés afin d’en connaître leurs limites.

Mots clefs : , , , , , , , , , , , , , , , , , , , , , , ,