Startpunkt ist das AfD-Wahlprogramm im btw2021-Paket:
remotes::install_github("PolMine/btw2021")
library(btw2021)
length(afd2021)
Wir definieren einen Suchterm ...
tokenisieren das Wahlprogramm ...
w <- tokenizers::tokenize_words(afd2021, strip_punct = FALSE)
und bringen das in ein tabellarisches Datenformat
df <- data.frame(word = unlist(w))
df[["pos_id"]] <- 1:nrow(df)
Wir suchen die Treffer für unseren Suchterm
matches <- grep(query, df$word)
und ziehen die Wortkontexte aus der Tabelle
contexts <- list()
for (i in 1:length(matches)){
contexts[[i]] <- df[(matches[i] - 10):(matches[i] + 10),]
contexts[[i]][["match_no"]] <- i
}
df_sub <- do.call(rbind, contexts)
Nun weisen wir den Worten im Wortkontext die SentiWS-Gewichte zu. Dafür nutzen wir einen Ausschnitt aus der SentiWS-Tabelle.
senti_ws_min <- senti_ws[, c("word", "weight")]
senti_ws_min$word <- tolower(senti_ws_min$word)
Das verbinden wir jetzt.
pimped <- left_join(df_sub, senti_ws_min, by = "word")
Der einfachste Ansatz ist nun, die Wortgewichte aufzusummieren und das Ergebnis durch Division der Worte in der Tabelle zu normalisieren.
sum(pimped$weight, na.rm = TRUE) / nrow(pimped)
Startpunkt ist das AfD-Wahlprogramm im btw2021-Paket:
Wir definieren einen Suchterm ...
tokenisieren das Wahlprogramm ...
und bringen das in ein tabellarisches Datenformat
Wir suchen die Treffer für unseren Suchterm
und ziehen die Wortkontexte aus der Tabelle
Nun weisen wir den Worten im Wortkontext die SentiWS-Gewichte zu. Dafür nutzen wir einen Ausschnitt aus der SentiWS-Tabelle.
Das verbinden wir jetzt.
Der einfachste Ansatz ist nun, die Wortgewichte aufzusummieren und das Ergebnis durch Division der Worte in der Tabelle zu normalisieren.