Tento návod se týká korpusů do SYNv8 včetně.
csts a UTF-8.XML, musíme si ho převést na plain text Pavlovým (Vondřičkovým) programem.make-whole-corp-csts.sh.XML.&url; a &email; a odlepit < a > od okolních slov:parallel-filter.sh \ -C "perl -pe 's:<ref/>: &url; :g' | perl -pe 's:<email/>: &email; :g' \ | perl -pe 's/((\&[gl]t;)+)/ \$1 /g'" -p45 -s orig -t orig-url -v
/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.
in-utf8make-whole-corp-csts.sh se pouští s parametry -Eucs2 -M -f -v -p40:make-whole-corp-csts.sh -Eucs2 -M -f -v -p40
csts-rules-frazrl-rulh1-tag-vid-corr-M:make-whole-corp-csts.sh -Eucs2 -f -v -p40
csts-rules-frazrl-rulh1-tag-vid-corrremove-dupl-csts-mark.pl Mroot0sedremove-dupl-csts-mark.pl 0$FRAZRL_PREFIX/FRAZRLc4001a_dis_vetne_csts.x a c4001a_dis_fraz_csts.xremove-dupl-csts-mark-wrapper.pl:normalizeroot (root0 + root1)sedremove-dupl-csts-mark.pl 1normalize]disheu1sedremove1314.plremove-dupl-csts-mark.pl hnormalize]???featuramasednegr_kolokace_csts_ucs2.plcsts:cd csts-morf for ff in *; do check-csts.pl < $ff > /dev/null; done
for ff in *; do echo $ff; check-csts.pl < $ff > /dev/null; done [> ../error.txt]
parallel-filter.sh -C "check-csts.pl 16" -p10 -s csts-rules-frazrl-rulh1-tag-vid-corr -n
csts-morf:cmp-lines-csts.sh csts-morf csts-rules
csts2cnk.pl:mkdir -p ../vert-corr cd csts-rules-frazrl-rules1-rulh1-tag-vid-corr for ff in *; do echo $ff; csts2cnk.pl [-E] < $ff > ../vert-corr/$ff; done
nebo paralelně:
parallel-filter.sh -C "csts2cnk.pl [-E]" -s csts-rules-frazrl-rules1-rulh1-tag-vid-corr -t vert-corr -p40 -v
nebo
parallel-filter.sh -C "csts2cnk.pl [-E]" -s csts-kolok -t vert-kolok-corr -p40 -v
vert-CNK a do něj zkopírujeme hotové vertikály (s tabulátory), ale s příponou .vrtcd ../vert-corr
for ff in *.txt; do echo $ff; cp -p $ff ../vert-CNK/${ff%.txt}.vrt; done
nebo
for ff in *.txt; do echo $ff; cp -p $ff ../vert-kolok-CNK/${ff%.txt}.vrt; done
Pokud jsme vkládali entity &url; a &email;, je třeba je odstranit:
parallel-filter.sh -C 'grep -Pv "^\&url;\t" | grep -Pv "^\&email;\t" | cat -s' \ -p45 -s vert-corr -t vert-CNK -v
(pozor na tabulátory místo mezer). A pak ještě přejmenujeme .txt na .vrt:
for ff in *.txt; do mv $ff ${ff%.txt}.vrt; done
orig přikopírujeme soubory .txt a .json:cd ../vert-CNK
for ff in *.vrt; do ln -s ../orig/${ff%.vrt}.txt; done
for ff in *.vrt; do ln -s ../orig/${ff%.vrt}.json; done
vert-CNK vyrobíme soubory .vrt.json:cd .../vert-CNK for ff in *.vrt; do echo $ff; vrt2standoff.py $ff; done
Anebo paralelně:
parallel-mask.sh -C "vrt2standoff.py" -m ".*\.vrt$" -v -p40 -d.
../vert-CNK-vrt a soubory, které prošly, tam přesuneme:for ff in *.vrt.json; do echo $ff; mv ${ff%.vrt.json}.* ../vert-CNK-vrt; done
XML soubory:for ff in *.txt; do echo $ff; standoff2xml.py $ff; done
Anebo paralelně:
parallel-mask.sh -C "standoff2xml.py" -m ".*\.txt$" -v -p40 -d.
for ff in *.merged.xml; do gg=${ff%.merged.xml}; xml2vrt.py $ff | vrtcleaner.py -e i,b,u,hi \
| perl -pe "s/(\<doc)/\$1 name=$gg/" > ../vert-final/$gg; done
vrt2standoff.pyfor ff in *.vrt; do echo $ff; perl -i -pe 's/>/>/g' $ff; done for ff in *.vrt; do echo $ff; perl -i -pe 's/</</g' $ff; done
a zbytek ručně
standoff2xml.py…/vert-taggedvert-corr — nahradíme mezery podtržítky a zkonvertujeme do ISO Latin 2:cd vert-corr for ff in *; do echo $ff; tr ' ' '_' < $ff | cstocs --fillstring="ßßß" utf8 il2 > ../vert-tagged/$ff; done
případně paralelně:
cd .../korpus parallel-filter.sh -C "tr ' ' '_' | cstocs --fillstring="ßßß" utf8 il2" -s vert-corr -t vert-tagged -p40 -v
vert-synt zkopírujeme syntax.make-kolok-csts.sh. Výsledek je v adresáři csts-kolok. Převedeme je do vertikály do adresáře vert-kolok programem csts2cnk.pl:cd csts-kolok for ff in *; do csts2cnk.pl < $ff > ../vert-kolok/$ff; done
vert-cols a v něm shromažďujeme sloupce do výsledné vertikály:mkdir vert-cols
cd vert-CNK-vrt
for ff in *.vrt; do sed '1{/^$/d}' < $ff | cut -f1-4 > ../vert-cols/$ff.1-4; done
cd ../vert-kolok
for ff in *.txt; do sed '1{/^$/d}' < $ff | cut -f5 > ../vert-cols/${ff%.txt}.vrt.5; done
for ff in *.txt; do sed '1{/^$/d}' < $ff | cut -f6 > ../vert-cols/${ff%.txt}.vrt.6; done
cd ../vert-synt
for ff in *.txt; do sed '1{/^$/d}' < $ff | cut -f5- > ../vert-cols/${ff%.txt}.vrt.7-; done
vert-kolok-synt a poslepujeme sloupce:cd ../vert-cols
for ff in *.vrt.5; do paste ${ff%.5}.1-4 $ff ${ff%.5}.6 ${ff%.5}.7- > ../vert-kolok-synt/${ff%.5}; done
vrt2standoff.py.