Page 10 - Fister jr., Iztok, and Andrej Brodnik (eds.). StuCoSReC. Proceedings of the 2016 3rd Student Computer Science Research Conference. Koper: University of Primorska Press, 2016
P. 10
tate so izmerili samo na petih jezikih in jih primerjali z Predlagana sta tudi dva hibridna algoritma, ki bi naj iz-
N-grami spremenljive dolžine. Rezultati so dokaj podobni, boljšala natančnost zaznavanja jezika. Prvi hibridni pristop
HMM model v nekaterih primerih deluje malo bolje. je sekvenčni in deluje tako, da najprej izvedemo algoritem
CBA in če ta kot najboljši rezultat vrne enake frekvence za
Algoritem za detekcijo jezika je tudi metoda z N-grami [4], več jezikov, izvedemo še WBA. V tem primeru upoštevamo
kjer si ustvarimo profile jezikov in nato iz testnega besedila rezultate algoritma WBA.
ustvarimo N-grame ter preverimo kateremu profilu se naj-
bolj prilegajo. Ta metoda ima kar nekaj težav pri detekciji Druga hibridna metoda temelji na obeh algoritmih CBA in
v primerjavi s prejšnjimi ne glede na dolžino besedila. WBA. Pri drugem hibridnem pristopu oba algoritma izve-
demo paralelno in ko opravita izračune za vse jezike, se-
V članku [6] so predlagali identifikacijo z odločitvenimi dre- štejemo posamezne frekvence po enačbi (2) in nato razpo-
vesi. Eksperiment so izvedli le na dveh arabskih jezikih: znamo, za kateri jezik gre na podlagi postopka opisanega
arabščini in perzijščini. Za oba jezika je metoda delovala pri CBA.
zelo dobro.

3. METODE ZA IDENTIFIKACIJO JEZIKOV Sum = f reqCBA + f reqW BA (2)

V tem podpoglavju bomo opisali metode, ki so jih razvili v Naš doprinos je tretji hibridni algoritem, pri katerem smo
članku [3]. Te metode smo tudi implementirali. Detekcija uporabili drugačen izračun kot je pri ostalih algoritmih. Al-
poteka v več korakih. Najprej v program naložimo refe- goritem CBA smo polovično utežili, saj daje slabše rezultate.
renčne profile za vse jezike, tj. učni korpus besed in znakov, Prilagodili smo algoritem WBA. Tu smo upoštevali vrstni
nato preberemo datoteko ali več datotek. Iz njih odstranimo red najpogostejših besed. Frekvence za besede se izračunajo
nepotrebne znake, ki bi lahko vplivali na detekcijo in bese- po enačbi (3):
dilo razrežemo na besede in znake. Nad temi podatki nato
opravimo detekcijo. (N − rank)/N, (3)

Prvi algoritem se imenuje CBA (angl. Character Based kjer rank predstavlja red pogostosti besede v določenem je-
identification Algorithm) in temelji na znakih v jeziku. Učni ziku, N pa število besed v učnem korpusu, ki pri vseh je-
korpus uporablja zbirko predefiniranih znakov za vsak je- zikih znaša dvajset. Red najpogostejše besede se začne z 0
zik. Algoritem izračuna frekvenco vsakega znaka v bese- in se pri manj pogostejših besedah nadalje poveča za 1. Za
dilu. Nato sešteje vse frekvence po enačbi (1). Na koncu primer vzamemo tri besede. Prva beseda se nahaja na pr-
klasificiramo besedilo glede na najvišjo frekvenco. vem mestu, druga na petem, tretja pa na dvajsetem mestu
najpogostejših besed v jeziku. Število vseh najpogostejših
Sumi = f requencyij (1) besed je dvajset. Za prvo besedo izračunamo frekvenco kot
(20 - 0) / 20 = 1, za drugo (20 - 4) / 20 = 0.8 in za tretjo
j=1 (20 - 19) / 20 = 0.05. Če skupaj strnemo metodo, dobimo
naslednjo enačbo:

Problem se pojavi, ko več jezikov deli skupni nabor učnih Sum = 1 ∗ f reqCBA + modF reqW BA, (4)
znakov in zaradi tega dobi isto frekvenco pri seštevku zna- 2
kov. To rešimo tako, da sledimo posebnemu testnemu zapo-
redju za vsak jezik:

if max_f req = slo_f req and max_f req = bos_f req kjer se modFreqWBA izračuna po enačbi (3).
then Return Slovenian
else Pass to next test 4. EKSPERIMENT
end if 4.1 Ucˇni in testni korpus

Kjer je max_freq največji seštevek vseh frekvenc, slove- Za učni korpus in testna besedila smo uporabili kodiranje
nian_freq in bos_freq pa sta frekvenci za posamezen jezik. UTF-8, saj podpira največ znakov, ki jih vsebujejo testirani
jeziki.
Zaradi različnih jezikov smo sami definirali vrstni red jezi-
kov. Algoritem ponavljamo v naslednjem zaporedju: hrva- V naši raziskavi smo se osredotočili na jezike, ki so si med
ščina, srbščina (latinica), bosanščina, slovenščina, češčina, seboj podobni. Zaradi tega smo sestavili svoj učni in testni
poljščina, slovaščina, makedonščina, bolgarščina. Ta način korpus. Potrebne informacije smo pridobili na svetovnem
ni najboljši, saj lahko različne vhodne jezike identificiramo spletu. Pri učnem korpusu smo definirali besede in znake,
različno dobro. ki zaznamujejo jezik. V članku [3] so za razpoznavo Upora-
bili dvajset najpogostejših besed za posamezen jezik in nekaj
WBA (angl. Word Based identification Algorithm) je zelo znakov, na osnovi katerih se jezik razlikuje od drugih. Na
podoben prejšnjemu algoritmu, le da deluje nad besedami enak način smo se tudi mi lotili izdelave korpusa. Ta vse-
besedila, ki ga identificiramo. Besedilo razčlenimo na be- buje podatke za devet jezikov. Večina jezikov si je med se-
sede in izračunamo frekvence za vsako besedo. Nadaljnja boj podobna, saj le-ta spadajo v skupino slovanskih jezikov.
klasifikacija deluje enako, kot je opisano v metodi CBA. Razpoznavali smo naslednje jezike: bolgarščina, bosanščina,

StuCoSReC Proceedings of the 2016 3rd Student Computer Science Research Conference 10
Ljubljana, Slovenia, 12 October
   5   6   7   8   9   10   11   12   13   14   15