This is an old revision of the document!
Zadání
Schůzky
- 3/3/2008
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.
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…)? Doposud jsem rocnikovy projekt nevedla. Ale ptam se svych kolegu, kteri jsou v tomto ohledu zkusenejsi. Dam vedet. — hladka 28.4.2008 21:02
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
Dale
Vymyslet zapojeni spojek, castic, citoslovci, pripadne podrobnejsi rozdeleni vety na casti (podmetna, prisudkova,…), ktere musi tvorit souvisle komponenty → cela veta nemusi byt nutne souvisla. Vypada to ze by se to mohlo hodit, napr. sloveso jde tezko napojit na podmetjen za pomoci doud definovanych podminek, vyjde z toho prazdna podminka a to je dost obecne.
Zda se ze smysluplnost program vetsinou rozezna, trochu horsi je to s nesmyslnymi vetami - domyslim.
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)