Next revision
|
Previous revision
|
user:zeman:ukoly:t9 [2009/10/01 22:33] zeman vytvořeno |
user:zeman:ukoly:t9 [2013/10/08 08:08] (current) zeman quest |
| |
Vaším úkolem je napsat program, který převede posloupnost číslic (a mezer) na text. V jistém smyslu jde o variaci na úlohu [[Háčkování]], na rozdíl od ní je zde ale mnohem těžší se trefit do správné volby. Proto budete vypisovat každé slovo na samostatný řádek, přičemž v případě, že pro nějaké slovo existuje více hypotéz, vypíšete na daný řádek všechny, oddělené mezerami a seřazené sestupně podle pravděpodobnosti. | Vaším úkolem je napsat program, který převede posloupnost číslic (a mezer) na text. V jistém smyslu jde o variaci na úlohu [[Háčkování]], na rozdíl od ní je zde ale mnohem těžší se trefit do správné volby. Proto budete vypisovat každé slovo na samostatný řádek, přičemž v případě, že pro nějaké slovo existuje více hypotéz, vypíšete na daný řádek všechny, oddělené mezerami a seřazené sestupně podle pravděpodobnosti. |
| |
| V prvním přiblížení budete nejspíš pravděpodobnost slova odhadovat jeho relativní četností, porovnanou s četnostmi ostatních kandidátů pro danou posloupnost číslic. Tento přístup ale pochopitelně nebude stačit. Znamenal by, že se vždy vybere (resp. umístí na první pozici v seznamu hypotéz) nejčastější slovo, takže je předem vyloučené, že by šlo srozumitelný text vygenerovat i bez interakce s uživatelem. Zjistěte proto, nakolik lze výsledky vylepšit s pomocí kontextu. Nesledujte pouze relativní četnosti jednotlivých slov, sledujte také n-tice sousedních slov. Například "626" může znamenat //mám, nám, naň, man, mao, nán,// ale "5 626" už je velmi pravděpodobně //k nám,// zatímco "626 2886" bude spíš znamenat //mám auto// (i když věta by mohla být delší a třeba "8572354 626 2886" bude //ukradli nám auto,// nikoli //ukradli mám auto.// Můžete se pokusit sledovat i kontext částí slova. Např. pravděpodobnost, že v trénovacích datech potkáte právě frázi "ukradli nám", není příliš velká, ale poslední dvě písmena ("-li") statistickému modelu celkem spolehlivě napoví, že jde o sloveso v minulém čase, což by v tomto případě mělo jako kontext stačit. |
| |
K testování dostanete data v konkrétním jazyku, váš program by však měl být v maximální možné míře jazykově nezávislý. Procedura pro převedení trénovacích dat do posloupnosti číslic musí obsahovat abecedu daného jazyka a měla by tedy být dobře oddělená od zbytku kódu, aby ji bylo možné snadno vyměnit. Vše ostatní, co potřebuje o konkrétním jazyku vědět, by měl program být schopen se naučit z dat. (Z toho plyne, že vy daný jazyk ovládat nemusíte.) | K testování dostanete data v konkrétním jazyku, váš program by však měl být v maximální možné míře jazykově nezávislý. Procedura pro převedení trénovacích dat do posloupnosti číslic musí obsahovat abecedu daného jazyka a měla by tedy být dobře oddělená od zbytku kódu, aby ji bylo možné snadno vyměnit. Vše ostatní, co potřebuje o konkrétním jazyku vědět, by měl program být schopen se naučit z dat. (Z toho plyne, že vy daný jazyk ovládat nemusíte.) |
===== Další informace ===== | ===== Další informace ===== |
| |
Tento úkol (včetně zadání konkrétního jazyka) si můžete zarezervovat vyplněním formuláře na http://ufal.mff.cuni.cz/cgi-bin/zeman/zapoctaky/rezervace_ukolu.pl (pokud ještě není rozebrán). | Tento úkol (včetně zadání konkrétního jazyka) si můžete zarezervovat vyplněním formuláře na http://quest.ms.mff.cuni.cz/cgi-bin/zeman/zapoctaky/rezervace_ukolu.pl (pokud ještě není rozebrán). |
| |
| V zimním semestru 2009-2010 je v nabídce čeština. Pro přístup k trénovacím datům je potřeba souhlasit s licenční smlouvou a odeslat registraci na http://ufal.mff.cuni.cz/corp-lic/pdt20-reg.html; do kolonky //Optional information// vyplňte "NPFL007". O registraci bych se měl dozvědět a poslat vám odkaz na data. |
| |
Pokud se individuálně nedohodneme jinak, termín odevzdání je konec listopadu. Při některé prosincové přednášce program předvedete ostatním. | Pokud se individuálně nedohodneme jinak, termín odevzdání je konec listopadu. Při některé prosincové přednášce program předvedete ostatním. |
| |