$title PLIN015 - Překlenovací seminář $date 2014-04-17 12:44:08 $1 Seminární úkol z ukoru $2 makefile - posloupnost příkazů [c cíl: závislosti příkazy corpus.vert: zdrojova_data.zip unzip zdrojova_data.zip zdrojova_data.txt ./process.py zdrojova_data.txt ] - použití: napsat v daném adresáři [c make], systém se podívá, jestil tam je makefile, příp. ho spustí - makefile by měl rešit uplně všechny operace, které s těmi daty děláme - makefile by neměl stahovat zdroj. data - naším úkolem je vytvořit vertikál se standardními strukturními značkami - napsat buď třeba v pythonu, nebo v bashi, nebo tak - po udělání vertu připravit konfigurační soubor (registry soubor) - popisuje jak se korpus jmenuje, jaké atributy tam jsou a tak - v ukazce chybi nazev a atribut, ktery rika, kde je vertikal - využívat co nejvíc strukturu textu, kterou máme na vstupu - tokenisace - /corpora/ske-toolkit/unitok.py -vyhodi vertikal - kompilace korpusu: [c compilecorp konfiguracni_soubor] Zkušební vytvoření korpusu + seznamit se s daty - stojí za to zachovat data uvedená na zdrojovem webu (tabulka s množstvím posic a podobně) + na albě (některé nástroje nejsou na auroře) v uvedené složce + přečíst si dokumentaci + podivat se na data, podle toho, jak jsou strukturovana je chci nejakym scriptem dostat do vertikalu - pokud jsou data plain text, prohnat tokenisatorem (unitok.py) - kdy to jsou uz označkovaná data + vytvořit vertikál - python / bash / XSLT - nejlepší asi python + vytvořit kofigurační soubor - podívat se třeba do /corpora/registry a zkopirovat z toho nejaky konifgurak pro stejny jazyk a jen lehce upravit popisky - smazat všechno, čemu nerozumime + zkompilovat - compilecorp ./polish_pnk - --recompile-corpus: prekompiluje práce s komprimovanými soubory - normální příkazy ale pro komprimované shity - z-, vz-, xz- - zcat, zcav, zcmp, zgrep - program tar = (tape archiven) - balík souborů, víc souborů v jednom tar filu - při komprimování se na balík tar spustí gzip či neco -> - gzip, bzip2, xz - gunzip, bunzip, ... - všechny tyhle mažou zdroj - lze rovnou dělat tar a komprimovat - [c tar xzvf filename] - vytvoří - creat, gzip, - pro extract místo 'c' je 'x' dynamic attribute awk words.vert: ann_words.xml.gz \ gunzip ann_words.xml.gz \ epgrep \ sed \ sed ...\ > words.vert $ make nebo $ make words.vert aby šlo ./soubor.py chmod +x / musi byt spustitelny prvni radek musi byt shebang #!/usr/bin/python paralelni korpusy $1 Shrnuti - nejhorsi pripad u algoritmu nas nezajima, pokud neco vime o datech, takze muzeme predpokladat - obecne polynomialni slozitost je jeste pouzitelna - kvadraticka slozitost - typicky prochazeni tabulky - exponencialni slozitost - typicky prolamovani klicu - u blbych slozitosti nam vadi rychlost rustu vzhledem k delce rustu - problem - zadani - slozitost problemu je slozitost optimalniho algoritmu, jenz resi dany problem - algoritmu - pristupy k reseni problemu - slozitost alg. je slozitost konkretni instance implementace daneho algoritmu - hashovaci fce - neda se zpetne prevest - maly rozdil na vstupu = velky rozdil na vystupu - musi byt rychla - id2str - mam petku (id), co to je v korpusu za slovo - str2id - mam slovo, co to je v korpusu za id (cislo) precision and recall ~ pokryti a presnost mravenci a vcely chci mravence chytil jsem x prvku, neco mi zbylo - chytil jsem 4 mravence, 6 vcer pokryti 4 mravenci ze 6, ale mam i 6 vcel z 9 (mala presnost) muzu chytit vsechno -> pokryti 100%, kdyz pak mravence vydobu, tak presnost taky 100 %