Das kennen wohl alle noch aus ihrer Schulzeit – Texte nach Substantiven, Verben und Adjektiven durchsuchen. Computer machen dies heute genau gleich. Sie lernen.
Ob kontextverstehende Suchmaschinen, Office Rechtschreib- und Grammatik-Programme, Übersetzer-Tools, E-Mail-Assistenten oder Spam-Filter: Alle Anwendungen verwenden Natural Language Processing (NLP). Dieser Begriff beschreibt Techniken und Methoden zur maschinellen Verarbeitung natürlicher Sprache.
Kann der Computer tatsächlich Texte verstehen so wie wir Menschen?
Es gibt verschiedene Verfahren die eingesetzt werden. Von den klassischen Methoden des NLP bis hin zu Deep-Learning-Algorithmen, besser bekannt unter dem Sammelbegriff Artificial Intelligence.
Doch wie geht nun der Computer konkret vor, um Texte verstehen zu können? Wie weiss der Computer, wenn im ersten Satz ein Name und im zweiten Satz nur ein Platzhalter (Ersatz für ein Subjekt zum Beispiel «sie») verwendet wird, wie er dies zu interpretieren hat? Oder wie versteht der Computer Mehrdeutigkeiten?
Der Text wird zuerst einmal vereinfacht. Alle Dinge die keinen Mehrwert für den Informationsgehalt liefern, werden entfernt. Dinge wie Satzzeichen oder bestimmte Wörter (stop words) werden entfernt.
Wörter die in verschiedenen Ausprägungen vorhanden sind (beispielsweise: Interesse, interessiere, interessieren) werden auf Grundformen reduziert. Die Techniken die dafür eingesetzt werden, heissen Lemming und Stemming.
- Stemming reduziert das Wort auf die kleinste gemeinsame Anzahl Buchstaben in der entsprechenden Wortgruppe (Stammformreduktion).
- Lemming macht eine lexikalische Suche und wandelt das Wort in den Begriff um, den wir auch in einem Nachschlagewerk finden würden.
Der Satzaufbau wird erlernt
Das Klassifizieren und Markieren von Wörtern wird mithilfe von Part of speech tagging (POST) gelöst. Hier gibt es unterschiedliche Ausprägungen: Eine Variante ist, dass man ein Regelwerk für die Grammatik der entsprechenden Sprache definiert, welches dem Computer ein gewisses Verständnis für den Satzaufbau vermittelt. Eine andere Variante ist, dass man den Computer die Regeln selbst lernen lässt. Dieses Training nennt man Überwachtes Lernen.
Das Ganze passiert aufgrund von Wahrscheinlichkeiten
Je nach Komposition des Satzes kann ein Wort eine andere Bedeutung haben und somit auch einer anderen Wortart zugehören. Sätze folgen grammatikalischen Regeln. Wenn wir den Computer mit einer grossen Anzahl an Sätzen füttern, bei welchen die Wortarten bereits bestimmt sind (Trainingsdaten), kann dieser auf Grund vorhergehender Wörter die Wahrscheinlichkeit bestimmen, dass beispielsweise das nächste Wort ein Adjektiv sein wird (Hidden Markov Model).
Der Computer baut sich ein Model auf, bei welchem er die verschiedenen Möglichkeiten und deren Wahrscheinlichkeiten vergleicht. Je nach Resultat müssen die Einstellungen am Modell verändert werden. Sobald der Computer die Regeln kennt, muss er dies auch beweisen. Wie bei einer Grammatik Klausur bekommt er jetzt Texte, bei denen die Markierungen ausgeblendet sind. Da er fleissig trainiert hat, sollte dies für ihn kein Problem darstellen. Danach werden die Markierungen wieder eingeblendet und es wird verglichen, wie der Computer diese gesetzt hat.
Nun wird ein Ranking (Schulnote) gemacht und kontrolliert, wie viele der Wörter richtig oder falsch markiert wurden. Sobald der Computer diese Klausur bestanden hat, kann er die Arbeit aufnehmen und selbstständig Texte markieren.
Autonomes Lernen
Eine weitere Möglichkeit beim Machine Learning sind die Deep-Learning-Algorithmen (Unüberwachtes Lernen). Hier braucht der Computer keine Trainingsdaten mehr. Er spielt die einzelnen Möglichkeiten durch und schaut sich das Resultat an (Backbone propagation). Dies macht er solange, bis er das beste Resultat erzielt.
Es ist doch spannend und beruhigend zu sehen, dass unsere digitalen Helfer sich ihr Wissen auch hart erarbeiten müssen, wie wir anno dazumal in der Schulbank :-). Es ist faszinierend, wie der Computer durch simple Mathematik ein Sprachverständnis erlangen kann. Spannende Themen wie beispielsweise Named Entity Recognition (NER), Semantische Analyse via N-gram Modell oder Coreference Resolution wären eine Ergänzung zu diesem Thema.