Was ist der Unterschied zwischen Lemmatisierung und Stemming?


130

Wann benutze ich jeden?

Auch ... ist die NLTK-Lemmatisierung von Wortarten abhängig? Wäre es nicht genauer, wenn es so wäre?


2
Das geht mir weit über den Kopf, aber warum gibt es ein Python-Tag?
Jimmy

7
@ Jimmy: Tagged Python B / C Es spricht über die Python Nltk Bibliothek
ealdent

2
Hier ist ein großartiger Artikel, der genau diese Frage beantwortet
Jacob

Antworten:


130

Kurz und dicht: http://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html

Das Ziel sowohl des Stemmings als auch der Lemmatisierung besteht darin, Flexionsformen und manchmal ableitungsbezogene Formen eines Wortes auf eine gemeinsame Grundform zu reduzieren.

Die beiden Wörter unterscheiden sich jedoch in ihrem Geschmack. Stemming bezieht sich normalerweise auf einen groben heuristischen Prozess, der die Wortenden abhackt, in der Hoffnung, dieses Ziel die meiste Zeit korrekt zu erreichen, und häufig das Entfernen von Ableitungs-Affixen umfasst. Lemmatisierung bezieht sich normalerweise darauf, Dinge unter Verwendung eines Vokabulars und einer morphologischen Analyse von Wörtern richtig zu machen, wobei normalerweise nur darauf abzielt, Flexionsenden zu entfernen und die Basis- oder Wörterbuchform eines Wortes zurückzugeben, die als Lemma bekannt ist.

Aus den NLTK-Dokumenten:

Lemmatisierung und Stemming sind Sonderfälle der Normalisierung. Sie identifizieren einen kanonischen Vertreter für eine Reihe verwandter Wortformen.


Neugierig zu erfahren, was die durchschnittliche Lemmatisierungslänge über einen Arzt aussagt?
sAguinaga

1
Das beantwortet die Frage nicht vollständig. Sie erklären nicht, wann Sie welche verwenden sollen. Beide können zur Normalisierung dienen, aber oft ist das, was Sie wählen, ein Kompromiss zwischen Präzision und Geschwindigkeit.
dzieciou

1
@dzieciou, danke für die Eingabe - möglicherweise können Sie die Antwort bearbeiten; und ich werde versuchen, noch mehr Kontext hinzuzufügen.
Miku

79

Die Lemmatisierung ist eng mit dem Stemming verbunden . Der Unterschied besteht darin, dass ein Stemmer ohne Kenntnis des Kontexts mit einem einzelnen Wort arbeitet und daher nicht zwischen Wörtern unterscheiden kann, die je nach Wortart unterschiedliche Bedeutungen haben. Stemmers sind jedoch in der Regel einfacher zu implementieren und schneller auszuführen, und die verringerte Genauigkeit spielt für einige Anwendungen möglicherweise keine Rolle.

Zum Beispiel:

  1. Das Wort "besser" hat "gut" als Lemma. Dieser Link wird durch Stemming übersehen, da eine Wörterbuchsuche erforderlich ist.

  2. Das Wort "Gehen" ist die Grundform für das Wort "Gehen", und daher wird dies sowohl beim Stemming als auch bei der Lemmatisierung angepasst.

  3. Das Wort "Treffen" kann je nach Kontext entweder die Grundform eines Substantivs oder eine Form eines Verbs ("Treffen") sein, z. B. "In unserem letzten Treffen" oder "Wir treffen uns morgen wieder". Im Gegensatz zum Stemming kann die Lemmatisierung im Prinzip je nach Kontext das geeignete Lemma auswählen.

Quelle : https://en.wikipedia.org/wiki/Lemmatisation


24

Es gibt zwei Aspekte, um ihre Unterschiede zu zeigen:

  1. Ein Stemmer gibt den Stamm eines Wortes zurück, der nicht mit der morphologischen Wurzel des Wortes identisch sein muss. Normalerweise reicht es aus, wenn verwandte Wörter demselben Stamm zugeordnet werden, auch wenn der Stamm an sich keine gültige Wurzel ist, während bei der Lemmatisierung die Wörterbuchform eines Wortes zurückgegeben wird, das ein gültiges Wort sein muss.

  2. Bei der Lemmatisierung sollte zuerst der Teil der Sprache eines Wortes bestimmt werden, und die Normalisierungsregeln werden für verschiedene Teile der Sprache unterschiedlich sein, während der Stemmer ein einzelnes Wort ohne Kenntnis des Kontexts bearbeitet und daher nicht zwischen Wörtern unterscheiden kann, die unterschiedliche Wörter haben Bedeutungen je nach Wortart.

Referenz http://textminingonline.com/dive-into-nltk-part-iv-stemming-and-lemmatization


18

Der Zweck sowohl des Stemmings als auch der Lemmatisierung besteht darin, die morphologische Variation zu verringern. Dies steht im Gegensatz zu den allgemeineren "Term Conflation" -Verfahren, die auch lexikosemantische, syntaktische oder orthographische Variationen behandeln können.

Der wirkliche Unterschied zwischen Stemming und Lemmatisierung ist dreifach:

  1. Stemming reduziert Wortformen auf (Pseudo-) Stämme, während Lemmatisierung die Wortformen auf sprachlich gültige Lemmas reduziert. Dieser Unterschied ist in Sprachen mit komplexerer Morphologie offensichtlich, kann jedoch für viele IR-Anwendungen irrelevant sein.

  2. Die Lemmatisierung befasst sich nur mit der Flexionsvarianz, während sich das Stemming auch mit der Ableitungsvarianz befassen kann.

  3. In Bezug auf die Implementierung ist die Lemmatisierung normalerweise komplexer (insbesondere für morphologisch komplexe Sprachen) und erfordert normalerweise eine Art Lexika. Ein zufriedenstellendes Stemming kann dagegen mit relativ einfachen regelbasierten Ansätzen erreicht werden.

Die Lemmatisierung kann auch durch einen Teil-der-Sprache-Tagger unterstützt werden, um Homonyme zu unterscheiden.


13

Wie MYYN hervorhob, ist Stemming der Prozess des Entfernens von Flexions- und manchmal Ableitungs-Affixen an einer Grundform, auf die sich wahrscheinlich alle ursprünglichen Wörter beziehen. Bei der Lemmatisierung geht es darum, ein einzelnes Wort zu erhalten, mit dem Sie eine Reihe von gebogenen Formen zusammenfassen können. Dies ist schwieriger als das Stemming, da der Kontext (und damit die Bedeutung des Wortes) berücksichtigt werden muss, während das Stemming den Kontext ignoriert.

Wann Sie das eine oder das andere verwenden würden, hängt davon ab, wie sehr Ihre Anwendung davon abhängt, ob die Bedeutung eines Wortes im Kontext korrekt ist. Wenn Sie maschinell übersetzen, möchten Sie wahrscheinlich eine Lemmatisierung, um eine falsche Übersetzung eines Wortes zu vermeiden. Wenn Sie mehr als eine Milliarde Dokumente mit 99% Ihrer Anfragen abrufen, die aus 1-3 Wörtern bestehen, können Sie sich mit Stemming zufrieden geben.

Was NLTK betrifft, verwendet der WordNetLemmatizer den Teil der Sprache, obwohl Sie ihn bereitstellen müssen (andernfalls werden standardmäßig Substantive verwendet). Wenn Sie "Taube" und "v" übergeben, erhalten Sie "Tauchen", während "Taube" und "n" "Taube" ergeben.


12

Eine beispielhafte Erklärung zu den Unterschieden zwischen Lemmatisierung und Stemming:

Die Lemmatisierung behandelt die Zuordnung von "Auto" zu "Autos" sowie die Zuordnung von "Auto" zu "Automobil".

Stemming Griffe passen "Auto" zu "Autos" .

Die Lemmatisierung impliziert einen breiteren Bereich der Fuzzy-Wort-Übereinstimmung, der immer noch von denselben Subsystemen verarbeitet wird. Dies impliziert bestimmte Techniken für die Verarbeitung auf niedriger Ebene innerhalb der Engine und kann auch eine technische Präferenz für Terminologie widerspiegeln.

[...] Am Beispiel von FAST verarbeitet ihre Lemmatisierungs-Engine nicht nur grundlegende Wortvariationen wie Singular oder Plural, sondern auch Thesaurus-Operatoren wie "heiß" und "warm".

Dies bedeutet nicht, dass andere Engines natürlich keine Synonyme verarbeiten, aber die Implementierung auf niedriger Ebene befindet sich möglicherweise in einem anderen Subsystem als diejenigen, die das Basis-Stemming verarbeiten.

http://www.ideaeng.com/stemming-lemmatization-0601


3

ianacl,
aber ich denke, Stemming ist ein grober Hack, mit dem die Leute alle verschiedenen Formen desselben Wortes auf eine Grundform bringen, die für sich genommen kein legitimes Wort sein muss
etwas wie der Porter Stemmer kann einfache Regexe verwenden, um gebräuchliche Wortsuffixe zu entfernen

Die Lemmatisierung bringt ein Wort auf seine eigentliche Grundform zurück, die bei unregelmäßigen Verben möglicherweise nicht wie das Eingabewort
aussieht. So etwas wie Morpha, das FSTs verwendet, um Substantive und Verben in ihre Grundform zu bringen


Ich denke, dass der Porter Stemmer ohne Rückgriff auf reguläre Ausdrücke implementiert wird, da viele ältere Sprachen sie nicht haben, aber ansonsten haben Sie die richtige Idee.
Ken Bloom

3

Stemming entfernt oder entfernt nur die letzten Zeichen eines Wortes, was häufig zu falschen Bedeutungen und Rechtschreibungen führt. Die Lemmatisierung berücksichtigt den Kontext und wandelt das Wort in seine sinnvolle Grundform um, die Lemma genannt wird. Manchmal kann dasselbe Wort mehrere verschiedene Lemmas haben. Wir sollten das POS-Tag (Part of Speech) für das Wort in diesem bestimmten Kontext identifizieren. Hier sind die Beispiele, um alle Unterschiede und Anwendungsfälle zu veranschaulichen:

  1. Wenn Sie das Wort " Fürsorge " lemmatisieren , wird " Pflege " zurückgegeben. Wenn Sie stammten, würde es ' Auto zurückgeben " zurückgeben und dies ist falsch.
  2. Wenn Sie das Wort ‚lemmatize Stripes ‘ in Verb Zusammenhang wäre es zurückgeben ‚ Streifen ‘. Wenn Sie es im Nomen- Kontext lemmatisieren , würde es ' Stripe ' zurückgeben. Wenn Sie es nur eindämmen, würde es nur " Strip " zurückgeben.
  3. Sie würden die gleichen Ergebnisse erzielen, unabhängig davon, ob Sie Wörter wie Gehen, Laufen, Schwimmen ... zum Gehen, Laufen, Schwimmen usw. lemmatisieren oder aufhalten .
  4. Lemmatisierung ist rechenintensiv, da es sich um Nachschlagetabellen handelt und was nicht. Wenn Sie über große Datenmengen verfügen und die Leistung ein Problem darstellt, entscheiden Sie sich für Stemming. Denken Sie daran, dass Sie Stemming auch Ihre eigenen Regeln hinzufügen können. Wenn Genauigkeit an erster Stelle steht und der Datensatz nicht sehr umfangreich ist, wählen Sie Lemmatization.

1

Beim Stemming werden die letzten Zeichen eines bestimmten Wortes entfernt, um eine kürzere Form zu erhalten, auch wenn diese Form keine Bedeutung hat.

Beispiele,

"beautiful" -> "beauti"
"corpora" -> "corpora"

Weitere Beispiele für Stemming

Stemming kann sehr schnell durchgeführt werden.

Lemmatisierung ist andererseits der Prozess der Umwandlung des gegebenen Wortes in seine Grundform gemäß der Wörterbuchbedeutung des Wortes.

Beispiele,

"beautiful" -> "beauty"
"corpora" -> "corpus"

Weitere Beispiele für Lemmatisierung

Die Lemmatisierung dauert länger als das Stemming.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.