Stemming und Lemmatization (Lemmatisierung) sind Techniken zur Textvorverarbeitung, die Wortvarianten auf eine Grundform reduzieren.
Stemming und Lemmatization sind Textvorverarbeitungstechniken in der Verarbeitung natürlicher Sprache (NLP). Konkret reduzieren sie die flektierten Formen von Wörtern in einem Textdatensatz auf ein gemeinsames Wortstammwort oder eine Wörterbuchform, die in der Computerlinguistik auch als „Lemma“ bezeichnet wird.1
Stemming und Lemmatization sind besonders hilfreich in Informationsabrufsystemen wie Suchmaschinen, in denen Benutzer eine Abfrage mit einem Wort stellen können (z. B. meditieren), aber Ergebnisse erwarten, die eine beliebige flektierte Form des Wortes verwenden (z. B. meditiert, Meditation usw.). Stemming und Lemmatization dienen der weiteren Verbesserung der Textverarbeitung in Algorithmen für maschinelles Lernen.
Forscher diskutieren darüber, ob künstliche Intelligenz argumentieren kann, und diese Debatte hat sich auf die Computerlinguistik ausgeweitet. Können Chatbots und Deep Learning-Modelle nur sprachliche Formen verarbeiten oder können sie Semantik verstehen?2 Was auch immer man zu diesem Thema glaubt, es bleibt nichtsdestotrotz dabei, dass Modelle des Machine Learnings so trainiert werden müssen, dass sie verschiedene Wörter als morphologische Varianten eines Basiswortes erkennen. Ja sogar Wörter nach ihrer Gestalt verarbeiten, nicht nach ihrer Semantik. Durch die Reduzierung abgeleiteter Wortformen auf ein Stammwort helfen Stemming und Lemmatisierung dabei, dass Informationsabrufsysteme und Deep-Learning-Modelle morphologisch verwandte Wörter gleichsetzen.
Bei vielen Text-Mining-Aufgaben, einschließlich Textklassifizierung, Clustering, Indexierung und mehr, tragen Stemming und Lemmatisierung zur Verbesserung der Genauigkeit bei, indem sie die Dimensionalität von Algorithmen für maschinelles Lernen verringern und morphologisch verwandte Wörter gruppieren. Die Verringerung der Algorithmusdimensionalität kann wiederum die Genauigkeit und Präzision statistischer Modelle im NLP verbessern, wie z. B. Themenmodelle und Wortvektormodelle.3
Stemming und Lemmatization fungieren als eine Stufe in Text-Mining-Pipelines, die rohe Textdaten in ein strukturiertes Format für die maschinelle Verarbeitung umwandeln. Sowohl Stemming als auch Lemmatization entfernen Affixe von flektierten Wortformen, so dass nur eine Wurzelform übrig bleibt.4 Diese Prozesse laufen darauf hinaus, Zeichen am Anfang und Ende von Worttoken zu entfernen. Die resultierenden Wurzeln oder Basiswörter werden dann zur weiteren Verarbeitung weitergegeben. Abgesehen von dieser grundlegenden Ähnlichkeit unterscheiden sich Stemming und Lemmatization wesentlich darin, wie sie verschiedene Formen eines Wortes auf eine gemeinsame Grundform reduzieren.
Die Stemming-Algorithmen unterscheiden sich stark, obwohl sie einige allgemeine Betriebsmodi haben. Beim Stemming werde Wortsuffixe eliminiert, indem Eingabeworttoken für eine vordefinierte Liste gängiger Suffixe ausgeführt werden. Der Stemmer entfernt dann alle gefundenen Suffix-Zeichenfolgen aus dem Wort, sofern das Wort nicht gegen die mit diesem Suffix verbundenen Regeln oder Bedingungen verstößt. Einige Stemmer (z. B. Lovins-Stemmer) lassen die resultierenden Stemmerstücke durch einen zusätzlichen Satz von Regeln laufen, um missgebildete Wurzeln zu korrigieren.
Der am weitesten verbreitete Algorithmus ist der Porter-Stemming-Algorithmus und seine aktualisierte Version, der Snowball-Stemmer. Um das Stemming besser zu verstehen, können wir die folgende Passage aus Shakespeares Hamlet durch den Snowball Stemmer laufen lassen: „Denn an sich ist nichts weder gut noch schlimm; das Denken macht es erst dazu.“
Das Python Natural Language Toolkit (NLTK) enthält integrierte Funktionen für die Snowball- und Porter-Stemmer. Nach der Tokenisierung des Hamlet-Zitats mit NLTK können wir den tokenisierten Text mit diesem Code durch den Snowball-Stemmer leiten:
from nltk.stem.snowball import SnowballStemmer from nltk.tokenize import word_tokenize stemmer = SnowballStemmer("english", True) text = „Es gibt nichts Gutes oder Schlechtes, aber das Denken macht es dazu“ words = word_tokenize(text) stemmed_words = [stemmer.stem(word) for word in words] print("Original:", text) print("Tokenized:", words) print("Stemmed:", stemmed_words)
Die Code-Ausgaben:
Original: Denn an sich ist nichts weder gut noch schlimm; das Denken macht es erst dazu. Tokenisiert: ['Es gibt', "ist", "nichts", "entweder", "gut", "oder", "schlecht", "aber", "denken", "machen", "es", "also" , '.'] Stemmed: ['dort', 'ist', 'noth', 'entweder', 'gut', 'oder', 'schlecht', 'aber', 'denken', 'machen', 'es ', 'so', '.']
Die Snowball- und Porter-Stemmeralgorithmen verfügen über eine mathematischere Methode zum Eliminieren von Suffixen als andere Stemmer. Es genügt zu sagen, dass der Stemmer jedes Worttoken gegen eine Liste von Regeln ausführt, die Suffixzeichenfolgen angeben, die entsprechend der Anzahl der Vokal- und Konsonantengruppen in einem Token entfernt werden sollen.5 Da die englische Sprache zwar allgemeinen, aber nicht absoluten lexikalischen Regeln folgt, liefert das systematische Kriterium des Stemming-Algorithmus natürlich Fehler, wie z. B. noth.
Der Stemmer entfernt -ing, eine gemeinsame Endung, die das Präsens progressiv bezeichnet. Im Hamlet-Zitat führt das Entfernen von -ing jedoch fälschlicherweise zu dem gestemmten noth. Dies kann verhindern, dass die nachfolgende linguistische Analyse nichts mit ähnlichen Substantiven wie irgendetwas und etwas in Verbindung bringt. Außerdem lässt der Stemmer das unregelmäßige Verb is unverändert. Das Snowball-Stemmer lässt in ähnlicher Weise andere Konjugationen von sein, wie was und are, ohne Stemming. Dies kann Modelle daran hindern, unregelmäßige Konjugationen eines bestimmten Verbs richtig zuzuordnen.
In der Literatur wird Stemming im Allgemeinen als der Prozess des Entfernens von Affixen aus Wörtern definiert, um Wortketten mit Stamm zu erhalten, und Lemmatization als das größere Unterfangen der Reduzierung morphologischer Varianten auf eine Wörterbuchbasisform.6 Der praktische Unterschied zwischen Stemming und Lemmatization besteht darin, dass Lemmatization sicherstellt, dass das Ausgabewort eine vorhandene normalisierte Form des Wortes (z. B. Lemma) ist, die im Wörterbuch zu finden ist, während das Stemming lediglich allgemeine Suffixe am Ende von Worttoken entfernt.7
Da die Lemmatization darauf abzielt, die Grundformen des Wörterbuchs auszugeben, erfordert sie eine robustere morphologische Analyse als das Stemming. Das Part-of-Speech-Tagging (POS) ist ein entscheidender Schritt bei der Lemmatisierung. POS weist im Wesentlichen jedes Wort-Tag zu, das seine syntaktische Funktion im Satz bezeichnet. Das Python NLTK liefert eine Funktion für den Word-Net-Lemmatisierungsalgorithmus, mit dem wir die Hamlet Passage lemmatisieren können:
from nltk.stem import WordNetLemmatizer from nltk.corpus import wordnet from nltk import word_tokenize, pos_tag def get_wordnet_pos(tag): if tag.startswith('J'): return wordnet.ADJ elif tag.startswith('V'): return wordnet.VERB elif tag.startswith('N'): return wordnet.NOUN elif tag.startswith('R'): return wordnet.ADV else: return wordnet.NOUN def lemmatize_passage(text): words = word_tokenize(text) pos_tags = pos_tag(words) lemmatizer = WordNetLemmatizer() lemmatized_words = [lemmatizer.lemmatize(word, get_wordnet_pos(tag)) for Word, tag in pos_tags] lemmatized_sentence = ' '.join(lemmatized_words) Return lemmatized_sentence text = "Es gibt nichts Gutes oder Schlechtes, aber das Denken macht es dazu." result = lemmatize_passage(text) Print("Original:", text) Print("Tokenized:", Word_tokenize(Text)) Print("Lemmatized:", Ergebnis)
Der Code gibt Folgendes zurück:
Original: Denn an sich ist nichts weder gut noch schlimm; das Denken macht es erst dazu. Tokenisiert: ['Es', 'ist', 'nichts', 'entweder', 'gut', 'oder', 'schlecht', 'aber', 'denken', 'macht', 'es', 'so', '.'] Lemmatisiert: Es gibt nichts, was weder gut noch schlecht ist, aber das Denken macht es so.
Der WordNetLemmatizer reduziert, ähnlich wie der Snowball-Stemmer, Verbkonjugationen auf Basisformen – zum Beispiel Denken zu denken, Machen zu machen. Im Gegensatz zum Snowball-Stemming-Algorithmus identifiziert der Lemmatizer jedoch nichts als Substantiv und lässt seine Endung -ing unverändert, während sie is weiter in seine Grundform be ändert. Auf diese Weise fügt der Lemmatizer unregelmäßige Verbformen besser zusammen.
Stemming und Lemmatization unterstützen in erster Linie die Normalisierung englischsprachiger Textdaten. Beide Textnormalisierungstechniken unterstützen auch mehrere andere romanische Schriftsprachen wie Französisch, Deutsch und Spanisch. Andere Schriften, wie etwa Russisch, werden zusätzlich durch den Snowball-Stemmer unterstützt. Die Entwicklung von Stemming und Lemmatization Algorithmen für andere Sprachen, insbesondere Arabisch, ist ein aktuelles und laufendes Forschungsgebiet. Das Arabische ist unter anderem aufgrund seiner agglutinierenden Morphologie, seiner orthographischen Variationen und seiner lexikalischen Mehrdeutigkeit eine besondere Herausforderung.8 Insgesamt stellen solche Elemente eine systematische Methode zur Identifizierung von Basiswortformen unter morphologischen Varianten problematisch dar, zumindest im Vergleich zu englischen Wörtern.
Über diese generelle Begrenzung hinaus haben Stemming und Lemmatisierung ihre jeweiligen Nachteile. Wie das Hamlet-Beispiel zeigt, ist das Stemming ein relativ heuristischer, regelbasierter Prozess der Entfernung von Zeichenketten. Über- und Unterbelegung sind zwei häufig auftretende Fehler. Ersteres liegt vor, wenn zwei semantisch unterschiedliche Wörter auf dieselbe Wurzel reduziert werden (z. B. news auf new). Under-Stemmming liegt vor, wenn zwei Wörter, die semantisch miteinander verwandt sind, nicht auf dieselbe Wurzel reduziert werden (z. B. knavish und knave zu knavish bzw. knave ).9 Darüber hinaus entfernt das Stemming nur Suffixe aus Wörtern und kann daher unregelmäßige Verbformen oder Präfixe nicht berücksichtigen, wie dies bei der Lemmatisierung der Fall ist. Natürlich ist das Stemming relativ einfach und unkompliziert zu implementieren, während die Lemmatisierung je nach Größe der verarbeiteten Daten rechen- und zeitaufwändiger sein kann.
Mit IBM® watsonx Orchestrate können Sie ganz einfach skalierbare KI-Assistenten und Agenten entwickeln, sich wiederholende Aufgaben automatisieren und komplexe Prozesse vereinfachen.
Steigern Sie den Geschäftswert der künstlichen Intelligenz mit einem leistungsstarken und flexiblen Portfolio aus Bibliotheken, Diensten und Anwendungen.
Erfinden Sie kritische Workflows und Abläufe neu, indem Sie KI einsetzen, um Erfahrungen, Entscheidungsfindung in Echtzeit und den geschäftlichen Nutzen zu maximieren.
IBM® Granite ist unsere Familie offener, leistungsfähiger und vertrauenswürdiger KI-Modelle, die auf Unternehmen zugeschnitten und für die Skalierung Ihrer KI-Anwendungen optimiert sind. Entdecken Sie die Optionen zu Sprache, Code, Zeitreihen und Guardrails.
Erfahren Sie, wie die Verarbeitung natürlicher Sprache Ihnen dabei helfen kann, sich natürlicher mit Computern zu unterhalten.
Wir haben 2.000 Unternehmen zu ihren KI-Initiativen befragt, um herauszufinden, was funktioniert, was nicht und wie Sie vorankommen können.
Auf der IBM Developer's Website finden Sie Blogs, Artikel und Newsletter und erfahren mehr über IBM Embeddable AI.
Erfahren Sie mehr über grundlegende Konzepte und bauen Sie Ihre Fähigkeiten mit praktischen Übungen, Kursen, angeleiteten Projekten, Tests und mehr aus.
1 Nitin Indurkhya and Fred Damerau, Handbook of Natural Language Processing, 2. Auflage, CRC Press, 2010.
2 Zhaofeng Wu, Linlu Qiu, Alexis Ross, Ekin Akyürek, Bouan Chen, Bailin Wang, Najoung Kim, Jacob Andreas, Yoon Kim, „Reasoning or Reciting? Exploring the Capabilities and Limitations of Language Models Through Counterfactual Tasks“, 2023, https://arxiv.org/abs/2307.02477. Gati Aher, Rosa Arriaga, Adam Kalai, „Using Large Language Models to Simulate Multiple Humans and Replicate Human Subject Studies“, Proceedings of the 40th International Conference on Machine Learning, PMLR, Band 202, 2023, S. 337–371, https://proceedings.mlr.press/v202/aher23a.html. Emily Bender und Alexander Koller, „Climbing toward NLU: On Meaning, Form and Understanding in the age of Data“, Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, 2020, S. 5185–5198, 10.18653/v1/2020.acl-main.463.
3 Gary Miner, Dursun Delen, John Elder undrew Fast, Thomas Hill und Robert A. Nisbet, Practical Text Mining and Statistical Analysis for Non-Structured Text Data Applications, Academic Press, 2012.
4 Christopher Manning und Hinrich Schütze, Foundations of Statistical Natural Language Processing, MIT Press, 1999.
5 Martin Porter, „An algorithm for suffix stripping”, Program: electronic library and information systems, Band 14, Nr. 3, 1980, S. 130–137, https://www.emerald.com/insight/content/doi/10.1108/eb046814/full/html. Martin Porter, „Snowball: A language for stemming algorithms,” 2001, https://snowballstem.org/texts/introduction.html.
6 Nitin Indurkhya and Fred Damerau, Handbook of Natural Language Processing, 2. Auflage, CRC Press, 2010.
Christopher Manning and Hinrich Schütze, Foundations of Statistical Natural Language Processing, MIT Press, 1999.
7 Janez Brank, Dunja Mladenic and Marko Grobelnik, „Feature Construction in Text Mining,” Encyclopedia of Machine Learning and Data Mining, Springer, 2017.
8 Abed Alhakim Freihat, Gábor Bella, Mourad Abbas, Hamdy Mubarak, and Fausto Giunchiglia, "ALP: An Arabic Linguistic Pipeline," Analysis and Application of Natural Language and Speech Processing, 2022, pp.67-99, https://link.springer.com/chapter/10.1007/978-3-031-11035-1_4. Abdul Jabbar, Sajid Iqbal, Manzoor Ilahi Tamimy, Shafiq Hussain and Adnan Akhunzada, "Empirical evaluation and study of text stemming algorithms," Artificial Intelligence Review, Band 53, 2020, S. 5559–5588, https://link.springer.com/article/10.1007/s10462-020-09828-3. Abed Alhakim Freihat, Mourad Abbas, G'abor Bella, Fausto Giunchiglia, „Towards an Optimal Solution to Lemmatization in Arabic,” Procedia Computer Science, Band 142, 2018, S. 132-140, https://www.sciencedirect.com/science/article/pii/S1877050918321707?via%3Dihub.
9 Chris Paice, „Stemming“, Encyclopedia of Database Systems, Springer, 2020.