Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
user:zeman:ukoly:hranice-slov-a-vet [2007/10/17 10:48] zeman Hranice vět. |
user:zeman:ukoly:hranice-slov-a-vet [2007/10/17 18:43] zeman Ruská data. |
Pomocný program ''sentrain.pl'' je zodpovědný za jazykovou nezávislost vašeho programu na hledání hranic vět. Měl by se naučit z dat to, co byste jinak psali jako soubor pravidel (ať už do externího souboru, nebo dokonce do zdrojáku). Může sbírat prakticky libovolné informace, ale nejzajímavější pro vás asi bude seznam krátkých slov, která se často vyskytují před tečkou a přitom obvykle tato tečka neukončuje větu. | Pomocný program ''sentrain.pl'' je zodpovědný za jazykovou nezávislost vašeho programu na hledání hranic vět. Měl by se naučit z dat to, co byste jinak psali jako soubor pravidel (ať už do externího souboru, nebo dokonce do zdrojáku). Může sbírat prakticky libovolné informace, ale nejzajímavější pro vás asi bude seznam krátkých slov, která se často vyskytují před tečkou a přitom obvykle tato tečka neukončuje větu. |
| |
Vstupem programu je tokenizovaný text v UTF-8, ve kterém jsou hranice vět vyznačené tak, že každá věta leží na samostatném řádku. Pokud je program zavolán bez argumentů, vstup se čte ze standardního vstupu. Pokud je zavolán s argumenty, ty se považují za cesty k souborům, které se mají načíst. | Vstupem programu je tokenizovaný text v UTF-8, ve kterém jsou hranice odstavců a vět vyznačené následovně: |
| |
| * Každá věta leží na samostatném řádku. |
| * Mezi dvěma odstavci je jeden řádek vynechaný (prázdný). |
| |
| Pokud je program zavolán bez argumentů, vstup se čte ze standardního vstupu. Pokud je zavolán s argumenty, ty se považují za cesty k souborům, které se mají načíst. |
| |
Program by měl vždy psát na standardní výstup, formát výstupu si však stanovte sami podle toho, jaké informace chcete sbírat. | Program by měl vždy psát na standardní výstup, formát výstupu si však stanovte sami podle toho, jaké informace chcete sbírat. |
| |
| |
===== Hledání hranic vět ===== | ===== Hledání hranic vět ===== |
| |
Program ''sent.pl'' přečte tokenizovaný text v UTF-8 s vyznačenými odstavci a vypíše tentýž text s vyznačenými větami. Jak odstavce na vstupu, tak věty na výstupu jsou vyznačené zalomením řádku: každý odstavec, resp. věta leží na samostatném řádku. | Program ''sent.pl'' přečte tokenizovaný text v UTF-8 s vyznačenými odstavci a vypíše tentýž text s vyznačenými odstavci i větami. Odstavce na vstupu jsou vyznačeny zalomením řádku (každý odstavec leží na samostatném řádku). Na výstupu jsou takto vyznačeny věty, zatímco mezi dvěma odstavci je jeden prázdný řádek navíc (tedy stejný formát jako na vstupu programu ''sentrain.pl''). |
| |
Veškerá pravidla závislá na //slovníku// konkrétního jazyka (např. seznam zkratek) by měl být program schopen načíst z externího souboru vyrobeného programem ''sentrain.pl''. Pravidla závislá na //abecedě// jazyka (např. které znaky Unicodu mohou být koncovou interpunkcí) mohou být ve zdrojáku (ovšem takovým způsobem, aby se zdroják zbytečně nestával jazykově závislým, viz též rady k tokenizaci výše). Chcete-li, můžete i tato pravidla zahrnout do učení. Základním pravidlem každopádně je, že věta je podmnožinou odstavce. Jinými slovy, zalomení řádku máte na vhodná místa přidat, ale nemáte je odstraňovat. Na vstupu samozřejmě můžou být odstavce neukončené tečkou (nadpisy). | Veškerá pravidla závislá na //slovníku// konkrétního jazyka (např. seznam zkratek) by měl být program schopen načíst z externího souboru vyrobeného programem ''sentrain.pl''. Pravidla závislá na //abecedě// jazyka (např. které znaky Unicodu mohou být koncovou interpunkcí) mohou být ve zdrojáku (ovšem takovým způsobem, aby se zdroják zbytečně nestával jazykově závislým, viz též rady k tokenizaci výše). Chcete-li, můžete i tato pravidla zahrnout do učení. Základním pravidlem každopádně je, že věta je podmnožinou odstavce. Jinými slovy, zalomení řádku máte na vhodná místa přidat, ale nemáte je odstraňovat. Na vstupu samozřejmě můžou být odstavce neukončené tečkou (nadpisy). |
- Kromě velkého písmena může věta začínat i číslem nebo interpunkcí (levá závorka, uvozovky). | - Kromě velkého písmena může věta začínat i číslem nebo interpunkcí (levá závorka, uvozovky). |
- Věta nemusí končit jen tečkou, vykřičníkem a otazníkem. Opět můžou na konci ležet i různé druhy pravých závorek a uvozovek. Není ale předem jisté, zda bude tečka před závorkou nebo za ní: .) ). )." .") atd. | - Věta nemusí končit jen tečkou, vykřičníkem a otazníkem. Opět můžou na konci ležet i různé druhy pravých závorek a uvozovek. Není ale předem jisté, zda bude tečka před závorkou nebo za ní: .) ). )." .") atd. |
| - Typografické uvozovky se nepoužívají ve všech jazycích stejně a stojí za zvážení, zda je neřešit rovněž učením z dat. Např. v češtině a němčině se za levou uvozovku považuje znak „ ("dolní 99", kód dec 8222, hex 201E), za pravou pak “ ("horní 66", kód dec 8220, hex 201C). Ten samý znak s kódem 8220 ale v angličtině slouží jako levá uvozovka, zatímco jako pravá se používá znak ” ("horní 99", kód dec 8221, hex 201D). |
- Tečka mezi dvěma číselnými tokeny může být součást data. | - Tečka mezi dvěma číselnými tokeny může být součást data. |
| |
| |
| |
| |
| |
| ===== 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). |
| |
| 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. |
| |
| 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 němčina, švédština a ruština. Odkaz na trénovací data se zde objeví do konce října 2007. Varování: trénovací data prošla odlišnou tokenizací, než jakou specifikuje tento dokument! |
| |
| * {{user:zeman:ukoly:detrain1.tok.gz|Německá data}} |
| * {{user:zeman:ukoly:svtrain1.tok.gz|Švédská data}} |
| * {{user:zeman:ukoly:rutrain1.tok.gz|Ruská data}} |