API-Access – Twitter

Digital behavioral data - Session 04

16.11.2022

Seminarplan

Sitzung Datum Thema Referent*Innen
1 26.10.2022 Kick-Off Session Christoph Adrian
2 02.11.2022 DBD: Einführung und Überblick Christoph Adrian
3 09.11.2022 DBD: Datenerhebung Christoph Adrian
4 16.11.2022 API-Access (I): Twitter Falk
5 23.11.2022 API-Access (II): YouTube Denisov
6 30.11.2022 API-Access (II): Reddit Landauer
7 07.12.2022 Webscraping: TikTok Brand & Kocher
8 14.12.2022 Exkurs: DBD Analyse mit R Christoph Adrian
WEIHNACHTSPAUSE
9 12.01.2023 ESM: m-path Dörr
10 19.01.2023 Data Donations Hofmann & Wierzbicki
11 26.01.2023 PUFFER
12 02.02.2023 Guest Lecture: Linking DBD & Survey data Johannes Breuer
13 09.02.2023 Semesterabschluss & Evaluation Christoph Adrian

Agenda

  1. Verständnis- & Diskussionsfragen
  2. 👥 Group Activity
  3. Beispielhafte Auswertungen

Verständnis- & Diskussionsfragen

Ihre Fragen aus MS Teams

Vielen Dank für Ihre Fragen!

Was genau kann unter “N-gram analysis” verstanden werden?

Um semantische Muster der Daten bei der Twitter-Forschung zu erkennen, wendet man häufig Text-Mining-Methoden an. Wie wird dabei mit ironischen Aussagen oder Umgangssprache umgegangen? Sind solche Analysemethoden somit überhaupt verlässlich oder kann man diesbezüglich mit einer hohen Fehleranfälligkeit rechnen?

Viele Studien verwenden Twitter in der Forschung. Dabei werden verschiedene Methoden eingesetzt. Welche Methode (aus Table 4 des Pflichtpapers) würden Sie am meisten empfehlen? Welche ist am aussagekräftigsten? Oder ist das Kontext-bezogen und eine allgemeine Aussage kann nicht getätigt werden?

Interessant wäre es in diesem Kontext vielleicht nicht nur Twitter, sondern eine andere Social-Media-Plattform zu betrachten, zum Bsp. Facebook. Würden die dominierenden Themen der Facebook-basierten Forschung ähnlich wie bei Twitter ausfallen? Wie sieht wohl die Entwicklung der Themen in den letzten Jahren aus?

Interessant wäre es in diesem Kontext vielleicht nicht nur Twitter, sondern eine andere Social-Media-Plattform zu betrachten, zum Bsp. Facebook. Würden die dominierenden Themen der Facebook-basierten Forschung ähnlich wie bei Twitter ausfallen? Wie sieht wohl die Entwicklung der Themen in den letzten Jahren aus?

Twitter wird unter anderem für „Opinion Mining” verwendet. Jedoch kann es gerade bei polarisierenden Themen vorkommen, dass sich vor allem Personen mit extremer Meinung äußern und die Personen mittig im Spektrum zurückhalten. Wie kann man einen solchen Bias ausgleichen?

Es kann nur ein kleiner Bruchteil der Twitter-Kommunikation per API abgefragt werden, der zudem noch veraltet ist. Inwieweit sind Trend-Analysen überhaupt möglich? Gibt es Möglichkeiten Twitter-Kommunikation zu “streamen”?

Eine gute Studie lebt von den Kriterien der Validität, Objektivität und Reliabilität. Inwieweit können diese Kriterien bei einer Twitter-Analyse erfüllt werden?

Was sind die Gründe für den Rückgang der Forschung mit Twitter-Daten rund um das Thema Marketing?

👥 Group Activity

Gruppenarbeit zur Nutzung der Twitter API (Tools)

Suchanfrage erstellen & Daten sammeln

Twitter case study - Teil 1: Suchen & Sammeln

Für die Nutzung des Tweet Downloader benötigen Sie einen Bearer Token. Diesen finden Sie auf MS Teams.

Wäheln Sie eine der folgenden Szenarien aus und erstellen Sie eine Suchanfrage mit Hilfe des Twitter Query Builder:

  • Alle Tweets eines bestimmten Accounts seit dem 01.10.2022

  • Alle Tweets (ohne Retweets) mit dem Hashtag #karneval oder #wokwm am letzten Wochenende

… und ziehen sich die Tweets als .csv & .json mit Hilfe des Tweet Downloader (benötigt Chrome, Edge oder Opera)

Format der Daten & potentielle Analyse(n)

Twitter case study - Teil 2: Sichten & Konzipieren

  1. Inspizieren Sie anschließend die Datensätze und schauen Sie, welche Informationen Ihnen geliefert werden.

    • Wie unterscheiden sich die Datenformate?


  1. Auf Basis der gesichteten Daten …

    • Wie würden Sie die Daten analyiseren bzw. welche Aspekte würden Sie sich anschauen?

    • Welche potentielle Fragestellungen könnten Sie spontan entwickeln?

Beispielhafte Auswertungen

Im Fokus: #Karneval

Quarto Document Binder RStudio Binder Google Colab

Setup und Datensammlung mit R

#Karneval im Fokus: Hintergrund und Datensammelung

Alle Tweets herunterladen, die

  • #Karneval enthalten

  • zwischen 00:00 am 11.11.2022 und 12:00 am 13.12.2022 erschienen sind

Weiterverarbeitung und Auswertung der Daten mit R, Fokus auf Paket academictwitteR (Barrie & Ho, 2021)

Sammlung der Daten mit academictwitteR:

get_all_tweets(
  query = "#Karneval", 
  start_tweets = "2022-11-11T00:00:00Z",
  end_tweets = "2022-11-13T12:00:00Z",
  file = "karneval",
  data_path = "data/raw_karneval/",
  n = 100000
  )

Kurzer Blick in die Daten

#Karneval im Fokus: Datenübersicht

tweets_karneval_hash %>% glimpse()
Rows: 2,637
Columns: 37
$ tweet_id               <chr> "6748786565d7973caa87d2323915aa88", "54d163369a…
$ user_username          <chr> "378ed57a6433a1b3b40cb09889737b6c", "b3311d2c36…
$ text                   <chr> "082080d7671a3e96771128abe2d4d97a", "50a5d056f6…
$ created_at             <chr> "2022-11-11T08:15:08.000Z", "2022-11-11T08:14:5…
$ lang                   <chr> "de", "de", "de", "und", "und", "und", "und", "…
$ possibly_sensitive     <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE,…
$ author_id              <chr> "53c03c88c563bbe0c846ec72fbb009de", "455d0e5e38…
$ source                 <chr> "Twitter for Android", "Twitter for Android", "…
$ conversation_id        <chr> "6748786565d7973caa87d2323915aa88", "54d163369a…
$ in_reply_to_user_id    <chr> "55611e71b358a30158c61810ad802435", "55611e71b3…
$ user_protected         <chr> "72f531d1a36ddd6b5cbc433c29147817", "72f531d1a3…
$ user_description       <chr> "bafdc8d3fd80275db42115ae8e29b4b5", "9a7ef75623…
$ user_profile_image_url <chr> "f081768e89c22cd6541e544249f8bce0", "3abb25c65c…
$ user_pinned_tweet_id   <chr> "717229259056b4b0bc0ff08c60026525", "a70a399cbc…
$ user_verified          <chr> "72f531d1a36ddd6b5cbc433c29147817", "72f531d1a3…
$ user_name              <chr> "77e487e1cca06b726ed5d9dd402c7e3f", "4f1c874adf…
$ user_created_at        <chr> "963fa1ac02702aff4beae1184d6dc4e9", "4d26ba5d1b…
$ user_location          <chr> "55611e71b358a30158c61810ad802435", "27ce7d3e06…
$ user_url               <chr> "55611e71b358a30158c61810ad802435", "a71a2cbce2…
$ retweet_count          <int> 2, 0, 0, 178, 178, 178, 178, 178, 178, 178, 178…
$ like_count             <int> 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ quote_count            <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ user_tweet_count       <chr> "6491b568f945b160a838429d9e1ac780", "5741da7b11…
$ user_list_count        <chr> "1473d70e5646a26de3c52aa1abd85b1f", "1473d70e56…
$ user_followers_count   <chr> "635d85ebc32e43cadb00fe448947d969", "28a5de8169…
$ user_following_count   <chr> "77bd932347d1b80af13380a630d5fdad", "dc1a545561…
$ sourcetweet_type       <chr> "1598fc1c239906e1e10709bc12e5f0f3", "55611e71b3…
$ sourcetweet_id         <chr> "549605b6493750e7a3bd445969dd53e4", "55611e71b3…
$ sourcetweet_text       <chr> "261331dce22c0a8cfe03d52e17966a92", "55611e71b3…
$ sourcetweet_lang       <chr> "8310e591706d1e38cdbfd4e26f17a274", "55611e71b3…
$ sourcetweet_author_id  <chr> "b7b3a7c1d81f9f456dd6f2a707c44e65", "55611e71b3…
$ datetime               <dttm> 2022-11-11 08:15:08, 2022-11-11 08:14:57, 2022…
$ date                   <date> 2022-11-11, 2022-11-11, 2022-11-11, 2022-11-11…
$ hour                   <int> 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,…
$ min                    <int> 15, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 12,…
$ hms                    <time> 08:15:08, 08:14:57, 08:14:29, 08:14:29, 08:13:…
$ hm                     <time> 08:15:00, 08:14:00, 08:14:00, 08:14:00, 08:13:…

Deutsch, Hashtags, Englisch …

#Karneval im Fokus: Sprache der Tweets

table(tweets_karneval$lang)

  ca   cs   cy   da   de   en   es   et   eu   fi   fr   in   is   ja   lt   nl 
   5    3    2    4 2180  112   18    2    3    3    9    7    1    2    2    9 
  no   pl  qht  qme   tr  und 
   7    8    6   43   10  201 
frq(tweets_karneval$lang, sort.frq = "desc")
x <character> 
# total N=2637 valid N=2637 mean=6.85 sd=5.06

Value |    N | Raw % | Valid % | Cum. %
---------------------------------------
de    | 2180 | 82.67 |   82.67 |  82.67
und   |  201 |  7.62 |    7.62 |  90.29
en    |  112 |  4.25 |    4.25 |  94.54
qme   |   43 |  1.63 |    1.63 |  96.17
es    |   18 |  0.68 |    0.68 |  96.85
tr    |   10 |  0.38 |    0.38 |  97.23
fr    |    9 |  0.34 |    0.34 |  97.57
nl    |    9 |  0.34 |    0.34 |  97.91
pl    |    8 |  0.30 |    0.30 |  98.22
in    |    7 |  0.27 |    0.27 |  98.48
no    |    7 |  0.27 |    0.27 |  98.75
qht   |    6 |  0.23 |    0.23 |  98.98
ca    |    5 |  0.19 |    0.19 |  99.17
da    |    4 |  0.15 |    0.15 |  99.32
cs    |    3 |  0.11 |    0.11 |  99.43
eu    |    3 |  0.11 |    0.11 |  99.54
fi    |    3 |  0.11 |    0.11 |  99.66
cy    |    2 |  0.08 |    0.08 |  99.73
et    |    2 |  0.08 |    0.08 |  99.81
ja    |    2 |  0.08 |    0.08 |  99.89
lt    |    2 |  0.08 |    0.08 |  99.96
is    |    1 |  0.04 |    0.04 | 100.00
<NA>  |    0 |  0.00 |    <NA> |   <NA>

Am 11.11. um 10:11?

#Karneval im Fokus: Tweets im Zeitverlauf

tweets_karneval %>% 
  ggplot(aes(hour)) +
  geom_bar() +
  facet_grid(cols = vars(date)) +
  theme_pubr()

UTC statt UTC+1

#Karneval im Fokus: Stärkste Konzentration von Tweets

tweets_karneval %>%
  frq(hm,
      sort.frq = "desc", 
      min.frq = 10)
hm <numeric> 
# total N=2637 valid N=2637 mean=48463.12 sd=16629.59

Value    |    N | Raw % | Valid % | Cum. %
------------------------------------------
10:11:00 |   59 |  2.24 |    2.24 |   2.24
10:12:00 |   14 |  0.53 |    0.53 |   2.77
10:13:00 |   12 |  0.46 |    0.46 |   3.22
16:54:00 |   12 |  0.46 |    0.46 |   3.68
10:10:00 |   10 |  0.38 |    0.38 |   4.06
11:29:00 |   10 |  0.38 |    0.38 |   4.44
16:53:00 |   10 |  0.38 |    0.38 |   4.82
n < 10   | 2510 | 95.18 |   95.18 | 100.00
<NA>     |    0 |  0.00 |    <NA> |   <NA>

Time for questions

Bis zur nächsten Sitzung!

Literatur

Barrie, C., & Ho, J. (2021). academictwitteR: An r package to access the twitter academic research product track v2 API endpoint. Journal of Open Source Software, 6(62), 3272. https://doi.org/10.21105/joss.03272