Donc, j'ai un ensemble de données que je voudrais supprimer les mots vides de l'utilisation
stopwords.words('english')
Je ne parviens pas à utiliser ceci 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 la comparaison à cette liste et la suppression des mots vides. Toute aide est appréciée.
from nltk.corpus import stopwords
# ...
filtered_words = [Word for Word in Word_list if Word not in stopwords.words('english')]
Vous pouvez également faire un diff défini, par exemple:
list(set(nltk.regexp_tokenize(sentence, pattern, gaps=True)) - set(nltk.corpus.stopwords.words('english')))
Je suppose que vous avez une liste de mots (Word_list) dont vous souhaitez supprimer les mots vides. Vous pouvez faire quelque chose comme ça:
filtered_Word_list = Word_list[:] #make a copy of the Word_list
for Word in Word_list: # iterate over Word_list
if Word in stopwords.words('english'):
filtered_Word_list.remove(Word) # remove Word from filtered_Word_list if it is a stopword
Pour exclure tous les types de mots vides, y compris les mots vides nltk, vous pouvez faire quelque chose comme ceci:
from stop_words import get_stop_words
from nltk.corpus import stopwords
stop_words = list(get_stop_words('en')) #About 900 stopwords
nltk_words = list(stopwords.words('english')) #About 150 stopwords
stop_words.extend(nltk_words)
output = [w for w in Word_list if not w in stop_words]
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.
pip install textcleaner
Après avoir installé:
import textcleaner as tc
data = tc.document(<file_name>)
#you can also pass list of sentences to the document class constructor.
data.remove_stpwrds() #inplace is set to False by default
Utilisez le code ci-dessus pour supprimer les mots vides.
vous pouvez utiliser cette fonction, vous devriez remarquer que vous devez baisser tous les mots
from nltk.corpus import stopwords
def remove_stopwords(Word_list):
processed_Word_list = []
for Word in Word_list:
Word = Word.lower() # in case they arenet all lower cased
if Word not in stopwords.words("english"):
processed_Word_list.append(Word)
return processed_Word_list
en utilisant filtre :
from nltk.corpus import stopwords
# ...
filtered_words = list(filter(lambda Word: Word not in stopwords.words('english'), Word_list))
import sys
print ("enter the string from which you want to remove list of stop words")
userstring = input().split(" ")
list =["a","an","the","in"]
another_list = []
for x in userstring:
if x not in list: # comparing from the list and removing it
another_list.append(x) # it is also possible to use .remove
for x in another_list:
print(x,end=' ')
# 2) if you want to use .remove more preferred code
import sys
print ("enter the string from which you want to remove list of stop words")
userstring = input().split(" ")
list =["a","an","the","in"]
another_list = []
for x in userstring:
if x in list:
userstring.remove(x)
for x in userstring:
print(x,end = ' ')
#the code will be like this