Pascal AndermattVon Pascal Andermatt / 15.01.21
teaching-a-computer-how-to-read
Bild von @thoughtcatalog via Unsplash
arrow-back

Nur wenige Menschen lesen ein Wort oder einen Text Buchstabe für Buchstabe. Das liegt daran, dass unser Gehirn so intelligent ist, dass es den Kontext erfassen und ein Wort erkennen kann, ohne jeden einzelnen Buchstaben zu lesen. Einem Computer kann dies laut gewissen Forschungen auch gelingen, nur funktioniert es bei ihm anders: Er lernt die Form eines Wortes und kann es anschliessend anhand seiner Form erkennen. Wie dies im Detail funktioniert und was wir damit erreichen können, zeige ich in diesem Blogartikel.


Die verschiedenen Verarbeitungs-Mechanismen der natürlichen Sprache




Der erste Schritt, den ein Computer zur Verarbeitung eines Textes durchläuft, wird «Natural Language Processing» (kurz NLP) genannt. In diesem Schritt werden Texte automatisch analysiert und für die weitere Verarbeitung normalisiert. So wird zum Beispiel aus dem Wort 'war' 'sein' oder im Englischen 'don’t' zu 'do not'. Dieser Schritt erfordert viel Rechenzeit, um die zu verarbeitenden Daten in die gewünschte Form zu bringen, aber er ist notwendig, damit eine Maschine einen Text überhaupt verstehen kann. Der NLP-Prozess besteht aus vier Unterschritten, nach deren erfolgreichen Durchführung der eingegebene Text in sogenannte «Tokens» umgewandelt wird (siehe «Tokenization»).


Tokenization

Der erste Teilschritt besteht aus der Segmentierung von Text in Wörter und Interpunktionszeichen. Die Segmente werden sprachspezifisch generiert: Aus dem Wort 'won’t' oder 'can’t' werden 'will not' oder 'can not'. Im Deutschen muss dies nicht gemacht werden. Im Französischen wiederum schon bei Worten wie 'l'hôpital', das zu 'le hôpital' wird. Die Interpunktionszeichen werden nicht eliminiert, da ein Punkt am Satzende abgespalten werden soll, aber Punkte in der Abkürzung von United Kingdom (U.K.) sollen erhalten bleiben.


Lemmatization/Stemming

Im nächsten Unterschritt werden Wörter ihrer Wurzel («Lemma») zugeordnet. So ist beispielsweise das Lemma von 'war' 'sein' und das Lemma von 'Kakteen' 'Kaktus'. Häufig verwendete Wörter lassen sich so gruppieren und können als Wörter mit derselben Bedeutung gezählt werden. Dies ist eine wichtige Voraussetzung für das sogenannte Clustering-Verfahren, da die Häufigkeit einen starken Einfluss auf die einzelnen Berechnungen des Verfahrens hat. Gleichzeitig ist die Rückverfolgung der Wörter bis zu ihren Wortwurzeln sehr rechenintensiv, da jedes einzelne Wort mit einem Wörterbuch verglichen werden muss.


Part-of-Speech (POS) Tagging

Der nächste Schritt des NLP-Prozesses wird Part-of-Speech (POS) Tagging genannt, worunter man die Zuordnung von Wortteilen zu Token wie beispielsweise einem Verb oder einem Substantiv versteht. Mit dieser Information können Substantive gegenüber Verben priorisiert werden.


Stopword Elimination/Alpha Extraktion

Die Stoppwort-Elimination im letzten Schritt filtert häufig vorkommende Wörter einer Sprache heraus, die keinen Kontext haben. Ein Beispiel für Stoppwörter sind 'und', 'ein' oder 'ich'. Bei der Alpha-Extraktion werden alleinstehende Interpunktionszeichen und Zahlen herausgefiltert.

Das Ergebnis des NLP-Prozesses ist ein «Bag of Word (BoW)», also die wichtigsten Wörter eines Textes. Diese Wörter werden anschliessend vektorisiert, um sie in eine computer-verständliche Form zu bringen. Zum Beispiel wird aus dem Satz 'Das ist ein schöner Apfel, der 5 Euro kostet' der BoW ['schön', 'Apfel', 'Euro', 'Kosten']. Mit diesem BoW wird im Folgenden weitergearbeitet.


Unüberwachtes Lernen (unsupervised learning)

Wenn wir Menschen uns einen Film anschauen oder ein Buch lesen, können wir die folgenden Fragen in der Regel rasch beantworten: «Wovon handelt die Geschichte? Worauf bezieht sie sich? Was bedeutet sie?» Eine Maschine kann dies nicht. Sie braucht dafür eine Kontextualisierung anhand des Bag of Words. Dafür fasst sie wiederum die Elemente aus dem BoW zusammen, die ähnlich sind. Dieser Mechanismus wird «unsupervised learning» genannt. Unüberwachtes Lernen bezeichnet «die Organisation von unmarkierten Daten in Ähnlichkeitsgruppen, die Cluster genannt werden». In unserem Fall sind die unmarkierten Daten der vektorisierte Bag of Words und die Ähnlichkeitsgruppen die ähnlichen Items zu den Dingen, die wir wissen wollen.


Die lesende Künstliche Intelligenz «KenSpace»

In der Bachelor-Thesis «KenSpace: Explorative und komplexe Recherchen auf unstrukturierten Dokumenten» von mir und Stefan Brunner an der Zürcher Hochschule für Angewandte Wissenschaften stellten wir verschiedene Strategien vor, wie man Elemente zusammenfassen kann. Der mathematische Teil hinter dem unüberwachten Lernen wird in diesem Artikel nicht behandelt, hier stellen wir nur die Ergebnisse vor. Anhand von Filmdaten sehen wir bereits, dass die Methode des Clusterings sehr gut funktioniert:




Auf Ebene 3.5 werden zwei verschiedene Science-Fiction-Gruppen gebildet. Die eine Gruppe enthält die Back to the Future-Filmreihe, die andere Star Wars- und Star Trek-Filme. Die erste Gruppe auf Ebene 3 enthält die Star Wars-Episoden IV bis VI, während die andere Gruppe auf Ebene 3 aus durchmischten Filmen besteht wie zum Beispiel Star Trek, Spider Man oder Guardians of the Galaxy. Auf dieser Ebene ist die Streuung bereits grösser als auf Ebene 3.5. Auf der nächstniedrigeren Ebene werden nach dem gleichen Prinzip durch Wiederverwendung und Erweiterung mit neuen Filmen in einem Teil der oberen Gruppe wieder zwei Gruppen gebildet. Somit ist die Varianz-Minimierung der jeweiligen Unterteilungen auf mittlerer bis unterer Ebene etwa gleich gross. Hinsichtlich der Filmdaten ist die unterste Ebene sehr gut strukturiert. Auf dieser Ebene werden die jeweiligen Filmreihen einzeln dargestellt. (Quelle: Bachelorarbeit «KenSpace: Explorative und komplexe Recherchen in unstrukturierten Dokumenten»).


Demonstration einer lesenden Künstlichen Intelligenz anhand von Daten von Schuler Auktionen


Das Auktionshaus Schuler Auktionen in Zürich verfügt über einen umfassenden Datensatz von allen Artikeln, die je in einer Auktion zur Versteigerung angeboten wurden. Wir durften freundlicherweise diese Daten für unsere Arbeit mit KenSpace nutzen. Alle Daten von Schuler Auktionen beschreiben einen Artikel, der aus einem Titel und eine Beschreibung besteht. Diese beiden Dinge haben wir mit Hilfe von Künstlicher Intelligenz (KI) zusammengeführt und analysiert.




Die WordClould von KenSpace zeigt die am häufigsten verwendeten Wörter. Es gibt in dieser WordClould bereits sehr gute Schlüsselwörter, mit denen die Artikel durchsucht werden könnten. Zum Beispiel 'holz', 'silber' und 'korpus'. Wenn wir jetzt auf das Stichwort 'holz' klicken, werden bereits nur Gegenstände angezeigt, welche aus Holz bestehen. 




Wenn wir nun ähnliche Gegenstände wie die Holzfigur finden wollen, klicken wir einfach auf 'ähnliche Datensätze anzeigen'.




Die KI von KenSpace wird nun die passenden Ergebnisse finden und anzeigen. Ohne jegliche Kenntnis darüber, wie eine Figur aussieht oder was Holz ist, ist die KI von KenSpace in der Lage, die Figur zu erkennen und ähnliche Gegenstände anzuzeigen, was sehr faszinierend ist. Ein anderes Beispiel wäre die Suche nach einer schönen Uhr. Auch hier wäre es für die KI kein Problem, ähnliche Uhren vorzuschlagen. Das Ergebnis ist also ziemlich erstaunlich.




Die vier Voraussetzungen für eine funktionierende Künstliche Intelligenz




Das bemerkenswerte Ergebnis von KenSpace kommt nicht ohne viel Aufwand. Wie zu Beginn meines Beitrags erwähnt, gibt es eine Menge Dinge zu tun, um eine Künstliche Intelligenz zu schaffen, die Texte versteht und zusammenfassen kann:


1. Die korrekte Vorbereitung der Daten

Bevor ein Datensatz erfolgreich verarbeitet werden kann, muss er zwingend bereinigt und durch eine automatisierte Vorverarbeitung geführt werden. Hierfür verwenden wir beispielsweise NLP zum Sprachverständnis und übersetzen die Daten in eine computer-verständliche Form. Auch die Menge der Daten ist ausschlaggebend für den Erfolg. Je mehr Daten wir zur Verfügung haben, desto besser. Zu viele Daten jedoch können auch schlecht sein. Wichtig ist die Korrektheit der Daten.


2. Training des Modells

Um das Modell richtig zu trainieren, so dass es die Elemente richtig gruppieren kann, verwenden wir unbeaufsichtigtes Lernen. Da dieser Schritt viel Zeit in Anspruch nehmen kann, empfiehlt es sich, diesen Prozess zwischen zu speichern.


3. Bewertung der Eingabe

Wenn wir mit unbeaufsichtigtem Lernen arbeiten, muss dieser Schritt manuell durchgeführt werden. Dafür benötigen wir einen Goldenen Standard, der die Daten vergleichen kann. Wenn wir beispielsweise mit Filmen arbeiten, können wir so überprüfen, ob die bearbeitenden Filme zum gleichen Genre gehören.

Wenn wir mit betreutem Lernen arbeiten, können wir unser Ergebnis einfach mit den Testdaten vergleichen. Die Leistung wird meistens mit dem F-Score bewertet.


4. Bewertung der Leistung

Dies ist der wichtigste Schritt. Der F-Score im unbeaufsichtigten Lernen ist nur eine Zahl. Er könnte hoch sein und dennoch sehr schlecht abschneiden. Es ist also zwingend nötig, mit einer Benutzerstudie oder selbst zu überprüfen, ob die Ergebnisse korrekt gruppiert sind. Wir Menschen neigen im Gegensatz zum Computer dazu, ein Muster in Dingen zu sehen, in denen es gar keines gibt. Es kann also auch vorkommen, dass wir durch reinen Zufall etwas Besseres erhalten als erwartet. (Siehe mehr zu diesem Phänomen unter Apophänie)


Fazit

Computern das Lesen beizubringen ist möglich und bringt viele Vorteile mit sich wie zum Beispiel die schnelle Gruppierung und Durchsuchung von Dateninhalten. Bis die Künstliche Intelligenz jedoch zum Lesen fähig ist, müssen diverse Schritte durchgeführt werden insbesondere bei der Vorbereitung der zur Verfügung stehenden Daten. Mit der KI KenSpace, die Stefan Brunner und ich entwickelt haben, sind Ergebnisse schnell und übersichtlich abrufbar.


Falls Sie mehr über lesende Computer, die KenSpace oder die erfolgreiche Verarbeitung von Daten für Künstliche Intelligenz wissen möchten, kontaktieren Sie uns! Wir freuen uns, von Ihnen zu hören.

Diese Beiträge könnten Sie ebenfalls interessieren: