123 votes

Comment supprimer les mots vides en utilisant nltk ou python ?

J'ai donc un jeu de données dont je voudrais supprimer les mots vides en utilisant la méthode suivante

stopwords.words('english')

Je me demande comment l'utiliser dans mon code pour supprimer simplement ces mots. J'ai déjà une liste des mots de cet ensemble de données, la partie qui me pose problème est la comparaison avec cette liste et la suppression des mots vides. Toute aide est la bienvenue.

4 votes

Où avez-vous trouvé les mots-clés ? Est-ce que ça vient de NLTK ?

41 votes

@MattO'Brien from nltk.corpus import stopwords pour les futurs googlers

13 votes

Il est également nécessaire d'exécuter nltk.download("stopwords") afin de rendre le dictionnaire de mots vides disponible.

0voto

Jonathan Besomi Points 172

Si vos données sont stockées sous forme de Pandas DataFrame vous pouvez utiliser remove_stopwords de textero qui utilisent la liste de mots d'arrêt de NLTK par par défaut .

import pandas as pd
import texthero as hero
df['text_without_stopwords'] = hero.remove_stopwords(df['text'])

0voto

H M Points 41
from nltk.corpus import stopwords 

from nltk.tokenize import word_tokenize 

example_sent = "This is a sample sentence, showing off the stop words filtration."

stop_words = set(stopwords.words('english')) 

word_tokens = word_tokenize(example_sent) 

filtered_sentence = [w for w in word_tokens if not w in stop_words] 

filtered_sentence = [] 

for w in word_tokens: 
    if w not in stop_words: 
        filtered_sentence.append(w) 

print(word_tokens) 
print(filtered_sentence)

0voto

Yasuni Chamodya Points 21

Je vais vous montrer quelques exemples Tout d'abord, j'extrais les données textuelles du cadre de données ( twitter_df ) pour poursuivre le traitement comme suit

     from nltk.tokenize import word_tokenize
     tweetText = twitter_df['text']

Ensuite, pour la tokenisation, j'utilise la méthode suivante

     from nltk.tokenize import word_tokenize
     tweetText = tweetText.apply(word_tokenize)

Ensuite, pour supprimer les mots vides,

     from nltk.corpus import stopwords
     nltk.download('stopwords')

     stop_words = set(stopwords.words('english'))
     tweetText = tweetText.apply(lambda x:[word for word in x if word not in stop_words])
     tweetText.head()

Je pense que cela vous aidera

-3voto

Muhammad Yusuf Points 199
   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

0 votes

Il est préférable d'ajouter stopwords.words("english") que de spécifier chaque mot que vous devez supprimer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X