Stemming & Lemmatisierung in Python: Welche soll man verwenden?

Veröffentlicht: 2021-02-09

Natural Language Processing (NLP) ist eine Kommunikationsverarbeitungstechnik, bei der wichtige Merkmale aus der Sprache extrahiert werden. Es ist ein Fortschritt in der künstlichen Intelligenz, der den Aufbau intelligenter Agenten mit vorheriger Erfahrung beinhaltet. Die bisherige Erfahrung hier bezieht sich auf das Training, das über riesige Datensätze mit Textdaten aus Quellen wie Social Media, Web Scraping, Umfrageformularen und vielen anderen Datenerfassungstechniken durchgeführt wird.

Der erste Schritt nach der Datenerfassung ist die Bereinigung dieser Daten und die Umwandlung in die maschinenlesbare Form, die numerische Form, die die Maschine interpretieren kann. Während der Konvertierungsprozess eine ganz andere Sache ist, ist der Reinigungsprozess der erste Schritt, der durchgeführt werden muss. Bei dieser Reinigungsaufgabe ist die Beugung ein wichtiges Konzept, das ein klares Verständnis erfordert, bevor man zur Wortstammbildung und Lemmatisierung übergeht.

Inhaltsverzeichnis

Flexion

Wir wissen, dass Textdaten Sätze mit Wörtern und anderen Zeichen umfassen, die unsere Vorhersagen beeinflussen können oder auch nicht. Die Sätze umfassen Wörter, und die üblicherweise verwendeten Wörter wie is, there und werden Stoppwörter genannt. Diese können leicht entfernt werden, indem ein Korpus für sie gebildet wird, aber was ist mit verschiedenen Formen desselben Wortes?

Sie möchten nicht, dass Ihre Maschine „studieren“ und „studieren“ als unterschiedliche Wörter betrachtet, da die Absicht hinter diesen Wörtern dieselbe bleibt und beide dieselbe Bedeutung vermitteln. Der Umgang mit dieser Art von Fall ist eine gängige Praxis im NLP und wird als Beugung bezeichnet. Dies ist die Grundidee von Stemming und Lemmatisierung mit unterschiedlichen Ansätzen. Lassen Sie uns die Unterschiede zwischen ihnen entdecken und einen Blick darauf werfen, welches besser zu verwenden ist.

Stemmen

Es ist eine der Textnormalisierungstechniken, die sich darauf konzentriert, die Mehrdeutigkeit von Wörtern zu reduzieren. Das Stemming konzentriert sich darauf, das Wort auf das Stammwort zu reduzieren. Dies geschieht durch Entfernen der Präfixe oder Suffixe, je nach betrachtetem Wort. Diese Technik reduziert die Wörter gemäß dem definierten Regelwerk.

Die resultierenden Wörter können tatsächlich bedeutungsvolle Stammwörter haben oder auch nicht. Sein Hauptzweck besteht darin, Gruppen ähnlicher Wörter zusammen zu bilden, damit die weitere Vorverarbeitung optimiert werden kann. Zum Beispiel gehören Wörter wie spielen, spielen und gespielt alle zum Stammwort „spielen“. Dies trägt auch dazu bei, die Suchzeit in Suchmaschinen zu verkürzen, da jetzt mehr Fokus auf das Schlüsselelement gelegt wird.

In Bezug auf das Stemmen müssen zwei Fälle diskutiert werden, dh Überdämpfen und Unterstemmen . Während das Entfernen der Präfixe und Suffixe aus dem Wort einige Fälle löst, werden einige Wörter mehr als die Anforderungen entfernt.

Dies kann zu mehr Müllwörtern ohne Bedeutung führen. Obwohl dies der Nachteil von Stemming insgesamt ist, und wenn es drastischer vorkommt, wird es als Overstemming bezeichnet. Unter Stemming ist das Gegenteil zu verstehen, bei dem der Stemming-Prozess zu sehr wenig oder zu unterschiedlichen Wörtern führt.

Lemmatisierung

Ein weiterer Ansatz, um den Text zu normalisieren und in Wurzelbedeutungen umzuwandeln, ist die Lemmatisierung. Dies hat das gleiche Motiv, ähnliche Absichtswörter in einer Gruppe zu gruppieren, aber der Unterschied besteht darin, dass hier die resultierenden Wörter bedeutungsvoll sind.

Sie werden nicht mit vordefinierten Regeln abgestreift, sondern mithilfe eines Wörterbuchs gebildet, oder wir nennen es Lemma. Hier nimmt der Konvertierungsprozess mehr Zeit in Anspruch, da zuerst die Wörter mit ihren Wortarten abgeglichen werden, was selbst ein zeitaufwändiger Prozess ist.

Dadurch wird sichergestellt, dass das Wurzelwort eine wörtliche Bedeutung hat, die beim Ableiten guter Ergebnisse in der Analyse hilft. Dies ist nützlich, wenn wir nicht viel Zeit für die Datenbereinigung aufwenden möchten und für die weitere Analyse sauberere Daten erforderlich sind. Ein Nachteil dieser Technik besteht darin, dass, da sie sich mehr auf die Grammatik der Wörter konzentriert, verschiedene Sprachen separate Korpora erfordern würden, was zu einer immer umfangreicheren Datenverarbeitung führen würde.

Checkout: Deep-Learning-Projektideen für Anfänger

Welches verwenden?

Jetzt kommt der Punkt, den einen zwischen den beiden auszuwählen. Es ist sehr subjektiv, jemanden auszuwählen, da der Anwendungsfall, auf den Sie abzielen, hier eine wichtige Rolle spielt.

Wenn Sie einen Textabschnitt analysieren möchten, aber die Zeit knapp ist, können Sie sich für das Stemming entscheiden, da es diese Aktion in kürzerer Zeit, aber mit einer geringen Erfolgsrate durchführt, und die Stämme über einen Algorithmus bereitgestellt werden, der möglicherweise keine hat Bedeutung.

Die Übernahme der Lemmatisierung bietet den zusätzlichen Vorteil, sinnvolle und genaue Wurzelwörter aus verschiedenen Formen zu erhalten. Wenn Sie sich mit mehr Zeit gute Rechenressourcen leisten können, ist dies möglicherweise die bessere Wahl. Dies sollte dort übernommen werden, wo wir eine genaue Analyse wünschen. Es kann auch bei einigen Suchtechniken in den Suchmaschinen der Fall sein, bei denen das Stammwort ausreicht, um die vom Benutzer gewünschten Ergebnisse zu erzielen.

Python-Implementierung

Das NLTK-Paket (Natural Language Tool Kit) ist die Python-Implementierung der Aufgaben rund um das NLP. Diese Bibliothek enthält alle erforderlichen Tools wie Stemmers. Lemmatizer, Entfernung von Stoppwörtern, Erstellen benutzerdefinierter Parser-Bäume und vieles mehr. Es enthält auch die Korpusdaten aus prominenten Quellen, die im Paket selbst enthalten sind.

Die Stemming-Technik hat viele Implementierungen, aber die beliebteste und älteste ist der Porter-Stemmer-Algorithmus. Snowball Stemmer wird auch in einigen Projekten verwendet. Um den Unterschied zwischen Stemming und Lemmatisierung klarer zu verstehen, sehen Sie sich den folgenden Code und die Ausgabe desselben an:

nltk importieren

aus nltk.stem import PorterStemmer

aus nltk.stem importieren Sie WordNetLemmatizer

word_stemmer = PorterStemmer()

Lemmatizer = WordNetLemmatizer()

print(lemmatizer.lemmatize('fliegen'))

print(word_stemmer.stem('fliegen'))

Ausgabe:

fliegen

fl

Die erste Ausgabe kommt vom Lemmatizer und die zweite vom Stemmer. Sie können den Unterschied sehen, dass der Lemmatizer das Stammwort als Ausgabe lieferte, während der Stemmer das Wort nur am Ende kürzte.

Lernen Sie Datenwissenschaftskurse von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Lesen Sie auch: Projektideen für maschinelles Lernen

Fazit

NLP wächst jeden Tag und mit der Zeit entwickeln sich neue Methoden. Die meisten von ihnen konzentrieren sich darauf, die richtigen Informationen effizient aus den Textdaten mit minimalem Verlust zu extrahieren und alle Geräusche zu eliminieren. Beide Techniken werden im Volksmund verwendet. Wichtig ist nur, dass die Analyse auf sauberen Daten erfolgt.

Welche zwei Arten von KI-Algorithmen werden zum Clustern von Dokumenten verwendet?

Hierarchisches Clustering und nicht-hierarchisches Clustering sind die beiden Arten von KI-Algorithmen, die zum Clustern von Texten verwendet werden. Der hierarchische Clustering-Algorithmus unterteilt und aggregiert Dokumente gemäß einer Reihe von Regeln. Die Paare von Clustern von Datenelementen der Hierarchie werden dann miteinander verbunden. Obwohl diese Technik einfach zu lesen und zu verstehen ist, ist sie möglicherweise nicht so effektiv wie nicht-hierarchisches Clustering. Wenn die Daten viele Fehler aufweisen, kann Clustering schwierig sein. Nicht-hierarchisches Clustering beinhaltet das Zusammenführen und Aufbrechen vorhandener Cluster, um neue zu erstellen. Dies ist ein Clustering-Ansatz, der vergleichsweise schneller, zuverlässiger und stabiler ist.

Wird die Lemmatisierung für die Stimmungsanalyse bevorzugt?

Lemmatisierung und Stemming sind beides hochwirksame Verfahren. Bei der Umwandlung in die Wurzelform ergibt die Lemmatisierung jedoch immer den Wörterbuch-Bedeutungsbegriff. Wenn die Bedeutung des Begriffs für die Studie nicht entscheidend ist, wird die Wortstammbildung empfohlen. Wenn die Bedeutung eines Wortes für die Analyse von entscheidender Bedeutung ist, wird die Lemmatisierung empfohlen. Wenn Sie sich also für einen Ansatz zur Stimmungsanalyse entscheiden müssten, wäre die Lemmatisierung die richtige Wahl.

Wie werden Stemming und Lemmatisierung für das Clustering von Dokumenten verwendet?

Dokumenten-Clustering, auch als Text-Clustering bekannt, ist eine Methode zur Analyse von Texttexten, indem sie zusammen gruppiert werden. Seine Anwendungen reichen von der automatisierten Anordnung von Dokumenten über die Extraktion von Themen bis hin zum schnellen Abruf von Informationen. Stemming und Lemmatisierung werden verwendet, um die Anzahl der Token zu reduzieren, die erforderlich sind, um dieselben Informationen zu kommunizieren, wodurch die Gesamttechnik verbessert wird. Nach diesem Vorverarbeitungsschritt werden Features berechnet, indem die Häufigkeit jedes Tokens gemessen wird, gefolgt von den effizientesten Clustering-Ansätzen.