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 :


    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
  • 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)
    Résultat du code

    Explication du code :

    1. Création du PorterStemmer : Un objet PorterStemmer est créé pour appliquer l'algorithme de stemming.
    2. 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".
    3. 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 ou nltk.WordNetLemmatizer peuvent être plus appropriés, car ces méthodes retournent des formes grammaticalement correctes.