Stopwoorden
Veeg om het menu te tonen
Stopwoorden zijn veelvoorkomende woorden die doorgaans niet bijdragen aan de betekenis van een zin, althans voor de doeleinden van de meeste analyses en algoritmen. Dit zijn onder andere woorden zoals "the", "is", "in" en "on".
Stopwoorden worden doorgaans na tokenisatie gefilterd voor NLP-taken, zoals sentimentanalyse, topic modeling of het extraheren van kernwoorden. Het verwijderen van stopwoorden heeft als doel de dataset te verkleinen, waardoor de rekenkundige efficiëntie wordt verbeterd, en de relevantie van de analyse wordt verhoogd door te focussen op de woorden die daadwerkelijk betekenis dragen.
Stopwoorden verwijderen met NLTK
Om het eenvoudiger te maken, biedt nltk een uitgebreide lijst van stopwoorden in meerdere talen, die eenvoudig toegankelijk is en gebruikt kan worden om stopwoorden uit tekstdata te filteren.
Hier volgt hoe je de lijst met Engelse stopwoorden in NLTK kunt verkrijgen en omzetten naar een set:
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)
Het omzetten van deze lijst naar een set verhoogt de efficiëntie van opzoekingen, omdat het controleren van lidmaatschap in een set sneller is dan in een lijst.
Met deze kennis bekijken we een volledig voorbeeld van het filteren van stopwoorden uit een gegeven tekst:
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)
Zoals te zien is, moeten eerst de stopwoorden worden gedownload en moet tokenisatie worden uitgevoerd. De volgende stap is het gebruik van een list comprehension om een lijst te maken die alleen tokens bevat die geen stopwoorden zijn. De word.lower() in de if-clausule is essentieel om elk woord (token) om te zetten naar kleine letters, aangezien nltk stopwoorden uitsluitend in kleine letters bevat.
Als alternatief kan een gewone for-lus worden gebruikt in plaats van een list comprehension, maar het gebruik van list comprehension is hier efficiënter en beknopter.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.