====== Jak na trtok ====== Zdroj: /ha/home/marsik/jak_na_trtok '' Jak pouzivat trtok ------------------ Kompilace) Je zapotrebi mit v pathu CMake. Jednou moznosti je stahnout si CMake z oficialnich stranek (http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz), zkompilovat jej a nekam si ho nainstalovat. Druhym resenim je si pridat do promenne PATH slozku ~marsik/cmake-prefix/bin, pripadne nejakou jeji kopii (cmake-prefix obsahuje pouze instalaci CMaku). Dalsi prerekvizitou je knihovna Threading Building Blocks. Distribuovana je jak v binarni tak zdrojove podobe. My si vystacime klidne i s binarkami (http://threadingbuildingblocks.org/uploads/78/172/3.0%20update%208/tbb30_221oss_lin.tgz). V pripade binarni instalace nas pak zajima skript bin/intel64/cc4.1.0_libc2.4_kernel2.6.16.21/tbbvars.sh, ve kterem bude potreba upravit cestu k adresari s instalaci a cely skript to pak chce osourcovat v .bash_profile (nastavi tak promenne prostredi, aby CMake a dalsi pomocnici pri kompilaci knihovnu nasli). Zbyle dve prerekvizity, Quex a Boost, uz resi Makefile v repozitari czengu. U Boostu je jen zapotrebi stahnout http://sourceforge.net/projects/boost/files/boost/1.47.0/ do $CZENG10_ROOT/mining/tools. U Quexu je pak dulezite mit nastavenou promennou prostredi QUEX_PATH na hodnotu $CZENG_ROOT/mining/tools/quex. Pri samotnem spousteni programu je pak navic zapotrebi mit nastavenou promennou prostredi TRTOK_PATH na $CZENG10_ROOT/mining/tools/trtok. V .bash_profile pak budes mit treba neco takovehleho: export PATH=~marsik/cmake-prefix/bin:$PATH source ~marsik/tbb30_20110704oss/bin/intel64/cc4.1.0_libc2.4_kernel2.6.16.21/tbbvars.sh export QUEX_PATH=$CZENG10_ROOT/mining/tools/quex export TRTOK_PATH=$CZENG10_ROOT/mining/tools/trtok kde CZENG10_ROOT je slozka, kde mas check-outnuty czeng10. Zdrojaky k trtoku jsou pak v $CZENG10_ROOT/mining/tools/trtok-src. V $CZENG10_ROOT/mining/tools je i Makefile s cilem trtok.compiled, ktery ti trtok zkompiluje a nainstaluje do $CZENG10_ROOT/mining/tools/trtok. Trenovani) Pred tim, nez budes moct trtok pouzivat na segmentaci dat, je zapotrebi ho natrenovat. Trenovaci data a parametry jsou jiz v instalaci pribaleny, takze staci spustit jen 'trtok train cs' a 'trtok train en'. Prvni parametr urcuje rezim behu (z tech nas budou zatim zajimat jen 'train' a 'tokenize'), druhy vybira tzv. tokenizacni schema (popis toho, jak ma trtok tokenizovat a segmentovat). Schemata jsou definovana v $CZENG10_ROOT/mining/tools/trtok/schemes, vic se o nich muzes dozvedet v $CZENG10_ROOT/mining/tools/trtok-src/README. Az trenovani sebehne pro oba jazyky, tak uz je trtok plne pripraven. Tokenizace) Pri tokenizaci se vola trtok s rezimem 'tokenize'. V zavislosti na tom, jake chces tokenizovat jazyky, vyberes schema 'cs' anebo 'en'. Z optionu jsou dulezite -p, ktery zpusobi, ze trtok zachova rozdeleni na odstavce, a -d, ktery zakaze trtoku vstup nejak dale tokenizovat a necha ho provest jen segmentaci (coz prave chceme). Dalsi zajimave optiony jsou -e, -E, -x a -X. Pomoci prvnich dvou optionu muzes nechat trtok expandovat entity, pokud jeste nejake v textu jsou. Option -e ty entity expanduje jen po dobu tokenizace a na vystupu je zase vrati tak, jak byly. Option -E entity expanduje permanentne. Dalsimi optiony muzes z textu vysekavat XML znacky. Option -x je schova jen po dobu tokenizace a do vystupu je zas vrati, option -X je odstrani permanentne. Pokud zavolas trtok jen tak, tak tokenizuje stdin a posila to do stdout. Kdyz mu das jako argumenty nejaky soubory, tak tokenizuje je. Standardne predpoklada u kazdyho koncovku .txt a vysledek pak ulozi do souboru s koncovkou .tok. Tohle chovani se da zmenit optionem -r, ktery ceka jako argument regularni vyraz a replacement string, oddelene jako v sedu nejakym uvozujicim znakem (typicky '/', ale muze to byt cokoliv; jelikoz je mozne si zvolit vlastni uvozovky, tak jsem ani neimplementovat escapovani backslashem). Trtok se pokusi namatchovat ten regularni vyraz na kazdem vstupnim souboru a nahradit to namatchovane tim replacement stringem (to je proste retezec, ve kterem jsou odkazy na capture groupy (zavorky) z regularniho vyrazu (\1, \2,...)). Priklad: # tady pouzivam '|' jako uvozovky misto '/', jelikoz lomeno potrebuju do # regularniho vyrazy trtok tokenize cs/generic -mdEX -r '|original/(.*)\.txt|tokenized/\1.tok|' \ original/*-cs.txt Soubory lze, jak je videt vyse, davat primo na command linu. Alternativou je cesty k souborum ulozit do souboru (kazdy na sve radce). Na tyhle filelisty se pak muzes odvolat optionem -l. Kdyz si vyberes filelist -, tak cte trtok cesty k souborum ze stdin. Priklad: find original -name '*-cs.txt' \ | $TRTOK_PATH/trtok tokenize en -pdEX \ -r '|original/(.*)\.txt|tokenized/\1.tok|' -l - Asi by bylo prakticke spoustet tokenizaci nejak hromadne pro vice souboru najednou, jako je tomu vyse. Doba inicializace trtoku totiz odpovida dobe, behem ktere stihne tokenizovat ~35KB dat. Kdyby neco nefungovalo, tak napis (jiri.marsik89@gmail.com). ''