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

bookRacination

Comprendre le stemming

Note
Définition

Le stemming est une technique de normalisation de texte utilisée en TAL pour réduire les mots fléchis à leur racine.

Plus précisément, le stemming consiste à supprimer les affixes (généralement uniquement les suffixes) des mots afin d'obtenir leur forme racine, appelée racine. Par exemple, les racines de "running", "runs" et "run" sont toutes "run".

L'objectif du stemming est de simplifier l'analyse en traitant des mots similaires comme une même entité, ce qui améliore l'efficacité dans diverses tâches de TAL.

Stemming avec NLTK

NLTK propose différents algorithmes de racinisation, les plus populaires étant le Porter Stemmer et le Lancaster Stemmer. Ces algorithmes appliquent des règles spécifiques pour supprimer les affixes et obtenir la racine d’un mot.

Toutes les classes de racinisation dans NLTK partagent une interface commune. Il faut d’abord créer une instance de la classe de racinisation, puis utiliser sa méthode stem() pour chaque jeton.

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

Tout d’abord, la tokenisation a été appliquée, puis les mots vides ont été filtrés et enfin la racinisation a été effectuée sur les jetons à l’aide de la compréhension de liste. Concernant les résultats, ces deux racinisateurs produisent des résultats assez différents. Cela s’explique par le fait que le Lancaster Stemmer possède environ deux fois plus de règles que le Porter Stemmer et est l’un des racinisateurs les plus « agressifs ».

Note
Remarque

Dans l'ensemble, le Porter Stemmer est l'option la plus populaire, produisant des résultats plus pertinents que le Lancaster Stemmer, qui a tendance à trop réduire les mots.

question mark

Lesquelles des affirmations suivantes concernant les stemmers Porter et Lancaster sont vraies ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 1

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

bookRacination

Glissez pour afficher le menu

Comprendre le stemming

Note
Définition

Le stemming est une technique de normalisation de texte utilisée en TAL pour réduire les mots fléchis à leur racine.

Plus précisément, le stemming consiste à supprimer les affixes (généralement uniquement les suffixes) des mots afin d'obtenir leur forme racine, appelée racine. Par exemple, les racines de "running", "runs" et "run" sont toutes "run".

L'objectif du stemming est de simplifier l'analyse en traitant des mots similaires comme une même entité, ce qui améliore l'efficacité dans diverses tâches de TAL.

Stemming avec NLTK

NLTK propose différents algorithmes de racinisation, les plus populaires étant le Porter Stemmer et le Lancaster Stemmer. Ces algorithmes appliquent des règles spécifiques pour supprimer les affixes et obtenir la racine d’un mot.

Toutes les classes de racinisation dans NLTK partagent une interface commune. Il faut d’abord créer une instance de la classe de racinisation, puis utiliser sa méthode stem() pour chaque jeton.

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

Tout d’abord, la tokenisation a été appliquée, puis les mots vides ont été filtrés et enfin la racinisation a été effectuée sur les jetons à l’aide de la compréhension de liste. Concernant les résultats, ces deux racinisateurs produisent des résultats assez différents. Cela s’explique par le fait que le Lancaster Stemmer possède environ deux fois plus de règles que le Porter Stemmer et est l’un des racinisateurs les plus « agressifs ».

Note
Remarque

Dans l'ensemble, le Porter Stemmer est l'option la plus populaire, produisant des résultats plus pertinents que le Lancaster Stemmer, qui a tendance à trop réduire les mots.

question mark

Lesquelles des affirmations suivantes concernant les stemmers Porter et Lancaster sont vraies ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 1
some-alt