Was ist Natural Language Processing?

Natural Language Processing bezeichnet die Verarbeitung natürlicher Sprache durch den Computer. Dazu gehört beispielsweise die Übersetzung einer Sprache in eine andere, aber auch das Erkennen gesprochener Sprache oder das automatische Beantworten von Fragen. Bei solchen Aufgaben haben Computer oft Verständnisprobleme, da sie in erster Linie die Bedeutung der einzelnen Worte beachten. Für ein Übersetzungsprogramm ist es daher schwierig, den Unterschied in der Bedeutung des Wortes „Bahnhof“ in den Sätzen „Ich gehe zum Bahnhof“ und „Ich verstehe nur Bahnhof“ zu erfassen.

Durch Natural Language Processing lernen Computer, die Bedeutung von zusammenhängenden Textabschnitten wie Phrasen oder Sätzen zu verstehen und sinnvoll zu verwenden. Das ist nicht nur nützlich bei Übersetzungen oder Chatbots, sondern auch, wenn Computer gesprochene Befehle ausführen oder gesprochene Sprache generieren sollen, um zum Beispiel mit einer blinden Person zu kommunizieren. Auch für das Zusammenfassen von längeren Texten oder um gezielt bestimmte Informationen aus einer großen Textmengen zu extrahieren, brauchen Computer ein Verständnis sprachlicher Zusammenhänge.

Wie funktioniert Natural Language Processing?

Unabhängig davon, ob es nun um eine automatische Übersetzung oder um eine Unterhaltung mit einem Chatbot geht: Allen Natural-Language-Processing-Methoden ist gemeinsam, dass sie die Hierarchien beachten, die die Zusammenhänge zwischen den einzelnen Wörtern bestimmen. Das ist schwierig, denn viele Worte haben doppelte Bedeutungen: „Einstellen“ zum Beispiel kann bedeuten, dass man jemanden einen Job gibt, aber auch, dass ein Prozess beendet wird („er stellte seine Arbeit ein“). Oder es bezieht sich darauf, dass man den Kopierer richtig einstellen muss, um das gewünschte Resultat zu bekommen.

Solche Schwierigkeiten sind der Grund dafür, dass Natural Language Processing als einer der kompliziertesten Bereiche der Informatik gilt. Sprache ist oft doppeldeutig, und sie zu verstehen, erfordert ausführliches Wissen über den Kontext, in dem sie verwendet wird. Viele Nutzer werden aus eigener Erfahrung die holprige Kommunikation mit Chatbots kennen, die immer häufiger als Ersatz für Live-Chats im Kundenservice verwendet werden. Dennoch verstehen Computer die menschliche Sprache immer besser. Um ihnen die Sprache beizubringen, greifen Computerlinguisten auf die Kenntnisse der verschiedenen Sprachwissenschaftsbereiche zurück:

  • Die Morphologie beschäftigt sich mit der Zusammensetzung von Wörtern und deren Beziehungen zu anderen Wörtern.
  • Die Syntax definiert, wie Wörter zu Sätzen zusammengefügt werden.
  • In der Semantik geht es um die Bedeutung von Wörtern und Gruppen von Wörtern.
  • Mithilfe der Pragmatik wird der Kontext von sprachlichen Äußerungen in den Blick genommen.
  • Die Phonologie schließlich beschäftigt sich mit dem akustischen Aufbau gesprochener Sprache und ist wichtig für die Spracherkennung.

Part-of-Speech-Tagging (PoS)

Der erste Schritt beim Natural Language Processing hat mit der Morphologie zu tun: Er besteht darin, die Funktion einzelner Wörter zu bestimmen. Die meisten Menschen kennen eine vereinfachte Form dieses Prozesses aus der Schule, wo sie gelernt haben, Wörter etwa als Substantiv, Verb oder Adjektiv zu benennen. Das Bestimmen der Wortfunktion ist für Computer keine einfache Aufgabe, denn ein Wort kann abhängig vom Satz, in dem es vorkommt, die Funktion wechseln.

Um diese Mehrdeutigkeit der Worte aufzuschlüsseln, gibt es verschiedene Methoden: Die ältesten basieren auf großen Textkorpora wie dem Brown Corpus oder dem British National Corpus. Diese Korpora bestehen aus Millionen Wörtern Prosatext, die getaggt sind und aus denen Lernregeln für das Taggen von Wörtern abgeleitet werden können. Anhand des Brown Corpus konnte etwa die Regel aufgestellt werden, dass ein Verb keine Prädikatsfunktion mehr hat, wenn davor ein Artikel steht.

Die neueren Tagging-Programme verwenden selbstlernende Algorithmen, was bedeutet, dass sie aus den vorhandenen Textkorpora automatisch Regeln ableiten und diese verwenden, um weitere Wortfunktionen zu bestimmen. Eines der bekanntesten Beispiele einer Tagging-Methode, die auf solchen Algorithmen basiert, ist der Brill-Tagger, der zuerst die meist vorkommende Wortfunktion im Satz bestimmt, um danach mithilfe von Regeln die anderen Wortfunktionen abzuleiten. Eine Regel könnte etwa sein: Wenn das erste Wort eines Satzes ein Eigenname ist, ist das zweite wahrscheinlich ein Verb. In einem Satz wie „Jan hat ein Buch gekauft“ kann damit das Wort „hat“ als Verb eingestuft werden.

Parser Trees/Baumdiagramme

In einem zweiten Schritt werden Kenntnisse aus der Syntax genutzt, um die Struktur von Sätzen zu verstehen. Dazu verwendet die Computerlinguistik Baumdiagramme, mittels derer ein Satz in Phrasen aufgeteilt wird. Beispiele von Phrasen sind etwa Nominalphrasen, die aus einem Eigennamen oder aus einem Substantiv und einem Artikel bestehen, oder Verbphrasen, die aus einem Verb und einer Nominalphrase bestehen.

Auf Englisch heißt das Einteilen der Sätze in Phrasen Parsing, und die dabei entstehenden Baumdiagramme Parser Trees. Jede Sprache hat eine eigene Grammatik, was bedeutet, dass in jeder Sprache die Phrasen anders zusammengesetzt sind und die Hierarchie der Phrasen anders funktioniert. Die Grammatik einer Sprache kann in einem Computerprogramm per Hand programmiert werden, oder anhand eines Textkorpus, in dem die Satzstrukturen vermerkt sind, erlernt werden.

Semantik

Der dritte Schritt des Natural Language Processing führt die Entwickler in die Bereiche der Semantik. Auch wenn sowohl das Tagging als auch die syntaktische Funktion eines Wortes gleich sind, kann es dennoch vorkommen, dass das Wort verschiedene mögliche Bedeutungen hat. Beispielhaft verdeutlichen das folgende Sätze:

Im Topf wachsen schöne Blumen

Der Topf ist voller Kartoffeln

Ein Mensch, der die deutsche Sprache gut genug kennt, wird sofort wissen, dass es sich im ersten Satz um einen Blumentopf und im zweiten um einen Kochtopf handelt. Für einen Computer ist das aber nicht so leicht zu bestimmen. Über das Wissen, das nötig ist, um den Unterschied zwischen einem Topf, in dem normalerweise Blumen wachsen, und einem Topf, in dem man Kartoffeln kocht, zu erkennen, verfügt der Computer nicht, und es ist für ihn nur schwer zu erlernen.

Meistens versuchen Computer deshalb, die Bedeutung eines Wortes mithilfe der Worte zu bestimmen, die davor und danach im Satz stehen. So kann ein Computer lernen, dass es sich beim Wort „Topf“, das von dem Wort „Kartoffeln“ gefolgt wird, um einen Kochtopf handelt, und beim Wort „Topf“, das vom Wort „Blumen“ gefolgt wird, um einen Blumentopf. Dieses Lernen erfolgt anhand von Textkorpora, in denen die Bedeutung jedes Wortes korrekt wiedergegeben ist.

Alles in allem bleibt Natural Language Processing ein komplexes Fachgebiet: Computer müssen eine große Menge an Einzelfällen verarbeiten und bei doppeldeutigen Worten besteht schnell die Möglichkeit, dass der Computer diese falsch deutet. Vor allem im Bereich der Pragmatik kann noch sehr viel verbessert werden, da es sich bei dem Kontext, in dem ein Satz geäußert wird, meistens um einen weltlichen Kontext handelt oder zumindest um einen Kontext, den zu verstehen viel Wissen über die eigene Welt erfordert. Besonders Ironie und Sarkasmus und humorvolle Metaphern sind für Computer schwer zu verstehen, auch wenn es erste Versuche gibt, sie zu klassifizieren.

Natural Language Processing Tools

Wer sich selbst mal in Natural Language Processing versuchen möchte, findet dafür online praktische Tools und Anleitungen. Welches Tool für Sie am besten geeignet ist, hängt wesentlich davon ab, für welche Sprache und für welche Natural-Language-Processing-Methoden Sie es verwenden möchten. Einige bekannte Open-Source-Tools sind:

  • Das Natural Language Toolkit ist eine Sammlung von Natural Language-Processing-Tools in Python. Das Toolkit bietet einen Zugang zu über 100 Textkorpora – unter anderem in Englisch, Portugiesisch, Polnisch, Niederländisch, Katalanisch und Baskisch. Zudem kann das Toolkit verschiedene Textbearbeitungen ausführen, wie Part-of-Speech-Tagging, Parsing, Tokenization (das Bestimmen eines Wortstammes; ein oft genutzter vorbereitender Schritt für Natural Language Processing) und das Zusammenfassen von Texten (Wrapping). Das Natural Language Toolkit umfasst auch eine Einführung ins Programmieren und eine ausführliche Dokumentation und ist somit etwa für Studierende, Dozierende und Forschende geeignet.
  • Stanford NLP Group Software: Eine der führenden Forschungsgruppen im Bereich Natural Language Processing bietet verschiedene Tools an. Damit lassen sich etwa die Basisformen der Wörter (Tokenization), die Funktionen der Wörter (Parts-of-Speech-Tagging) und die Struktur der Sätze (Parsing) bestimmen. Zudem gibt es Tools für kompliziertere Prozesse wie Deep Learning, bei dem der Kontext der Sätze beachtet wird. Die meisten Basisfunktionen sind im Stanford CoreNLP zu finden. Alle Programme der Stanford NLP Group sind in Java geschrieben und für die Sprachen Englisch, Chinesisch, Deutsch, Französisch und Spanisch verfügbar.
  • Visualtext ist ein Toolkit, das in einer eigenen Programmiersprache für Natural Language Processing geschrieben ist: NLP++. Diese Programmiersprache ist vor allem für sogenannte Deep Text Analyzers entwickelt worden, also für Analysen, für die Weltwissen (Informationen zur Umwelt und Gesellschaft) benötigt wird. Visualtext dient vor allem dazu, gezielt Informationen aus großen Textmengen zu extrahieren. Zum Beispiel können Sie mit Visualtext lange Texte zusammenfassen, aber auch etwa Events zu einem bestimmten Thema von verschiedenen Webseiten sammeln und in einer eigenen Übersicht unterbringen. Für nichtkommerzielle Zwecke darf man Visualtext kostenlos nutzen.