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

Contenu du cours

Introduction au NLP

Introduction au NLP

1. Fondamentaux du Prétraitement de Texte
2. Racine et Lemmatisation
3. Modèles de Texte de Base
4. Incorporations de Mots

book
Racine

Comprendre le Stemming

Pour commencer, comprenons d'abord ce qu'est essentiellement le stemming.

Pour être plus précis, le stemming implique de supprimer les suffixes des mots pour obtenir leur forme racine, connue sous le nom de stem. Par exemple, les stems de "running," "ran," et "runner" sont tous "run." Comme mentionné ci-dessus, le but du stemming est de simplifier l'analyse en traitant des mots similaires comme la même entité, améliorant ainsi l'efficacité et l'efficience de diverses tâches de NLP.

Stemming avec NLTK

NLTK propose divers algorithmes de stemming, les plus populaires étant le Porter Stemmer et le Lancaster Stemmer. Ces algorithmes appliquent des règles spécifiques pour supprimer les affixes et dériver la racine d'un mot.

Toutes les classes de stemmer dans NLTK partagent une interface commune. Tout d'abord, vous devez créer une instance de la classe de stemmer, puis utiliser sa méthode stem() pour chacun des tokens. Regardons l'exemple suivant :

1234567891011121314151617181920212223242526272829
import nltk from nltk.stem import PorterStemmer, LancasterStemmer from nltk.tokenize import word_tokenize from nltk.corpus import stopwords nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) # Create a Porter Stemmer instance porter_stemmer = PorterStemmer() # Create a Lancaster Stemmer instance lancaster_stemmer = LancasterStemmer() text = "Stemming is an essential technique for natural language processing." text = text.lower() tokens = word_tokenize(text) # Filter out the stop words tokens = [token for token in tokens if token.lower() not in stop_words] # Apply stemming to each token porter_stemmed_tokens = [porter_stemmer.stem(token) for token in tokens] lancaster_stemmed_tokens = [lancaster_stemmer.stem(token) for token in tokens] # Display the results print("Original Tokens:", tokens) print("Stemmed Tokens (Porter Stemmer):", porter_stemmed_tokens) print("Stemmed Tokens (Lancaster Stemmer):", lancaster_stemmed_tokens)
copy

Comme vous pouvez le voir, il n'y a rien de compliqué ici. Tout d'abord, nous avons appliqué la tokenisation, puis filtré les mots vides et enfin appliqué le stemming sur nos tokens en utilisant la compréhension de liste. En ce qui concerne les résultats, ces deux stemmers ont produit des résultats assez différents. Cela est dû au fait que le Lancaster Stemmer a environ deux fois plus de règles que le Porter Stemmer et est l'un des stemmers les plus "agressifs".

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 1
We're sorry to hear that something went wrong. What happened?
some-alt