# Dieser Code wird im Foliensatz nicht angezeigt und ist nur erforderlich,
# um gegebenenfalls fehlende Pakete nachzuladen:
# kable und kableExtra werden benötigt, um tabellarische Ausgaben zu generieren.
if (!"knitr" %in% rownames(installed.packages())) install.packages("knitr")
if (!"kableExtra" %in% rownames(installed.packages())) install.packages("kableExtra")

Initialisierung {.smaller}

library(polmineR)
library(data.table)

CWB, CQP und 'polmineR' {.smaller}

Suche nach Worten {.smaller}

count("GERMAPARL", query = '"Diskriminierung"', cqp = TRUE)
count("GERMAPARL", query = c('"Liebe"', '"Liebe" %c'), cqp = TRUE)

Reguläre Ausdrücke: Zeichenklassen {.smaller}

| Ausdruck | Beschreibung | |:-------:| --------------| | . |Ein Punkt (".") steht für ein beliebiges Zeichen | | \d | "digit" (Ziffer), d.h. 0 bis 9 |


count("GERMAPARL", '".iebe"', cqp = TRUE) %>% head()
count("GERMAPARL", '"\\d\\d\\d\\d"', cqp = TRUE) %>% head()

Reguläre Ausdrücke: Quantoren {.smaller}

| Ausdruck | Beschreibung | |:-------:| --------------| |?|Der voranstehende Ausdruck kommt kein- oder einmal vor.| |+|Der voranstehende Ausdruck tritt einmal oder mehrfach auf. | |*|Der voranstehende Ausdruck tritt keinmal oder beliebig oft auf.| |{n}|Der voranstehende Ausdruck tritt exakt n-fach auf.| |{min,}| Der voranstehende Ausdruck tritt mindestens min-fach auf.| |{min,max}|Der voranstehende Ausdruck tritt mindestens min-fach und maximal max-fach auf.| |{0,max}| Der voranstehende Ausdruck darf maximal max-fach vorkommen.|

Reguläre Ausdrücke: Beispiele I {.smaller}

count("GERMAPARL", query = '"Multikult.*"', cqp = TRUE, breakdown = TRUE) %>% head(n = 3)
count("GERMAPARL", query = '"[Mm]ultikult.*"', cqp = TRUE, breakdown = TRUE) %>% head(n = 3)

Reguläre Ausdrücke: Beispiele II {.smaller}

count("GERMAPARL", query = '"(Zu|Ein|Aus)wanderung.*"', breakdown = TRUE) %>% head()
count("GERMAPARL", query = '"Asyl(suchende|berechtigte|ant|anti)"', cqp = TRUE, breakdown = TRUE) %>% head()

CQP I: Grundlagen

Tokenstream mit positionalen Attributen {.smaller}

P <- partition("GERMAPARL", speaker = "Angela Merkel", lp = "15")
cpos_left <- P@cpos[1,1]
pAttributes <- c("word", "pos", "lemma")
tokenstream_list <- lapply(
  pAttributes,
  function(x) get_token_stream("GERMAPARL", pAttribute = x, left = cpos_left, right = cpos_left + 1000)
)
tokenstream_df <- as.data.frame(tokenstream_list)
colnames(tokenstream_df) <- pAttributes
tokenstream_df[["pos"]] <- gsub("^\\$", "\\\\$", tokenstream_df[["pos"]])
tokenstream_df[["cpos"]] <- 0L:1000L
tokenstream_df <- tokenstream_df[, c("cpos", pAttributes)]
DT::datatable(tokenstream_df)

CQP II: Suche im Tokenstream {.smaller}

Q <- '[pos = "NN"] "mit" "Migrations.*"'
C <- count("GERMAPARL", query = Q, breakdown = TRUE)
head(C[,c("match", "count", "share")])

CQP III: Quantoren {.smaller}

count("GERMAPARL", query = '"(Bundesm|M)inisterium" [] [pos = "NN"]', cqp = T, breakdown = T) %>% 
  head(n = 3) %>% subset(select = c("match", "count", "share"))
count("GERMAPARL", query = '"([Kk]riminell.*|Straftat.*)" []{0,5} "Asyl.*"', cqp = TRUE, breakdown = TRUE) %>%
  head(n = 3) %>% subset(select = c("match", "count", "share"))

CQP IV: Nachbarn {.smaller}

Q <- '("[tT]error.*" []{0,9} "[iI]slam.*" | "[iI]slam.*" []{0,9} "[tT]error.*")'
Y <- count("GERMAPARL", query = Q, cqp = TRUE)
Y[, "count"]

CQP: Ein Fall für alle polmineR-Methoden {.smaller}

options("polmineR.pagelength" = 6L)
kwic("GERMAPARL", query = '"Integration" []{0,5} ".*[Ss]cheiter.*"', cqp = TRUE)

CQP und kwic()-Methode {.smaller}

options("polmineR.pagelength" = 5L)
kwic("GERMAPARL", query = '"[iI]slam.*"', positivelist = "[tT]error.*", regex = T, cqp = T) %>%
  highlight (yellow = "[tT]error.*", regex = TRUE)

CQP: Ein Fall auch für dispersion()

dispersion("GERMAPARL", query = '"[rR]assis.*"', s_attribute = "party")

CQP: Ein Fall auch für cooccurrences() {.smaller}

cooccurrences("GERMAPARL", query = '"([mM]uslim.|[iI]slam*)"', cqp = TRUE) %>%
  data.table::as.data.table() %>% subset(rank_ll < 5) %>% DT::datatable() # Einbindung in Folie als htmlwidget

Fazit {.smaller}

partition("GERMAPARL", year = 2002:2009) %>% 
  cooccurrences(query = '"([mM]uslim.|[iI]slam*)"', cqp = TRUE)

Viel Erfolg!

Anhang: Das Stuttgart-Tübingen-Tagset (Auszug) {.smaller}

|Notation|Beschreibung|Beispiel| |:------:|------------|--------| |ADJA|attributives Adjektiv| [das] große [Haus]| |ART| bestimmter oder unbestimmter Artikel | der, die, das, ein, eine, ... | |NN| normales Nomen|Tisch, Herr, [das] Reisen| |NE|Eigennamen| Hans, Hamburg, HSV| |VVFIN|finites Verb, voll | [du] gehst, [wir] kommen [an] | |VVIMP|Imperativ, voll|komm [!]| |VVINF|Infinitiv, voll|gehen, ankommen| |VVIZU|Infinitiv mit ``zu'', voll| anzukommen, loszulassen| |VVPP|Partizip Perfekt, voll| gegangen, angekommen| |VAFIN|finites Verb, aux| [du] bist, [wir] werden |

Literatur {.smaller}



PolMine/UCSSR documentation built on June 13, 2022, 10:23 p.m.