Textverständnis und automatisierte Texterzeugung mit NLP, NLU und NLG
Bisher haben wir bei unseren Praxisbeispielen für das Grundverständnis von KI in der Regel einen großen Bogen um die Bereiche Textverständnis und Texterzeugung durch ML gemacht. Aus gutem Grund haben wir uns in erster Linie auf zwei Arten von Problemen konzentriert: Die Klassifikation von Bildern und die Vorhersage von Zahlwerten.
Dies liegt daran, dass bei solchen Aufgaben offensichtlich ist, was die Ein- und Ausgabe für einen Machine Learning Algorithmus sind: Bilder lassen sich durch Zahlen als Abfolge von Farb- und Helligkeitswerten ausdrücken. Numerische Probleme wie „Wie viele Grillen zirpen pro Minute bei einer Sommertemperatur von 27°C?“ sind bereits in Zahlen ausgedrückt, so dass intuitiv klar ist, dass z.B. ein Neuronales Netz mit ihnen „rechnen“ kann.
Herausforderung für den Algorithmus: Sprache und Text
Aber wie verhält es sich, wenn man z.B. wissen will, ob es sich bei einer Email um Spam handelt oder nicht? Oder aus einer Masse von Kundenanfragen die dringlichsten und negativsten zwecks Priorisierung herausgefiltert werden sollen? Auch dies ist ein Klassifikationsproblem. Es ist aber hier nicht gleich klar, wie sich eine Email oder eine Anfrage so durch Zahlen ausdrücken lässt, dass man Machine Learning Algorithmen zur Lösung dieses Problems anwenden kann.
In den nächsten Artikeln werden wir konkret beleuchten, welche Methoden und Funktionen beim NLP, bei der automatisierten Erfassung und Erstellung von Texten angewandt werden. Heute geht es uns aber zunächst um einen Überblick. Was genau ist NLP? Welche Teilbereiche fasst es zusammen und welche Herausforderungen und Anwendungsmöglichkeiten gibt es derzeit?
Natural Language Processing - NLP
Der Fachbegriff für das Verstehen und Verarbeiten von Text ist „natural language processing“, meist abgekürzt mit NLP. Im Deutschen findet sich oft noch der Begriff „Computerlinguistik“. Allerdings setzt sich auch hierzulande der Begriff NLP zunehmend durch, weshalb wir ihn ebenfalls verwenden wollen.
Für Außenstehende mag es vielleicht befremdlich klingen, dass immer von natural language, also „natürlicher“ Sprache gesprochen wird. Gibt es denn auch „unnatürliche Sprache“? Diese Hervorhebung beruht darauf, das Computer bereits sehr früh in der Lage waren, Sprachen perfekt zu verstehen - allerdings nur solche, die für sie gemacht waren, nämlich Programmiersprachen. Um hier klar abzugrenzen, wurde der Begriff „natürlich“ gewählt, da menschliche Sprache (bis auf wenige Ausnahmen) nicht formal konstruiert ist, sondern sich natürlich entwickelt hat.
Geschriebene Sprache vs. gesprochenes Wort im ML
Um einem häufigen Missverständnis gleich vorwegzugreifen: Beim NLP geht es um die Verarbeitung von geschriebener Sprache, nicht um das gesprochene Wort. Die Umwandlung von gesprochener Sprache in Text nennt man Speech-to-text (STT). Umgekehrt, z.B. bei einem Screenreader, spricht man von Text-to-Speech (TTS). Da hier auch Audiosignalverarbeitung eine Rolle spielt, wird dies meist nicht zum NLP hinzugezählt.
Genauso verhält es sich mit der Umwandlung eingescannter Dokumente in Textdateien (optical character recognition - OCR) oder Handschrifterkennung. Da es sich dabei eher um das Erkennen von visuellen Komponenten handelt, gehört es (wie STT und TTS) nicht zum eigentlichen NLP. Ganz einfach gesagt: NLP ist alles das, bei dem eine einfache Textdatei (.txt) als Eingabe und/oder Ausgabe für ein KI-System dienen kann.
Untergliederung von NLP in Verständnis (NLU) und Erzeugung (NLG)
NLP gliedert sich weiter auf in die Bereiche „natural language understanding“ (NLU) und „natural language generation“ (NLG).
Erfassung von Text durch ein KI Modell (NLU)
Beim NLU muss ein Computerprogramm einen gewissen Aspekt des Textes „verstehen“, um ein Problem zu lösen. Meist ist dieses Textverständnis der KI aber nur auf einen ganz bestimmten Aspekt fokussiert, so dass es sich nicht um das gleiche Verständnis handelt, wie es z.B. ein Mensch beim Lesen eines Textes hat.
NLU beginnt zunächst bei Aufgaben, wie wir sie noch aus der Grundschule kennen - grammatische Analyse von Texten, z.B.:
- Unterscheiden von Wortarten: Was ist ein Verb, was ein Adjektiv?
- Erkennen von Plural, Singular und grammatischem Geschlecht
- Erkennen von Fällen
Komplexer wird es im NLU, wenn neben einfachen grammatischen Aufgaben auch die Bedeutung von Worten (die Semantik) eine Rolle spielt. Dann werden die Aufgaben schwerer, aber auch spannender und nützlicher:
- Unterscheiden von Subjekt und Objekt (Wer tut etwas mit was?)
- Erkennen von Personen, Orten, Produkten, Marken etc. (Worüber wird in einem Text gesprochen?)
- Erkennen von Schlüsselwörtern in einem Text (Welche Wörter sind besonders wichtig? Worüber beschwert sich ein Kunde?)
- Klassifizierung von Text (Vertrag oder Rechnung? Spam oder wichtige Email? Dringende Aufgabe oder Smalltalk? Positives oder negatives Kundenfeedback?)
Mit Systemen, die auf derartige Aufgaben trainiert sind, lassen sich schon einfache Büroaufgaben automatisieren, die bisher Menschen vorbehalten waren. Dokumente und Emails können automatisch erkannt und an die richtigen Empfänger geschickt werden, wichtige Informationen, wie z.B. Rechnungsempfänger, Auftragsnummer können automatisiert extrahiert und in CRM und ERP Systeme übertragen werden.
Erzeugung von Texten durch ein KI Modell (NLG)
Das Gegenstück zu NLU ist dann die Erzeugung natürlicher Sprache, die natural language Generation (NLG). Hier liegt der Fokus auf der Sprache als Ausgabe des Systems. Klassische NLG Anwendungen sind z.B.:
- Erzeugung von Text auf Basis von maschinenlesbaren Daten, wie Wetterberichte, Sportberichte, Finanztexte oder Produktbeschreibungen
- Zusammenfassung von Texten
- Übersetzung von Texten
NLG Systeme ermöglichen die Erschließung neuer Geschäftsbereiche, die bisher aufgrund der zu hohen Kosten manueller Texterstellung nicht rentabel gewesen wären, also dem „long tail“-Bereich. So können z.B. sehr viele, differenzierte Landingpages zur SEO erstellt werden, die ohne maschinelle Unterstützung nicht bezahlbar wären.
In Zusammenarbeit mit einem guten NLP System werden NLG Systeme noch interessanter, da durch das automatische Erzeugen von Text deutlich mehr Aufgaben vollständig automatisiert werden können als durch reines Verstehen. Ein typisches Beispiel sind zum Beispiel Chatbots, die das Anliegen eines Gesprächspartners verstehen müssen (NLU) und dann eine passende Antwort erzeugen (NLG).
In den nächsten Artikeln wollen wir dann genauer beleuchten, wie ein Machine Learning und insbesondere Deep Learning System solche Probleme lösen kann.
FAQs
Was ist NLP?
Die Abkürzung NLP steht für natural language processing (Verarbeitung natürlicher Sprache) und bezeichnet einen Schwerpunkt des Machine Learning, bei dem natürliche (d.h. menschliche) Sprache von Algorithmen automatisiert verarbeitet wird.
NLP unterteilt sich wiederum in zwei Teilbereiche, nämlich das NLU (natural language understanding), also die automatisierte Erfassung von Sprache, und NLG (natural language generation), das automatisierte Erzeugen von Texten. Beide Aufgaben werden idealerweise durch die Kombination verschiedener ML Verfahren (etwas die Bestimmung von Wortart, Fall oder Geschlecht, Klassifikation von unterschiedlichen Textgattungen, das Erkennen von Eigennamen oder Schlüsselwörtern) gelöst.
Eine Herausforderung im NLP ist die Tatsache, dass (etwa durch variierende Satzlänge etc.) die Eingabewerte stets ändern und dies berücksichtigt werden muss.
Was ist der Unterschied zwischen NLU und NLG?
Sowohl NLU als auch NLG sind Ansätze, mittels Künstlicher Intelligenz und Machine Learning natürliche Sprache automatisiert zu verarbeiten.
NLU steht abgekürzt für natural language understanding - der Algorithmus soll dahingehend trainiert werden, maschinelle Texte korrekt zu erfassen. Ein Anwendungsbeispiel wären etwa Spamfilter, die entsprechende Mails fehlerfrei sortieren, ML Systeme, mit denen Dokumente und Akten korrekt klassifiziert und abgelegt werden oder die Sentiment Analyse, mit der etwa Kundenanfragen oder Rezensionen basierend auf der Stimmung des Textes vorsortiert und priorisiert werden können.
NLG (abgekürzt für natural language generation) bezeichnet die automatisierte Erzeugung von Texten. Wie bei anderen ML Ansätzen sind die fehlerfreie Eingabe von maschinenlesbaren Daten und eine erfolgreiche Trainingsphase hierzu notwendig. Korrekt trainiert, kann das System im Anschluss bspw. Wetterberichte oder Sportnachrichten erstellen.
Wieso spricht man beim NLP (natural language processing) von natürlicher Sprache?
Es wird ausdrücklich von natürlicher Sprache gesprochen, um beispielsweise Computer- oder Programmiersprachen auszuschließen. Im NLP (veraltet auch Computerlinguistik genannt) geht es um die Verarbeitung menschlicher Sprache.
Wird NLP (natural language processing) auch zur Verarbeitung und Erzeugung von gesprochener Sprache angewandt?
NLP bezieht sich ausschließlich auf maschinenlesbare Informationen. Zur Verarbeitung von gesprochener Sprache ist zunächst eine Umwandlung, bzw. Verschriftlichung nötig. Dabei spricht man von Speech-to-text (STT) oder - etwa bei einem Screenreader/Vorleser von Text-to-Speech (TTS). Da hier auch Audiosignalverarbeitung eine Rolle spielt, wird dies meist nicht zum NLP hinzugezählt.
Ähnliches gilt für Dokumentenerfassung oder Handschriftenerkennung mittels Scan, bei dem Methoden der Bilderkennung(optical character recognition - OCR) angewandt werden.