Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Lemmatisation | Racine et Lemmatisation
Introduction au TALN avec Python

Lemmatisation

Glissez pour afficher le menu

Comprendre la lemmatisation

Note
Définition

Lemmatisation : technique de normalisation de texte utilisée en TAL pour ramener les mots à leur forme du dictionnaire, appelée lemme.

Contrairement au stemming, qui supprime grossièrement les affixes, la lemmatisation prend en compte le contexte et convertit le mot en sa forme du dictionnaire. Par exemple, 'am', 'are' et 'is' sont tous lemmatisés en 'be'. Cette approche permet de réduire considérablement la taille du vocabulaire (le nombre de mots uniques) dans de grands corpus textuels, augmentant ainsi l'efficacité lors de l'entraînement des modèles.

En revanche, bien que la lemmatisation soit plus précise, elle est également plus coûteuse en ressources informatiques et peut être chronophage avec de grands ensembles de données. De plus, pour une meilleure précision, il est recommandé d'effectuer une analyse morphologique et un étiquetage des parties du discours avant la lemmatisation.

Note
Note

Ne vous préoccupez pas de l’étiquetage des parties du discours pour l’instant, car ce sera le prochain sujet abordé.

Lemmatisation avec NLTK

Le lemmatiseur WordNet, fourni par la bibliothèque NLTK, utilise le corpus WordNet pour effectuer la lemmatisation.

Note
Approfondir

WordNet est une base de données lexicale sémantiquement riche pour l’anglais, bien plus qu’un simple corpus. Elle regroupe les mots en ensembles de synonymes, ou synsets, chacun représentant un concept distinct et accompagné de définitions et d’exemples d’utilisation. De plus, WordNet encode des relations significatives entre ces synsets — telles que les hyperonymes (termes plus larges, plus généraux) et les hyponymes (termes plus restreints, plus spécifiques) — offrant ainsi un cadre puissant pour explorer et désambiguïser les sens des mots.

Lorsque vous utilisez le WordNet Lemmatizer, il recherche le mot cible dans la base de données WordNet afin de trouver le lemme le plus approprié du mot.

Comme mentionné ci-dessus, puisque les mots peuvent avoir des significations différentes selon le contexte (par exemple, « running » en tant que verbe vs. « running » en tant que nom), le lemmatiseur peut vous demander de spécifier la partie du discours (par exemple, verbe, nom, adjectif). Cela l’aide à sélectionner le lemme correct en fonction du rôle du mot dans une phrase.

1234567891011
from nltk.stem import WordNetLemmatizer import nltk # Download the WordNet corpus nltk.download('wordnet') # Initialize the WordNet lemmatizer lemmatizer = WordNetLemmatizer() # Parts of speech, 'v' for verb and 'n' for noun parts_of_speech = ['v', 'n'] # Lemmatize words lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech] print("Lemmatized words:", lemmatized_words)
Description du code
expand arrow
from nltk.stem import WordNetLemmatizer

Cette ligne importe la classe WordNetLemmatizer.

nltk.download('wordnet')

Cette ligne télécharge le corpus WordNet et garantit ainsi que toutes les fonctionnalités liées à WordNet, telles que la lemmatisation, peuvent être utilisées.

lemmatizer = WordNetLemmatizer()

Cette ligne crée une instance de la classe WordNetLemmatizer utilisée pour effectuer la lemmatisation.

parts_of_speech = ['v', 'n']

Cette ligne crée une liste des parties du discours qui seront utilisées lors de la lemmatisation.

lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech]

Cette ligne crée une liste de mots lemmatisés à l’aide d’une compréhension de liste. Le processus de lemmatisation est effectué via la méthode lemmatize() de l’objet lemmatizer. La chaîne représentant un mot doit être passée en premier argument et la partie du discours souhaitée en second argument optionnel ('v' pour verbe, 'a' pour adjectif, 'n' pour nom, etc.).

Vous pouvez omettre de spécifier la catégorie grammaticale en appelant lemmatizer.lemmatize("running"), mais comme vous pouvez le constater, différentes catégories grammaticales produisent des résultats différents. C'est pourquoi il est préférable d'effectuer une annotation des parties du discours au préalable.

question mark

Quel est l'avantage principal de la lemmatisation par rapport au stemming ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 3

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Lemmatisation

Comprendre la lemmatisation

Note
Définition

Lemmatisation : technique de normalisation de texte utilisée en TAL pour ramener les mots à leur forme du dictionnaire, appelée lemme.

Contrairement au stemming, qui supprime grossièrement les affixes, la lemmatisation prend en compte le contexte et convertit le mot en sa forme du dictionnaire. Par exemple, 'am', 'are' et 'is' sont tous lemmatisés en 'be'. Cette approche permet de réduire considérablement la taille du vocabulaire (le nombre de mots uniques) dans de grands corpus textuels, augmentant ainsi l'efficacité lors de l'entraînement des modèles.

En revanche, bien que la lemmatisation soit plus précise, elle est également plus coûteuse en ressources informatiques et peut être chronophage avec de grands ensembles de données. De plus, pour une meilleure précision, il est recommandé d'effectuer une analyse morphologique et un étiquetage des parties du discours avant la lemmatisation.

Note
Note

Ne vous préoccupez pas de l’étiquetage des parties du discours pour l’instant, car ce sera le prochain sujet abordé.

Lemmatisation avec NLTK

Le lemmatiseur WordNet, fourni par la bibliothèque NLTK, utilise le corpus WordNet pour effectuer la lemmatisation.

Note
Approfondir

WordNet est une base de données lexicale sémantiquement riche pour l’anglais, bien plus qu’un simple corpus. Elle regroupe les mots en ensembles de synonymes, ou synsets, chacun représentant un concept distinct et accompagné de définitions et d’exemples d’utilisation. De plus, WordNet encode des relations significatives entre ces synsets — telles que les hyperonymes (termes plus larges, plus généraux) et les hyponymes (termes plus restreints, plus spécifiques) — offrant ainsi un cadre puissant pour explorer et désambiguïser les sens des mots.

Lorsque vous utilisez le WordNet Lemmatizer, il recherche le mot cible dans la base de données WordNet afin de trouver le lemme le plus approprié du mot.

Comme mentionné ci-dessus, puisque les mots peuvent avoir des significations différentes selon le contexte (par exemple, « running » en tant que verbe vs. « running » en tant que nom), le lemmatiseur peut vous demander de spécifier la partie du discours (par exemple, verbe, nom, adjectif). Cela l’aide à sélectionner le lemme correct en fonction du rôle du mot dans une phrase.

1234567891011
from nltk.stem import WordNetLemmatizer import nltk # Download the WordNet corpus nltk.download('wordnet') # Initialize the WordNet lemmatizer lemmatizer = WordNetLemmatizer() # Parts of speech, 'v' for verb and 'n' for noun parts_of_speech = ['v', 'n'] # Lemmatize words lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech] print("Lemmatized words:", lemmatized_words)
Description du code
expand arrow
from nltk.stem import WordNetLemmatizer

Cette ligne importe la classe WordNetLemmatizer.

nltk.download('wordnet')

Cette ligne télécharge le corpus WordNet et garantit ainsi que toutes les fonctionnalités liées à WordNet, telles que la lemmatisation, peuvent être utilisées.

lemmatizer = WordNetLemmatizer()

Cette ligne crée une instance de la classe WordNetLemmatizer utilisée pour effectuer la lemmatisation.

parts_of_speech = ['v', 'n']

Cette ligne crée une liste des parties du discours qui seront utilisées lors de la lemmatisation.

lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech]

Cette ligne crée une liste de mots lemmatisés à l’aide d’une compréhension de liste. Le processus de lemmatisation est effectué via la méthode lemmatize() de l’objet lemmatizer. La chaîne représentant un mot doit être passée en premier argument et la partie du discours souhaitée en second argument optionnel ('v' pour verbe, 'a' pour adjectif, 'n' pour nom, etc.).

Vous pouvez omettre de spécifier la catégorie grammaticale en appelant lemmatizer.lemmatize("running"), mais comme vous pouvez le constater, différentes catégories grammaticales produisent des résultats différents. C'est pourquoi il est préférable d'effectuer une annotation des parties du discours au préalable.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 3
some-alt