Univerza v Ljubljani
Fakulteta za raˇ cunalniˇ stvo in informatiko
Anja Vreˇcer
Filter nezaˇ zelene elektronske poˇ ste za akademski svet
DIPLOMSKO DELO
UNIVERZITETNI ˇSTUDIJSKI PROGRAM PRVE STOPNJE
RA ˇCUNALNIˇSTVO IN INFORMATIKA
Mentor : prof. dr. Zoran Bosni´ c
Ljubljana, 2022
diplomske naloge je potrebno pisno privoljenje avtorja, fakultete ter mentorja.
Kandidat: Anja Vreˇcer
Naslov: Filter nezaˇzelene elektronske poˇste za akademski svet
Vrsta naloge: Diplomska naloga na univerzitetnem programu prve stopnje Raˇcunalniˇstvo in informatika
Mentor: prof. dr. Zoran Bosni´c
Opis:
Kandidatka naj v diplomski nalogi obravnava problematiko akademske neza- ˇzelene elektronske poˇste. Pregleda naj obstojeˇce vire in razvije naj klasifika- tor, ki je specializiran za zaznavanje akademske nezaˇzelene poˇste. Za potrebe uˇcenja klasifikatorja naj pridobi smiselne mnoˇzice elektronskih sporoˇcil. Pri- merja in evalvira naj razliˇcne pristope ter naj jih primerja s tistimi v litera- turi.
Zahvaljujem se mentorju, prof. dr. Zoranu Bosni´cu za nasvete, odliˇcno vodstvo in odzivnost med izdelavo diplomske naloge. Iskreno se zahvaljujem tudi svoji druˇzini in fantu Aljaˇzu za podporo in spodbude v ˇcasu ˇstudija.
Kazalo
Povzetek Abstract
1 Uvod 1
2 Nezaˇzelena akademska elektronska poˇsta 3
2.1 Nezaˇzelena vabila . . . 3
2.2 Zavajanje . . . 5
2.3 Generiˇcna struktura . . . 6
3 Obstojeˇce metode filtriranja sporoˇcil 9 3.1 Modeli strojnega uˇcenja . . . 9
3.2 Naivni Bayes . . . 10
3.3 Metoda podpornih vektorjev . . . 11
3.4 Nakljuˇcni gozd . . . 12
3.5 Logistiˇcna regresija . . . 12
3.6 Nevronska mreˇza . . . 14
4 Zasnova filtra akademskih sporoˇcil 19 4.1 Opredelitev zahtev . . . 19
4.2 Opis sistema . . . 20
4.3 Uporabljena orodja . . . 23
5.2 Obdelava elektronskih sporoˇcil . . . 25
5.3 Tehnike obdelave besedila . . . 28
5.4 Uˇcenje modela in napovedovanje . . . 31
5.5 Odjemalec elektronske poˇste . . . 32
6 Testiranje in rezultati 37 6.1 Metrike uspeˇsnosti . . . 37
6.2 Statistiˇcni test za primerjavo modelov . . . 39
6.3 Evalvacija in rezultati . . . 40
7 Zakljuˇcek 47
Literatura 49
Povzetek
Naslov: Filter nezaˇzelene elektronske poˇste za akademski svet Avtor: Anja Vreˇcer
Nezaˇzelena akademska elektronska sporoˇcila so nezaˇzelena sporoˇcila, ki jih prejemajo profesorji, raziskovalci in drugi akademiki. Njihov namen je priti do zasluˇzka z zahtevanjem plaˇcila za objavo prejemnikovega ˇclanka v re- viji, s promoviranjem komercialnih revij ali plaˇcljivih konferenc. Neizku- ˇsenemu prejemniku se lahko takˇsna sporoˇcila sicer zdijo dobronamerna in laskava, vendar pa odgovarjanje nanje lahko ˇskoduje prejemnikovi karieri. V okviru diplomske naloge smo izdelali filter nezaˇzelene akademske elektronske poˇste za Gmail, ki izmed neprebranih elektronskih sporoˇcil v uporabniko- vem elektronskem nabiralniku oznaˇci takˇsna nezaˇzelena sporoˇcila. Preizkusili smo veˇc klasifikacijskih modelov, v konˇcnem sistemu pa smo uporabili naju- speˇsnejˇsega, in sicer nevronsko mreˇzo v kombinaciji z vektorsko vloˇzitvijo be- sed. Izdelan sistem ima moˇznost posodobitve klasifikacijskega modela glede na nezaˇzeleno akademsko elektronsko poˇsto, ki jo je uporabnik prejel v prete- klosti. Uspeˇsnost modela smo primerjali z obstojeˇcimi metodami klasifikacije nezaˇzelene elektronske poˇste in potrdili, da je izdelan model primerljiv ali celo boljˇsi od obstojeˇcih metod.
Kljuˇcne besede: nezaˇzelena elektronska poˇsta, klasifikacija, filter, akadem- ska sporoˇcila.
Abstract
Title: Academic spam filter Author: Anja Vreˇcer
Academic spam messages are unsolicited e-mails that professors, researchers, and other academics receive in their inboxes. Their purpose is to make money by charging fees to submit the receiver’s article in their journal, to promote commercial journals or payable conferences. An inexperienced receiver might think that messages of this kind are well-intended and flattering when in re- ality answering them could have devastating consequences in the receiver’s career. In this thesis, we developed an academic spam filter for Gmail that labels academic spam messages in the user’s inbox. We tested different clas- sification models for classifying academic spam and used neural networks in combination with word to vector embedding in our final system since it has shown to be the most effective. Users can also update the classifier in our system based on the academic spam messages that they have received in the past. We compared our model with the existing methods of spam classification and confirmed that it is comparable or even better than them.
Keywords: spam messages, classification, filter, academic spam.
Poglavje 1 Uvod
Elektronska poˇsta je v zadnjem ˇcasu postala ena najbolj uporabljenih aplika- cij za komunikacijo. Vsakodnevno jo uporablja na milijone ljudi, tako v sluˇzbi kot v prostem ˇcasu [32]. Slabost vsesploˇsne uporabnosti elektronske poˇste pa je vse veˇcja koliˇcina elektronskih sporoˇcil, ki jih prejemamo. Med njimi je tudi veliko nezaˇzelenih elektronskih sporoˇcil. Prebiranje vseh sporoˇcil nam zato vˇcasih vzame ogromno ˇcasa in energije.
Ker ˇzelimo ˇcim hitreje loˇciti nezaˇzelena sporoˇcila od drugih, uporabnih sporoˇcil, imajo mnogi poˇstni odjemalci ˇze vgrajene filtre nezaˇzelene elektron- ske poˇste. Vendar pa takˇsni filtri ne zaznajo vseh vrst nezaˇzelene elektronske poˇste. V diplomski nalogi se osredotoˇcimo na eno takˇsnih skupin nezaˇzelene elektronske poˇste, in sicer nanezaˇzeleno akademsko elektronsko poˇsto.
Profesorji in drugi akademiki v svoj elektronski nabiralnik stalno dobivajo vabila k objavljanju ˇclankov v razliˇcnih revijah, k sodelovanju na konferen- cah ali ponudbe odprtih delovnih mest. Takˇsne ponudbe se velikokrat ne navezujejo na prejemnikovo podroˇcje raziskovanja ali pa je takˇsnih ponudb preprosto preveˇc. Velik problem predstavljajo vabila k prispevanju ˇclankov za manj znane ali predatorske revije. Akademiki, ki se strinjajo z objavo svo- jega ˇclanka v takˇsnih revijah, tvegajo, da je njihova kariera lahko oˇskodovana.
Takˇsne revije namreˇc objavijo vsak ˇclanek, ki ga prejmejo in s tem razvelja- vijo akademsko vrednost objavljenih ˇclankov, akademika pa zaznamujejo kot
1
soavtorja predatorske revije [29]. Hkrati se nepazljivemu prejemniku lahko zgodi, da preko sporoˇcila posreduje svoje osebne informacije osebam, ki imajo od tega finanˇcno korist [21].
Ker je vsebina akademskih nezaˇzelenih elektronskih sporoˇcil pogosto pre- cej drugaˇcna od nezaˇzelenih elektronskih sporoˇcil, ki jih zazna veˇcina na- vadnih filtrov nezaˇzelene poˇste, mora prejemnik sam loˇcevati uporabna in neuporabna sporoˇcila. Cilj diplomske naloge je razviti orodje za filtriranje nezaˇzelenih akademskih elektronskih sporoˇcil, ki bi lahko bilo v pomoˇc aka- demikom, ki ˇzelijo hitreje loˇciti nezaˇzeleno akademsko poˇsto od uporabne.
V prvem vsebinskem poglavju (Poglavje 2) opredelimo nezaˇzeleno aka- demsko elektronsko poˇsto. Opiˇsemo vrste nezaˇzelene akademske elektronske poˇste in opiˇsemo strukturo ter njene glavne lastnosti. V poglavju 3 pregle- damo obstojeˇce reˇsitve za filtriranje nezaˇzelene elektronske poˇste.
Sledijo poglavja o programski reˇsitvi, ki smo jo razvili v okviru diplomske naloge. V poglavju 4 predstavimo zasnovo programa in opiˇsemo njegovo de- lovanje. Predstavimo tudi orodja, s katerimi je bil program ustvarjen. Temu sledi natanˇcnejˇsi opis implementacije v poglavju 5 in poglavje 6 z opisom testiranja in rezultatov. Na koncu ocenimo uporabnost naˇsega modela in podamo moˇznosti za nadaljnje izboljˇsave.
Poglavje 2
Nezaˇ zelena akademska elektronska poˇ sta
Nezaˇzelena akademska elektronska poˇsta (angl. academic spam) so nezaˇze- lena sporoˇcila, ki jih mnoˇziˇcno poˇsiljajo zaloˇzniki in nepristne revije pro- fesorjem in drugim akademskim raziskovalcem [17]. Veˇcina sporoˇcil vabi prejemnika k udeleˇzbi na raznih konferencah, k prijavi na prosto delovno mesto ali k objavljanju ˇclankov v revijah, ki se izdajajo za znanstvene, ven- dar je njihov glavni namen nepoˇsten zasluˇzek. Obstajajo tudi druge vrste nezaˇzelene akademske elektronske poˇste, ki s spletnimi stranmi, podobnimi resniˇcnim ali samoizvrˇsljivo programsko kodo skuˇsajo ukrasti prejemnikove osebne informacije oziroma vdreti v raˇcunalnik.
Oblike nezaˇzelene akademske elektronske poˇste natanˇcneje opiˇsemo v na- daljevanju. Natanˇcneje opiˇsemo vabila k objavljanju ˇclankov in vabila na konference ter zavajanje.
2.1 Nezaˇ zelena vabila
Izkoriˇsˇcevalske ali predatorske revije so revije, katerih glavni cilj ni ˇsirjenje znanja ali upoˇstevanje akademske kvalitete ˇclankov, ampak nepoˇsten zasluˇzek [31]. Profesorje in druge akademike skuˇsajo pretentati, da bi z njimi
3
sodelovali, s tem da bi jim plaˇcali za objavo svojih ˇclankov.
Glavne lastnosti [31] teh revij so:
• za objavo ˇclanka je potrebno plaˇcilo,
• revija se izdaja pogosto,
• za objavo je sprejeto nadpovpreˇcno veliko ˇclankov,
• ˇcas obdelave in pregleda ˇclankov sta nerealno hitra in
• kvaliteta objavljenih ˇclankov je slaba ali zelo neenakomerna.
Leta 2014 je knjiˇzniˇcar iz Univerze v Koloradu, Jeffrey Beall, sestavil dva seznama, in sicer seznam vpraˇsljivih zaloˇznikov in seznam vpraˇsljivih revij. Zapisal je, da obstajajo samo zato, da ˇcrpajo denar od avtorjev, ki morajo plaˇcati za to, da so njihovi ˇclanki sprejeti v revijo [31]. Beallov se- znam vpraˇsljivih revij (angl.Beall’s list of predatory journals) se najpogosteje uporablja pri identifikaciji izkoriˇsˇcevalskih revij. Obstajajo tudi druge zbirke sumljivih revij, kot na primer Alexa database in baza laˇznih spletnih strani Phish Tank database [4]. Tudi za pomoˇc pri identifikaciji pravih, strokov- nih revij obstajajo baze, kot je na primer Direktorij odprto-dostopnih revij (angl. Directory of Open Access Journals) [17].
Med sporoˇcili izkoriˇsˇcevalskih zaloˇznikov ali revij je akademikom, in ˇse posebej mladim raziskovalcem, vˇcasih teˇzko loˇciti prave ponudbe za delo ali objavljanje. Raziskovalci, ki ˇsele zaˇcenjajo svojo kariero, namreˇc ˇzelijo svoje znanje pokazati ˇsirˇsi javnosti in imajo za objavo svojih ˇclankov raje veˇc ponudb kot premalo. Hkrati se tudi oni vˇcasih znajdejo v situaciji, ko morajo poˇsiljati veliko koliˇcino enakih sporoˇcil razliˇcnim ustanovam, ko se na primer ˇzelijo prijaviti na prosto delovno mesto [29].
Ce se prejemnik odloˇˇ ci odgovoriti na omenjena sporoˇcila in se strinja z ob- javo svojega ˇclanka v takˇsnih revijah, je to lahko zelo slabo za njegovo kariero.
Takˇsne revije namreˇc ne pregledajo ˇclankov pred njihovo objavo in objavijo vsak ˇclanek, ki ga prejmejo [30]. S tem popolnoma razveljavijo akadem- sko vrednost objavljenih ˇclankov in zaznamujejo nadaljnjo kariero avtorjev
Diplomska naloga 5 ˇclankov. Slika 2.1 prikazuje primer nezaˇzelenega akademskega elektronskega sporoˇcila, ki je vabilo k objavljanju ˇclankov.
Slika 2.1: Primer vabila k objavljanju ˇclanka
Na podoben naˇcin so zasnovana vabila na konference. V veˇcini primerov se takˇsna vabila sploh ne navezujejo na prejemnikovo podroˇcje raziskovanja in ne obstajajo za ˇsirjenje znanja med podobno misleˇcimi akademiki, ampak je njihov namen oglaˇsevati svoje revije in sluˇziti [16]. Slika 2.2 prikazuje primer nezaˇzelenega vabila na konferenco.
2.2 Zavajanje
Druga vrsta nezaˇzelene akademske elektronske poˇste je zavajanje oziroma ribarjenje (angl. phishing attacks). Pri zavajanju so spletne strani, na katere elektronsko sporoˇcilo usmerja, ustvarjene z namenom, da prejemnik vanje vnese osebne podatke, kot so ˇstevilka banˇcne kartice, gesla in podobno [29].
Te spletne strani so narejene tako, da so podobne dejanskim stranem re- sniˇcnih organizacij, zato prejemnik velikokrat sploh ne ve, da gre za po- naredek [4]. Zavajajoˇca elektronska sporoˇcila so torej podvrsta nezaˇzelene elektronske poˇste, v kateri se poˇsiljatelj pretvarja, da je predstavnik neke
Slika 2.2: Primer vabila na konferenco
druge legitimne organizacije z namenom pridobivanja osebnih podatkov [11].
Sporoˇcila te vrste so veˇcinoma namenjena doloˇceni skupini ljudi ali doloˇceni organizaciji.
Se en naˇˇ cin, kako delujejo zavajajoˇca elektronska sporoˇcila je s samo- izvrˇsilno kodo. Ta naˇcin deluje tako, da se ob kliku na povezavo izvede skrit program in povzroˇci ˇskodo na prejemnikovem raˇcunalniku z vgraditvijo virusa, ki uniˇci prejemnikove datoteke ali pa ukrade osebne informacije, gesla in druge podatke iz njega [29].
2.3 Generiˇ cna struktura
Profesor Wahyudi je leta 2017 objavil ˇclanek [31], kjer je natanˇcno preuˇcil strukturo nezaˇzelene akademske elektronske poˇste, zato v nadaljevanju opi- ˇsemo glavne ugotovitve iz tega in drugih ˇclankov.
Generiˇcna struktura nezaˇzelene akademske elektronske poˇste je sesta-
Diplomska naloga 7 vljena iz pozdrava, napovedi, uvoda, osrednjega dela in zakljuˇcka. Velikokrat so uporabljeni laskajoˇci pozdravi in nazivi, kot sta “ugledni profesor” ali “ste strokovnjak na tem podroˇcju” [1]. V pozdravu sta lahko uporabljena tudi prejemnikova ime in priimek. Sporoˇcilo velikokrat izraˇza hvaljenje, laˇzne spodbude in obljublja nagrade ali karierne priloˇznosti [4, 30]. Poˇsiljatelj velikokrat zatrjuje, da je prebral prejemnikov ˇclanek in da to sporoˇcilo ni nezaˇzelena poˇsta (angl.spam) [29]. V veliki veˇcini sporoˇcilo govori o sploˇsni temi, ki se ne navezuje na prejemnika [1, 24]. ˇSe ena lastnost nezaˇzelene aka- demske elektronske poˇste je ta, da od prejemnika zahteva odgovor v nerealno kratkem ˇcasu [4]. V nekaterih primerih se tudi zgodi, da ˇce prejemnik ne odgovori na prvo sporoˇcilo, sledijo nova [1].
Tudi pri poˇsiljateljih nezaˇzelene akademske elektronske poˇste so prisotne nekatere skupne znaˇcilnosti. Poˇsiljatelji se ponavljajo ali poˇsiljajo pona- vljajoˇca sporoˇcila veˇc prejemnikom naenkrat [29]. Vˇcasih je elektronski na- slov zakrit, ponarejen ali pa se ne sklada s podpisom na koncu besedila [30].
Elektronski naslovi, ki niso zakriti imajo veˇcinoma uradno domeno institucije, ki ji ukradejo reference [4]. Poleg tega je v veliko primerih laˇzno predstavljena lokacija sedeˇza poˇsiljatelja [17]. To pomeni, da poˇsiljatelj v sporoˇcilo napiˇse drugo lokacijo, kot je dejanska lokacija, iz katere je bilo sporoˇcilo poslano.
Opisane znaˇcilnosti so povzete iz ugotovitev razliˇcnih ˇstudij. Tudi pri pregledovanju nezaˇzelene akademske elektronske poˇste, ki smo jo uporabili za uˇcno mnoˇzico, smo opazili podobne znaˇcilnosti. Nekateri filtri nezaˇzelene akademske elektronske poˇste sicer upoˇstevajo najdene skupne lastnosti teh sporoˇcil, vendar pa so to v veˇcini “na roko” napisana pravila, ki jih je za dobro delovanje potrebno stalno spreminjati. Zato v nadaljevanju preuˇcimo obstojeˇce metode filtriranja navadne nezaˇzelene elektronske poˇste, ki bi jih lahko uporabili pri gradnji filtra nezaˇzelene akademske elektronske poˇste.
Poglavje 3
Obstojeˇ ce metode filtriranja sporoˇ cil
3.1 Modeli strojnega uˇ cenja
Metode stojnega uˇcenja lahko razdelimo glede na nadzor uˇcenja modela v tri skupine: nadzorovano, nenadzorovano in delno nadzorovano uˇcenje. Pri filtriranju elektronske poˇste se za najboljˇsa izkaˇzeta nadzorovano in delno nadzorovano uˇcenje. Pri nadzorovanem uˇcenju je potrebno sporoˇcila na roko klasificirati kot nezaˇzelena ali zaˇzelena, oznaˇcena sporoˇcila pa nato upora- bimo za uˇcenje klasifikatorja [9]. Ker je roˇcna klasifikacija lahko zelo zamu- dna, ˇse posebej ˇce imamo opravka z veliko koliˇcino sporoˇcil, se pri filtriranju elektronske poˇste lahko uporabi tudi delno nadzorovano uˇcenje. V tem pri- meru se klasifikator nauˇci na manjˇsi oznaˇceni mnoˇzici elektronskih sporoˇcil, nato pa se postopoma dodajo neoznaˇceni primeri.
Koprinska in sod. [12] so v svojem ˇclanku opisali algoritem co-training.
Pri tem algoritmu se lastnosti razdelijo na dva dela in ustvari se dva neodvisna klasifikatorja. Nato se klasifikatorja uporablja izmeniˇcno, da se klasificira neoznaˇcene primere. Vsak klasifikator izbere primere, ki so najbolj zagotovo pravilno klasificirani in jih doda v bazo oznaˇcenih primerov. Klasifikatorja nato nadaljujeta z uˇcenjem in se uˇcita drug od drugega.
9
Obstojeˇci filtri nezaˇzelene elektronske poˇste uporabljajo veˇc razliˇcnih mo- delov strojnega uˇcenja. V nadaljevanju opiˇsemo tiste, ki smo jih preizkusili v diplomski nalogi.
3.2 Naivni Bayes
Naivni Bayes(angl.na¨ıve Bayes) je klasifikator, ki deluje na podlagi raˇcunanja verjetnosti [20]. Deluje tako, da doloˇci verjetnost ali je sporoˇcilo nezaˇzeleno ali ne, glede na besede, ki so v sporoˇcilu.
Elektronsko sporoˇcilo predstavimo kot vektor besed ⃗x = {x1, x2, ..., xn}, kjer je n ˇstevilo besed v sporoˇcilu. Naj bo c kategorija, kjer velja c ∈ {nezaˇzelen, zaˇzelen}. Potem se verjetnost, da sporoˇcilo pripada razredu cizraˇcuna z enaˇcbo
P(c|⃗x) = P(c)·P(⃗x|c)
P(⃗x) (3.1)
Pri tem velja:
P(⃗x) je apriorna verjetnost, da lahko nakljuˇcno izbrano elektronsko sporoˇcilo predstavimo kot vektor ⃗x,
P(c) je apriorna verjetnost, da je nakljuˇcno izbrano elektronsko sporoˇcilo iz razredac,
P(⃗x|c) je verjetnost, da lahko nakljuˇcno izbrano elektronsko sporoˇcilo, ki je iz razreda c, predstavimo kot vektor ⃗x.
V praksi je verjetnostP(⃗x|c) praktiˇcno nemogoˇce izraˇcunati, saj za vektor⃗x obstaja preveˇc moˇznih kombinacij. Zato predpostavimo, da so komponente vektorja ⃗x neodvisne in verjetnost P(⃗x|c) izraˇcunamo z enaˇcbo
P(⃗x|c) =
n
Y
i=1
P(xi|c) (3.2)
Iz tega sledi, da lahko, ali je sporoˇcilo nezaˇzeleno ali ne, izraˇcunamo z enaˇcbo CN B =arg maxc∈{nezaˇzelen,zaˇzelen}P(c)
n
Y
i=1
P(xi|c) (3.3)
Diplomska naloga 11
3.3 Metoda podpornih vektorjev
Metoda podpornih vektorjev (angl. support vector machine - SVM) je tehnika klasifikacije, pri katerem je osnovna ideja najti optimalno hiperrav- nino, ki kar najbolje loˇcuje pozitivne in negativne primere v vzorcu [20].
Primer metode podpornih vektorjev je prikazan na sliki 3.1.
Slika 3.1: Skica prikazuje primer metode podpornih vektorjev. Prikazana sta dva razreda in optimalna hiperravnina med njima.
Ce imamo dano mnoˇˇ zico primerov X = {(xi, yi)}, kjer je xi ∈ Rm in yi ∈ {+1,−1}, pri ˇcemer +1 prestavlja nezaˇzeleno elektronsko sporoˇcilo, -1 pa zaˇzeleno, potem je rezultat linearnega SVM enak:
y=w⃗·⃗x−b, (3.4)
Pri tem je y rezultat klasifikacije, w⃗ je vektor normalne teˇze, pri kate- rem poloˇzaji ustrezajo vektorju znaˇcilnosti elektronskega sporoˇcila⃗x, bpa je parameter pristranskosti.
Zelimo, da bi bile razdalje od hiperravnine do najbliˇˇ zjih pozitivnih in negativnih vzorcev ˇcim veˇcje, zato moramo reˇsiti optimizacijski problem mi- nimizacije enaˇcbe (3.5), ki ustreza enaˇcbi (3.6).
1
2||w||2 (3.5)
yi(w·x+b)≥1,∀i. (3.6)
3.4 Nakljuˇ cni gozd
Nakljuˇcni gozd (angl. random forest) je tehnika kategorizacije z napoved- nim ansamblom odloˇcitvenih dreves (angl. decision tree) [12]. Ansambel klasifikatorjev je kombinacija veˇc klasifikatorjev, ki v kombinaciji delujejo bolje kot vsak posamezen. V primeru nakljuˇcnega gozda so klasifikatorji odloˇcitvena drevesa, ki jih zgradimo tako, da so kot posamezna ˇcim boljˇsa, a se kar najbolj razlikujejo med sabo. To pomeni, da imajo odloˇcitvena drevesa razliˇcne topologije, parametre, naˇcine treniranja in uporabljajo razliˇcne uteˇzi.
Klasifikacija z nakljuˇcnim gozdom poteka tako, da vsako drevo v na- kljuˇcnem gozdu klasificira vhodni podatek. Konˇcni rezultat klasifikacije pa dobimo tako, da vzamemo rezultat, ki ga je doloˇcila veˇcina odloˇcitvenih dreves v nakljuˇcnem gozdu. Algoritem nakljuˇcnega gozda je prikazan na sliki 3.2.
Glede na ˇclanek Koprinske in sod. [12], je metoda nakljuˇcnega gozda boljˇsa od posameznih odloˇcitvenih dreves, SVM in naivnega Bayesa. Od posameznih odloˇcitvenih dreves je boljˇsa zato, ker ga je enostavno zgraditi, je bolj stabilen od odloˇcitvenih dreves, je natanˇcen in ker deluje hitro na velikih in visoko-dimenzionalnih podatkih.
3.5 Logistiˇ cna regresija
Logistiˇcna regresija (angl.logistic regression) je binarni klasifikacijski mo- del, ki vraˇca verjetnost, ali sporoˇcilo pripada doloˇcenemu razredu ali ne [34].
Diplomska naloga 13
Slika 3.2: Primer algoritma nakljuˇcnega gozda.
Pri logistiˇcni regresiji se napoved, ali je sporoˇcilo nezaˇzeleno ali ne, izraˇcuna glede na enaˇcbo (3.7).
P(Y = nezaˇzelen|x˜i) = exp( ˜xi·w)˜
1 + exp( ˜xi·w)˜ (3.7)
Pri tem jex⃗i ={xi,1, xi,2, ..., xi,n} vektor lastnosti sporoˇcila, wi pa sovpa- dajoˇci vektor uteˇzi. V enaˇcbi lahko z delom (⃗xi·w) ˇstevilo med⃗ −∞ in +∞
spremenimo v verjetnost med 0 in 1. ˇCe je izraˇcunana verjetnost veˇcja od 0.5, potem sporoˇcilo klasificiramo kot nezaˇzeleno, drugaˇce pa kot zaˇzeleno.
3.6 Nevronska mreˇ za
Nevronska mreˇza (angl. neural Network) je algoritem za klasifikacijo, ki je v zadnjem ˇcasu dosegel velik napredek, med drugim tudi na podroˇcju ob- delave naravnega jezika in besedil [15]. Algoritem klasifikacije elektronskih sporoˇcil z nevronsko mreˇzo se zaˇcne z izbiro parametrov nevronske mreˇze.
Tukaj se doloˇci ˇstevilo vhodov, ˇstevilo izhodov, ˇstevilo skritih nivojev ne- vronske mreˇze in ˇstevilo nevronov na vsakem nivoju. Omenjeni so le osnovni parametri, ki jih je nujno potrebno nastaviti pri nastavitvi nevronske mreˇze, v praksi pa je velikokrat potrebno nastaviti ˇse druge. Ko imamo izbrane parametre nevronske mreˇze, je naslednji korak uˇcenje nevronske mreˇze z mnoˇzico oznaˇcenih uˇcnih primerov. Zatem je nevronska mreˇza pripravljena na klasifikacijo novih elektronskih sporoˇcil [13].
Klasifikacija elektronskih sporoˇcil z nevronsko mreˇzo je sicer lahko zelo uspeˇsna, vendar je za dober rezultat potrebna velika koliˇcina uˇcnih podatkov in veliko ˇcasa za uˇcenje. Poleg tega je potrebno pravilno nastaviti parametre nevronske mreˇze, kar je lahko zelo dolgotrajna naloga. Ob vsaki klasifikaciji je namreˇc potrebno spremljati rezultat in spreminjati parametre tako, da je rezultat ˇcim boljˇsi.
Pri gradnji konˇcnega sistema smo si pomagali s tabelo, v kateri smo beleˇzili napredek ali nazadovanje ob spremembi doloˇcenih parametrov. Del rezultatov iz te tabele podamo in opiˇsemo v razdelku 6.3.2. V nadaljevanju pa opiˇsemo uporabljene parametre nevronske mreˇze.
Uporabljeni parametri nevronske mreˇ ze
Pri nevronski mreˇzi iz knjiˇznice sklearn smo uporabili parametre hidden layer sizes,activation,learning rateinmax iter. Parameterhidden layer sizespredstavlja ˇstevilo nevronov na vsakem nivoju nevronske mreˇze.
Doloˇcimo ga z n-terico ˇstevil, kjer ˇstevilo na i-tem mestu predstavlja ˇstevilo nevronov na i-tem skritem nivoju. Mi smo uporabili dva skrita nivoja, in sicer s ˇsestimi in dvema nevronoma.
Diplomska naloga 15 S parametrom activation doloˇcimo aktivacijsko funkcijo na skritih ni- vojih. Aktivacijska funkcija je funkcija, ki iz vhodov v nevron izraˇcuna iz- hod [26]. Na voljo imamo funkcije:
• identity- identiteta, linearna funkcija f(x) = x
• logistic- sigmoidna funkcija f(x) = 1+e1−x
• tanh- hiperboliˇcni tangens f(x) =tanh(x)
• relu- pragovna linearna funkcija ReLu f(x) =max(0, x) V naˇsem primeru smo uporabili funkcijo tanh.
S parametromlearning rate doloˇcimo hitrost uˇcenja za posodobitev uteˇzi.
Na voljo imamo konstantno (constant), manjˇsajoˇco (invscaling) in prila- godljivo (adaptive). Uporabili smo prilagodljivo obliko uˇcenja.
Zadnji doloˇceni parameter je max iter, s katerim doloˇcimo najveˇcje ˇstevilo iteracij. Izbrali smo 400 iteracij.
Druga knjiˇznica, ki smo jo uporabili pri implementaciji nevronskih mreˇz, jekeras. Za nevronske mreˇze iz te knjiˇznice lahko ˇse bolj natanˇcno doloˇcimo parametre. Uporabili smo dve obliki modela, in sicer sekvenˇcni model (Se- quential) in funkcijski API (Functual API). Pri obeh modelih moramo naj- prej definirati nivoje nevronske mreˇze, nato pa jih zloˇziti v model. Sekvenˇcni model je primeren za zlaganje nivojev, kjer ima vsak nivo natanko en vho- dni in natanko en izhodni tenzor oziroma vsebnik podatkov (angl. tensor).
Primer sekvenˇcnega modela, ki smo ga implementirali v okviru naloge, je prikazan na sliki 3.3.
Po drugi strani pa je nevronska mreˇza s funkcijskim APIjem nekoliko bolj fleksibilna. Z njim lahko zgradimo tudi nelinearno topologijo, deljene nivoje in celo veˇc vhodov ali izhodov. Primer modela s funkcijskim APIjem, ki smo ga ustvarili, je prikazan na sliki 3.4.
Kot je razvidno iz izsekov kode na slikah 3.3 in 3.4, sta oba modela sesta- vljena iz pribliˇzno enakih nivojev. Najoˇcitnejˇsa razlika pri definiciji obeh mo- delov je v tem, da pri sekvenˇcnem modelu najprej definiramo model in nanj
Slika 3.3: Primer definicije sekvenˇcnega modela nevronske mreˇze
Slika 3.4: Primer definicije nevronske mreˇze s funkcijskim APIjem
nato dodajamo nivoje s funkcijo .add(), pri funkcijskem APIju pa najprej definiramo vhod in izhod, ki ju nato samo “vstavimo” v model (9. vrstica).
Definicija skritih nivojev pa je pribliˇzno enaka v obeh primerih.
V 4. vrstici smo definirali vloˇzitveni nivo Embedding(), ki spremeni pozi- tivna ˇstevila (indekse) na vhodu v zgoˇsˇcene vektorje stalne dolˇzine. Naslednji nivo “sploˇsˇci” vektorje v enodimenzionalni vektor. Definirali smo ga v 6. vr- stici s funkcijo Flatten(). V 8. vrstici definiramo nivo, ki je gosto povezan (Dense) in aktivacijsko funkcijo. V obeh primerih smo uporabili sigmoidno funkcijo.
Diplomska naloga 17 Na koncu model konfiguriramo s funkcijo .compile(). Funkciji moramo podati ˇse nekaj paramterov, in sicer:
• optimizer - optimizacijska funkcija,
• loss- funkcija izgube,
• metrics- seznam metrik, ki doloˇcujejo uspeˇsnost modela v ˇcasu uˇcenja in testiranja.
Ceprav sta modela po zgradbi precej podobna, so rezultati testiranjaˇ pokazali, da je model s funkcijskim APIjem nekoliko boljˇsi od sekvenˇcnega.
Iz tega razloga smo v konˇcnem sistemu uporabili funkcijski API.
Poglavje 4
Zasnova filtra akademskih sporoˇ cil
Naslednje poglavje je namenjeno opisu naˇcrta praktiˇcnega dela diplomske naloge. V njem podamo cilje, ki smo si jih zastavili pri izdelavi programske reˇsitve. Predstavimo tudi zgradbo izdelanega sistema in kako posamezen del deluje. Vkljuˇcimo ˇse opis orodij, ki smo jih uporabili.
4.1 Opredelitev zahtev
Osrednji problem, ki ga ˇzelimo reˇsiti pri diplomski nalogi, je izdelava ˇcim bolj uˇcinkovitega filtra nezaˇzelene akademske elektronske poˇste. Najprej je potrebno izbrati uˇcne podatke - v naˇsem primeru elektronska sporoˇcila.
Za uˇcenje modela je potrebno, da so sporoˇcila oznaˇcena. Torej potrebu- jemo mnoˇzico nezaˇzelenih akademskih sporoˇcil in mnoˇzico drugih sporoˇcil.
Najdena sporoˇcila je nato potrebno pretvoriti v ustrezno obliko in odstra- niti ali dodati znaˇcilnosti, ki so koristne pri klasifikaciji. Nato je potrebno preuˇciti razliˇcne klasifikacijske modele in uporabiti tistega, ki najbolje kla- sificira nezaˇzeleno akademsko elektronsko poˇsto. Na tem delu je potrebno uporabiti ustrezne metrike za ugotavljanje uspeˇsnosti modela.
Zgrajeni filter je zatem potrebno povezati z odjemalcem za elektronsko 19
poˇsto. Za to je potrebno izbrati ustrezen odjemalec elektronske poˇste in doloˇciti naˇcin oznaˇcevanja nezaˇzelene akademske elektronske poˇste. Poleg tega ˇzelimo, da model ne ostane vedno isti, temveˇc da se ga lahko posodobi.
Zato ˇzelimo, da ima sistem moˇznost, da se spremeni in prilagodi glede na uporabnika.
Ce povzamemo, ˇˇ zelimo pri izdelavi sistema doseˇci naslednje cilje:
1. najti ustrezno zbirko elektronskih sporoˇcil,
2. sporoˇcila obdelati in pretvoriti v obliko, primerno za klasifikacijski mo- del,
3. izbrati ustrezne metrike za ugotavljanje uˇcinkovitosti modelov, 4. preizkusiti razliˇcne modele za klasifikacijo in izbrati najboljˇsega, 5. izbrati odjemalec za elektronsko poˇsto in ga povezati z modelom, 6. doloˇciti naˇcin oznaˇcevanja nezaˇzelene akademske elektronske poˇste v
izbranem odjemalcu,
7. imeti moˇznost posodobitve sistema glede na uporabnikova sporoˇcila.
4.2 Opis sistema
Glede na cilje, zastavljene v podpoglavju 4.1, smo zgradili programsko reˇsitev, ki je sestavljena iz dveh programov. Prvi, glavni program, je namenjen kla- sifikaciji neprebranih sporoˇcil. Njegovo delovanje prikazuje slika 4.1. Drugi program pa je namenjen posodobitvi nevronske mreˇze glede na uporabnikova oznaˇcena sporoˇcila. Njegovo delovanje prikazuje slika 4.2. Za klasifikacijski model smo uporabili nevronsko mreˇzo, za odjemalec elektronske poˇste pa Gmail [10]. Izbiro utemeljimo v razdelkih 4.3.2 in 6.3.2.
Slika 4.1 prikazuje delovanje sistema ob zagonu programa za klasifikacijo neprebranih sporoˇcil. Najprej program preveri, ali je nevronska mreˇza ˇze shranjena na disku. ˇCe ni, se izvede zaˇcetno uˇcenje nevronske mreˇze. Za
Diplomska naloga 21
Slika 4.1: Naˇcrt delovanja sistema ob prvem uˇcenju nevronske mreˇze in ob klasifikaciji neprebranih sporoˇcil.
uˇcenje nevronske mreˇze so potrebni oznaˇceni uˇcni podatki, kar so v naˇsem primeru nezaˇzelena akademska elektronska sporoˇcila in druga elektronska sporoˇcila. Ker je vir sporoˇcil lahko razliˇcen, se elektronska sporoˇcila pretvori v enako obliko in obdela tako, da se odstrani nepotrebne atribute sporoˇcila.
Ta korak je na sliki oznaˇcen s ˇstevilko (1). Sledi uˇcenje nevronske mreˇze in shranjevanje na disk (2). Nevronska mreˇza je tako ob naslednjem zagonu pri- pravljena na klasifikacijo in ni potrebno pri vsakem zagonu ˇcakati na uˇcenje nevronske mreˇze.
Naslednji korak programa je branje neprebranih sporoˇcil iz elektronskega nabiralnika (3). Prebrana sporoˇcila se obdelajo na enak naˇcin kot pri ko- raku (1). Shranjena nevronska mreˇza nato klasificira neprebrana sporoˇcila.
Ce je katero izmed neprebranih sporoˇˇ cil klasificirano kot nezaˇzelena akadem- ska elektronska poˇsta, program preveri, ali v uporabnikovem elektronskem nabiralniku ˇze obstajajo sporoˇcila z oznako academic spam. ˇCe ne, pro- gram za uporabnika ustvari novo oznakoacademic spamin oznaˇci ustrezna sporoˇcila (5). ˇCe oznaka ˇze obstaja, program samo oznaˇci ustrezna sporoˇcila s to oznako. Oznaka se nato prikaˇze na neprebranih sporoˇcilih v uporabniko-
vem elektronskem nabiralniku (6), hkrati pa nastane oziroma se dopolnjuje tudi mapa sporoˇcil z oznako academic spam (7).
Slika 4.2 prikazuje drugi program, ki je namenjen posodobitvi nevronske mreˇze, tako da se ˇcim bolj prilagodi uporabniku. Posodobitev deluje samo, ˇce ima uporabnik v svojem elektronskem nabiralniku sporoˇcila, oznaˇcena z oznakoacademic spam.
Slika 4.2: Naˇcrt delovanja sistema ob posodobitvi nevronske mreˇze.
Program najprej prebere sporoˇcila, ki so oznaˇcena z oznako acade- mic spam. Nato ta sporoˇcila doda k shranjenim uporabniˇskim sporoˇcilom ali pa ustvari novo datoteko s shranjenimi uporabnikovimi nezaˇzelenimi aka- demskimi sporoˇcili (1). Ta sporoˇcila se potem uporabi kot del uˇcne mnoˇzice pri uˇcenju nevronske mreˇze (2). Ce je shranjenih uporabnikovih sporoˇˇ cil veˇc kot 1000, se sporoˇcila razvrsti po datumu prejema in se jih izbere le zadnjih 1000. Ce pa je shranjenih uporabnikovih sporoˇˇ cil manj kot 1000 (3), se mnoˇzica nezaˇzelenih akademskih sporoˇcil dopolni s sporoˇcili iz baze nezaˇzelenih akademskih sporoˇcil (4).
Poleg nezaˇzelenih akademskih sporoˇcil nevronska mreˇza za uˇcenje potre- buje tudi mnoˇzico drugih sporoˇcil. Te se pridobijo iz baze drugih sporoˇcil (5). Nevronska mreˇza se nato nauˇci na podanih uˇcnih podatkih in posodob- ljena mreˇza se shrani na disk (6), kjer je na voljo za naslednjo klasifikacijo
Diplomska naloga 23 neprebranih sporoˇcil.
4.3 Uporabljena orodja
4.3.1 Python
Za razvoj sistema smo uporabili programski jezik Python [7]. Python je objektno usmerjen, veˇcnamenski programski jezik, ki podpira dinamiˇcne podatkovne strukture in sodi med visokonivojske programske jezike [19].
Visokonivojski programski jezik je programski jezik s sintakso, ki je ˇcim bolj razumljiva za programerja. To pomeni, da so programerju podrobnosti raˇcunalniˇskega sistema predstavljene kot abstraktni elementi, ki so pogosto poimenovani z naravnim jezikom, kar poenostavi proces programiranja. Pod- pira tudi dinamiˇcne podatkovne tipe in je objektno usmerjen, kar pomeni, da lahko s kodo enostavneje prikaˇzemo dejansko stanje sveta. Kuhlman v svojem opisu programskega jezika Python [19] omeni, da so prednosti v primerjavi z drugimi programskimi jeziki (C/C++, Java, Perl, Tcl, Ruby) predvsem hitrost razvoja, hitrost izvedbe, jasnost in enostavno vzdrˇzevanje.
Se ena prednost programskega jezika Python je velika koliˇˇ cina knjiˇznic, ki so na voljo. Knjiˇznice omogoˇcajo ponovno uporabo kode in enostavnejˇsi razvoj, kot ˇce je potrebno vsako funkcionalnost napisati na novo. Tudi v naˇsi programski reˇsitvi smo uporabili nekaj takˇsnih knjiˇznic, kot so:
• knjiˇznice email, BeautifulSoup in win32com - za pomoˇc pri spre- minjanju elektronskih sporoˇcil v ustrezno obliko,
• knjiˇzniceGoogle API Client in druge Googlove knjiˇznjice - za pove- zavo z Gmail APIjem
• knjiˇznici nltk innumpy - za obdelavo sporoˇcil,
• knjiˇznice pickle, json,os in ast- za shranjevanje podatkov na disk,
• knjiˇznice tensorflow, keras in sklearn - za uporabo modelov stroj- nega uˇcenja.
Dostopnost in raznolikost knjiˇznic je eden glavnih razlogov za uporabo tega programskega jezika pri izdelavi programske reˇsitve. Preko knjiˇznic je namreˇc mogoˇca enostavna povezava z izbranim odjemalcem elektronske poˇste - Gmail, preko Gmail APIja.
Za razvojno okolje smo uporabili Pycharm [27]. Pycharm je integrirano razvojno okolje, namenjeno predvsem programiranju v programskem jeziku Python. Omogoˇca enostavno analizo kode, grafiˇcen razhroˇsˇcevalnik in eno- stavno integracijo s sistemi za upravljanje z izvorno kodo.
4.3.2 Gmail API
Gmail API je aplikacijski programski vmesnik, ki temelji na arhitekturi REST (angl. RESTful API) [6]. Arhitektura REST (angl. representatio- nal state transfer) je arhitektura za izmenjavo podatkov med spletnimi sto- ritvami, kjer je vsak vir dostopen z enoliˇcnim identifikatorjem vira URL.
Uporablja se za dostop do Gmail elektronskih nabiralnikov in poˇsiljanje elek- tronskih sporoˇcil preko programa.
Pri razvoju naˇsega sistema smo ga uporabili, ker ga lahko enostavno poveˇzemo s programom v programskem jeziku Python. Poleg tega je brez- plaˇcen za uporabo, z visoko mejo dnevne uporabe.
Poglavje 5
Implementacija
5.1 Uˇ cna mnoˇ zica
Uˇcno mnoˇzico elektronskih sporoˇcil smo pridobili iz dveh razliˇcnih virov.
Nezaˇzelena akademska sporoˇcila smo dobili od profesorjev s Fakultete za raˇcunalniˇstvo in informatiko. Vsega skupaj se je na koncu nabralo 660 sporoˇcil, oznaˇcenih kot nezaˇzelena akademska elektronska sporoˇcila.
Drugo skupino sporoˇcil, ki niso nezaˇzelena sporoˇcila, smo naˇsli na spletu, in sicer na spletni strani kaggle [22]. Omenjena spletna zbirka vsebuje tako nezaˇzeleno kot drugo elektronsko poˇsto, za potrebe izdelave naˇsega sistema pa smo potrebovali le sporoˇcila, ki niso nezaˇzelena. Iz omenjene spletne baze sporoˇcil smo dobili 2.551 sporoˇcil, ki smo jih uporabili kot uˇcne primere sporoˇcil, ki niso nezaˇzelena.
5.2 Obdelava elektronskih sporoˇ cil
Uˇcna mnoˇzica elektronskih sporoˇcil je sestavljena iz sporoˇcil iz razliˇcnih virov in razliˇcnih oblik. Zato je bilo potrebno sporoˇcila pretvoriti v enako obliko, primerno za nadaljnjo obdelavo. Poleg tega je bilo potrebno obdelati besedilo sporoˇcila in ga ustrezno spremeniti. V nadaljevanju opiˇsemo, kako smo se lotili tega problema.
25
Vsako sporoˇcilo v uˇcni mnoˇzici smo spremenili v slovar s kljuˇci Subject (zadeva),Sender(poˇsiljatelj),Receiver(prejemnik),Date(datum prejema) in Body (telo sporoˇcila). Sporoˇcila v skupini sporoˇcil, ki niso nezaˇzelena, imajo isti vir in obliko. Zato smo vsa sporoˇcila v tej skupini lahko pretvo- rili v slovar na isti naˇcin. Pomagali smo si s knjiˇznico email in metodo BytesParserter s knjiˇznicoBeautifulSoup, da smo besedilo sporoˇcila spre- menili iz oblike html v besedilo.
Nezaˇzelena sporoˇcila smo dobili iz razliˇcnih virov in jih je bilo zato po- trebno spremeniti v slovar na razliˇcne naˇcine glede na konˇcnico datoteke.
Sporoˇcila s konˇcnico.emlsmo obdelali enako kot sporoˇcila, ki niso nezaˇzelena, s knjiˇznicoemail. Druga nezaˇzelena sporoˇcila pa imajo konˇcnico.msgin smo jih obdelali s pomoˇcjo knjiˇznice win32com.
Naslednji korak obdelave sporoˇcil je pretvorba slovarjev sporoˇcil v obliko, primerno za model. Chih-Chin Lai v svojem ˇclanku [20] trdi, da je najbolj uporaben del za klasifikacijo nezaˇzelenih sporoˇcil zadeva sporoˇcila in da samo telo sporoˇcila ne klasificira tako dobro, kot ˇce je v kombinaciji z zadevo. To smo tudi preizkusili in se odloˇcili, da tudi mi uporabimo kombinacijo zadeve in telesa sporoˇcila. Poleg tega M´endez s sodelavci v njihovem ˇclanku [14]
pravijo, da priloga, ki je lahko priloˇzena sporoˇcilu in jo spremenimo v bese- dilo, doda nepotrebne informacije, ki niso dobre za klasifikacijo. Zato priloge sporoˇcila nismo uporabili.
Sledi opis obdelave besedila sporoˇcil. V zadevi so bile v nekaterih primerih v oglatih oklepajih zapisane oznake sporoˇcila (na primer INBOX). Zato smo iz besedila odstranili del, ki je v oglatih oklepajih. Predvsem v mnoˇzici sporoˇcil, ki niso nezaˇzelena, je veliko sporoˇcil, ki vsebujejo druga sporoˇcila (nizi izmenjujoˇcih odgovorov). Zato smo morali najti takˇsne dele sporoˇcil in jih odstraniti. To smo naredili tako, da smo odstranili vrstice, ki se zaˇcnejo z doloˇcenim znakom ali nizom znakov na primer|,>ali--]. Poleg tega smo odstranili vrstice, ki se zaˇcnejo z doloˇcenimi besedami, kot so to:, from:, sent:, date:, subject: in podobno.
Nato smo zadevo in telo sporoˇcila obdelali na enak naˇcin. Najprej smo
Diplomska naloga 27 odstranili velike zaˇcetnice in celotno sporoˇcilo spremenili v male ˇcrke. Opazili smo, da se v nekaterih nezaˇzelenih sporoˇcilih pojavljajo znaki, ki izgledajo kot ˇcrke, vendar so v resnici drugi znaki in jih raˇcunalnik zazna kot loˇcila.
Primeri znakov, ki smo jih naˇsli v naˇsi zbirki sporoˇcil, so prikazani na sliki 5.1.
Poˇsiljatelji nezaˇzelenih akademskih sporoˇcil so s tem oˇcitno ˇzeleli prepreˇciti filtrom nezaˇzelene elektronske poˇste razpoznavo nekaterih besed, ki nakazu- jejo na nezaˇzeleno akademsko elektronsko poˇsto. Najdene znake smo zame- njali s pravo ˇcrko in na koncu besedila dodali znaˇcko "specialchars". V besedilu smo poiskali klicaje in jih zamenjali z znaˇcko "exclamationmark".
Opazili smo namreˇc, da izrazito velika raba klicajev lahko nakazuje na to, da je sporoˇcilo nezaˇzelena akademska elektronska poˇsta. Poleg tega smo poiskali elektronske naslove, povezave in imena mesecev ter jih zamenjali z znaˇckami
"emailwashere", "linkwashere" in "monthwashere", saj struktura elek- tronskega naslova in povezave ter ime meseca niso pomembni.
Slika 5.1: Primeri znakov iz nezaˇzelenih akademskih sporoˇcil in ustrezne ˇcrke, ki so jih poˇsiljatelji nezaˇzelenega akademskega sporoˇcila zamenjali.
Poleg omenjenega smo iz sporoˇcil odstranili loˇcila in nepotrebne besede,
kot so vezniki, zaimki in vpraˇsalnice. V angleˇsˇcini se te pogoste in nepo- trebne besede imenujejo stop words. Obstaja veˇc razliˇcnih zbirk teh besed, ki so lahko definirane na razliˇcne naˇcine. Mi smo v svojem sistemu uporabili besede iz knjiˇznice nltk.
Da bi identiteta profesorjev, ki so prispevali nezaˇzelena akademska spo- roˇcila za uˇcno mnoˇzico, ostala skrita, je bilo potrebno iz sporoˇcil odstraniti imena prejemnikov. Poleg tega smo odstranili tudi imena poˇsiljatelja, saj je tudi ta podatek nepotreben pri klasifikaciji. V pomoˇc nam je bilo dejstvo, da uporabljene knjiˇznice poˇsiljatelja in prejemnika pogosto pretvorijo v obliko Ime Priimek <elektronsko@sporoˇcilo>. Iz te oblike smo lahko enostavno pridobili ime in priimek ter jih poiskali v sporoˇcilu. V primerih, ko ime in priimek nista tako jasno razvidna, pa smo upoˇstevali, da je struktura elektronskega sporoˇcila v veˇcini primerov ime.priimek@domena. Tako smo tudi v tem primeru lahko enostavno izloˇcili ime in priimek. Ime ali priimek smo zamenjali z znaˇcko receivername za prejemnika oziroma sendername za poˇsiljatelja.
Na opisani naˇcin smo sporoˇcila spremenili iz seznama slovarjev v seznam besedil oziroma zbirko besedil (angl. corpus). Sporoˇcila smo nato shranili s pomoˇcjo knjiˇznice pickle, ki objekt serializira (angl. serialize) in s tem spremeni v binarni tok (angl. byte stream). Tako shranjenih sporoˇcil ne moremo brati direktno iz datoteke, ampak jih je za branje potrebno pretvoriti nazaj v besedilo.
5.3 Tehnike obdelave besedila
V sklopu izdelave sistema smo preizkusili veˇc razliˇcnih tehnik obdelave bese- dila s ciljem, da bi naˇsli najboljˇso. Uporabili smo enostavno ˇstetje ponovitev besed, odstranitev besed, ki se pojavijo v manj kot n sporoˇcilih, tehniko frekvence besed z inverzno frekvenco v dokumentih (tf-idf), uporaba le be- sed z dovolj veliko medsebojno informacijo ter vektorske vloˇzitve besed. V nadaljevanju opiˇsemo vsako izmed tehnik.
Diplomska naloga 29
ˇ Stetje ponovitev besed v sporoˇ cilu
ˇStetje ponovitev besed smo implementirali s pomoˇcjo funkcije CountVecto- rizer, ki je del knjiˇznice sklearn. Ta funkcija spremeni zbirko besedil v matriko, v kateri vsaka vrstica predstavlja sporoˇcilo, stolpec pa besedo. Ker je vseh besed v vseh sporoˇcilih lahko zelo veliko, smo se omejili na 2000 besed. Poskusili smo tudi z odstranitvijo besed, ki se pojavijo v manj kot treh sporoˇcilih, tako kot so to opisali Sakkis in sodelavci [9].
Frekvenca besed z inverzno frekvenco v dokumentih
Preizkusili smo tudi pretvorbo besedil s frekvenco besed z inverzno frekvenco v dokumentih (angl.term frequency-inverse document frequency - TF-IDF).
Uporabili smo funkcijoTfidfTransformer, ki je del knjiˇznice sklearn.
Frekvenca besed (angl. term frequency) enostavno pomeni ˇstevilo besed v posameznem sporoˇcilu. Inverzna frekvenca v dokumentih (angl. inverse document frequency) pa predstavlja informativnost besede, torej ali se beseda pogosto ali redko pojavlja v sporoˇcilih [2]. TF-IDF besede izraˇcunamo tako, da uporabimo enaˇcbo (5.1), pri ˇcemer je t tˆermin in d dokument oziroma sporoˇcilo. T F(t, d) predstavlja frekvenco besede t v sporoˇcilu d, IDF(t) pa je inverzna frekvenca besede t v dokumentih. Izraˇcuna se jo z enaˇcbo (5.2), pri ˇcemer je n ˇstevilo vseh sporoˇcil, DF(t) pa ˇstevilo sporoˇcil v katerih se beseda t pojavi vsaj enkrat. V imenovalcu ulomka vrednostiDF(t) dodamo ˇse +1, da se izognemo deljenju z niˇc.
T F-IDF(t, d) = T F(t, d)∗IDF(t) (5.1)
IDF(t) =log
n DF(t) + 1
+ 1 (5.2)
Prednost uporabe tehnike TF-IDF je, da se normalizira vpliv besed, ki se v dokumentih pojavljajo zelo pogosto in so zato manj informativne kot besede, ki se pojavijo manjkrat.
Medsebojna informacija
Za izbiro atributov smo preizkusili tudi odstranitev atributov, ki imajo pre- majhno medsebojno informacijo (angl. mutual information). Uporabili smo funkcijo mutual info classif, ki je del knjiˇznice sklearn. Medsebojna informacija dveh nakljuˇcnih spremenljivk je nenegativna vrednost, ki pove odvisnost med tema spremenljivkama [18]. Z drugimi besedami, medsebojna informacija meri koliˇcino informacije, ki jo pridobimo o neki spremenljivki, ˇce imamo podano neko drugo spremenljivko [33]. Veˇcja ko je medsebojna infor- macija dveh spremenljivk, bolj sta spremenljivki odvisni med sabo. ˇCe pa je medsebojna informacija enaka niˇc, sta spremenljivki popolnoma neodvisni.
Medsebojno informacijo med dvema nakljuˇcnima spremenljivkama lahko izraˇcunamo z enaˇcbo (5.3), kjer I(X;Y) predstavlja medsebojno informa- cijo za spremenljivki X in Y, H(X) predstavlja entropijo spremenljivke X, H(X|Y) pa je pogojna entropija za spremenljivko X, ˇce imamo podano spremenljivko Y. Entropija je enaka povpreˇcni lastni informaciji in pre- stavlja stopnjo negotovosti oziroma informacije. Izraˇcunamo jo s pomoˇcjo formule (5.4), kjer so moˇzni rezultati x1, ..., xn in P(xi) verjetnost rezultata xi. Pogojno entropijo pa izraˇcunamo s formulo (5.5).
I(X;Y) =H(X)−H(X|Y) (5.3)
H(X) =−
n
X
i−1
P(xi)logP(xi) (5.4)
H(X|Y) =− X
x∈X,y∈Y
p(x, y)logp(x, y)
p(x) (5.5)
Vektorske vloˇ zitve besed
Zadnja tehnika, ki smo jo preizkusili in na koncu uporabili v naˇsem sis- temu, je vektorska vloˇzitev besed (angl. word to vector embedding). Vek- torska vloˇzitev besed je tehnika predstavitve besed z vektorji, ki ohranjajo
Diplomska naloga 31 pomenske znaˇcilnosti besed. To pomeni, da so besede, ki so si pomensko bolj podobne, bolj blizu v vektorskem prostoru [28]. Vektorje besed se sestavi glede na to, katere besede se v stavku nahajajo skupaj, saj se tako najlaˇzje ugotovi pomen besede. Zaradi tega je za uˇcinkovito sestavljanje besednih vektorjev potrebna velika uˇcna mnoˇzica besedil. Ker je to velikokrat teˇzko pridobiti in ker je uˇcenje vektorjev lahko precej zamudno, na spletu obstajajo baze besed in njihovih vektorjev, ki so nauˇceni na velikih mnoˇzicah besedil.
Primeri zbirk nauˇcenih vektorjev so na primer Googlova zbirka inzbirka GloVe (Global Vectors for Word Representation).
Ker je zbirka vektorjev iz baze GloVe nauˇcena na ogromni mnoˇzici besedil in je prosto dostopna, smo se odloˇcili, da jo bomo uporabili v naˇsem sistemu.
Na voljo ima veˇc zbirk vektorjev iz razliˇcnih virov in velikosti. Zbirke smo preizkusili in ocenili njihovo uspeˇsnost. Preizkusili smo tudi razliˇcno maksi- malno ˇstevilo besed v posameznem sporoˇcilu in maksimalno ˇstevilo unikatnih besed. V konˇcnem sistemu smo uporabili 100-dimenzionalne vektorje, ome- jitev 2.000 besed na sporoˇcilo in omejitev 500.000 razliˇcnih besed.
5.4 Uˇ cenje modela in napovedovanje
V prejˇsnjih razdelkih smo opisali obdelavo sporoˇcil v obliko, primerno za vstavljanje v model. Naslednji korak je izbira modela za klasifikacijo sporoˇcil.
Preizkusili smo algoritemnaivni Bayes(glej razdelek 3.2),nakljuˇcni gozd (glej razdelek 3.4),metodo podpornih vektorjev(glej razdelek 3.3),logi- stiˇcno regresijo(glej razdelek 3.5) innevronsko mreˇzo(glej razdelek 3.6).
Vse omenjene modele smo implementirali s pomoˇcjo knjiˇznice sklearn, ra- zen nevronske mreˇze, kjer smo uporabili tako implementacijo iz knjiˇznice sklearn, kot tudi iz knjiˇznice keras. Razredi, ki smo jih uporabili so GaussianNB za naivni Bayes, RandomForestClassifier za nakljuˇcni gozd, svm.SVCz linearnim jedrom za metodo podpornih vektorjev, LogisticReg- ression za logistiˇcno regresijo in NLPClassifier za nevronsko mreˇzo. Za vse omenjene modele je postopek uˇcenja in napovedovanja enak:
1. definicija novega razreda modela,
2. uˇcenje modela s funkcijo.fit(X train, y train) 3. napoved s funkcijo .predict(X test).
Za razliko od modelov iz knjiˇznicesklearnmoramo pri nevronski mreˇzi pred uˇcenjem modela iz knjiˇznicekerasnatanˇcno doloˇciti tudi parametre nevron- ske mreˇze. Ta del nam je povzroˇcal najveˇc teˇzav, saj pri izbiri parametrov ne moremo upoˇstevati nobene posebne logike, ampak samo poskuˇsamo, kaj deluje bolje od neˇcesa drugega. Rezultati naˇsega testiranja in utemeljitev izbire konˇcnega modela so zbrani v razdelku 6.3.2.
Za model, ki smo ga uporabili v konˇcnem sistemu, smo uporabili nevron- sko mreˇzo iz knjiˇznice keras. Kot je razvidno iz skic v razdelku 4.2, smo nevronsko mreˇzo najprej nauˇcili na uˇcnih podatkih, nato pa shranili na disk.
To smo naredili s pomoˇcjo funkcije .save(), ki je funkcija razreda Model().
Shranjeni model je nato na voljo za klasifikacijo s funkcijo load model() in ni potrebno, da se ob vsaki klasifikaciji model znova uˇci. S tem se klasifikacija zelo pospeˇsi.
5.5 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)
6.2 Statistiˇ cni test za primerjavo modelov
Za primerjavo uspeˇsnosti modelov smo uporabili Friedmanov test [8] v kombinaciji z Nemenyijevim testom [25]. Friedmanov test je neparame- triˇcni test, ki primerja modele oziroma algoritme glede na razvrstitev mode- lov po uspeˇsnosti (angl.rank) za vsako izmed testnih mnoˇzic [5].
Za vsako izmed N testnih mnoˇzic in k modelov doloˇcimo uspeˇsnostj-tega modela na i-ti mnoˇzici in ga oznaˇcimo kot rji. Nato lahko izraˇcunamo pov- preˇcje uspeˇsnosti modelov, Rj = N1 P
jrij. Niˇcelna hipoteza, ki jo skuˇsamo izpodbiti je, da so vsi modeli enako uspeˇsni in da so vse njihove uspeˇsnosti Rj enake. Za to izraˇcunamo Friedmanovo statistiko, ki je χ2F porazdeljena in jo izraˇcunamo z enaˇcbo 6.7, nato pa izraˇcunano vrednost uporabimo v enaˇcbi 6.8.
χ2F = 12N k(k+ 1)
X
j
R2j − k(k+ 1)2 4
!
(6.7)
FF = (N −1)χ2F
N(k−1)−χ2F (6.8)
Izraˇcunana vrednostFF je F-porazdeljena sk−1 in (k−1)(N−1) prosto- stnima stopnjama. VrednostF(x, y), kjer staxiny prej omenjeni prostostni stopnji, je poznana (najdemo jo v statistiˇcnih knjigah ali na spletu). ˇCe je
vrednost FF veˇcja od odˇcitane vrednostiF(x, y), niˇcelno hipotezo zavrˇzemo in nadaljujemo s Nemenyijevim testom.
S tem testom preverimo, ali je eden izmed modelov znaˇcilno uspeˇsnejˇsi od drugega. To naredimo tako, da izraˇcunamo kritiˇcno razliko CD (angl.cri- tical difference) z enaˇcbo 6.9 in jo primerjamo z razliko med povpreˇcnima uspeˇsnostma modelov. Pri temqα predstavlja kritiˇcno vrednost, ki je doloˇce- na glede na ˇstevilo modelov, ki jih primerjamo, in ˇstevilomα, ki je verjetnost zavrnitve niˇcelne hipoteze.
CD =qα
rk(k+ 1)
6N (6.9)
6.3 Evalvacija in rezultati
6.3.1 Naˇ cin testiranja
Za testiranje uspeˇsnosti smo uporabili 10-kratno preˇcno preverjanje (angl.10- fold cross-validation). Pri tej metodi uˇcno mnoˇzico razdelimo na 10 pribliˇzno enako velikih mnoˇzic in za vsak model naredimo 10 ponovitev testiranja. V vsaki iteraciji vzamemo za testno mnoˇzico eno izmed mnoˇzic, ostale mnoˇzice pa zdruˇzimo v uˇcno mnoˇzico.
Na tak naˇcin bolj natanˇcno preverimo uspeˇsnost modelov, kot ˇce bi iz mnoˇzice nakljuˇcno izbrali 10% primerov in le enkrat testirali model. Pri 10-kratnem preˇcnem preverjanju je namreˇc vsak primer v mnoˇzici enkrat uporabljen kot testni. Tako lahko na koncu izraˇcunamo povpreˇcje in stan- dardno deviacijo rezultatov iz vseh ponovitev testiranja ter dobimo bolj re- alne rezultate. Poleg tega smo lahko zaradi veˇckratne ponovitve testiranja za primerjavo modelov uporabili tudi statistiˇcne teste.
6.3.2 Rezultati
Rezultati testiranja razliˇcnih modelov so prikazani v tabelah 6.1 in 6.3. Naj- prej smo testirali modele iz knjiˇznice sklearn (tabela 6.1). Preizkusili smo
Diplomska naloga 41 razliˇcne tehnike obdelave besedila, kot so TF-IDF in medsebojna informacija.
Metode smo natanˇcneje opisali v razdelku 5.3. V tabeli 6.1 so prikazani rezul- tati testiranja ob uporabi metode TF-IDF, odstranitvi besed, ki se pojavijo v manj kot treh sporoˇcilih in besed, ki imajo medsebojno informacijo manjˇso kot 0.01. Uporabili smo celotno mnoˇzico sporoˇcil, in sicer 660 nezaˇzelenih akademskih sporoˇcil in 2.551 drugih sporoˇcil. Kot lahko vidimo, so rezul- tati ˇze pri teh modelih precej dobri, saj so pravilno klasificirana skoraj vsa sporoˇcila iz testne mnoˇzice sporoˇcil. Za najboljˇsa sta se izkazala nevronska mreˇza in logistiˇcna regresija.
Model Toˇcnost Natanˇcnost Priklic F1 AUC
Naivni
Bayes 88.49%
±2.40% 65.26%±6.84% 95.24%±2.53% 77.29%±5.27% 0.91±0.02
Nakljuˇcni
gozd 98.32%±0.32% 97.57%±1.47% 94.30%±2.15% 95.88%±0.79% 0.96±0.01 SVM 98.65%±0.68% 97.98%±1.93% 95.34%±2.65% 96.62%±1.79% 0.97±0.01
Logistiˇcna
regresija 98.82%±0.58% 99.49%±0.81% 94.72%±2.87% 97.02%±1.55% 0.97±0.01 Nevronska
mreˇza 98.98%±0.42% 98.66%±1.53% 96.36%±1.45% 97.49%±1.10% 0.98±0.01
Tabela 6.1: Povpreˇcne vrednosti in standardna deviacija testiranja modelov iz knjiˇznicesklearn z 10-kratnim preˇcnim preverjanjem
Naivni Bayes Nakljuˇcni gozd SVM Logistiˇcna regresija
Nevronska mreˇza
5 2.9 2.65 2.15 2.3
Tabela 6.2: Povpreˇcni vrstni redi uspeˇsnosti modelov iz knjiˇznjice sklearn glede na vrednost AUC
S Friedmanovim testom pri α = 0.05 na AUC smo preverili, ali lahko za kateri par modelov reˇcemo, da je eden izmed njiju izrazito boljˇsi od dru- gega. Povpreˇcni vrstni redi uspeˇsnosti modelov glede na AUC so razvidni v tabeli 6.2. Izraˇcunali smo kritiˇcno razliko CD = 1.93 in jo primerjali z
razlikami povpreˇcnih vrstnih redov uspeˇsnosti modelov ter ugotovili, da so vsi modeli izrazito boljˇsi za klasifikacijo nezaˇzelenih akademskih sporoˇcil kot naivni Bayes. Za ostale pare modelov s Friedmanovim testom tega nismo mogli dokazati.
Rezultati naˇsega testiranja so nekoliko boljˇsi od rezultatov nekaterih raz- iskovalcev, ki so se ukvarjali s podobnim problemom. Sicer nismo naˇsli pri- merov, v katerih bi raziskovalci skuˇsali klasificirati nezaˇzeleno akademsko elektronsko poˇsto, vseeno pa lahko do neke mere primerjamo naˇse rezultate z rezultati navadnih filtrov nezaˇzelenih elektronskih sporoˇcil.
V ˇclanku Koprinske in sod. [12] so na eni izmed testnih mnoˇzic z modelom nakljuˇcnega gozda dosegli toˇcnost 96.03%, natanˇcnost 95.62%, priklic 95.62%
in F1 mero 94.16%. Za obdelavo sporoˇcil so uporabili posebno metodo izbire atributov, in sicer varianco frekvence tˆerma (angl. term frequency variance).
Ostali modeli v njihovem primeru niso bili tako uspeˇsni.
V ˇclanku, ki ga je objavil Chih-Chin Lai [20], so preizkusili modele Na- ivnega Bayesa, k-najbliˇzjih sosedov, SVM in kombinacijo TF-IDF z metodo SVM. V njihovem primeru se je za najbolj uspeˇsen model izkazala kombina- cija TF-IDF z metodo SVM. S to metodo so v enem primeru dosegli toˇcnost 93.43%.
Ceprav so bili rezultati ˇˇ ze pri modelih iz knjiˇznice sklearn precej dobri, smo se vseeno odloˇcili implementirati ˇse model nevronske mreˇze iz knjiˇznice keras v kombinaciji z vektorskimi vloˇzitvami besed. Ta metoda namreˇc upoˇsteva pomene besed in ne samo njihov zapis, tako kot ostale metode klasifikacije.
Tabela 6.3 prikazuje rezultate testiranja petih razliˇcnih nevronskih mreˇz, ki smo jih zgradili. Pri vseh modelih smo za testiranje, enako kot zgoraj, uporabili mnoˇzico 660 nezaˇzelenih akademskih in 2.551 navadnih sporoˇcil.
Za prvo, sekvenˇcno nevronsko mreˇzo smo uporabili sekvenˇcni model (Sequential). Sestavljena je iz treh nivojev: vstavljanje (Embedding), izrav- nava (Flatten) in zgostitev (Dense). Uporabili smo Sigmoidno aktivacijsko funkcijo (Sigmoid function) in optimizatorrmsprop. Uporabili smo 10 itera-
Diplomska naloga 43
Nevronska
mreˇza Toˇcnost Natanˇcnost Priklic F1 AUC
Sekvenˇcni
model 98.55%±0.6% 98.17%±2.12% 94.79%±2.12% 96.41%±1.48% 0.97±0.01 Sekvenˇcni
model z manj iteracijami
98.79%±0.49% 98.84%±1.12% 95.26%±2.28% 97.0%±1.17% 0.97±0.01
Funkcijski API 98.69%±0.62% 97.77%±1.78% 95.9%±2.94% 96.79%±1.47% 0.97±0.01 Funkcijski API
z optimizacijo adam
98.55%±0.44% 98.38%±1.7% 94.58%±2.13% 96.42%±1.1% 0.97±0.01
Funkcijski API z
optimizacijo sgd 97.11%±0.67% 97.92%±1.59% 87.87%±3.62% 92.58%±1.89% 0.93±0.02
Tabela 6.3: Povpreˇcne vrednosti in standardna deviacija pri testiranju razliˇcnih nevronskih mreˇz z 10-kratnim preˇcnim preverjanjem
cij ˇcez vse fragmente (Epochs). Za vektorje besed smo uporabili vektorje iz baze GloVe. Izbrali smo vektorje dolˇzine 100 in doloˇcili maksimalno ˇstevilo besed v sporoˇcilu na 2.000 ter maksimalno ˇstevilo vseh besed na 50.000.
Pri sekvenˇcnem modelu z manj iteracijami smo preizkusili manj iteracij (epoh), in sicer smo jih nastavili 5. Kot vidimo iz tabele, je bil rezultat podoben kot pri prejˇsnji nevronski mreˇzi, morda nekoliko slabˇsi.
Enako se je zgodilo tudi, ko smo ˇstevilo iteracij poveˇcali.
Model s funkcijskim APIjem smo nekoliko spremenili od prejˇsnjih, in sicer tako, da smo preizkusiliFunctual API. Vse ostalo smo pustili enako kot prej.
Model s funkcijskim APIjem z optimizacijo adam podobno kot prejˇsnja nevronska mreˇza uporablja Functual API. Spremenili smo ji le op- timizacijsko funkcijo, in sicer na funkcijoadam.
Primodelu s funkcijskim APIjem z optimizacijo sgd smo preizku- sili ˇse eno optimizacijsko funkcijo, in sicer funkcijo sgd.
Tudi nevronske mreˇze smo primerjali s pomoˇcjo Friedmanovega testa. Ta- bela 6.4 prikazuje povpreˇcne vrstne rede nevronskih mreˇz glede na vrednost AUC. Uporabili smo α = 0.05 in izraˇcunali kritiˇcno razliko CD = 1.92. Po primerjavi razlik povpreˇcnih vrstnih redov nevronskih mreˇz s kritiˇcno razliko