Grundlegendes zur Textanalyse

Abgeschlossen

Bevor Sie die Textanalysefunktionen des Azure AI Language-Dienstes untersuchen, untersuchen wir einige allgemeine Prinzipien und allgemeine Techniken, die zum Ausführen von Textanalysen und anderen NLP-Aufgaben (Natural Language Processing) verwendet werden.

Einige der frühesten Techniken, die zum Analysieren von Text mit Computern verwendet werden, umfassen die statistische Analyse eines Textkörpers (Korpus), um eine Art semantische Bedeutung abzuleiten. Wenn Sie einfach die am häufigsten verwendeten Wörter in einem bestimmten Dokument ermitteln können, können Sie häufig eine gute Vorstellung davon erhalten, worum es in dem Dokument geht.

Tokenisierung

Der erste Schritt bei der Analyse eines Korpus besteht darin, ihn in Token aufzuteilen. Der Einfachheit halber können Sie sich jedes einzelne Wort im Trainingstext als Token vorstellen, obwohl in Wirklichkeit Token für Teilwörter oder Kombinationen aus Wörtern und Satzzeichen generiert werden können.

Betrachten Sie beispielsweise diesen Ausdruck aus einer berühmten US-Präsidentschaftsrede: „we choose to go to the moon.“ Der Ausdruck kann in die folgenden Token mit numerischen Bezeichnern unterteilt werden:

  1. we
  2. choose
  3. Bis
  4. go
  5. the
  6. moon

Beachten Sie, dass „to“ (Tokennummer 3) zweimal im Korpus verwendet wird. Der Ausdruck „we choose to go to the moon“ kann durch die Token [1,2,3,4,3,3,5,6] dargestellt werden.

Hinweis

Wir haben ein einfaches Beispiel verwendet, in dem Token für jedes unterschiedliche Wort im Text identifiziert werden. Beachten Sie jedoch die folgenden Konzepte, die für die Tokenisierung gelten können, je nachdem, welche Art von NLP-Problem Sie lösen möchten:

  • Textnormalisierung: Vor dem Generieren von Token können Sie den Text normalisieren, indem Sie Satzzeichen entfernen und alle Wörter in Kleinbuchstaben umwandeln. Bei der Analyse, die rein auf Wortfrequenz basiert, verbessert dieser Ansatz die Gesamtleistung. Einige semantische Bedeutungen können jedoch verloren gehen. Nehmen Sie zum Beispiel den Satz „Mr Banks has worked in many banks.“. Sie wollen in Ihrer Analyse wahrscheinlich zwischen der Person Mr Banks und den banks, in denen er gearbeitet hat, unterscheiden. Sie können auch „banks.“ als separates Token zu „banks“ betrachten, da die Einbeziehung eines Punktes die Informationen bereitstellt, dass das Wort am Ende eines Satzes steht.
  • Stoppwortentfernung. Stoppwörter sind Wörter, die von der Analyse ausgeschlossen werden sollten. Beispielsweise erleichtern „the“, „a“ und „it“ Personen das Lesen von Text, tragen aber wenig semantische Bedeutung bei. Durch Ausschließen dieser Wörter kann eine Textanalyselösung die wichtigen Wörter besser identifizieren.
  • n-Gramme sind Ausdrücke aus mehreren Begriffen wie „ich habe“ oder „er ging“. Ein Ein-Wort-Ausdruck ist ein Unigramm, ein Zwei-Wort-Ausdruck ist ein Bi-Gramm, ein Drei-Wort-Ausdruck ist ein Tri-Gramm usw. Durch die Betrachtung von Wörtern als Gruppen kann ein Machine-Learning-Modell den Text besser verstehen.
  • Die Wortstammerkennung ist eine Technik, bei der Algorithmen angewendet werden, um Wörter zu konsolidieren, bevor sie gezählt werden, sodass Wörter mit demselben Stamm wie „power“, „powered“ und „powerful“ als dasselbe Token interpretiert werden.

Häufigkeitsanalyse

Nach der Tokenisierung der Wörter können Sie eine Analyse durchführen, um die Häufigkeit jedes Tokens zu zählen. Die am häufigsten verwendeten Wörter (außer Stoppwörtern wie „a“, „the“ usw.) können häufig einen Hinweis auf das Hauptthema eines Textkorpus liefern. Beispielsweise sind die am häufigsten verwendeten Wörter im gesamten Text der zuvor angesehenen Rede „Go to the moon“ „new“, „go“, „space“ und „moon“. Wenn wir den Text als Bi-Gramm (Wortpaare) tokenisieren wollten, ist das am häufigsten verwendete Bi-Gramm in der Rede „the moon“. Aufgrund dieser Informationen können wir leicht davon ausgehen, dass der Text sich hauptsächlich mit Raumfahrt und Mondreisen befasst.

Tipp

Einfache Häufigkeitsanalyse, bei der Sie einfach die Häufigkeit jedes Tokens zählen, kann eine effektive Möglichkeit sein, ein einzelnes Dokument zu analysieren, aber wenn Sie mehrere Dokumente innerhalb desselben Korpus unterscheiden müssen, benötigen Sie eine Möglichkeit, um zu bestimmen, welche Token in jedem Dokument am relevantesten sind. Ausdruckshäufigkeit - umgekehrte Dokumenthäufigkeit (TF-IDF) ist eine gängige Technik, bei der eine Bewertung basierend darauf berechnet wird, wie oft ein Wort oder Ausdruck in einem Dokument im Vergleich zu seiner allgemeineren Häufigkeit in der gesamten Sammlung von Dokumenten angezeigt wird. Bei der Verwendung dieser Technik wird ein hoher Grad an Relevanz für Wörter angenommen, die häufig in einem bestimmten Dokument vorkommen, aber relativ selten in einer Vielzahl anderer Dokumente.

Maschinelles Lernen für die Textklassifizierung

Eine weitere nützliche Textanalysetechnik ist die Verwendung eines Klassifizierungsalgorithmus, z. B. der logistischen Regression, um ein Machine Learning-Modell zu trainieren, das Text basierend auf einer bekannten Gruppe von Kategorisierungen klassifiziert. Eine häufige Anwendung dieser Technik besteht darin, ein Modell zu trainieren, Text als positiv oder negativ zu klassifizieren, um eine Stimmungsanalyse oder Meinungsmining durchzuführen.

Betrachten Sie beispielsweise die folgenden Restaurantbewertungen, die bereits als 0 (negativ) oder 1 (positiv) gekennzeichnet sind:

  • Das Essen und der Service waren beide großartig: 1
  • Eine wirklich schreckliche Erfahrung: 0
  • Mmmh! leckeres Essen und eine lustige Atmosphäre: 1
  • Langsamer Service und minderwertiges Essen: 0

Mit ausreichend beschrifteten Rezensionen können Sie ein Klassifizierungsmodell mit dem tokenisierten Text als Features und der Stimmung (0 oder 1) als Label trainieren. Das Modell wird eine Beziehung zwischen Token und Stimmung kapseln - z. B. Rezensionen mit Token für Wörter wie „großartig“, „lecker“ oder „lustig“ wird wahrscheinlich eine Stimmung von 1 (positiv) zurückgegeben, während für Rezensionen mit Wörtern wie „schrecklich“, „langsam“ und „minderwertig“ eher 0 (negativ ) zurückgegeben wird.

Semantische Sprachmodelle

Da der Stand der Technik für NLP fortgeschritten ist, hat die Fähigkeit, Modelle zu trainieren, welche die semantische Beziehung zwischen Token kapseln, zu der Entstehung leistungsstarker Sprachmodelle geführt. Im Mittelpunkt dieser Modelle steht die Codierung von Sprachtoken als Vektoren (mehrwertige Arrays von Zahlen), die als Einbettungen bezeichnet werden.

Es kann hilfreich sein, sich die Elemente in einem Tokeneinbettungsvektor als Koordinaten im mehrdimensionalen Raum vorzustellen, sodass jedes Token eine bestimmte „Position“ einnimmt. Je näher sich Token entlang einer bestimmten Dimension beieinander befinden, desto stärker stehen sie semantisch im Zusammenhang. Mit anderen Worten: Zusammenhängende Wörter werden näher beieinander gruppiert. Nehmen wir als einfaches Beispiel an, dass die Einbettungen für unsere Token aus Vektoren mit drei Elementen bestehen, zum Beispiel:

  • 4 ("dog"): [10.3.2]
  • 5 („bark“): [10,2,2]
  • 8 ("cat"): [10,3,1]
  • 9 ("meow"): [10,2,1]
  • 10 ("skateboard"): [3,3,1]

Wir können die Position von Token basierend auf diesen Vektoren im dreidimensionalen Raum wie folgt darstellen:

A diagram of tokens plotted on a three-dimensional space.

Die Positionen der Token im Bereich der Einbettungen geben Auskunft darüber, wie eng die Token miteinander verbunden sind. Das Token für „dog“ ist z. B. „cat“ und „bark“ nahe. Die Token für „cat“ und „bark“ sind nahe bei „meow“. Das Token für „skateboard“ ist weiter von den anderen Token entfernt.

Die von uns in der Industrie verwendeten Sprachmodelle basieren auf diesen Prinzipien, weisen jedoch eine größere Komplexität auf. Beispielsweise können die verwendeten Vektoren viele weitere Dimensionen aufweisen. Es gibt auch mehrere Möglichkeiten, geeignete Einbettungen für einen bestimmten Satz von Token zu berechnen. Unterschiedliche Methoden führen zu unterschiedlichen Vorhersagen von Sprachverarbeitungsmodellen.

Eine generalisierte Ansicht der modernsten Lösungen für die Verarbeitung natürlicher Sprachen ist in folgendem Diagramm dargestellt. Ein großer Korpus aus Rohtext wird tokenisiert und zum Trainieren von Sprachmodellen verwendet, die viele verschiedene Arten von Verarbeitungsaufgaben in natürlicher Sprache unterstützen können.

A diagram of the process to tokenize text and train a language model that supports natural language processing tasks.

Zu den gängigen NLP-Aufgaben, die von Sprachmodellen unterstützt werden, gehören:

  • Textanalyse, z. B. Extrahieren von Schlüsselbegriffen oder Identifizieren benannter Entitäten im Text.
  • Stimmungsanalyse und Meinungsmining, um Text als positiv oder negativ zu kategorisieren.
  • Maschinelle Übersetzung, in der Text automatisch von einer Sprache in eine andere übersetzt wird.
  • Zusammenfassung, in der die Hauptpunkte eines großen Textkörpers zusammengefasst werden.
  • Conversational AI-Lösungen wie Bots oder digitale Assistenten, in denen das Sprachmodell Eingaben in natürlicher Sprache interpretieren und eine entsprechende Antwort zurückgeben kann.

Diese Funktionen und vieles mehr werden von den Modellen im Azure AI Language-Dienst unterstützt, die wir als Nächstes erkunden werden.