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

bookRacinisation

Comprendre le stemming

Note
Définition

Le stemming est une technique de normalisation de texte utilisée en TAL (traitement automatique du langage) 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 divers 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 extraire la racine d’un mot.

Toutes les classes de racinisation dans NLTK partagent une interface commune. Il est nécessaire de créer une instance de la classe de racinisation, puis d’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

Dans un premier temps, 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 d’une 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 fait partie des racinisateurs les plus « agressifs ».

Note
Remarque

Dans l'ensemble, le Porter Stemmer est l'option la plus populaire, produisant des résultats plus significatifs 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

Awesome!

Completion rate improved to 3.45

bookRacinisation

Glissez pour afficher le menu

Comprendre le stemming

Note
Définition

Le stemming est une technique de normalisation de texte utilisée en TAL (traitement automatique du langage) 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 divers 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 extraire la racine d’un mot.

Toutes les classes de racinisation dans NLTK partagent une interface commune. Il est nécessaire de créer une instance de la classe de racinisation, puis d’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

Dans un premier temps, 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 d’une 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 fait partie des racinisateurs les plus « agressifs ».

Note
Remarque

Dans l'ensemble, le Porter Stemmer est l'option la plus populaire, produisant des résultats plus significatifs 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