Sentiment-Analyse-Modelle und Wörterbücher berücksichtigen nicht immer den spezifischen sportbezogenen Kontext, was zu einer suboptimalen Stimmungsschätzung führen kann.
Sport löst starke Emotionen aus, die die Ausdrucksweise von Stimmung verstärken und zu einer höheren wahrgenommenen Negativität führen können.
Trainierte Sentiment-Analyse-Modelle könnten aufgrund unvollständiger Abdeckung von sportbezogenem Inhalt in den Trainingsdaten die Genauigkeit der Stimmungsschätzung in diesem Kontext beeinträchtigen. Zum beispiel “Aggressive Kurven fahren” ist nicht negativ oder direkt mit “Anger” verbunden. Oder “er ist kriminell gut” in diesem Fall ist kriminell eher was positives.
Aus diesen Gründen wurden die Resultate dieser Methode nicht direkt präsentiert, sondern nur um die Validität der Resultate zu unterstützen.
kwic_all_dd <- read.csv("Inputs/kwic_results_all2.csv")
kwic_f_dd <- read.csv("Inputs/kwic_results_f2.csv")
kwic_m_dd <- read.csv("Inputs/kwic_results_m2.csv")
#tokens
kwic_all_toks <- kwic_all_dd %>%
corpus() %>%
tokens(remove_number=T, remove_punct=T) %>%
tokens_tolower()
kwic_f_toks <- kwic_f_dd %>%
corpus() %>%
tokens(remove_number=T, remove_punct=T) %>%
tokens_tolower()
kwic_m_toks <- kwic_m_dd %>%
corpus() %>%
tokens(remove_number=T, remove_punct=T) %>%
tokens_tolower()
# DFM
kwic_all_dfm <- kwic_all_toks %>%
dfm()
kwic_m_dfm <- kwic_m_toks %>%
dfm()
kwic_f_dfm <- kwic_f_toks %>%
dfm()
load("C:/Users/arnol/Desktop/UZH_Master/FS23/Forschungsseminar Politischer Datenjournalismus/auto_dictionaries_lsd.RData")
rm(list=setdiff(ls(), c("extendeddict_de",
"kwic_all_dd", "kwic_all_toks", "kwic_all_dfm",
"kwic_f_dd", "kwic_f_toks", "kwic_f_dfm",
"kwic_m_dd", "kwic_m_toks", "kwic_m_dfm")))
dict_sent_proksch <- dictionary(list
(positive = str_replace_all(extendeddict_de$pos,"ß", "ss"),
negative = str_replace_all(extendeddict_de$neg,"ß", "ss")))
dict_sent_proksch
Notizen: Nicht wirklich perfekt, manchmal zu kategorisch. Z.B. akzeptabel als positiv obwohl meistens nicht so positiv gebraucht.
all_sent_proksch <- tokens_lookup(kwic_all_toks, dict_sent_proksch, valuetype = "glob")
all_sent_proksch
all_sent_proksch_dfm <- dfm_lookup(kwic_all_dfm, dict_sent_proksch, valuetype = "glob")
all_sent_proksch_dfm
f_sent_proksch <- tokens_lookup(kwic_f_toks, dict_sent_proksch, valuetype = "glob")
f_sent_proksch
f_sent_proksch_dfm <- dfm_lookup(kwic_f_dfm, dict_sent_proksch, valuetype = "glob")
f_sent_proksch_dfm
m_sent_proksch <- tokens_lookup(kwic_m_toks, dict_sent_proksch, valuetype = "glob")
m_sent_proksch
m_sent_proksch_dfm <- dfm_lookup(kwic_m_dfm, dict_sent_proksch, valuetype = "glob")
m_sent_proksch_dfm
nrc <- read.delim("C:/Users/arnol/Desktop/UZH_Master/FS23/Forschungsseminar Politischer Datenjournalismus/NRC-Emotion-Lexicon/NRC-Emotion-Lexicon/OneFilePerLanguage/German-NRC-EmoLex.txt")
nrc <- dplyr::rename(nrc, word = German.Word)
nrc <- dplyr::select(nrc, word, anger, trust, fear, joy)
nrc_long <- nrc %>% pivot_longer(-word, names_to="sentiment", values_to="val")
nrc_long <- nrc_long %>% filter(val==1)
dict_sent_nrc <- as.dictionary(nrc_long)
dict_sent_nrc
Notizen: aggressiv im Kontext sport hat nicht unbedingt etwas mit Anger im negativen Sinn zu tun sondern kann auch sehr positiv sein.
all_sent_nrc <- tokens_lookup(kwic_all_toks, dict_sent_nrc, valuetype = "glob") %>%
dfm()
all_sent_nrc
all_sent_nrc_dfm <- dfm_lookup(kwic_all_dfm, dict_sent_nrc, valuetype = "glob")
all_sent_nrc_dfm
f_sent_nrc <- tokens_lookup(kwic_f_toks, dict_sent_nrc, valuetype = "glob") %>%
dfm()
f_sent_nrc
f_sent_nrc_dfm <- dfm_lookup(kwic_f_dfm, dict_sent_nrc, valuetype = "glob")
f_sent_nrc_dfm
m_sent_nrc <- tokens_lookup(kwic_m_toks, dict_sent_nrc, valuetype = "glob") %>%
dfm()
m_sent_nrc
m_sent_nrc_dfm <- dfm_lookup(kwic_m_dfm, dict_sent_nrc, valuetype = "glob")
m_sent_nrc_dfm
all_sent_nrc_df <- convert(all_sent_nrc, "data.frame") %>%
bind_cols(docvars(all_sent_nrc))
f_sent_nrc_df <- convert(f_sent_nrc, "data.frame") %>%
bind_cols(docvars(f_sent_nrc))
m_sent_nrc_df <- convert(m_sent_nrc, "data.frame") %>%
bind_cols(docvars(m_sent_nrc))
all_emotion_freq <- colSums(all_sent_nrc_df[, c("anger", "trust", "fear", "joy")])
f_emotion_freq <- colSums(f_sent_nrc_df[, c("anger", "trust", "fear", "joy")])
m_emotion_freq <- colSums(m_sent_nrc_df[, c("anger", "trust", "fear", "joy")])
f_emotion_prop <- f_emotion_freq / sum(f_emotion_freq)
m_emotion_prop <- m_emotion_freq / sum(m_emotion_freq)
f_emotion_percent <- f_emotion_prop * 100
m_emotion_percent <- m_emotion_prop * 100
emotion_comparison <- data.frame(Emotion = c("Anger", "Trust", "Fear", "Joy"),
Female_Percent = f_emotion_percent,
Male_Percent = m_emotion_percent)
emotion_comparison
all_sent_nrc_words <- tokens_select(kwic_all_toks, dict_sent_nrc , valuetype = "glob") %>%
dfm()
topfeatures(all_sent_nrc_words)
Emotion Female_Percent Male_Percent anger Anger 15.68913 15.79792 trust Trust 34.44583 34.49536 fear Fear 22.84948 23.01245 joy Joy 27.01555 26.69427
Resultate: Bei beiden Geschlechtern sind die unterschiedliche Emotionen sehr ähnlich present. Zu viele Konklusionen sollte man aber nicht ziehen weil eben im Sport ein spezielles vokabular gebraucht wird und aggressiv etwas positives sein kann.
f_sent_pos_freq <- colSums(f_sent_proksch_dfm[, c("positive")])
f_sent_neg_freq <- colSums(f_sent_proksch_dfm[, c("negative")])
m_sent_pos_freq <- colSums(m_sent_proksch_dfm[, c("positive")])
m_sent_neg_freq <- colSums(m_sent_proksch_dfm[, c("negative")])
f_sent_pos_prop <- f_sent_pos_freq / sum(f_sent_pos_freq, f_sent_neg_freq)
f_sent_neg_prop <- f_sent_neg_freq / sum(f_sent_pos_freq, f_sent_neg_freq)
m_sent_pos_prop <- m_sent_pos_freq / sum(m_sent_pos_freq, m_sent_neg_freq)
m_sent_neg_prop <- m_sent_neg_freq / sum(m_sent_pos_freq, m_sent_neg_freq)
vergleich <- data.frame(
Sentiment = c("Positive", "Negative"),
Female = c(f_sent_pos_prop, f_sent_neg_prop),
Male = c(m_sent_pos_prop, m_sent_neg_prop)
)
Auch hier keine grosse Unterschiede zwischen den Geschlechtern. Mehrheitlich wird positiv über sie berichtet. Der Anteil des Negativen ist sehr hoch aber sehr wahrscheinlich liegt das daran, dass die Sentimentanalyse für Sportberichte nicht unbedingt die angepasste Methode ist. Dennoc ist das positive Sentiment mehrheitlich präsent.