NLP Twitter – Stimmungsanalyse

Twitter wird von Hunderten Millionen Menschen auf der ganzen Welt genutzt. Genauer gesagt, beläuft sich die aktuelle Schätzung auf etwa 330 Millionen monatlich aktive Nutzer und 145 Millionen täglich aktive Twitterer. Eine weitere interessante Zahl: 63 % der weltweiten Twitter-Nutzer sind zwischen 35 und 65 Jahre alt.

Das Ziel dieses Artikels ist es, eine explorative und visuelle Analyse der in unserem Datensatz vorhandenen Tweets durchzuführen. In einem zweiten Schritt soll mithilfe verschiedener Modelle in Python die Stimmung in den Tweets als positiv, neutral oder negativ klassifiziert werden. Mit anderen Worten: Sentiment Analysis und NLP zusammenzubringen.

Inhalt

  1. Einführung in NLP
  2. Word embedding – Word2vec
  3. NLP – Wortübersetzung
  4. NLP Twitter -Stimmungsanalyse
    1. Visuelle Analyse der Daten
    2. Erstellung von Metadaten und Klassifizierung
    3. Alternative Lösungen: AFINN

/*! elementor – v3.10.1 – 17-01-2023 */
body.elementor-page .elementor-widget-menu-anchor{margin-bottom:0}

ERSTE VISUELLE ANALYSE DER DATEN

Zunächst ein erster Blick auf den Datensatz, der uns zur Verfügung steht: Lade den Datensatz herunter, den du mit dem Befehl df.head() erhalten hast.

/*! elementor – v3.10.1 – 17-01-2023 */
.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=“.svg“]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}

Wie wir sehen können, enthält dieser Datensatz, der insgesamt 1,6 Millionen Tweets enthält, eine Spalte mit dem Titel Label, die eine 1 vergibt, wenn die Stimmung des Tweets positiv ist, und eine -1, wenn nicht.

In einem ersten Schritt werden wir versuchen, den Monat zu bestimmen, in dem die Twittosphäre am aktivsten ist.

Hier lässt sich ein erster Trend erkennen:

  • Die Monate Mai (5) und Juni (6) scheinen die Monate zu sein, in denen am meisten getwittert wird. Dies könnte verschiedene Gründe haben, z. B. dass Twitter besonders für junge Leute gedacht ist und dass die Monate Mai und Juni das Ende ihres Schul- oder Studienjahres sind, sodass sie mehr Zeit haben, sich auf Twitter zu äußern.
  • Es fällt auch auf, dass im Juni die Gefühle der Tweets eher negativ sind (mit -1 gekennzeichnet), was die vorgefasste Meinung bestätigt, dass Twitter manchmal ein Ort sein kann, an dem Gewalt ausbricht.

Wir könnten uns nun fragen, an welchem Wochentag die meisten Tweets geschrieben werden:

Hier stellen wir wenig überraschend fest, dass Twitterer am Wochenende viel mehr Twitter nutzen als unter der Woche.

Man kann sich auch ansehen, zu welcher Tageszeit die meisten Tweets abgesetzt werden, und ebenfalls wenig überraschend feststellen, dass die Zahl der Tweets vor allem vor und nach Beginn und Ende des Arbeits-/Schultags explodiert:

Hier ist eine Wortwolke, in der du sehen kannst, welche Wörter in den Tweets der Nutzer am häufigsten verwendet werden (je größer die Schriftgröße eines Wortes ist, desto häufiger kommt es vor).

Von nun an werden wir unsere Arbeit beginnen, indem wir die Gefühle der Tweets mithilfe einer logistischen Regression klassifizieren.

Dazu ist die Idee wie üblich, unseren Datensatz in eine Trainingsstichprobe (80%), in der wir die Parameter des Modells lernen, und eine Teststichprobe (20%), in der wir sie testen, aufzuteilen.

Da die erklärenden Variablen jedoch Textdaten (die Tweets) sind, werden wir vorher neue numerische erklärende Variablen in Verbindung mit den Tweets (Metadaten) erstellen, um dann die Labels vorhersagen zu können.

ERSTELLUNG VON METADATEN UND KLASSIFIZIERUNG

Um die Stimmung eines Tweets zu analysieren, können wir dann das herausfiltern, was uns wichtig erscheint, wie z. B. :

  • Die Anzahl der E-Mail-Adressen. (Die Anzahl der E-Mail-Adressen, die im Tweet genannt werden, könnte für die Seriosität des Tweets von Bedeutung sein).
  • Die Anzahl der Hashtags.
  • Die Anzahl der Nutzerzitate.
  • Die Anzahl der Großbuchstaben
  • Die Anzahl der Kettenbriefe in Großbuchstaben.
  • Die Anzahl der Ausrufezeichen.
  • Die Anzahl der Ausrufezeichenketten.
  • Die Anzahl der Fragezeichen.
  • Die Anzahl der Fragezeichenketten.
  • Die Anzahl der Punkte ect (…).

Hier ist eine neue Vorschau unseres Datensatzes nach der Erstellung der Metadaten :

Durch Gruppieren und Summieren jeder Spalte in diesem neuen Datensatz nach dem Label.

Wir stellen fest, dass ein Tweet, wenn er aus Links oder E-Mail-Adressen besteht, dazu neigt, viel positiver zu sein.

Da die erklärenden Variablen nun bereit sind, verwendet zu werden, müssen wir nur noch unser logistisches Regressionsmodell laufen lassen, um die positiven und negativen Gefühle der Tweets zu klassifizieren.

Hier ist der Vorhersagewert, den das Modell erzielt hat:

Das Ergebnis ist ein Vorhersagewert von ca. 60 %, was nicht besonders gut ist. Um diesen Wert zu verbessern, könnte man eine Bag-of-Words-Darstellung jedes Wortes in den Tweets verwenden, die den Text einfach als Vektor darstellt, der von einem Machine-Learning-Algorithmus verarbeitet werden kann.

ALTERNATIVE LÖSUNG: AFINN

Eine andere Möglichkeit, die Stimmung eines Tweets zu klassifizieren, ist die Verwendung von in Python verfügbaren Bibliotheken wie Afinn.

Das AFINN-Lexikon ist eine Liste englischer Begriffe, deren aktuelle Version über 3.300 Wörter enthält. Jedes Wort ist mit einem Sentiment-Score verknüpft, den wir mit der Methode score der Klasse Afinn erhalten können.

Der Afinn-Score ist eine kategoriale Variable mit folgender Interpretationsregel:

  • Negative Gefühle: Punktzahl afinn < 0
  • Neutrale Stimmung: Punktzahl afinn == 0
  • Positive Stimmung: Punktzahl afinn > 0

Wenden wir nun die Funktion Afinn auf unseren Datensatz an:

Nun schauen wir uns an, ob Afinn effektiv ist:

Wie du sehen kannst, ist Afinn besonders leistungsstark und hat die beiden oben genannten Tweets kategorisch als negativ eingestuft.

SCHLUSSFOLGERUNG:

In diesem Artikel haben wir wieder einmal gesehen, wie mächtig NLP ist, wenn es darum geht, die Stimmung in Tweets zuverlässig zu klassifizieren.

Diese Twitter-Stimmungsanalyse könnte mehrere Anwendungsbereiche haben, von denen hier einige spezifische Beispiele genannt werden:

  • Social Media Monitoring: Das Aufspüren von Tweets mit negativen Gefühlen könnte helfen, die Belästigung und den Gewaltausbruch auf Twitter zu reduzieren.
  • Politische Kampagnen: Die Stimmungsanalyse auf Twitter könnte die Beliebtheit eines politischen Kandidaten analysieren und so z. B. den Sieger einer Präsidentschaftswahl vorhersagen.

Kundenbindung eines Unternehmens: Die Stimmungsanalyse auf Twitter verfolgt, was über ein von einem Unternehmen verkauftes Produkt oder eine Dienstleistung gesagt wird, und kann so helfen, verärgerte Kunden zu erkennen. Das Unternehmen kann so

Wenn dir dieser Artikel gefallen hat, melde dich für unseren Newsletter an und werde über neue Artikel sofort benachrichtigt.


Newsletter abonnieren