Wie für die anderen Untersuchungen müssen auch hier die nötigen Bibliotheken geladen werden.
library(quanteda)
library(tidyverse)
library(udpipe)
Das lemmatisierte Korpus und die Stoppwörter können über RData-Dateien geladen werden.
load("RData/lemmatized_corpus.RData")
load("RData/custom_stopwords.RData")
Nach der Entfernung der Stoppwörter wird eine Document-Feature-Matrix erstellt.
docvars(programs, field="year") <- as.integer(docvars(programs, field="year"))
# Create tokens object for whole corpus. filter out stopwords.
program_toks <- tokens(programs,remove_punct = TRUE) %>% tokens_remove(custom_stops)
# Create dfm for corpus
program_dfm <- dfm(program_toks)
Für den zweiten Teil des Projektes wurde das Wörterbuch mit Klimabegriffen erweitert. Das verwendete Wörterbuch sieht dann folgendermaßen aus:
climate_dict <- c( "klimawandel",
"treibhaus*",
"CO2",
"erderwärmung",
phrase("erneuerbare energien"),
"2-Grad-Ziel",
"zwei-grad-ziel",
"klimakrise",
"klimakatastrophe",
"klimaschutz",
"abholzung",
phrase("fossile energie*"),
"atmosphäre",
"kohlenstoffdioxid",
"emission*")
Zunächst wird die Document-Feature-Matrix nach den Klimabegriffen gefiltert. Mithilfe der textstat_frequency
Funktion wird die Frequenz von Termen nach Partei aufgeführt. Dann kann ein Graph mit ggplot
erstellt werden, der zeigt, wie oft und von welcher Partei die Terme verwendet werden.
# Select climate terms and create dfm.
klima.party <- dfm(program_dfm, select = climate_dict)
## Plot frequency of each climate terms.
ggplot(textstat_frequency(klima.party, groups="party")) +
geom_bar(aes(fill=group, y=frequency, x=feature),position="stack", stat="identity")+
ggtitle("Häufigkeit der Klimabegriffe")+
theme_minimal()+
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+
labs(x = "Terme", y = "Häufigkeit", fill = "Partei")+
scale_fill_manual(values = c("blue", "#009933", "black", "red", "#FFFF00", "brown","#CC0066"))
Wie sich die Häufigkeit der Klimabegriffe über die Jahre entwickelt hat, kann folgendermaßen dargestellt werden: Zunächst müssen die Terme nach Jahr und Partei gruppiert werden. Das geschieht mit der Funktion textstat-frequency
. Die Spalte group
wird danach in zwei seperate Spalten year
und party
aufgesplittet.
klima.year <- textstat_frequency(dfm(program_dfm, select = climate_dict), groups=c("party", "year"))
# Add columns for parties and year
klima.year$party <- lapply(strsplit(klima.year$group, "[.]"), function(l) l[[1]])
klima.year$year <- lapply(strsplit(klima.year$group, "[.]"), function(l) l[[2]])
klima.year$year <- as.character(klima.year$year)
klima.year$party <- as.character(klima.year$party)
Mit diesen Informationen kann die Grafik erstellt werden.
# Plot frequency of terms over years.
ggplot(klima.year) +
geom_bar(aes(y=frequency, x=year, fill = party),
position="stack",
stat="identity")+
ggtitle("Klimabegriffe über Jahre")+
theme_minimal()+
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+
labs(y = "Frequenz", x = "Jahre", fill = "Partei")+
scale_fill_manual(values = c("blue", "#009933", "black", "red", "#FFFF00", "brown","#CC0066"))