Page 22 - Fister jr., Iztok, and Andrej Brodnik (eds.). StuCoSReC. Proceedings of the 2018 5th Student Computer Science Research Conference. Koper: University of Primorska Press, 2018
P. 22
binacija doloˇcenih algoritmov je v povpreˇcju dala 78% 3.3 Test berljivosti
natanˇcnost. Specialisti izbranega podroˇcja so dosegli 63%
natanˇcnost, pripravniki pa zgolj 49% natanˇcnost pri loˇcevanju Nad korpusom smo izvedli testa berljivosti po Flesch in
pisem. Flesch-Kicaidovi metodi. Ocena berljivosti besedila (angl.
Flesh score) smo izraˇcunali po enaˇcbi (1), kjer RE pred-
V ˇclanku [2] so naredili ˇstudijo vsebine samomorilskih pi- stavlja enostavnost branja (angl. readability ease).
sem ljudi, ki so samomor skuˇsali storiti ter druge skupine
ljudi, ki je samomor dejansko storila. Sˇtudijo so izvedli s RE = 206, 83 − (1, 015 ∗ ASL) − (84, 6 ∗ ASW ) (1)
programom za tekstovno analizo, kateri uporablja jezikovno
povpraˇsevanje in ˇstetje besed (angl. Linguistic Inquiry and V enaˇcbi (2) ASL predstavlja povpreˇcno dolˇzino stavka (angl.
Word Count). average sentence length).

Cˇ lanek [1] opisuje ˇstudijo samomorilskih pisem iz Mehike. ASL = stBesed (2)
Preuˇcevali so vzorec 212 samomorov, kjer je 106 oseb napi- stStavkov
salo poslovilno pismo, ostalih 106 pa tega ni storilo. Ugoto-
vili so, da se osebnostne lastnosti tistih, ki poslovilna pisma V enaˇcbi (3) ASW predstavlja povpreˇcno ˇstevilo zlogov na
napiˇsejo in tistih oseb, ki jih ne, pretirano ne razlikujejo. besedo (angl. average number of syllables per word).

3. PRIPRAVA BESEDILA stZ log ov (3)
3.1 Predprocesiranje ASW =

Ko smo pripravili korpus s poslovilnimi pismi samomoril- stBesed
cev, je bilo le-te potrebno pripraviti za nadaljnjo uporabo.
Iz pisem smo odstranili loˇcila, ˇstevilke ter vse ostale nestan- Viˇsji je RE (ocena berljivosti besedila) manjˇsa je kompleks-
dardne znake. Pri predprocesiranju besedila smo prav tako nost besedila. Metoda vrne oceno berljivosti besedila (angl.
pretvorili velike ˇcrke v male. readability score), katera je realno ˇstevilo med 0 in 100,
vendar pa zaradi napak v formatiranju lahko pride do od-
Algoritem 1: Priprava besedila. stopanja. Ta odstopanja smo normalizirali na priˇcakovane
vrednosti. Flesch-Kinicaid metoda nam pove nivo berljivosti
Input : neobdelano besedilo (besedilo) besedila in se izraˇcuna po enaˇcbi (4), kjer TW predstavlja
Output: obdelano besedilo (izhod) ˇstevilo vseh besed (angl. total words), TS je ˇstevilo vseh
for znak in besedilo do stavkov (angl. total sentences) in TSYL ˇstevilo vseh zlo-
gov (angl. total syllables). Priˇcakovan rezultat je decimalno
if znak=JE CRKA() then ˇstevilo med 0 in 13, katero sovpada s povpreˇcnim nivojem
if znak= JE VELIKA() then berljivosti v ˇsolskih razredih v Zdruˇzenih Drˇzavah Amerike.
DODAJ V IZHOD(SPREMENI V MALO(znak)) Zaradi zahteve po ˇstevilu besed v stavkih, smo teste bral-
else nosti izvajali na osnovnem - neprocesiranem besedilu [13].
DODAJ V IZHOD(znak)
end RL = 0, 39 ∗ ( T W ) + 11, 8 ∗ ( T SY L ) − 15, 59 (4)
TS TW
else if znak=JE PRESLEDEK() then
DODAJ V IZHOD(znak) Vrednosti RE in RL smo vkljuˇcili v datoteko CSV.

else if znak=JE OPUSˇCˇAJ() then 3.4 Analiza cˇustev
DODAJ V IZHOD(znak)
Za uspeˇsno delovanje algoritma smo potrebovali tudi analizo
end ˇcustev. Ta nam iz vsakega pisma izluˇsˇci emocije, ki se jih da
end razpoznati na podlagi zapisanega besedila. Pri analizi smo
si pomagali z modulom WNAffect [5]. Procesirano besedilo
3.2 Oblikoslovno oznacˇevanje smo vstavili v funkcijo in kot rezultat dobili slovar ˇcustev, ki
se pojavijo v besedilu ter vsoto njihovih magnitud. Na koncu
Za meritve povpreˇcij in ostalih statistiˇcnih podatkov smo smo iz vseh obdelanih pisem in pridobljenih unikatnih ˇcustev
naredili oblikoslovno oznaˇcevanje (angl. parts of speech tag- roˇcno generirali statiˇcni slovar vseh emocij.
ging), kjer smo implementirali tokenizacijo in oznaˇcili besede
glede na pomen v povedi. Vsaki besedi se je po zagonu algo- Algoritem 2: Pridobivanje ˇcustev.
ritma dodala oznaka, katera nam je povedala za kakˇsno vrsto
besede gre. Uporabili smo knjiˇznico NLTK [8]. Bila je do- function GetEmotion (besedilo);
dana podpora za veˇcnitno delovanje, ker je lahko proces na Input : oznaˇceno besedilo (besedilo)
velikih korpusih ˇcasovno zelo potraten. Metoda z veˇcnitnim wna=WNAffect()
delovanjem rezultatov ne shranjuje v spremenljivke v po- for znacka in besedilo do
mnilniku, temveˇc jih v datoteke na trdem disku.
if znacka != LOCˇILO then
Po uspeˇsni implementaciji algoritma smo seˇsteli vse poja- custva=PRIDOBI Cˇ USTVA()
vitve oznak ter naredili slovar povpreˇcnih pojavitev doloˇcenih if custvo != NONE then
oznaˇcb. Torej, koliko glagolov, loˇcil, samostalnikov itd., vse- return (znacka, custvo, stopnja)
buje povpreˇcno pismo. Nato smo seznam oznaˇcb normali- end
zirali na omejen nabor znaˇck. Pridobili smo tudi statistiko
za vsako posamezno pismo, kjer ohranimo podatek, kateri end
slovar pripada kateremu pismu. end

4. ZDRUŽITEV REZULTATOV FUNKCIJ

Ko smo implementirali vse omenjene funkcije, smo morali
rezultate zdruˇziti ter jih pripraviti za strojno uˇcenje. Rezul-
tate smo zato zdruˇzili v datoteke CSV. V prvo izmed datotek

StuCoSReC Proceedings of the 2018 5th Student Computer Science Research Conference 22
Ljubljana, Slovenia, 9 October
   17   18   19   20   21   22   23   24   25   26   27