====== Ruční anotace korpusů ======
Návod jak připravit data pro anotátory a potom jimi označkovaná data dále zpracovat.
* Program pro anotaci sa nalézá na ''jakobsonovi'' v adresáři ''/usr/local/annotate''.
* Webové rozhraní běží na adrese [[http://utkl.ff.cuni.cz/annotate]]
===== Příprava dat =====
Data musí být v ''csts''. Máme-li vertikálu, použijeme program ''vert_csts.pl''. Konvence pro pojmenovávání adresářů je:
* ''vert-import'' --- původní data
* ''csts-import'' --- původní data převedená do ''csts'' připravená k importu do programu
* ''csts-export'' --- anotovaná data
* ''vert-export'' --- anotovaná data převedená do vertikály
Chceme-li využít na každý soubor dva anotátory, budeme potřebovat více adresářů:
* ''csts-merge-import'' --- slitá data od dvou anotátorů připravená k importu do programu
* ''csts-merge-export'' --- anotovaná slitá data
* ''vert-merge-export'' --- anotovaná slitá data převedená do vertikály
Převod z vertikály do ''csts'' provedeme klasickým příkazemmake-corp.sh -s vert-import -t csts-import -v -p45
Převod z ''csts'' zpět do vertikály provádíme příkazem ''csts_vert_annot.pl''.
===== Import dat =====
* Data pro každého anotátora označíme příponou ''-JP'', kde ''J'' je první písmeno jména a ''P'' je první písmeno příjmení.
* Přihlásíme se na ''jakobsona'' a provedeme import:cd .../csts-import
for ff in *-JP; do echo $ff; /usr/local/annotate/bin/csts-import-utkl.pl $ff; done
Pokud provádíme import opakovaně, použijeme přepínač ''%%--force%%'':
for ff in *-JP; do echo $ff; /usr/local/annotate/bin/csts-import-utkl.pl --force $ff; done
* Do souboru ''/usr/local/annotate/users'' přidáme uživatele. Login bude ''utkl-JP''. Struktura souboru ''users'' je
utkl-JP heslo file1 file2 file3 ...
Všechny soubory musí být na jednom řádku. Hotové soubory můžeme zakomentovat znakem ''#''.
===== Export dat =====
==== Starší metoda ====
* Předem si vytvoříme adresář ''csts-export''
* Přihlásíme se na ''jakobsona'' a provedeme export:cd .../csts-import
for ff in *-JP; do echo $ff; /usr/local/annotate/bin/csts-export.pl --verbose $ff > /dev/null; done
Vypisují se nám názvy souborů a chyby při převodu -- chybějící anotace. Záznam chyb posíláme anotátorovi, dokud vše nedoplní. Když vše projde bez chyb, uložíme hotové soubory do ''csts-export'':
for ff in *-JP; do echo $ff; /usr/local/annotate/bin/csts-export.pl --verbose $ff > ../csts-export/$ff; done
==== Novější metoda ====
Tato metoda kontroluje, jestli anotátor na soubor vůbec sáhl. Taky vytváří potřebné adresáře a zpracované soubory přsouvá do adresáře ''$path-import-done''
* Přihlásíme se na jakobsona.
* Přesuneme se do adresáře ''csts-import'' nebo ''merge-import''
* Soubory zkontrolujeme příkazemcheck-annot.sh
Pokud něco chybí, napíšeme anotátorovi, ať to opraví.
* Soubory exportujeme teprve **po provedení všech oprav**! Uděláme to příkazemexport-annot.sh
===== Sloučení dat od dvou anotátorů =====
* Vytvoříme adresář ''merge-import''
* Na '' jakobsonovi'' se přesuneme do adresáře ''csts-export'' a provedeme tuto akci:
paste | perl -pe 's/"utkl-.."/"utkl"/g' | merge-csts | remove-MM.pl > ../merge-import/
anebo spustíme tento skript:
#!/bin/bash
print_help() {
echo "Merge two annotations and prepare data for final annotation"
echo "Usage: $(basename "$0") [ -f from_dir ] [ -t to_dir ]"
echo " $(basename "$0") -h"
echo "Defaults: from_dir - current dir"
echo " to_dir - ../merge-import (must exist)"
echo "from_dir files: *-??"
echo "to_dir files: *-??-??"
exit 1
}
fdir="."
tdir="../merge-import"
while getopts f:ht: FLAG; do
case $FLAG in
f) fdir=$OPTARG ;;
h) print_help ;;
t) tdir=$OPTARG ;;
*) echo "Unknown option \"$1\""; print_help ;;
esac
done
ff=''
aa=''
cd $fdir
for gg in *-??; do
bb=${gg%-??}
if [ "x$aa" = "x$bb" ]; then
if [ ! -f $tdir/$ff${gg: -3} ]; then
echo "$ff${gg: -3}"
paste $ff $gg | perl -pe 's/"utkl-.."/"utkl"/g' \
| merge-csts | remove-MM.pl > $tdir/$ff${gg: -3}
fi
fi
aa=$bb
ff=$gg
done
* Slité a znovuanotované soubory exportujeme stejně jako původní soubory a nakonec je převedeme do formátu ''vert'' tímto příkazem:cd .../merge-export
mkdir -p ../vert-merge
for ff in *; do echo $ff; convert-annotation-to-vert.pl < $ff > ../vert-merge/$ff; done
anebo, je-li jich víc, paralelně:parallel-filter.sh -C convert-annotation-to-vert.pl -s . -t ../vert-merge -v
* Nakonec ještě opravíme ''invalidy'' s tagem ''%%XY-------------%%''.