| Marc Kupietz | 3df159b | 2021-03-05 08:51:54 +0100 | [diff] [blame] | 1 | hc_theme <- if(require(idsThemeR)) { |
| 2 | idsThemeR::hc_theme_ids_light() |
| 3 | } else { |
| 4 | hc_theme_hcrt() |
| 5 | } |
| Marc Kupietz | 9bb5008 | 2022-02-18 16:38:10 +0100 | [diff] [blame] | 6 | rsr <- new("KorAPConnection", verbose = TRUE, accessToken = NULL) |
| Marc Kupietz | b925f04 | 2021-03-02 07:45:30 +0100 | [diff] [blame] | 7 | vc <- "(textType = /Zeit.*/ | textTypeRef=Plenarprotokoll) & availability!=QAO-NC-LOC:ids & creationDate in" |
| Marc Kupietz | f46a137 | 2022-08-29 13:54:48 +0200 | [diff] [blame] | 8 | years <- c(2005:2021) |
| Marc Kupietz | fc71518 | 2021-03-02 08:12:59 +0100 | [diff] [blame] | 9 | from <- 2005 |
| Marc Kupietz | f46a137 | 2022-08-29 13:54:48 +0200 | [diff] [blame] | 10 | to <- 2021 |
| Marc Kupietz | 0045520 | 2020-10-21 14:13:36 +0200 | [diff] [blame] | 11 | query <- "Aluhut" |
| 12 | logfile <- file("frequency_curves.log", open = "a") |
| 13 | |
| Marc Kupietz | a47d150 | 2023-04-18 15:26:47 +0200 | [diff] [blame] | 14 | # override log_info in RKorAPClient to get some progress info |
| 15 | log_info <- function(v, ...) { |
| Marc Kupietz | 0045520 | 2020-10-21 14:13:36 +0200 | [diff] [blame] | 16 | original = paste0(...) |
| Marc Kupietz | 584ae5d | 2021-03-02 08:14:04 +0100 | [diff] [blame] | 17 | detail <- if (str_detect(original, "Searching.*in ([0-9]{4})")) { |
| Marc Kupietz | 0045520 | 2020-10-21 14:13:36 +0200 | [diff] [blame] | 18 | str_replace(original, ".*in ([0-9]{4}).*", "Suche in \\1") |
| Marc Kupietz | 584ae5d | 2021-03-02 08:14:04 +0100 | [diff] [blame] | 19 | } else if (str_detect(original, "Getting size.*in ([0-9]{4})")) { |
| 20 | str_replace(original, ".*in ([0-9]{4}).*", "Korpusgröße \\1") |
| Marc Kupietz | 0045520 | 2020-10-21 14:13:36 +0200 | [diff] [blame] | 21 | } else { |
| 22 | "Randverteilung" |
| 23 | } |
| Marc Kupietz | 584ae5d | 2021-03-02 08:14:04 +0100 | [diff] [blame] | 24 | incProgress(1 / (2 * length(query) * length(years) + length(years)), detail = detail) |
| Marc Kupietz | 0045520 | 2020-10-21 14:13:36 +0200 | [diff] [blame] | 25 | cat(original, file = logfile) |
| 26 | flush(logfile) |
| 27 | } |
| 28 | |
| Marc Kupietz | a47d150 | 2023-04-18 15:26:47 +0200 | [diff] [blame] | 29 | assignInNamespace("log_info", log_info, "RKorAPClient") |
| Marc Kupietz | 0045520 | 2020-10-21 14:13:36 +0200 | [diff] [blame] | 30 | |
| 31 | plotHighchart <- function(query = c("Tolpatsch", "Tollpatsch"), |
| Marc Kupietz | b925f04 | 2021-03-02 07:45:30 +0100 | [diff] [blame] | 32 | vc = "(textType = /Zeit.*/ | textTypeRef=Plenarprotokoll) & availability!=QAO-NC-LOC:ids & creationDate in" |
| 33 | , |
| Marc Kupietz | 0045520 | 2020-10-21 14:13:36 +0200 | [diff] [blame] | 34 | years = years, |
| 35 | as.alternatives = F, |
| 36 | conf.level = 0.95, |
| 37 | kco = rsr) { |
| 38 | hc <- frequencyQuery(kco, |
| 39 | query, |
| 40 | paste(vc, years), |
| 41 | as.alternatives = as.alternatives) %>% |
| 42 | hc_freq_by_year_ci(as.alternatives, smooth = T) %>% |
| Marc Kupietz | f7f5b39 | 2021-03-02 08:13:36 +0100 | [diff] [blame] | 43 | hc_yAxis(title = list(text = "Instanzen pro Million Wörter")) %>% |
| Marc Kupietz | 3df159b | 2021-03-05 08:51:54 +0100 | [diff] [blame] | 44 | hc_add_theme(hc_theme) %>% |
| Marc Kupietz | b925f04 | 2021-03-02 07:45:30 +0100 | [diff] [blame] | 45 | hc_caption(text = paste( |
| 46 | "Frequenzverläufe (mit 95%-Konfidenzbändern) im", |
| 47 | "<a href='http://www.dereko.de'>Deutschen Referenzkorpus DeReKo</a>", |
| Marc Kupietz | f46a137 | 2022-08-29 13:54:48 +0200 | [diff] [blame] | 48 | "(virtuelles Korpus: <a href='https://korap.ids-mannheim.de/doc/corpus'>DeReKo-KorAP-2022-I</a>", |
| Marc Kupietz | b925f04 | 2021-03-02 07:45:30 +0100 | [diff] [blame] | 49 | "eingegrenzt auf Zeitungen, Zeitschriften und Plenarprotokolle).", |
| 50 | "Klicken sie die einzelnen Datenpunkte an, um entsprechende KorAP-Suchen zu starten." |
| 51 | )) |
| 52 | |
| Marc Kupietz | 0045520 | 2020-10-21 14:13:36 +0200 | [diff] [blame] | 53 | hc |
| 54 | } |
| 55 | |
| Marc Kupietz | f46a137 | 2022-08-29 13:54:48 +0200 | [diff] [blame] | 56 | generateHighchart <- function(wordParam, from=2005, to=2021) { |
| Marc Kupietz | fc71518 | 2021-03-02 08:12:59 +0100 | [diff] [blame] | 57 | years <<- c(from:to) |
| Marc Kupietz | 0045520 | 2020-10-21 14:13:36 +0200 | [diff] [blame] | 58 | if (wordParam != "") { |
| Marc Kupietz | 133b627 | 2022-02-18 16:38:39 +0100 | [diff] [blame] | 59 | query <<- strsplit(wordParam, " *, *") |
| Marc Kupietz | 0045520 | 2020-10-21 14:13:36 +0200 | [diff] [blame] | 60 | withProgress(message = 'Berechnung läuft: ', value = 0, { |
| 61 | hc <- plotHighchart(query, vc , years) |
| 62 | }) |
| 63 | hc |
| 64 | } |
| 65 | } |
| 66 | |
| 67 | |
| 68 | function(input, output, session) { |
| 69 | observe({ |
| 70 | queryParams <- parseQueryString(session$clientData$url_search) |
| Marc Kupietz | fc71518 | 2021-03-02 08:12:59 +0100 | [diff] [blame] | 71 | if (!is.null(queryParams[['from']])) { |
| 72 | from <- queryParams[['from']] |
| 73 | updateSliderInput(session, "from", value = from) |
| 74 | } else { |
| 75 | from <- 2005 |
| 76 | } |
| 77 | if (!is.null(queryParams[['to']])) { |
| 78 | to <- queryParams[['to']] |
| 79 | updateSliderInput(session, "to", value = to) |
| 80 | } else { |
| Marc Kupietz | f46a137 | 2022-08-29 13:54:48 +0200 | [diff] [blame] | 81 | to <- 2021 |
| Marc Kupietz | fc71518 | 2021-03-02 08:12:59 +0100 | [diff] [blame] | 82 | } |
| Marc Kupietz | 0045520 | 2020-10-21 14:13:36 +0200 | [diff] [blame] | 83 | if (!is.null(queryParams[['q']])) { |
| 84 | paramWord <- queryParams[['q']] |
| 85 | updateTextInput(session, "q", value = paramWord) |
| 86 | output$hcontainer <- |
| Marc Kupietz | fc71518 | 2021-03-02 08:12:59 +0100 | [diff] [blame] | 87 | renderHighchart(generateHighchart(paramWord, from, to)) |
| Marc Kupietz | 0045520 | 2020-10-21 14:13:36 +0200 | [diff] [blame] | 88 | } |
| 89 | }) |
| Marc Kupietz | fc71518 | 2021-03-02 08:12:59 +0100 | [diff] [blame] | 90 | |
| Marc Kupietz | 0045520 | 2020-10-21 14:13:36 +0200 | [diff] [blame] | 91 | observeEvent(input$goButton, |
| 92 | { |
| 93 | output$hcontainer <- |
| Marc Kupietz | fc71518 | 2021-03-02 08:12:59 +0100 | [diff] [blame] | 94 | renderHighchart(generateHighchart(isolate(input$q), isolate(input$from), isolate(input$to))) |
| Marc Kupietz | 0045520 | 2020-10-21 14:13:36 +0200 | [diff] [blame] | 95 | }) |
| Marc Kupietz | fc71518 | 2021-03-02 08:12:59 +0100 | [diff] [blame] | 96 | |
| Marc Kupietz | 0045520 | 2020-10-21 14:13:36 +0200 | [diff] [blame] | 97 | } |