# Übungen zu Episode V #' |\_ \|\|| #' -' | `. -- ||||/ #' /7 `-._ /7 |||||/ #' / `-.____/ |||||||/`-.____________ #' \-'_ \-' ||||||||| `-._ #' -- `-. -/||||||||\ `` -`. #' |\ /||||||\ \_ | `\\ #' | \ \_______...-//|||\|________...---'\ \ \\ #' | \ \ || | \ ``-.__--. | \ | ``-.__--. #' | |\ \ / | |\ \ ``---'/ / | | ``---' #' _/ / _| ) __/_/ / _| ) __/ / _| | #' /,__/ /,__/ /,_/,__/_/,__/ /,__/ /,__/ ########################### # Lücken-Skript # Füllen Sie die Kommentare und beschreiben Sie, was die jeweilige Operation macht. ########################### # ?? library(tidyverse) library(tidycomm) library(lubridate) library(quanteda) # ?? tweets_codiert <- read_csv('tweets_trump-clinton_coded-coder1.csv') %>% mutate(coder = 'a') %>% bind_rows( read_csv('tweets_trump-clinton_coded-coder2.csv') %>% mutate(coder = 'b') ) %>% bind_rows( read_csv('tweets_trump-clinton_coded-coder3.csv') %>% mutate(coder = 'c') ) tweets_codiert %>% test_icr(unit_var = id, coder_var = coder) # ?? tweets <- read_csv('tweets_trump-clinton.csv') tweets_corpus <- corpus(tweets, text_field = 'tweet') # ?? ?tokens tweets_dfm <- dfm(tweets_corpus, remove_punct = TRUE, remove_symbols = TRUE, remove_numbers = TRUE, remove_url = TRUE, remove_separators = TRUE, split_hyphens = TRUE, stem = TRUE, remove = stopwords('en')) # ?? topfeatures(tweets_dfm) ########################### # Code-Verständnis 2.0 # Der folgende Code enthält noch nicht gelernte Elemente. # Können Sie trotzdem beschreiben, was hier passiert? ########################### # ?? tweets_corpus_stichprobe <- corpus_sample(tweets_corpus, size = 10) # ?? ?textstat_readability textstat_readability(tweets_corpus_stichprobe, measure = c('ARI', 'Coleman', 'Flesch.Kincaid')) # ?? textstat_readability(tweets_corpus_stichprobe, measure = c('ARI', 'Coleman', 'Flesch.Kincaid')) %>% as_tibble() %>% bind_cols(docvars(tweets_corpus_stichprobe)) %>% select(candidate, created_at, ARI, Coleman, Flesch.Kincaid) # ?? diktionaer_themen <- dictionary(list(migration = c('wall', 'mexico', 'mexican', 'dreamer'), economy = c('job', 'economi', 'econom', 'money'), terror = c('terror', 'terrorist', 'attack'))) diktionaer_themen # ?? tweets_dfm_thementiktionaer <- dfm(tweets_corpus, dictionary = diktionaer_themen) # ?? tweets_dfm_thementiktionaer_gewichtet <- dfm_weight(tweets_dfm_thementiktionaer, scheme = 'prop') # ?? tweets_dfm_thementiktionaer_gewichtet %>% convert(to = 'data.frame') %>% as_tibble() %>% bind_cols(docvars(tweets_dfm_thementiktionaer_gewichtet)) %>% group_by(candidate) %>% summarise( summe_migration = sum(migration), summe_wirtschaft = sum(economy), summe_terrorismus = sum(terror) ) ########################### # Code-Anpassungen # Kopieren Sie sich den Code so zusammen, dass er den Anforderungen gerecht wird. ########################### # Filtern Sie die Urpsrungs-Tweet-Daten (tweets) auf Trump-Tweets mit mindestens 5000 Retweets. # (korrekt: ~2500 Tweets) # Erstellen Sie daraus einen Korpus. # Erstellen Sie ein Diktionär mit den Positiv-/Negativ-Listen von Bing Liu. # Überführen Sie den Korpus in eine DFM unter Anwendung des Diktionärs. # Erstellen Sie eine gewichtete Version der DFM. # Extrahieren Sie aus dieser neuen gewichteten DFM die Resultate und docvars. # Visualisieren Sie die Positivität/Negativität der Tweets als Linien über die Zeit.