2. domača naloga: podobnost jezikov

Spodnja slika prikazuje hierarhijo indoevropskih jezikov. Jeziki so postavljeni v hierarhijo glede na izvor, kar lepo sovpada s podobnostjo med njimi. V tej nalogi boste z analizo podobnosti med jeziki poskusili ustvariti podobno hierarhijo.

 

 

Priložena datoteka vsebuje Splošno deklaracijo človekovih pravic v 263 jezikih. To besedilo je prevedeno v rekordno število jezikov: spletna stran Združenih narodov jih ponuja kar 463 (v priloženi datoteki so zgolj jeziki, ki so na voljo v obliki HTML). Deklaracijo v zapisu UTF-8 odprite z open(datoteka, "rt", encoding="utf8").read(). Uporabljajte Python 3.

  1. Izmed ponujenih jih izberite vsaj dvajset, zgradite hierarhijo jezikov in jo komentirajte. Poleg jezikov v latinici smiselno vključite še jezike v vsaj dveh drugih pisavah; denimo v cirilici ali v grški pisavi. (70%)
  2. Kodo, razvito v zgornji točki nadgradite s programom, ki zna za poljubno besedilo (v enem izmed izbranih jezikov) povedati, za kateri jezik gre. Predlagajte in implementirajte tudi tehniko, ki za dano besedilo oceni, s kakšno verjetnostjo pripada v vašem programu zajetim jezikom (poročajte npr. o pripadnosti trem najbolj verjetnim jezikom). Program preizkusite na desetih malo daljših stavkih ali odlomkih, ki jih spišete sami ali pa poiščete kje na internetu. (30%)

Podobnost med jeziki merite s primerjavo frekvenc parov sosednjih črk. Problem različnih abeced rešite s transliteracijo (denimo s knjižnico unidecode).

Dodatne obrazložitve: Pri nalogi lahko uporabite katerekoli knjižnjice (lepo implementacijo razvrščanja in dendrograma vsebuje scipy), vendar morate razdaljo med besedili meriti s cosinusno razdaljo in to nujno brez uporabe polnih matrik. Pri računanju razdalj morate upoštevati le pare, ki jih dani besedili dejansko vsebujeta. Vaš postopek bi moral delovati podobno hitro, četudi bi namesto parov sosednjih črk primerjali enajsterice sosednjih črk. Zato ne bo dovolj, če za razvrščanje uporabite matriko, kjer so stolpci vsi možni pari črk. Kot rezultat prvega dela naloge želimo grafičen izris hierarhije z jasnim prikazom razdalj.

Oddaja: Oddajte poročilo in izvorno kodo, oboje v eni skupni .zip datoteki. Poročilo mora biti napisano s predpisano predlogo.

Dodatno (+20%): Na spletu najdite novičarske strani v prej izbranih dvajsetih jezikih in ponovite analizo na novicah. Komentirajte rezultate.

Dodatno (+10%): V učbeniku za finščino je vaš asistent prebral, da sta finščina in madžarščina (ugrofinska jezika) tako narazen, kot sta nemščina ali angleščina od perzijščine. Analizirajte trditev s priloženimi podatki.