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 :
from nltk.corpus import stopwords from nltk.tokenize import word_tokenize # Exemple de texte texte = "This is a simple example to demonstrate stopword removal." # Tokenisation du texte tokens = word_tokenize(texte) # Chargement des stopwords en anglais stop_words = set(stopwords.words('english')) # Filtrage des tokens en supprimant les stopwords tokens_sans_stopwords = [mot for mot in tokens if mot.lower() not in stop_words] print(tokens_sans_stopwords)
Explication du code :
- Chargement des stopwords : On charge la liste des stopwords en utilisant
stopwords.words('english')
pour l'anglais. Cette liste contient des mots comme "the", "is", "at", etc., qui sont généralement considérés comme non pertinents pour l'analyse de texte. - Tokenisation : Le texte est tokenisé avec
word_tokenize()
, ce qui permet de diviser le texte en mots individuels. - Filtrage des stopwords : On utilise une compréhension de liste pour parcourir les tokens et conserver uniquement ceux qui ne sont pas dans la liste des stopwords. Notez que l'on utilise
mot.lower()
pour s'assurer que la comparaison est insensible à la casse (majuscules/minuscules). - Résultat :
- L'exemple "This is a simple example to demonstrate stopword removal." devient
['simple', 'example', 'demonstrate', 'stopword', 'removal']
après suppression des stopwords.
- L'exemple "This is a simple example to demonstrate stopword removal." devient
🔎 Remarques
nltk
fournit des stopwords pour plusieurs langues, comme l'anglais, le français, l'allemand, etc. Il suffit de spécifier la langue dansstopwords.words('langue')
.- Les stopwords peuvent parfois être personnalisés. Si tu travailles sur un domaine spécifique, tu peux ajouter ou supprimer des mots de la liste selon tes besoins.
- La suppression des stopwords peut améliorer la performance de certains modèles d'analyse de texte, mais il faut être prudent, car dans certains cas, ces mots peuvent porter des informations importantes (par exemple, en analyse de sentiment ou dans des contextes spécifiques).
- Chargement des stopwords : On charge la liste des stopwords en utilisant