Stemming avec nltk.PorterStemmer
Le stemming avec nltk.PorterStemmer consiste à réduire un mot à sa racine à l’aide de l’algorithme Porter. Cet algorithme supprime les suffixes des mots pour en extraire la racine, ce qui permet de normaliser les mots et de réduire leur variabilité. Par exemple, « running », « runner » et « ran » seraient tous réduits à la racine « run ». Cela permet de simplifier l’analyse des textes en réduisant le nombre de formes de mots.
Fonctions :
-
nltk.PorterStemmer()
Le stemming est un processus de réduction des mots à leur racine, ce qui permet de traiter différentes formes d'un mot comme une seule entité. nltk.PorterStemmer est l'un des algorithmes de stemming les plus utilisés, qui applique une série de règles pour découper les mots en leurs racines.
Importation :
from nltk.stem import PorterStemmer
Attributs :
Paramètre Description stem(word)
Prend un mot en entrée et retourne sa racine (stem) Exemple de code :
from nltk.stem import PorterStemmer # Création de l'objet PorterStemmer stemmer = PorterStemmer() # Exemple de mots mots = ["running", "ran", "easily", "fairly", "cats"] # Application du stemming mots_stemmes = [stemmer.stem(mot) for mot in mots] print(mots_stemmes)
Explication du code :
- Création du
PorterStemmer
: Un objetPorterStemmer
est créé pour appliquer l'algorithme de stemming. - Application du stemming :
- Le mot est passé dans la méthode
stem()
pour obtenir sa racine. - Par exemple, "running" et "ran" seront tous deux réduits à "run".
- Le mot est passé dans la méthode
- Résultat :
- Les mots comme "cats" deviendront "cat", et "easily" deviendra "easili".
Remarques
- Le stemming est utile pour réduire la variabilité des mots dans un corpus, mais il peut parfois produire des racines qui ne correspondent pas à un mot réel (par exemple, "easily" devient "easili").
- Pour des tâches plus avancées comme la lemmatisation,
spaCy
ounltk.WordNetLemmatizer
peuvent être plus appropriés, car ces méthodes retournent des formes grammaticalement correctes.
- Création du
Warning: Trying to access array offset on value of type bool in /home/datacrt/www/wp-content/themes/knowledge-base-lite/single-sous-section.php on line 59