Racinisation et lemmatisation

Auteurs

Jacob Murel Ph.D.

Senior Technical Content Creator

Eda Kavlakoglu

Business Development + Partnerships

IBM Research

Qu’est-ce que la racinisation et la lemmatisation ?

Dans le traitement automatique du langage naturel (NLP), la racinisation et la lemmatisation sont des techniques de prétraitement de texte qui réduisent les formes fluctuantes des mots dans un jeu de données textuelles à une forme de mot racine ou de dictionnaire commune, également connue sous le nom de « lemma » dans la linguistique informatique.1

La racinisation et la lemmatisation sont particulièrement utiles dans les systèmes de recherche d’information tels que les moteurs de recherche, où les utilisateurs peuvent soumettre une requête avec un mot (par exemple, méditer), mais s’attendre à des résultats qui utilisent n’importe quelle forme dérivée du mot (par exemple, médites, médiation, etc.). La racinisation et la lemmatisation visent également à améliorer le traitement de texte dans les algorithmes de machine learning.

Diagramme illustrant la racinisation des variantes morphologiques du mot « dance »

Pourquoi la racinisation et la lemmatisation ?

Les chercheurs se demandent si l’intelligence artificielle est capable de raisonner, et ce débat s’est étendu à la linguistique informatique. Les chatbots et les modèles d’apprentissage profond peuvent-ils uniquement traiter des formes linguistiques ou peuvent-ils comprendre la sémantique ?2 Quoi que l’on pense à ce sujet, il n’en demeure pas moins que les modèles de machine learning doivent être entraînés pour reconnaître différents mots comme des variantes morphologiques d’un mot de base, voire traiter les mots en fonction de la morphologie et non de la sémantique. En réduisant les formes dérivatives à un seul mot racine, la racinisation et la lemmatisation aident les systèmes de recherche d’information et les modèles d’apprentissage profond à assimiler les mots morphologiquement apparentés.

Pour de nombreuses tâches de fouille de textes, notamment la classification de texte, le clustering ou l’indexation, la racinisation et la lemmatisation permettent d’améliorer la précision en réduisant la dimensionnalité des algorithmes de machine learning et en regroupant les mots morphologiquement liés. La réduction de la dimensionnalité des algorithmes peut, à son tour, améliorer l’exactitude et la précision des modèles statistiques dans le NLP, tels que les modèles thématiques et de vecteurs de mots.3

Les dernières tendances en matière d’IA, vues par des experts

Obtenez des informations sur les actualités les plus importantes et les plus intrigantes en matière d’intelligence artificielle. Abonnez-vous à notre newsletter hebdomadaire Think. Lire la Déclaration de confidentialité d’IBM.

Merci ! Vous êtes abonné(e).

Vous recevrez votre abonnement en anglais. Vous trouverez un lien de désabonnement dans chaque newsletter. Vous pouvez gérer vos abonnements ou vous désabonner ici. Consultez la Déclaration de confidentialité d’IBM pour plus d’informations.

Racinisation versus lemmatisation

La racinisation et la lemmatisation font partie d’une même étape des pipelines de fouille de textes qui consiste à structurer les données textuelles brutes à des fins de traitement automatique. La racinisation et la lemmatisation suppriment toutes deux les affixes des formes dérivées des mots, ne laissant qu’une forme racine.4 Ces processus reviennent à supprimer des caractères au début et à la fin des mots. Les racines qui en résultent, ou mots de base, sont ensuite transmises pour poursuivre le traitement. Au-delà de cette similitude de base, la racinisation et la lemmatisation présentent des différences essentielles dans la manière dont elles réduisent les différentes formes d’un mot à une forme de base commune.

Racinisation : comment ça marche ?

Les algorithmes de racinisation diffèrent considérablement, bien qu’ils partagent certains modes de fonctionnement généraux. Les algorithmes de racinisation, ou stemmers, éliminent les suffixes des mots en comparant les jetons de mots en entrée à une liste prédéfinie de suffixes courants. Le stemmer supprime ensuite toutes les chaînes de suffixes trouvées dans le mot, à condition que ce dernier ne contrevienne à aucune règle ou condition associée à ce suffixe. Certains stemmers (par exemple, le stemmer de Lovins) soumettent les fragments obtenus après la racinisation à un ensemble de règles supplémentaires pour corriger les racines mal formées.

L’algorithme le plus largement utilisé est l’algorithme de racinisation de Porter et sa version mise à jour, le stemmer Snowball. Pour mieux comprendre la racinisation, nous pouvons soumettre le passage suivant de l’œuvre Hamlet de Shakespeare au stemmer Snowball : « There is nothing either good or bad but thinking makes it so. »

La boîte à outils Python pour le langage naturel (NLTK) contient des fonctions intégrées pour les stemmers Snowball et Porter. Après avoir jetonisé la citation de Hamlet à l’aide de NLTK, nous pouvons passer le texte jetonisé par le stemmer Snowball à l’aide du code suivant :

from nltk.stem.snowball import SnowballStemmer
from nltk.tokenize import word_tokenize

stemmer = SnowballStemmer("english", True)
text = "There is nothing either good or bad but thinking makes it so."
words = word_tokenize(text)
stemmed_words = [stemmer.stem(word) for word in words]

print("Original:", text)
print("Tokenized:", words)
print("Stemmed:", stemmed_words)

Le code génère :

Original: There is nothing either good or bad but thinking makes it so.
Tokenized: [’There’, ’is’, ’nothing’, ’either’, ’good’, ’or’, ’bad’, ’but’, ’thinking’, ’makes’, ’it’, ’so’, ’.’]
Stemmed: [’there’, ’is’, ’noth’, ’either’, ’good’, ’or’, ’bad’, ’but’, ’think’, ’make’, ’it’, ’so’, ’.’]

Les algorithmes de racinisation Snowball et Porter ont une méthode d’élimination des suffixes plus mathématique que les autres algorithmes. En résumé, l’algorithme compare chaque jeton de mot à une liste de règles spécifiant des chaînes de suffixes à supprimer en fonction du nombre de groupes de voyelles et de consonnes dans un jeton.5 Bien sûr, comme la langue anglaise suit des règles lexicales générales, mais pas absolues, le critère systématique de l’algorithme de racinisation renvoie des erreurs, telles que noth.

Le radical enlève -ing, qui est une terminaison courante indiquant le présent progressif. Dans la citation de Hamlet , cependant, la suppression de -ing produit de manière erronée la racine noth. Cela peut empêcher l’analyse linguistique ultérieure d’associer nothing à des mots similaires, tels que anything et something. De plus, le stemmer ne change rien au verbe irrégulier is. De même, le stemmer Snowball laisse d’autres conjugaisons de to be, telles que was et are, sans les raciniser. Cela peut empêcher les modèles d’associer correctement les conjugaisons irrégulières d’un verbe donné.

Comment fonctionne la lemmatisation ?

La littérature définit généralement la racinisation comme le processus de suppression des affixes des mots afin d’obtenir des chaînes de mots racines, et la lemmatisation comme l’entreprise plus large de réduction des variantes morphologiques à une forme de base du dictionnaire.6 La distinction pratique entre la racinisation et la lemmatisation est que, lorsque la première supprime simplement les suffixes courants de la fin des jetons de mot, la seconde garantit que le mot en sortie est une forme normalisée existante du mot (par exemple, lemme) que l’on peut trouver dans le dictionnaire.7

Comme la lemmatisation vise à produire des formes de base de dictionnaire, elle nécessite une analyse morphologique plus robuste que la racinisation. Le marquage des parties du discours (Part of speech, POS) est une étape cruciale de la lemmatisation. Il s’agit essentiellement d’attribuer à chaque mot un marqueur indiquant sa fonction syntaxique dans la phrase. Python NLTK comporte une fonction destinée à l’algorithme WordNet Lemmatizer permettant de lemmatiser le passage de Hamlet :

from nltk.stem import WordNetLemmatizer
from nltk.corpus import wordnet
from nltk import word_tokenize, pos_tag
 
def get_wordnet_pos(tag):
    if tag.startswith(’J’):
        return wordnet.ADJ
    elif tag.startswith(’V’):
        return wordnet.VERB
    elif tag.startswith(’N’):
        return wordnet.NOUN
    elif tag.startswith(’R’):
        return wordnet.ADV
    else:         
        return wordnet.NOUN
       
def lemmatize_passage(text):
    words = word_tokenize(text)
    pos_tags = pos_tag(words)
    lemmatizer = WordNetLemmatizer()
    lemmatized_words = [lemmatizer.lemmatize(word, get_wordnet_pos(tag)) for word, tag in pos_tags]
    lemmatized_sentence = ’ ’.join(lemmatized_words)
    return lemmatized_sentence
 
text = "There is nothing either good or bad but thinking makes it so."
result = lemmatize_passage(text)
 
print("Original:", text)
print("Tokenized:", word_tokenize(text))
print("Lemmatized:", result)

Le code renvoie :

Original: There is nothing either good or bad but thinking makes it so.
Tokenized: [’There’, ’is’, ’nothing’, ’either’, ’good’, ’or’, ’bad’, ’but’, ’thinking’, ’makes’, ’it’, ’so’, ’.’]
Lemmatized: There be nothing either good or bad but think make it so .

WordNet Lemmatizer, tout comme l’algorithme de racinisation Snowball, réduit les conjugaisons de verbes à des formes de base, par exemple thinking donnerait think et makes donnerait make. Cependant, contrairement à l’algorithme de dérivation Snowball, WordNet Lemmatizer identifie nothing comme un nom et laisse sa terminaison -ing inchangée tout en modifiant is pour retrouver sa forme de base be. De cette manière, WordNet Lemmatizer fusionne de manière plus appropriée les formes verbales irrégulières.

Mixture of Experts | 12 décembre, épisode 85

Décryptage de l’IA : Tour d’horizon hebdomadaire

Rejoignez notre panel d’ingénieurs, de chercheurs, de chefs de produits et autres spécialistes de premier plan pour connaître l’essentiel de l’actualité et des dernières tendances dans le domaine de l’IA.

Limites

La racinisation et la lemmatisation permettent principalement de normaliser les données textuelles en langue anglaise. Ces deux techniques de normalisation de texte prennent également en charge plusieurs autres langues utilisant l’alphabet latin, telles que le français, l’allemand et l’espagnol. D’autres alphabets, comme le russe, sont également pris en charge par l’algorithme Snowball. Le développement d’algorithmes de racinisation et de lemmatisation pour d’autres langues, notamment l’arabe, est un domaine de recherche récent et en cours. L’arabe représente un défi particulier en raison de sa morphologie agglutinante, de ses variations orthographiques et de son ambiguïté lexicale, entre autres particularités.8 Dans l’ensemble, ces éléments posent problème à une méthode systématique d’identification des formes de mots de base parmi les variantes morphologiques, du moins par rapport aux mots anglais.

Au-delà de cette limitation générale, la racinisation et la lemmatisation présentent chacune des inconvénients. Comme l’illustre l’exemple de Hamlet, la racinisation est un processus relativement heuristique, basé sur des règles, de suppression de chaînes de caractères. La sur-racinisation et la sous-racinisation sont deux erreurs courantes. Dans le premier cas, deux mots sémantiquement distincts sont réduits à la même racine (par exemple, news à new). Dans le second, deux mots sémantiquement apparentés ne sont pas réduits à la même racine (par exemple, knavish et knave qui donnent respectivement knavish et knave).9 En outre, la racinisation ne supprime que les suffixes des mots et ne peut donc pas prendre en compte les formes verbales irrégulières ou les préfixes comme le fait la lemmatisation. Bien sûr, la racinisation est relativement simple et directe à mettre en œuvre, tandis que la lemmatisation peut être plus coûteuse et plus chronophage en termes de calculs selon la taille des données traitées.

Solutions connexes
IBM watsonx Orchestrate

Concevez facilement des assistants et des agents IA évolutifs, automatisez les tâches répétitives et simplifiez les processus complexes avec IBM watsonx Orchestrate.

Découvrir watsonx Orchestrate
Outils et API de traitement automatique du langage naturel

Accélérez la valeur métier de l’intelligence artificielle grâce à un portefeuille puissant et flexible de bibliothèques, de services et d’applications.

Découvrir les solutions NLP
Conseils et services en matière d’IA

Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.

Découvrir les services d’IA
Passez à l’étape suivante

Concevez facilement des assistants et des agents IA évolutifs, automatisez les tâches répétitives et simplifiez les processus complexes avec IBM watsonx Orchestrate.

Découvrir watsonx Orchestrate Découvrir les solutions NLP