Lemmatization avec nltk.WordNetLemmatizer
La lemmatisation avec nltk.WordNetLemmatizer consiste à réduire les mots à leur forme de base ou « lemme », en tenant compte du contexte grammatical (comme le temps ou le genre) pour obtenir une racine correcte et significative. Contrairement au stemming, qui coupe simplement les suffixes, la lemmatisation renvoie des mots ayant du sens, comme par exemple convertir « better » en « good » ou « running » en « run ». Le WordNetLemmatizer utilise le dictionnaire WordNet pour identifier les lemmes, et il peut être utilisé avec des informations sur la partie du discours (comme les noms, verbes, etc.) pour des résultats plus précis.
Fonctions :
-
nltk.WordNetLemmatizer()
La lemmatisation est un processus linguistique plus avancé que le stemming. Contrairement au stemming qui coupe les mots à la racine, la lemmatisation réduit les mots à leur forme de base (le lemme) en utilisant des informations contextuelles. Par exemple, lemmatiser le mot "manges" renverra "manger" plutôt que "mang". WordNetLemmatizer est une classe de la bibliothèque nltk qui utilise le lexique WordNet pour effectuer cette tâche. Elle prend en compte le contexte grammatical du mot (comme son étiquette grammaticale) pour déterminer sa forme canonique.
Importation :
from nltk.stem import WordNetLemmatizer
Attributs :
Paramètre Description lemmatize(word, pos)
Prend un mot et son type de partie du discours ( pos
), et renvoie le lemme du mot.pos
Un paramètre optionnel indiquant le type de la partie du discours (par exemple 'v'
pour verbe,'n'
pour nom).Exemple de code :
from nltk.stem import WordNetLemmatizer # Création du Lemmatizer lemmatizer = WordNetLemmatizer() # Exemple de mots mots = ["manges", "manger", "mangé", "chats", "chasser"] # Application de la lemmatisation mots_lemmatises = [lemmatizer.lemmatize(mot, pos='v') for mot in mots] # 'v' pour verbe print(mots_lemmatises) # Exemple pour un nom mots_lemmatises_nom = [lemmatizer.lemmatize(mot, pos='n') for mot in mots] print(mots_lemmatises_nom)
Explication du code :
- Création du
WordNetLemmatizer
: Un objetWordNetLemmatizer
est créé pour effectuer la lemmatisation. - Application de la lemmatisation avec la partie du discours (
pos
) :- Ici, on passe la partie du discours pour spécifier si le mot est un verbe (
'v'
) ou un nom ('n'
). - Par exemple, "manges" devient "manger" si le type de parole est un verbe. "chats" devient "chat" si le type est un nom.
- Ici, on passe la partie du discours pour spécifier si le mot est un verbe (
- Résultat :
- "manges" est lemmatisé en "manger", "chats" est réduit à "chat".
🔎 Remarques
- La lemmatisation avec
WordNetLemmatizer
est plus précise que le stemming, car elle prend en compte le contexte grammatical du mot. - Si le type de parole (
pos
) n'est pas fourni, le lemmatizer suppose généralement que le mot est un nom ('n'
). - Cette approche est idéale lorsqu'on veut réduire des mots à leur forme canonique, mais elle peut être plus lente que le stemming.
- Création du