Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilMarie Jarošová
1
Pavouk - rumunština Martin Popel
2
Naučení frekvenční charakteristiky jazyka Čištění dokumentů Vlastní pavouk Wikipedia Rumunština
3
Naučení frekvencí Je-li málo dat, lze 1.Neutralizovat vliv opakujících se slov První výskyt slova: $xgram{$_}++; $xgramu++; Další výskyty téhož slova: $xgram{$_} += $c; $xgramu += $c; 2.Sehnat více dat Učit se frekvence na několikrát Najít zdroj bez jiných jazyků
4
Naučení frekvencí Ukládat i absolutní četnosti – možnost budovat frekvenční slovník postupně Odříznout „chvost“ (např. rel. frek. < 0.001) a přepočítat frekvence, aby sčítaly do 1. Ukládat i častá slova (ale zvolit práh např. nad 100 výskytů) Úprava zadání Sekce se slovy oddělena prázdným řádkem [[ostatní]]0.3469340683777482012568 de0.0427298005002577 247876 …
5
Rozpoznání jazyka Spočítat vzdálenost ( ) zvlášť pro unigramy, bigramy a trigramy a zprůměrovat. Spočítat kolik procent slov z určovaného odstavce je pokryto slovníkem. Z těchto dvou vzdáleností vážený průměr (např. pokrytí * 3 + x-gram-vzdálenost / 4) Odstranit ze slovníku anglická slova? Co čísla?
6
Čištění dokumentu Obecné otázky Odstranit krátké odstavce (< 70 znaků)? Každý odstavec jen jednou? Partial match ??? (např. hashovat pomocí crc obě poloviny odstavce zvlášť) „modified by user xy at 22:27“
7
Čištění dokumentu Jiné jazyky Seznam „nepřátelských“ jazyků a jejich nejčastějších slov (the, of, with,…) Vymazat odstavce obsahující tato slova. Pro některá využití korpusu nepřijatelné. Může se hodit pro vytvoření textu, ze kterého se určí frekvence (slovníku).
8
Čištění dokumentů Pevná mezera use HTML::Entities; my $odst="Za v se píše pevná mezera."; print "$odst\n"; decode_entities($odst); print "$odst\n"; my $ods_slov = ($odst=~s/\s+/ /g) + 1; print "$ods_slov slov: $odst\n"; #6 slov
9
Vlastní pavouk URL my $url = URI->new( 'http://aBc.De:80/f/../g/h.html?p1=x&p2=y#frag')->canonical; $url->scheme eq ‘http’; $url->host eq ‘abc.de’; $url->fragment eq ‘frag’; $url->path eq ‘/f/../g/h.html’; $url->opaque eq ‘//abc.de/f/../g/h.html?p1=x&p2=y’; Postup: return if lc($adresa) =~ m!$prefiltr_neg!o); #obrázky atd. my $url1 = URI->new_abs($adresa, $dok_base)->canonical; my $url = $url1->scheme.':'.$url1->opaque; #bez fragmentu return if exists $nalezene_adresy{$url}; return if ($url !~ m!$filtr_poz!o); $nalezene_adresy{$url} = 1; push @dok_odkazy, $url;
10
Vlastní pavouk Dokument i nalezené odkazy si ukládat zvlášť Přidat do korpusu (a odkazy do fronty) až, je-li dokument „kvalitní“. Určí se např. z počtu „kvalitních“ odstavců, případně i počtu odstavců duplicitních, krátkých či cizojazyčných. Paralelní stahování z více serverů…
11
Wikipedia http://download.wikipedia.org/ http://static.wikipedia.org/downloads/November_2006/ro/http://download.wikipedia.org/ http://static.wikipedia.org/downloads/November_2006/ro/ archiv (7z) 67 M, rozbalené 2 GB, vyčištěný korpus 40 MB (5,8 MW, 50 000 dokumentů, cca 5 minut čištění) pavouk.pl –f wiki/ro/d > korpus_wiki_ro_d Stránky uživatelů, obrázků, kategorií,… mají v názvu „~“ ( Discuţie_Utilizator~Dbacosit_b709.html ) Obsah článku lze v html poznat podle komentářů: … Daca este un paloş curb, armă caracteristică … Dále odstranit: pahýly (stub), tabulky,…
12
Wikipedia $parser->handler(comment => \&comment_hook, 'text') if $wiki; sub comment_hook($) { my $text = shift; $wiki_content = 1 if $text eq ' '; $wiki_content = 0 if $text eq ' '; } sub text_hook($) { if ($dok_zanoreni{'body'} and !$dok_zanoreni{'script'} and $wiki_content and (!$wiki || !$dok_zanoreni{'table'})) { $odstavec.= shift; }
13
Rumunština Wiki eiarntulocsdmpă, ă0.0212 ş0.0094 ţ0.0088 î0.0086 â0.0042 Î0.0010 Web aietrnulcsodmp, ă0.0023 ţ0.0012 ş0.0008 î0.0008 â0.0004 Î0.00005
14
Rumunština „k“ a „y“ jen v cizích slovech (ale hidrant) Nejčastější plnovýznamová slova: este (je), fost (byl), sunt (jsem/jsou), era (býval), fiind (jedná [se o]), are (má), anul (rok), mare (velký), două (dvě), parte (část, strana), poate (může), multe (hodně), judeţul (župa) război 6917, pace 594 moarte 1924, naşterea 622
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.