Kommentar von Krzysztof Kąkol, PGS Software Wie funktioniert Natural Language Processing?

Von Krzysztof Kąkol

NLP – kurz für Natural Language Processing – ist eine Form der Künstlichen Intelligenz (KI), die es Computern ermöglicht, menschliche Sprache zu verstehen und zu verarbeiten.

Anbieter zum Thema

Der Autor: Krzysztof Kąkol ist Leiter Data Science bei PGS Software
Der Autor: Krzysztof Kąkol ist Leiter Data Science bei PGS Software
(Bild: PGS Software)

NLP findet Anwendung in Suchmaschinen und Spamfiltern bis hin zu Übersetzungssoftware, Chatbots oder Grammatikkorrekturprogrammen. Abgesehen davon bietet NLP auch große Vorteile für interne Geschäftsabläufe, wie zum Beispiel die automatische Analyse von Produktbewertungen, das Extrahieren von Informationen aus geschäftszentrierten Inhalten und die Analyse von Markttrends.

Im Folgenden wollen wir uns einen Überblick der wichtigsten NLP-Techniken verschaffen.

NLP-Techniken – wie Informationen aus Texten extrahiert werden

Zahlreiche Techniken stützen NLP. Alle sind für Natural Language Understanding, das Verstehen der natürlichen Sprache, interessant und kommen bei NLP häufig zum Einsatz.

Topic Modelling

Topic Modelling liefert Informationen zum Thema eines Texts. Topic Modelling wird auch als „Textkategorisierung“ bezeichnet. Diese Technik kann durch unterschiedliche Algorithmen gestützt werden, wie z. B. Latent Dirichlet Allocation (LDA).

LDA ist ein nicht überwachter Algorithmus. Das bedeutet, er erkennt Themen ohne vorheriges Lernen anhand von Beispielen. Das führt jedoch auch dazu, dass der Text in abstrakte Themen unterteilt wird. Aus diesem Grund ist LDA nicht immer hilfreich; die Themen werden nummeriert und nicht benannt (da dies mit nicht überwachten Methoden nicht möglich ist). Es ist daher erforderlich, das Ergebnis zu prüfen und die Themen manuell zu identifizieren. Das kann jedoch schwierig sein, vor allem, wenn kurze Texte analysiert werden. In diesem Fall liefern Techniken zur Modellierung von Themen in kurzen Texten (wie das Dirichlet Mixture Model) bessere Ergebnisse. Leider ist aber auch hier noch eine gewisse manuelle Analyse erforderlich.

Nachdem Themen geclustert wurden, müssen die definierten Themen echten Gruppen zugewiesen werden. Beispielsweise kann man 20 Themen erhalten, für die es vier Kategorien gibt. Dann muss man manuell entscheiden, welches Thema wohin gehört. Nachdem man ein solches Modell erstellt hat, kann man jeden neuen Text damit analysieren und ihn automatisch einem oder mehreren Themen zuordnen.

Alternativ können halb überwachte Lernprozesse verwendet werden, bei denen das Modell in der Regel von Anfang an verankert ist. Das ist möglich, wenn man weiß, welche Wörter für ein bestimmtes Thema am wichtigsten sind (wenn das Thema beispielsweise „Preis“ ist, könnten die Wörter „Preis“, „Euro“, „niedriger“, „Erhöhung“ von Bedeutung sein).

Man kann auch überwachte Lernprozesse nutzen. Diese erfordern jedoch in der Regel eine Menge gekennzeichneter Beispiele. Dabei können verschiedene ML-Algorithmen helfen, zum Beispiel neuronale Netze.

Named Entity Recognition (NER)

NER ermöglicht es, wichtige Entitäten zu identifizieren, die im Text erwähnt werden. Diese Technik wird normalerweise verwendet, um Firmennamen, Marken, Ländernamen, Namen von Personen oder andere wichtige Begriffe zu finden. Normalerweise werden NER-Algorithmen vorab trainiert und zeigen Ergebnisse, die spezifisch für den Datensatz sind, auf dem sie trainiert wurden. Infolgedessen werden einige benannte Entitäten nicht erkannt, da die Entität während des Trainings möglicherweise nicht bekannt war oder nicht identifiziert wurde.

Damit der Algorithmus richtig funktioniert, sollte das vorhandene Modell weiter trainiert werden. Auf diese Weise kann er Entitäten richtig erkennen und kategorisieren und zum Beispiel zwischen Namen von Schauspielern und Sängern unterscheiden. Im Vorfeld trainierte Modelle liefern in der Regel einige vordefinierte Kategorien. Wenn man auf diesen Modellen trainiert, kann man die Kategorien ändern. Darüber hinaus kann man benannte Entitäten anhängen, damit das Modell auch diese Entitäten findet.

Texte enthalten oft Rechtschreibfehler. Solche Fehler sind für statistische Modelle eine Herausforderung. Wenn ein Modell trainiert wird, kann man bestimmte Methoden anwenden, um diese Rechtschreibfehler zu erkennen, beispielsweise die Levenshtein-Distanz. Wenn die Texte viele Fehler enthalten sollten (z. B. Benutzerbewertungen), ist eine solche Implementierung unerlässlich.

Part-of-Speech Tagging (POS)

POS ermöglicht es, die jeweiligen Wortarten im Satz zu erkennen. Dies ist im Hinblick auf die Wortbedeutung wichtig: Wenn ein Wort beispielsweise ein Adjektiv ist, kann es die zuvor erkannte benannte Entität beschreiben. Diese Beschreibung kann im Kontext eines bestimmten Satzes wichtig sein. Natürlich ist nicht jedes POS für die Informationsextraktion interessant. Deshalb ist POS so wichtig, denn dadurch können wir uns auf die gültigen Teile der Textdaten konzentrieren.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Big Data, Analytics & AI

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Zum Beispiel kann man alle Substantive aus einem Text extrahieren und die Subjekte und Objekte definieren. So kann man schnell beurteilen, was im Text erwähnt wird, ohne ihn vollständig zu lesen. Außerdem können Adjektive mit Substantiven gepaart und so definieren werden, wie die Objekte wahrgenommen werden.

Syntaktische Analyse

Syntaktische Analyse kann definieren, wie verschiedene Wörter in einem Satz miteinander verbunden sind. Sehen wir uns einen einfachen Satz an:

„Mark hat schöne Äpfel gekauft.“

In diesem Beispiel ist „Mark“ das Subjekt, und das Wort „schön“ beschreibt die Äpfel.

Würden wir nur POS-Tagging verwenden, könnten wir den Eindruck erhalten, dass „schön“ eine Beschreibung von Mark ist. Syntaktische Analyse erspart uns diesen Fehler.

Darüber hinaus sind einige Sätze nicht eindeutig genug für POS-Tagging. Zum Beispiel:

„Mark isst Äpfel“ oder „Äpfel essen Mark“ haben beispielsweise dieselben POS, aber die Sätze haben eine ganz andere Bedeutung. Glücklicherweise ist die syntaktische Analyse in der Lage, die wirklichen Abhängigkeiten zwischen Wörtern zu erkennen.

Semantische Analyse

Semantische Analyse identifiziert die wahre Bedeutung einer Wortgruppe oder eines Satzes. Bei der semantischen Analyse geht es in der Regel darum, Ähnlichkeiten zwischen Wörtern (aus verschiedenen Sätzen) zu finden. So kann die semantische Analyse zum Beispiel erkennen, dass das Wort „Pizza“ eine ähnliche Bedeutung hat wie „Fast Food“ oder „Pasta“. Das ist in der Regel mithilfe von Worteinbettungen möglich, d. h., mit Methoden, bei denen Wörter/Sätze in Vektoren umgewandelt werden und der Abstand zwischen ihnen ermittelt wird.

Auflösung von Koreferenzen

Die Auflösung von Koreferenzen ist eine Methode zur Identifizierung verschiedener Wörter, die auf dieselben Objekte verweisen. Zum Beispiel:

Angela wohnt in Berlin. Sie ist glücklich dort.

Sie“ steht für „Angela“, während „dort“ „Berlin“ bezeichnet.

Die Auflösung von Koreferenzen basiert auf im Vorfeld trainierten neuronalen Netzen. Sie kann bei langen Texten wertvolle Informationen liefern. Sucht man zum Beispiel mithilfe von Named Entity Recognition Sätze, die einen bestimmten Namen enthalten, so können leicht Sätze ausgelassen werden, in denen durch ein Pronomen auf ihn verwiesen wird. Durch die Auflösung von Koreferenzen können solche Informationen aber gefunden werden.

Beziehungsextraktion

Die Beziehungsextraktion baut auf der semantischen Analyse auf und ermöglicht die Identifizierung von Beziehungen in einem bestimmten Text. In einem Text über Eheschließungen beispielsweise liefern uns Algorithmen zur Extraktion von Beziehungen Informationen darüber, wer mit wem verheiratet ist. Beziehungsextraktion ist normalerweise ein komplexer Algorithmus, der mit einem großen Datensatz arbeitet.

Sentimentanalyse

Die Sentimentanalyse ist ein leistungsfähiges Tool zum Erkennen von Stimmungen in einem bestimmten Satz. Sie können die Informationen in vielen Formen erhalten, aber reine Stimmungen (negativ, neutral, positiv) oder Polarität (normalerweise von -1 bis 1, kontinuierlicher Bereich) sind die beliebtesten. Die Polarität bietet mehr Tiefe – zum Beispiel bedeuten die Polaritäten 0,65 und 0,98 beide „positive Stimmung“, aber sie sind eindeutig nicht identisch. Die Analyse von Stimmungen ist jedoch komplexer, als es scheint.

Dieselbe Information kann positiv oder negativ sein, je nachdem, auf welche Entität sie sich bezieht. Es liegt immer im Auge des Betrachters. Wenn zum Beispiel eine Stimmung für einen direkten Mitbewerber positiv ist, ist dies aus Sicht des eigenen Unternehmens eher eine negative Information.

Darüber hinaus können Sätze gemischte Bedeutungen haben. Der Satz „Unternehmen A liefert seine Produkte an den Kunden, und die sind viel schlechter als die von Unternehmen B“ besteht aus zwei Entitäten und einer insgesamt negativen Stimmung. Aber diese Stimmung bezieht sich natürlich nicht auf Unternehmen B. Doch letztlich kann man den obigen Satz nicht in zwei Sätze aufteilen, weil dann der Gesamtsinn verloren geht.

Allerdings bietet die Sentimentanalyse selbst mit diesen Problemen wertvolle Einblicke in Textinformationen. Sie können zum Beispiel die Bewertungen in Ihrem Online-Shop mit dem Textinhalt des Kommentarbereichs validieren.

Textzusammenfassung

Texte können mit NLP-Methoden automatisch zusammengefasst werden. Dazu sind mehrere Techniken in der Lage (z. B. TF-IDF), die relativ gute Ergebnisse liefern. Sie erfordern jedoch recht große Datensätze und Fließtext anstelle von einfachen, kurzen Kommentaren.

Es gibt viele Techniken zur Textzusammenfassung, darunter auch sehr ausgefeilte. Außerdem können diese Methoden sowohl für lange als auch für kurze Texte eingesetzt werden, wobei unterschiedliche Ansätze verwendet werden. Die beiden am weitesten verbreiteten Methoden zur Zusammenfassung von Texten werden als abstrakte und extraktive Zusammenfassung bezeichnet. Bei der extraktiven Zusammenfassung wird versucht, die wichtigsten Teile des Textes zu identifizieren und eine Zusammenfassung auf der Grundlage der identifizierten Sätze zu erstellen. Die abstrakte Zusammenfassung versucht, den Text neu zu interpretieren, und liefert einen völlig neuen Inhalt – in der Annahme, dass dieser neue Inhalt das Original zusammenfasst.

NLP-Techniken – Extraktionsmethoden in Aktion

Die meisten der genannten Techniken können kombiniert werden, um möglichst präzise Erkenntnisse zu gewinnen. Man stelle sich zum Beispiel das folgende Setup vor, in dem Informationen aus Kommentaren extrahiert werden sollen:

  • 1. Verwendung von NER, um Entitäten zu identifizieren.
  • 2. Verwendung von POS-Tagging, um Substantive, Eigennamen und Adjektive zu finden (auch andere Entitäten können in diese Kategorie fallen).
  • 3. Verwendung von syntaktischer Analyse, um Beziehungen zwischen den benannten Entitäten und ihren Beschreibern zu erhalten.
  • 4. Verwendung von Sentimentanalyse, um die Stimmung der Kommentare zu identifizieren und diese Stimmung benannten Entitäten zuzuordnen.
  • 5. Verwendung von Topic Modelling, um die jeweiligen Kommentare zu vordefinierten Themen zuzuordnen.
  • 6. Verwendung von Textzusammenfassung entweder in Form eines Algorithmus für Textzusammenfassung oder indem die wichtigsten Sätze und ihre Assoziationen herausgelöst werden.

Natural Language Processing ist schon den Kinderschuhen entwachsen und gewinnt immer mehr an Bedeutung. Wie weit NLP verbreitet ist und wofür Unternehmen es benutzen, ist in einem Bericht zusammengefasst, der von PGS Software erstellt wurde.

(ID:48211802)