---
title: "Assembling EuReCo for Contrastive Research"
subtitle: "The Polish Piece"
author:
    - name: Piotr Bański
    - name: Nils Diewald
    - name: Marc Kupietz
    - name: Beata Trawiński
affiliation:
    address: IDS Mannheim
column_numbers: 2
contact:
    name: Piotr Bański
    department: Digital Linguistics / Grammar
    email: banski@ids-mannheim.de
    website: "https://www.ids-mannheim.de/"
    qrlink: >
      `r posterdown::qrlink("https://korap.ids-mannheim.de/instance/nkjp1m-sgjp", logo="kalamar_wbg.svg")`
output: 
  posterdown::posterdown_ids:
    self_contained: false
    keep_md: true

bibliography: references.bib
csl: "https://raw.githubusercontent.com/ICLC-10/Zotero/master/styles/ICLC-10.csl"
---

```{r setup, include=FALSE, echo=FALSE, message=FALSE, warning=FALSE}
knitr::opts_chunk$set(dev = 'svg', echo = FALSE, warning = FALSE)
source("common.R")
```
# Pilot study: LVC detetction

Identification of Light Verb Constructions using collocation analysis.

## Romanian

```{r pune-in, fig.cap='Collocation analysis for »pune în NN« (= to put in NN) in CoRoLa.'}
pune_in_ca_de = readRDS("pune_in_CA_de.rds")
pune_in_ca_de %>% show_simple_table_tr(10)
```

# Hungarian

```{r hoz, fig.cap='Collocation analysis for lemma hoz (=bring) with noun in sublative or illative – focus([hnc/p="FN.(SUB|ILL)"] {[hnc/l=hoz]})'}
hoz1 <- readRDS("hoz.Rda")
hoz1 %>%
  mutate(collocation=sprintf('<a href="%s">%s</a>', webUIRequestUrl, example)) %>%
  select(collocation, EN, logDice, pmi, ll) %>%
  dplyr::arrange(desc(logDice)) %>%
  dplyr::rename("LVC example" = "collocation") %>%
  dplyr::rename("EN (DeepL)" = "EN") %>%
#  head(50) %>%
  datatable(escape = F,
            extensions = c('Buttons'),
            rownames = FALSE,
            options = list(
              buttons = c('copy', 'csv', 'excel', 'pdf', 'print'),
              pageLength = 10,
              dom = ''
            )) %>%
    formatRound(columns=~logDice + pmi + ll, digits=1)
```

## Polish 


### da(wa)?ć + NOUN

```{r dac_ca_code, echo=TRUE, results = 'hide'}
new("KorAPConnection",  
    KorAPUrl = "https://korap.ids-mannheim.de/instance/nkjp1m-sgjp") %>%
collocationAnalysis(
  'focus({[nkjp/l="da(wa)?ć"] []{,5}} [ud/p=NOUN])',
  leftContextSize = 0,
  rightContextSize = 1, # relative to { ... } in focus(),
  addExamples = TRUE
)
```
```{r dac_ca_result, echo=FALSE}
collocationAnalysis(
  nkjp,
      'focus({[nkjp/l="da(wa)?ć"] []{,5}} [ud/p=NOUN])',
      leftContextSize = 0,
      rightContextSize = 1, # relative to { ... } in focus(),
      addExamples = TRUE
    ) %>%
  mutate(example=str_replace(example, "(</mark>)(\\W?\\w+)", "\\2\\1")) %>%
  show_table()
```
