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 Stemmer 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 die Stemmer-Methode 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 Stemmer-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 falsch gebildete Wortstämme, die bei den meisten dieser Algorithmen zu den üblichen Mängeln gehören.

Was ist 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

Understemming 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 Stemmer-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 Stemmings und beschreibt den Prozess der Gruppierung der verschiedenen Formen eines Wortes, damit sie als ein einziges Element analysiert werden können. Die Lemmatisierung ähnelt der Stemmer-Methode, bringt aber den Kontext zu den Wörtern. Sie verbindet also Wörter mit ähnlichen Bedeutungen zu einem Wort. Die Algorithmen 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. Bei der Stemmer-Methode 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 werden sowohl Stemmer-Methoden 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 der Stemmer-Methode 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.

In welchen Bereichen werden diese Algorithmen eingesetzt?

Wie bereits erwähnt, sind diese beiden Methoden vor allem im Bereich des Natural Language Processings interessant. Folgende Anwendungen greifen darauf zurück:

  • Suchalgorithmen: Die Qualität von Suchergebnissen können deutlich verbessert werden, wenn beispielsweise auf Wortstämme zurückgegriffen wird und dadurch Schreibfehler oder Pluralformen nicht so stark ins Gewicht fallen.
  • Wissensgraphen: Beim Aufbau von Wissenstrukturen, wie beispielsweise ein Knowledge Graph, helfen diese Algorithmen bei der Extraktion von Entitäten, wie Personen oder Orten, und deren Verbindung zu anderen Entitäten. Durch diese Knowledge Graphs können auch wiederum Suchalgorithmen verbessert werden.
  • Sentimentanalysen: In vielen Anwendungen macht es Sinn, Texte nachdem Sentiment zu klassifizieren, also zum Beispiel positiv oder negativ. Dadurch lassen sich beispielsweise Produktrezensionen sehr schnell einordnen und gezielter bearbeiten. Die Nutzung der vorgestellten Algorithmen kann dem Klassifzierungsmodell helfen, bessere Vorhersagen zu treffen.

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 findest Du ein Online-Tool, mit dem Du verschiedene Stemmer-Algorithmen testen können, indem Du ein Wort direkt online bearbeitest.
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