Table of Contents
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í datacsts-import
— původní data převedená docsts
připravená k importu do programucsts-export
— anotovaná datavert-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 programucsts-merge-export
— anotovaná slitá datavert-merge-export
— anotovaná slitá data převedená do vertikály
Převod z vertikály do csts
provedeme klasickým příkazem
make-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
, kdeJ
je první písmeno jména aP
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 budeutkl-JP
. Struktura souboruusers
jeutkl-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
nebomerge-import
- Soubory zkontrolujeme příkazem
check-annot.sh <maska>
Pokud něco chybí, napíšeme anotátorovi, ať to opraví.
- Soubory exportujeme teprve po provedení všech oprav! Uděláme to příkazem
export-annot.sh <maska>
Sloučení dat od dvou anotátorů
- Vytvoříme adresář
merge-import
- Na
jakobsonovi
se přesuneme do adresářecsts-export
a provedeme tuto akci:paste <file1> <file2> | perl -pe 's/"utkl-.."/"utkl"/g' | merge-csts | remove-MM.pl > ../merge-import/<file3>
anebo spustíme tento skript:
- merge-anot.sh
#!/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 tagemXY-------------
.