X-GTA:
Cross-Topic German Twitter Archive

Methodik, Implikationen und Erkenntnisse

Stefan Knauff
Dorian Tsolak
Simon Kühne

2024-03-19

Hintergrund

Regionalization of Stereotyping in Online Spaces
using Text Based Computational Sociology Methods

Arbeitsgruppe

  • Textdaten (Twitter, Zeitungsdaten)
  • Bilddaten (Instagram)
  • Video (TikTok)

Wie könnte eine Infrastruktur aussehen könnte, die Forschung mit großen Datenmengen ermöglicht und eine zuverlässige Archivierung für kommende Generationen sicherstellt?

X-GTA

  • Cross Topic German Twitter Archive (Tsolak u. a. 2023)
    • 2,1 Milliarden Tweets
    • Oktober 2018 bis März 2023
    • Streaming Twitter API v1
      • 1 der 100 häufigsten deutschen Wörtern1
      • Twitter-Klassifikation: Deutsch
    • ca. 1/4 der Tweets: geo-lokalisiert (Nguyen u. a. 2022)

X-GTA: Tweets pro Tag

Abbildung 1: Tweets pro Tag

Themenunabhängige Sammlungen

  • Relative Häufigkeiten
  • Ursachenforschung ermöglichen
    • Pre-/Post-Vergleiche möglich
    • nachträglich relevante Keywords identifizieren
  • ganzheitliche Diskursanalysen

Anwendungsbeispiel: Stereotypen Analyse

Daten Pipeline

timeline
    section Datenerhebung
        Produktion
          : 1 VM auf 24/7-Cluster
          : 4 Threads @ 2.6 GHz
          : 4 GB RAM
        Entwicklung
          : Docker Container and VMs

    section Archivierung
        Zentrale Uni IT 
          : Tägliche Snapshots
          : Sicherungen auf Magnetband
        Eigenständig
          : Sicherung auf Analyse Server
          : Monatliche Offline Backups

    section Verarbeitung und Analyse
        Kubernetes (Backend)
          : 192 Threads @ <= 3.3 GHz
          : 1024 GB RAM
          : AMD MI 100 (GPU)
          : Microk8s
          : JupyterHub, PostgreSQL, Nominatim, …
        JupyterHub (Frontend)
          : AD-Authentifizierung
          : JupyterLab
          : VSCodium
          : Benutzerdefinierte Profile und Container (inkl. GPU)

Daten Pipeline

  • Automatisierte Datenpipeline
  • Validierung von Datenübertragung zwischen Servern
    • Checksummen

  • Bis März 2023
    • Tägliche Einspeisung neuer Daten

Datenintegrität und Reproduzierbarkeit

  • Erhebung und Archivierung von Rohdaten
    • X-GTA: 1.26 TB komprimierte gz-Archive
  • Reproduzierbarkeit
    • Software Infrastruktur mit Daten Pipeline
      • Ansible-Skripte
        Wiederherstellungszeit: ca. 30 Minuten
    • X-GTA-Datenbank (Postgres)
      • Parsing Container
        Wiederherstellungszeit: ca. 7 Tage
      • Datenintegrität über Checksum-Verifikation

Domänenspezifische Datenaufbereitung

  • Aufbereitung für (hinreichend) performante Analysen
    • Partitionierung in PostgreSQL
      • Postdate + ID
    • Wahl der Tools

Datenaufbereitung: Tweets

Tabelle 1: Struktur der tweets Tabelle: t. ist JSON root für jeden Tweet.
Column Name Data Type Description
id integer t.id
timestamp_ms integer t.timestamp_ms
place jsonb t.place
extended_tweet jsonb t.extended_tweet
in_reply_to_status_id integer t.in_reply_to_status_id
in_reply_to_user_id integer t.in_reply_to_user_id
source text t.source
quoted_status_id integer t.quoted_status_id
g_text text t.tweet.extended_tweet.full_text if it exists, else t.text
g_postdate date t.timestamp_ms / 1000 as date, needed for partitioning
g_coordinates_longitude float first part of t.coordinates.coordinates
g_coordinates_latitude float second part of t.coordinates.coordinates
g_isretweet boolean if t.text begins with ‘RT’

Datenaufbereitung: Profiles

Tabelle 2: Struktur der profiles Tabelle: t. ist JSON root für jeden Tweet.
Column Name Data Type Description
id integer t.user.id
name text t.user.name
screen_name text t.user.screen_name
location text t.user.location
url text t.user.url
protected boolean t.user.protected
verified boolean t.user.verified
description text t.user.description
created_at text t.user.created_at
geo_enabled boolean t.user.geo_enabled
listed_count integer t.user.listed_count
friends_count integer t.user.friends_count
statuses_count integer t.user.statuses_count
followers_count integer t.user.followers_count
favourites_count integer t.user.favourites_count
profile_image_url text t.user.profile_image_url
profile_banner_url text t.user.profile_banner_url
withheld_in_countries text t.user.withheld_in_countries
g_tweet_id integer t.id, needed for joining with tweets table
g_postdate date t.timestamp_ms / 1000 as date, needed for partitioning

Datenverarbeitung: Polars

Anwendungsbeispiel: Wortfilter krise|#krise

from xgta import Xgta
r1 = Xgta().frequency_of_tweets_per_day_containing("krise|#krise") # Returns `Xgta.Result`
r1.plot_frequency(default_enabled_vars=["all_tweets"])

Abfragezeit: 52,83s

Principle of Least Privilege,
but Accessible

  • Speicherung und Verarbeitung: On-Premise
  • Frontendzugriff nur aus internem Netz oder VPN
    • Keine Downloads
    • ggf. Isolierung des Containers im Netz
    • ggf. virtuelle Desktop Lösung

  • Ressourcen und Berechtigungen auf Usecase anpassen
    • Angepasste Container Images
    • Angepasste JupyterHub-Profile

Dauerbeobachtung
aller Hardware und Services

  • Monitoring
    • bspw. Prometheus und Grafana
    • Datenerhebungsserver
    • Kubernetes Nodes
    • Ressourcen Nutzung der Container / User

Fazit

Wie könnte eine Infrastruktur aussehen könnte, die Forschung mit großen Datenmengen ermöglicht und eine zuverlässige Archivierung für kommende Generationen sicherstellt?

  • Themen-unabhängige Sammlungen
  • Ausfallsicherung für kontinuierliche Erhebungen
  • Datenintegrität und Reproduzierbarkeit
  • Domänenspezifische Datenaufbereitung
  • Principle of Least Privilege, but Accessible
  • Dauerbeobachtung aller Hardware und Services

  • Infrastruktur braucht Menschen

Nicht adressiert

Wie könnte eine Infrastruktur aussehen könnte, die Forschung mit großen Datenmengen ermöglicht und eine zuverlässige Archivierung für kommende Generationen sicherstellt?

  • API bzw. einheitliche Metadatenstandards?
    • Zeitungsdaten
    • Bilddaten
    • Videodaten
  • Niederschwellige Reproduzierbarkeit?
    • BinderHub?
      • Datenzugang?


Computational Social Science:
Bridging Data and Methods with
Theory and Applications

Workshop
May 6-7, 2024 | Bielefeld University

Referenzen

Caliskan, Aylin, Joanna J. Bryson, und Arvind Narayanan. 2017. „Semantics Derived Automatically from Language Corpora Contain Human-Like Biases“. Science 356 (6334): 183–86. https://doi.org/10.1126/science.aal4230.
Nguyen, H Long, Dorian Tsolak, Anna Karmann, Stefan Knauff, und Simon Kühne. 2022. „Efficient and Reliable Geocoding of German Twitter Data to Enable Spatial Data Linkage to Official Statistics and Other Data Sources. Frontiers in Sociology 7: 17. https://doi.org/10.3389/fsoc.2022.910111.
Tsolak, Dorian, Stefan Knauff, Simon Kühne, und H. Long Nguyen. 2023. „X-GTA: The Cross-Topic German Twitter Archive. Preprint. SocArXiv. https://doi.org/10.31235/osf.io/9tbd4.

Herzlichen Dank für die Aufmerksamkeit!

Stefan Knauff


@sknauff:uni-bielefeld.de
+49 521 106-67468

 

Dorian Tsolak


@dtsolak:uni-bielefeld.de
+49 521 106-4638

 

Simon Kühne


@skuehne:uni-bielefeld.de
+49 521 106-4681