Du interessierst Dich für das Thema Natural Language Processing bzw. NLP. Dann bist Du hier genau richtig. In diesem Beitrag bekommst Du alle wichtigen Informationen zum Thema Natural Language Processing.

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 Learnin, Supervised Machine Learning und Unsupervised Machine Learning, um auf Basis statistischer Modelle sowie Vektorraumanalysen Inhalt und Struktur von Texten und gesprochener Sprache zu erkennen.

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 Textanalyse, Stimmungs- 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 Tokenisierung, Kennzeichnung von Wörtern nach Wortarten (Part of Speech Tagging), Lemmatisierung, Wort-Abhängigkeiten (Dependency Parsing), Parse Labeling, Extraktion von benannten Entitäten (Named Entity Recognition), Salience-Scoring, Sentiment-Analysen, Kategorisierung, Text-Klassifizierung, Extrahierung 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 Kerneleemente 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.

Dass Google viele dieser Prozesse bereits beherrscht zeigt die Natural Language Processing API, auf die ich nachfolgend eingehen möchte.

 

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.

Ähnlich benannt befassen sich beide Konzepte mit der Beziehung zwischen natürlicher Sprache (wie wir als Menschen sprechen, nicht was Computer verstehen) und künstlicher Intelligenz.

Sie verfolgen das gemeinsame Ziel, Konzepte, die in unstrukturierten Daten wie Sprache dargestellt sind, besser zu verstehen als strukturierte Daten wie Statistiken, Aktionen usw. Zu diesem Zweck sind NLP und NLU Gegensätze zu vielen anderen Data-Mining-Techniken. Aber hier hören die Vergleiche auf: NLU und NLP sind nicht dasselbe.

Als Unterthema von NLP ist das NLU ein wesentlicher Bestandteil für ein erfolgreiches NLP. NLU hat einen engeren Zweck und konzentriert sich in erster Linie auf das maschinelle Leseverständnis: Den Computer dazu zu bringen, zu verstehen, was ein Textkörper wirklich bedeutet.

Das Verständnis der natürlichen Sprache kann auf eine Vielzahl von Prozessen angewendet werden, z. B. das Kategorisieren von Text, das Sammeln von Nachrichten, das Archivieren einzelner Textteile und in größerem Maßstab das Analysieren von Inhalten.

Beispiele für NLUs in der Praxis reichen von kleinen Aufgaben wie dem Ausgeben von kurzen Befehlen zum Verstehen von Text bis hin zum Umleiten einer E-Mail an die richtige Person auf der Grundlage einer Basissyntax und eines angemessen großen Lexikons. Viel komplexeres Unterfangen könnte darin bestehen, Nachrichtenartikel oder Bedeutungsnuancen in Gedichten oder Romanen vollständig zu erfassen.

NLU ist am besten als erster Schritt zur Erreichung von NLP anzusehen: Bevor eine Maschine eine Sprache verarbeiten kann, muss sie zuerst verstanden werden.

Ein guter Weg, um den Unterschied zwischen NLP und NLU zu verstehen? Es handelt sich um Natural Language Understanding, wenn es sich nur auf die Fähigkeit einer Maschine bezieht, unsere Sprache und das, was wir sagen, zu verstehen. Wenn es um mehr als das geht, wie das Treffen von Entscheidungen auf der Grundlage des Textes, das Reagieren auf den Inhalt wie in einem Chatbot, der mit einem Menschen spricht, wird wahrscheinlich das umfassendere Konzept von  Natural Language Processing mit einbezogen.

 

Einsatz von NLP in der Suche

Ich denke, dass Natural Language Processing in Bezug auf die Google-Suche vor allem in den folgenden Bereichen genutzt wird:

  • Interpretation von Suchanfragen (Rankbrain)
  • Klassifizierung von Thema und Zweck von Dokumenten
  • Entitäten-Analyse in Dokumenten, Suchanfragen und Social-Media-Posts
  • Für Featured Snippets und Voice Search
  • Interpretation von Video-Inhalten
  • Ausbau und Verbesserung des Knowledge Graphs

 

Natural Language Processing ist die wichtigste Methodik zur Identifikation von Entitäten

Wie im Beitrag Wie kann Google aus unstrukturierten Inhalten Entitäten identifizieren und deuten ? erläutert spielt Natural Language Processing bei der Identifikation von Entitäten und deren Bedeutung aktuell die wichtigste Rolle für Google.

Die Praxis zeigt allerdings, dass Google bisher nur sehr begrenzt auf unstrukturierte Informationen zurückgreift, zumindest was die Ausspielung in den Knowledge Panels angeht. Erste praktische Anwendungen für Data Mining aus unstrukturierten Daten finden wir in den Featured Snippets wieder, obwohl das eher nach dem direkten Einsatz von Natural Language Processing aussieht ohne den Knowledge Graph einzubeziehen.

Auch bei bisher nicht im Knowledge Graph erfassten Entitäten arbeitet Google aktuell nur mit NLP, um diese zu identifizieren, unabhängig vom Knowledge Graph. Für die Identifikation von Entitäten und thematische Einordnung leistet Natural Language Processing gute Dienste. Allerdings wäre dadurch nur das Kriterium der Vollständigkeit ggf. Aktualität gewährleistet. NLP alleine gewährleistet aber nicht den Anspruch auf Richtigkeit.

Ich denke, dass Google im Bereich Natural Language Processing schon recht gut ist, aber bei der Evaluation von automatisch extrahierten Informationen hinsichtlich Richtigkeit noch nicht zufriedenstellende Ergebnisse erzielt. Das wird wohl der Grund sein, warum Google hier noch vorsichtig agiert, was direkte Positionierung in den SERPs angeht.

 

Weiterführende Quellen zum Thema Natural Language Processing

herausgegeben von: Olaf Kopp
Datum: 19. Juli 2019

Blog-Artikel zu diesem Thema