Die Verarbeitung natürlicher Sprache (Natural Language Processing, NLP) ist ein Teilbereich der künstlichen Intelligenz (AI), der die Kommunikation zwischen Mensch und Computer verbessern soll. Menschen sprechen in Sprachen, die durch fehleranfällige Regeln definiert sind. Sie machen Fehler und verwenden unlogische Aussagen, aber sie verstehen sich trotzdem recht gut. Computer hingegen brauchen eine perfekte Struktur, am besten bereits in Form von Einsen und Nullen. Da die wenigsten von uns mit dem Binärsystem umgehen können und Maschinen immer noch mit dem Konzept des Sarkasmus zu kämpfen haben, gibt es hier sicherlich eine Lücke zu schließen.
"Hallo!"
"01001000 01101001 00100001"
Erfolg in der Wirtschaft hängt von der Datenanalyse ab, denn sie gibt die Richtung für Verbesserungen vor. Doch im Gegensatz zu Tabellenkalkulationen und Tabellen ist die natürliche Sprache eine unstrukturierte Quelle. Die textuellen und verbalen Daten, die Menschen jeden Tag erzeugen, übersteigen die menschlichen Verarbeitungsmöglichkeiten. Die Lösung besteht daher darin, die relevanten Informationen automatisch zu extrahieren. Die Verarbeitung natürlicher Sprache ermöglicht es Maschinen, die komplexe Bedeutung in unseren Sätzen herauszufinden. Sie arbeitet im Hintergrund vieler Dienste, von Chatbots über virtuelle Assistenten bis hin zur Verfolgung von Trends in den sozialen Medien. Lesen Sie diesen Blogbeitrag, um mehr über die Schwierigkeiten und Lösungen verschiedener NLP-bezogener Probleme zu erfahren.
Natürliche Sprache ist verblüffend komplex. Ein Mensch kann sie dennoch intuitiv erlernen und verstehen, ohne etwas über Grammatik oder Konventionen zu wissen. Maschinen hingegen beherrschen ihre Sprachkenntnisse ganz anders.
"Mutti?"
"Ein umgangssprachliches Substantiv, ein Synonym für Mutter"
Bevor NLP mit KI verbunden wurde, gab es regelbasierte Ansätze für die Kommunikation zwischen Mensch und Computer. Diese Modelle versuchten, jede einzelne Regel einer Sprache zu beschreiben, was an sich schon eine immense Aufgabe ist. Dann legten sie die Gewichtung oder den Vorrang der Prinzipien fest und wandten die Formel auf die Eingabe an. Die Ergebnisse waren annehmbar, bis das Modell auf etwas stieß, das nicht den Regeln entsprach. Zum Beispiel ein falsch geschriebenes Wort, ein unbekannter Name oder ein Wortspiel.
Menschen sind sich normalerweise nicht bewusst, wie fehlerbehaftet Sprache ist. Ein Sprecher macht ständig kleine Grammatikfehler, ändert mitten im Satz seine Meinung und mischt Begriffe aus anderen Sprachen ein. Aber das ist noch nicht alles. Was ist mit Wörtern, die in verschiedenen Dialekten uneinheitlich ausgesprochen werden, mit Redeflussstörungen und Sprachstörungen wie Nuscheln und Stottern?
"Gestern stieg ich also aus meinem Auto, als John vorbeikam und... kennen Sie John? Der große Typ von der Arbeit? Wie auch immer, er kam zu mir, um über Stephanie zu reden... oder war es...? Wie auch immer. Also... der Punkt ist, ich wusste nicht... hörst du überhaupt zu?"
Geschriebener Text ist auch nicht viel besser. Ausgelassene Interpunktion, fehlerhafte Formulierungen, Tippfehler und viele andere Ungenauigkeiten können den Sinn verschleiern. Auch wenn er standardisierter zu sein scheint als Sprache, so gibt es doch immer noch widerspenstige Bereiche. Emojis sind ein gutes Beispiel dafür. Sie existieren außerhalb jeglicher grammatikalischer Regeln, sind aber dennoch wichtige Symbole der natürlichen Sprache.
"🐎%?"
Neben Fehlern stellt auch die kontextuelle Bedeutung eine Herausforderung für die Sprachverarbeitung dar. Maschinen sind dafür berüchtigt, alles ein bisschen zu wörtlich zu nehmen. Während Menschen normalerweise mit einer Phrase, einer poetischen Bedeutung oder einer Metapher umgehen können, kann ein Computer verwirrt werden. Ähnlich schwierig ist es, die richtige Bedeutung eines Homographen, Heteronyms oder Homonyms zu bestimmen. Dabei handelt es sich um Wörter, die die gleiche Aussprache und/oder Schreibweise haben, aber unterschiedlich verwendet werden. Nicht einmal Google Translate kann mit diesen Wörtern richtig umgehen, da es manchmal das falsche Wort auswählt, was zu lustigen Ergebnissen führt.
Sarkasmus, Ironie und Witze nehmen einen noch spezielleren Raum ein, da weder Menschen noch Regeln sie mit völliger Sicherheit beschreiben können. Diese Mehrdeutigkeit kann zu Komplikationen führen, selbst wenn die grammatikalischen Regeln durch maschinelles Lernen unterstützt werden.
"Oh, das ist ja eine tolle Nachricht!"
NLP ist in der Lage, viele Hindernisse zu überwinden, die sich aus der unlogischen, fehleranfälligen Natur einer Sprache ergeben. Auch wenn Computer die englische Sprache noch nicht so gut verstehen wie wir, sind sie bereits in der Lage, nützliche Erkenntnisse zu liefern. Es gibt verschiedene Methoden der natürlichen Sprachverarbeitung, die für unterschiedliche Aufgaben geeignet sind, um gute Ergebnisse zu erzielen.
Wenn es um NLP geht, ist die Textklassifizierung fast schon eine Mogelpackung...und das aus gutem Grund. Ein gut trainierter Klassifikator kann hochpräzise Analysen und Vorhersagen erstellen, ohne die natürliche Sprache wirklich zu verstehen. Das Training selbst ist sowohl die Stärke als auch die größte Schwäche der Lösung.
Ein Textklassifizierungsmodell vergleicht die Eingabe mit Statistiken, die aus den Trainingsdaten erstellt wurden, und entscheidet dann über eine Kennzeichnung. Wie die Regeln der Kennzeichnung funktionieren, wird niemand jemals genau wissen, da sie vom Klassifikator festgelegt werden. Dieser Ansatz ist anpassungsfähiger als die grammatik- und regelbasierten Systeme. Sprache verändert sich schnell und organisch, aber mit frischen Statistiken kann das System auf dem neuesten Stand bleiben. Eine neue Phrase, eine neue Gewohnheit oder ein neuer Ausdruck ist erst dann von Bedeutung, wenn der Klassifikator sie mit einem Label verbinden kann. Diese Flexibilität hat den Preis, dass riesige Mengen von Trainingsdaten benötigt werden.
Ein gutes Beispiel, das die Schwäche der Textklassifizierung deutlich macht, ist ein Sentiment-Analysator. Nehmen wir an, das Modell soll Benutzerbewertungen aus Rezensionen vorhersagen. Der trainierte End-to-End-Klassifikator kann längere Sätze mit einer eher negativen Stimmung verbinden, während positive Meinungen weniger wortreich sind. Menschen neigen in der Regel dazu, ihre Probleme aufzuzählen, wenn sie unzufrieden sind. Andererseits hinterlassen zufriedene Kunden eher kurze, emotional beschreibende Kommentare. Das Ergebnis ist, dass der Klassifikator in den meisten Fällen richtig liegt. Aber was passiert mit Bewertungen wie diesen?
"Schrecklicher Ort! :("
"Ich empfehle dieses Restaurant unbedingt jedem, der ein echtes kulinarisches Erlebnis haben möchte. Die Speisekarte ist ein Gesamtkunstwerk, und das Personal ist höflich und sehr professionell. Das Beste ist, wenn das Dessert kommt!"
Es besteht natürlich die Möglichkeit, dass der Klassifikator Wörter wie schrecklich, höflich und am besten mit Gefühlen verknüpft. In diesem Fall hat die Paarungsregel Vorrang vor den anderen. Wenn dies jedoch nicht der Fall ist, ist es in der Regel einfacher, das Modell mit mehr Trainingsdaten zu füttern, bis es das richtige Ergebnis ausspuckt, als zu versuchen, den Code neu abzustimmen.
Die Lösung kann in der Regel erfolgreich mit der Filterung von Spam und sensiblen Inhalten, der Weiterleitung von Support-Tickets, der Spracherkennung, der Kategorisierung von Inhalten und der Erkennung von Duplikaten umgehen. Andererseits ist die Textklassifizierung keine brauchbare Option, wenn ein tieferes Verständnis der Bedeutung erforderlich ist.
Um einem Satz eine genauere Bedeutung zu entlocken, muss er zunächst in kleinere, besser verständliche Teile zerlegt werden. Danach können die winzigen Teile durch Schichten verbunden und gemeinsam bis zur obersten Ebene untersucht werden. Eine Pipeline für die Verarbeitung natürlicher Sprache besteht aus Schritten, die sowohl die syntaktische als auch die semantische Analyse ermöglichen.
Schauen wir uns an, wie sie aufeinander aufbauen.
Die erste Stufe der Syntaxanalyse ist in der Regel die Partitionierung der Daten. Der Textkorpus kann auf einer hohen Ebene in Kapitel und Absätze unterteilt werden. Dies hilft dabei, einen größeren, allgemeineren Kontext für einen Gedanken zu identifizieren, der normalerweise in einem Satz ausgedrückt wird. Ein wesentlicher Teil der Analyse des Natural Language Understanding (NLU) findet in dieser engeren Umgebung statt. Die Zeichensetzung kann eine gute Grundlage für die Unterscheidung bilden, ist aber bei spontan geschriebenen Texten wie Chatnachrichten unzuverlässig. Wenn die Formatierung des Dokuments nicht sauber ist, können zusammengesetzte Regeln helfen, die für die jeweilige Situation spezifisch sind.
Der nächste Schritt besteht darin, die Bausteine von Sätzen zu identifizieren: Satzzeichen und Wörter. In der Regel werden sie durch Leerzeichen oder Zeilenumbrüche getrennt. NLP-Modelle tokenisieren diese Teile normalerweise als Symbole. Das Bag-of-Words-Modell vereinfacht die Analyse, um die Bedeutung der Wörter zu extrahieren, lässt aber die Grammatik außer Acht. Dieses Modell ist gut geeignet, um die Häufigkeit von Begriffen und die Anzahl der einzelnen Wörter zu erfassen.
Wörter haben auch eine innere Struktur, die eine Analyse wert ist. Bei der Lemmatisierung werden die flektierten Formen eines Wortes gruppiert, damit sie als ein einziges Element analysiert werden können. Beim Stemming werden flektierte (oder manchmal abgeleitete) Wörter auf ihren Wortstamm, ihre Basis oder Wurzel reduziert. In dieser Phase gibt es einen großen Unterschied zwischen den Sprachen. Einige Sprachen verwenden hauptsächlich die Flexion, andere bevorzugen unabhängige Wortstämme als Suffixe und Präfixe, um die Bedeutung zu verfeinern. Schauen wir uns ein paar Beispiele an, um zu sehen, warum dies problematisch sein kann.
Isolierende Sprachen vermeiden die Flexion. In der Regel besteht ein Wort aus einem Morphem, das eine sinnvolle morphologische Einheit einer Sprache darstellt, die nicht weiter unterteilt werden kann. Die Verschmelzung zwischen den Morphemen ist lose. Neben Mandarin-Chinesisch und Vietnamesisch weist auch das Englische typische Merkmale einer isolierenden Sprache auf, hier ein Beispiel aus dem Indonesischen.
Orang = Person
Orang-orang = Menschen
Flexionsmorpheme sind die wichtigsten Merkmale von Fusionssprachen. Sie können sowohl grammatische Relationen als auch semantische Bedeutungen ausdrücken, indem sie den Stamm selbst verändern. Unter den europäischen Sprachen gehören Deutsch, Italienisch, Latein und Spanisch zu dieser Gruppe. Das Englische hat auch einige flektierende Morpheme, wie -ing und -ed. Agglutinierende Sprachen
Wie der Name schon sagt, klebt diese Art von Sprachen ihre Morpheme an den Stamm. Da die Grenzen innerhalb der Verbindung in der Regel klar bleiben, sind Stammbildung und Analyse einfacher als bei fusionalen Sprachen. Finnisch, Ungarisch, Estnisch und Türkisch sind allesamt agglutinative Sprachen. Ein gutes Beispiel ist die ungarische Verbkonjugation. Anstelle von Pronomen - wie er, sie, wir - verwendet diese Sprache Affixe.
Látok - ich sehe
Látsz - du siehst
Látunk - wir sehen
Sprachen weisen in der Regel Merkmale von mehr als einem Typ auf, was die Sache weiter verkompliziert. Da die grammatikalischen Unterschiede erheblich sind, sollten die Lemmatisierung und das Stemming des NLP-Modells auf die Sprache abgestimmt sein.
Der nächste Schritt besteht darin, herauszufinden, welche Wortart - POS - zu dem Symbol gehört. Ist das Wort ein Substantiv, ein Adjektiv oder ein Verb? Welche Funktion hat es? Manchmal übernimmt Deep Learning das POS-Tagging, aber auch statistische und grammatikbasierte Lösungen sind möglich.
An diesem Punkt erkennen viele Modelle Stoppwörter und entfernen sie. Typische Stoppwörter sind das, an und a, die ignoriert werden, weil sie für sich genommen keine Bedeutung haben. Die Auswahl erfolgt in der Regel auf der Grundlage einer vordefinierten Liste, die dem Ziel des Prozesses entspricht.
Die nächste Ebene ist das Dependency Parsing. Dabei wird die Beziehung zwischen den Wörtern aufgedeckt. Während dieses komplexen Prozesses wählt das Modell einen Wortstamm im Satz aus und erstellt einen Baum von Eltern- und Kindwörtern um ihn herum. Das Ergebnis zeigt das Subjekt des Satzes, Konjunktionen, Adverbien, Determinatoren, Modifikatoren und andere Beziehungen. Ein Elternwort und seine Kinder stellen eine Phrase dar, eine sinnvolle, unabhängige Struktur innerhalb des Satzes. Die Situation ist jedoch nicht immer eindeutig, so dass das Modell manchmal nur Vermutungen anhand ähnlicher Fälle anstellen kann. Um das Auftreten von unsicheren Fällen zu minimieren, ist das Dependency Parsing immer noch ein Gebiet, an dem ständig geforscht wird. Strukturanalyse eines Satzes
Alle syntaktischen Untersuchungen dienen dazu, die Grundlage für die semantische Analyse zu schaffen. Die mit Tags versehenen und aneinandergereihten Wörter sind bereit für die Informationsextraktion. Der Prozess kann mit der Named Entity Recognition (NER) fortgesetzt werden, die die Wörter mit den Ideen verknüpft, die sie repräsentieren. In diesem Schritt werden Substantive mit Tags wie Personen, Unternehmen und Daten gekennzeichnet. In schwer zu bestimmenden Fällen leitet die Wortsinn-Disambiguierung die richtige Wahl aus dem Kontext ab.
Da es keine Möglichkeit gibt, eine umfassende Liste von Entitätsarten zu erstellen, wird jede Entität durch Merkmale beschrieben. Wenn NER also Entitäten identifiziert, berücksichtigt es Interpunktion, Umgebung, POS-Tags und andere. Der Name einer Person ist zum Beispiel nicht dadurch unterscheidbar, dass jede Person aufgelistet ist. Stattdessen weisen die Großbuchstaben und ihre Funktion im Satz darauf hin, dass es sich um einen Namen handelt.
Um auf noch mehr Informationen zuzugreifen, kann die Koreferenzauflösung Pronomen auf Substantive abbilden. Die Bedeutung von er, sie und es ist rein kontextabhängig und geht über die Grenzen eines Satzes hinaus. Jedes Wort zu finden, das auf dasselbe Substantiv verweist, ist für das menschliche Gehirn ein Leichtes, für jedes NLP-Modell jedoch eine große Herausforderung.
Bill und Tom haben den Tag mit Spielen verbracht. Es hat ihnen Spaß gemacht, also sind sie glücklich.
Natürlich lassen sich einige Ebenen überspringen oder funktionieren auch in einer anderen Reihenfolge gut. Das genaue Modell sollte immer dem Endziel entsprechen. NLP eignet sich hervorragend für Textzusammenfassungen, da es den Korpus schneller und unvoreingenommener kürzen kann als Menschen. Neben allgemeinen Zusammenfassungen ist es auch möglich, bestimmte Teile zu extrahieren, eine Zusammenfassung zu erstellen oder den Text für Abfragen zu indizieren. Mit Hilfe von Natural Language Understanding kann ein Computer relevante Informationen in unstrukturierten Daten finden. Telefonanrufe, spontane Chatnachrichten, handschriftliche Notizen und viele andere Quellen müssen nicht mehr von Menschenhand bearbeitet werden. Sogar Übersetzungen werden dank NLP immer genauer, obwohl sie für eine Maschine eine äußerst komplexe Aufgabe darstellen.
Wenn Sie NLP selbst ausprobieren möchten, sollten Sie sich ein wenig mit Python oder Cython auskennen, da es dort eine Vielzahl von Bibliotheken gibt. spaCy bietet Deep-Learning-Fähigkeiten sowie eine hohe Leistung und eine relativ einfache Lernkurve. Es kann Tokenisierung, NER, Dependency Parsing, POS-Tagging und syntaxbasierte Satzsegmentierung durchführen. Textacy baut auf spaCy auf und erweitert dessen Funktionen durch weitere Flexibilität. Es kann Datensätze bereinigen und visualisierte Statistiken oder Vergleiche erstellen. NeuralCoref lässt sich ebenfalls in die spaCy-Pipelines integrieren und bietet Optionen zur Auflösung von Koreferenzen.
Dieser Beitrag hat nur an der Oberfläche von NLP gekratzt. Zunächst haben wir die Kluft zwischen der Kommunikation zwischen Mensch und Computer und die damit verbundenen Schwierigkeiten kennengelernt. Dann haben wir einen Blick auf die unglaubliche Komplexität und Vielfalt von Sprachen geworfen, die ebenfalls eine Reihe von Herausforderungen mit sich bringt.
Als Lösungen wurden regelbasierte Ansätze genannt, gefolgt von einem Überblick über die Stärken und Schwächen der Textklassifikation. Abschließend haben wir uns etwas eingehender mit dem natürlichen Sprachverständnis befasst. Neben den Ebenen der Syntax und der semantischen Analyse haben wir uns kurz mit Anwendungsfällen und NLP-Technologien befasst.
Wir hoffen, dass diese kurze Einführung Ihr Interesse geweckt hat, sich in das Abenteuer der natürlichen Sprachverarbeitung zu stürzen.