Stoppwörter
Swipe um das Menü anzuzeigen
Stoppwörter sind gebräuchliche Wörter, die in der Regel keinen Beitrag zur Bedeutung eines Satzes leisten, zumindest im Kontext der meisten Analysen und Algorithmen. Dazu gehören Wörter wie "the", "is", "in" und "on".
Stoppwörter werden typischerweise nach der Tokenisierung für NLP-Aufgaben wie Sentiment-Analyse, Themenmodellierung oder Schlüsselwort-Extraktion herausgefiltert. Der Grund für das Entfernen von Stoppwörtern ist die Verringerung der Datensatzgröße, wodurch die Recheneffizienz verbessert wird, sowie die Erhöhung der Relevanz der Analyse durch die Konzentration auf bedeutungstragende Wörter.
Entfernen von Stoppwörtern mit NLTK
Um den Prozess zu vereinfachen, stellt nltk eine umfassende Liste von Stoppwörtern in mehreren Sprachen bereit, die einfach abgerufen und zum Filtern von Stoppwörtern aus Textdaten verwendet werden kann.
So erhält man die Liste der englischen Stoppwörter in NLTK und wandelt sie in ein Set um:
1234567import nltk from nltk.corpus import stopwords # Download the stop words list nltk.download('stopwords') # Load English stop words stop_words = set(stopwords.words('english')) print(stop_words)
Die Umwandlung dieser Liste in eine Menge verbessert die Effizienz von Suchvorgängen, da die Überprüfung der Mitgliedschaft in einer Menge schneller ist als in einer Liste.
Vor diesem Hintergrund folgt ein vollständiges Beispiel, wie Stoppwörter aus einem gegebenen Text herausgefiltert werden:
1234567891011121314import nltk from nltk.tokenize import word_tokenize from nltk.corpus import stopwords nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) text = "This is an example sentence demonstrating the removal of stop words." text = text.lower() # Tokenize the text tokens = word_tokenize(text) # Remove stop words filtered_tokens = [word for word in tokens if word not in stop_words] print("Original Tokens:", tokens) print("Filtered Tokens:", filtered_tokens)
Wie ersichtlich, sollten zunächst die Stoppwörter heruntergeladen und die Tokenisierung durchgeführt werden. Im nächsten Schritt wird eine List Comprehension verwendet, um eine Liste zu erstellen, die nur Tokens enthält, die keine Stoppwörter sind. Das word.lower() in der if-Klausel ist entscheidend, um jedes Wort (Token) in Kleinbuchstaben umzuwandeln, da nltk Stoppwörter ausschließlich in Kleinbuchstaben enthält.
Alternativ könnte eine herkömmliche for-Schleife anstelle einer List Comprehension verwendet werden, jedoch ist die List Comprehension in diesem Fall effizienter und prägnanter.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen