Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
user:zeman:ukoly:hackovani [2007/10/17 22:57] zeman Další informace. |
user:zeman:ukoly:hackovani [2009/10/01 10:17] zeman Varianta pro arabštinu. |
====== Háčkování ====== | ====== Háčkování ====== |
//(úloha z počítačového zpracování přirozeného jazyka)// | {{template>spolecne}} |
| |
//Upozornění: Specifikace je detailnější (a tudíž více svazující) než bývá u zápočtových úloh zvykem. Ideálně by díky tomu měla tři řešení téže úlohy od tří různých lidí být zaměnitelná; šetří vám to také práci s dokumentací, která už je součástí zadání. Samozřejmě nelze vyloučit, že najdete dobrý důvod, aby něco bylo jinak než ve specifikaci; takové případy se mnou prosím [[zeman@ufal.mff.cuni.cz|konzultujte]]. Bez posvěcení se raději od specifikace zbytečně neodchylujte. Kdo bude místo na STDOUT čmárat do souboru, jehož cesta je zadrátována ve zdrojáku jako "C:\Documents and Settings\PanVopička\Dokumenty\tisícdalšíchadresářů\mujchytrysoubor.dat" apod., nejenže nedostane zápočet, ale bude podroben veřejnému zostuzení.// | |
| |
Napište program, který doplní do textu chybějící diakritiku. 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ý. Můžete předpokládat, že jazyk, se kterým program pracuje, píše abecedou na bázi latinky. Vše ostatní, co potřebuje o konkrétním jazyku vědět, by měl být schopen se naučit z dat. (Z toho plyne, že vy daný jazyk ovládat nemusíte.) | Napište program, který doplní do textu chybějící diakritiku. 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ý. Můžete předpokládat, že jazyk, se kterým program pracuje, píše abecedou na bázi latinky. Vše ostatní, co potřebuje o konkrétním jazyku vědět, by měl být schopen se naučit z dat. (Z toho plyne, že vy daný jazyk ovládat nemusíte.) |
- Zjistěte, jaká je průměrná míra nejednoznačnosti (tj. průměrný počet možných odpovědí) na jeden slovní výskyt. | - Zjistěte, jaká je průměrná míra nejednoznačnosti (tj. průměrný počet možných odpovědí) na jeden slovní výskyt. |
- Data, která dostáváte, jsou stažená z Wikipedie a obsahují šum. Odhadněte (statisticky, nikoliv na základě znalosti jazyka), která háčkování se do dat dostala jen jako překlep a jak se změní odpovědi na předcházející otázky, pokud překlepy nebudeme brát v úvahu. | - Data, která dostáváte, jsou stažená z Wikipedie a obsahují šum. Odhadněte (statisticky, nikoliv na základě znalosti jazyka), která háčkování se do dat dostala jen jako překlep a jak se změní odpovědi na předcházející otázky, pokud překlepy nebudeme brát v úvahu. |
| |
Programy pište v Perlu a snažte se vyvarovat obratů, které by omezily přenositelnost mezi platformami (např. nevolejte externí programy, které se vyskytují pouze v Unixu, resp. pouze ve Windows). | |
| |
===== Trénování ===== | ===== Trénování ===== |
| |
Program píše na standardní výstup. Posílá tam tentýž text obohacený o diakritiku. Pozor, nesmíte změnit počet mezer, zalomení řádku apod.! Na výstupu má být přesně stejný počet znaků jako na vstupu, akorát místo znaků bez diakritiky se mohou objevit znaky s diakritikou, a to ještě jen takové, ze kterých ty bez diakritiky lze vytvořit. Výstup je v UTF-8. | Program píše na standardní výstup. Posílá tam tentýž text obohacený o diakritiku. Pozor, nesmíte změnit počet mezer, zalomení řádku apod.! Na výstupu má být přesně stejný počet znaků jako na vstupu, akorát místo znaků bez diakritiky se mohou objevit znaky s diakritikou, a to ještě jen takové, ze kterých ty bez diakritiky lze vytvořit. Výstup je v UTF-8. |
| |
| ===== Varianta pro arabštinu ===== |
| |
| V arabštině (a také v hebrejštině) se diakritická znaménka používají pro zápis krátkých samohlásek, zdvojování souhlásek a další jevy. V běžném textu se vynechávají (na rozdíl od češtiny ne jenom tam, kde to vyžadují omezené technické prostředky, ale všude; mluvčí arabštiny je většinou dokáže doplnit z kontextu). Pro počítačové zpracování je potřeba krátké samohlásky rekonstruovat (např. kvůli převedení textu na řeč nebo kvůli rozlišení mluvnických tvarů). |
| |
| Spisovná arabština má pouze 3 krátké samohlásky: //a, i// a //u//. Diakritická znaménka, kterými se tyto samohlásky zapisují, se objevují nad nebo pod předcházející souhláskou, mají však svůj vlastní kód v Unicode. Na rozdíl od češtiny, kde lze jedním znakem zapsat //c// a jiným znakem //č,// pro arabštinu nejsou definovány znaky //ba, bi// a //bu//. Místo toho se dotyčné slabiky reprezentují dvojicemi znaků, např. //b//+//a//. Odháčkování je tím pádem jednodušší, stačí z textu odstranit všechny výskyty znaků pro arabská diakritická znaménka. |
| |
| Následuje přehled diakritických znamének v arabštině. V příkladech je použita souhláska //b//: |
| |
| | Kód | Název | Význam | Příklad | Přepis | |
| | 064E | fatha | a | بَ | ba | |
| | 064F | damma | u | بُ | bu | |
| | 0650 | kasra | i | بِ | bi | |
| | 0651 | shadda | zdvojení souhlásky | بّ | bb | |
| | 0652 | sukun | žádná samohláska | بْ | b | |
| |
| Pro učení budete mít k dispozici vokalizované (= opatřené samohláskami) texty z Pražského arabského závislostního korpusu (PADT). |
| |
===== Další informace ===== | ===== Další informace ===== |