Was ist Natural Language Processing ?

Natural Language Processing (NLP) ist ein Prozess zur automatischen Analyse und Darstellung der menschlichen Sprache. Natural Language Processing versucht, natürliche Sprache zu erfassen und mithilfe von Regeln und Algorithmen computerbasiert zu verarbeiten. NLP setzt auf verschiedene Arten von Machine Learning Supervised Machine Learning und Unsupervised Machine Learning, um auf Basis statistischer Modelle sowie Vektorraumanalysen Inhalt und Struktur von Texten und gesprochener Sprache zu erkennen. Neuere NLP-Ansätze beschäftigen sich auch mit Methoden für die Textgenerierung  und Labeling (Kennzeichnung) über Reinforcement Learning (Bestärkendes Lernen) via Semi- oder Weak Supervised Machine Learning.

In anderen Worten Natural Language Processing also NLP ist der Prozess des Analysierens von Text, des Erstellens von Beziehungen zwischen Wörtern, des Verstehens der Bedeutung dieser Wörter und des Ableitens eines besseren Verständnisses der Bedeutung der Wörter, um daraus Informationen, Wissen oder neuen Text zu generieren

Für folgende Anwendungsbreiche kann Natural Language Processing eingesetzt werden:

  • Spracherkennung (text to speech & speech to text)
  • Segmentierung zuvor erfasster Sprache in einzelne Wörter, Sätze und Phrasen.
  • Erkennen der Grundformen der Wörter und Erfassung grammatischer Informationen
  • Erkennen der Funktionen einzelner Wörter im Satz (Subjekt, Verb, Objekt, Artikel, etc.)
  • Extraktion der Bedeutung von Sätzen und Satzteilen bzw. Phrasen wie Adjektivphrasen (z.B. zu langen), Präpositionalphrasen (z.B. an den Fluss) oder Nominalphrasen (z.B. der zu langen Party)
  • Erkennen von Satzzusammenhängen, Satzbeziehungen und Entitäten.

Natural Language Processing kann sowohl für die linguistische TextanalyseStimmungs- und Meinungs-Analyse (Sentimentanalyse), Übersetzungen als auch für SprachassistentenChatbots und zu Grunde liegenden Frage- & Antwort-Systemen zum Einsatz kommen.

 

Prozesse und Kernkomponenten von Natural Language Processing

Generell kann man die Funktionsweise von NLP gobe in die folgendenden Prozessschritte aufgliedern:

  1. Datenbereitstellung
  2. Datenvorbereitung
  3. Textanalyse
  4. Textanreicherung 

Klassisch beginnt der Prozess mit der Datenbereitstellung über einen Textkorpus, welcher aus mehreren Dokumenten besteht. Diese bestehen aus mindestens einem Wort, meistens aber aus mehreren Sätzen. Ein Textkorpus wären z.B. alle relevanten Dokumente zum Thema SEO. Die einzelnen Dokumente bestehen aus Kapiteln, Absätzen und Sätzen. Die Sätze werden dann pro Satz in einzelne Tokens zerlegt. Hier ein Beispiel aus einem Glossar-Beitrag zu SEO:

 Suchmaschinenoptimierung kurz SEO ist eine Methode im Online-Marketing, um die Auffindbarkeit in Suchmaschinen zu verbessern. Die Abkürzung SEO steht für Search Engine Optimization. In den letzten Jahren hat sich mit Search Experience Optimization auch eine zweite  Bedeutung durchgesetzt.  In der klassischen Suchmaschinenoptimierung wird zwischen Onpage-SEO und Offpage-SEO unterschieden.

Die einzelnen Tokens bleiben im Kontext der Sätze, damit die Relationen zwischen ihnen erhalten bleiben. Dadurch bleibt die semantische Beziehung der Absätze, Sätze und Tokens erhalten. In dem Prozessschritt der Datenvorbereitung  werden die einzelnen Tokens noch mit Labels bzw. Annotationen versehen.

Das so kommentierte Dokument dient als Grundlage für weitere vorbereitende Maßnahmen wie Text-Embeddings oder die Erkennung und Deutung von Entitäten (Entity Recognition).

Prozess der Sprachmodellierung; Quelle: http://www.datenbanken-verstehen.de/lexikon/natural-language-processing/

Dann können im nächsten Schritt Modelle auf die vorbereiteten Dokumente angewendet werden. Diese Sprachmodelle werden auf Basis von Machine Learning bzw. Trainingsdaten erlernt. In diesem Prozessschritt werden die Trainingsdaten in Tokens aufgeteilt, einer lexikalischen Klasse zugeordnet und Satzstrukturen ermittelt. In der abschließenden semantischen Analyse werden Entitäten identifiziert und gemäß ihrer Bedeutung mit Kommentaren versehen.

Die Kernkomponenten von NLP sind Tokenization zu deutsch TokenisierungKennzeichnung von Wörtern nach Wortarten (Part of Speech Tagging), Lemmatisierung, Wort-Abhängigkeiten (Dependency Parsing), Parse LabelingExtraktion von benannten Entitäten (Named Entity Recognition), Salience-ScoringSentiment-AnalysenKategorisierungText-KlassifizierungExtrahierung von Content-Typen und Identifikation einer impliziten Bedeutung aufgrund der Struktur.

  • Tokenisierung: Tokenisierung ist der Vorgang, bei dem ein Satz in verschiedene Begriffe unterteilt wird.
  • Kennzeichnung von Wörtern nach Wortarten: Wortartenkennzeichnung klassifiziert Wörter nach Wortarten wie z.B. Subjekt, Objekt, Prädikat, Adjektiv …
  • Wortabhängigkeiten: Wortabhängigkeiten schafft Beziehungen zwischen den Wörtern basierend auf Grammatikregeln. Dieser Prozess bildet auch „Sprünge“ zwischen Wörtern ab.

Beispiel für Part of Speech Tagging und Dependency Parsing, Quelle: Explosion.ai Demo

  • Lemmatisierung: Die Lemmatisierung bestimmt, ob ein Wort verschiedene Formen hat und normalisiert Abwandlungen zur Grundform,. Zum Beispiel ist die Grundform von Tiere, Tier oder von verspielt, Spiel.
  • Parsing Labels: Die Kennzeichnung klassifiziert die Abhängigkeit oder die Art der Beziehung zwischen zwei Wörtern, die über eine Abhängigkeit verbunden sind.
  • Analyse und Extraktion von benannten Entitäten: Dieser Aspekt sollte uns aus den vorangegangenen Beiträgen bekannt sein. Damit wird versucht, Wörter mit einer „bekannten“ Bedeutung zu identifizieren und Klassen von Entitätstypen zuzuordnen. Im Allgemeinen sind benannte Entitäten Menschen, Orte und Dinge (Substantive).  Entitäten können auch Produktnamen enthalten. Dies sind im Allgemeinen die Wörter, die ein Knowledge Panel auslösen. Aber auch Begriffe, die kein eigenes Knowledge Panel auslösen können Entität sein. Dazu mehr im Beitrag Was ist eine Entität ? Was sind Entitäten ?

Beispiel für eine Entitäten-Analyse mit der Natural Language Processing API von Google.

  • Salience-Scoring: Salience bestimmt, wie intensiv ein Text sich mit einem Thema beschäftigt. Dies wird in NLP basierend auf den sogenannten Indikatorwörtern bestimmt. Im Allgemeinen wird der Bekanntheitsgrad durch das Mitzitieren von Wörtern im Web und die Beziehungen zwischen Entitäten in Datenbanken wie Wikipedia und Freebase bestimmt. Google wendet dieses Verknüpfungsdiagramm wahrscheinlich auch auf die Entitätsextraktion in Dokumenten an, um diese Wortbeziehungen zu bestimmen. Eine ähnliches Vorgehen kennen erfahrene SEOs von der TF-IDF-Analyse.
  • Sentiment-Analysen: Kurz gesagt, dies ist eine Bewertung der in einem Artikel zum Ausdruck gebrachten Meinung (Ansicht oder Haltung) zum im Text behandelten Entitäten.
  • Fachkategorisierung: Auf Makroebene klassifiziert NLP Text in Betreffkategorien. Die Kategorisierung von Themen hilft dabei, allgemein zu bestimmen, worum es in dem Text geht.
  • Textklassifizierung & Funktion: NLP kann noch weiter gehen und die beabsichtigte Funktion bzw. Zweck des Inhalts bestimmen.
  • Extrahierung von Content-Typen: Google kann mithilfe von Strukturmustern bzw. des Kontext den Inhaltstyp eines bestimmten Texts ohne die Ausweisung mit strukturierten Daten bestimmen. Das HTML, die Formatierung des Texts und der Datentyp des Texts (Datum, Ort, URL usw.) können verwendet werden, um den Text ohne zusätzliches Markup zu verstehen Mithilfe dieses Prozesses kann Google ermitteln, ob es sich bei Text um ein Ereignis, ein Rezept, ein Produkt oder einen anderen Inhaltstyp handelt, ohne dass Markups verwendet werden müssen.
  • Identifikation einer impliziten Bedeutung aufgrund der Struktur: Die Formatierung eines Textkörpers kann seine implizite Bedeutung ändern. Überschriften, Zeilenumbrüche, Listen und Nähe vermitteln ein sekundäres Verständnis des Textes. Wenn beispielsweise Text in einer HTML-sortierten Liste oder in einer Reihe von Überschriften mit Zahlen davor angezeigt wird, handelt es sich wahrscheinlich um einen Vorgang oder eine Rangfolge. Die Struktur wird nicht nur durch HTML-Tags definiert, sondern auch durch die visuelle Schriftgröße / -stärke und -nähe beim Rendern.

Einige dieser Kernelemente von Natural Language Processing sollten Dir durch die vorhergenden Beiträge dieser Artikelreihe bekannt sein wie z.B. die Extrahierung benannter Entitäten oder Identifikation einer impliziten Bedeutung aufgrund von Struktur-Elementen.

 

NLP vs. NLU: Wo ist der Unterschied zwischen Natural Language Processing und Natural Language Understanding

Natural Language Understanding kurz NLU ist ein Teilbereiche von Natural Language Processing.

 

Geschichte der NLP

http://ruder.io/nlp-imagenet/

http://ruder.io/a-review-of-the-recent-history-of-nlp/

herausgegeben von: Olaf Kopp
Datum: 10. Juni 2019

Blog-Artikel zu diesem Thema