Irrungen, Wirrungen mit Natural Language Processing
co-author of the article Dennis U.
“If you only read the books that everyone else is reading, you can only think what everyone else is thinking.” ― Haruki Murakami, Norwegian Wood
Dieses Zitat von Murakami motiviert uns ständig neue Dinge zu lesen und auch einmal über den Tellerrand zu schauen. Dies gilt für zukünftige Bestseller, elektrisierende Novellas, vergessene Schinken und zeitlose Klassiker. Genau um letztere geht es in diesem Artikel.
Wir wollen zeigen, welche Möglichkeit uns neue Technologien wie Machine Learning, Deep Learning und Artificial Intelligence bieten. Anlässlich der Online Buchmesse 2018 (#obm2018) und der Frankfurter Buchmesse (#fbm18) haben wir einmal einen Deutschen Klassiker genauer unter die Lupe genommen. Hierfür haben wir uns einen Klassiker der deutschen Literaturgeschichte herausgesucht, den wahrscheinlich jeder in der Schule lesen musste: Das Buch “Irrungen, Wirrungen” von Theodor Fontane.
Worum geht es in Irrungen, Wirrungen?
Bevor wir nerdig werden, nochmal ein kleiner Reminder an die Handlung in Irrungen, Wirrungen für diejenigen, bei denen die Lektüre schon eine Weile zurückliegt.
Der Roman von Theodor Fontane wurde erstmalig 1887 in der Vossischen Zeitung veröffentlicht und ein Jahr später in Buchform herausgegeben. Der Roman handelt von der nicht standesgemäßen Liebe zwischen Baron Botho von Reinecker und der kleinbürgerlichen Magdalene (Lene). Beide können sich nicht von ihren gesellschaftlichen Grenzen lösen und heiraten letzendes einen anderen Partner. Zum Ende stellt Botho dann geläutert fest, dass Lenes neuer Partner Gideon einfach besser ist als er. [1]
Damals war der Roman auf viel Kritik gestoßen und hatte heftige Ablehnung erfahren. Besonders problematisch wurde es gesehen, dass Fontane Lene, trotz ihres niedrigeren Stands als gleichwertig und moralisch sogar als überlegen darstellte.
Aus Data Science Perspektive ist es nun interessant festzustellen, ob die Machine Learning Algorithmen in der Lage sind die Stimmung des Romans wiederzugeben und welche anderen Informationen man daraus noch herauslesen kann. Eine Methode der Datenanalyse, welche dabei hilft Text zu analysieren, ist das sogenannte Natural Language Processing.
Was ist Natural Language Processing (NLP)?
Durch Natural Language Processing (NLP) versucht man in der Datenanalyse natürliche Sprache zu erfassen und mit der Hilfe von Algorithmen zu verarbeiten.
“NLP muss Lösungen schaffen, um sowohl gesprochene als auch geschriebene Sprache zu erkennen, zu analysieren und den Sinn zur weiteren Verarbeitung zu extrahieren. Hierfür ist ein Verständnis nicht nur von einzelnen Wörtern und Sätzen, sondern das Erfassen von kompletten Textzusammenhängen und Sachverhalten notwendig.” [2]
In unserem Fall haben wir verschiedene NLP Algorithmen der nltk Python library [3]genutzt um zu determinieren, wie oft gewisse Worte in dem Roman vorkommen und welche Stimmung die einzelnen Kapitel haben.
Herausforderungen bei NLP
Dabei sei eingehend erwähnt, dass es einige Herausforderungen bei der Analyse von Text gibt, die dieses Feld deutlich schwieriger machen als bei “normalen” Daten.
Zum einen gehören Texte zu den sog. unstrukturierten Daten und sind daher nicht vergleichbar mit Daten in einer Tabelle. Denn durch Eigenschaften, wie die unterschiedlichen Längen von Worten und Sätzen und deren Anordnung kann sich die Komplexität enorm steigern. Einige Herausforderungen sind zum Beispiel:
- Die Bedeutung von Worten — Synonyme, Antonyme, Homonyme bringen zusätzliche Komplexität.
- Die Reihenfolge von Worten kann mal über die Bedeutung eines Satzes entscheiden und mal nicht.
- Der Kontext oder Informationen, die sich zum Beispiel aus Insider-Informationen ergeben kann oft nicht erkannt werden.
Im Anschluss haben wir ein paar einfache NLP Techniken am Beispiel von Theodor Fontanes Irrungen, Wirrungen ausprobiert.
NLP Experiment an Irrungen, Wirrungen
Zunächst sei gesagt, dass wir lediglich eine simple Analyse des Rohtext des Romans vorgenommen haben. Hierfür muss der Text entsprechend vorbereitet werden.
Textvorbereitungen
Vollständigkeitshalber sei jedoch gesagt, dass elementare Schritte zum Preprocessing das Entfernen von Satzzeichen und sogenannten Stop words sind. Stop words sind Worte, die sehr häufig auftreten und daher für gewöhnlich keine hohe Relevanz zur Bestimmung des Inhalts eines Dokumentes haben. Außerdem haben wir zum Beispiel die Satzzeichen entfernt, sowie Großschreibung auf Kleinschreibung reduziert. Es können noch weitere Schritte vorgenommen werden wie das Reduzieren von
Häufigkeit eines Wortes
Nach dem Entfernen der Stop words, haben wir uns angeschaut welche Worte nun am häufigsten vorkommen.
Wie der Graph zeigt, kommen die Worte “frau”, “ja”, “lene”, “botho”, “immer”, “dörr”, und “sagte” am häufigsten vorkommen.
Hieraus kann man bereits erste Informationen über die Handlung eines Textes herauslesen. Das Wort “Frau” kommt über 250-mal im Text vor. Daraus lässt sich ableiten, dass weibliche Charaktere eine besondere Rolle spielen.
Außerdem sind die Namen von 3 Charakteren, nämlich Lene, Botho und Frau Dörr, unter den häufigsten Worten. Dies ist damit zu erklären, dass Fontane die Namen seiner Figuren oft in Dialogen wiederholt und sich diese direkt mit Namen ansprechen.
Letztlich kommt das Wort “sagte” auf knapp 190 Wiederholungen in dem Roman. Dies ist eine klare Indikation darüber, dass das Buch besonders durch Dialoge geprägt ist. Dennoch lässt sich dadurch nicht klar sagen, ob dies nun viel oder wenige Dialoge sind im Vergleich zu anderen zeitgenössischen Werken.
Die Stimmung im Buch — Eine Sentiment Analyse
Als Nächstes wollten wir bestimmen, ob das Buch eher positiv oder negativ geschrieben ist. Teile der nltk Library ermöglicht es, den Text nach negativen oder positiven Worten zu durchsuchen.
Dabei wurde bereits ein Wörterbuch entsprechend klassifiziert und gleicht die Häufigkeit von eben diesen Worten ab. Am Ende erhält man einen Score. In unserem Fall erhalten wir eine prozentuale Verteilung der als positiven und negativ klassifizierten Worte. (Hier sei erwähnt, dass es noch andere Möglichkeiten gibt sich ein Bild über das Sentiment zu machen, wie z.B. den AFINN Score, welcher eine Zahl zwischen 1 und -1 liefert)
Trotz des eher traurigen Endes ist der Roman dennoch von einer positiven Sprache geprägt. So sind 2/3 der identifizierten Worte dem Positiven zu zuordnen (positiv = 0.6999, negativ = 0.3333)
Anschließend wollten wir wissen, wie sich die einzelnen Kapitel verhalten.
Der Graph zeigt die jeweiligen Scores der einzelnen Kapitel. Dabei ist vor allem der Abfall zum Ende des Buches, in dem Botho zur Erkenntnis kommt, dass Gideon ein besser Mann für Lene ist als er, auf. Hier wird der Ton anscheinend negativer bzw. nüchterner als in den vorherigen Kapiteln.
NLP: was ist der Business Case dahinter?
Wie bereits vorab erwähnt, ist dies eine sehr einfache Analyse und man kann noch viel tiefer in den Text eintauchen. Vielmehr drängt sich die Frage auf, wofür man solche Analysen überhaupt gebrauchen kann. Dafür gibt es verschiedene Business Cases, die für Verleger und Unternehmen aus dem E-Commerce besonders interessant sein können.
- Eine Sentiment Analyse kann man zum Beispiel für das automatische Klassifizieren von User Feedbacks benutzten. Eine Vielzahl an Produktbewertungen können dadurch innerhalb von Sekunden nach negativen Bewertungen durchforstet und gefiltert werden.
- Eine weitere Möglichkeit ist die Text2Cassification Methode. Hier kann aus Produktbeschreibungen direkt eine Produktkategorie erstellt werden oder gegengeprüft werden.
- Text2Numbers — Aus dem Text eine Zahl erstellen. Dies ist ein eher abstrakter Anwendungsfall, dennoch könnte man beispielsweise den Preis eines Fahrzeugs durch dessen Beschreibung ermitteln bzw. schätzen.
- Clusteranalyse von Lesern — Amazon ist bereits sehr stark, wenn es um das Empfehlen von ähnlichen Büchern geht. Dort wird jedoch überwiegend ein Algorithmus genutzt, der die Kaufhistorie von Millionen von Usern checked und dann unter der berühmten “Andere Kunden kauften auch…”-Kategorie empfohlen. Eine weitere Möglichkeit durch NLP, speziell für Verlage, wäre das Analysieren von Schreibstilen, Wortwahl oder ähnlichen Charakteristika von Schriftstellern, um eine solche Empfehlung zu machen.
Dies sind nur ein paar interessante Use Cases, welche man im Verlagswesen einsetzen können. Fallen euch noch welche ein? Habt ihr noch interessante Sachen, die man aus einem Text herauslesen kann?
Solltet ihr Fragen zu weiteren Use Cases haben, oder sollte es euch interessieren, wie man basierend auf euren Nutzern, Lesern und Kunden spannende daten-getriebene Use Cases und Prototypen entwickeln kann, schreibt uns gerne in den Kommentaren oder schaut euch unsere anderen Artikel an.
Referenzen
[1] Wikipedia.org, Irrungen,Wirrungen, https://de.wikipedia.org/wiki/Irrungen,_Wirrungen (2018)
[2]Bigdata-Insider, Was ist natural language processing?, https://www.bigdata-insider.de/was-ist-natural-language-processing-a-590102/