J'ai donc un ensemble de données que je voudrais supprimer des mots vides d'utilisation
stopwords.words('english')
J'ai du mal à utiliser cela dans mon code pour simplement supprimer ces mots. J'ai déjà une liste des mots de cet ensemble de données, la partie avec laquelle je me bats est de comparer à cette liste et de supprimer les mots vides. Toute aide est appréciée.
python
nltk
stop-words
Alex
la source
la source
from nltk.corpus import stopwords
pour les futurs googleursnltk.download("stopwords")
pour rendre le dictionnaire de mots vides disponible.Réponses:
la source
stops = set(stopwords.words("english"))
plutôt.stopwords.words('english')
sont en minuscules. Assurez-vous donc de n'utiliser que des mots en minuscules dans la liste, par exemple[w.lower() for w in word_list]
Vous pouvez également faire un ensemble de différences, par exemple:
la source
Je suppose que vous avez une liste de mots (word_list) dont vous souhaitez supprimer les mots vides. Vous pouvez faire quelque chose comme ceci:
la source
Pour exclure tous les types de mots vides, y compris les mots vides nltk, vous pouvez faire quelque chose comme ceci:
la source
len(get_stop_words('en')) == 174
vslen(stopwords.words('english')) == 179
Il existe un package python léger très simple
stop-words
juste pour cela.Installez d'abord le package en utilisant:
pip install stop-words
Ensuite, vous pouvez supprimer vos mots sur une ligne en utilisant la compréhension de liste:
Ce package est très léger à télécharger (contrairement à nltk), fonctionne pour les deux
Python 2
etPython 3
, et il a des mots vides pour de nombreuses autres langues comme:la source
Utilisez la bibliothèque textcleaner pour supprimer les mots vides de vos données.
Suivez ce lien: https://yugantm.github.io/textcleaner/documentation.html#remove_stpwrds
Suivez ces étapes pour le faire avec cette bibliothèque.
Après l'installation:
Utilisez le code ci-dessus pour supprimer les mots vides.
la source
en utilisant le filtre :
la source
word_list
est grand, ce code est très lent. Il est préférable de convertir la liste des mots vides à un ensemble avant de l' utiliser:.. in set(stopwords.words('english'))
.vous pouvez utiliser cette fonction, vous devriez remarquer que vous devez abaisser tous les mots
la source
Voici mon point de vue à ce sujet, au cas où vous voudriez immédiatement obtenir la réponse dans une chaîne (au lieu d'une liste de mots filtrés):
la source
Dans le cas où vos données sont stockées en tant que
Pandas DataFrame
, vous pouvez utiliserremove_stopwords
from textero qui utilise la liste de mots vides NLTK par défaut .la source
la source
la source