Auf dieser Seite, dem dritten Teil, werden weitergehende Informationen aufgelistet und offene Fragen beantwortet. Bei weiteren Fragen bitte ein E-Mail an hi@jfilter.de schreiben.
Im ersten Teil des Online-Projekts gibt eine generelle Einführung zum Machine Learning und im zweiten Teil geht um Änderung von Sprache über die Zeit.
Word Embeddings sind dazu da, Wörter in Zahlen zu überführen. Das ist notwendig, damit “die Zahlen” in ein Modell überführt werden und trainiert werden können. Das Modell besteht aus Parameter, die angepasst werden können. In einer Trainingsphase werden dem Modell Kommentare präsentiert und das Modell muss raten. Ist es Hasskommentar (mit Beleidigung) oder nicht? Wenn das Modell richtig liegt, passiert nichts. Wenn es falsch liegt, dann werden automatisiert die Parameter angepasst.
In der Folge hat man ein Modell, das man gezielt einsetzen kann. In der Theorie soll es dann in der Lage sein, auch bei neuen und bislang unbekannten Daten zwischen Beleidigungen und nicht-Beleidigungen unterscheiden zu können.
Der Kommentar links unten (rot) wird in das Modell gefüttert. Wenn das Modell den Kommentar so wie Menschen bewertet, passiert nichts. Mach das Modell einen Fehler, wird es angepasst.Word Embedding stehen für Verfahren, bei denen Wörtern ein Vektor zugewiesen wird. Ein Vektor ist eine feste Anzahl (z. B. 300 oder 500) von Werten zwischen -1 und 1. In diesem Vektorraum sind ähnliche Wörter enger zusammen. Mit Word Embeddings werden aus Wörter Zahlen. Ähnliche Wörter haben idealerweise auch ähnliche Vektoren.
Es gibt unterschiedliche Verfahren wie Word Embeddings erstellt werden, doch das Grundprinzip ist das Gleiche. Basierend auf einer großen Menge an Text wird automatisch analysiert, welche Wörtern mit welchen anderen Wörtern zusammen vorkommen, sogenannte Kollokation. Die Süddeutsche Zeitung erklärt Word Embeddings in einem aktuellen Artikel ausführlich.
Aber im Gegensatz zu dem Ansatz der Süddeutsche Zeitung wurden für diese Analyse ein leicht anderes Verfahren verwendet (PPMI/SVD statt Word2Vec). Für Interessierte gibt ein wissenschaftliches Paper Hintergrundinformationen.
Da die Wörter aus Vektoren (eine Reihe von Zahlen (z. B. 500)) bestehen, dient der Winkel zwischen zwei Vektoren als Maß der Ähnlichkeit. Zum Beispiel mithilfe der Kosinus-Ähnlichkeit wird dies errechnet.
Um die Begriffe auf einer Ebene zubringen, brauch man Vektoren die aus zwei Dimensionen bestehen (für die x-Ache und y-Achse). Dazu benutzen wird das Verfahren der Dimensionsreduktion. Dieses “komprimiert” die Daten so, dass möglichst wenige Informationen verloren werden. Es wird Hauptkomponentenanalyse (Principal Component Analyse (PCA)) verwendet.
Damit man sinnvolle Ergebnisse erhält, kann man nur auf einen Ausschnitt der Daten machen. Alle (z. B. 100.000) Wörter können sowieso nicht auf einmal dargestellt werden. Zudem funktioniert die Kompression so besser, auf desto weniger Wörtern gearbeitet wird. Daher werden z. B. zu einem gegebenen Begriff nur z. B. 10 Wörter dargestellt.
Die Kommentare stammen aus der Kommentarspalte von Zeit Online und wurden zwischen 2010 bis Sommer 2019 erstellt. Insgesamt gibt es über 13 Millionen Kommentare bestehend aus rund 45 Millionen Sätze. Die Sätze verteilen sich folgendermaßen über die Zeit:
2010-2011: ~3 Millionen Sätze
2012-2013: ~4.5 Millionen Sätze
2014-2015: ~8 Millionen Sätze
2016-2017: ~14 Millionen Sätze
2018-2019: ~15 Millionen Sätze
Zeit Online ist eine der wenigen Zeitungen, die noch Kommentare unter ihren Artikeln zulassen.
Zunächst wurden Wörter ohne Bedeutung, sogenannte “Stop Words”, wie z. B. Artikel (der, die das) entfernt. Zudem wurden alle Wörter auf ihren Wortstamm zurückgeführt (“lemmatized”). Also z. B. das Plural-S entfernt bei Verben auf den Infinitiv ersetzt. Hier kommt es durch die automatisierte Verarbeitung manchmal zu Fehlern. Zudem wurden alle Wörter kleingeschrieben und Ziffern durch 0 ersetzt. Da im Deutschen Wörter in unterschiedliche Formen vorkommen (z. B. Konjugation), wurden somit die Anzahl an unterschiedlichen Wörter reduziert, um bessere Ergebnisse auf kleinen Textkorpora zu erzielen.
Ja, sie stehen zum Download bereit. Es gibt ein Embedding für alle Kommentare. Und 5 Für die zwei-jährigen Zeitepochen. Sie stehen unter CC-0-Lizenz, können also ohne Namensnennung verwendet werden.
👉 https://data.jfilter.de/nlp/kommentare/
Die Word Embeddings wurden mit der eigens entwickelten Bibliothek hyperhyper entwickelt.
Folgende Parameter wurden für das Embedding mit allen Kommentaren (2010 - 2019) verwendet:
window: 10, dynamic_window: 'decay', decay_rate: 0.375, delete_oov: true, subsample: 'deter', subsample_factor: 7.268e-05, neg: 1.5, eig: 0.3, dim: 500
Und diese für die fünf anderen Embeddings für je zwei Jahre
window: 10, dynamic_window: 'decay', decay_rate: 0.33, delete_oov: true, subsample: 'deter', subsample_factor: 7e-05, neg: 1, eig: 0.35, dim: 500
Die Hyperparameter wurden durch Experimente auf Evaluationsdaten herausgefunden.
Für die bekannten Verfahren Word2Vec von Google und fastText von Facebook gibt es effiziente Implementierungen. Aber die Methoden orientieren sich an den Bedürfnissen großer Tech-Unternehmen, diese sind im Besitz sehr großer Datenmengen. Das ist nicht immer der Fall, wie hier.
Für alternative Verfahren, für die es weniger Daten brauch, gab es bereits ein wissenschaftliches Paper, aber keine effiziente Implementierung. Das habe ich geändert.
Ja, sämtliche verwendete und programmierte Software steht unter Open-Source-Lizenz.
Hier eine Übersicht über den verwendeten Code und eine detaillierte Anleitung: https://github.com/jfilter/ptf-kommentare
Bei offenen Fragen bitte ein E-Mail an hi@jfilter.de schreiben.
Ein Online-Projekt von Johannes Filter, Johannes auf Twitter folgen
Impressum, Datenschutzerklärung
Johannes Filter wohnt in Berlin, ist freiberuflicher Softwareentwickler und Aktivist für Informationsfreiheit, Civic Tech und Open Data. Er studierte Informatik (MSc) am Hasso-Plattner-Institut in Potsdam sowie in Tallinn (Estland) und Madrid (Spanien).
Diese Arbeit ist im Rahmen des Prototype Fund entstanden und wurde vom Bundesministerium für Bildung und Forschung finanziert.
Das Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 01IS18S65 gefördert. Die Verantwortung für den Inhalt dieser Veröffentlichung liegt beim Autor.