library(tidyverse)purrr-map04
Exercise
Importieren Sie das Grundatzprogramm der Partei AfD (in der aktuellsten Version). Tokenisieren Sie nach Seiten. Dann verschachteln Sie die Spalte, in denen der Text der Seite steht, zu einer Listenspalte. Schließlich zählen Sie die Anzahl der Wörter pro Seite und berichten gängige deskriptive Statistiken dazu.
Solution
Text aus PDF-Dateien kann man mit dem Paket pdftools einlesen:
library(pdftools)
d_path <- "~/Literatur/_Div/Politik/afd-grundsatzprogramm-2022.pdf"
d <- tibble(text = pdf_text(d_path))Zu Seiten tokenisieren brauchen wir nicht; das Datenmaterial ist bereits nach Seiten organisiert.
Jetzt “verschachteln” (to nest) wir die Spalte mit dem Text:
d2 <-
d %>%
nest(data = text)
head(d2)Dann zählen wir die Wörter pro Seite:
d3 <-
d2 %>%
mutate(word_count_per_page = map(data, ~ str_count(.x$text, "\\w+")))
head(d3)Wie sieht eine Zelle aus data aus?
d3$data[[1]]Wie sieht eine Zelle aus word_count_per_page aus?
d3$data[[1]]Ah! Darin steckt nur eine einzelne Zahl!
d3$data[[1]] %>% str()Das heißt, wir können vereinfachen, entschacheln:
d4 <-
d3 %>%
unnest(word_count_per_page)
head(d4)Visualisierung:
d4 %>%
ggplot(aes(x = word_count_per_page)) +
geom_histogram()library(easystats)
describe_distribution(d4$word_count_per_page)Categories:
- R
- map
- tidyverse