[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
user:zeman:ukoly:hackovani [2009/10/01 10:17]
zeman Varianta pro arabštinu.
user:zeman:ukoly:hackovani [2013/10/08 08:07] (current)
zeman quest
Line 2: Line 2:
 {{template>spolecne}} {{template>spolecne}}
  
-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.)
  
 Úloha má tyto části: Úloha má tyto části:
-  - Trénovací program. Projde trénovací data (tokenizovaný text v UTF-8) a naučí se slovník, tj. pro každý řetězec bez diakritiky všechny možné řetězce (s diakritikou či bez), ze kterých mohl vzniknout.+  - Trénovací program. Projde trénovací data (tokenizovaný text v UTF-8) a naučí se slovník, tj. pro každý řetězec bez diakritiky všechny možné řetězce (s diakritikou či bez), ze kterých mohl vzniknout.
   - Vlastní háčkovač. Čte ze standardního vstupu tokenizovaný text bez diakritiky, na standardní výstup vypisuje tentýž text s diakritikou (v UTF-8).   - Vlastní háčkovač. Čte ze standardního vstupu tokenizovaný text bez diakritiky, na standardní výstup vypisuje tentýž text s diakritikou (v UTF-8).
   - Za pomoci trénovacího programu nebo jeho upravené verze:   - Za pomoci trénovacího programu nebo jeho upravené verze:
Line 18: Line 18:
  
 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í =====
Line 24: Line 26:
  
 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&nbsp;arabštině (a také v&nbsp;hebrejštině) se diakritická znaménka používají pro zápis krátkých samohlásek, zdvojování souhlásek a další jevy. V&nbsp;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&nbsp;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&nbsp;arabštině (a také v&nbsp;hebrejštině) se diakritická znaménka používají pro zápis krátkých samohlásek, zdvojování souhlásek a další jevy. V&nbsp;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&nbsp;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&nbsp;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&nbsp;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.
Line 33: Line 37:
 Následuje přehled diakritických znamének v&nbsp;arabštině. V&nbsp;příkladech je použita souhláska //b//: Následuje přehled diakritických znamének v&nbsp;arabštině. V&nbsp;příkladech je použita souhláska //b//:
  
-| Kód | Název | Význam | Příklad | Přepis |+**Kód** **Název** **Význam** **Příklad** **Přepis** |
 | 064E | fatha | a | بَ | ba | | 064E | fatha | a | بَ | ba |
 | 064F | damma | u | بُ | bu | | 064F | damma | u | بُ | bu |
Line 39: Line 43:
 | 0651 | shadda | zdvojení souhlásky | بّ | bb | | 0651 | shadda | zdvojení souhlásky | بّ | bb |
 | 0652 | sukun | žádná samohláska | بْ | b | | 0652 | sukun | žádná samohláska | بْ | b |
 +| 064B | fathatan | a + nunace | بً | ban |
 +| 064C | dammatan | u + nunace | بٌ | bun |
 +| 064D | kasratan | i + nunace | بٍ | bin |
  
 Pro učení budete mít k&nbsp;dispozici vokalizované (= opatřené samohláskami) texty z&nbsp;Pražského arabského závislostního korpusu (PADT). Pro učení budete mít k&nbsp;dispozici vokalizované (= opatřené samohláskami) texty z&nbsp;Pražského arabského závislostního korpusu (PADT).
Line 44: Line 51:
 ===== 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).
  
 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.
Line 50: Line 57:
 Další informace k úkolu najdete v http://ufal.mff.cuni.cz/~zeman/vyuka/podklady/pzpj03-prvni_ukoly.pdf. Další informace k úkolu najdete v http://ufal.mff.cuni.cz/~zeman/vyuka/podklady/pzpj03-prvni_ukoly.pdf.
  
-V zimním semestru 2007-2008 jsou v nabídce slovenština, polština a maďarštinaOdkazy na trénovací data následují.+V&nbsp;zimním semestru 2009-2010 je v&nbsp;nabídce arabština. Pro přístup k&nbsp;datům je potřeba souhlasit s&nbsp;licenční smlouvou odeslat registraci na http://ufal.mff.cuni.cz/corp-lic/padt10-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.
  
-  * {{user:zeman:ukoly:sk.tok.gz|Slovenská data}} +V&nbsp;zimním semestru 2007-2008 byly v&nbsp;nabídce slovenština, polština a maďarština; v&nbsp;dalších letech se nabídka postupně obměňovalaNásledující odkazy vám řeknou, jak se dostat k&nbsp;trénovacím datům.
-  * {{user:zeman:ukoly:pl.tok.gz|Polská data}} +
-  * {{user:zeman:ukoly:hu.tok.gz|Maďarská data}}+
  
 +  * {{user:zeman:ukoly:sk.tok.gz|Slovenská data}} (2007-2008)
 +  * {{user:zeman:ukoly:pl.tok.gz|Polská data}} (2007-2008)
 +  * {{user:zeman:ukoly:hu.tok.gz|Maďarská data}} (2007-2008)
 +  * Arabská data (2009-2010): samostatná licence (odkaz na formulář výše)
 +  * {{user:zeman:ukoly:ro.txt.gz|Rumunská data}} (2011-2012)
 +  * Řecká data (2012-2013): samostatná licence, kontaktujte mne

[ Back to the navigation ] [ Back to the content ]