1 / 14

Pavouk - rumunština

Pavouk - rumunština. Martin Popel. Naučení frekvenční charakteristiky jazyka Čištění dokumentů Vlastní pavouk Wikipedia Rumunština. Naučení frekvencí. Je-li málo dat, lze

Download Presentation

Pavouk - rumunština

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 • Neutralizovat vliv opakujících se slovPrvní výskyt slova:$xgram{$_}++; $xgramu++;Další výskyty téhož slova:$xgram{$_} += $c; $xgramu+= $c; • 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.346934068377748 2012568 de 0.0427298005002577 247876 …

  5. Rozpoznání jazyka • Spočítat vzdálenost (<0,1>) zvlášť prounigramy, 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í dokumentuObecné 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í dokumentuJiné 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&nbsp;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í pavoukURL 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/ 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ářů:…<div id="contentSub"></div> <!-- start content --> <p><b>Daca</b> este un paloş curb, armă caracteristică … <!-- end content --> • 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 '<!-- start content -->'; $wiki_content = 0 if $text eq '<!-- end content -->'; } sub text_hook($) { if ($dok_zanoreni{'body'} and !$dok_zanoreni{'script'} and $wiki_content and (!$wiki || !$dok_zanoreni{'table'})) { $odstavec .= shift; } }

  13. 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 Rumunština

  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

More Related