====== Příprava textů pro experimenty s MorphoDiTou ======
* MorphoDiTa chce vertikálu
* Pracujeme v ''csts'' -- nástroje máme odladěné.
* Nejdříve vyrobíme z Etalonu/Ortofonu ''vert'' a z něj ''csts''.
===== Příprava trénovacích dat z Ortofonu =====
* Provedeme morfologickou analýzu se speciálním ''premorfo'' (mezery v poznámkách) a pouze s povinnými skripty z ''postmorfo'' a na závěr rozgenerujeme tagy na naše:
make-corp.sh -A1 -B0 -Eucs2 -p45 -s csts -t csts-morf -w -v
* Ovidujeme a pustíme povinné skripty z ''postdisamb'':mkdir csts-morf-vid
cd /usr/local/corp/aspect
./aspect-vert.pl -csts -utf8 /store/corp/Ortofon/ortofon-hybrid/csts-morf \
/store/corp/Ortofon/ortofon-hybrid/csts-morf-vid
cd -
corr-asp.sh -C1 -Eutf -fcsts -p45 -s csts-morf-vid -t csts-morf-vid-corr -v
* A pak ještě musíme znovu pustit ''remove-dupl-csts.pl'':
parallel-filter.sh -C remove-dupl-csts.pl -p45 -s csts-morf-vid-corr -t csts-morf-vid-corr-single -v
* A převést do ''vert'':
make-corp.sh -s csts-morf-vid-corr-single -t vert-morf-vid-corr-single -p45 -v
===== Příprava Etalonu na testování =====
* Provedeme morfologickou analýzu bez ''premorfo'' a pouze s povinnými skripty z ''postmorfo'':
make-corp.sh -A1 -B0 -Eucs2 -p45 -s csts -t csts-morf -v
anebo si vezmeme data trénování ''Morphodity'':
* Musíme odstranit 16. pozici:cd csts-morf
for ff in *; do echo $ff; perl -i -pe 's/(.{15})./$1/g' $ff; done
* Projedeme pravidly a zjistíme, které tagy vadí:
make-whole-corp-csts.sh -E ucs2 -trules -Trules -p45 -v
(for ff in csts-rules/*; do echo $ff; check-csts.pl < $ff > /dev/null; done) 2>&1 |\
grep -B1 Incorrect | grep csts-rules > seznam-vadnych.txt
a v seznamu zaměníme ''rules'' za ''morf''.
for ff in $(cat seznam-vadnych.txt; do (< $ff /usr/local/corp/bin/gc_ucs2_release.x \
--lex=/usr/local/corp/LEX_ucs2 --action=single --input=jh_csts --output=wide_csts \
---collocations=modified_subst --empty_positions=modified --trace_deletions=no \
---group=root0 >/dev/null) |& grep Tag | cut -f2 -d' ' | sort -u > add-JH.txt
* Vytvoříme ''add-JH-1.txt'' a ''add-JH-2.txt'', upravíme, slepíme k sobě a přidáme do ''CZ181001ag.txt'':cp add-JH.txt add-JH-1.txt
cp add-JH.txt add-JH-2.txt
perl -i -pe 's/-([1-9])$/=$1/' add-JH-1.txt
perl -i -pe 's/-//g' add-JH-1.txt
perl -i -pe 's/=/-/' add-JH-1.txt
paste -d' ' add-JH-1.txt add-JH-2.txt > add-JH.txt
a zkompilujeme LEXy
* Potom sjedeme výsledek pravidly a ''frazrl'':
make-whole-corp-csts.sh -E ucs2 -trules -Tfrazrl -p45 -v
* Je třeba odstranit hodnoty na 13. a 14. pozici a zrestaurovat negramatické kolokace (výhledově upravit skript, aby se to dělalo těsně před vidováním):
parallel-filter.sh -C "remove1314-utf8.pl | negr_kolokace_csts_ucs2.pl" -p45 \
-s csts-rules-frazrl -t csts-rules-frazrl-negr -v
rm -rf csts-rules-frazrl
mv csts-rules-frazrl-negr csts-rules-frazrl
* Ovidujeme a pustíme povinné skripty z ''postdisamb'':
mkdir csts-rules-frazrl-vid
cd /usr/local/corp/aspect
./aspect-vert.pl -csts -utf8 ~/PROJEKTY/INFRASTRUKTURA/Etalon/MorphoDiTa/csts-rules-frazrl \
~/PROJEKTY/INFRASTRUKTURA/Etalon/MorphoDiTa/csts-rules-frazrl-vid
cd -
corr-asp.sh -C1 -Eutf -fcsts -p45 -s csts-rules-frazrl-vid -t csts-rules-frazrl-vid-corr -v
* Zrušíme duplicity:
cd csts-rules-frazrl-vid-corr
for ff in *; do remove-dupl-csts.pl < $ff > $ff.new; mv $ff.new $ff; done
cd -
* Zkontrolujeme korektní ''csts'' a řádky:
parallel-filter.sh -C "check-csts.pl 16" -n -p45 -s csts-rules-frazrl-vid-corr
cmp-lines-csts.sh csts-morf csts-rules-frazrl-vid-corr
* Převedeme do ''vert''
* Vytvoříme testovací soubory pro MorphoDiTu:mkdir vert-test
cd vert-rules-frazrl-vid-corr
for ff in *; do sed '1{/^$/d}' $ff | cut -f2- > ../vert-test/$ff.2; done
cd ../../../Etalon/Verze/0.9/4/
for ff in *; do echo $ff; paste <(perl -pe 's/(\t.*)\t/$1 /' $ff) ../../../MorphoDiTa/vert-test/$ff.2 \
> ../../../MorphoDiTa/vert-test/$ff; done
* Opravíme ještě entity:grep -h '&' * | sort -u
for ff in *; do perl -i -pe 's/%/%/g' $ff; done
for ff in *; do perl -i -pe 's/&/&/g' $ff; done
for ff in *; do perl -i -pe 's/*/*/g' $ff; done
for ff in *; do perl -i -pe 's/[/[/g' $ff; done
for ff in *; do perl -i -pe 's/]/]/g' $ff; done
* Zkontrolujeme, jestli se nám soubory nerozjely:
cd ../../../MorphoDiTa/vert-test/
for ff in *.2; do tail -n3 ${ff%.2}; done | l