Table of Contents
Výroba korpusu s kolokacemi
Spouštění programu process_kolok.sh
- Program spouštíme na adresář
vert-rules-mdita-correct
(default) a výsledkem budevert-rules-mdita-kolok-sublm-agr
:process_kolok.sh -p45 -v
Spouštění programu až po sublm-agr
- Nejdřív musíme zpětně vyrobit formát
correct
, který ale bude v sobě už obsahovat závěrečné opravy. Pustíme tedy navert-rules-mdita-sublm-agr
programsublmagr2correct.pl
:parallel-filter.sh -C sublmagr2correct.pl -s vert-rules-mdita-sublm-agr -t vert-rules-mdita-correct -v -p45
- Potom pustíme obvykle
process_kolok
:process_kolok.sh -p45 -v
- Nakonec musíme spravit přebytečná
|
:cd vert-rules-mdita-kolok-sublm-agr for ff in $(grep -Pl "|$" *); do echo $ff; perl -i.bak -pe 's/\|\t(..)\|$/\t$1/' $ff; done for ff in *.bak; do echo ${ff%.bak}; sdiff -s -w230 ${ff%.bak} $ff; done | l rm *.bak
Porovnání dvou korpusů s kolokacemi
- Pracujeme s hotovými korpusy v adresáři
vert-rules-mdita-kolok-sublm-agr
- Soubory ze dvou adresářů sloučíme:
cd vert-rules-mdita-kolok-sublm-agr paste <(cut -f1-6 macek_blanokridl.txt) <(cut -f7- macek_blanokridl.txt) \ <(cut -f7- ../vert-rules-mdita-kolok-sublm-agr.sav/macek_blanokridl.txt) | perl -pe 's/\t+$//' \ | perl -pe 's/([^\t]\t\t)([^\t])/$1\t$2/' | l
- Výsledný soubor opatříme dalším sloupcem, který označuje typ rozdílu. K tomu slouží program
compare-kolok.pl
. - Výsledek uložíme v adresáři
vert-rules-mdita-kolok-compare
:cd vert-rules-mdita-kolok-sublm-agr mkdir ../vert-rules-mdita-kolok-compare for ff in *; do echo $ff; paste <(cut -f1-6 $ff) <(cut -f7- $ff) <(cut -f7- ../vert-rules-mdita-kolok-sublm-agr.sav/$ff) \ | perl -pe 's/\t+$//' | perl -pe 's/([^\t]\t\t)([^\t])/$1\t$2/' | compare-kolok.pl > ../vert-rules-mdita-kolok-compare/$ff; done
- Můžeme zkontrolovat, že řádky mají 10 tabulátorů:
cd ../vert-rules-mdita-kolok-compare cat * | grep -cP "^[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*$" cat * | grep -c .
- Pokud se liší, najdeme kde:
grep -v "^$" * | grep -vP "^[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*$" | cut -f1 | sort -u
a soubory znovu sjedeme nebo ručně opravíme.
- Rozdíly jsou označeny takto:
- E – úplná shoda (Equal)
- S – jedna kolokace je podřetězcem druhé (Substring)
- D – kolokace se liší (Difference)
- L – kolokace je pouze v novém značkování (Left)
- R – kolokace je pouze ve starém značkování (Right)
- 0 (nula) – slovo není součástí žádné kolokace
Přidání přísloví
Jde o mimořádný krok učiněný při přípravě SYNv9
. Poté, co byl celý korpus opatřen kolokacemi, se dodá ještě nová verze přísloví:
- Vstupní data jsou v
vert-rules-mdita-correct
(stejně jako při přidávání všech kolokací). - Spustí se upravený skript
process_prisloví.sh
:cd .../<korpus> process_prislovi.sh -v -p45
- Tento skript provede i závěrečné opravy a výsledky uloží do adresáře
vert-rules-mdita-prislovi-sublm-agr
. - Je třeba ještě sloučit tato přísloví se starými kolokacemi:
cd vert-rules-mdita-prislovi-sublm-agr for ff in *; do echo $ff; paste $ff <(cut -f7-8 ../vert-rules-mdita-kolok-sublm-agr/$ff) | perl -pe 's/[\t\ ]+$//' \ | cut -f1-8 > ../vert-prislovi-kolok/$ff; done
- Nevhodné překryvy nových a starých kolokací můžeme zkontrolovat programem
find-corrupt-kolok.pl
. Za tím účelem ale musíme vyrobit jiný formát, kde jsou všechny kolokace a soubory mají 10 sloupců:cd vert-rules-mdita-prislovi-sublm-agr for ff in *; do echo $ff; paste <(cut -f1-6 $ff) <(cut -f7-8 $ff) <(cut -f7-8 ../vert-rules-mdita-kolok-sublm-agr/$ff) \ | perl -pe 's/[\t\ ]+$//' | perl -pe 's/\t\t/\t\t\t/' > ../vert-prislovi-kolok-10/$ff; done
Pak provedeme kontrolu:
cd ../vert-prislovi-kolok-10 for ff in *; do find-corrupt-kolok.pl $ff < $ff; done