[ 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
Next revision Both sides next revision
user:zeman:ukoly:pavouk [2008/10/30 10:26]
zeman Telugština.
user:zeman:ukoly:pavouk [2009/03/03 15:35]
zeman Program by měl vypsat N nejpravděpodobnějších jazyků s vahami.
Line 1: Line 1:
 ====== Pavouk ====== ====== Pavouk ======
-//(ú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ý dokáže stáhnout z internetu dostatečné množství textů, ze kterých lze vyrobit korpus určitého jazyka. Stáhněte texty v tomto jazyku a vyrobte korpus o alespoň 500000 slov. Součástí zadání bude konkrétní jazyk, váš program by však měl být jazykově nezávislý. Vše, 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, naopak je možná výhodou, když je vám tento jazyk zcela neznámý.) Napište program, který dokáže stáhnout z internetu dostatečné množství textů, ze kterých lze vyrobit korpus určitého jazyka. Stáhněte texty v tomto jazyku a vyrobte korpus o alespoň 500000 slov. Součástí zadání bude konkrétní jazyk, váš program by však měl být jazykově nezávislý. Vše, 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, naopak je možná výhodou, když je vám tento jazyk zcela neznámý.)
Line 13: Line 11:
  
 Odevzdávat budete oba programy a stažený korpus. Odevzdávat budete oba programy a stažený korpus.
- 
-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). 
  
 ===== Specifikace programu pro trénování jazyků ===== ===== Specifikace programu pro trénování jazyků =====
Line 42: Line 38:
 e       0.0497783839072622 e       0.0497783839072622
 a       0.0422775315376747</code> a       0.0422775315376747</code>
- 
  
 ===== Specifikace volání a práce pavouka ===== ===== Specifikace volání a práce pavouka =====
Line 48: Line 43:
 Program se bude jmenovat ''pavouk.pl'' a bude se volat s jedním nebo více argumenty, které se interpretují jako URL (internetové adresy). Kromě toho se mohou mezi argumenty nacházet i volby (options), které určují, kolik textu a z jakého jazyka se má stáhnout. Program se bude jmenovat ''pavouk.pl'' a bude se volat s jedním nebo více argumenty, které se interpretují jako URL (internetové adresy). Kromě toho se mohou mezi argumenty nacházet i volby (options), které určují, kolik textu a z jakého jazyka se má stáhnout.
  
-<code>pavouk.pl -l frq/cs.frq -t 0.36 -n 500000 http://seznam.cz/ http://centrum.cz/</code>+<code>pavouk.pl -l frq/cs.frq -f frq -t 0.36 -n 500000 http://seznam.cz/ http://centrum.cz/</code>
  
-''-l frq/cs.frq'' říká, že v souboru frq/cs.frq program najde frekvenční charakteristiku jazyka, ve kterém mají dokumenty být. Parametrem ''-t'' můžete předat prahovou hodnotu míry podobnosti dokumentu danému jazyku, pod kterou už se mají dokumenty zahodit (alternativně můžete zadat cestu ke složce s charakteristikami dalších jazyků a text, který se více podobá jinému jazyku, taky zahodit; bez prahu se ale neobejdete, protože jinak hrozí, že narazíte na jazyk, který se dostatečně nepodobá ničemu, co máte natrénováno, ale bohužel vašemu jazyku se podobá o něco víc než těm ostatním).+''-l frq/cs.frq'' říká, že v souboru frq/cs.frq program najde frekvenční charakteristiku jazyka, ve kterém mají dokumenty být. Parametrem ''-t'' můžete předat prahovou hodnotu míry podobnosti dokumentu danému jazyku, pod kterou už se mají dokumenty zahodit (alternativně můžete parametrem ''-f'' zadat cestu ke složce s charakteristikami dalších jazyků a text, který se více podobá jinému jazyku, taky zahodit; bez prahu se ale neobejdete, protože jinak hrozí, že narazíte na jazyk, který se dostatečně nepodobá ničemu, co máte natrénováno, ale bohužel vašemu jazyku se podobá o něco víc než těm ostatním).
  
 Parametr ''-n 500000'' říká že program má procházení ukončit poté, co velikost získaného korpusu překročí půl miliónu slov. Volba ''-n 0'' by znamenala, že má běžet tak dlouho, dokud ho někdo neukončí násilím. Parametr ''-n 500000'' říká že program má procházení ukončit poté, co velikost získaného korpusu překročí půl miliónu slov. Volba ''-n 0'' by znamenala, že má běžet tak dlouho, dokud ho někdo neukončí násilím.
Line 57: Line 52:
  
 Snažte se identifikovat a likvidovat opakované výskyty téhož odstavce (zejména pokud jde o jednoslovné odstavce, jako jsou různé položky nabídek na internetových portálech). Volitelně můžete také zkusit identifikovat jazyk každého odstavce a vyhodit intervenující např. anglické odstavce v dokumentu, který je jinak převážně ve vámi hledaném jazyku. Počítejte ale s tím, že určit statisticky jazyk krátkého řetězce je těžší než u delšího dokumentu. Snažte se identifikovat a likvidovat opakované výskyty téhož odstavce (zejména pokud jde o jednoslovné odstavce, jako jsou různé položky nabídek na internetových portálech). Volitelně můžete také zkusit identifikovat jazyk každého odstavce a vyhodit intervenující např. anglické odstavce v dokumentu, který je jinak převážně ve vámi hledaném jazyku. Počítejte ale s tím, že určit statisticky jazyk krátkého řetězce je těžší než u delšího dokumentu.
 +
 +Stažené texty posílejte na standardní výstup (STDOUT, viz níže). Kromě toho na standardní chybový výstup (STDERR) pište (přinejmenším): jaký dokument (URL) právě zpracováváte, N nejpravděpodobnějších jazyků, ve kterých by dokument mohl být, a váhy, které vyjadřují, jak moc se dokument podobá danému jazyku. To je důležité, protože bez možnosti vidět váhy uživatel těžko dokáže odhadnout vhodný práh do parametru ''-t''. Ze stejného důvodu by neškodilo, aby se na STDERR objevilo i několik slov ze začátku dokumentu.
  
 ===== Specifikace výstupního formátu ===== ===== Specifikace výstupního formátu =====

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