Wiki spuštěna 24. 7. 2025

Trénovací a testovací korpus

Příprava testovacího korpusu

Příprava textů pro anotátory

  • Adresář /corp/anotace na grimmovi.
  • Sjet pomocí make-whole-corp.sh až k vert-rules-frazrl.
  • Udělat vert-rules-frazrl-rules:
    $ make-corp.sh -s vert-rules-frazrl -t vert-rules-frazrl-rules -i wide_vertical -o wide_vertical -n -v -p8
  • Odstranit zbytečné značky:
    annot-prep-vert.sh < /corp/syn2010/vert-rules-frazrl-rules/<file> \
      > .../SCI/vert/<file>
  • Převést do csts:
    $ cd .../SCI
    $ make-corp.sh -s vert -t csts -g -v -p8
  • Vybrat vhodné soubory pomocí x-rate-vert.sh:
    $ x-rate-vert.sh | sort -n -k2 | cut -f1 -d":" | head -28 | xargs cat | grep -c '.'
  • Převést do utf-8:
    $ for ff in $(x-rate-vert.sh | sort -n -k2 | cut -f1 -d":" | head -28); do echo $ff; \
    cstocs il2 utf8 < ../csts/$ff > ~/PROJEKTY/GACR1012/data/SCI-import/$ff; done
  • Zarovnat délku souborů pomocí long-name.sh:
    $ cd .../SCI-import
    $ long-name.sh
  • Nadělat linky pro všechny anotátory pomocí distribute.sh (nejdřív upravit!).
  • Počty tagů pro jednotlivé anotátory vyladit pomocí count-multi-tags.pl:
    $ for ff in VH MK ZN AB JK JN MB PK; do echo -n "$ff "; cat ????????-$ff | count-multi-tags.pl; done
  • Přesunout se na jakobsonovi do adresáře s anotací:
    cd /usr/local/corp/annotate
  • Provést import:
    bin/csts-import-utkl.pl --force ~/PROJEKTY/GACR1012/data/PUB-import/<file>
  • Upravit soubor users.

Export oanotovaných textů

  • Přesunout se na jakobsonovi do adresáře s původními texty:
    $ cd ~/PROJEKTY/GACR1012/data/PUB-import
  • Provést export:
    $ for ff in *-AP; do echo $ff; /usr/local/corp/annotate/bin/csts-export.pl --verbose $ff \
      > ../PUB-export/$ff; done
  • Kontrola anotace:
    $ for ff in *-AP; do echo -n $ff; (/usr/local/corp/annotate/bin/csts-export.pl \
      --verbose $ff > /dev/null) |& grep -c 'Warning' | xargs -0 printf "%7s"; done

Sloučení výsledků

  • přesunout se do adresáře s exportovanými texty:
    $ cd ~/PROJEKTY/GACR1012/data/PUB-export
  • vytvořit nové soubory k importu do anotačního programu:
    $ cd ~/PROJEKTY/GACR1012/data/korpus-cmp
    $ paste <file1> <file2> | perl -pe 's/"utkl-.."/"utkl"/g' | merge-csts | remove-MM.pl \
    > ../merge-import/<file3>

    anebo ještě lépe použít skript:

    merge-annot.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 (csts-export)"
        echo "          to_dir - ../merge-import"
        echo "from_dir files: *-??"
        echo "to_dir files: *-??-??"
        exit 1
    }
     
    fdir="."
    tdir="../merge-import"
    ddir="../merge-import-done"
    zdir="../merge-zero"
     
    while getopts f:h FLAG; do
        case $FLAG in
    	f) fdir=$OPTARG ;;
    	h) print_help ;;
    #	t) tdir=$OPTARG; ddir=$tdir-done; zdir=${tdir%-import}-zero ;;
            *) echo "Unknown option \"$1\""; print_help ;;
        esac
    done
     
    cd $fdir
     
    mkdir -p $tdir;
    mkdir -p $ddir;
    mkdir -p $zdir;
     
    ff=''
    aa=''
    cd $fdir
    for gg in *-??; do
        bb=${gg%-??}
        if [ "x$aa" = "x$bb" ]; then
    	if [[ ! -f $tdir/$ff${gg: -3}  ]] && [[ ! -f $ddir/$ff${gg: -3} ]] && [[ ! -f $zdir/$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
  • importovat, opravit a exportovat nové soubory do merge-export
  • převést do vertikály v adresáři …/compare/merge:
    $ cd ../merge-export
    $ prep-for-tag-comparison.sh < <file>-XX-YY | cat -s > ../../compare/merge/<file>

    nebo ještě lépe

    $ for ff in *; \
      do if [[ ( ! -f ../../compare/merge/${ff%-??-??}.fordiff ) && \
      ( ! -f ../../compare/merge/archiv/${ff%-??-??}.fordiff ) ]]; \
      then echo $ff; \
      prep-for-tag-comparison.sh < $ff | cat -s > ../../compare/merge/${ff%-??-??}; \
      fi; done

    a

    $ for ff in *; \
      do if [[ ( ! -f ../../compare/merge/${ff%-??-??}.fordiff ) && \
      ( ! -f ../../compare/merge/archiv/${ff%-??-??}.fordiff ) ]]; \
      then echo $ff; \
      prep-for-tag-comparison.sh < $ff | cat -s > ../../compare/merge/${ff%-??-??}.fordiff; \
      fi; done
  • vyhledat invalid a opravit; porovnar s .fordiff a opravit lemmata

Dodatečné opravy

  • pustit na to Milenino FREKVENCE/negr_kolokace_rl_vert
  • zkontrolovat skriptem check-vert.pl
  • široko daleko: opravit tag na Dg——-1A—-
  • zkontrolovat všechna slova z dokumentu POS
  • se mnou
  • potáhne – lemma
  • potřeba – tag
  • vole – tag
  • za svobodna – lemma i tag
  • naše koně – u naše dát M a příznak 7

Závěrečné kontroly

  • Zkontrolovat shodu AA.* NN.* a NN.* AG.*:
    $ cd /corp/vert-done
    $ for ff in *; do echo $ff; check-adj-noun.pl < $ff | grep --color=always "[^\ ]*/[^\ ]*"; done | l -R
    $ for ff in *; do echo $ff; check-noun-adg.pl < $ff | grep --color=always "[^\ ]*/[^\ ]*"; done | l -R

Příprava trénovacího korpusu z PDT

Příprava dat

  • PDT pouze morfologicky označkované: /data/PDT-data/variables_nodisamb
  • u těchto dat se rozgenerují X-ka, sjede se to pravidly, tagy se zjednoduší (annot-prep-vert.sh) a rozdělí se to na dvě sady: pro dva anotátory a pro jednoho anotátora (provede Tomáš): /data/PDT-data/variables_nodisamb/prac/vert-double-anot/ a /data/PDT-data/variables_nodisamb/prac/vert-single-anot/
  • data se převedou do csts
  • zkopírují se do ~/skoumal/PROJEKTY/GACR1012/data/PDT_nod_double-import a ~/skoumal/PROJEKTY/GACR1012/data/PDT_nod_single-import
  • srovnají se délky souborů: long-name.sh (předem upravit)
  • priřadí se anotátorům: distribute.sh (předem upravit)

Rozdělení práce

  • PDT_nod_double tagují Marie Kelblerová (MK) a Pavel Kopřiva (PK)
  • PDT_nod_single tagují Marie Kelblerová (MK) a Pavel Kopřiva (PK)
  • Vadné texty:
    lnd92254_009 lnd92255_056 lnd92258_053 lnd92258_076 lnd92258_084 lnd92259_056

QR Code
QR Code wiki:user:skoumal:anotace (generated for current page)