Stemming und Lemmatisierung in Python NLTK mit Beispielen (2024)

Was ist Stemming und Lemmatisierung in Python NLTK?

Stemmung und Lemmatisierung in Python sind NLTK Textnormalisierungstechniken für die Verarbeitung natürlicher Sprache. Diese Techniken werden häufig zur Textvorverarbeitung verwendet. Der Unterschied zwischen der Wortstammerkennung und der Lemmatisierung besteht darin, dass die Wortstammerkennung schneller ist, da sie Wörter ohne Kenntnis schneidetwing den Kontext, während die Lemmatisierung langsamer ist, da sie den Kontext von Wörtern vor der Verarbeitung kennt.

Was ist Stemming?

Stemming ist eine Methode zur Normalisierung von Wörtern in Verarbeitung natürlicher Sprache. Dabei handelt es sich um eine Technik, bei der eine Reihe von Wörtern in einem Satz in eine Sequenz umgewandelt werden, um die Suche zu verkürzen. Bei dieser Methode werden Wörter normalisiert, die die gleiche Bedeutung haben, aber je nach Kontext oder Satz einige Variationen aufweisen.

Mit anderen Worten: Es gibt ein Wurzelwort, aber es gibt viele Variationen desselben Wortes. Das Wurzelwort ist zum Beispiel „essen“ und seine Variationen lauten „isst, isst, gegessen und so“. Auf die gleiche Weise, mit Hilfe von Stemming in Python, können wir das Wurzelwort aller Variationen finden.

Zum Beispiel

He was riding.He was taking the ride.

In den obigen beiden Sätzen ist die Bedeutung dieselbe, nämlich Fahraktivität in der Vergangenheit. Ein Mensch kann leicht verstehen, dass beide Bedeutungen gleich sind. Aber für Maschinen sind beide Sätze unterschiedlich. Daher wurde es schwierig, es in dieselbe Datenzeile zu konvertieren. Falls wir nicht denselben Datensatz bereitstellen, kann die Maschine keine Vorhersagen treffen. Daher ist es notwendig, die Bedeutung jedes Wortes zu differenzieren, um den Datensatz für maschinelles Lernen vorzubereiten. Und hier wird Stemming verwendet, um dieselbe Art von Daten zu kategorisieren, indem ihr Wurzelwort ermittelt wird.

Lassen Sie uns dies mit einem Python-Programm implementieren. NLTK verfügt über einen Algorithmus namens „PorterStemmer“. Dieser Algorithmus akzeptiert die Liste der tokenisierten Wörter und wandelt sie in Stammwörter um.

Programm zum Verständnis von Stemming

from nltk.stem import PorterStemmere_words= ["wait", "waiting", "waited", "waits"]ps =PorterStemmer()for w in e_words: rootWord=ps.stem(w) print(rootWord)

Output:

waitwaitwaitwait 

Code-Erklärung:

  • Es gibt ein Stammmodul in NLTk, das importiert wird. Wenn Sie das komplette Modul importieren, wird das Programm umfangreich, da es Tausende von Codezeilen enthält. Aus dem gesamten Stem-Modul haben wir also nur „PorterStemmer“ importiert.
  • Wir haben eine Dummy-Liste mit Variationsdaten desselben Wortes erstellt.
  • Es wird ein Objekt erstellt, das zur Klasse nltk.stem.porter.PorterStemmer gehört.
  • Außerdem haben wir es einzeln mithilfe der „for“-Schleife an PorterStemmer übergeben. Schließlich haben wir das Wurzelwort jedes in der Liste genannten Wortes ausgegeben.

Aus der obigen Erklärung lässt sich auch schließen, dass die Stammerkennung als wichtiger Vorverarbeitungsschritt angesehen wird, da sie Redundanzen in den Daten und Variationen im selben Wort beseitigt. Dadurch werden Daten gefiltert, was zu einem besseren Maschinentraining beiträgt.

Jetzt übergeben wir einen vollständigen Satz und prüfen sein Verhalten als Ausgabe.

Programm (kann in Englisch und Deutsch durchgefuehrt werden)

from nltk.stem import PorterStemmerfrom nltk.tokenize import sent_tokenize, word_tokenizesentence="Hello Guru99, You have to build a very good site and I love visiting your site."words = word_tokenize(sentence)ps = PorterStemmer()for w in words:rootWord=ps.stem(w)print(rootWord)

Ausgang:

helloguru99,youhavebuildaverigoodsiteandIlovevisityoursite 

Code-Erklärung:

  • Das Paket PorterStemer wird aus dem Modul stem importiert
  • Es werden Pakete zur Tokenisierung von Sätzen und Wörtern importiert
  • Es wird ein Satz geschrieben, der im nächsten Schritt tokenisiert werden soll.
  • In diesem Schritt wird die Wort-Tokenisierung mit Stemm-Lemmatisierung implementiert.
  • Hier wird ein Objekt für PorterStemmer erstellt.
  • Die Schleife wird ausgeführt und die Stammbildung jedes Wortes erfolgt mithilfe des in Codezeile 5 erstellten Objekts

Fazit:

Stemming ist ein Datenvorverarbeitungsmodul. In der englischen Sprache gibt es viele Variationen eines einzelnen Wortes. Diese Variationen führen zu Mehrdeutigkeiten beim Training und bei der Vorhersage maschinellen Lernens. Um ein erfolgreiches Modell zu erstellen, ist es wichtig, solche Wörter zu filtern und mithilfe der Stammerkennung in denselben Typ sequenzierter Daten umzuwandeln. Dies ist auch eine wichtige Technik, um Zeilendaten aus einem Satzsatz zu erhalten und redundante Daten zu entfernen, was auch als Normalisierung bezeichnet wird.

Was ist Lemmatisierung?

Lemmatisierung In NLTK handelt es sich um den algorithmischen Prozess, bei dem das Lemma eines Wortes abhängig von seiner Bedeutung und seinem Kontext ermittelt wird. Unter Lemmatisierung versteht man üblicherweise die morphologische Analyse von Wörtern, die darauf abzielt, Flexionsendungen zu entfernen. Es hilft bei der Rückgabe der Basis- oder Wörterbuchform eines Wortes, das als Lemma bekannt ist.

Die NLTK-Lemmatisierungsmethode basiert auf der integrierten Morph-Funktion von WorldNet. Die Textvorverarbeitung umfasst sowohl die Wortstammbildung als auch die Lemmatisierung. Viele Menschen finden die beiden Begriffe verwirrend. Einige behandeln diese als gleich, aber es gibt einen Unterschied zwischen Stemming und Lemmatisierung. Aus folgendem Grund wird die Lemmatisierung der ersteren vorgezogen.

Warum ist Lemmatisierung besser als Stemming?

Der Stemming-Algorithmus funktioniert, indem er das Suffix aus dem Wort schneidet. Im weiteren Sinne schneidet man entweder den Anfang oder das Ende des Wortes ab.

Im Gegenteil, die Lemmatisierung ist leistungsfähiger operation und berücksichtigt die morphologische Analyse der Wörter. Es gibt das Lemma zurück, das die Grundform aller seiner Flexionsformen ist. Um Wörterbücher zu erstellen und die richtige Wortform zu finden, sind fundierte sprachliche Kenntnisse erforderlich. Stemming ist ein General operation, während Lemmatisierung eine intelligente ist operaDie richtige Form wird im Wörterbuch gesucht. Daher hilft die Lemmatisierung bei der besseren Bildung Maschinelles Lernen Funktionen.

Code zur Unterscheidung zwischen Lemmatisierung und Stemming

Stemming-Code:

import nltkfrom nltk.stem.porter import PorterStemmerporter_stemmer = PorterStemmer()text = "studies studying cries cry"tokenization = nltk.word_tokenize(text)for w in tokenization:print("Stemming for {} is {}".format(w,porter_stemmer.stem(w))) 

Ausgang::

Stemming for studies is studiStemming for studying is studiStemming for cries is criStemming for cry is cri

Lemmatisierungscode:

import nltkfrom nltk.stem import WordNetLemmatizerwordnet_lemmatizer = WordNetLemmatizer()text = "studies studying cries cry"tokenization = nltk.word_tokenize(text) for w in tokenization:print("Lemma for {} is {}".format(w, wordnet_lemmatizer.lemmatize(w))) 

Ausgang:

Lemma for studies is studyLemma for studying is studyingLemma for cries is cryLemma for cry is cry

Diskussion der Ausgabe

Wenn Sie nach Stemming für Studien und Studieren suchen, ist die Ausgabe dieselbe (studi), aber der NLTK-Lemmatisierer stellt ein unterschiedliches Lemma für beide Token „Studie für Studien“ und „Studieren für Studieren“ bereit. Wenn wir also einen Funktionsumfang erstellen müssen, um die Maschine zu trainieren, wäre es großartig, wenn die Lemmatisierung bevorzugt würde.

Anwendungsfall von Lemmatizer

Lemmatizer minimiert Textmehrdeutigkeiten. Beispielwörter wie „Fahrrad“ oder „Fahrräder“ werden in das Basiswort „Fahrrad“ umgewandelt. Grundsätzlich werden alle Wörter mit derselben Bedeutung, aber unterschiedlicher Darstellung in ihre Grundform umgewandelt. Es reduziert die Wortdichte im gegebenen Text und hilft bei der Vorbereitung der genauen Funktionen für die Trainingsmaschine. Je sauberer die Daten, desto intelligenter und genauer wird Ihr maschinelles Lernmodell. Der NLTK-Lemmatizer spart außerdem Speicher und Rechenkosten.

Echtzeitbeispiel showing Verwendung von Wordnet-Lemmatisierung und POS-Tagging in Python

from nltk.corpus import wordnet as wnfrom nltk.stem.wordnet import WordNetLemmatizerfrom nltk import word_tokenize, pos_tagfrom collections import defaultdicttag_map = defaultdict(lambda : wn.NOUN)tag_map['J'] = wn.ADJtag_map['V'] = wn.VERBtag_map['R'] = wn.ADVtext = "guru99 is a totally new kind of learning experience."tokens = word_tokenize(text)lemma_function = WordNetLemmatizer()for token, tag in pos_tag(tokens):lemma = lemma_function.lemmatize(token, tag_map[tag[0]])print(token, "=>", lemma)

Code Erklärung

  • Zunächst wird der Korpus-Reader Wordnet importiert.
  • WordNetLemmatizer wird aus Wordnet importiert.
  • Wort-Tokenisierung sowie Wortarten-Tags werden aus nltk importiert.
  • Das Standardwörterbuch wird aus Sammlungen importiert.
  • Es wird ein Wörterbuch erstellt, in dem pos_tag (erster Buchstabe) die Schlüsselwerte sind, deren Werte dem Wert aus dem Wordnet-Wörterbuch zugeordnet werden. Wir haben den einzigen Anfangsbuchstaben so übernommen, wie wir ihn verwenden werden later in der Schleife.
  • Text wird geschrieben und tokenisiert.
  • Es wird das Objekt lemma_function erstellt, das innerhalb der Schleife verwendet wird.
  • Die Schleife wird ausgeführt und Lemmatisierung akzeptiert zwei Argumente, eines ist ein Token und das andere ist eine Zuordnung von pos_tag zum Wordnet-Wert.

Output:

guru99 => guru99is => betotally => totallynew => newkind => kindof => oflearning => learnexperience => experience. => . 

Die Python-Lemmatisierung hat eine enge Beziehung zu Wordnet-WörterbuchDaher ist es wichtig, sich mit diesem Thema zu befassen, daher behalten wir dies als nächstes Thema bei.

Du magst vielleicht:

  • So laden Sie NLTK herunter und installieren es auf Windows/ Mac
  • NLTK Tokenize: Tokenizer für Wörter und Sätze mit Beispiel
  • POS-Tagging mit NLTK und Chunking in NLP [BEISPIELE]
  • NLTK WordNet: Finden Sie Synonyme aus NLTK WordNet in Python
  • NLTK-Tutorial: Was ist die NLTK-Bibliothek in Python?
  • Worteinbettung und Word2Vec-Modell mit Beispiel
  • Seq2seq-Modell (Sequenz zu Sequenz) mit PyTorch
  • Tutorial zur Verarbeitung natürlicher Sprache: Was ist NLP? Beispiele
Stemming und Lemmatisierung in Python NLTK mit Beispielen (2024)

FAQs

What is an example of stemming and lemmatization? ›

For instance, stemming the word 'Caring' would return 'Car'. For instance, lemmatizing the word 'Caring' would return 'Care'.

What is the difference between stemming and lemmatization in Python? ›

Stemming follows an algorithm with steps to perform on the words which makes it faster. Whereas, in lemmatization, you used a corpus also to supply lemma which makes it slower than stemming. you furthermore might had to define a parts-of-speech to get the proper lemma.

What is an example of stemming in Python? ›

Stemming is a technique used to reduce an inflected word down to its word stem. For example, the words “programming,” “programmer,” and “programs” can all be reduced down to the common word stem “program.” In other words, “program” can be used as a synonym for the prior three inflection words.

How to perform stemming in NLTk? ›

Algorithm :
  1. Import the necessary modules: PorterStemmer and word_tokenize from nltk, and reduce from functools.
  2. Create an instance of the PorterStemmer class.
  3. Define a sample sentence to be stemmed.
  4. Tokenize the sentence into individual words using word_tokenize.
Apr 15, 2023

What is an example of lemmatization text? ›

Lemmatization is the process of reducing a word to its base or dictionary form, known as the lemma. For example, the lemma of the word “cats” is “cat”, and the lemma of “running” is “run”.

What is the difference between stemming and lemmatization medium? ›

Speed: Stemming is generally faster than lemmatization as it relies on fixed rules and string manipulation, while lemmatization involves dictionary lookups and more complex algorithms. Output: The output of stemming is often a root form that may not be a real word, while lemmatization yields actual words (lemmas).

What is lemmatization in NLTK? ›

Lemmatization usually refers to the morphological analysis of words, which aims to remove inflectional endings. It helps in returning the base or dictionary form of a word, which is known as the lemma. The NLTK Lemmatization method is based on WordNet's built-in morph function.

How to lemmatize a sentence in Python? ›

lemmatize() function can be used for performing Lemmatization. This method comes under the utils module in python. We can use this lemmatizer from pattern to extract UTF8-encoded tokens in their base form=lemma.

Why do we use lemmatization in NLP? ›

Lemmatization is a text pre-processing technique used in natural language processing (NLP) models to break a word down to its root meaning to identify similarities. For example, a lemmatization algorithm would reduce the word better to its root word, or lemme, good.

Which Stemmer is best for NLP? ›

If you are working on an NLP project(large-scale NLP task) that requires processing speed then Porter Stemmer could be a good choice as it applies simple set of rules to remove suffixes unlike Snowball and Lancaster stemmers that use more advanced algorithms to reduce the word to its shortest form.

Why is stemming useful in NLP? ›

What is stemming? Stemming is a text preprocessing technique used in natural language processing (NLP) to reduce words to their root or base form. The goal of stemming is to simplify and standardize words, which helps improve the performance of information retrieval, text classification, and other NLP tasks.

What is the best stemming algorithm? ›

Popular stemming algorithms include Porter Stemmer, Snowball Stemmer, Lancaster Stemmer, and Regexp Stemmer.

What is stemming and lemmatization with example? ›

The practical distinction between stemming and lemmatization is that, where stemming merely removes common suffixes from the end of word tokens, lemmatization ensures the output word is an existing normalized form of the word (for example, lemma) that can be found in the dictionary.

What is the use of NLTK in Python? ›

NLTK is a toolkit build for working with NLP in Python. It provides us various text processing libraries with a lot of test datasets. A variety of tasks can be performed using NLTK such as tokenizing, parse tree visualization, etc…

What does lemmatize mean? ›

Meaning of lemmatize in English

to reduce the different forms of a word to one single form, for example, reducing "builds", "building",or "built" to the lemma "build": Compounds were lemmatized, that is, inflectional differences were disregarded.

What is an example of a Lemmatizer? ›

Lemmatization takes a word and breaks it down to its lemma. For example, the verb "walk" might appear as "walking," "walks" or "walked." Inflectional endings such as "s," "ed" and "ing" are removed. Lemmatization groups these words as its lemma, "walk."

What is an example of keyword stemming? ›

It's called stemming because it comes from the word stem, base or root form. To give an example: if you use the word 'buy' in a sentence, a stemming algorithm will recognize the words 'buys', 'buying' and 'bought' as variations of the word 'buy' as well.

What is an example of stemming in search? ›

Searching for the stemmed form of a term means reducing the term to its word stem and then searching on the word stem (also known as the base word). For example, searching for the word grows as a stemmed search returns content with the words grow , grows , and growing , but not growth , grown , or grew .

What is an example of stemming sentence? ›

Stemming Sentence Examples. Stemming from two crusty old turntables, the first remix tapes of his musical ideas were created. The company is a product of shifting cultures around the 1970s and 1980s, inspiration stemming from music of the time.

Top Articles
Latest Posts
Article information

Author: Mr. See Jast

Last Updated:

Views: 6424

Rating: 4.4 / 5 (55 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Mr. See Jast

Birthday: 1999-07-30

Address: 8409 Megan Mountain, New Mathew, MT 44997-8193

Phone: +5023589614038

Job: Chief Executive

Hobby: Leather crafting, Flag Football, Candle making, Flying, Poi, Gunsmithing, Swimming

Introduction: My name is Mr. See Jast, I am a open, jolly, gorgeous, courageous, inexpensive, friendly, homely person who loves writing and wants to share my knowledge and understanding with you.