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-utf8
make-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-corr
remove-dupl-csts-mark.pl M
root0
sed
remove-dupl-csts-mark.pl 0
$FRAZRL_PREFIX/FRAZRL
c4001a_dis_vetne_csts.x
a c4001a_dis_fraz_csts.x
remove-dupl-csts-mark-wrapper.pl
:normalize
root
(root0
+ root1
)sed
remove-dupl-csts-mark.pl 1
normalize
]disheu1
sed
remove1314.pl
remove-dupl-csts-mark.pl h
normalize
]???featurama
sed
negr_kolokace_csts_ucs2.pl
csts
: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 .vrt
cd ../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.py
for 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-tagged
vert-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
.