[ 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:pavouk [2007/10/12 00:18]
zeman Odkaz na prezentaci.
user:zeman:ukoly:pavouk [2013/10/08 08:04] (current)
zeman Japonština se z neznámých důvodů nezobrazovala.
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 10: Line 8:
   - Program na natrénování statistiky, podle které dokážeme rozpoznat jazyk dokumentu.   - Program na natrénování statistiky, podle které dokážeme rozpoznat jazyk dokumentu.
   - Rozšíření pavouka o modul, který načte natrénované statistiky jazyků a o stahovaných dokumentech pak dokáže říct, zda jsou v požadovaném jazyku, nebo ne.   - Rozšíření pavouka o modul, který načte natrénované statistiky jazyků a o stahovaných dokumentech pak dokáže říct, zda jsou v požadovaném jazyku, nebo ne.
-  - Vytipování počátečního URL pro jazyk, který vám byl zadán. Spusťte pavouka a stáhněte korpus, který po vyčištění bude obsahovat alespoň 1 milión slov (před tokenizací, tedy od mezery do mezery).+  - Vytipování počátečního URL pro jazyk, který vám byl zadán. Spusťte pavouka a stáhněte korpus, který po vyčištění bude obsahovat alespoň 500000 slov (před tokenizací, tedy od mezery do mezery).
  
 Odevzdávat budete oba programy a stažený korpus. Odevzdávat budete oba programy a stažený korpus.
Line 45: 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 1000000 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 1000000'' říká že program má procházení ukončit poté, co velikost získaného korpusu překročí milión 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.
  
 Úkolem programu je stahovat dokumenty na uvedených adresách, hledat v nich odkazy na další dokumenty, ty také stahovat a takto pokračovat až do nalezení dostatečného množství textu. Dokumenty, které nejsou v požadovaném jazyku, zahodí. Program se nesmí zacyklit, tj. opakovaně zpracovávat stránky, na kterých už byl. (K identifikaci takových stránek někdy nestačí URL, potřebujete sledovat i obsah. Některé dynamicky generované stránky obsahují odkaz na sebe sama pokaždé s jiným URL.) Úkolem programu je stahovat dokumenty na uvedených adresách, hledat v nich odkazy na další dokumenty, ty také stahovat a takto pokračovat až do nalezení dostatečného množství textu. Dokumenty, které nejsou v požadovaném jazyku, zahodí. Program se nesmí zacyklit, tj. opakovaně zpracovávat stránky, na kterých už byl. (K identifikaci takových stránek někdy nestačí URL, potřebujete sledovat i obsah. Některé dynamicky generované stránky obsahují odkaz na sebe sama pokaždé s jiným URL.)
  
 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 =====
Line 68: Line 68:
  
 Úvodní stránku si uložte jako text (bez HTML entit!) a získejte z ní frekvenční charakteristiku daného jazyka. Potom pokusně pusťte pavouka z této stránky na web a sledujte, jakých hodnot dosahuje vámi navržená míra podobnosti frekvenčních vektorů. Podle toho odhadněte vhodnou prahovou hodnotu a pusťte pavouka naostro. Úvodní stránku si uložte jako text (bez HTML entit!) a získejte z ní frekvenční charakteristiku daného jazyka. Potom pokusně pusťte pavouka z této stránky na web a sledujte, jakých hodnot dosahuje vámi navržená míra podobnosti frekvenčních vektorů. Podle toho odhadněte vhodnou prahovou hodnotu a pusťte pavouka naostro.
- 
  
 ===== 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.
  
 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.
 +
 +Krátké ukázky z jazyků, které jsou nebo v minulých letech byly v nabídce:
 +
 +==== 2009-2010 ====
 +
 +=== Japonština ===
 +
 +<nowiki>日本語(にほんご、にっぽんご)は、主として、日本で使用されてきた言語である。日本国は法令上、公用語を明記していないが、事実上の公用語となっており、学校教育の「国語」で教えられる。使用人口について正確な統計はないが、日本国内の人口、および海外に住む日本人や日系人など約1億3千万人と考えられる。ほぼ全ての日本在住者は日本語を第一言語とする。日本語の文法体系や音韻体系を反映する手話として日本語対応手話がある。</nowiki>
 +
 +==== 2008-2009 ====
 +
 +=== Hindština ===
 +भारत गणराज्य, पौराणिक जम्बुद्वीप, दक्षिण एशिया में स्थित एक देश है। यह भारतीय उपमहाद्वीप का सबसे बड़ा देश है। भारत का भौगोलिक फैलाव ८० ४' से ३७० ६' उत्तरी अक्षांश तक तथा ६८० ७' से ९७० २५'पूर्वी देशान्तर तक है। भारत का क्षेत्रफल ३२,८७,२६३ वर्ग कि. मी. हैं| भारत का विस्तार उत्तर से दक्षिण तक ३,२१४ कि. मी. और पूर्व से पश्चिम तक २,९३३ कि. मी. हैं। भारत की समुद्र तट रेखा ७५१६.६ किलोमीटर लम्बी है। भारत, भौगोलिक दृष्टि से विश्व का सातवाँ सबसे बड़ा और जनसँख्या के दृष्टिकोण से दूसरा बड़ा देश है| भारत के पश्चिम में पाकिस्तान, उत्तर-पूर्व में चीन, नेपाल, और भूटान और पूर्व में बांग्लादेश और म्यांमार देश स्थित हैं। हिन्द महासागर में इसके दक्षिण पश्चिम में मालदीव, दक्षिण में श्रीलंका और दक्षिण-पूर्व में इंडोनेशिया है। भारत उत्तर-पश्चिम में अफ़गानिस्तान के साथ सीमा का दावा करता है। इसके उत्तर में हिमालय पर्वत है। दक्षिण में हिन्द महासागर है। पूर्व में बंगाल की खाड़ी है। पश्चिम में अरब सागर है। भारत में कई बड़ी नदियाँ है। गंगा नदी भारतीय सभ्यता में बहुत पवित्र मानी जाती है। अन्य बड़ी नदियाँ ब्रह्मपुत्र, यमुना, गोदावरी, कावेरी, कृष्णा, चम्बल, सतलज, बियास हैं।
 +
 +==== 2007-2008 ====
 +
 +=== Rumunština ===
 +Limba română (sau dacoromână) este o limbă indo-europeană, din grupul italic, făcând parte din subgrupul oriental al limbilor romanice. Printre limbile romanice, româna este a cincea ca mărime după numărul de vorbitori, în urma spaniolei, portughezei, francezei şi italienei.
 +
 +=== Svahilština ===
 +Kiswahili ni lugha ya kibantu yenye misamiati mingi ya kiarabu inayozungumzwa katika eneo kubwa la Afrika ya Mashariki. Lugha hii ina utajiri mkubwa wa misamiati na misemo na mithali na mashairi na mafumbo na vitendawili na nyimbo. Nayo inatumika katika mashule kufundishia elimu mbali mbali za dini na dunia, na kuna vitabu vingi vilivyotungwa kwa kutumia lugha hii, vikiwa vya hadithi au hekaya au riwaya.
 +
 +=== Telugština ===
 +తెలుగు, భారత దేశములోని దక్షిణ ప్రాంతములోని ఆంధ్రప్రదేశ్ రాష్ట్రపు అధికార భాష, మరియు దాని పక్క రాష్ట్రములయిన తమిళనాడు, కర్ణాటక, ఒరిస్సా, చత్తీస్‌గఢ్ ప్రజలు మాట్లాడే భాష. ప్రపంచంలో అత్యధికముగా మాట్లాడే వాటిలో పదిహేనవ స్థానములోనూ, భారత దేశములో రెండవ స్థానములోను నిలుస్తుంది. 2001 జనాభా లెక్కల ప్రకారం సుమారుగా ఏడుకోట్ల ముప్పై లక్షల మంది ఈ భాషను మాట్లాడతారు.
 +
 +Pokud je proti vašemu přesvědčení pracovat s textem, který si neumíte ani přečíst, zkuste ho prohnat programem [[telugu2latin.pl]]. Výstup vašeho pavouka ale samozřejmě musí být původní telužský text!
 +
 +=== Urdština ===
 +اردو انڈوآریائی زبانوں کی انڈو ایرانی شاخ کی ایک زبان ہے جس کا تعلق انڈويورپی زبانوں سے ہے۔اردو تيرھويں صدی ميں بر صغير ميں پيدا ہوئی ـ اردو پاکستان کی سرکاری زبان ہے اور بھارت کی سرکاری زبانوں ميں سے ايک ہے۔ اردو بھارت ميں 5 کروڑ اور پاکستان ميں دو کروڑ لوگوں کی مادری زبان ہے مگر اسے بھارت اور پاکستان کے تقریباً 50 کروڑ لوگ بول اور سمجھ سکتے ھیں ۔ جن میں سے تقریباً 10.5 کروڑ لوگ اسے باقاعدہ بولتے ھیں۔
 +
 +=== Vietnamština ===
 +Tiếng Việt hay Việt ngữ[2] là ngôn ngữ của người Việt (người Kinh) và là ngôn ngữ chính thức tại Việt Nam. Đây là tiếng mẹ đẻ của khoảng 85% dân cư Việt Nam, cùng với gần ba triệu Việt kiều ở hải ngoại, mà phần lớn là người Mỹ gốc Việt. Tiếng Việt còn là ngôn ngữ thứ hai của các dân tộc thiểu số tại Việt Nam. Mặc dù tiếng Việt có nguồn từ vựng vay mượn từ tiếng Hán và trước đây dùng chữ Hán (chữ Nho) để viết, sau đó được cải biên thành chữ Nôm, tiếng Việt được coi là một trong số các ngôn ngữ thuộc hệ ngôn ngữ Nam Á có số người nói nhiều nhất (nhiều hơn một số lần so với các ngôn ngữ khác cùng hệ cộng lại). Ngày nay tiếng Việt dùng bảng chữ cái Latinh, gọi là chữ Quốc Ngữ, cùng các dấu thanh để viết.
 +

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