Suppression des stopwords avec nltk

La suppression des stopwords avec nltk consiste à éliminer les mots fréquents et peu informatifs (comme « le », « et », « à », « de », etc.) d’un texte. Ces mots, bien qu’importants pour la structure de la langue, n’apportent généralement pas de valeur analytique dans des tâches de traitement de texte, comme l’analyse de sentiments ou la classification. Avec la bibliothèque nltk (Natural Language Toolkit), vous pouvez facilement accéder à une liste de stopwords pré-définis dans différentes langues et les supprimer des textes pour réduire leur complexité et améliorer les performances des modèles de traitement du langage naturel.

Fonctions :

  • stopwords()

    Les stopwords sont des mots fréquents et généralement peu informatifs, comme "le", "la", "et", "en", qui n'apportent pas beaucoup d'information à une analyse de texte. La suppression de ces mots est une étape importante dans le prétraitement des textes, notamment en analyse de texte et en traitement du langage naturel (NLP). nltk fournit une liste de stopwords pour plusieurs langues. Cette méthode consiste à filtrer les tokens d'un texte en supprimant ceux qui sont présents dans la liste des stopwords.

    Importation :

    from nltk.corpus import stopwords

    Attributs :

    Paramètre Description
    stopwords.words(language) Liste des stopwords pour la langue spécifiée. Par exemple, stopwords.words('english') retourne la liste des stopwords en anglais.

    Exemple de code :

    import nltk
    from nltk.corpus import stopwords
    from nltk.tokenize import word_tokenize
    
    # Télécharger les ressources nécessaires (une seule fois)
    nltk.download('stopwords')
    nltk.download('punkt')
    
    # Texte à analyser
    texte = "Ceci est un exemple simple pour démontrer la suppression des stopwords."
    
    # Tokenisation du texte
    tokens = word_tokenize(texte)
    
    # Charger la liste des stopwords en français
    stop_words = set(stopwords.words('french'))
    
    # Filtrer les tokens pour enlever les stopwords
    tokens_filtrés = [mot for mot in tokens if mot.lower() not in stop_words]
    
    print(tokens_filtrés)
    Résultat du code

    Explication du code :

    • Importation des modules : On importe la bibliothèque nltk, ainsi que les modules stopwords et word_tokenize nécessaires pour gérer les mots vides (stopwords) et pour découper le texte en mots (tokenisation).
    • Téléchargement des ressources : Les fonctions nltk.download('stopwords') et nltk.download('punkt') permettent de télécharger les fichiers nécessaires pour la liste des mots vides en français et pour la tokenisation. Cette étape est indispensable avant d’utiliser ces fonctions.
    • Définition du texte : La variable texte contient une phrase que l’on souhaite analyser.
    • Tokenisation : La fonction word_tokenize(texte) découpe le texte en une liste de mots (tokens), en séparant la ponctuation et les mots.
    • Chargement des stopwords : La liste des mots vides en français est chargée via stopwords.words('french') et convertie en ensemble (set) pour optimiser la recherche.
    • Filtrage des tokens : On crée une nouvelle liste tokens_filtrés qui contient uniquement les mots ne faisant pas partie des stopwords. La méthode mot.lower() assure que la comparaison se fait en minuscules, pour éviter de rater des mots à cause de la casse.
    • Affichage du résultat : Le print affiche la liste des mots importants du texte, débarrassée des mots vides.