• Rezultati Niso Bili Najdeni

Odjemalec elektronske poˇste

Zadnji korak je povezovanje programa z odjemalcem elektronske poˇste. Upo-rabili smoGmail, ki je brezplaˇcna e-poˇstna storitev, ki jo ponuja Google. Ta odjemalec elektronske poˇste smo izbrali, saj je enostaven za uporabo in ker omogoˇca enostavno povezovanje s programom preko Gmail APIja. Veˇc o Gmail APIju smo opisali v razdelku 4.3.2. V nadaljevanju pa opiˇsemo naˇcin povezave, ki smo jo uporabili v konˇcnem sistemu.

Najprej smo ustvarili nov projekt v raˇcunalniˇskem okolju Google Cloud (angl. Google Cloud Platform). Nato smo v projektu omogoˇcili Gmail API in dodali avtorizacijo in avtentikacijo za program. Uporabili smo API Keys in OAuth 2.0 Client IDs za omogoˇcanje Gmail APIja v programu. Ker

Diplomska naloga 33 smo uporabili razliˇcico Gmail APIja, ki je namenjen razvijanju in testira-nju, smo v raˇcunalniˇskem okolju Google Cloud za projekt dodali ˇse ne-kaj testih uporabnikov. Gmail API je bil za tem pripravljen za uporabo v programu. Slika 5.2 prikazuje izsek naˇsega projekta AcademicSpamFilter v raˇcunalniˇskem okolju Google Cloud.

Slika 5.2: Izsek pregledne ploˇsˇce projekta na raˇcunalniˇskem okolju Google Cloud.

V programu je najprej bilo potrebno povezati Gmail API in ga avten-ticirati. To smo naredili z datoteko credentials.json, ki smo jo generi-rali v raˇcunalniˇskem okolju Google Cloud. Nato smo napisali funkcijo, ki preveri, ali ˇze obstajajo dovoljenja za dostopanje do nekega elektronskega nabiralnika. ˇCe da, program prebere dovoljenja iz datoteke token.json in se poveˇze z Gmail APIjem. ˇCe dovoljenja ˇse ne obstajajo, ali pa so pote-kla, program odpre okno za prijavo v Gmail sistem in prosi uporabnika za dovoljenje, da program bere in spreminja vsebino elektronskega nabiralnika.

Primer dovoljenja je prikazan na sliki 5.3

Ce se uporabnik strinja z uporabo aplikacije, se dovoljenja shranijo v da-ˇ

Slika 5.3: Okno, ki se odpre ob prvem klicu programa in zahteva dovoljenje za dostop do uporabnikovega elektronskega nabiralnika.

totekotoken.json. Ob naslednjem zagonu programa se uporabniku zato ni veˇc potrebno prijavljati, ampak se njegova sporoˇcila avtomatiˇcno klasifici-rajo.

Ce je povezovanje zˇ Gmail APIjemuspeˇsno, se program nadaljuje z bra-njem uporabnikovih neprebranih sporoˇcil. V primeru, da neprebrana spo-roˇcila ne obstajajo, se izpiˇse sporoˇcilo: "No messages found." in program se zakljuˇci. V nasprotnem primeru pa se iz podatkov, pridobljenih z Gmail APIjem, generira slovar s kljuˇci Subject (zadeva), Sender (poˇsiljatelj), Re-ceiver (prejemnik), Date(datum prejema) in Body (telo sporoˇcila).

Sporoˇcila v obliki slovarja je nato potrebno preurediti v obliko, primerno

Diplomska naloga 35 za klasifikator, podobno kot smo to naredili za sporoˇcila v uˇcni mnoˇzici (glej razdelek 5.2). Tako smo namesto seznamov slovarjev dobili seznam obdelanih besedil. Ta seznam smo nato s pomoˇcjo shranjenih vektorjev spremenili v seznam vektorjev in ga pretvorili v matriko.

Slika 5.4: Izsek programa, ki neprebranim sporoˇcilom, klasificiranim kot nezaˇzelena akademska sporoˇcila, doda oznako ACADEMIC SPAM.

Naslednji korak je nalaganje shranjenega klasifikatorja in klasifikacija neprebranih sporoˇcil. Ce klasifikator oznaˇˇ ci katerega izmed sporoˇcil kot nezaˇzeleno akademsko poˇsto, se izvede del programa za posodobitev oznak.

Najprej program prekoGmail APIja prebere vse oznake, ki obstajajo v upo-rabnikovem elektronskem nabiralniku, in preveri, ali je katera med njimi

ACADEMIC SPAM. ˇCe oznaka ˇze obstaja, se sporoˇcilom, ki jih je klasifikator oznaˇcil kot nezaˇzelena, doda ta oznaka. Ce oznaka ˇse ne obstaja, pa seˇ ustvari nova oznaka ACADEMIC SPAM in sistem generira sporoˇcilo, ki upo-rabnika prosi, naj ponovno zaˇzene program, da se oznaka doda neprebra-nim sporoˇcilom. Slika 5.4 prikazuje funkcijo add label(), ki neprebranim sporoˇcilom, ki jih klasifikator klasificira kot nezaˇzelena akademska sporoˇcila, doda oznako ACADEMIC SPAM.

Rezultat zagona programa in klasifikacije neprebranih sporoˇcil je oznaka ACADEMIC SPAM, ki se prikaˇze na ustreznih sporoˇcilih. Na sliki 5.5 je prikazan primer takˇsne klasifikacije v Gmailu. Pred zadevo sporoˇcil, klasificiranih kot nezaˇzelena akademska sporoˇcila, se pojavi oznakaACADEMIC SPAM. Hkrati pa lahko na levi strani v seznamu vseh oznak opazimo oznako ACADEMIC SPAM, kjer lahko najdemo vsa sporoˇcila, ki so bila v preteklosti oznaˇcena kot neza-ˇzelena akademska sporoˇcila.

Slika 5.5: Izsek elektronskega nabiralnika v Gmailu, kjer sta bili dve nepre-brani sporoˇcili klasificirani kot nezaˇzalena akademska poˇsta.

Poglavje 6

Testiranje in rezultati

Cilj filtra nezaˇzelene akademske elektronske poˇste je ˇcim boljˇsa detekcija nezaˇzelenih akademskih elektronskih sporoˇcil. To pomeni, da je ˇcim manj sporoˇcil, ki niso nezaˇzelena akademska elektronska sporoˇcila, oznaˇcenih kot nezaˇzelena in da hkrati filter izpusti ˇcim manj nezaˇzelenih akademskih elek-tronskih sporoˇcil. Zato smo morali uporabiti naˇcin, kako doloˇciti uspeˇsnost filtra. To smo naredili z metrikami uspeˇsnosti, in sicer smo uporabili kla-sifikacijsko toˇcnost, natanˇcnost, priklic, mero F1 in povrˇsino pod krivuljo ROC. Za laˇzjo primerjavo uspeˇsnosti modelov smo uporabili Friedmanov in Nemenyijev test.

6.1 Metrike uspeˇ snosti

Preden opiˇsemo uporabljene metrike uspeˇsnosti, definiramo nekaj pojmov in kratic, ki jih bomo uporabljali v nadaljevanju.

Pravilno pozitivni primeri (angl. true positive), so primeri, ki jih klasifici-ramo kot pozitivne in so tudi v resnici pozitivni. Za ˇstevilo takˇsnih primerov v nadaljevanju uporabimo kratico TP.

Pravilno negativni primeri (angl.true negative) so podobno definirani kot primeri, ki jih klasificiramo kot negativne in so tudi v resnici negativni. V nadaljevanju ˇstevilo pravilno negativnih primerov oznaˇcimo sTN.

37

Napaˇcno pozitivni primeri (angl. false positive) so tisti primeri, ki smo jih oznaˇcili kot pozitivne, vendar so v resnici negativni. Za ˇstevilo takˇsnih primerov bomo uporabljali kratico FP.

Napaˇcno negativni primeri (angl. false negative) so obratno kot napaˇcno pozitivni, klasificirani kot negativni, vendar so v resnici pozitivni. ˇStevilo njihovih primerov bomo oznaˇcili s kratico FN.

Klasifikacijska toˇcnost (angl. classification accuracy) predstavlja deleˇz pravilno klasificiranih primerov in je definirana kot

Klasif ikacijska toˇcnost= T P +T N

T P +T N +F P +F N (6.1) Natanˇcnost(angl.precision) je deleˇz pravilno pozitivno oznaˇcenih primerov med vsemi primeri, ki jih je klasifikator oznaˇcil kot pozitivne. Izraˇcunamo jo s formulo

N atanˇcnost= T P

T P +F P (6.2)

Priklic (angl.recall) predstavlja razmerje med pravilno pozitivnimi primeri in vsemi primeri v razredu pozitivnih. Izraˇcunamo ga s formulo

P riklic= T P

T P +F N (6.3)

Mera F1 (angl. F1-score) je harmoniˇcno povpreˇcje natanˇcnosti in priklica ter jo izraˇcunamo s formulo

F1 = 2·natanˇcnost·priklic

natanˇcnost+priklic (6.4) Povrˇsina pod krivuljo ROC(angl.area under the curve), ki jo oznaˇcujemo z oznako AUC, nam pove uspeˇsnost modela glede na povrˇsino pod krivuljo

Diplomska naloga 39 ROC. Krivulja prikazuje deleˇz pravilno pozitivnih primerov v odvisnosti od deleˇza napaˇcno pozitivnih primerov pri razliˇcnih verjetnostih, da je primer klasificiran kot pozitiven. Povrˇsina pod krivuljo ROC ima vrednost med 0 in 1, pri ˇcemer vrednost 1 pomeni najboljˇsi rezultat.

deleˇz pravilno pozitivnih= T P

T P +F N (6.5)

deleˇz napaˇcno pozitivnih= F P

F P +T N (6.6)