====== 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; donePokud 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; doneVypisují 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; doneanebo, 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-------------%%''.