Technologie zur Verarbeitung von natürlicher Sprache

HDInsight
Databricks
Data Lake
Storage

Die Verarbeitung natürlicher Sprache (Natural Language Processing, NLP) wird für Aufgaben wie die Standpunktanalyse, Textgegenstandserkennung, Sprachenerkennung, Schlüsselbegriffserkennung und Dokumentkategorisierung verwendet.

Diagram of a natural language processing pipeline

NLP kann zum Klassifizieren von Dokumenten verwendet werden, beispielsweise zur Kennzeichnung von Dokumenten als „vertraulich“ oder „Spam“. Die Ausgabe der NLP kann zur anschließenden Verarbeitung oder Suche verwendet werden. Eine weitere Verwendungsmöglichkeit der NLP ist die Zusammenfassung von Text durch Identifizieren der im Dokument vorhandenen Entitäten. Diese Entitäten können auch verwendet werden, um Dokumente mit Schlüsselwörtern zu markieren, sodass sie anhand des Inhalts gesucht und abgerufen werden können. Entitäten können zu Themen kombiniert und mit Zusammenfassungen versehen werden, in denen die wichtigen Themen in jedem Dokument beschrieben werden. Anhand der erkannten Themen können die Dokumente zur Navigation kategorisiert oder verwandte Dokumente für ein ausgewähltes Thema aufgelistet werden. Ein weiterer Verwendungszweck für die NLP ist die Standpunktbewertung von Texten, um die positive oder negative Stimmung eines Dokuments zu bewerten. Bei diesen Ansätzen werden viele Techniken der Verarbeitung natürlicher Sprache verwendet, beispielsweise:

  • Tokenizer. Aufteilung des Textes in Wörter oder Ausdrücke.
  • Wortstammerkennung und Lemmatisierung. Normalisierung von Wörtern, sodass unterschiedliche Formen dem kanonischen Wort mit der gleichen Bedeutung entsprechen. Beispielweise werden „Ausführung“ und „ausgeführt“ dem Wort „ausführen“ zugeordnet.
  • Entitätsextraktion. Identifizieren von Themen im Text.
  • Wortarterkennung. Erkennung von Text als Verb, Nomen, Partizip, Verbalphrase usw.
  • Erkennung von Satzgrenzen. Erkennung von vollständigen Sätzen innerhalb von Textabschnitten.

Bei der Verwendung der NLP zum Extrahieren von Informationen und Einblicken aus Freitext sind meist die in Objektspeicher wie Azure Storage oder Azure Data Lake Store gespeicherten unformatierten Dokumente der Ausgangspunkt.

Herausforderungen

  • Die Verarbeitung einer Sammlung von Freitextdokumenten ist in der Regel rechen-, ressourcen- und zeitintensiv.
  • Ohne ein standardisiertes Dokumentformat kann es schwierig sein, durchweg genaue Ergebnisse zu erzielen, wenn die Freitextverarbeitung zum Extrahieren bestimmter Fakten aus einem Dokument verwendet wird. Wenn Sie beispielsweise eine Textdarstellung einer Rechnung haben, kann es schwierig sein, einen Prozess zu erstellen, der die Rechnungsnummer und das Rechnungsdatum für Rechnungen von einer beliebigen Anzahl von Lieferanten korrekt extrahiert.

Welche Optionen stehen Ihnen bei der Auswahl eines NLP-Diensts zur Verfügung?

In Azure verfügen die folgenden Dienste über Funktionen zur Verarbeitung natürlicher Sprache:

Wichtige Auswahlkriterien

Beantworten Sie die folgenden Fragen, um die Auswahl einzuschränken:

  • Möchten Sie vorgefertigte Modelle verwenden? Wenn ja, können Sie erwägen, die APIs von Microsoft Cognitive Services zu verwenden.

  • Müssen Sie benutzerdefinierte Modelle anhand eines großen Korpus mit Textdaten trainieren? Wenn ja, können Sie die Verwendung von Azure HDInsight mit Spark MLlib und Spark NLP erwägen.

  • Benötigen Sie spezielle NLP-Funktionen, z.B. Tokenisierung, Wortstammerkennung, Lemmatisierung und Vorkommenshäufigkeit/Inverse Dokumenthäufigkeit (Term Frequency/Inverse Document Frequency, TF/IDF)? Wenn ja, können Sie die Verwendung von Azure HDInsight mit Spark MLlib und Spark NLP erwägen.

  • Benötigen Sie einfache, allgemeine NLP-Funktionen wie Entitäts- und Absichtsidentifizierung, Themenerkennung, Rechtschreibprüfung oder Standpunktanalyse? Wenn ja, können Sie erwägen, die APIs von Microsoft Cognitive Services zu verwenden.

Funktionsmatrix

In den folgenden Tabellen sind die Hauptunterschiede der Funktionen zusammengefasst:

Allgemeine Funktionen

Funktion Azure HDInsight Microsoft Cognitive Services
Bereitstellung von vortrainierten Modellen als Dienst Nein Ja
REST-API Ja Ja
Programmierbarkeit Python, Scala, Java C#, Java, Node.js, Python, PHP, Ruby
Unterstützung der Verarbeitung von umfangreichen Datasets und großen Dokumenten Ja Nein

Funktionen zur speziellen Verarbeitung von natürlicher Sprache

Funktion Azure HDInsight Microsoft Cognitive Services
Tokenizer Ja (Spark NLP) Ja (API für linguistische Analyse)
Wortstammerkennung Ja (Spark NLP) Nein
Lemmatisierung Ja (Spark NLP) Nein
Satzteilmarkierung Ja (Spark NLP) Ja (API für linguistische Analyse)
Vorkommenshäufigkeit/Inverse Dokumenthäufigkeit (Term Frequency/Inverse Document Frequency, TF/IDF) Ja (Spark MLlib) Nein
Zeichenfolgenähnlichkeit – Berechnung der Edit-Distanz Ja (Spark MLlib) Nein
N-Gramm-Berechnung Ja (Spark MLlib) Nein
Stoppwortentfernung Ja (Spark MLlib) Nein

Funktionen zur allgemeinen Verarbeitung von natürlicher Sprache

Funktion Azure HDInsight Microsoft Cognitive Services
Entitäts-/Absichtsidentifizierung und -extraktion Nein Ja (Language Understanding Intelligent Service-API, LUIS-API)
Themenerkennung Ja (Spark NLP) Ja (Textanalyse-API)
Rechtschreibprüfung Ja (Spark NLP) Ja (Bing-Rechtschreibprüfungs-API)
Stimmungsanalyse Ja (Spark NLP) Ja (Textanalyse-API)
Spracherkennung Nein Ja (Textanalyse-API)
Unterstützt neben Englisch noch mehrere andere Sprachen Nein Ja (variiert je nach API)

Nächste Schritte