Table of Contents
LGame
Bakalářská práce
- Použití SVN serveru na ÚFAL
/home/svn/repos/bc_rovensky/, user: rovensky, passwd: bc_rovensky
- vlastní účet v síti ÚFAL nepotřebujete, budete commitovat do své SVN a prohlížet si ji na webu. Na
https://svn.ms.mff.cuni.cz/projects/
je Váš projekt videt - vizhttps://svn.ms.mff.cuni.cz/projects/bc_rovensky, user: ufal, passwd: maly_lingvista
. Tady budou časem jednotlivé soubory v poslední verzi, s možností prohlížet ty starší:https://svn.ms.mff.cuni.cz/projects/bc_rovensky/browser
. - Co se týče subverse, tak ani na ni nepotřebujete mít přístup na síť ÚFAL. Potřebujete mít nějakého klienta (standardní svn na linuxu, nebo třeba SVN Tortoise na windows). A rovnou můžete začít se subversí, asi nějaký
svn import
asvn checkout
… Zde je info:http://svnbook.red-bean.com/en/1.5/svn.tour.importing.html
. Repository má adresusvn://svn.ms.mff.cuni.cz/bc_rovensky
, takžecheckout
třebasvn checkout svn://svn.ms.mff.cuni.cz/bc_rovensky/trunk his_local_directory
Dokumentace, data
- Specifikace pdf
- Dokumentace pilotní verze pdf
- Co vše má obsahovat pilotní verze?
- Rešerše - provést rešerši, jestli se podobným problémem již někdo zabýval; pokud ano, tak pro jaké jazyky a jakou metodologií. Rešerši zpracovat písemně v samostatném souboru.
- Kód S dostatečným počtem komentářů.
- Dokumentace
- Uživatelská - specifikace softwarových a hardwarových požadavků; konfigurace; popis instalace programu, spuštění programu, ukázky spuštění programu na souboru vět.
- Programátorská - popis struktury programu, implementační platformy (MS Windows, Linux, …), použitých technologií, datových struktur, algoritmů a nestandartních knihoven. V programátorské dokumentaci má být to, co se nevyčte z komentářů v kódu.
- Testovací data Věty z Českého akademického korpusu 2.0
- Smysluplné věty devtest.ok
- Nesmysluplné věty devtest.ko
Schůzky
- 3/3/2008
- navrhuji schuzku 15/5/2008 nekdy dopoledne (je mi to jedno)
Vzkazy
- 16/3/2008 U mě v kaslíku na sekretariátu ÚFAL (MS, místnost č. 408) máte nachystané CD-ROM (píše se o něm v zadání) a popis morfologických značek.
- 27/5/2008 Nová verze morfologické analýzy, jakožto součást skriptu
tool_chain
, je nachystána ke stažení. Jedná se přímo o obsah adresářemorphology/
. - 9/12/2008 Domnívám se, že je vhodná doba naplánovat závěr Vašeho ročníkového projektu. Proto navrhuji následující:
- Do 5. ledna 2009 mi pošlete balíček s tímto obsahem:
- zdrojový kód klasifikátoru
- binární soubory pro MS Windows a Linux
- uživatelskou dokumentaci ve formátu pdf. Součástí uživatelské dokumentace musí být vyhodnocení klasifikátoru na datech od Seznamu a na datech z ČAK 1.0.
- programátorskou dokumentaci ve formátu pdf
- soubor README.txt, který bude svým obsahem odpovídat linuxové manuálové stránce. Měly by tam být tyto údaje: Name, synopsis, description, options, examples, requirements, configuration, problems, author.
- Jakmile balíček obdržím, přešlu ho bez zdrojových kódů Vincentu Křížovi, který řeší stejnou úlohu. Obráceně Vy obdržíte jeho balíček.
- Do 11. ledna nastudujete/otestujete Vincentův balíček. Svoje dojmy/názory/postřehy zpracujete písemně - zpráva by neměla přesahovat dvě A4 strany.
- Jakmile obdržím Vaši zprávu, přešlu ji Vincentovi.
- 19. ledna bychom se sešli všichni tři dohromady na, řekněme, prezentační hodince. Vy budete mít připravenou prezentaci, ve které byste měl reagovat i na připomínky oponenta Vincenta. Totéž bude dělat i Vincent. Ten den Vám zapíšu do indexu to, co mám. Navrhuji se sejít hned po ránu, tj. v 9h. DOPLNĚNO: 8/1/2009 Prezentace bude trvat 20min - slajdy si nachystejte ve Vámi preferovaném nástroji. Obsah slajdů by měl být koncipován tak, že matfyzácký posluchač pochopí, jaké bylo zadání a jaké řešení jste zvolil. Všechny aspekty řešení musí být představeny.
Postup
Nejasnosti
- Smim ve vystupu tool-chainu pouzivat tagy <g> a <r> ? Ne. To jsou informace pro syntax. (hladka 25.3.2008 09:22)
- Pri uvodni schuzce se hovorilo o sade vet urcenych k testovani programu, da se nekde stahnout? Ano, vety budou k dispozici. Budou to vety z Ceskeho akademickeho korpusu 2.0. Prace na tomto korpusu finisuje. Az se dodelaji vsechny kontroly, tak pripravim dva soubory ve formatu csts: jeden se smysluplnymi vetami a druhy s nesmysluplnymi vetami. Soubory budou k dispozici nejpozdeji pristi tyden ve stredu. — hladka 28.4.2008 20:53
- Co by mela splnovat specifikace programu(delka, format, obsah…)? ukazka c. 1,
ukazka c. 1 — hladka 29.4.2008 10:29 - pri testovani ruznych vstupu jsem narazil na nektere hodnoty na pozici 2 morfologickeho tagu, ktere jsem nenasel v dokumentaci (konkretne hodnota 2), da se nekde sehnat aktualizovany popis znacek?
- tool_chain spravne nerozeznava tvary sloves koncici na -li (budu-li, chcete-li)
Prvni naznak algoritmu
- Rozparsovat vstup z tool-chainu - pravdepodobne staci chytat tagy <f> a v nich <t>, mozna by se hodily i <r> a <g> (id tokenu + ukazatel na nadrazeny token) ale asi to nespada do morfologie. tool_chain na vystupu nevydava <t>, pokud je v datech <t>, tak obsahuje znacku doplnenou rucne, tedy lidmi. tool_chain dava na vystupu <MDt>, tj., vystup automaticke procedury. (hladka 25.3.2008 09:25)
Oprava: Ve vystupu tool_chainu najit tag <s> pro vetu a nasledne vybirat tagy <f>, resp <d> pro tokeny, v nich z <MDl> vybrat lemma, z <MDt> tagy. Ano, pochopil jste strukturu vystupu spravne. — hladka 06.4.2008 20:58
- Pokud je veta souvetim, rozdelit na hole vety, cele souveti je smysluplne, pokud jsou smysluplne vsechny hole vety v nem obsazene. Rozdelovani realizovat napr. vyhledanim interpunkce/spojek/predlozek… ty rozdeli souveti na nekolik casti, ty casti jez obsahuji sloveso jsou vety jednoduche. Muze byt. (hladka 25.3.2008 09:31)
- Dale analyza pouze jednoduche vety. Napadly me dve veci ovlivnujici smysluplnost, ktere by se nejspis daly implementovat:
- korektni vztahy mezi slovy - bylo by mozne definovat pro kazdou dvojici slovnich druhu podminky(=hodnoty v tagu <t>), ktere musi byt splneny, aby tato dvojice davala smysl. Napr. pro podstatna a pridavna jmena nejak takhle:
tag | podst.jm | prid.jm | znamena |
---|---|---|---|
2 | N | A,U,non(C) | podstatne jmeno vedle pridavneho |
3 | = | = | rod musi byt stejny |
4 | = | = | cislo musi byt stejne |
5 | = | = | pad musi byt stejny |
6-15 | * | * | na ostatnich nezalezi |
Pokud mame takoveto vztahy, je mozne pro kazde slovo hledat mozne kandidaty, se kterymi by mohlo tvorit smysluplnou dvojici, temto kandidatum pak priradit prioritu napr. podle vzdalenosti techto slov ve vete. Veta je potom smysluplna, pokud kazde slovo je nejak zapojeno (mimo interpunkce atp), jinymi slovy pokud budou slova vrcholy grafu, smysluplne dvojice budou tvorit hrany grafu, pak bude veta smysluplna, pokud bude tento graf souvisly. To ze kandidatu pro kazde slovo muze byt vice vede k moznemu nastavovani “prisnosti” procedury, cim min prisna, tim vic kandidatu(hran) bude brano v potaz.
- slovosled - jednak ve vyse zminenych prioritach podle vzdalenosti slov, dale napr. kontrolovanim, ze veta dodrzuje nejakou zakladni strukturu ceskeho slovosledu. Napr. ve vyse zminenem vztahu kontrolovat, ze pridavne jmeno je pred podstatnym a pokud je to obracene, musi byt variant = 2,3 nebo 4.
Priklad
Mame vetu “Pokud si chcete něco pouze vyzkoušet, použijte
pískoviště.” Prvni krok ji podle carky a dvou sloves rozdeli na dve vety jednoduche. V prvni vete se Pokud navaze na sloveso chcete, si na jedno ze dvou sloves, vyssi prioritu bude mit chcete - je bliz, chcete nejspis muze tvorit dvojici s kterymkoli ze slov neco, pouze, vyzkouset atd. Urcite vznikne souvisly graf. Naopak pokud by v druhe vete bylo napr Použijte nový pískoviště, nebude souhlasit rod pridavneho a podstatneho jmena a vznikne nesouvisly graf. Mozny problem je, ze pokud by tam bylo napr. Použijte pískovištím, nelze takto (ne)smysluplnost rozeznat, nebot zalezi na vyznamu konkretniho slovesa s jakym se poji padem. Napad, ktery popisujete, dava dobry smysl. Muzete ho zacit implementovat;-) (hladka 25.3.2008 09:31)
Hotovo
- zaklad algoritmu
- konecne se mi povedlo nainstalovat linux, tool_chain i vsechno ostatni potrebne, takze uz vim co parsovat - prislusna sekce postupu(vyse) upravena. Za odmenu jsem si zahral miny.
- dodelal jsem zakladni sadu pravidel pro vztahy mezi slovnimi druhy, ta bude prubezne doplnovana.
- definovan format souboru pro ukladani techto vztahu(txt soubor pro jednoduchou editaci) - pri startu programu se z tohoto souboru nactou podminky pro vznik smysluplnych vztahu.
- Kod : zakladni chodici verze
- Kod : zakladni chodici a odvsivena verze, rozchozeno na Linuxu (aspon myslim :o)
- rozsiren soubor s podminkami(aktualizovan i odkaz)
- par vystupu programu v jeho soucasne podobe je k nahlednuti zde ´=
= 2008/2009 =
- neustale rozsirovan soubor s podminkami
- pridana podpora davkoveho zpracovani
- pridany parametry pro spusteni programu - ignorovani nerozpoznanych tokenu, vyzadovani slovesa, minimalni delka vety atp.
- pridana utilita na editaci souboru s podminkami (java)
- pridana moznost vytvaret skupiny podminek, ktere jsou ve smysluplne vete vyzadovany
- pridan treshold na pocet iteraci procedury kontrolujici podminky typu (3) - zajisteni polynomialni slozitosti
- pridana moznost vypisovat kolize, program dostane coby parametr procentualni pocet klauzuli, ktere musi byt v ramci jedne podminky splneny, aby byl zbytek chapan jako kolize a vypsan (za predpokladu ze v podmince jsou nejake neuspesne klauzule). Taky je mozne specifikovat soubor, kam se budou kolize vypisovat.
- zjednoduseni konfigurace aplikace - pridana moznost sepsani voleb programu do .ini souboru (kazdy z optionu, ktere program prijima, ma svou alternativu v nejake klauzuli .ini souboru), parametry predavane primo na prikazovou radku prekryvaji parametry v .ini souboru (command line optiony maji prednost pred .ini). Soubor .ini s default hodnotami se automaticky vytvori, pokud neexistuje.
Dale
22/9/08
- vypisovani kolizi
- SENSE jako webova aplikace
- PREZENTACE
- slides
- formulace ulohy
- smysluplnost vzhledem k cemu - zde vzhledem k morfologicke urovni zpracovani
- vstupni data - tool_chain (CAK 2.0)
- algoritmus - vyvojovy diagram
- vypocetni slozitost
- evaluace - data od Seznamu, 'nase' data (CAk 2.0)
- ukazka
- 13. rijna nanecisto
Otázky
- Jak moc bolestné bylo rozchodit a spustit tool_chain
. — hladka 06.4.2008 21:04
- tool_chain nebyl tak hrozny, spis me trvalo nainstalovat linux a btred, jsem z windowsu zvykly vsechno instalovat na dve kliknuti a najednou to po me chce kompilator cecka a cosi linkovat a konfigurovat a vubec. To je jako kdybych si chtel koupit grafickou kartu a dosal pul kila kremiku a pajku. Ale aspon jsem se naucil neco noveho.
- Můžete prosím na wiki zveřejnit tu sadu pravidel, kterou jste sestavil? — hladka 06.4.2008 21:06
- mam to napsane na papire, prepisu to rovnou do toho formatu a uploadnu to sem hned jak to budu mit. Predbezna verze souboru je Tady. Bude hojne rozsirovana :o)