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)
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.
- 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 struktura programu, parsovani vystupu tool_chainu, parsovani vyse zmineneho custom formatu, zjistovani platnosti podminek