Ich habe also einen Datensatz, dessen Verwendung ich Stoppwörter entfernen möchte
stopwords.words('english')
Ich habe Probleme damit, dies in meinem Code zu verwenden, um diese Wörter einfach herauszunehmen. Ich habe bereits eine Liste der Wörter aus diesem Datensatz. Der Teil, mit dem ich zu kämpfen habe, besteht darin, mit dieser Liste zu vergleichen und die Stoppwörter zu entfernen. Jede Hilfe wird geschätzt.
python
nltk
stop-words
Alex
quelle
quelle
from nltk.corpus import stopwords
für zukünftige Googlernltk.download("stopwords")
werden, um das Stoppwortwörterbuch verfügbar zu machen.Antworten:
quelle
stops = set(stopwords.words("english"))
stattdessen in Betracht, um die Leistung zu verbessern .stopwords.words('english')
sind Kleinbuchstaben.[w.lower() for w in word_list]
Sie können auch ein Set-Diff ausführen, zum Beispiel:
quelle
Ich nehme an, Sie haben eine Liste von Wörtern (word_list), aus denen Sie Stoppwörter entfernen möchten. Sie könnten so etwas tun:
quelle
Um alle Arten von Stoppwörtern, einschließlich nltk-Stoppwörtern, auszuschließen, können Sie Folgendes tun:
quelle
len(get_stop_words('en')) == 174
vslen(stopwords.words('english')) == 179
stop-words
Nur für diesen Zweck gibt es ein sehr einfaches, leichtes Python-Paket .Installieren Sie das Paket zunächst mit:
pip install stop-words
Dann können Sie Ihre Wörter in einer Zeile mithilfe des Listenverständnisses entfernen:
Dieses Paket ist sehr leicht herunterzuladen (im Gegensatz zu nltk), funktioniert für beide
Python 2
und enthält StoppwörterPython 3
für viele andere Sprachen wie:quelle
Verwenden Sie die Textcleaner- Bibliothek, um Stoppwörter aus Ihren Daten zu entfernen.
Folgen Sie diesem Link: https://yugantm.github.io/textcleaner/documentation.html#remove_stpwrds
Befolgen Sie diese Schritte, um dies mit dieser Bibliothek zu tun.
Nach der Installation:
Verwenden Sie den obigen Code, um die Stoppwörter zu entfernen.
quelle
Wenn Sie diese Funktion verwenden können, sollten Sie beachten, dass Sie alle Wörter senken müssen
quelle
mit Filter :
quelle
word_list
groß, ist dieser Code sehr langsam. Es ist besser, die Stoppwortliste in einen Satz zu konvertieren, bevor Sie sie verwenden :.. in set(stopwords.words('english'))
.Hier ist meine Meinung dazu, falls Sie die Antwort sofort in eine Zeichenfolge (anstelle einer Liste gefilterter Wörter) einfügen möchten:
quelle
Falls Ihre Daten als gespeichert sind
Pandas DataFrame
, können Sieremove_stopwords
von textero , dass die NLTK Stoppwörter Liste verwenden Standard .quelle
quelle
quelle