Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
user:zeman:ukoly:hackovani [2009/10/01 11:09] zeman |
user:zeman:ukoly:hackovani [2009/12/14 14:15] zeman Volání programů, aby příště bylo jasno. |
| |
Program ''hacktrain.pl'' čte ze standardního vstupu tokenizovaný text v UTF-8, obsahující diakritiku. Nepotřebuje argumenty, ale pokud je dostane, čte místo standardního vstupu soubory, k nimž jsou cesty uvedené v argumentech. Program z každého vstupního slova odstraní diakritiku a pro všechna slova bez diakritiky si zapamatuje všechna jim odpovídající slova s diakritikou, která viděl v trénovacích datech. Pamatuje si také četnosti výskytů jednotlivých variant, aby háčkovač mohl posoudit, která varianta je nejpravděpodobnější. Naučený slovník vypíše na standardní výstup. Formát výstupu navrhněte sami. | Program ''hacktrain.pl'' čte ze standardního vstupu tokenizovaný text v UTF-8, obsahující diakritiku. Nepotřebuje argumenty, ale pokud je dostane, čte místo standardního vstupu soubory, k nimž jsou cesty uvedené v argumentech. Program z každého vstupního slova odstraní diakritiku a pro všechna slova bez diakritiky si zapamatuje všechna jim odpovídající slova s diakritikou, která viděl v trénovacích datech. Pamatuje si také četnosti výskytů jednotlivých variant, aby háčkovač mohl posoudit, která varianta je nejpravděpodobnější. Naučený slovník vypíše na standardní výstup. Formát výstupu navrhněte sami. |
| |
| <code bash>perl hacktrain.pl < train.txt > model.stat</code> |
| |
===== Háčkování ===== | ===== Háčková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. |
| |
| <code bash>perl hack.pl -s model.stat < test.txt > test.hack.txt</code> |
| |
===== Varianta pro arabštinu ===== | ===== 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ů). | 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řepisu do latinky, 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. | 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. |