WARUM KWIC? —–

Das grundlegende Problem

Bei der Durchführung der ersten Analysen (STM, Feature-Score etc.), welche auf den ganzen Datensatz ski1 basieren ist mir ein Problem klar geworden: Im selben Artikel werden sehr oft weitere SportlerInnen erwähnt!

Den LiRI Datensatz habe ich anhand der Namen der SkimeisterInnen der letzten 20 Jahren gefiltert. Einmal mit einem Dictionary für Skifahrer und einmal mit einem Dictionary für Skifahrerinnen. Anschliessend habe ich eine Geschlechtsvariable hinzugefügt,beide Datensätze zu einem verbunden und bereinigt (ski1). Bei der Untersuchung der unique_ids ist mir aufgefallen, dass gewisse Artikeln eine Skifahrerin und einen Skifahrer erwähnten. An sich gäbe es da die Möglichkeit nur die Artikel mit unique_ids für die Analyse zu gebrauchen.

Aber das Problem ist, dass auch andere SportlerInnen (z.B. SkifahrerInnen die keine MeisterInnen sind oder nicht Schweizer SkifahrerInnen) in den selben Artikeln erwähnt werden. Dementsprechend ist es nicht möglich ein Artikel einem Geschlecht zuzuordnen.

Um die Genderanalyse im Skisport dennoch durchführen zu können habe ich mich dafür entschieden, KWIC zu gebrauchen. Dabei wurden die 15 Wörter vor und nach dem Namen der einzelnen SkifahrerInnen selektiert. Die Resultate des KWIC werde ich für die weiteren Analysen verwenden. 100% löst es das Problem wahrscheinlich nicht, dennoch ist die Geschlechtszuteilung damit viel präziser. Die damit gewonnene Präzision rechtfertigt auch den Verlust von Informationen, vor allem da der Datensatz von Anfang an extrem gross war.

Preliminaries —–

Daten —–

Mit ski1 und ski2 (uniques) gemacht!

ski1 <- read.csv("ski1.csv")
ski2 <- read.csv("ski2.csv")

Kewords in Context KWIC —–

Corpus erstellen —-

#to lower
ski1$text <- tolower(ski1$text)
ski2$text <- tolower(ski2$text)
#namen die Unklarheiten haben weil entweder als Adjektiv verwechselt werden können oder bei beiden Geschlechtern vorkommen
ski2 <- ski2 %>%
  mutate(text = gsub("lara gut","laragut", text)) %>%
  mutate(text = gsub("marc berthod","marcberthod", text)) %>%
  mutate(text = gsub("sylviane berthod","sylvianeberthod", text)) %>%
  mutate(text = gsub("pascale berthod","pascaleberthod", text))
#corpus erstellen
corpus_keyness <- corpus(ski1)
corpus_keyness2 <- corpus(ski2)

Preprocessing —-

vornamen <- c("didier", "urs", "daniel", "konrad", "bruno",  "tobias", "marc",  "stéphane",  "stephane", "dimitri", "silvan", "patrick",  "justin", "ami",  "markus", "christian",  "mauro", "reto", "beat", "vitus", "thomas", "luca", "sandro", "bernhard",  "fernando", "loïc", "loic", "gino", "marco", "ramon",   "gilles",  "cédric", "cedric", "josua", "marco", "noel", "reto", "ralph", "lars", "denis", "lenz","tamara","sonja", "marlies", "nadia", "tanja", "fabienne", "erika", "fränzi", "fraenzi", "franziska", "christine", "lilian", "eliane", "miriam", "marianne", "tina", "christina","aita", "andrea", "sylviane", "lara", "pascale", "aline", "martina", "rabea", "jessica", "nadja", "marina", "jasmine", "esther", "margaux", "wendy", "corinne", "dominique", "sabine", "jasmina", "denise", "rahel", "mélanie", "melanie", "priska", "nathalie", "vivianne",  "vivianne", "haerri", "camille", "rast", "luana", "flütsch", "luana", "fluetsch", "amélie", "klopfenstein", "amelie", "klopfenstein", "delia", "durrer", "noémie", "noemie", "delphine", "anuk")

Tokens —–

toks_keyness <- tokens(corpus_keyness, 
                            lowercase = TRUE, 
                            remove_symbols = TRUE,
                            remove_url = TRUE,
                            remove_separators = TRUE,
                            remove_punct = TRUE, 
                            remove_numbers = TRUE,
                            verbose = TRUE)

#stopwörter 
toks_keyness <- tokens_remove(toks_keyness, stopwords('de'), padding = TRUE)
toks_keyness <- tokens_remove(toks_keyness, pattern = vornamen, padding = TRUE)

#stemming
#toks_keyness <- tokens_wordstem(toks_keyness, language = "de") 
#ski2
toks_keyness2 <- tokens(corpus_keyness2, 
                            lowercase = TRUE, 
                            remove_symbols = TRUE,
                            remove_url = TRUE,
                            remove_separators = TRUE,
                            remove_punct = TRUE, 
                            remove_numbers = TRUE,
                            verbose = TRUE)

#stopwörter nicht rausnehmen
#toks_keyness2 <- tokens_remove(toks_keyness2, stopwords('de'), padding = TRUE)
#toks_keyness2 <- tokens_remove(toks_keyness2, pattern = vornamen, padding = TRUE)
#ski2
toks_keyness3 <- tokens(corpus_keyness2, 
                            lowercase = TRUE, 
                            remove_symbols = TRUE,
                            remove_url = TRUE,
                            remove_separators = TRUE,
                            remove_punct = TRUE, 
                            remove_numbers = TRUE,
                            verbose = TRUE)

#stopwörter nicht rausnehmen
#toks_keyness3 <- tokens_remove(toks_keyness3, stopwords('de'), padding = TRUE)

Keywords —-

#name männer
skifahrer <- c("cuche", "imboden", "défago", "albrecht", "hari", "kernen", "grünenfelder", "gini", "siebenthal", "zurbriggen", "küng", "murisier", "oreiller", "vogel", "spescha", "caviezel", "schmidiger", "feuz", "lüönd", "tumler", "aerni", "viletta", "kryenbühl", "niederberger", "schmed", "meillard", "caviezel", "odermatt", "zenhäusern", "simonet", "roulin", "noger", "mettler", "reymond", "grünigen", "mächler", "weber", "rösti", "corthay", "hächler", "marcberthod")

#name frauen 
skifahrerinnen <- c("müller", "nef", "öster", "styger", "pieren", "suter", "dicht", "aufdenblatten", "kummer", "volken", "gmür", "abderhalden", "weirather", "camastral", "dettling", "laragut", "gut-behrami", "bonjour", "schild", "grand", "pünchera", "jnglin-kamer", "kamer",  "nigg", "flury", "good", "givel", "holdener", "gisin", "suter", "feierabend", "danioth", "kopp", "meillard", "nufer", "gröbli", "härri", "rast", "flütsch", "klopfenstein", "durrer", "kolly", "darbellay", "brändli", "pascaleberthod", "sylvianeberthod")

KWIC Datensatz erstellen —-

#männer
kwic_results_m <- kwic(toks_keyness, pattern = skifahrer, window = 15) 
kwic_results_m$text <- paste(kwic_results_m$pre, kwic_results_m$post)
kwic_results_m$sex <- "Mann"
kwic_results_m.analysis <- kwic_results_m
kwic_results_m

#frauen
kwic_results_f <- kwic(toks_keyness, pattern = skifahrerinnen, window = 15)
kwic_results_f$text <- paste(kwic_results_f$pre, kwic_results_f$post)
kwic_results_f$sex <- "Frau"
kwic_results_f.analysis <- kwic_results_f

#datensatz beide
kwic_results_all <- rbind(kwic_results_m, kwic_results_f)

#daten speichern
#write.csv(kwic_results_all,"./Inputs/kwic_results_all.csv", row.names = FALSE)
#write.csv(kwic_results_f,"./Inputs/kwic_results_f.csv", row.names = FALSE)
#write.csv(kwic_results_m,"./Inputs/kwic_results_m.csv", row.names = FALSE)
#ski2
#männer
kwic_results_m2 <- kwic(toks_keyness2, pattern = skifahrer, window = 10) 
kwic_results_m2$text <- paste(kwic_results_m2$pre, kwic_results_m2$post)
kwic_results_m2$sex <- "Mann"
kwic_results_m2

#frauen
kwic_results_f2 <- kwic(toks_keyness2, pattern = skifahrerinnen, window = 10)
kwic_results_f2$text <- paste(kwic_results_f2$pre, kwic_results_f2$post)
kwic_results_f2$sex <- "Frau"
kwic_results_f2

#datensatz beide
kwic_results_all2 <- rbind(kwic_results_m2, kwic_results_f2)


#daten speichern
# write.csv(kwic_results_all2,"./Inputs/kwic_results_all2.csv", row.names = FALSE)
# write.csv(kwic_results_f2,"./Inputs/kwic_results_f2.csv", row.names = FALSE)
# write.csv(kwic_results_m2,"./Inputs/kwic_results_m2.csv", row.names = FALSE)
#ski2
#männer
kwic_results_m3 <- kwic(toks_keyness3, pattern = skifahrer, window = 15) 
kwic_results_m3$text <- paste(kwic_results_m3$pre, kwic_results_m3$post)
kwic_results_m3$sex <- "Mann"
kwic_results_m3

#frauen
kwic_results_f3 <- kwic(toks_keyness3, pattern = skifahrerinnen, window = 15)
kwic_results_f3$text <- paste(kwic_results_f3$pre, kwic_results_f3$post)
kwic_results_f3$sex <- "Frau"
kwic_results_f3

#datensatz beide
kwic_results_all3 <- rbind(kwic_results_m3, kwic_results_f3)


#daten speichern
# write.csv(kwic_results_all3,"./Inputs/kwic_results_all3.csv", row.names = FALSE)
#write.csv(kwic_results_f3,"./Inputs/kwic_results_f3.csv", row.names = FALSE)
#write.csv(kwic_results_m3,"./Inputs/kwic_results_m3.csv", row.names = FALSE)
length(unique(c(kwic_results_m2$docname, kwic_results_f2$docname)))

Bemerkungen:
\(\bullet\) jeder docname ist ein Artikel und text1 bei Männern ist gleich text1 bei Frauen
\(\bullet\) in den Datensätze mit einer 2 angehängt wurde noch enger gefiltert um die Validität der Resultate zu überprüfen. Also 10 Wörter vor und nach Erwähnung vom SkifahrerIn inklusive Stopwörter. Damit ist man noch sicherer, dass es wirklich um diese Person handelt.
\(\bullet\) in den Datensätzen mit einer 3 angehängt wurden die Stoppwörter nicht mehr entfernt, damit die Bedeutung der Sätze noch vorhanden ist. KWIC wurde aber auf 15 Wörter vor und nach dem Namen der SkifahrerInnen begrenzt (aber oft kommen die Namen auch am Anfang des Artikels vor, was heisst, dass es weniger wie 30 Wörter sind).