
Dans le traitement automatique du langage naturel (TALN), la lemmatisation est un des processus de préparation des corpus. Pour que l’Intelligence Artificielle assimile correctement le contenu, la lemmatisation remplace chaque mot par sa variante la plus basique, appelée lemme, en fonction du contexte grammaticale. Cette technique de prétraitement normalise les textes et sécurise par la même occasion l’apprentissage profond.
Aujourd’hui, la lemmatisation est le plus souvent automatisée et réalisée en tâche de fond. À des fins pédagogiques, l’article expose les principes et le but de cette simplification du texte pour mieux comprendre la finalité de l’opération. À quoi sert la lemmatisation ? Alimenter les modèles d’apprentissage profond qui engloutissent des quantités astronomiques de données.
Qu’est-ce que la lemmatisation ?
La lemmatisation est une technique de normalisation linguistique visant à simplifier un texte. Pour cela, chaque mot fléchi est remplacé par sa forme canonique, appelée aussi « lemme ». Lemmatiser un verbe consiste à utiliser l’infinitif à la place de la forme conjuguée. Par exemple, la forme canonique de « voyageons », « voyagez » et « voyagent » est le verbe à l’infinitif « voyager ».
En fait, le processus de la lemmatisation est plus complexe qu’un simple remplacement d’un mot pluriel par un mot au singulier ou encore d’un féminin par un masculin. Dans la langue française, le sens d’un même mot varie en fonction du contexte grammatical où il se trouve. Par exemple, le mot « danse » peut aussi bien signifier l’activité du samedi soir (nom commun) que le verbe « danser » conjugué au présent simple.
Un processus supplémentaire est nécessaire à la normalisation de corpus: la désambiguïsation lexicale. De quoi s’agit-il ? Lorsque plusieurs sens sont possibles pour un mot, la désambiguïsation détermine sa signification exacte en fonction du contexte de la phrase. L’algo choisit le bon lemme à partir d’une liste de possibilités (dictionnaire) et de l’analyse syntaxique issue de règles linguistiques.
Comparaison racinisation et lemmatisation
Les modèles d’apprentissage profond ont besoin de corpus de qualité et normalisé pour éviter toute forme de biais. La lemmatisation et la racinisation sont deux techniques de préparation de texte assez similaires.
La racinisation (stemming)
La racinisation est une méthode de prétraitement de texte utilisée pour réduire un mot à son radical. La racine du mot, aussi appelée stem, est obtenue par suppression du préfixe ou du suffixe de sa forme fléchie. En suivant les règles de racinisation de l’algorithme de Porter ou de l’algorithme de Carry, on obtient les radicaux suivants:
« mang » pour « mangeons », « mang » pour « manger » et « mang » pour « mangeoir »
La recherche du radical par racinisateur algorithmique est très rapide par contre les radicaux obtenus sont parfois incohérents.
La lemmatisation
La lemmatisation s’appuie à la fois sur les lexiques et sur les règles grammaticales de la langue. Cette recherche de la forme canonique est bien plus précise qu’une simple suppression de caractères (racinisation). Par contre, le dictionnaire, la recherche du contexte grammaticale et le test des possibilités prend beaucoup de temps.
En résumé
- La racinisation est rapide mais peu précise. Attention, deux mots au sens très différents peuvent avoir la même racine.
- La recherche du radical par lemmatisation est plus précise. par contre ce traitement lexical demande plus de puissance de calcul.
Pour des projets où la précision est essentielle, la lemmatisation est généralement privilégiée. Pour des analyses rapides ou sur de gros volumes de données, la racinisation peut suffire.
Code source de la lemmatisation avec Python
Nul besoin d’être un développeur informatique de génie pour lemmatiser un texte. Le langage Python est assez simple à utiliser et propose des librairies d’analyse de corpus « clé en main ». Pour les avoir mis en œuvre assez régulièrement, je vous conseille le package NLTK (Natural Language Toolkit) maintenu par l’université de Pennsylvanie et la bibliothèque SpaCy developpé par Matt Honnibal.
Exemple de lemmatisation avec SpaCy
# Définir le package
import spacy
# Charger le modèle de langue française
nlp = spacy.load("fr_core_news_sm")
# Texte à lemmatiser
text = "Rien ne sert de courir ; il faut partir à point."
# Traitement du texte
doc = nlp(text)
# Affichage des lemmes et la classe grammaticale
for token in doc:
print(token.text, "->", token.lemma_,token.pos_)
Que fait le code source ci-dessus ?
Découper la phrase en unités lexicales (tokenisation) puis étiqueter chaque unité avec son lemme et la classe grammaticale. Le résultat dans la console Python est le suivant :
Rien -> rien PRON
ne -> ne ADV
sert -> servir VERB
de -> de ADP
courir -> courir VERB
; -> ; PUNCT
il -> il PRON
faut -> falloir VERB
partir -> partir VERB
à -> à ADP
point -> point NOUN
. -> . PUNCT
La phrase « Rien ne sert de courir ; il faut partir à point. » est découpée en 12 unité de sens. La bibliothèque SpaCy s’en sort bien, les unités lexicales sont identifiées et les catégories grammaticales sont également renseignées (adjectif, verbe, nom commun, …).
Exemples d’utilisation de la lemmatisation
La lemmatisation est un processus de normalisation de corpus souvent utilisé en TALN. Par défaut, un texte est une donnée non structurée que la machine comprend difficilement. L’identification des lemmes condense la richesse du vocabulaire et par là même réduit les éléments non pertinents (bruit). Ces données structurées sont une ‘nourriture’ idéale pour tous les modèles d’apprentissage de l’Intelligence Artificielle.
Fouille de texte
La fouille de texte est la recherche d’information sur de gros volumes de données. Pour illustrer l’intérêt de lemmatisation, prenons l’exemple d’un texte dans lequel le rédacteur souhaite entourer toutes les formes du verbes « flâner ». Sans lemmatisation préalable, l’utilisateur devra repérer un à un les formes fléchies « flâne », « flânons », « flânâtes », … dans le texte. Avec la lemmatisation, une simple recherche sur « flâner » lui donnera toutes les occurrences du verbe.
Classification de document
Le but de la classification de document est de regrouper les données suivant leur contenu. Prenons l’exemple d’une boite mail générique sur laquelle arrivent toutes les demandes. Sans assistance par l’Intelligence Artificielle, l' »humain » ouvre le message, repère la demande puis redirige le mail vers le bon service, tâche rébarbatif et sans intérêt. Avec la lemmatisation, les modèles d’apprentissage auront appris, à partir des données structurées, à rediriger automatiquement le message vers le bon service.
La lemmatisation est un domaine de recherche stable du traitement automatique du langage naturel (TALN). Avec les bibliothèques gratuites telles que NLTK et spaCy, chacun peut se faire sa propre expérience du traitement de données non structurées. Peu importe votre, dès lors que le volume de texte devient important, la lemmatisation préalable est vivement conseillée.


