twitter07

textmining
twitter
programming
Published

November 19, 2022

Exercise

Laden Sie \(n=10^k\) Tweets von Twitter herunter (mit \(k=2\)) und zwar pro Nutzerkonto wie unten angegeben . die Tweets sollen jeweils an eine prominente Person gerichtet sein.

Beziehen Sie sich auf diese Politikis.





















Solution

Wir starten die benötigten R-Pakete:

library(academictwitteR)
library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.3     ✔ readr     2.1.4
✔ forcats   1.0.0     ✔ stringr   1.5.0
✔ ggplot2   3.4.4     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.0
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(askpass)
library(rio)

Hier ist der Datensatz mit den Twitterkonten, für die wir die Daten herunterladen sollen:

politicians_path <- "https://raw.githubusercontent.com/sebastiansauer/datascience-text/main/data/twitter-german-politicians.csv"
politicians <- import(politicians_path)
politicians
                                               name  party      screenname
1                                   Karl Lauterbach    SPD Karl_Lauterbach
2                                       Olaf Scholz    SPD      OlafScholz
3                                 Annalena Baerback Gruene       ABaerbock
4  Bundesministerium für Wirtschaft und Klimaschutz Gruene            BMWK
5                                    Friedrich Merz    CDU  _FriedrichMerz
6                                      Markus Söder    CSU   Markus_Soeder
7                                       Cem Özdemir Gruene    cem_oezdemir
8                                    Janine Wissler  Linke  Janine_Wissler
9                                 Martin Schirdewan  Linke      schirdewan
10                                Christian Lindner    FDP       c_lindner
11                    Marie-Agnes Strack-Zimmermann    FDP      MAStrackZi
12                                   Tino Chrupalla    AFD  Tino_Chrupalla
13                                     Alice Weidel    AFD    Alice_Weidel
                                  comment
1                                    <NA>
2                                    <NA>
3                                    <NA>
4  Robert Habeck ist der Minister im BMWK
5                                CDU-Chef
6                                CSU-Chef
7                                    BMEL
8                            Linke-Chefin
9                              Linke-Chef
10                               FDP-Chef
11     Vorsitzende Verteidigungsausschuss
12                     AFD-Bundessprecher
13                   AFD-Bundessprecherin

Wir müssen noch das Passwort bereitstellen:

bearer_token <- askpass::askpass("bearer token")

Und dann definieren wir eine Funktion, die das Gewichtheben für uns erledigt:

get_all_tweets_politicians <- function(screenname, n = 1e1) {
  get_all_tweets(query = paste0("to:", screenname, " -is:retweet"),
                 start_tweets = "2021-01-01T00:00:00Z",
                 end_tweets = "2021-12-31T23:59:59Z",
                 bearer_token = bearer_token,
                 file = glue::glue("~/datasets/Twitter/hate-speech/tweets_to_{screenname}_2021.rds"),
                 data_path = glue::glue("~/datasets/Twitter/hate-speech/{screenname}"),
                 n = n)
}

Jetzt wenden wir die Funktion auf jedes Twitterkonto unserer Liste (alle Politikis) an:

d <- politicians$screenname %>% 
  map(get_all_tweets_politicians)

Categories:

  • textmining
  • twitter
  • programming