====== 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 bude ''vert-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 na ''vert-rules-mdita-sublm-agr'' program ''sublmagr2correct.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 (**E**qual)
* **S** -- jedna kolokace je podřetězcem druhé (**S**ubstring)
* **D** -- kolokace se liší (**D**ifference)
* **L** -- kolokace je pouze v novém značkování (**L**eft)
* **R** -- kolokace je pouze ve starém značkování (**R**ight)
* **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 .../
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