Stemming avec nltk.SnowballStemmer
Le stemming avec nltk.SnowballStemmer est une autre méthode de réduction des mots à leur racine, similaire au Porter Stemmer, mais elle prend en charge plusieurs langues et utilise une approche améliorée pour les suffixes. Le SnowballStemmer est basé sur un algorithme plus complexe et est plus performant que le Porter Stemmer dans certains cas. Il est capable de traiter différentes langues comme l’anglais, le français, l’espagnol, et d’autres. Par exemple, il réduira « running », « runner » et « ran » à la racine « run », tout comme le Porter Stemmer, mais avec des améliorations dans les langues supportées.
Fonctions :
-
nltk.SnowballStemmer()
Le SnowballStemmer est une amélioration de l'algorithme de stemming et est disponible pour plusieurs langues, dont le français. Comme le PorterStemmer, il réduit les mots à leur racine, mais il est conçu pour être plus robuste et pour fonctionner sur plusieurs langues. Le SnowballStemmer est particulièrement utile lorsqu'on travaille avec des textes multilingues ou si on a besoin d'une méthode de stemming plus raffinée.
Importation :
from nltk.stem import SnowballStemmer
Attributs :
Paramètre Description stem(word)
Prend un mot en entrée et retourne sa racine (stem) language
Langue du texte à traiter (par exemple 'french'
,'english'
, etc.)Exemple de code :
from nltk.stem import SnowballStemmer # Création du SnowballStemmer pour le français stemmer = SnowballStemmer('french') # Exemple de mots mots = ["mangeant", "mangé", "mangez", "manger", "chat"] # Application du stemming mots_stemmes = [stemmer.stem(mot) for mot in mots] print(mots_stemmes)
Explication du code :
- Création du
SnowballStemmer
: Un objetSnowballStemmer
est créé avec la langue spécifiée ('french'
dans cet exemple) pour appliquer l'algorithme de stemming. - Application du stemming :
- Le mot est passé dans la méthode
stem()
pour obtenir sa racine. - Par exemple, "mangeant", "mangé", "mangez", et "manger" seront tous réduits à "mang".
- Le mot est passé dans la méthode
- Résultat :
- Le mot "chat" n’est pas modifié car il s'agit déjà de sa racine.
🔎 Remarques
- Le
SnowballStemmer
fonctionne de manière similaire auPorterStemmer
mais est plus précis et performant, surtout pour des langues autres que l'anglais. - En français, il est capable de gérer la conjugaison des verbes et les déclinaisons des adjectifs de manière plus fine.
- Comme pour le
PorterStemmer
, le stemming peut ne pas renvoyer des mots qui sont grammaticalement corrects. C'est plus une réduction du mot à une racine commune.
- Création du