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 :

    1. Création du SnowballStemmer : Un objet SnowballStemmer est créé avec la langue spécifiée ('french' dans cet exemple) 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, "mangeant", "mangé", "mangez", et "manger" seront tous réduits à "mang".
    3. 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 au PorterStemmer 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.