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

Lemmatisierung

Swipe um das Menü anzuzeigen

Verständnis der Lemmatisierung

Note
Definition

Lemmatisierung ist eine Textnormalisierungstechnik, die in der NLP verwendet wird, um Wörter auf ihre Wörterbuchform, das sogenannte Lemma, zu reduzieren.

Im Gegensatz zum Stemming, das grob Affixe abschneidet, berücksichtigt die Lemmatisierung den Kontext und wandelt das Wort in seine Wörterbuchform um. Zum Beispiel werden 'am', 'are' und 'is' alle zu 'be' lemmatisiert. Dieser Ansatz kann die Größe des Vokabulars (die Anzahl der einzigartigen Wörter) in großen Textkorpora erheblich reduzieren und dadurch die Effizienz beim Trainieren von Modellen erhöhen.

Auf der anderen Seite ist die Lemmatisierung zwar genauer, aber auch rechenintensiver und kann bei großen Datensätzen zeitaufwendig sein. Für noch bessere Genauigkeit wird empfohlen, vor der Lemmatisierung eine morphologische Analyse und Wortartenerkennung durchzuführen.

Note
Hinweis

Mache dir vorerst keine Gedanken über das Part-of-Speech-Tagging, da dies das nächste Thema ist, das du kennenlernen wirst.

Lemmatisierung mit NLTK

Der WordNet Lemmatizer, bereitgestellt von der NLTK-Bibliothek, nutzt das WordNet-Korpus zur Durchführung der Lemmatisierung.

Note
Mehr erfahren

WordNet ist eine semantisch umfangreiche lexikalische Datenbank für Englisch, die weit über ein einfaches Korpus hinausgeht. Sie gruppiert Wörter in Synonymgruppen, sogenannte Synsets, von denen jede ein eigenes Konzept abbildet und mit Definitionen sowie Anwendungsbeispielen versehen ist. Darüber hinaus kodiert WordNet bedeutungsvolle Beziehungen zwischen diesen Synsets – wie Hyperonyme (übergeordnete, allgemeinere Begriffe) und Hyponyme (untergeordnete, spezifischere Begriffe) – und bietet damit ein leistungsfähiges Framework zur Erforschung und Disambiguierung von Wortbedeutungen.

Bei der Verwendung des WordNet-Lemmatizers wird das Zielwort in der WordNet-Datenbank nachgeschlagen, um das passendste Lemma des Wortes zu finden.

Wie oben erwähnt, können Wörter in unterschiedlichen Kontexten verschiedene Bedeutungen haben (z. B. "running" als Verb vs. "running" als Substantiv). Daher kann es erforderlich sein, die Wortart anzugeben (z. B. Verb, Substantiv, Adjektiv). Dies hilft dem Lemmatizer, das korrekte Lemma basierend auf der Rolle des Wortes im Satz auszuwählen.

1234567891011
from nltk.stem import WordNetLemmatizer import nltk # Download the WordNet corpus nltk.download('wordnet') # Initialize the WordNet lemmatizer lemmatizer = WordNetLemmatizer() # Parts of speech, 'v' for verb and 'n' for noun parts_of_speech = ['v', 'n'] # Lemmatize words lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech] print("Lemmatized words:", lemmatized_words)
Code-Beschreibung
expand arrow
from nltk.stem import WordNetLemmatizer

Diese Zeile importiert die Klasse WordNetLemmatizer.

nltk.download('wordnet')

Diese Zeile lädt das WordNet-Korpus herunter und stellt damit sicher, dass alle Funktionen im Zusammenhang mit WordNet, wie z. B. die Lemmatization, verwendet werden können.

lemmatizer = WordNetLemmatizer()

Diese Zeile erstellt eine Instanz der Klasse WordNetLemmatizer, die zur Durchführung der Lemmatization verwendet wird.

parts_of_speech = ['v', 'n']

Diese Zeile erstellt eine Liste von Wortarten, die bei der Lemmatization verwendet werden.

lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech]

Diese Zeile erstellt eine Liste von lemmatisierten Wörtern mithilfe von List Comprehension. Der Prozess der Lemmatization wird über die Methode lemmatize() des lemmatizer-Objekts durchgeführt. Der String, der ein Wort repräsentiert, sollte das erste Argument sein und die gewünschte Wortart das zweite optionale Argument ('v' für Verb, 'a' für Adjektiv, 'n' für Substantiv usw.).

Man könnte das Angeben der Wortart weglassen, indem man lemmatizer.lemmatize("running") aufruft, aber wie Sie sehen, führen unterschiedliche Wortarten zu unterschiedlichen Ergebnissen. Daher ist es am besten, Part-of-Speech-Tagging im Voraus durchzuführen.

question mark

Was ist der Hauptvorteil der Lemmatisierung im Vergleich zum Stemming?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

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

Abschnitt 2. Kapitel 3
some-alt