UTF-8
a převážně ve vertikále.morfflex
s našimi vylepšeními.MorphoDiTou
.~tomas/syn2020/vert-bonito
~/PROJEKTY/INFRASTRUKTURA/syn2020/vert-SYN2015
cd ~tomas/syn2020/vert-bonito for ff in *; do echo $ff; ~/PROJEKTY/INFRASTRUKTURA/syn2020/bin/add-struct.pl $ff < $ff \ > ~/PROJEKTY/INFRASTRUKTURA/syn2020/vert-SYN2015/$ff; done
cd ~/PROJEKTY/INFRASTRUKTURA/syn2020 manatee-registry.sh -c. -f vert-SYN2015 -C
config:
PATH /net/chomsky/store/manatee-registry/syn2020-SYN2015-data ENCODING utf-8 INFO "Korpus SYN2015 s tokenizací a značkováním pro SYN2020, 20.6.2020" ATTRIBUTE word { TYPE "FD_FGD" } ATTRIBUTE space { TYPE "FD_FGD" } ATTRIBUTE lemma { TYPE "FD_FGD" MULTIVALUE y MULTISEP " " } ATTRIBUTE sublemma { TYPE "FD_FGD" MULTIVALUE y MULTISEP " " } ATTRIBUTE tag { TYPE "FD_FGD" MULTIVALUE y MULTISEP " " } ATTRIBUTE verbtag { TYPE "FD_FGD" MULTIVALUE y MULTISEP " " } ATTRIBUTE clspstpos { TYPE "FD_FGD" MULTIVALUE y MULTISEP " " } STRUCTURE doc { ATTRIBUTE name } STRUCTURE p STRUCTURE s
&url;
a &email;
a odlepit <
a >
od okolních slov:/usr/local/corp/xml2standoff
(na grimmovi)./cnk/common/tools/xml2standoff
..xml
.XML
→ plain text:for ff in *.xml; do echo $ff; python3 xml2standoff.py $ff; done
Nebo paralelně:
parallel-mask.sh -C xml2standoff.py -d . -m ".*\.xml$" -p45 -v
Kromě .xml
souborů dostaneme .txt
(plain text) a .json
.
mdita-correct
a conllu-in
orig
, extrahované .txt
soubory jsou zkopírované do in-utf8
&email;
a &url;
process_text.sh
používá tyto přepínače:-a add structures to the final corpus instead of removing them -D debug; save all intermediate results -h print this help and exit -l add 8 positions to tag (for LanGR - default) -L LanGR mode: in-utf8 is created from STDIN input intermidiate results and errors are saved in /tmp or work_dir result is sent to STDOUT do not use existing corp_dir as work_dir---it will be ERASED! -m add 6 positions to tag (for MDiTa) -n no syntax: script remove_structures doesn't expect synt columns -p <num> number of parallel threads; default is 1 -s <start> start the process in one of these dirs: in-utf8 (default) vert [vert-]morf [vert-morf-]simp [vert-morf-simp-]nosp [vert-morf-simp-nosp-]sgcr [vert-morf-simp-nosp-sgcr-]con [vert-morf-simp-nosp-sgcr-con-]sublm [vert-]vrbtg8 [vert-]rules [vert-rules-]mdita [vert-rules-mdita-conllu-]out -t <target> stop the process in one of these dirs (targets): [vert-]vrbtg8 [vert-]rules [vert-rules-]mdita [vert-rules-mdita-sublm-]agr (default) [vert-rules-mdita-conllu-]in -v be verbose: print the names of processed files, etc.
in-utf8
, proveď morfologii, pravidla, Mditu a závěrečné úpravy s finálními opravami a odstraněním mark-upu:process_text.sh -p45 -v
process_text.sh -p45 -v -s mdita -t in
in-utf8
, bez pravidel, připrav vstup pro syntax:process_text.sh -p45 -v -m -t in
process_text.sh -p45 -v -s out
process_text.sh -L -D
no_space_after_token_morphanal.pl
no_space_after_token_morphanal.pl
:cd vert-final for ff in *; do no_space_after_token_morphanal.pl ../in-utf8/$ff /dev/null < $ff > /dev/null; done
parallel-filter.sh -C check-vert-tag-v2020.pl -n -p10 -s vert-rules
CNK
, do kterého zkopírujeme hotové soubory a přejmenujeme je na .vrt
:mkdir CNK cd vert-final for ff in *.txt; do cp -p $ff ../CNK/${ff%.txt}.vrt; done cd ../CNK for ff in *.vrt; do ln -s ../orig/${ff%.vrt}.txt for ff in *.vrt; do ln -s ../orig/${ff%.vrt}.json
cd CNK parallel-mask.sh -C vrt2standoff.py -m ".*\.vrt$" -v -p45 -d.
.vrt.json
, se mohou odeslat.word
, space
, lemma
, sublemma
, tag
a verbtag
~tomas/syn2020/bin/Tools/priprav_morfanal_pro_bonito.pl
:cd /store/corp/SYNv9/SYN2020_predvyber/vert-morf-simp-nosp-sgcr-con-sublm-vrbtg8-rules for ff in *; do echo $ff; \ ~tomas/syn2020/bin/Tools/priprav_morfanal_pro_bonito.pl \ ../vert-morf-simp-nosp-sgcr-con/$ff < $ff > ../bonito/$ff; done
store/corp/SYNv9/SYN2020_predvyber
.process_text_grimm.sh
, který provede morfologickou analýzu, pravidla z rootu a potom tagování MorphoDiTou.vert-rules-mdita-sublm-agr
, se zbaví entit &email;
a &url;
a zkontroluje programem vrt2standoff.py
:cd vert-rules-mdita-sublm-agr rm -f ../vert-CNK/*.vrt* for ff in *; do echo $ff; perl -pe 's/<s>//' $ff | grep -vP "^</?[gps]/?>$" | grep -v '&url;' | grep -v '&email;' > ../vert-CNK/${ff%.txt}.vrt; done
a potom se známým způsobem zkontrolují soubory (.txt
a .json
musí být z adresáře ../orig
):
cd ../vert-CNK parallel-mask.sh -C "vrt2standoff.py" -m ".*\.vrt$" -v -p40 -d.
Ty, které prošly, se převedou do formátu pro manatee-registry.sh
tímto příkazem:
for ff in *.vrt.json; do echo $ff; echo "<doc file=\"${ff%.vrt.json}\">" | cat - ../vert-rules-mdita-sublm-agr/${ff%.vrt.json}.txt \ | cat - <(echo "</doc>") | grep -v "&(url|email);" > ../vert-rules-MorphoDiTa/${ff%.vrt.json}; done
manatee-registry.sh -c. -f vert-rules-MorphoDiTa -C
vert-rules-mdita-sublm-agr
, ale jenom ty, které prošly skriptem vrt2standoff.py
:cd vert-CNK for ff in *.vrt.json; do ln -s ../vert-rules-mdita-sublm-agr/${ff%.vrt.json}.txt ../vert-CNK-odeslat/${ff%.json}; done
cd vert-rules-mdita-sublm-agr
nebo
cd vert-CNK-odeslat
Podle toho, jestli kontrolujeme všechno, nebo jenom to, co prošlo Vondřičkou. Potom:
rm ../vert-CNK-corr/* for ff in *; do echo $ff; perl -pe 's/<s>//' $ff | grep -vP "^</?[gps]/?>$" > ../vert-CNK-corr/${ff%.txt}.vrt; done cd ../vert-CNK-corr ls *.vrt | parallel -j 45 "cat {} | no_space_after_token_morphanal.pl ../orig/{.}.txt /dev/null > /dev/null" 2>../errlog/short-files.log for ff in $(cut -c 6- ../errlog/short-files.log | cut -f1 -d':'); do echo $ff; rm ../vert-CNK-odeslat/${ff%.txt}.vrt; done
cd ../errlog cut -c6- short-files.log | cut -f1 -d':' | sort > short-files.lst
cd ../in-utf8 for ff in $(comm -3 <(ls) <(ls ../vert-CNK-odeslat/ | perl -pe 's/\.vrt/.txt/')); do cp -p $ff ../../SYN2020_oprava/in-utf8/; done
Programy se dají distribuovat na systémy, které splňují následující SW požadavky:
Distribuce se provádí v zazipovaném souboru, který vznikne spuštěním programu make-ver2020-distr.sh
v adresáři se zmrazenou verzí:
cd /usr/local/syn2020/versions/202105 make-ver2020-distr.sh
Archiv disamb-2020-distr-202105.zip
se zkopíruje na vzdálený stroj a rozbalí do adresáře, ve kterém má být umístěn celý balík. Potom se spustí program set-env.sh
:
cd distr_home/202105 bin/set-env
a objeví se hláška
Put .versyn2020.rc to your HOME and use the command bash --rcfile ${HOME}/.versyn2020.rc
Ještě je třeba zkontrolovat, jestli se správně přepsal soubor options.json
:
lh syn2020/morphodita-research/models/Current_Model/options.json
Pro běh programu je třeba nastavit prostředí a v případě, že lokální instalace MorphoDiTy vyžaduje ještě vlastní nastavení, je třeba spustit i to. Na sag.korpus.cz
je to
source /usr/local/morphodita-research/env/bin/activate