Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Stammen | Stemming en Lemmatizatie
Introductie tot NLP met Python

bookStammen

Inzicht in Stemming

Note
Definitie

Stemming is een tekstnormalisatietechniek die in NLP wordt gebruikt om verbogen woorden terug te brengen tot hun stam.

Meer specifiek houdt stemming in dat affixen (meestal alleen suffixen) van woorden worden verwijderd om hun stamvorm, de stam, te verkrijgen. Bijvoorbeeld, de stammen van "running", "runs" en "run" zijn allemaal "run."

Het doel van stemming is om de analyse te vereenvoudigen door vergelijkbare woorden als dezelfde entiteit te behandelen, wat uiteindelijk de efficiëntie bij verschillende NLP-taken verbetert.

Stemming met NLTK

NLTK biedt verschillende stemming-algoritmen, waarvan de Porter Stemmer en de Lancaster Stemmer het populairst zijn. Deze algoritmen passen specifieke regels toe om affixen te verwijderen en de stam van een woord af te leiden.

Alle stemmer-klassen in NLTK delen een gemeenschappelijke interface. Eerst dient een instantie van de stemmerklasse te worden aangemaakt, waarna de stem()-methode op elk van de tokens kan worden toegepast.

1234567891011121314151617181920212223242526272829
import nltk from nltk.stem import PorterStemmer, LancasterStemmer from nltk.tokenize import word_tokenize from nltk.corpus import stopwords nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) # Create a Porter Stemmer instance porter_stemmer = PorterStemmer() # Create a Lancaster Stemmer instance lancaster_stemmer = LancasterStemmer() text = "Stemming is an essential technique for natural language processing." text = text.lower() tokens = word_tokenize(text) # Filter out the stop words tokens = [token for token in tokens if token.lower() not in stop_words] # Apply stemming to each token porter_stemmed_tokens = [porter_stemmer.stem(token) for token in tokens] lancaster_stemmed_tokens = [lancaster_stemmer.stem(token) for token in tokens] # Display the results print("Original Tokens:", tokens) print("Stemmed Tokens (Porter Stemmer):", porter_stemmed_tokens) print("Stemmed Tokens (Lancaster Stemmer):", lancaster_stemmed_tokens)
copy

Eerst is tokenisatie toegepast, vervolgens zijn de stopwoorden gefilterd en tenslotte is stemming uitgevoerd op de tokens met behulp van list comprehension. Wat betreft de resultaten leverden deze twee stemmers vrij verschillende uitkomsten op. Dit komt doordat de Lancaster Stemmer ongeveer twee keer zoveel regels bevat als de Porter Stemmer en een van de meest "agressieve" stemmers is.

Note
Opmerking

Over het algemeen is de Porter Stemmer de meest populaire optie en levert meer betekenisvolle resultaten op dan de Lancaster Stemmer, die de neiging heeft om woorden te veel te reduceren.

question mark

Welke van de volgende uitspraken over de Porter en Lancaster stemmers zijn waar?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 1

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 3.45

bookStammen

Veeg om het menu te tonen

Inzicht in Stemming

Note
Definitie

Stemming is een tekstnormalisatietechniek die in NLP wordt gebruikt om verbogen woorden terug te brengen tot hun stam.

Meer specifiek houdt stemming in dat affixen (meestal alleen suffixen) van woorden worden verwijderd om hun stamvorm, de stam, te verkrijgen. Bijvoorbeeld, de stammen van "running", "runs" en "run" zijn allemaal "run."

Het doel van stemming is om de analyse te vereenvoudigen door vergelijkbare woorden als dezelfde entiteit te behandelen, wat uiteindelijk de efficiëntie bij verschillende NLP-taken verbetert.

Stemming met NLTK

NLTK biedt verschillende stemming-algoritmen, waarvan de Porter Stemmer en de Lancaster Stemmer het populairst zijn. Deze algoritmen passen specifieke regels toe om affixen te verwijderen en de stam van een woord af te leiden.

Alle stemmer-klassen in NLTK delen een gemeenschappelijke interface. Eerst dient een instantie van de stemmerklasse te worden aangemaakt, waarna de stem()-methode op elk van de tokens kan worden toegepast.

1234567891011121314151617181920212223242526272829
import nltk from nltk.stem import PorterStemmer, LancasterStemmer from nltk.tokenize import word_tokenize from nltk.corpus import stopwords nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) # Create a Porter Stemmer instance porter_stemmer = PorterStemmer() # Create a Lancaster Stemmer instance lancaster_stemmer = LancasterStemmer() text = "Stemming is an essential technique for natural language processing." text = text.lower() tokens = word_tokenize(text) # Filter out the stop words tokens = [token for token in tokens if token.lower() not in stop_words] # Apply stemming to each token porter_stemmed_tokens = [porter_stemmer.stem(token) for token in tokens] lancaster_stemmed_tokens = [lancaster_stemmer.stem(token) for token in tokens] # Display the results print("Original Tokens:", tokens) print("Stemmed Tokens (Porter Stemmer):", porter_stemmed_tokens) print("Stemmed Tokens (Lancaster Stemmer):", lancaster_stemmed_tokens)
copy

Eerst is tokenisatie toegepast, vervolgens zijn de stopwoorden gefilterd en tenslotte is stemming uitgevoerd op de tokens met behulp van list comprehension. Wat betreft de resultaten leverden deze twee stemmers vrij verschillende uitkomsten op. Dit komt doordat de Lancaster Stemmer ongeveer twee keer zoveel regels bevat als de Porter Stemmer en een van de meest "agressieve" stemmers is.

Note
Opmerking

Over het algemeen is de Porter Stemmer de meest populaire optie en levert meer betekenisvolle resultaten op dan de Lancaster Stemmer, die de neiging heeft om woorden te veel te reduceren.

question mark

Welke van de volgende uitspraken over de Porter en Lancaster stemmers zijn waar?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 1
some-alt