Close

Twicture – Visualisierung der Stimmung auf Twitter | Python Projekt

Scannt Tweets zu einem bestimmten Thema und zeichnet dementsprechend einen Vogel nach. Die Farbe des Vogels basiert auf dem Ergebnis einer Stimmungsanalys.

Funktionsweise

Das Python3.7-Script scannt eine bestimmte Anzahl von Tweets von einem »Trending Topic« und analysiert den Inhalt über eine API, die eine Stimmungsanalyse durchführt und die Tweets den Kategorien »positiv«, »neutral« oder »negativ« zuordnet.

Im Anschluss daran wird ein zwitschernder Vogel gezeichnet und – je nach Ergebnis der Analyse – grün (+), rot (-) oder neutral (0) eingefärbt. Nachdem eine bestimmte Anzahl von Tweets erreicht ist, bilden die Vögel einen Kreis, der dann die Stimmung auf Twitter grafisch darstellt. Das sieht dann z.B. für den #DonaldTrump so aus:

CREDITS: Die Stimmungsanalyse wird über eine von Sharad Raj entwickelten API (https://sentim-api.herokuapp.com) durchgeführt. Tolle Arbeit und einfach zu bedienen – hat mir sehr geholfen.

Hinweis: Die Analyse funktioniert nur mit englischen Texten.

Zwei Versionen

  1. Lässt dich den Hashtag oder das Thema definieren und lädt dessen Tweets (funktioniert mit ask_for_hashtag.py)
  2. Ruft das Trendthema Nr. 1 auf Twitter in New York City ab und lädt Tweets zum verwendeten Thema oder Hashtag (funktioniert mit trending_topic.py)

Voraussetzungen

  1. Erstelle eine Twitter-App (ist einfach und kostenlos)
  2. Speichere die Token der App in der .json-Datei namens twitter_creds.json
  3. pip install -r requirements.txt (–> tweepy, os, json, anfragen) ins Terminal eingeben

Starten

python trending_topic.py (ins Terminal eingeben)

Du siehst anschließend einige Informationen im Terminal wie:

  • den gewählten Hashtag
  • die Liste der Tweets, die wir analysieren
  • ihre Polarität (… das Script druckt sie zweimal (manchmal), aber ich weiß nicht warum 😅)

Bild abspeichern

In beiden Python-Scripts kannst du die Zeile # os.screencapture … ent-kommentieren (sagt man das so?), um einen Screenshot für z.B. Social Media zu machen.

Einige Ideen, um es zu deinem nächsten Nebenprojekt zu machen

  • etwas anderes als einen Vogel zeichnen
  • ein anderes Modul als ‚turtle‘ zum zeichnen verwenden
  • Ändere in der Datei die »turtle.pensize()« in Abhängigkeit von einem vordefinierten Wert
  • einen Twitter-Bot erstellen, der das Bild jedes Mal twittert, wenn ein neues Thema die Trends erklimmt
  • lagere das Script in die Cloud aus und plane einen Cron-Job (… und bitte sag mir wie du es gemacht hast, derzeit weiß ich noch nicht, wie man etwas mit einem GUI auf einer virtuellen Maschine in der Google-Cloud benutzt 😅)

Nutzungsbedingungen

Bitte erwähne mich irgendwo mit meinem Twitter-Kanal @KulturData, aber du musst das nicht jedes Mal machen – nur um mich wissen zu lassen, dass du Spaß daran hast und es verwendest! Bei der API von Sharad Raj bin ich mir nicht sicher. Er sagt weder auf seiner Website noch sonst wo etwas dazu. Ich hoffe, es ist ok für ihn, wenn ich ihn im Code und hier erwähne. Falls nicht, sende mir bitte eine Nachricht auf Twitter oder hier 😇.