Eduskuntavaalit tweet analysis

root

Vorbereitung

Zum Kompilieren werden ghc und cabal-install benötigt. Empfohlener Ablauf:

  1. make sandbox
  2. make dependencies
  3. make build

Die Tools erwarten weiterhin einen laufenden PostgreSQL-Server auf localhost, mit bereits angelegtem User twitbtw und Datenbank twitbtw. Diese lassen sich z.B. so anlegen:

% sudo -u postgres psql
postgres=# CREATE ROLE twitbtw CREATEDB LOGIN;
CREATE ROLE
postgres=# CREATE DATABASE twitbtw OWNER twitbtw;
CREATE DATABASE
postgres=# \q

Nun können mit make initdb die Tabellen, Funktionen und Ansichten erzeugt werden.

Datenbefüllung

Methode A: Daten von Twitter holen

Zunächst können durch Anpassen der Ordnerstruktur in ./output/rawtweets/ neue Parteien und Accounts hinzugefügt werden. Mit make download werden dann die 800 letzten Tweets heruntergeladen (Zahl in twitdl/Main.hs anpassbar) und als JSON-Dateien dort abgelegt. Die Twitter-API verlangt hierfür einen individuelles Access Token für jeden Benutzerin. Daher muss eine Datei KEYS angelegt werden, die wie folgt aussieht:

export OAUTH_CONSUMER_KEY=XXXXXXXXX
export OAUTH_CONSUMER_SECRET=XXXXXXXX
export OAUTH_ACCESS_TOKEN=XXXXXXXXX
export OAUTH_ACCESS_SECRET=XXXXXXXXX

XXXXXXXXX ist jeweils durch das erhaltene Token zu ersetzen. Anschließend sind die Daten mit make todb in die Datenbank zu importieren.

Methode B: Vorhandener rawtweets-Tarball

Ist bereits ein rawtweets-Tarball vorhanden, kann dieser einfach im Verzeichnis ./output entpackt werden. Auch in diesem Fall muss anschließend make todb aufgerufen werden, um die Daten in die Datenbank zu importieren.

Datenverarbeitung

Die meisten der Tools erfordern vorheriges Tokenisieren, POS-Tagging und eine Vorberechnung der (Zwischen-)Ergebnisse. Alle drei werden zusammen mit make tokenize ausgelöst. Hierbei werden mehrere Modelle parallel berechnet, z.B.:

  • T1-Tokenizer ohne Stemmer/Lemmatizer, Monogramme, Parteien a priori gleichverteilt, ohne Gewichte
  • T1-Tokenizer mit Cistem-Stemmer, Tetragramme, Parteien a priori gleichverteilt, DF-Gewichte
  • T1-Tokenizer mit Cistem-Stemmer, Trigramme, Parteien a priori gleichverteilt, Adjektive mehr gewichten

Und viele weitere. Der Prozess kann eine Weile dauern.

Webinterface

Mit make webserver lässt sich das Webinterface starten, wo die Ergebnisse zu begutachten sind.