Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Stammformen | Stemming und Lemmatisierung
Einführung in NLP

bookStammformen

Verständnis des Stemmings

Note
Definition

Stemming ist eine Textnormalisierungstechnik, die in der NLP verwendet wird, um flektierte Wörter auf ihren Stamm zu reduzieren.

Genauer gesagt beinhaltet das Stemming das Entfernen von Affixen (meistens nur Suffixen) von Wörtern, um deren Grundform, den Stamm, zu erhalten. Zum Beispiel ist der Stamm von "running", "runs" und "run" jeweils "run".

Das Ziel des Stemmings ist es, die Analyse zu vereinfachen, indem ähnliche Wörter als dieselbe Entität behandelt werden, was letztlich die Effizienz bei verschiedenen NLP-Aufgaben verbessert.

Stemming mit NLTK

NLTK stellt verschiedene Stemming-Algorithmen bereit, wobei der Porter Stemmer und der Lancaster Stemmer zu den bekanntesten gehören. Diese Algorithmen wenden spezifische Regeln an, um Affixe zu entfernen und den Wortstamm zu bestimmen.

Alle Stemmer-Klassen in NLTK verfügen über eine gemeinsame Schnittstelle. Zunächst muss eine Instanz der Stemmer-Klasse erstellt werden, anschließend wird die Methode stem() für jedes Token verwendet.

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

Zunächst wurde die Tokenisierung durchgeführt, anschließend wurden die Stoppwörter herausgefiltert und schließlich das Stemming auf die Tokens mittels List Comprehension angewendet. Hinsichtlich der Ergebnisse lieferten diese beiden Stemmer recht unterschiedliche Resultate. Dies liegt daran, dass der Lancaster Stemmer etwa doppelt so viele Regeln wie der Porter Stemmer besitzt und zu den "aggressivsten" Stemmern zählt.

Note
Hinweis

Insgesamt ist der Porter Stemmer die beliebteste Option und liefert bedeutungsvollere Ergebnisse als der Lancaster Stemmer, der dazu neigt, Wörter zu stark zu kürzen.

question mark

Welche der folgenden Aussagen über die Porter- und Lancaster-Stemmer sind zutreffend?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 1

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 3.45

bookStammformen

Swipe um das Menü anzuzeigen

Verständnis des Stemmings

Note
Definition

Stemming ist eine Textnormalisierungstechnik, die in der NLP verwendet wird, um flektierte Wörter auf ihren Stamm zu reduzieren.

Genauer gesagt beinhaltet das Stemming das Entfernen von Affixen (meistens nur Suffixen) von Wörtern, um deren Grundform, den Stamm, zu erhalten. Zum Beispiel ist der Stamm von "running", "runs" und "run" jeweils "run".

Das Ziel des Stemmings ist es, die Analyse zu vereinfachen, indem ähnliche Wörter als dieselbe Entität behandelt werden, was letztlich die Effizienz bei verschiedenen NLP-Aufgaben verbessert.

Stemming mit NLTK

NLTK stellt verschiedene Stemming-Algorithmen bereit, wobei der Porter Stemmer und der Lancaster Stemmer zu den bekanntesten gehören. Diese Algorithmen wenden spezifische Regeln an, um Affixe zu entfernen und den Wortstamm zu bestimmen.

Alle Stemmer-Klassen in NLTK verfügen über eine gemeinsame Schnittstelle. Zunächst muss eine Instanz der Stemmer-Klasse erstellt werden, anschließend wird die Methode stem() für jedes Token verwendet.

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

Zunächst wurde die Tokenisierung durchgeführt, anschließend wurden die Stoppwörter herausgefiltert und schließlich das Stemming auf die Tokens mittels List Comprehension angewendet. Hinsichtlich der Ergebnisse lieferten diese beiden Stemmer recht unterschiedliche Resultate. Dies liegt daran, dass der Lancaster Stemmer etwa doppelt so viele Regeln wie der Porter Stemmer besitzt und zu den "aggressivsten" Stemmern zählt.

Note
Hinweis

Insgesamt ist der Porter Stemmer die beliebteste Option und liefert bedeutungsvollere Ergebnisse als der Lancaster Stemmer, der dazu neigt, Wörter zu stark zu kürzen.

question mark

Welche der folgenden Aussagen über die Porter- und Lancaster-Stemmer sind zutreffend?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 1
some-alt