RocketbeansTV Community Analysis

Eine Analyse der RocketbeansTV Community basierend auf YouTube Kommentaren von Moin Moin Videos

Github Repository Home

1 Einleitung

Hass im Netz ist ein Thema, dass vor allem in den letzten Jahren immer wieder für Schlagzeilen gesorgt hat. Unter dem Deckmantel der Anonymität werden Aussagen getätigt welche in der echten Welt wohl eher unausgesprochen bleiben. Medienschaffende deren Hauptkanäle Social Media Plattformen wie YouTube, Facebook, Instagram oder Snapchat sind leiden darunter besonders. Durch direkte Interaktion mit den Usern soll eigentlich eine Community aufgebaut werden. Leider öffnet diese offene Interaktion auch Tür und Tor für Hater und Trolle. Auch die Rocketbeans sind davon nicht ausgenommen. Beschimpfungen gegen bestimmte Moderatoren, Mitarbeiter oder Gäste, leider auch immer wieder speziell gegen Frauen, sind Probleme die sich nicht verleugnen lassen. Umso mehr freut es mich, dass sie seit einiger Zeit offener mit dem Thema umgehen, aktiv Schritte zur Bekämpfung solcher Personen tätigen und sich klar gegen Hass im Netz, Trolle und Sexismus positionieren. Dabei sagen sie auch, dass sie so ein Verhalten in ihrer Community nicht wollen und auch nicht dulden. Nun bin ich selbst nicht der aktivste Schreiber und Leser von Kommentaren, Reddit Einträgen oder Forenposts, sondern eher stiller Konsument. Da das Thema in letzter Zeit allerdings so oft angesprochen wurde, wollte ich wissen wie es wirklich um die Rocketbeans Community steht.

1.1 Kurz zu mir

Ich heiße Martin und studiere Data Science in Wien. Die Beans begleiten mich schon seit GIGA Zeiten und mit dem Start von RocketbeansTV sind viele neue Gesichter dazu gekommen die immer Top Unterhaltung liefern. Da ich sowieso meine Fähigkeiten in Form eines Freizeit Projektes testen wollte dachte ich mir ich kombiniere die Arbeit mit der Unterhaltung. Ich konnte bei der Umsetzung dieses Projektes viel neues lernen und einiges an Erfahrung sammeln. Ich muss auch gestehen, dass ich nicht der beste Schreiber bin und noch dazu so einen Report in Deutsch zu schreiben ungewohnt ist. Ich denke aber, dass ich die wichtigsten Informationen abgedeckt habe. Aber jetzt genug von mir und sehen wir uns an um was es bei diesem Projekt eigentlich geht.

1.2 Projektaufbau

Am Anfang eines Data Science Projekts steht eine Frage welche man beantworten möchte. In diesem Fall lautet diese Frage

Um diese Frage beantworten zu können, muss man sich zuerst überlegen welche Informationen dazu benötigt werden. Da das Hauptmedium der Rocketbeans YouTube ist, bietet es sich an YouTube Kommentare zu verwenden. Text, Autor und die Anzahl sind gute Ausgangswerte um eine Analyse durchzuführen. Was uns zu Punkt zwei bringt

Hat man die Daten gesammelt, von Fehlern bereinigt und in ein passendes Format gebracht kann man beginnen die Daten zu analysieren. Verschiedene statistische Auswertungen, Visualisierungen und Tabellen liefern Informationen über die Daten und deren Inhalt. Ist man zufrieden und der Meinung, dass man die Daten verstanden hat kann man zum nächsten Schritt übergehen. Mit Hilfe von Algorithmen die Daten weiterverarbeiten oder um es Korrekt auszudrücken Machine Learning anwenden. In diesem Fall handelt es sich um eine Spezielle Form von Machine Learning und zwar um Natural Language Processing (NLP). Also das verarbeiten von natürlicher Sprache. Das ist für Computer besonders schwer, da sie die Semantik der Sprache nicht verstehen. Dennoch gibt es Möglichkeiten um Kommentare als toxisch zu klassifizieren, festzustellen wie die Stimmung eines Kommentars ist (Positiv, Negativ, Neutral) oder welche Themen besonders oft vorkommen.

In den nächsten Kapiteln werden verschieden Machine Learning Techniken und Analysemethoden verwendet um Einsicht in die Daten zu bekommen. Ich versuche mich besonders auf die Resultate zu konzentrieren und so wenig technische Details zu beschreiben wie möglich.

Alle die Erfahrung in dem Bereich haben oder die es interessiert sind natürlich herzlichst dazu eingeladen das Projekt runterzuladen, zu verbessern oder als Vorlage zu verwenden. Ich freue mich auch über jedes Feedback.

2 Kommentare beschaffen

Um die Kommentare der Community analysieren zu können, müssen diese erst beschaffen werden. Dabei stellt sich die Frage welche Videos als Quelle benutzt werden sollen. Welcher Zeitraum, welche Formate, wie viele Kommentare pro Video? Anfangs war die Idee Almost Daily als Quelle zu benutzen, da dort auch oft kontroversere Themen besprochen werden. Ich wollte aber auch gern einzelne Moderatoren in die Analyse miteinbeziehen was bei der wechselnden Besetzung von Almost Daily relativ schwer ist. Deswegen habe ich mich letztendlich für Moin Moin entschieden. Dort gibt es mehr oder weniger fixe Moderatoren. Als Datenquelle dienen also sämtliche Moin Moin Videos die bis zum 28. Jänner 2019 auf den RocketbeansTV Kanal hochgeladen wurden und nicht auf privat gestellt waren (5 Videos). Insgesamt sind das:

Die Moderatoren habe ich nach eigener Erfahrung ausgewählt. Moin Moins ohne einen dieser Moderatoren haben unknown als Moderator. Außerdem wurde jedes Video nur einem Moderator zugewiesen, d.h. Moin Moins mit mehreren Moderatoren werden nur einem davon zugewiesen (Priorität ist die Liste der Moderatoren).

Liste der Moderatoren

Um die Kommentare runterzuladen wurde ein Python Script verwendet welches für jedes Kommentar eine .csv Datei mit folgenden Attributen anlegt.

2.1 Kommentare verarbeiten und bereinigen

Ein weiterer Schritt der zur Beschaffung zählt ist das bereinigen der Daten (data cleaning). Beim Downloaden der Kommentare wurde für jedes Video eine Datei angelegt. Diese Dateien müssen zunächst eingelesen und zu einen Datensatz kombiniert werden. Die ersten fünf Elemente dieses Datensatzes sehen wie folgt aus:

# Titel Moderator Veröffentlicht Autor Kommentar
0 #MoinMoin mit Etienne, Florentin Will und Stef... Etienne 2015-10-21T09:30:00.000Z Papa Smurf Wie gut Andi doch predicted hat ^^
1 #MoinMoin mit Etienne, Florentin Will und Stef... Etienne 2015-10-21T09:30:00.000Z Patrick S. Andy hat den Anfang ja komplett richtig vorher...
2 #MoinMoin mit Etienne, Florentin Will und Stef... Etienne 2015-10-21T09:30:00.000Z HellvisDeathly gerade die Hotel Folge vom "das Podcast Ufo" g...
3 #MoinMoin mit Etienne, Florentin Will und Stef... Etienne 2015-10-21T09:30:00.000Z Christopher Ehrhardt Bei mir das Gleiche! lol
4 #MoinMoin mit Etienne, Florentin Will und Stef... Etienne 2015-10-21T09:30:00.000Z Ruffy so im nachhinein ziemlich gut predicted alles ...

Um die Kommentare für den Computer leichter verarbeitbar zu machen wurden folgende Aktionen auf den Text angewendet.

Der bereinigte Datensatz sieht dann wie folgt aus:

# Titel Moderator Veröffentlicht Autor Kommentar
0 #MoinMoin mit Etienne, Florentin Will und Stef... Etienne 2015-10-21T09:30:00.000Z Papa Smurf wie gut andi doch predicted hat
1 #MoinMoin mit Etienne, Florentin Will und Stef... Etienne 2015-10-21T09:30:00.000Z Patrick S. andy hat den anfang ja komplett richtig vorher...
2 #MoinMoin mit Etienne, Florentin Will und Stef... Etienne 2015-10-21T09:30:00.000Z HellvisDeatrly gerade die hotel folge vom das podcast ufo geh...
3 #MoinMoin mit Etienne, Florentin Will und Stef... Etienne 2015-10-21T09:30:00.000Z Christopher Ehrhardt bei mir das gleiche lol
4 #MoinMoin mit Etienne, Florentin Will und Stef... Etienne 2015-10-21T09:30:00.000Z Ruffy so im nachhinein ziemlich gut predicted alles d

3 Analyse (Explorative Data Analysis - EDA)

Nachdem die Kommentartexte von unerwünschten Zeichen bereinigt wurden kann mit einer einfachen statistischen Datenanalyse begonnen werden. Statistisch deswegen, weil nur Informationen die direkt über den Datensatz vorliegen verwendet werden (z.B.: Mittelwerte, Anzahl von Elementen, gruppieren von Attributen). Es werden keine speziellen Algorithmen, die uns etwas Neues über die Daten sagen, verwendet. Als erste wird festgestellt, welche Daten vorliegen und wie diese verwendet werden können um mehr Informationen zu bekommen. Dazu werden Fragen formuliert welche in den nächsten Kapiteln beantwortet werden:

Wie viele Kommentare werden durchschnittlich pro Video gemacht?

Diese Frage lässt sich relativ leicht beantworten. Durchschnittlich hat ein Moin Moin 136.4597014925373 (136.0) Kommentare.

Was sind die Top 10 Videos mit den meisten Kommentaren?

In der Grafik ist gut zu erkennen, dass die Top 10 Videos mit den meisten Kommentaren mit großem Abstand über dem Durchschnitt liegen. Anhand der Titel sieht man auch, dass es sich dabei oft um Kontroverse Themen handelt. Burnout, Veganismus, Chemnitz und Sexismus zum Beispiel. Aber auch große Eventankündigungen wie Pen & Paper erhalten viele Kommentare.

Top 10 Kommentare
Datentabelle
# Titel Kommentare
0 Stress, Burnout & Alopecia Areata | MoinMoin m... 1605
1 Wie sexistisch ist der neue Gillette-Spot? Edd... 1265
2 Haare ab bei Simon! | MoinMoin mit Etienne, Si... 1091
3 I have a dream about Chemnitz | MoinMoin mit Budi 1004
4 Der große Giga-Geburtstag: Küsse & Peinlichkei... 776
5 Mit dem Tandem zur Diesel-Demo | MoinMoin mit ... 705
6 Folge 1000: Top 20 absurder Momente & Neues In... 700
7 Vollgekotzt auf der Autobahn, Gans essen mit V... 676
8 Alles zu Pen&Paper: Der Schwarze Tod & witzige... 651
9 Fleischesser gegen Leder und Fleisch? Veganism... 592

Wie viele Kommentare haben die einzelnen Moderatoren durchschnittlich pro Video?

Auch hier lassen sich wieder interessante Beobachtungen machen. Von den 17 Moderatoren liegen 5 über dem Durchschnitt: Etienne, Simon, Donnie, Florentin und Andy (Strauß). Wobei Etienne und Simon mit Abstand die meisten Kommentare erhalten.

Kommentare pro Moderator
Datentabelle
# Moderator Videos Kommentare Kommentare / Video
0 Etienne 132 35006 265.196970
1 Simon 37 7794 210.648649
2 Donnie 92 14800 160.869565
3 Florentin 100 14807 148.070000
4 Andy 65 9009 138.600000
5 Colin 38 4867 128.078947
6 Lars 69 7880 114.202899
7 Tim 22 2448 111.272727
8 Krogi 13 1444 111.076923
9 Schröck 21 2289 109.000000
10 Andreas 38 3985 104.868421
11 Budi 69 7131 103.347826
12 Nils 40 4108 102.700000
13 unknown 151 13843 91.675497
14 Gunnar 34 2821 82.970588
15 Alwin 22 1343 61.045455
16 Gregor 62 3567 57.532258

Welche sind die meist verwendeten Wörter in den Kommentaren der einzelnen Moderatoren?

Um die meist verwendeten Wörter darzustellen werden Wordclouds verwendet. Pro Moderator werden davon 3 verschiedene Versionen erstellt. Die erste Version beinhaltet alle Wörter aus den Kommentaren des jeweiligen Moderators. Für die zweite Version werden sogenannte stop words aus den Kommentaren gelöscht. Stop words sind Wörter die häufig in einer Sprache vorkommen aber wenig Bedeutung im Kontext einer Aussage haben (z.B.: bist, da, dem, etc..). Es werden außerdem die Namen der Moderatoren und Moin bzw. MoinMoin zu der Liste dieser stop words hinzugefügt. Da diese besonders oft geschrieben werden und es somit schwerer wird, die Unterschiede zwischen den einzelnen Moderatoren zu erkennen. In der dritten Version wird noch einmal die Liste der stop words erweitert. Es werden die 20 meist verwendeten Wörter für jeden Moderator gespeichert. Dann wird überprüft ob diese Wörter bei mehr als der Hälfte der Moderatoren in den Top 20 sind. Sollte das der Fall sein wird das Wort zu der Liste der stop words hinzugefügt.

Wordclouds: Alwin & Andreas
wordcloude_Alwin_1 wordcloude_Alwin_2 wordcloude_Alwin_3
wordcloude_Andreas_1 wordcloude_Andreas_2 wordcloude_Andreas_3
Wordclouds: Andy & Budi
wordcloude_Andy_1 wordcloude_Andy_2 wordcloude_Andy_3
wordcloude_Budi_1 wordcloude_Budi_2 wordcloude_Budi_3
Wordclouds: Colin & Donnie
wordcloude_Colin_1 wordcloude_Colin_2 wordcloude_Colin_3
wordcloude_Donnie_1 wordcloude_Donnie_2 wordcloude_Donnie_3
Wordclouds: Etienne & Florentin
wordcloude_Etienne_1 wordcloude_Etienne_2 wordcloude_Etienne_3
wordcloude_Florentin_1 wordcloude_Florentin_2 wordcloude_Florentin_3
Wordclouds: Gregor & Gunnar
wordcloude_Gregor_1 wordcloude_Gregor_2 wordcloude_Gregor_3
wordcloude_Gunnar_1 wordcloude_Gunnar_2 wordcloude_Gunnar_3
Wordclouds: Krogi & Lars
wordcloude_Krogi_1 wordcloude_Krogi_2 wordcloude_Krogi_3
wordcloude_Lars_1 wordcloude_Lars_2 wordcloude_Lars_3
Wordclouds: Nils & Schröck
wordcloude_Nils_1 wordcloude_Nils_2 wordcloude_Nils_3
wordcloude_Schröck_1 wordcloude_Schröck_2 wordcloude_Schröck_3
Wordclouds: Simon & Tim
wordcloude_Simon_1 wordcloude_Simon_2 wordcloude_Simon_3
wordcloude_Tim_1 wordcloude_Tim_2 wordcloude_Tim_3
Wordclouds: Unknown
wordcloude_unknown_1 wordcloude_unknown_2 wordcloude_unknown_3

Aus diesen Wordclouds können einige interessante Infos abgelesen werden. Videos die von Unknown moderiert wurden, haben besonders oft Hauke, Hannes und Sofia in den Kommentaren. Daraus kann man schließen, dass diese 3 wohl oft einspringen falls keine Stammbesetzung verfügbar ist bzw. Haben die 3 bevor es die Stammbesetzung gab besonders oft moderiert.

Aber auch andere Infos können abgelesen werden. Bei Andreas sind wohl oft Nasti und Flo zu Gast. Während es bei Alwin oft um Mangas geht. Bei Andy und Budi kommen besonders oft Wörter wie Mensch, Leute, danke und liebe vor. Bei Collin hingegen steht oft das Essen im Fokus. Es lassen sich noch einige solcher Beobachtungen machen. Erwähnenswert ist allerdings, dass beinahe keine negativen Wörter oder Schimpfwörter vorkommen.

Welche Personen kommentieren am meisten?

Wie man leicht erkennen kann sind User 1, User 2 und User 3jene Personen die am meisten und aktivsten kommentieren.

wordcloude_unknown_1
Datentabelle
# Autor Kommentare
0 User 1 1027
1 User 2 797
2 User 3 531
3 User 4 397
4 User 5 369
5 User 6 360
6 User 7 352
7 User 8 263
8 User 9 255
9 User 10 243

4 Sentiment Analysis

Unter sentiment analysis versteht man das zuweisen einer Stimmung (Positiv, Negativ, Neutral) zu einem Dokument. In sentiment analysis werden die einzelnen Textelemente welche man für die Analyse benutz als Dokumente bezeichnet. In diesem Fall sind das die einzelnen Kommentare. Die Stimmung eines Dokuments wird durch die durchschnittliche Stimmung der einzelnen Wörter in diesem Dokument berechnet. Woher bekommt man die Werte für die einzelnen Wörter? Zum Glück gibt es viele Linguisten, die damit beschäftigt sind riesige Datenbanken an Wörtern, Werte zuzuweisen. Wir interessieren uns aber nur für einen dieser Werte, nämlich polarity. Jedes Wort hat einen durchschnittlichen polarity Wert zwischen –1 (Negativ) und +1 (Positiv). Durchschnittlich deswegen, weil jedes Wort von mehreren Linguisten einen eigenen Wert zugewiesen bekommt. Mit dieser Technik kann nun jeden Kommentar eine Stimmung zugewiesen werden. Ein Kommentar ist negativ, wenn der polarity Wert kleiner als –0.5 ist, positiv wenn der Wert größer als 0.5 ist und neutral, wenn der Wert dazwischen liegt. Es ist wichtig polarity von toxischen Kommentaren oder Beleidigungen zu unterscheiden. Nur weil ein Kommentar negativ ist z.B.: “Dieses MoinMoin hat mir nicht besonders gefallen.”, ist es noch kein toxischer Kommentar.

Nachdem jedem Kommentar ein polarity Wert zugewiesen wurde, sieht der Datensatz nun wie folgt aus:

# Titel Moderator Veröffentlicht Autor Kommentar Polarity
0 #MoinMoin mit Etienne, Florentin Will und Stef... Etienne 2015-10-21T09:30:00.000Z Papa Smurf wie gut andi doch predicted hat 1.0
1 #MoinMoin mit Etienne, Florentin Will und Stef... Etienne 2015-10-21T09:30:00.000Z Patrick S. andy hat den anfang ja komplett richtig vorher... 1.0
2 #MoinMoin mit Etienne, Florentin Will und Stef... Etienne 2015-10-21T09:30:00.000Z HellvisDeatdly gerade die hotel folge vom das podcast ufo geh... 0.0
3 #MoinMoin mit Etienne, Florentin Will und Stef... Etienne 2015-10-21T09:30:00.000Z Christopher Ehrhardt bei mir das gleiche lol 0.0
4 #MoinMoin mit Etienne, Florentin Will und Stef... Etienne 2015-10-21T09:30:00.000Z Ruffy so im nachhinein ziemlich gut predicted alles d 1.0

Mithilfe dieses neuen Wertes können neue Fragen gestellt werden

Wie viele aller Kommentare sind positiv, negativ und neutral?

Von den ca. 130.000 Kommentaren sind die meisten Neutral, also ohne besonders positiver oder negativer Stimmung. Es hängt natürlich davon ab, wie die Werte für die Einteilung festgelegt sind (siehe oben). Rund 7% aller Kommentare – 9.000 - sind negativ. Während die positiven Kommentare fast das 4-fache ausmachen – 38.263.

comment_sentiment_total
Datentabelle
# Stimmung Anzahl
0 Neutral 89853
1 Positiv 38263
2 Negativ 9030

Wie viele der Kommentare eines jeden Moderators sind positiv, negativ und neutral?

In dieser Grafik kann man gut die Aufteilung der neutralen (Blau), positiven (Grün) und negativen (Rot) Kommentare pro Moderator erkennen. Interessant ist wie das Verhältnis zwischen positiven und neutralen Kommentaren bei jedem Moderator nahezu gleich ist. Negative Kommentare scheinen aber an die Anzahl der gesamten Kommentare gekoppelt zu sein. Etienne hat verhältnismäßig die meisten negativen Kommentare währen Alwin und Krogi beinahe keine haben. Dieses Phänomen ist durchaus bekannt. Je bekannter jemand/etwas ist desto mehr Leute finden es/die Person auch schlecht.

comment_sentiment_mod
Datentabelle
# moderator positive negative neutral total
0 Etienne 9578 2447 22981 35006
1 Florentin 3801 1031 9975 14807
2 Donnie 4250 885 9665 14800
3 unknown 3913 793 9137 13843
4 Andy 2726 568 5715 9009
5 Lars 2125 639 5116 7880
6 Simon 2275 497 5022 7794
7 Budi 2005 448 4678 7131
8 Colin 1426 355 3086 4867
9 Nils 1105 275 2728 4108
10 Andreas 1074 300 2611 3985
11 Gregor 896 219 2452 3567
12 Gunnar 814 164 1843 2821
13 Tim 713 156 1579 2448
14 Schröck 709 116 1464 2289
15 Krogi 467 65 912 1444
16 Alwin 386 72 885 1343

Wie viele der Kommentare der Personen mit den meisten Kommentaren sind positiv, negativ und neutral?

Auch in dieser Grafik lässt sich wieder das oben genannte Phänomen beobachten. Die Anzahl der negativen Kommentare hänge stark von der gesamten Anzahl der Kommentare ab. Wohingegen die Anzahl positiver Kommentare im Verhältnis immer sehr ähnlich ist. Die User User 5 und User 6 fallen etwas aus der Reihe. User 5 schrieb nur einen einzigen positiven Kommentar und keinen negativen. Wohingegen der User User 6 besonders viele negative Kommentare verfasst.

most_comments_by_author_sentiment
Datentabelle
# Autor Postiv Negativ Neutral Gesamt
0 User 1 220 63 744 1027
1 User 2 256 56 485 797
2 User 3 113 59 359 531
3 User 4 64 14 319 397
4 User 5 1 0 368 369
5 User 6 59 35 266 360
6 User 7 73 17 262 352
7 User 8 82 24 157 263
8 User 9 62 20 173 255
9 User 10 58 20 165 243

Kommentare von User 5:

# Kommentar
0 was ist das für moinmoin
1 was ist das für moinmoin
2 was ist das für moinmoin mit veraltetem intro vong köpfen her
3 was ist das für moinmoin
4 was ist das für moinmoin

Was ist das für Kommentar vong Sinn her

Wer sind die Personen mit den meisten positiven und den meisten negativen Kommentaren?

Wie zu erwarten ist User 1 der User mit den meisten Kommentaren. Gemessen an der gesamten Anzahl von Kommentaren wie auch an der Anzahl von positiven und negativen Kommentaren.

# Autor Postiv Negativ Neutral Gesamt
0 User 1 220 63 744 1027
1 User 1 220 63 744 1027

Welche Videos haben die meisten positiven und die meisten negativen Kommentare?

Es dürfte keine große Überraschung sein, dass die Videos mit den meisten Kommentaren auch jene sind die am meisten negative und positive Kommentare haben. Allerdings ist die Reihenfolge interessant. Videos mit persönlichen Problemen, wie zum Beispiel Simon’s Haar Moin Moins tendieren dazu mehr positive Kommentare zu haben. Während Videos mit gesellschaftlichen und sozialen Problemen wie zum Beispiel Budi’s Moin Moin über Chemnitz oder Etienne’s Moin Moin über den Gillette Spot eher mehr negative Kommentare bekommen.

Videos mit den meisten positiven Kommentaren:
# Titel Positiv Negativ Neutral Gesamt
0 Stress, Burnout & Alopecia Areata | MoinMoin m... 628 74 903 1605
1 Wie sexistisch ist der neue Gillette-Spot? Edd... 424 92 749 1265
2 Haare ab bei Simon! | MoinMoin mit Etienne, Si... 324 54 713 1091
3 I have a dream about Chemnitz | MoinMoin mit Budi 306 87 611 1004
4 Der große Giga-Geburtstag: Küsse & Peinlichkei... 254 60 462 776

Videos mit den meisten negativen Kommentaren:
# Titel Positiv Negativ Neutral Gesamt
0 Wie sexistisch ist der neue Gillette-Spot? Edd... 424 92 749 1265
1 I have a dream about Chemnitz | MoinMoin mit Budi 306 87 611 1004
2 Stress, Burnout & Alopecia Areata | MoinMoin m... 628 74 903 1605
3 Der große Giga-Geburtstag: Küsse & Peinlichkei... 254 60 462 776
4 Haare ab bei Simon! | MoinMoin mit Etienne, Si... 324 54 713 1091

Wie lange ist ein durchschnittlicher Kommentar? Gibt es Unterschiede zwischen positiven, negativen und neutralen Kommentaren?

Wichtig! Hier hat sich bei der Berechnung ein Fehler eingeschlichen und die Werte waren nicht korrekt.

Leider ist im Vergleich zu den falschen Werten dieses Ergebnis nicht so erfreulich. Die Negativen Kommentare sind im Durchschnitt die längsten, sind aber trotzdem nur zwei Zeichen kürzer als ein durchschnittlicher positiver Kommentar. Noch unter dem Gesamtdurchschnitt liegen die Neutralen Kommentare. Das negative Kommentare am längsten sind kann mehrere Gründe haben. Einerseits könnte es sein, dass Kommentare welche konstruktive Kritik beinhalten als negativ eingestuft werden. Es könnte auch sein, dass bestimmte negative Wörter sehr stark gewichtet sind und somit das Gesamte Kommentar negativ machen.

Original Text

Das Ergebnis dieser Frage hat mich besonders gefreut und ist wie ich finde eine der wichtigsten Erkenntnisse dieser Analyse. Negative Kommentare haben eine durchschnittliche Länge von 8 Zeichen. Daran erkennt man, dass es nicht viel braucht um eine negative Stimmung zu verbreiten und Beleidigungen zu schreiben. Konstruktive Kritik und sinnvolle Kommentare kommen nicht mit 8 Zeichen aus.

comment_length
Datentabelle
# Stimmung Durchschnittliche Länge
0 Neutral 100.257777
1 Gesamt 104.436052
2 Positiv 111.999948
3 Negativ 113.915061

5 Topic Modelling

Um herauszufinden ob es gewisse Themengebiete gibt welche besonders oft vorkommen und in vielen verschiedenen Kommentaren erwähnt werden nutzen wir topic Modelling. Diese Methode ermöglicht es, aus allen Kommentaren verschiedene Gruppen an Wörtern herauszufiltern welche besonders oft gemeinsam vorkommen. Die Anzahl dieser verschiedenen Themengebiete kann selbst festgelegt werden. Daraus erkennt vielleicht der ein oder andere bereits, dass diese Methode sehr viel manuelles Testen und optimieren benötigt.* Außerdem ist diese Methode sehr Zeit- und Rechenaufwendig, weshalb wir die Kommentare verkürzen. Es werden nur Nomen und Adjektive für das topic Modelling verwendet. Am Ende wurden die Kommentare in 5 Themengebiete eingeteilt. In der untenstehenden Tabelle sieht man jeweils die Top 5 Wörter die jedem Thema zugewiesen wurden.

Thema Wort 1 Wort 2 Wort 3 Wort 4 Wort 5
Thema 1 beste wirklich richtig leute geil
Thema 2 neue guter schön gute genau
Thema 3 besten anfang besser tag klar
Thema 4 lustig mensch gutes rbtv live
Thema 5 liebe unterhaltsam hauke direkt gott

Leider sind die Themengebiete sehr ähnlich und es lassen sich nur sehr geringe Unterschiede ausmachen. Das kann daraus folgen, dass viele Kommentare sehr ähnlich sind. Eine weitere Analyse würde keine neuen Erkenntnisse bringen. Andererseits, kann man auch etwas Positives feststellen. Jedes Thema besteht beinahe nur aus positiven und freundlichen Wörtern. Daraus kann man schließen, das dies für den Großteil der Kommentare gilt.

*Für das topic Modelling wurde latent dirichlet allocation (LDA) verwendet. Ein sehr interessantes Verfahren, welches anhand von Wahrscheinlichkeiten und Matrixzerlegung der document term matrix die einzelnen Topics errechnet. Man kann es sich ähnlich zu singular value decomposition (SVD) für Text Matrizen vorstellen.

6 Toxicity Classification

Es gibt verschiedene Arten von Machine Learning. Bisher wurden nur sogenannte unsupervised Methoden verwendet (Sentiment Analysis, Topic Modelling). Unsupervised heißt, dem Algorithmus werden Daten gegeben und er liefert verschiedene Ergebnisse basierend auf den Eigenschaften dieser Daten zurück. Darunter fallen etwa Dinge wie Clustering, also das Gruppieren von Zusammengehörenden Datensätzen, oder Anomalie Erkennung. Classification ist eine andere Art von Machine Learning, supervised Machine Learning. Damit ein Algorithmus Datensätze richtig klassifizieren kann, muss er zuerst trainiert werden. Dazu benötigt man Trainingsdaten. Trainingsdaten sehen genauso aus wie die Daten, welche später klassifiziert werden sollen, mit dem großen Unterschied, dass ihnen bereits die Richtige Klasse zugewiesen ist. Will man zum Beispiel einen Algorithmus trainieren welcher toxische Kommentare erkennt, muss er zuerst mit Kommentaren trainiert werden die bereits als toxisch oder nicht toxisch gekennzeichnet sind. Das große Problem hierbei ist es an solche Daten zu kommen, denn um so einen Algorithmus (eigentlich werden diese Algorithmen als Modell bezeichnet) zu trainieren benötigt man tausende von Trainingsdaten. Glücklicherweise gibt es verschiedene Organisationen welche solche Daten bereitstellen. Kaggle ist eine Website auf der Machine Learning Wettbewerbe mittels sogenannter Challenges abgehalten werden, die teils mit sehr hohen Preisgeldern ausgeschrieben sind. Dabei stellt eine Firma, Organisation, Forschungseinrichtung, etc. Trainingsdaten bereit. Diese sind für jeden frei verfügbar. Glücklicherweise gibt es dort auch eine Challenge die sich mit toxischen Kommentaren befasst ( Toxic Comment Classification Challenge). Um die verschiedenen Lösungen auf Kaggle zu vergleichen, wird ein Teil der Daten zurückgehalten. Nachdem die Challenge abgelaufen ist, werden auch diese zu Verfügung gestellt. Somit haben wir unsere Trainingsdaten gefunden ca. 250.000 Kommentare. Das Problem ist, dass diese Kommentare in Englisch sind. Leider hat Google vor kurzem ein Limit für ihren Übersetzte eingeführt. Somit war es nicht möglich Trainingsdaten ins Deutsche zu übersetzen. Eigentlich sollten alle Moin Moin Kommentare klassifiziert und ähnlich analysiert werden wie im Kapitel Sentiment Analysis. Das war somit nicht mehr möglich. Eine zweite Idee war es alle 20 Sekunden ein Kommentar aus dem YouTube live Chat zu hohlen. Die aktuelle YouTube API macht diese Methode als Webanwendung allerdings sehr kompliziert. Deswegen wurde folgendes gemacht. Es wurden alle Kommentare von Almost Daily und NDA heruntergeladen. Das sind insgesamt 159.732 Kommentare. Alle 20 Sekunden wird ein zufälliger Kommentar ausgewählt, übersetzt und klassifiziert. Die letzten 30 Kommentare werden unten in der Chatbox angezeigt. Es besteht außerdem die Möglichkeit eigene Kommentare zu verfassen und klassifizieren zu lassen.

Model Training

Hier wird's ein bisschen technisch, der Abschnitt ist für das Resultat aber nicht besonders wichtig. Wie bereits erwähnt wurden zum Trainieren des Modellls die oben genannten Kaggle Daten verwendet. Diese sind allerdings in 6 Kategorien klassifiziert. Da wir uns nur dafür interessieren ob ein Kommentar toxisch ist oder nicht haben wir diese 6 Klassen zu einer zusammengefügt. Außerdem wird es dadurch leichter das Modell zu trainieren. Als Modell wurde zuerst Multinomial Naive Bayes verwendet. Die Ergebnisse waren zwar zufriedenstellend aber nicht besonders gut. In Kaggle gibt es die Möglichkeit, eigene Lösungen hochzuladen. Ein User hat einen Algorithmus nachgebaut, welcher in einem Paper vorgeschlagen wurde (NBSVM). Naive Bayes in Kombination mit einer Support Vector Machine, wobei er die SVM mit einer logistische Regression ersetzt hat. Dieses Modell lieferte sehr gute Ergebnisse auf die Testdaten. Die Testdaten entsprechen 10% des Trainingssets und sind unabhängig von diesem.

Um das Modell zu überprüfen, wurden folgende Beispieltexte benutzt. Wie man sieht wurden alle richtig klassifiziert.

# Text Text (Clean) Toxisch
0 you piece of shit piece shit Ja
1 I hate you hate Ja
2 I love you love Nein
3 I have no opinion opinion Nein
4 This is a typical comment typical comment Nein

Interactive Classification

Hier wird wie bereits erwähnt alle 20 Sekunden automatisch ein neues Kommentar erscheinen. Außerdem besteht die Möglichkeit eigene Texte klassifizieren zu lassen (Für jeden Sichtbar). Ein schwarzer Hintergrund bedeutet, dass das Kommentar nicht toxisch ist. Ein rotes Kommentar wurde als toxisch eingestuft. Zusätzlich wird für jedes Kommentar rechts oben die Stimmung (Negativ, Positiv, Neutral) und der zugehörige polarity Wert angezeigt.

Kommentare
User123

Nicht toxisch

Anonymous

test

User123

Nicht toxisch

Funktionsweise
  1. Neuer Text wird aus Liste von Texten geladen (oder durch einen Benutzer eingeben)
  2. Der Text wird bereinigt (Satzzeichen, Symbole, etc..)
  3. Der Text wird übersetzt (Sprache wird automatisch erkannt)
  4. Es wird Sentiment Analysis auf den Englischen Text durchgeführt
  5. Der Englische Text wird durch das Machine Learning Modell klassifiziert

7 Fazit

Leider gibt es einige Punkte welche die Aussagekraft dieser Analyse beeinträchtigen. Der Zugriff auf gelöschte und versteckte Kommentare ist nur für den Besitzer des Videos erlaubt. Außerdem sorgen viele wunderbare Chatmoderatoren dafür, dass viele Kommentare gar nicht erst sichtbar werden. Ebenso gibt es bereits Mechanismen von Google/YouTube welche bestimmte Kommentare herausfiltern. Ein weiteres Problem ist die deutsche Sprache. Wie in den meisten Wissenschaften wird auch im IT Bereich hauptsächlich in Englisch geforscht. Im Normalfall sollte das egal sein, da wir es hier aber mit Textdaten zu tun haben, muss man davon ausgehen, dass die Ergebnisse derselben Kommentare in Englisch durchaus anders aussehen könnten. Hinzu kommt noch, dass Kommentare oft Antworten auf andere Kommentare sind. Dabei kann es durchaus vorkommen, dass ein Kommentar toxisch ist z.B.: "Deine Mutter". Der Algorithmus wird diese allerdings nicht als toxisch erkennen, weil ihm der Kontext fehlt.

Auch wenn ich das Projekt nicht so umsetzen konnte wie ich es eigentlich geplant hatte, hatte ich viel Spaß an der Arbeit und konnte einiges an Erfahrung sammeln. Ich denke, dass man daran gut erkennen kann, dass die meisten Leute aus der Community doch sehr freundlich und nett sind. Es wäre schön wenn es eine Möglichkeit gäbe, diesen kleinen aber dafür lauten negativen und toxischen Teil der Community zu ändern.

Abschließend möchte ich mich noch bei den Gesamten Mitarbeitern von RocketbeansTV für die tolle Arbeit der letzten Jahre bedanken und ich hoffe, dass ich noch mit vielen Folgen Kino+, Pen & Paper, Almost Daily, Moin Moin, und und und ... spaß haben kann. Falls sich mit diesem Projekt irgendjemand beleidigt oder auf den Schlips getreten fühlt bin ich natürlich jederzeit bereit es offline zu nehmen. Ich denke allerdings, dass die guten Resultate eine positive Message an die Beans sowie an die Community senden.

Martin Pichler
mpichler.dev@gmail.com