Zum Inhalt springen

Stemming vs. Lemmatization

  • Daten

Stemming und Lemmatization sind Algorithmen, die in der natürlichen Sprachverarbeitung (NLP) zur Normalisierung von Text und zur Vorbereitung von Wörtern und Dokumenten für die weitere Verarbeitung im maschinellen Lernen verwendet werden. Sie werden beispielsweise von Suchmaschinen oder Chatbots genutzt, um die Bedeutung von Wörtern herauszufinden.

Im NLP möchte man zum Beispiel die Tatsache anerkennen, dass die Wörter „like“ und „liked“ dasselbe Wort in verschiedenen Zeitformen sind. Das Ziel ist dann, beide Wörter auf einen gemeinsamen Wortstamm zu reduzieren, was entweder durch Stemming oder Lemmatisierung geschieht. Auf diese Weise werden beide Wörter ähnlich behandelt, sonst wären „like“ und „liked“ für das Modell genauso unterschiedlich wie „like“ und „car“.

Was ist Stemming?

Beim Stemming werden Suffixe von Wörtern entfernt, so dass ein sogenannter Wortstamm entsteht. Die Wörter „likes“, „likely“ und „liked“ zum Beispiel ergeben alle den gemeinsamen Wortstamm „like“, der als Synonym für alle drei Wörter verwendet werden kann. Auf diese Weise kann ein NLP-Modell lernen, dass alle drei Wörter irgendwie ähnlich sind und in einem ähnlichen Kontext verwendet werden.

Durch das Stemming können wir Wörter unabhängig von ihren Beugungen auf ihren Basisstamm standardisieren, was bei vielen Anwendungen wie dem Clustering oder der Klassifizierung von Text hilfreich ist. Suchmaschinen nutzen diese Techniken ausgiebig, um unabhängig von der Wortform bessere Ergebnisse zu erzielen. Vor der Einführung von Wortstämmen bei Google im Jahr 2003 wurden bei einer Suche nach „Fisch“ keine Websites über Fische oder Fischen angezeigt.

Der Porter’s Stemmer Algorithmus ist eine der beliebtesten Stemming-Methoden und wurde 1980 vorgeschlagen. Er basiert auf der Idee, dass die Suffixe in der englischen Sprache aus einer Kombination kleinerer und einfacherer Suffixe bestehen. Er ist für seine effizienten und einfachen Verfahren bekannt, bringt aber auch einige Nachteile mit sich.

Da er auf vielen, fest kodierten Regeln basiert, die sich aus der englischen Sprache ergeben, kann er nur für englische Wörter verwendet werden. Außerdem kann es Fälle geben, in denen die Ausgabe von Porter’s Stemmer kein englisches Wort ist, sondern nur ein künstlicher Wortstamm.

from nltk.stem.porter import *

porter_stemmer = PorterStemmer()
print(porter_stemmer.stem('alumnus'))

Out:
'alumnu'

Die größten Probleme sind jedoch Over- und Understemming, die bei den meisten dieser Algorithmen zu den üblichen Mängeln gehören.

Over- und Understemming

Wenn unser Algorithmus mehrere Wörter auf denselben Wortstamm zurückführt, obwohl sie nicht miteinander verwandt sind, nennen wir das „Overstemming“. Auch wenn die Wörter „universal“, „university“ und „universe“ miteinander verwandt sind und vom selben Wortstamm abstammen, sind ihre Bedeutungen weit voneinander entfernt. Wenn wir diese Wörter in eine gute Suchmaschine eingeben, sollten die Suchergebnisse sehr unterschiedlich sein und nicht als Synonyme behandelt werden. Wir bezeichnen einen solchen Fehler als False Positive.

Das Bild zeigt ein Beispiel für Overstemming.
Beispiel University

Under-Stemming ist das genaue Gegenteil dieses Verhaltens und umfasst Fälle, in denen mehrere Wörter nicht auf einen gemeinsamen Wortstamm zurückgeführt werden, obwohl sie dies sollten. Das Wort „Alumnus“ im Englischen bezeichnet einen ehemaligen Studenten einer Universität und wird meist für männliche Personen verwendet. „Alumnae“ ist die weibliche Version davon und „Alumni“ sind mehrere ehemalige Studenten einer Universität.

Das Bild zeigt ein Beispiel für Understemming.
Beispiel Alumnus

Diese Wörter sollten in einer einfachen Suchmaschine oder anderen NLP-Anwendungen definitiv als Synonyme behandelt werden. Die meisten Stemming-Algorithmen schneiden sie jedoch nicht auf ihre gemeinsame Wurzel zurück, was zu einem False Negative Fehler führt.

Was ist Lemmatization?

Lemmatisierung ist eine Weiterentwicklung des Stemming und beschreibt den Prozess der Gruppierung der verschiedenen Formen eines Wortes, damit sie als ein einziges Element analysiert werden können. Die Lemmatisierung ähnelt dem Stemming, bringt aber den Kontext zu den Wörtern. Sie verbindet also Wörter mit ähnlichen Bedeutungen zu einem Wort. Lemmatisierungsalgorithmen verwenden in der Regel auch Positionsargumente als Eingaben, z. B. ob das Wort ein Adjektiv, ein Substantiv oder ein Verb ist.

Das Bild zeigt ein Beispiel von Lemmatization.
Beispiele von Lemmatization

Um die Bedeutung und den Kontext der Wörter zu kennen, werden große Wörterbücher in den einzelnen Sprachen genutzt, um darin die morphologische Bedeutung des Wortes zu finden. Das macht den Algorithmus sehr komplex und zeitaufwendig.

Was ist der Unterschied zwischen Lemmatization und Stemming?

Kurz gesagt ist der Unterschied zwischen diesen Algorithmen, dass lediglich die Lemmatisierung auch die Bedeutung des Wortes mit in die Evaluierung mit aufnimmt. Beim Stemming wird lediglich eine gewisse Anzahl an Buchstaben vom Ende des Wortes abgeschnitten, um einen Wortstamm zu erhalten. Die Bedeutung des Wortes spielt dafür keine Rolle.

Wie im vorherigen Beispiel gesehen, erkennt ein Lemmatization Algorithmus, dass das englische Wort „better“ vom Wort „good“ abgeleitet ist, da beide eine ähnliche Bedeutung aufweisen. Eine solche Unterscheidung könnte das Stemming hingegen nicht treffen und würde vermutlich „bet“ oder „bett“ als Wortstamm liefern.

Ist Lemmatisierung besser als Stemming?

Bei der Textvorverarbeitung für NLP benötigen wir sowohl Stemming als auch Lemmatisierung, somit haben beide Algorithmen ihre Daseinsberechtigung. Manchmal findet man sogar Artikel oder Diskussionen, in denen beide Wörter als Synonyme verwendet werden, obwohl sie es nicht sind.

Normalerweise wird die Lemmatisierung dem Stemming vorgezogen, da es sich dabei um eine kontextbezogene Analyse von Wörtern handelt und nicht um die Verwendung einer fest kodierten Regel zum Abschneiden von Suffixen. Diese Kontextualität ist vor allem dann wichtig, wenn Inhalte gezielt verstanden werden müssen, wie dies beispielsweise in einem Chatbot der Fall ist.

Für andere Anwendungen können die Funktionalitäten von Stemming auch schon ausreichend sein. Suchmaschinen greifen darauf beispielsweise in großem Stile zurück, um die Suchergebnisse zu verbessern. Indem nicht nur die Suchphrase allein sondern auch die Wortstämme im Index gesucht werden, können verschiedene Wortformen überwunden und die Suche auch stark beschleunigt werden.

Das solltest Du mitnehmen

  • Stemming und Lemmatisierung sind Methoden, die uns bei der Textvorverarbeitung für die Verarbeitung natürlicher Sprache helfen.
  • Beide helfen dabei, mehrere Wörter auf einen gemeinsamen Wortstamm abzubilden.
  • Auf diese Weise werden diese Wörter ähnlich behandelt und das Modell lernt, dass sie in ähnlichen Kontexten verwendet werden können.

Andere Beiträge zum Thema Stemming vs. Lemmatization

  • Auf dieser Website finden Sie ein Online-Tool, mit dem Sie verschiedene Stemmer-Algorithmen testen können, indem Sie ein Wort direkt online bearbeiten.
close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Cookie Consent mit Real Cookie Banner