Contenu du cours
Introduction au NLP
Introduction au NLP
Lemmatisation
Lemmatisation vs Stemming
Tout d'abord, définissons ce qu'est la lemmatisation et comment elle diffère du stemming.
Contrairement au stemming, qui coupe grossièrement les terminaisons des mots, la lemmatisation prend en compte le contexte et convertit le mot en sa forme de base significative. Par exemple, 'am', 'are' et 'is' sont tous lemmatisés en 'be'. Cette approche peut réduire considérablement la taille du vocabulaire (le nombre de mots uniques) dans de grands corpus de texte, augmentant ainsi l'efficacité lors de l'entraînement des modèles.
D'autre part, bien que la lemmatisation soit plus précise, elle est également plus coûteuse en calcul et peut être chronophage avec de grands ensembles de données. De plus, pour une précision encore meilleure, il est recommandé d'effectuer une analyse morphologique et un étiquetage des parties du discours avant la lemmatisation.
Lemmatisation avec NLTK
Le WordNet Lemmatizer, fourni par la bibliothèque NLTK, utilise le corpus WordNet pour effectuer la lemmatisation.
Lorsque vous utilisez le lemmatiseur WordNet, il recherche le mot cible dans la base de données WordNet pour trouver le lemme (forme de base) le plus approprié du mot.
Comme mentionné ci-dessus, parce que les mots peuvent avoir des significations différentes dans des contextes différents (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.
Voyons maintenant un exemple :
from nltk.stem import WordNetLemmatizer import nltk # Download the WordNet corpus nltk.download('wordnet') # Initialize the WordNet lemmatizer lemmatizer = WordNetLemmatizer() words = ["running", "bested"] # Lemmatize words lemmatized_words = [lemmatizer.lemmatize(word, 'v') for word in words] # 'v' for verb print("Lemmatized words:", lemmatized_words)
Comme vous pouvez le voir, du point de vue du codage, l'approche est plutôt simple. Encore une fois, afin de lemmatiser les mots avec précision sur l'ensemble d'un corpus, il serait préférable de d'abord effectuer le part-of-speech (POS) tagging, que nous aborderons dans le chapitre suivant.
Swipe to start coding
Votre tâche est de lemmatiser les tokens, étant donné la chaîne text
. La tokenisation est déjà appliquée avec les mots vides filtrés.
-
Importez le lemmatiseur WordNet.
-
Téléchargez le corpus WordNet.
-
Initialisez le lemmatiseur WordNet.
-
Lemmatiser les tokens en utilisant la compréhension de liste.
Solution
Merci pour vos commentaires !
Lemmatisation
Lemmatisation vs Stemming
Tout d'abord, définissons ce qu'est la lemmatisation et comment elle diffère du stemming.
Contrairement au stemming, qui coupe grossièrement les terminaisons des mots, la lemmatisation prend en compte le contexte et convertit le mot en sa forme de base significative. Par exemple, 'am', 'are' et 'is' sont tous lemmatisés en 'be'. Cette approche peut réduire considérablement la taille du vocabulaire (le nombre de mots uniques) dans de grands corpus de texte, augmentant ainsi l'efficacité lors de l'entraînement des modèles.
D'autre part, bien que la lemmatisation soit plus précise, elle est également plus coûteuse en calcul et peut être chronophage avec de grands ensembles de données. De plus, pour une précision encore meilleure, il est recommandé d'effectuer une analyse morphologique et un étiquetage des parties du discours avant la lemmatisation.
Lemmatisation avec NLTK
Le WordNet Lemmatizer, fourni par la bibliothèque NLTK, utilise le corpus WordNet pour effectuer la lemmatisation.
Lorsque vous utilisez le lemmatiseur WordNet, il recherche le mot cible dans la base de données WordNet pour trouver le lemme (forme de base) le plus approprié du mot.
Comme mentionné ci-dessus, parce que les mots peuvent avoir des significations différentes dans des contextes différents (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.
Voyons maintenant un exemple :
from nltk.stem import WordNetLemmatizer import nltk # Download the WordNet corpus nltk.download('wordnet') # Initialize the WordNet lemmatizer lemmatizer = WordNetLemmatizer() words = ["running", "bested"] # Lemmatize words lemmatized_words = [lemmatizer.lemmatize(word, 'v') for word in words] # 'v' for verb print("Lemmatized words:", lemmatized_words)
Comme vous pouvez le voir, du point de vue du codage, l'approche est plutôt simple. Encore une fois, afin de lemmatiser les mots avec précision sur l'ensemble d'un corpus, il serait préférable de d'abord effectuer le part-of-speech (POS) tagging, que nous aborderons dans le chapitre suivant.
Swipe to start coding
Votre tâche est de lemmatiser les tokens, étant donné la chaîne text
. La tokenisation est déjà appliquée avec les mots vides filtrés.
-
Importez le lemmatiseur WordNet.
-
Téléchargez le corpus WordNet.
-
Initialisez le lemmatiseur WordNet.
-
Lemmatiser les tokens en utilisant la compréhension de liste.
Solution
Merci pour vos commentaires !