VYTAUTO DIDŽIOJO UNIVERSITETAS Ieva Bumbulienė
Transcript of VYTAUTO DIDŽIOJO UNIVERSITETAS Ieva Bumbulienė
VYTAUTO DIDŽIOJO UNIVERSITETAS
INFORMATIKOS FAKULTETAS
TAIKOMOSIOS INFORMATIKOS KATEDRA
Ieva Bumbulienė
AUTOMATINIS LIETUVIŠKŲ PASTOVIŲJŲ ŽODŽIŲ JUNGINIŲ
ATPAŽINIMAS
Magistro baigiamasis darbas
Taikomosios informatikos studijų programa, valstybinis kodas 6211BX012
Informatikos studijų kryptis
Vadovas prof. dr. T. Krilavičius Moksl. laipsnis, vardas, pavardė parašas, data
Apginta prof. dr. Daiva Vitkutė-Adžgauskienė Fakulteto dekanas parašas, data
Kaunas, 2018
TURINYS
TURINYS ...................................................................................................................... 2
SANTRUMPŲ IR TERMINŲ ŽODYNAS ..................................................................... 4
SANTRAUKA ............................................................................................................... 5
ABSTRACT ................................................................................................................... 6
1 ĮVADAS ................................................................................................................. 7
2 PASTOVIŲJŲ JUNGINIŲ SĄVOKA .................................................................... 8
3 PASTOVIŲJŲ JUNGINIŲ IDENTIFIKAVIMO METODAI ................................ 10
3.1 Statistiniai metodai ........................................................................................ 10
3.2 Taisyklėmis paremti metodai ......................................................................... 14
3.3 Hibridiniai metodai........................................................................................ 14
3.4 Mašininio mokymo metodai .......................................................................... 15
3.4.1 Naïve Bayes ............................................................................................... 16 3.4.2 Random Forest ........................................................................................... 16 3.4.3 Atraminių vektorių metodas ....................................................................... 17 3.4.4 Conditional Random Fields (CRF) ............................................................. 18 3.4.5 Rekurentiniai neuroniniai tinklai ................................................................ 18
3.5 Apibendrinimas ............................................................................................. 19
3.6 Metodų kokybės vertinimas ........................................................................... 19
4 DUOMENYS ........................................................................................................ 21
4.1 Pirminis tekstynas ......................................................................................... 21
4.2 Morfologiškai anotuotas tekstynas ................................................................. 22
4.3 N-gramų tekstynas ......................................................................................... 22
4.3.1 N-gramų tekstynas (unikali junginio forma) ............................................... 22 4.3.2 N-gramų tekstynas (unikali junginio forma ir morfologinė informacija) ..... 25
4.4 Pastoviaisiais junginiais anotuotas tekstynas .................................................. 25
4.5 Žodžių vektoriai ............................................................................................ 26
4.6 Apibendrinimas ............................................................................................. 27
5 Eksperimentai ....................................................................................................... 28
5.1 Įrankiai ir technologijos, naudotos eksperimentams atlikti ............................. 28
5.2 Statistiniai įverčiai ......................................................................................... 28
5.3 Naïve Bayes, Random Forest, SVM .............................................................. 33
5.4 CRF............................................................................................................... 40
5.5 RNN .............................................................................................................. 42
5.6 Eksperimentų palyginimas ............................................................................. 44
6 Pastoviųjų junginių atpažintuvo prototipas ............................................................ 46
6.1 Prototipo projektavimas ................................................................................. 46
6.2 Prototipo realizavimas ................................................................................... 48
6.3 Rekomendacijos tolesniam vystymui ............................................................. 52
7 REZULTATAI IR IŠVADOS ............................................................................... 53
7.1 Rezultatai ...................................................................................................... 53
7.2 Išvados .......................................................................................................... 54
8 LITERATŪROS SĄRAŠAS ................................................................................. 56
9 PRIEDAI .............................................................................................................. 61
9.1 Statistinių įverčių reikšmių histogramos ........................................................ 61
9.2 Statistinių įverčių intervalams apskaičiuoto F1-įverčio reikšmių paviršiai ...... 65
9.3 Prototipas ...................................................................................................... 67
9.4 Pirmo tiriamojo darbo santrauka .................................................................... 70
9.5 Antro tiriamojo darbo santrauka .................................................................... 71
9.6 Trečio tiriamojo darbo santrauka ................................................................... 72
9.7 Publikacijos ir pranešimai .............................................................................. 72
4
SANTRUMPŲ IR TERMINŲ ŽODYNAS
PMI Pointwise Mutual Information, Abipusės informacijos įvertis
LLR Log Likelihood Ratio, Logaritminio tikėtinumo santykis
MI Mutual Information, Tarpusavio informacijos įvertis
MS Minimum Sensitivity, Minimalaus jautrumo įvertis
N-grama Žodžių junginys, sudarytas iš apibrėžto N kiekio žodžių
SVM Support Vector Machine, Atraminių vektorių metodas
CRF Conditional Random Fields, Sąlyginiai atsitiktiniai laukai
bi-LSTM Bidirectional Long Short-Term Memory, Dvikryptė ilga trumpalaikė atmintis
LSTM Long Short-Term Memory, Ilga trumpalaikė atmintis
RBF Radial Basis Function, Radialinė bazinė funkcija
HMM Hidden Markov Models, Paslėptieji Markovo modeliai
GloVe Global Vectors for Word Representation, Žodžių vektorių tipas
RNN Recurrent Neural Networks, Rekurentiniai neuroniniai tinklai
SMOTE Synthetic Minority Oversampling TEchnique, Dirbtinė pavyzdžių sukūrimo
technika
ENN Edited Nearest Neighbors, Koreguoti artimiausi kaimynai
NLTK Natural Language Toolkit, Natūraliosios kalbos apdorojimo biblioteka
OHE One Hot Encoding, Vieno vektoriaus kodavimas
L-BFGS Limited-memory Broyden–Fletcher–Goldfarb–Shanno algorithm, Ribotos
atminties Broyden–Fletcher–Goldfarb–Shanno algoritmas
API Application programming interface, API sąsaja
REST API REpresentational State Transfer API, REST tipo API sąsaja
POST HTTP užklausos metodas
JSON JavaScript Object Notation, Failo formato standartas
UTF-8 Teksto kodavimo standartas, naudojantis 8 bitus kodavimui
5
SANTRAUKA
Autorius Ieva Bumbulienė
Pavadinimas Automatinis lietuviškų pastoviųjų žodžių
junginių atpažinimas
Vadovas Prof. dr. Tomas Krilavičius
Puslapių skaičius 73
Pastoviųjų junginių automatinis atpažinimas yra aktualus natūraliosios kalbos
apdorojimo sistemų, kompiuterinės lingvistikos srityse. Nekreipiant dėmesio į pastoviuosius
junginius natūraliosios kalbos sistemos gali pateikti nenatūralias išraiškas, o minimų junginių
procentinė dalis kalboje yra didelė (~41% daugelyje kalbų) ir tai šią problemą daro dar labiau
aktualia. Taigi, šiame darbe yra gvildenama automatinio pastoviųjų junginių atpažinimo
problema – siekiama sukurti metodiką automatiniam lietuviškų pastoviųjų junginių atpažinimui
ir realizuoti jos pagrindu veikiantį prototipą. Išanalizavus galimus metodus problemos
sprendimui, nuspręsta atlikti eksperimentų su statistiniais, mašininio ir giliojo mokymo metodais,
nes jų taikymas dažnais atvejais lemia lūkesčius tenkinančius rezultatus. Pirmiausia surinktas
bazinis 70 mln. žodžių tekstynas iš naujienų portalo „delfi.lt“. Atlikti eksperimentai su 17
skirtingų 2-gramoms skirtų statistinių įverčių ir tyrimai su 3 klasifikatoriais – Naïve Bayes,
Random Forest ir SVM. Klasifikatorių apmokymui naudotos statistinės (17 skirtingų įverčių) ir
lingvistinės (morfologinė informacija) savybės. Taip pat eksperimentai atlikti su 4 skirtingais
kategorinės informacijos kodavimo būdais ir klasių subalansavimo metodais (SMOTE kartu su
ENN ir SMOTE su Tomek). Paruošti duomenys ir pritaikyti sekoms skirti metodai CRF ir RNN
bi-LSTM. Tam, kad būtų apmokytas RNN, iš priminio tekstyno sugeneruoti GloVe tipo žodžių
vektoriai. Apjungus geriausius CRF ir RNN modelius gautas F1-įvertis 49%. Šių modelių
kombinacija panaudota pastoviųjų žodžių junginių atpažintuvo prototipe, taip pat apmokytas
RNN (bi-LSTM) modelis kalbos dalių žymėjimui, kuris įtrauktas į prototipą. Atpažintuvo
prototipas realizuotas kaip internetinė sistema ir API, aptartos prototipo tobulinimo galimybės.
6
ABSTRACT
Author Ieva Bumbulienė
Title Automatic Identification of Lithuanian
Multiword Expressions
Supervisor Prof. dr. Tomas Krilavičius
Number of pages 73
Identification of Multiword Expressions is a significant problem in Natural Language
Processing and Computer Linguistics. Natural language processing systems might return
unnatural expressions if not enough attention is given for multiword expressions, for example, in
the field of machine translation. Moreover, in most of the languages a part of multiword
expressions varies about 41% or more. Thus, in this master project a problem of automatic
identification of multiword expressions is discussed. The goal of the project is to develop a
methodology for Lithuanian Multiword Expressions identification and build a prototype based
on the methodology. It was decided to use Statistical, Machine Learning and Deep Learning
methods due to their good performance on the similar tasks. A corpus of about 70 million words
was collected from Lithuanian news portal “delfi.lt”. 17 different lexical association measures
were calculated for bigrams and analyzed. Experiments were performed using 3 classifiers –
Naïve Bayes, Random Forest and SVM. The training of these classifiers was done using
statistical and morphological information of word expressions. In those experiments 4 different
methods of categorical data encoding and 2 combinations of classes balancing methods –
SMOTE with ENN and SMOTE with Tomek were included. Data was prepared for sequence
models CRF and RNN (bi-LSTM). GloVe word vectors were generated to use for RNN training.
After those experiments have been made, the best CRF and RNN models were combined and a
49% value of F1-Score was calculated. A combination of those models as well as trained part of
speech tagger were used in a prototype of tool for automatic multiword expressions
identification. This prototype was implemented as an internet system and API. Finally, the
possible improvement points of the prototype were discussed.
7
1 ĮVADAS
Pastoviųjų junginių automatinis atpažinimas yra aktuali kompiuterinės lingvistikos ir
natūraliosios kalbos apdorojimo sričių problema. Pastoviųjų junginių pavyzdžiai lietuvių
kalboje: „sveikas protas“, „burtų keliu“, „varnas šaudyti“ ir t. t. Natūraliosios kalbos sistemos
gali pateikti nenatūralias išraiškas, jei nėra kreipiamas dėmesys į pastoviųjų junginių valdymą –
mašininio vertimo atveju pažodinis vertimas dažnai būna netikslus, o pastoviųjų junginių
atpažinimo realizavimas padeda spręsti tokią problemą [1]. Pastovieji junginiai yra mažiau
daugiareikšmiai nei atskiri žodžiai, todėl jų atpažinimas taip pat svarbus ir prasmės nustatymo
užduotyse. Be to, šių junginių dalis kalboje yra ypač didelė – net 41% [2] ir šis skaičius
apytiksliai tinka daugeliui kalbų. Pastoviųjų junginių identifikavimui yra naudojami įvairūs
metodai, kurie skirstomi į tris dideles grupes: statistinius, paremtus taisyklėmis ir hibridinius [3].
Automatinis pastoviųjų junginių atpažinimas dažnai yra įgyvendinamas taikant mašininio
mokymo metodus. Mašininio mokymo metodų apmokyme gali būti naudojamos įvairios
pastoviųjų junginių savybės – tiek statistinių įverčių reikšmės, tiek ir juos apibūdinanti
morfologinė, sintaksinė informacija. Dėl to magistrinio darbo metu nuspręsta išanalizavus
literatūrą atlikti eksperimentus siekiant automatiškai atpažinti pastoviuosius junginius ir
vertingiausius metodus pritaikyti – suprojektuoti ir suprogramuoti automatinio pastoviųjų žodžių
junginių atpažintuvo prototipą.
TIKSLAS: Sukurti metodiką automatiniam lietuviškų pastoviųjų junginių atpažinimui ir
realizuoti jos pagrindu veikiantį prototipą.
DARBO UŽDAVINIAI:
1. Atlikti literatūros ir metodų, taikomų pastoviųjų junginių atpažinimo problemai
spręsti, analizę;
2. Surinkti ir parengti duomenis, reikalingus sukurtai metodikai tobulinti;
3. Eksperimentiškai ištirti parinktus/sukurtus metodus pastovių junginių
identifikavimui;
4. Suprojektuoti automatinio pastoviųjų junginių atpažintuvo prototipą atsižvelgiant
į eksperimentų rezultatus;
5. Realizuoti automatinį pastoviųjų junginių atpažintuvo prototipą;
6. Parengti rekomendacijas tolimesniam metodų ir prototipo vystymui.
8
2 PASTOVIŲJŲ JUNGINIŲ SĄVOKA
Kiekvienoje kalboje sakiniuose yra vartojami išsireiškimai, žodžių junginiai, kurie
gimtakalbiams yra savaime suprantami ir įprasti kasdienybėje. Tokių junginių vartojimas yra
nusistovėjęs reiškinys, minimi junginiai gali būti vadinami pastoviaisiais. Pastovieji junginiai
(angl. multiword expressions) nėra apibrėžiami vienareikšmišku apibrėžimu – skirtingi autoriai
pateikia šiek tiek besiskiriančias sampratas, kurių prasmė panaši, tačiau skirtingas detalumo lygis
ar akcentuojamas aspektas. Pastoviuoju junginiu gali būti įvardijama tokia žodžių seka, kuri yra
tarsi vienas atskiras vienetas žvelgiant iš tam tikro lingvistinės analizės lygmens [4]. Šiuo
apibrėžimu parodoma, kad pastovusis junginys turi kitokią, jį sudarančius žodžius vienijančią
prasmę. Atskiri pastovaus junginio žodžiai gali turėti žymiai daugiau prasmių ir gali būti
pavartoti kituose kontekstuose nei jų junginys, pavyzdžiui, junginys „praleisti laiką“ turi
vienareikšmišką prasmę, o jį sudarantys žodžiai „praleisti“ ir „laiką“, žvelgiant į juos kaip į
atskirus vienetus, gali turėti kitokią reikšmę ir būti vartojami atskirai. Kitame apibrėžime [5] yra
išskiriamos dvi dalys pastoviųjų junginių įvardijimui – pirma, tai pastovusis junginys gali būti
išskaidomas į kelis paprastus žodžius, antra, jis yra išskirtinis žvelgiant iš leksinės, sintaksės,
semantikos ar statistikos perspektyvos. Abu minėti apibrėžimai yra panašūs, tačiau antrajame
pateikiama daugiau detalumo, o tuo pačiu išaiškėja ir pastoviųjų junginių apibrėžimo
problemiškumas – pastoviajam junginiui aptikti, įvardinti nėra aiškios vienareikšmiškos
taisyklės, todėl juos nagrinėjant reikalinga nustatyti ribas ir išskirti, kurie junginiai bus laikomi
pastoviaisiais, o kurie ne, sprendžiant juos apimančias problemas.
Lietuvių kalboje pastovieji žodžių junginiai gali būti skirstomi į frazeologizmus ir
kolokacijas (tokia klasifikacija naudojama projekte „Lietuvių kalbos pastoviųjų žodžių junginių
automatinis atpažinimas (PASTOVU)“ [6]). Plačiau frazeologizmų ir kolokacijų sampratą bei šių
junginių atpažinimo kriterijus rašoma straipsnyje [7]. Frazeologizmų pavyzdžiai: „akis išdegti“,
„akla višta“, „purvais apdrėbti“ ir t. t. Kolokacijų pavyzdžiai: „bėga laikas“, „ministras
pirmininkas“, „siekti užsibrėžto tikslo“ ir t. t.
Aktualu išskirti ypač svarbią pastoviųjų junginių savybę – minimi junginiai gali turėti
įsiterpusių žodžių arba jų neturėti, pavyzdžiui, junginys „daryti spaudimą“ gali būti
nepertrauktos arba pertrauktos struktūros („daryti labai didelį spaudimą“), o žodžiai aptinkami ir
sukeisti vietomis („spaudimą daryti“). Kiek žodžių gali įsiterpti yra apibrėžiama įvairiai ir nėra
nurodyta griežtomis taisyklėmis, tačiau įvardijama, kad iki 2 žodžių įsiterpimas gali būti labai
svarbus, o įsiterpimo žodžių svarba pasiekus 4-5 įterptus žodžius mažėja [8]. Pats pastovusis
junginys taip pat yra konkrečiai neapibrėžto ilgio, aptinkama iš 2, 3 ir daugiau žodžių sudarytų
junginių, tačiau jie neperžengia sakinio ribų. Taigi, akivaizdu, kad pastovusis junginys nėra
9
vienareikšmiškai apibrėžtas kalbos vienetas, tačiau galima apibendrinti, kad jis turi gramatišką
struktūrą, gali būti klasifikuojamas pagal įvairius kriterijus, būti kaitomas arba stabilus, turėti
įsiterpusių žodžių ir būti kelių žodžių ilgio neperžengiant sakinio ribos, o svarbiausia, kad yra
pastoviai vartojamas kalboje posakių, frazių, paprastų žodžių junginių ir kartais netgi sakinių
pavidalu [9].
10
3 PASTOVIŲJŲ JUNGINIŲ IDENTIFIKAVIMO METODAI
Pastoviųjų junginių atpažinimas yra sudėtingas uždavinys ir jį galima suskaidyti į kelis
mažesnius: duomenų surinkimą, jų paruošimą, apdorojimą tolimesniam darbui, pastoviųjų
junginių identifikavimą – kandidatų atrinkimą ir vėliau jų filtravimą bei sprendimo priėmimą
pagal numatytus kriterijus, kuriuos turi tenkinti pastovusis junginys [10]. Identifikavimui atlikti
yra naudojami įvairūs metodai, kuriuos būtų galima suskirstyti į tris grupes [3]:
1. Statistinius;
2. Taisyklėmis paremtus;
3. Hibridinius (metodų kombinacijas).
3.1 Statistiniai metodai
Statistinių metodų dėka galima išskirti pastoviuosius junginius, remiantis
apskaičiuojamais leksiniais traukos įverčiais. Įverčių, galimų naudoti dvižodžių pastoviųjų
junginių atskyrimui, yra ypač daug: išskiriami 82 [11], 55 [12]. Nuspręsta atlikti eksperimentų
naudojant šiuos 17 skirtingų įverčių dvižodžiams junginiams:
1. Abipusė informacija PMI (angl. (Pointwise) Mutual Information) (1) [3] [11] [2] [13] [14];
2. Logaritminio tikėtinumo santykis LLR (angl. Log Likelihood Ratio) (2) [3] [11] [13] [15];
3. Dice koeficientas (4) [13] [16];
4. Logaritmuotas Dice koeficientas (5) [16];
5. T-testas (6) [11] [13] [16];
6. Pirsono Chi-kvadrato testas (7) [11] [15];
7. Phi-kvadrato testas (8) [3] [11];
8. Odds santykis (9) [11] [15];
9. Z-įvertis (angl. Z-Score) (10) [11] [15];
10. Poisson Stirling įvertis (12) [15];
11. MI (angl. Mutual Information) įvertis (13) [16] [15];
12. MI2 įvertis (14) [15];
13. MI3 įvertis (15) [16] [15];
14. Gmean įvertis (16) [15];
15. Relative Risk įvertis (17) [15];
16. Liddel koeficientas (18) [15];
17. MS įvertis (19) [15].
11
Skaičiuojant statistinių įverčių reikšmes šiame darbe f raide žymimas dažnis, wi – i-tasis
junginio žodis, t. y. 𝑓(𝑤$) atitinka pirmo junginio žodžio dažnį nagrinėjamame tekstyne, o
𝑓(𝑤$, 𝑤') – dviejų žodžių (𝑤$ir𝑤') junginio dažnį. Be to, dalies įverčių skaičiavimui yra
reikalingos nenumatytų atvejų lentelės (angl. contingency tables), kurios pavyzdys 2-gramai (iš
dviejų žodžių sudarytam junginiui) matomas 1 lentelėje [13]. Čia ~𝑤$reiškia bet kuris žodis, tik
ne 𝑤$ ir analogiškai ~𝑤' – bet kuris žodis, tik ne 𝑤'. 𝑓(𝑤$,~𝑤') žymi dažnį junginių, kurių
pirmas žodis yra 𝑤$, o antras bet koks žodis, tik ne nagrinėjamos 2-gramos antrasis žodis 𝑤'.
𝑓(𝑁) yra dažnių 𝑓(𝑤$) ir 𝑓(~𝑤$) arba 𝑓(𝑤') ir 𝑓(~𝑤') suma – visų žodžių tekstyne skaičius.
1 lentelė. Nenumatytų atvejų lentelės pavyzdys bigramai [13]
w2 -w2 Sumos
w1 𝑓(𝑤$, 𝑤') 𝑓(𝑤$,~𝑤') 𝑓(𝑤$)
-w1 𝑓(~𝑤$, 𝑤') 𝑓(~𝑤$, ~𝑤') 𝑓(~𝑤$)
Sumos 𝑓(𝑤') 𝑓(~𝑤') 𝑓(𝑁)
Žemiau pateikiamos formulės, naudotos statistinių įverčių reikšmių apskaičiavimui.
PMI įgyja teigiamas ir neigiamas reikšmes – kuo didesnė reikšmė, tuo labiau tikėtina, kad
žodžiai sudaro pastovųjį junginį. Yra žinoma, kad PMI įvertis dideles reikšmes teikia retai
pasitaikantiems junginiams [14].
LLR naudojamas iškeltų hipotezių tikrinimui. Nuline hipoteze yra laikoma, kad
nagrinėjami žodžiai yra nepriklausomi ir kartu pasitaiko atsitiktinai – jų pasirodymas kartu yra
statistiškai nereikšmingas, todėl junginys nelaikomas pastoviuoju. Tuo tarpu kita hipoteze
teigiama, kad žodžiai yra pastovaus junginio komponentai.
𝑃𝑀𝐼(𝑤$,𝑤') = 𝑙𝑜𝑔𝑝(𝑤$, 𝑤')
𝑝(𝑤$) ∙ 𝑝(𝑤'),
(1)
kur 𝑝(𝑤$, 𝑤') = 𝑓(𝑤$,𝑤')/𝑓(𝑁), o 𝑝(𝑤7) = 𝑓(𝑤7)/𝑓(𝑁).
𝐿𝐿𝑅 = −2< 𝑓7=𝑙𝑜𝑔𝑓7=
𝑓7=>?@>AB>C ,
7=
(2)
kur 𝑓7= yra dažnis langelyje ij, randamas nenumatytų atvejų lentelėje, t. y. 𝑓$$ = 𝑓(𝑤$, 𝑤'),
𝑓$' = 𝑓(𝑤$, ~𝑤'), 𝑓'$ = 𝑓(~𝑤$,𝑤') ir 𝑓'' = 𝑓(~𝑤$,~𝑤'), o
𝑓7=>?@>AB>C = 𝑓(𝑑𝑎𝑡𝑎𝐼𝑡𝑒𝑚$) ∙ 𝑓(𝑑𝑎𝑡𝑎𝐼𝑡𝑒𝑚')/𝑁, (3)
12
Dice koeficientas suteikia galimybę įvertinti junginį sudarančių žodžių tarpusavio darną.
Dice koeficiento įverčių reikšmės dažnai yra labai mažos, o siekiant to išvengti, galima
rezultatus logaritmuoti. Logaritmuojant nepakinta minimumai ir maksimumai, tačiau reikšmės
atsiduria mažesniame intervale (susiaurinama amplitudė) ir gali būti lengviau interpretuojamos.
Literatūroje siūlomas logaritmuotas Dice koeficiento įvertis logDice, kuris gali būti
apskaičiuotas pagal (5) formulę.
Pastoviųjų junginių atpažinimo kontekste t-testas suteikia galimybę patikrinti, ar žodžiai,
sudarantys junginį, kartu pasitaikė atsitiktinai, ar vis tik tarp jų yra ryšys ir jie gali būti pavadinti
pastoviuoju junginiu.
Pirsono Chi-kvadrato testas leidžia patikrinti hipotezę, ar junginį sudarantys žodžiai yra
nepriklausomi. Analogiškai kaip ir logaritminio tikėtinumo skaičiavimo atveju nuline hipoteze
teigiama, kad žodžiai yra nepriklausomi ir mažai tikėtina, kad sudarytų pastovųjį junginį. Toliau
pateikiamos likusių įverčių formulės.
kur dataItem yra 𝑤$, 𝑤',~𝑤$,~𝑤', priklausomai nuo to, kuris lentelės langelis tuo metu
yra naudojamas.
𝐷𝑖𝑐𝑒(𝑤$, 𝑤') =2 ∙ 𝑓(𝑤$,𝑤')𝑓(𝑤$) + 𝑓(𝑤')
(4)
𝑙𝑜𝑔𝐷𝑖𝑐𝑒(𝑤$, 𝑤') = 14 + 𝑙𝑜𝑔'2 ∙ 𝑓(𝑤$,𝑤')𝑓(𝑤$) + 𝑓(𝑤')
, (5)
𝑡 =𝑓(𝑤$, 𝑤') −
O(PQ)∙O(PR)S
T𝑓(𝑤$, 𝑤')
(6)
𝜒' = <(𝑓7= − 𝑓7=
>?@>AB>C)'
𝑓7=>?@>AB>C ,
7=
(7)
kur 𝑓7= yra dažnis langelyje ij, randamas nenumatytų atvejų lentelėje, t. y. 𝑓$$ = 𝑓(𝑤$, 𝑤'),
𝑓$' = 𝑓(𝑤$, ~𝑤'), 𝑓'$ = 𝑓(~𝑤$,𝑤') ir 𝑓'' = 𝑓(~𝑤$,~𝑤'), o 𝑓7=>?@>AB>C pateikta (3)
formulėje
𝜙' =(𝑓(𝑤$, 𝑤') ∙ 𝑓(~𝑤$, ~𝑤') − 𝑓(𝑤$, ~𝑤') ∙ 𝑓(~𝑤$, 𝑤'))'
𝑓(𝑤$) ∙ 𝑓(𝑤') ∙ 𝑓(~𝑤$) ∙ 𝑓(~𝑤')
(8)
𝑜𝑑𝑑𝑠𝑟𝑎𝑡𝑖𝑜C7YA =(𝑓(𝑤$, 𝑤') + 0.5) ∙ (𝑓(~𝑤$,~𝑤') + 0.5)(𝑓(𝑤$, ~𝑤') + 0.5) ∙ (𝑓(~𝑤$, 𝑤') + 0.5)
(9)
13
Taigi, statistinių įverčių, kuriuos galima naudoti pastoviųjų junginių atpažinimui yra ypač
daug. Šiame skyriuje įvardinta 17 įverčių, tačiau jų yra žymiai daugiau – kaip tinkami pastoviųjų
junginių atpažinimui yra įvardijami 55 [12] ir net 82 [11] įverčiai. Dažniausiai yra naudojami
keli įverčiai, kurių rezultatai apibendrinami ir tik tada priimamas sprendimas, ar tikėtina, kad
junginys gali būti pastovusis. Įprastai įverčių reikšmių interpretavimas ir slenksčio nustatymas
nėra pagrįstas konkrečiais matematiniais metodais – tai atliekama eksperimentuojant ir remiantis
publikacijose paskelbtomis rekomendacijomis.
𝑧𝑠𝑐𝑜𝑟𝑒 =𝑓(𝑤$, 𝑤') − 𝑒$$
√𝑒$$
(10)
kur 𝑒$$ =O(PQ)∙O(PR)
O(S) (11)
𝑃𝑜𝑖𝑠𝑠𝑖𝑜𝑛𝑆𝑡𝑖𝑟𝑙𝑖𝑛𝑔 = 𝑓(𝑤$, 𝑤') ∙ (log𝑓(𝑤$,𝑤') − log𝑒$$ − 1) (12)
kur 𝑒$$ iš (11)
𝑀𝐼 = log𝑓(𝑤$, 𝑤')
𝑒$$
(13)
kur 𝑒$$ iš (11)
𝑀𝐼2 = log𝑓(𝑤$,𝑤')'
𝑒$$
(14)
kur 𝑒$$ iš (11)
𝑀𝐼3 = log𝑓(𝑤$,𝑤')e
𝑒$$
(15)
kur 𝑒$$ iš (11)
𝐺𝑚𝑒𝑎𝑛 =𝑓(𝑤$, 𝑤')
T𝑓(𝑤$) ∙ 𝑓(𝑤')
(16)
𝑅𝑒𝑙𝑎𝑡𝑖𝑣𝑒𝑅𝑖𝑠𝑘 = log𝑓(𝑤$,𝑤') ∙ 𝑓(~𝑤')𝑓(𝑤$,~𝑤') ∙ 𝑓(𝑤')
(17)
𝐿𝑖𝑑𝑑𝑒𝑙 =(𝑓(𝑤$,𝑤') ∙ 𝑓(~𝑤$,~𝑤')) − (𝑓(𝑤$, ~𝑤') ∙ 𝑓(~𝑤$, 𝑤'))
𝑓(𝑤') ∙ 𝑓(~𝑤')
(18)
𝑀𝑆 = 𝑚𝑖𝑛 i𝑓(𝑤$, 𝑤')𝑓(𝑤$)
,𝑓(𝑤$, 𝑤')𝑓(𝑤')
j (19)
14
3.2 Taisyklėmis paremti metodai
Taisyklėmis paremti metodai dar gali būti įvardijami kaip filtrai, sukurti remiantis
lingvistinėmis žiniomis apie pastoviuosius junginius. Apibrėžiamos gramatikos arba/ir sintaksės
taisyklės, būdingos pastoviesiems junginiams ir ištraukiami kandidatai, kurie jas tenkina. Norint
taikyti tokio tipo metodus reikalinga turėti morfologiškai ar dar ir sintaksiškai anotuotą tekstyną.
Tekstynas turi būti anotuotas, nes būtent tokiomis anotacijomis ir yra remiamasi nustatant
kandidatus. Anotavimo detalumas gali varijuoti, pavyzdžiui, morfologiškai anotuotame tekstyne
pažymėtos tik žodžių kalbos dalys (angl. part of speech) arba dar nurodyta ir detalesnė
informacija – linksnis, asmuo ir kita.
Kalbos dalių šablonai (angl. POS patterns), pagal kuriuos ištraukiami pastovieji
junginiai, nėra universalūs – jie skirtingose kalbose nesutampa ir turi būti parinkti tinkamai
siekiant kuo kokybiškesnių rezultatų [17]. Kalbos dalių šablonų pavyzdžiai: „daiktavardis
daiktavardis“, „veiksmažodis daiktavardis“ ir t. t., o sintakse paremti šablonai gali
būti tokie kaip „subjektas–veiksmažodis“ ar „veiksmažodis–objektas“ ir kiti.
Įvardijama, kad morfologinio ir sintaksinio anotavimo metodai nėra tarpusavyje konkuruojantys
ir puikiai papildo vienas kitą. Eksperimentais [18] atskleidžiama, kad šių dviejų metodų pateiktų
rezultatų persidengimas yra nedidelis, o tai reiškia, kad juos derinant galima pasiekti geresnių
rezultatų nei pasirinkus vieną kažkurį metodą. Nerasta, kad šiuo metu būtų taikomi gryni, vien
tik taisyklėmis paremti metodai nenaudojant kitų metodų rezultatų rangavimui ar kandidatų
filtravimui. Tačiau taisyklėmis paremti metodai yra dažnai aptinkama ir labai svarbi pastoviųjų
junginių automatinio atpažinimo proceso sudedamoji dalis.
3.3 Hibridiniai metodai
Dažniausiai automatinis pastoviųjų junginių atpažinimas realizuojamas taikant ne vieną iš
anksčiau aprašytų metodų, o juos kartu jungiant įvairiais būdais. Yra kombinuojami kelių
statistinių įverčių rezultatai, pavyzdžiui, taisyklėmis besiremiančių metodų rezultatai filtruojami
pagal statistinius įverčius [13]. Rezultatui pateikti neretai taikomi įvairūs mašininio mokymo
metodai, pavyzdžiui, klasifikatoriai – Bayes metodas [2], dirbtiniai neuroniniai tinklai [19], SVM
[20] ir kiti.
Neretai literatūroje aptinkamo hibridinio metodo schemos variantas matomas 1 pav. Šiuo
atveju pirmiausia yra apdorojamas tekstynas (anotuojamas, kartais dar ir lemuojamas), kitu
žingsniu generuojamos n-gramos. Tada ištraukiami junginiai, kurie yra kandidatai būti
pastoviaisiais junginiais. Šių junginių radimui naudojami lingvistiniai filtrai, tokie kaip
gramatinės arba sintaksinės struktūros, būdingos nagrinėjamos kalbos pastoviesiems junginiams
15
– junginiai, kurie tenkina nustatytas sąlygas yra įrašomi į kandidatų sąrašą. Gautas sąrašas
filtruojamas pagal statistinius kriterijus, pavyzdžiui, logaritminio tikėtinumo santykį, abipusės
informacijos ir Poisson-Stirling įverčius [17]. Atlikus statistinį filtravimą yra pateikiami
rezultatai, kurie išrikiuojami pagal įverčių reikšmes nuo labiausiai iki mažiausiai tikėtinų.
1 pav. Hibridinio metodo schemos pavyzdys [10]
Tyrėjų atliktame eksperimente [19] palyginti 9 algoritmai – sprendimų medžio (angl.
decision tree), Random Forest, Ada Boost, Bagging, k-artimiausių kaimynų (k = 3), SVM,
neuroninio tinklo (3 paslėptų sluoksnių), Naïve Bayes ir Bayes tinklo, kaip požymiai naudota
statistinė informacija. Eksperimentas atliktas su 2-gramomis portugalų kalboje ir prieita išvada,
kad rezultatai skiriasi nežymiai, vienintelis išsiskiriantis metodas – SVM, kurio tikslumas buvo
mažiausias. Įvertinimas atliktas naudojant tikslumo, išsamumo, teisingai atpažintų (angl. true-
positive) ir klaidingai pripažintų (angl. false-positive) įverčius [19].
Kitas hibridinio metodo variantas – tai kelių metodų apjungimas, kombinacija.
Pavyzdžiui, naudojamas rekurentinis neuroninis tinklas, o sprendimo priėmimui taikomas CRF
metodas [21], bi-LSTM jungiama su žodžio koreliacijos skaičiavimais ir klasterizavimo
metodais [22]. Matoma, kad yra didelė hibridinių metodų įvairovė ir būtent hibridiniai metodai
šiuo metu yra plačiausiai naudojami pastoviųjų junginių atpažinime. Vis tik nėra aptikto vieno
tinkamiausio hibridinio metodo pastoviųjų junginių automatiniam atpažinimui, yra realizuojama
daug įvairių jų variantų, kuriuose skirtingai naudojami arba nenaudojami lingvistiniai kriterijai,
statistiniai įverčiai ir mašininio mokymo metodai.
3.4 Mašininio mokymo metodai
Dažnai automatinio pastoviųjų junginių atpažinimo uždaviniui spręsti yra taikomi
mašininio mokymo metodai. Toliau šiame skyriuje aptariami penki mašininio mokymo metodai,
kurie yra naudojami siekiant automatiškai atpažinti pastoviuosius junginius. Pirmiausia
nagrinėjami klasifikatoriai, kurie taikomi pasitelkiant n-gramų modelius: Naivusis Bajesas (angl.
Naïve Bayes) (toliau Naïve Bayes), atsitiktinių medžių rinkinys (angl. Random Forest) (toliau
16
Random Forest), atraminių vektorių mašina SVM (angl. Support Vector Machine) (toliau SVM).
Vėliau aptariami metodai, skirti sekų žymėjimui: sąlyginiai atsitiktiniai laukai CRF (angl.
conditional random fields) (toliau CRF), rekurentiniai neuroniniai tinklai RNN (toliau RNN).
3.4.1 Naïve Bayes
Naïve Bayes – tai tikimybinis klasifikatorius, skirtingų jų variacijų grupė.
Klasifikatoriaus principas – yra sekama, kokie požymiai kuriai klasei yra būdingi [23].
Skaičiavimuose yra remiamasi Bajeso taisykle (20). Geriausia klasė parenkama ta, kuri labiau
tikėtina, jog bus teisinga (21). Yra išskiriamos skirtingos Naïve Bayes klasifikatoriaus versijos,
priklausomai nuo to, kokia pasiskirstymo funkcija yra naudojama [23]:
1. Gausinis Naïve Bayes (angl. Gaussian Naïve Bayes). Yra laikoma, kad požymių vertės
pasiskirstę normaliuoju skirstiniu;
2. Multinominis Naïve Bayes (angl. Multinomial Naïve Bayes). Yra laikoma, kad požymiai
žymi dažnius, požymiuose negali būti neigiamų reikšmių;
3. Bernulio Naïve Bayes (angl. Bernoulli Naïve Bayes). Naudojami binariniai požymiai.
3.4.2 Random Forest
Random Forest yra sprendimo medžiu paremtas modelis. Šio klasifikatoriaus veikimo
principas – skirtingiems atsitiktiniams požymių poaibiams yra apmokomi atskiri medžiai,
sprendimas priimamas apibendrinant visų medžių pateikiamus rezultatus [24]. Metodo
iliustracija matoma 2 pav. Klasifikavimo atveju sprendimas gali būti priimamas skaičiuojant
vidurkį arba pagal tai, kuri klasė surinko daugiausiai balsų (angl. majority voting), o regresijos
atveju iš visų medžių gautų reikšmių skaičiuojamas vidurkis [25].
𝑃(𝐴) ∙ 𝑃(𝐵|𝐴) = 𝑃(𝐵) ∙ 𝑃(𝐴|𝐵) (20)
𝐶o>YB = 𝑎𝑟𝑔𝑚𝑎𝑥A∈r𝑃(𝐶 = 𝑐) ∙s𝑃(𝑥7|𝐶 = 𝑐)t
7u$
(21)
17
2 pav. Random Forest metodo iliustracija [24]
3.4.3 Atraminių vektorių metodas
Atraminių vektorių metodo (angl. Support Vector Machine, SVM) veikimo esmė –
siekiama maksimizuoti atstumą tarp klases skiriančios hiperplokštumos ir arčiausiai šalia jos
esančių pavyzdžių, vadinamų atraminiais vektoriais [26]. Šio uždavinio iliustracija matoma 3
pav. SVM metodas yra galimas naudoti su skirtingais branduoliais, pavyzdžiui, tiesiniu (angl.
linear) ir radialinių bazinių funkcijų (RBF) arba dar kitaip Gausiniu branduoliu [25]. Galimas
skirtingų branduolių naudojimas suteikia galimybę SVM metodą pritaikyti įvairesniems
uždaviniams spręsti.
3 pav. SVM metodo iliustracija [25]
18
3.4.4 Conditional Random Fields (CRF)
CRF metodas yra skirtas sekų modeliavimui ir klasifikavimui kai kintamieji yra
priklausomi nuo vieni kitų [27]. Galima pastoviųjų junginių identifikavimo uždavinį spręsti šiuo
metodu, nes pastovieji junginiai yra aptinkami sakiniuose – žodžių sekose.
CRF metodas gali būti apibendrinamas kitų metodų kontekste. Jis yra panašus į logistinę
regresiją ir netgi įvardijamas kaip logistinės regresijos (angl. logistic regression) versija sekoms
[28]. Taip pat CRF metodas giminingas paslėptiesiems Markovo modeliams HMM (angl. hidden
Markov models) – bet kuris HMM modelis gali būti išreikštas tam tikru CRF modeliu, bet ne
atvirkščiai [28], CRF metode atsisakoma nepriklausomumo prielaidos. Taigi, CRF yra sąlyginis,
išskiriantis (angl. discriminative), o ne apibendrinantis modelis, skirtas sekų prognozavimui [27].
Šis metodas yra naudojamas pastoviųjų junginių atpažinimui [29] arba kaip paskutinis sluoksnis
sprendimo priėmimui [21].
4 pav. Klasifikatorių ryšių diagrama [27]
3.4.5 Rekurentiniai neuroniniai tinklai
Rekurentiniai neuroniniai tinklai – tai giliojo mokymo metodų grupė. Jie taip pat kaip ir
CRF yra naudojami sekų modeliavimui, t. y. kiekvienas išėjimas yra priklausomas ne tik nuo
požymių, bet ir nuo prieš tai buvusių išėjimų. Tipinė rekurentinio tinklo schema matoma 5 pav.,
kur pavaizduota, kaip rekurentinė dalis yra išskleidžiama į pilną tinklą: xt žymi įėjimą laiko
momentu t, st yra t žingsnio būsena (tai yra tarsi tinklo atmintis) ir ot yra išėjimo reikšmė [30].
Vis tik yra įvairių rekurentinių tinklų realizacijų (pavyzdžiui, LSTM), kurios gali būti taikomos
įvairiems uždaviniams spręsti. Apžvelgus literatūrą matoma, kad rekurentiniai neuroniniai
tinklai, o ypač dvikryptis LSTM yra dažnai naudojami pastoviųjų junginių atpažinimo uždaviniui
spręsti [21] [31] [22].
19
5 pav. Rekurentinio tinklo schema [30]
3.5 Apibendrinimas Pasirinkta taikyti statistinius ir hibridinius metodus, o taisyklėmis paremtų metodų
nenaudoti dėl šiuo metu esamo mažo jų populiarumo. Ketinama statistinius metodus taikyti 2-
gramoms, nes daugiausiai leksinių traukos įverčių yra aptinkama būtent 2-gramoms ir įvertinti jų
klasifikavimo kokybę. Taip pat juos planuojama apjungti su lingvistine informacija ir panaudoti
apmokant mašininio mokymo metodus (Gausinį Naïve Bayes, SVM su RBF branduoliu ir
Random Forest) taip išbandant hibridinę metodiką. Be to, nuspręsta taikyti ir sekoms skirtus
metodus, nes yra aktualu identifikuoti ne tik iš dviejų žodžių sudarytus pastoviuosius junginius,
bet ir ilgesnius bei su įsiterpusiais žodžiais. Todėl pasirinkta atlikti eksperimentų su CRF ir RNN
metodais įtraukiant morfologinę informaciją mokymo metu.
3.6 Metodų kokybės vertinimas Eksperimentų, metodų kokybės įvertinimui kaip kokybės matą pasirinkta naudoti F1-
įvertį. Šis matas skirtas apibendrinant įvertinti klasifikavimo tikslumą ir išsamumą [32]. F1-
įvertis skaičiuojamas (22) panaudojant sumaišymo matricos (angl. confusion matrix) (2 lentelė)
vertes [32]. Taip pat įvertinimui naudotos teisingumo (angl. accuracy) (25), tikslumo (angl.
precision) (23) ir išsamumo (angl. recall) (24) metrikos. 2 lentelė. Sumaišymo matrica
Klasifikuota kaip pastovusis
junginys
Klasifikuota kaip
nepastovusis junginys
Yra pastovusis junginys TP (angl. true positives) FN (angl. false negatives)
Yra nepastovusis junginys FP (angl. false positives) TN (angl. true negatives)
20
𝐹 =2 ∙ 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ∙ 𝑟𝑒𝑐𝑎𝑙𝑙𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑟𝑒𝑐𝑎𝑙𝑙
(22)
kur 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = wxwxyzx
,
o𝑟𝑒𝑐𝑎𝑙𝑙 = wxwxyzS
(23)
(24)
𝑎𝑐𝑐𝑢𝑟𝑎𝑐𝑦 =𝑇𝑃 + 𝑇𝑁
𝑇𝑃 + 𝑇𝑁 + 𝐹𝑃 + 𝐹𝑁 (25)
21
4 DUOMENYS
Visų eksperimentų atlikimui yra reikalingi duomenys. Šiame skyriuje aprašomi pirminiai
duomenys ir iš jų suformuoti papildomi duomenų rinkiniai, tai: n-gramų, anotuoti tekstynai ir
žodžių vektoriai (angl. embeddings).
4.1 Pirminis tekstynas
Tekstynas yra būtinas išteklius darbui su pastoviųjų junginių automatiniu atpažinimu.
Nagrinėtuose šaltiniuose naudojamų tekstynų dydis varijuoja (50 mln. [33], 52 mln. [10], 67
mln. [13] žodžių arba net virš 180 mln. sakinių anglų kalba [34]), nuspręsta tekstus surinkti taip,
kad žodžių skaičius būtų iki 100 mln.
Pasirinkta tekstus rinkti iš internetinio portalo „delfi.lt“. Tekstų rinkimas – skanavimas
vykdytas automatiniu būdu, t. y. sukurtas internetinis robotas (angl. web crawler) panaudojus
įrankį „Scrapy“ [35]. Internetinis robotas skanavo minėtą tinklalapį ir straipsnius saugojo
MongoDB duomenų bazėje [36]. Be pačių straipsnių saugota ir papildoma informacija apie juos:
autorius, pavadinimas, data, šaltinis, nuoroda, kategorija ir žodžių skaičius. Straipsniai surinkti
iš šio laikotarpio: nuo 2014 m. kovo iki 2016 m. lapkričio imtinai. Iš viso nuskanuota 190 tūkst.
straipsnių, kuriuos sudaro 70 mln. žodžių. Žodžių skaičiaus pasiskirstymas tekstyne pavaizduotas
1 paveiksle. Matoma, kad yra nemažai išskirčių, o ilgiausias straipsnis sudarytas iš beveik 20
tūkst. žodžių, tačiau didžioji straipsnių dalis nesiekia 1000 žodžių.
1 pav. Žodžių skaičiaus pasiskirstymas tekstyne
22
4.2 Morfologiškai anotuotas tekstynas
Pirminis tekstynas buvo morfologiškai anotuotas Vytauto Didžiojo universitete,
kompiuterinės lingvistikos centre (KLC), naudotos universalios priklausomybės pažymos (angl.
Universal Dependencies) [37]. Nuspręsta tekstyną morfologiškai anotuoti, kad klasifikatorių
mokymo metu būtų galima kaip požymius naudoti ne tik statistinius įverčius, bet ir morfologinę
informaciją, taikyti lingvistinius filtrus. Taigi, kiekvienas straipsnis, esantis atskirame
tekstiniame faile, buvo anotuotas ir gautas rinkinys morfologiškai anotuotų tekstų, vieno tokio
failo fragmentas matomas 6 pav.
6 pav. Morfologiškai anotuoto tekstyno fragmentas
4.3 N-gramų tekstynas
N-grama – tai N nuosekliai sakinyje einančių žodžių seka [38]. N-gramų generavimą
būtų galima apibrėžti kaip N žodžių skaičiaus dydžio lango slinkimą per sakinį kas vieną žodį
kol yra pasiekiama sakinio pabaiga. N-gramų sudarymo schema matoma 7 pav. (šiame
pavyzdyje N=2 ir 2-gramos būtų tokios: „Lorem ipsum“, „ipsum dolor“ ir t. t.). N-gramos
generuotos iš pirminio tekstyno.
7 pav. N-gramos sudarymas
4.3.1 N-gramų tekstynas (unikali junginio forma)
Visų pirma, kad būtų galima generuoti n-gramas yra reikalinga tekstą suskaidyti
sakiniais. Tekstyno suskaidymas į sakinius buvo atliktas Vytauto Didžiojo Universiteto
Kompiuterinės Lingvistikos Centro darbuotojų sukurta programa. Toliau dirbta su sakiniais
23
segmentuotu tekstynu, kur kiekvienas sakinys yra naujoje failo eilutėje. Pirmiesiems
eksperimentams su n-gramomis pastarosios sugeneruotos apibrėžus tokias taisykles:
1. Kiekvienas sakinys suskaidomas pagal tarpo simbolius;
2. Analizuojama, ar suskaidytos dalys gali būti vadinamos žodžiais ir išsaugomos, ar
reikalingas simbolių valymas. Jei simbolių grupė yra sudaryta tik iš raidžių ar skaičių, tai ji iš
karto yra laikoma žodžiu. Jei leksema (angl. token) yra sudaryta tik iš vieno simbolio, kuris nėra
nei raidė, nei skaičius, tai ji nėra laikoma žodžiu ir atmetama kaip skyrybos ženklas ar
nereikalingas simbolis;
3. Toliau yra analizuojama, ar simbolių sekos tenkina numatytas struktūras, t. y.
naudojant reguliariąsias išraiškas yra ieškoma URL, el. pašto adresų, trupmeninių skaičių, kitų
numatytų žodžių formų. Kadangi aptikta skirtingo kodavimo tos pačios prasmės simbolių,
sudaryti simbolių sąrašai kiekvienai ieškomai struktūrai, pavyzdžiui, taip atrodo brūkšnių sąrašas
UTF8 koduote:
b"\xef\xb9\xa3_\-
\xe2\x80\x93\xe2\x80\x94\xe2\x88\x92\xe2\x80\x92\xe2\x80\x91\xe2\x
94\x80\xe2\x80\x95\xe2\x80\x90\xe2\x81\xbb\xcb\x97"
(simboliai saugoti UTF8 kodais, o ne pačiais simboliais, nes jų įvairovė per didelė ir dalį
šių simbolių programavimo aplinka nesupranta esant skirtingais);
4. Sutrumpinimų žodynas [39] naudojamas siekiant taisyklingai išsaugoti įvairius
trumpinius ir palikti taškus prie trumpinių;
5. Vėliau ieškoma struktūrų, kur būtų galima atskirti kelis žodžius, pavyzdžiui,
„skaičius:skaičius“ yra atskiriama į du skaičius, kurie yra laikomi atskirais žodžiais. Kaip ir
kitoms anksčiau aprašytoms ieškomoms struktūroms, taip ir šioms yra apibrėžiami simboliai
UTF8 koduote, pagal kuriuos žodžiai yra atskiriami į kelis skirtingus. Visi žodžiai yra saugomi
mažųjų raidžių pavidalu;
6. Simbolių grupės, kurios netenkina numatytų struktūrų yra atmetamos.
Išnagrinėjus šiuos atmestus elementus pastebėta, kad didžiąją jų dalį sudaro įvairios skyrybos
simbolių grupės tokios kaip <...>.
Taigi, pagal aprašytas taisykles buvo generuojamos n-gramos, kai n=1,2,3,4. Gautos 4 n-
gramų kolekcijos, jas panaudojant suskaičiuoti n-gramų dažniai ir taip sukurtos dar 4 n-gramų
kolekcijos. Sudarius n-gramų tekstyną apskaičiuota jo statistika, kuri pateikiama 3 lentelėje ir yra
vizualizuota 8 pav. Matoma, kad tekstyną sudaro 72 mln. 1-gramų (žodžių) ir šis skaičius mažėja
didėjant N skaičiui – yra 67 mln. 2-gramų, 62 mln. 3-gramų ir 57 mln. 4-gramų. Unikalių n-
gramų skaičius didėja, kai didėja N – 1-gramų atveju yra 1.41% unikalių, o 4-gramų jau net
87.78% unikalių junginių. Analogiška tendencija aptinkama ir n-gramų, kurių dažnis yra
24
vienetas statistikoje. 1-gramos, kurių dažnis 1, sudaro tik 0.6% visų 1-gramų, tuo tarpu tokio
dažnio 4-gramų yra žymiai daugiau – net 81.99%. Dažniausia 1-grama „ir“ tekstyne randama
daugiau nei 2 mln. kartų, 2-grama „taip pat“ virš 130 tūkst., 3-grama „dėl to kad“ beveik 10
tūkst., o 4-grama „delfi už šio rašinio“ šiek tiek virš 3 tūkst. kartų. Šis n-gramų tekstynas
naudotas eksperimentams su statistiniais įverčiais atlikti.
3 lentelė. Pirmojo n-gramų tekstyno statistika
1-gramos 2-gramos 3-gramos 4-gramos
Viso 72 883 351 67 557 525 62 346 416 57 264 503
Viso unikalių skaičius 1 030 562 21 374 307 44 449 481 50 264 648
Viso unikalių (%) 1.41 31.64 71.29 87.78
N-gramų, kurių dažnis 1, skaičius 434 506 15 634 799 38 911 544 46 950 054
N-gramų, kurių dažnis 1 (%) 0.6 23.14 62.41 81.99
Didžiausias vienos n-gramos dažnis 2 167 369 132 781 9 697 3 274
8 pav. Pirmojo n-gramų tekstyno statistika
25
4.3.2 N-gramų tekstynas (unikali junginio forma ir morfologinė informacija)
Iš anotuotų failų (4.2 skyrius) sugeneruotos 2-gramos ir išsaugotos duomenų bazėje kartu
saugant pačią 2-gramą, lemą, jos žodžių kalbos dalis, morfologinę informaciją ir dokumentą,
kuriame rastas junginys. Iš viso išsaugota beveik 64 mln. tokių 2-gramų.
Siekiant suskaičiuoti 2-gramų dažnius ir statistinius įverčius yra reikalingas jų
agregavimas. Šiuo atveju unikalia nuspręsta laikyti tokią 2-gramą, kurios šių požymių rinkinys
yra unikalus: forma, lema, kalbos dalis ir morfologinė informacija. Kalbos dalį ir kitą
morfologinę informaciją nuspręsta įtraukti kaip unikalumo požymį, nes kai kurie junginiai,
rašomi tokia pačia forma, turi skirtingą prasmę, nors atrodo taip pat, pavyzdžiui, junginys „vieną
dieną“ morfologinio analizatoriaus skirtingame kontekste buvo pažymėtas 3 skirtingais kalbos
dalių variantais („PRON NOUN“, „ADJ NOUN“ ir „NUM NOUN“) ir net 6 skirtingais kitos
morfologinės informacijos variantais. Suagregavus 2-gramas iš viso gautas 21 mln. unikalių 2-
gramų. Suagreguotų 2-gramų įrašo duomenų bazėje pavyzdys matomas 9 pav. Agreguotoms 2-
gramoms apskaičiuotos statistinių įverčių (3.1 skyrius) reikšmės. Šią 2-gramų kolekciją su
apskaičiuotais statistiniais įverčiais ir morfologine informacija nuspręsta naudoti apmokant
klasifikatorius.
9 pav. Agreguotų 2-gramų įrašo pavyzdys
4.4 Pastoviaisiais junginiais anotuotas tekstynas
Dalis pirminio tekstyno (175 straipsniai, 4695 sakiniai) Vytauto Didžiojo Universiteto
Kompiuterinės Lingvistikos Centre buvo suanotuota, t. y. straipsniuose sužymėta, kurie junginiai
yra pastovieji. Anotavimas atliktas naudojant BRAT anotavimo įrankį [40].
Anotuotą tekstyną daugiausiai sudaro dvižodžiai pastovieji junginiai – net 85%, tuo tarpu
trižodžiai sudaro 12%, o likusią dalį dar ilgesni junginiai. 18% junginių aptinkami su intarpais.
Žvelgiant tik iš 2-gramų perspektyvos, sužymėtą tekstyną sudaro 67 tūkst. junginių, iš kurių 4
tūkst. pažymėti kaip pastovieji junginiai, o likę 63 tūkst. – nepastovieji.
Naudojimui sekų modeliuose šis anotuotas tekstynas paruoštas taikant BIO schemą:
pastovaus junginio pirmas žodis pažymėtas B-MWE, kiti junginiui priklausantys žodžiai I-
26
MWE, junginiui nepriklausantys žodžiai O. Taip suformatuotų duomenų fragmentas kartu su
kalbos dalių informacija matomas 10 pav.
10 pav. Pastoviaisiais junginiais anotuotas tekstynas BIO formatu su kalbos dalių informacija
Pastoviaisiais junginiais anotuotas tekstynas įvairiomis formomis (2-gramų, sakinių)
naudotas mašininio mokymo metodų apmokyme ir tyrinėjant leksinius traukos įverčius.
4.5 Žodžių vektoriai
Nuspręsta, kad giliųjų mokymo metodų apmokymui reikalingi GloVe tipo [41] žodžių
vektoriai (angl. word embeddings). Vektoriai apmokyti panaudojant StanfordNLP GitHub
saugykloje pateiktą GloVe vektorių generavimui skirtą programinį kodą [42], mokymo tekstai –
pirminis tekstynas. Pirmiausia tekstynas apjungtas į vieną failą, skyrybos ženklai nepašalinti,
visos raidės paverstos mažosiomis. Vektorių mokymas susidarė iš kelių etapų. Pirma sudarytas
žodynas, nuspręsta atmesti žodžius, kurie pasitaikė rečiau nei 5 kartus. Tada panaudojant
numatytas komandas sudarytas žodžis-žodžis buvimo kartu statistikos failas, pasirinktas lango
dydis 5. Šis failas atsitiktinai sumaišytas. Galiausiai sugeneruotas žodžių vektorių failas,
generavimui pasirinkta 100 iteracijų, vektorių dimensija – 200. Iš viso išsaugoti 331 203 skirtingi
žodžių vektoriai, failo fragmentas matomas 11 pav.
11 pav. GloVe žodžių vektorių fragmentas
27
4.6 Apibendrinimas Taigi, surinkti tokie tekstynai ir eksperimentams paruošta:
1. 70 mln. žodžių pirminis tekstynas;
2. Morfologiškai (universaliomis priklausomybės pažymomis) anotuotas tekstynas;
3. 2-gramų, 3-gramų ir 4-gramų rinkiniai, kur unikalia n-grama yra laikoma tokia, kurios forma
yra unikali. 2-gramų rinkinys paruoštas eksperimentams su statistiniais įverčiais;
4. 2-gramų rinkinys, kur unikalia n-grama laikoma tokia, kurios unikali ne tik forma, bet ir
morfologinė informacija. Šie duomenys paruošti statistinių įverčių skaičiavimui ir
naudojimui mašininio mokymo metoduose;
5. 2-gramų tekstynas, kur sužymėti pastovieji junginiai (4 tūkst. pastovieji, 63 tūkst. –
nepastovieji), eksperimentų, kur naudojamos 2-gramos įvertinimui;
6. BIO formatu paruoštas pastoviaisiais junginiais anotuotas tekstynas (4695 sakiniai), skirtas
eksperimentams su sekų modeliais;
7. GloVe tipo žodžių vektoriai, naudojimui rekurentiniuose neuroniniuose tinkluose.
28
5 EKSPERIMENTAI
Atlikti skirtingi eksperimentai siekiant atpažinti pastoviuosius junginius. Dvižodžiams
junginiams tyrimai atlikti taikant statistinius įverčius, Naïve Bayes, Random Forest ir SVM
klasifikatorius. Siekiant atpažinti neriboto žodžių skaičiaus pastoviuosius junginius pritaikyti
CRF ir RNN metodai. Eksperimentų eiga aprašyta šiame skyriuje.
5.1 Įrankiai ir technologijos, naudotos eksperimentams atlikti
Visi eksperimentai atlikti Python programavimo kalba naudojant įvairias bibliotekas:
1. Matplotlib [43]. Skirta grafikų braižymui;
2. Pandas [44]. Biblioteka naudota manipuliavimui duomenimis – jų nuskaitymui,
transformavimui ir t. t.;
3. Scikit-Learn [45]. Taikyti šioje bibliotekoje realizuoti mašininio mokymo,
duomenų skaidymo į skirtingas imtis, įvertinimo metrikų ir kiti metodai. Papildomas bibliotekos
modulis Sklearn-Crfsuite [46] naudotas CRF metodo taikymui, imbalanced-learn [47] –
SMOTE, ENN ir Tomek metodams;
4. Natural Language Toolkit NLTK [48]. Skirta darbui su kalba, naudoti duomenų
nuskaitymui BIO formatu;
5. Gensim [49]. Skirta darbui su žodžių vektoriais;
6. Keras [50]. Atlikta eksperimentų su giliaisiais mokymo metodais;
7. Tensorflow [51]. Atlikta eksperimentų su giliaisiais mokymo metodais.
5.2 Statistiniai įverčiai
Statistiniai įverčiai (3.1 skyrius) apskaičiuoti 2-gramų kolekcijai, kurios suformavimas
aprašytas 4.3.1 skyriuje. Išanalizuoti įverčių reikšmių pasiskirstymai. Statistinių įverčių reikšmių
histogramas pagal formą galima suskirstyti į dvi dideles grupes:
1. daugiausiai pasiskirstančias siaurame intervale (Dice, Gmean, Liddel, LLR, MS,
Phi-kvadratas, Chi-kvadratas, Poisson Stirling, T-testas, Z-įvertis), gausu išskirčių. Pavyzdys
matomas 12 pav. kairėje;
2. artimas normaliajam pasiskirstymui (PMI, logDice, MI, MI2, MI3, Odds Ratio,
Relative Risk). Pavyzdys matomas 12 pav. dešinėje.
Visų kitų apskaičiuotų įverčių reikšmių histogramos pateikiamos 9.1 priede.
29
12 pav. Chi-kvadrato ir PMI įverčių reikšmių histogramos
Literatūroje yra pateikiamos įvairios rekomendacijos dalies statistinių įverčių
slenkstinėms vertėms nustatant pastoviuosius junginius, pavyzdžiui, patariama junginį laikyti
nepastoviuoju jei logDice vertė mažesnė už 0 [16]. Vis dėl to slenkstinės reikšmės gali varijuoti
priklausomai nuo nagrinėjamos kalbos, o taip pat rekomendacijos pateikiamos ne visiems
įverčiams. Nuspręsta ištirti, kaip teisingai pavieniai statistiniai įverčiai gali atskirti pastoviuosius
junginius nuo nepastoviųjų. Statistinių įverčių įvertinimas atliktas panaudojant pastoviaisiais
junginiais anotuotą tekstyną (4.4 skyrius), kokybės matas F1-įvertis.
Kadangi dalies įverčių reikšmių intervalai yra dideli, nuspręsta visus įverčius sunormuoti,
kad jų reikšmės atsidurtų intervale nuo 0 iki 1. Iš pradžių dėmesys nekreiptas į esamas išskirtis ir
naudota (26) formulė [52] įverčių reikšmių sustūmimui į intervalą [0;1].
F1-įverčio reikšmės skaičiuotos įvairiems statistinių įverčių reikšmių intervalams.
Eksperimento eiga kiekvienam įverčiui:
1. Nustatoma intervalo pradžia 0, pabaiga 1, žingsnis 0.02;
2. Sugeneruojamos x ašies reikšmės nuo 0 iki 0.98 kas 0.02;
3. Cikle einama per gautą x (intervalo pradžia) reikšmių sąrašą. Kiekvieną kartą
prasidedant naujai šio ciklo iteracijai yra sugeneruojamas y reikšmių sąrašas. Jis generuojamas
nuo esamos intervalo pradžios reikšmės pridėjus žingsnį iki 1;
𝑋t��� =𝑋 − 𝑋�7t
𝑋��? − 𝑋�7t (26)
30
4. Cikle einama per y (intervalo pabaigos) reikšmių sąrašą. Turimam intervalui [x;
y] skaičiuojama F1-įverčio vertė;
5. Suskaičiavus visas F1-įverčio reikšmes atvaizduojamas šio mato reikšmių
paviršius kiekvienam įverčiui.
Taip buvo nubraižyti paviršiai visiems 17 įverčių. Nagrinėjant paviršius yra matomi
apytiksliai įverčių intervalai, kuriuose yra didžiausios F1-įverčio reikšmės, o kartu tai reiškia,
kad šie intervalai gali padėti atskirti pastoviuosius junginius nuo nepastoviųjų. Sugeneruoto PMI
įverčio paviršiaus pavyzdys pateiktas 13 pav., jame matoma, kad F1-įverčio reikšmė neviršija
0.25. Kitų įverčių paviršiai pateikiami 9.2 priede.
13 pav. PMI įverčio F1-įverčio paviršius
Matoma, kad įverčiams F1 didžiausios reikšmės yra skirtinguose intervaluose, o taip pat
skiriasi ir maksimalios vertės – vieni įverčiai gali geriau atskirti pastoviuosius junginius nuo
nepastoviųjų nei kiti. Nuspręsta palyginti geriausius intervalus ir jų F1 vertes visiems
nagrinėjamiems įverčiams – intervalai su pirma maksimalia gauta F1 verte atvaizduoti bendrame
grafike (14 pav.) ir yra pateikti 4 lentelėje. Matoma, kad įverčiai susigrupavo į kelias grupes:
1. Dice, Z-įvertis, Gmean, MS įverčių maksimalios vertės yra intervalo pirmoje
pusėje, F1 vertė apie 0.3;
2. MI2, logDice maksimalios vertės yra intervalo pabaigoje, F1 vertė apie 0.3;
3. PMI, MI, MI3, Relative Risk ir Odds įverčių maksimalios vertės pasiskirstę nuo
intervalo vidurio, antrojoje pusėje, F1 vertė apie 0.25;
31
4. Liddel, Phi-kvadrato, Chi-kvadrato, Poisson Stirling, T-testo F1-įverčio reikšmės
yra tarp 0.15 ir 0.2, intervalų pradžia ir pabaiga varijuoja. Matomas Chi-kvadrato ir Phi-kvadrato
persidengimas;
5. LLR įvertis labiausiai nereprezentatyvus, gauta mažiausia F1-įverčio reikšmė.
14 pav. Geriausių F1-įverčio verčių intervalai skirtingiems statistiniams įverčiams
4 lentelė. Įverčių intervalai su geriausia gauta F1-įverčio verte
Įvertis Intervalo pradžia Intervalo pabaiga F1-įverčio vertė
1. PMI 0.56 0.74 0.255
2. LLR 0.02 1.0 0.098
3. Dice 0.02 0.46 0.306
4. logDice 0.70 0.94 0.309
5. T-testas 0.94 0.96 0.171
6. Chi-kvadratas 0.02 0.82 0.172
7. Phi-kvadratas 0.02 0.82 0.172
8. Odds Ratio 0.46 0.70 0.240
9. Z-įvertis 0.06 0.50 0.307
10. Poisson Stirling 0.04 0.16 0.167
32
Įvertis Intervalo pradžia Intervalo pabaiga F1-įverčio vertė
11. MI 0.56 0.74 0.254
12. Relative Risk 0.48 0.72 0.247
13. Liddel 0.06 0.98 0.188
14. MS 0.02 0.38 0.289
15. Gmean 0.04 0.46 0.304
16. MI2 0.74 0.94 0.306
17. MI3 0.64 0.96 0.252
Nuspręsta tęsti eksperimentą su LLR įverčiu, kadangi tikėtina, jog paviršių generavimui
naudotas žingsnis 0.02 yra per didelis. Pasirinktas intervalas nuo 0.9 iki 1, žingsnelis 0.001.
Matoma, kad F1-įverčio vertė padidėjo du kartus, geriausias rezultatas (0.2) gaunamas, kai
pradžia 0.94, pabaiga 0.999 (15 pav.).
15 pav. Normuoto LLR įverčio F1-įverčio paviršius, pradžia 0.9, pabaiga 1, žingsnis 0.001
Parinkus visus rastus geriausius intervalus ir sujungus „ir“ sąlyga, t. y., kad būtų
tenkinami visų įverčių intervalai gauta 0.12 F1-įverčio reikšmė: 179 pastovieji junginiai atpažinti
teisingai, 178 neteisingai pavadinti pastoviais ir net 2438 pastoviųjų junginių pavadinti
nepastoviaisiais. Akivaizdu, kad įverčiai leidžia atpažinti skirtingų savybių pastoviuosius
junginius, kadangi bendras rezultatas prastesnis nei kiekvieno įverčio atskiras rezultatas, todėl
reikalinga rasti tokią įverčių jungimo kombinaciją, su kuria būtų išnaudojami kiekvieno įverčio
privalumai. Šiam tikslui įgyvendinti gali būti taikomi mašininio mokymo metodai, kur statistinių
įverčių reikšmės yra naudojamos kaip požymiai.
33
5.3 Naïve Bayes, Random Forest, SVM
Pasirinkta eksperimentus atlikti su trimis klasifikatoriais siekiant atpažinti dvižodžius
pastoviuosius junginius – Naïve Bayes, Random Forest ir SVM. Mokymui naudotas
pastoviaisiais junginiais anotuotas 2-gramų tekstynas su morfologinėmis žymomis. Visoms 2-
gramoms iš mažo tekstyno surasti atitikmenys visame pilname 2-gramų tekstyne – įverčių vertės
priskirtos iš viso turimo tekstyno, o ne mažos jo dalies, kad jų reikšmės būtų kuo artimesnės
tikrosioms.
Kadangi morfologinė informacija yra kategoriniai požymiai, jų negalima tiesiogiai
panaudoti apmokyme ir yra reikalinga transformuoti, specifiškai paruošti naudojimui.
Eksperimentų metu taikyti trys skirtingi metodai kategorinių duomenų transformavimui:
1. Vieno vektoriaus kodavimas OHE (angl. One Hot Encoding) [53] [54]. OHE
metodo esmė – kiekvieną požymyje aptinkamą kategoriją paversti nauju binariniu požymiu,
pavyzdys matomas 16 pav. Tai yra įvardijamas kaip pats paprasčiausias metodas, tačiau turintis
kelis svarbius trūkumus: esant didelei kategorijų įvairovei požymių skaičius gali smarkiai
išaugti, todėl mokymas užtrunka ilgiau, atsiradus anksčiau nematytai kategorijai yra sudėtinga ją
pridėti. Vienas iš būdų, leidžiantis išvengti dalies metodo minusų, tai ne visų kategorijų
kodavimas binariniais požymiais, o tik dalies jų, pavyzdžiui, tokių, kurių dažnis viršija numatytą
skaičių ar tam tikrą procentinę dalį kategorijų. Tokiu būdu yra sumažinamas naujai sukurtų
binarinių požymių skaičius, o taip pat ir labiau apibendrinama kategorijų informacija.
16 pav. OHE transformacijos pavyzdys [53]
2. Požymių maiša (angl. feature hashing, hashing trick) [55] [56]. Nurodytiems
požymiams yra pritaikoma maišos funkcija ir gaunamos naujos požymių reikšmės. Viena
paprasčiausių maišos funkcijų gali būti liekanos skaičiavimas, pavyzdžiui, kategorinio požymio
34
10 skirtingų verčių yra sužymimos skaitmenimis nuo 0 iki 9, tada gautas skaičius dalinamas iš 5
ir išsaugoma liekanos vertė, eilutei (vienam pavyzdžiui) sužymimos maišos funkcijos reikšmės
kiekvienai liekanos vertei. Maišos funkcijų naudojimas leidžia sumažinti naujai sukurtų požymių
kiekį [56], lyginant su OHE metodu. Be to, metodas yra atsparus naujoms kategorijoms, kadangi
nematytai kategorijai gali būti suskaičiuojama „hash“ reikšmė. Nors yra galimas požymių
persidengimas (angl. collision), tačiau pastebėta, kad jo poveikis nėra reikšmingas ir nelemia
blogų rezultatų, o apskritai požymių maišos taikymas sąlygoja mažesnį kompiuterinių resursų
naudojimą [55].
3. Kategorijų kodavimas pagal jų statistiką [57]. Duomenų kategorijas galima
užkoduoti pagal jų statistiką. Toks kodavimas gali būti atliekamas įvairiai, pavyzdžiui, naudojant
dažnius (kiek kartų kategorija pasikartoja nagrinėjamame požymyje).
Eksperimentų metu duomenų masteliui keisti išbandyti du metodai:
1. Standartizavimas, standartinis mastelio keitimas (angl. Standard Scaler).
Kiekvienam požymiui nepriklausomai vienas nuo kito vykdomas centravimas ir mastelio
keitimas – atimamas vidurkis, mastelis keičiamas pagal standartinį nuokrypį [58];
2. Transformavimas pagal kvantilius (angl. Quantile Transformer). Kiekvienam
požymiui nepriklausomai vienas nuo kito atliekama transformacija, kuri yra netiesinė, kaip
pirmu atveju. Kiekvieno požymio kumuliacinė tankio funkcija yra naudojama požymio reikšmių
transformacijai, toks transformavimo būdas sumažina išskirčių poveikį [59].
Atliekant eksperimentus klasifikavimo gerumui įvertinti pasirinkta skaičiuoti F1 įvertį.
Taip pat naudota 10 žingsnių sluoksniuota (angl. stratified) kryžminė patikra. Eksperimentų
atlikimo eiga:
1. Duomenų nuskaitymas;
2. Duomenų suskaidymas į 10 dalių;
3. Paeiliui kiekviena dešimtoji dalis duomenų yra testinė, kiekvienai imčiai:
3.1.1. Kategorinių duomenų transformavimas mokymo imčiai;
3.1.2. Kategorinių duomenų transformavimas testavimo imčiai pagal mokymo imtį;
3.1.3. Mokymo duomenų mastelio keitimas (angl. scaling);
3.1.4. Testavimo duomenų mastelio keitimas pagal mokymo duomenis;
3.1.5. Klasifikatoriaus mokymas;
3.1.6. Klasifikatoriaus testavimas;
3.1.7. Testavimo duomenų F1 įverčio išsaugojimas;
4. Testavimo duomenų F1 įverčio reikšmių vidurkio apskaičiavimas.
Eksperimentų rezultatai pateikti 5 lentelėje. Matoma, kad kategorijų kodavimas OHE
metodu ir jo modifikacija, kai retos kategorijos sujungiamos į vieną, šių eksperimentų metu lėmė
35
žemas F1 įverčio reikšmes nepaisant pasirinkto duomenų mastelio keitimo ir mašininio mokymo
metodų. Trys geriausi pasiekti rezultatai lentelėje paryškinti, geriausia pasiekta F1 įverčio
reikšmė – 44% kai kategorinių duomenų transformavimui naudojama požymių maiša,
transformuojama pagal kvantilius, o klasifikuojama su Naïve Bayes klasifikatoriumi.
5 lentelė. Eksperimentų rezultatai (Naïve Bayes, Random Forest, SVM)
Nr. Kategorinių duomenų
transformavimas
Duomenų mastelio
keitimas
Mašininio
mokymo metodas
F1 įverčio
reikšmė
1. OHE Standartizavimas Naïve Bayes 1.5%
2. Random Forest 0.0%
3. SVM 0.0%
4. Transformavimas
pagal kvantilius
Naïve Bayes 0.0%
5. Random Forest 0.0%
6. SVM 0.0%
7. OHE, kategorijos laikomos
viena „reta“ jei pasitaiko
mažiau nei 100 kartų
Standartizavimas Naïve Bayes 1.0%
8. Random Forest 0.0%
9. SVM 0.0%
10. Transformavimas
pagal kvantilius
Naïve Bayes 0.0%
11. Random Forest 0.0%
12. SVM 0.0%
13. Požymių maiša. POS
keičiama į 6 požymius,
morfologinė informacija į
50
Standartizavimas Naïve Bayes 39.0%
14. Random Forest 7.0%
15. SVM 31.0%
16. Transformavimas
pagal kvantilius
Naïve Bayes 44.0%
17. Random Forest 8.0%
18. SVM 42.0%
19. Kategorijos koduojamos jų
dažniu
Standartizavimas Naïve Bayes 34.0%
20. Random Forest 36.0%
21. SVM 35.0%
22. Transformavimas
pagal kvantilius
Naïve Bayes 28.0%
23. Random Forest 38.0%
24. SVM 41.0%
Nuspręsta paanalizuoti trijų geriausių kombinacijų ne tik F1 įverčio reikšmes, bet ir kitas
metrikas – teisingumą (angl. accuracy), tikslumą (angl. precision), išsamumą (angl. recall).
36
Nubraižytos šių metrikų stačiakampės diagramos (angl. boxplot) kiekvienam atvejui (17 pav., 18
pav., 19 pav.). Matoma, kad visuose trijuose atvejuose yra aukšta teisingumo metrikos vertė,
tačiau tai gali nulemti didelis kiekis neigiamos klasės (nepastoviųjų junginių). Tuo tarpu
tikslumo ir išsamumo vertės skiriasi – naudojant požymių maišą ir duomenis transformuojant
pagal kvantilius bei taikant tiek Naïve Bayes (17 pav.), tiek ir SVM metodą (18 pav.) tikslumo
vertė yra didesnė nei išsamumo, o taikant kategorijų kodavimą dažniu, transformavimą pagal
kvantilius ir SVM metodą (19 pav.) išsamumas yra žymiai didesnis nei tikslumas.
17 pav. Metrikų verčių stačiakampės diagramos, kai naudojama požymių maiša, transformavimas pagal kvantilius ir
Naïve Bayes klasifikatorius
18 pav. Metrikų verčių stačiakampės diagramos, kai naudojama požymių maiša, transformavimas pagal kvantilius ir
SVM klasifikatorius
37
19 pav. Metrikų verčių stačiakampės diagramos, kai naudojamas kategorijų kodavimas dažnius, transformavimas
pagal kvantilius ir SVM klasifikatorius
Kadangi naudojant požymių maišą ir duomenis transformuojant pagal kvantilius bei
taikant Naïve Bayes klasifikatorių tikslumas didesnis nei išsamumas, nuspręsta išanalizuoti, kaip
pasiskirsto junginių tikimybės priklausyti kažkuriai iš klasių. Nuline klase žymimas nepastovusis
junginys, 1 klase – pastovusis. Matoma, kad esant tikrajai klasei pastoviajam junginiui tikimybė
priklausyti tiek pirmai, tiek antrai klasei pasiskirsto panašiai ir apima reikšmes nuo 0 iki 1. Tuo
tarpu tikrai klasei esant 0, tikimybė ir priklausyti teisingai nulinei klasei yra 1, o priklausyti
pastoviųjų junginių klasei yra 0 (matoma, kad yra išskirčių, tačiau bendras pasiskirstymas
teisingas) (20 pav.). Dėl šios priežasties nuspręsta išbandyti kitokį priskyrimo klasei metodą –
nepastoviuoju junginiu laikyti tokį, kurio tikimybė priklausyti nulinei klasei yra lygiai 1, o visus
likusius junginius vadinti pastoviaisiais. Apmokius klasifikatorių ir apskaičiavus metrikas
matoma, kad F1 įverčio vidutinė reikšmė padidėja iki 64.0%, išsamumo vertė taip pat padidėja, o
tikslumo pokyčiai labai nežymūs ir sunkiai pastebimi (21 pav.)
38
20 pav. Priklausymo klasei tikimybių stačiakampės diagramos (taikyta požymių maiša, transformavimas pagal
kvantilius ir Naïve Bayes klasifikatorius)
21 pav. Metrikų verčių stačiakampės diagramos, kai naudojama požymių maiša, transformavimas pagal kvantilius ir
Naïve Bayes klasifikatorius, nepastoviuoju junginiu laikomas toks junginys, kurio tikimybė priklausyti šiai klasei
yra lygi 1
39
Kadangi yra pastebimas didelis klasių nesubalansuotumas, nuspręsta pritaikyti
kombinuotus duomenų generavimo mažesniajai klasei ir naikinimo didesniajai klasei metodus.
Išbandyti du metodai (metodai taikyti tik mokymo duomenims):
1. SMOTE + ENN. SMOTE (angl. Synthetic Minority Oversampling TEchnique)
metodas pritaikomas naujų pavyzdžių sugeneravimui, ENN (angl. Edited Nearest Neighbors)
taikomas pavyzdžių kiekio sumažinimui;
2. SMOTE + Tomek. SMOTE metodas pritaikomas naujų pavyzdžių sugeneravimui,
o Tomek metodas taikomas pavyzdžių kiekio sumažinimui.
Kaip minėta, SMOTE metodas [60] leidžia sugeneruoti naujų mažesnės klasės
pavyzdžių. Generavimo metu dėmesys kreipiamas tik į tą klasę, kuriai duomenys yra pridedami.
Duomenų pridėjimas vykdomas interpoliavimo būdu, todėl visi nauji pavyzdžiai yra
sugeneruojami tarp esamų ir niekada neperžengia esamų ribų.
Naujų pavyzdžių sugeneravimo (angl. over-sampling) metu gali atsirasti įvairių
netinkamų triukšmingų pavyzdžių, todėl yra patartina papildomai po to atlikti pavyzdžių
sumažinimą, kuris gali padėti dar geriau subalansuoti klases [61]. Vienas iš metodų, kuris leidžia
atlikti pavyzdžių naikinimą (angl. under-sampling) yra ENN [62]. Šio metodo esmė –
pavyzdžiai, kurie neturi pakankamai savo klasės kaimynų yra panaikinami. Kitas metodas,
skirtas pavyzdžių šalinimui yra Tomek. Šis algoritmas padeda surasti vadinamąsias Tomek
nuorodas (angl. links). Laikoma, kad Tomek nuoroda egzistuoja, jei du pavyzdžiai yra artimiausi
kaimynai ir priklauso skirtingoms klasėms. Tokiu atveju yra pasirinktinai šalinami arba abu
pavyzdžiai arba didesniosios klasės pavyzdys [63].
Šio eksperimento metu naudota imbalanced-learn biblioteka [47], kurioje yra realizuoti
SMOTE, ENN ir Tomek metodai: metodai galimi naudoti atskirai arba iš karto kombinuotu būdu
– SMOTE + ENN ir SMOTE + Tomek (eksperimentų metu naudoti kombinuoti metodai).
Eksperimentai atlikti neišbandant visų kategorijų kodavimo variantų, o pasirinkus du, su kuriais
pasiekti geriausi rezultatai – tai požymių maiša ir kategorijų kodavimu dažniu. Rezultatai
matomi 6 lentelėje. Pastebėtina, kad F1 įverčio reikšmė nepagerėja taikant Naïve Bayes
klasifikatorių. Tuo tarpu naudojant Random Forest klasifikatorių gaunami geriausi rezultatai
šiame eksperimente (52.0% F1 įverčio reikšmė), taip pat pastebimas didžiausias F1 įverčio
reikšmės augimas pritaikius pavyzdžių generavimą ir sumažinimą. Trečiojo klasifikatoriaus,
SVM, rezultatus pavyzdžių pridėjimas paveikia skirtingai priklausomai nuo kategorinių
duomenų transformavimo metodo: taikant požymių maišą rezultatas pablogėja, o taikant
kodavimą dažniu įverčio reikšmės šiek tiek padidėja.
40
6 lentelė. Rezultatai taikant pavyzdžių generavimo ir naikinimo algoritmus
Nr. Kategorinių
duomenų
transformavi
mas
Duomenų
mastelio keitimas
Mašininio
mokymo
metodas
F1
įverčio
reikšmė
F1 įvertis.
Taikyta
SMOTE
+ ENN
F1 įvertis.
Taikyta
SMOTE +
Tomek
1. Požymių
maiša. POS
keičiama į 6
požymius,
morfologinė
informacija į
50
Standartizavimas Naïve
Bayes
39.0% 39.0% 38.0%
2. Random
Forest
7.0% 19.0% 9.0%
3. SVM 31.0% 25.0% 16.0%
4. Transformavimas
pagal kvantilius
Naïve
Bayes
44.0% 46.0% 42.0%
5. Random
Forest
8.0% 19.0% 9.0%
6. SVM 42.0% 28.0% 21.0%
7. Kategorijos
koduojamos jų
dažniu
Standartizavimas Naïve
Bayes
34.0% 31.0% 30.0%
8. Random
Forest
36.0% 51.0% 51.0%
9. SVM 35.0% 36.0% 38.0%
10. Transformavimas
pagal kvantilius
Naïve
Bayes
28.0% 26.0% 26.0%
11. Random
Forest
38.0% 52.0% 52.0%
12. SVM 41.0% 43.0% 45.0%
5.4 CRF
CRF metodo mokymui duomenys išskaidyti į tris imtis:
1. 2917 sakiniai mokymui;
2. 879 sakiniai patikrai (angl. validation);
3. 899 sakiniai testavimui.
Eksperimentų taikant CRF metodą atlikimo eiga (kiekvienam požymių rinkiniui):
1. Nuskaitomi mokymo, patikros ir testavimo sakiniai į atskirus sąrašus. Sakinio
formato pavyzdys matomas 22 pav.;
41
2. Šiuose trijuose rinkiniuose esančiuose sakiniuose kiekvienas žodis pakeičiamas
požymių rinkiniu. Požymių rinkinys skiriasi kiekvieno eksperimento atveju, vienas pavyzdys
matomas 23 pav. Sudaromi atskiri žodžių klasių sąrašai;
3. Apmokomas CRF modelis. Parametrai: mokymo algoritmas – gradientinis
nusileidimas taikant L-BFGS metodą, maksimalus iteracijų skaičius 100, leidžiama generuoti
būsenų požymius, kurie nematomi mokymo duomenyse, parametrai c1 ir c2 nustatomi 0.1.
Testavimo imčiai įvertinamos F1 metrikos kiekvienai klasei (B-MWE ir I-MWE) ir bendrai;
4. Atliekama parametrų c1 ir c2 tinkamiausių verčių paieška, geriausias modelis
išsaugomas, apskaičiuojamos įvertinimo metrikos.
22 pav. Nuskaityti duomenys CRF metodui
23 pav. Žodžio „atlingavo“ savybės
Eksperimentų rezultatai testavimo duomenims pateikiami žemiau esančioje 7 lentelėje.
Matoma, kad eksperimentų rezultatai labai panašūs ir atlikti požymių pakeitimai nedarė didelės
įtakos metodo rezultatų gerumui. Vis tik geriausia F1-įverčio reikšmė pasiekta kai kaip požymiai
42
yra žodis, 2 žodžiai jam iš kairės ir dešinės, jų kalbos dalys, 3 simboliai nuo žodžių pradžios ir
pabaigos.
7 lentelė. CRF metodo rezultatai
Požymiai Tikslumas
(angl. Precision)
Išsamumas F1-įverčio
vertė
1. Žodis, 2 žodžiai jam iš kairės ir dešinės, jų
kalbos dalys, 3 simboliai nuo žodžių
pradžios ir pabaigos.
0.456 0.262 0.333
2. Žodis, 2 žodžiai jam iš kairės ir dešinės, jų
kalbos dalys, 3 ir 2 simboliai nuo žodžių
pradžios ir pabaigos.
0.446 0.262 0.330
3. Žodis, po 1 žodį jam iš kairės ir dešinės, jų
kalbos dalys, 3 simboliai nuo žodžių
pradžios ir pabaigos.
0.488 0.250 0.331
4. Žodis, po 1 žodį jam iš kairės ir dešinės, jų
kalbos dalys, 3 ir 2 simboliai nuo žodžių
pradžios ir pabaigos.
0.446 0.241 0.313
5.5 RNN
Taikant giliuosius mokymo metodus naudotas tas pats sakinių rinkinys kaip ir apmokant
CRF metodą – išlaikyti tie patys sakiniai mokymui, patikrai ir testavimui, kad būtų galima geriau
palyginti abiejų metodų rezultatus. Atlikti keli skirtingi eksperimentai. Modelis, siūlomas [21],
kuriuo pasiekti ypač geri rezultatai (F1-įverčio reikšmė tarp 90 ir 91 procentų) esybių ir kalbos
dalių žymėjimo užduotyse. Vėliau eksperimentuota su kitais modeliais naudojant Keras [50]
biblioteką.
Pirmojo taikyto modelio principas [21] [64]: žodžiai reprezentuojami GloVe vektoriais,
kaip požymiai dar papildomai naudojami simbolių vektoriai (angl. character embeddings), kurie
apjungiami ir leidžiamas dvikryptis LSTM per žodžių vektorių sekas. Rezultatų iškodavimas
vykdomas taikant tiesinį CRF metodą. Pasirinkti modelio parametrai ir hiperparametrai: simbolių
vektorių dimensija 100, paketo (angl. batch) dydis 20, mokymosi algoritmas Adam, mokymosi
greitis 0.001, iškarpa (angl. clip) 5, paslėptų simbolių vektorių sluoksnio dydis 100, paslėptų
žodžių vektorių sluoksnio dydis 200. Gautas F1-įvertis 26%.
43
Toliau sudarytas kitoks modelis pridedant kalbos dalis kaip požymius, nenaudojant
simbolių vektorių. Eksperimento atlikimo eiga:
1. Nuskaitomi duomenys. Žodžiams, kalbos dalims ir klasėms priskiriami indeksai;
2. Atskirai mokymo, patikros ir testavimo imtyse žodžiai ir kalbos dalys pakeičiami
jų indeksais, sakiniai užpildomi iki maksimalaus sakinio ilgio mokymo duomenyse (139
žodžiai), užpildoma „<unk>“ žodžiu, kuris žymi nežinomą žodį;
3. Sudaroma žodžių vektorių matrica. Ji sudaroma taip, kad kreipiantis nurodant
indeksą, kuris kiekvienam žodžiui priskirtas ankstesniame žingsnyje, yra grąžinamas žodžio
vektorius;
4. Sudaromas modelis. Yra du įėjimai: žodžių vektoriai ir kalbos dalys koduotos
OHE būdu, šie du įėjimai sujungiami. Po to yra išmetimo (angl. dropout) sluoksnis, kuris
sumažina tikimybę persimokyti bei dvikryptis LSTM sluoksnis su 100 vienetų. Galiausiai yra
Softmax aktyvavimo sluoksnis;
5. Modelis sukompiliuojamas ir apmokomas, apskaičiuojama F1-įverčio reikšmė
testavimo imčiai. Keičiamos optimizatoriaus ir nuostolio funkcijos, šioms funkcijoms palikti
numatytieji jų parametrai. Išbandytos 7 optimizatoriaus [65] ir 2 kategorinėms klasėms skirtos
nuostolio [66] funkcijos.
8 lentelė. Eksperimentų su RNN rezultatai
Optimizatorius Nuostolio funkcija F1-įverčio vertė
1. RMSprop kategorinė krosentropija 0.378
2. RMSprop kategorinė Hinge funkcija 0.397
3. Stochastinis gradientinis nusileidimas kategorinė krosentropija 0.449
4. Stochastinis gradientinis nusileidimas kategorinė Hinge funkcija 0.398
5. Adagrad kategorinė krosentropija 0.427
6. Adagrad kategorinė Hinge funkcija 0.408
7. Adadelta kategorinė krosentropija 0.435
8. Adadelta kategorinė Hinge funkcija 0.419
9. Adam kategorinė krosentropija 0.412
10. Adam kategorinė Hinge funkcija 0.428
11. Adamax kategorinė krosentropija 0.428
12. Adamax kategorinė Hinge funkcija 0.423
13. Nadam kategorinė krosentropija 0.415
14. Nadam kategorinė Hinge funkcija 0.423
44
Matoma, kad eksperimetų metu gautos F1-įverčio reikšmės svyruoja nuo 0.378 iki 0.449.
Geriausias rezultatas pasiektas, kai taikomas stochastinis gradientinis nusileidimas kaip
optimizatorius ir kategorinė krosentropijos nuostolio funkcija.
5.6 Eksperimentų palyginimas
2-gramų ir sekų modelių rezultatai negali būti lyginami tiesiogiai vertinant tik F1-įverčio
reikšmes, nes 2-gramų modeliai gali atpažinti tik dvižodžius pastoviuosius junginius, tuo tarpu
sekų modeliai nėra apriboti žodžių skaičiumi, taip pat leidžia aprašyti junginius su įsiterpimais.
Dėl to 2-gramų modeliai ir sekų modeliai turi būti lyginami atskirai.
Eksperimentų su 2-gramomis rezultatų stačiakampės diagramos pateiktos 24 pav. 2-
gramų analizės atveju geriausias rezultatas (F1-įverčio reikšmė 64%) pasiektas taikant Naïve
Bayes klasifikatorių kaip požymius naudojant statistinių įverčių reikšmes ir morfologinę
informaciją bei taikant nestandartinę sprendimo priėmimo taisyklę – nepastoviuoju junginiu
laikomas tas, kurio tikimybė būti nepastoviuoju yra 1 (24 pav. grafike pažymėta raudonu tašku,
taškas neįtrauktas į stačiakampę diagramą, nes taikyta kitokia sprendimo taisyklė). Šis rezultatas
yra daugiau nei 2 kartus geresnis nei pasiektas geriausias rezultatas taikant statistinius įverčius.
Aukščiausia F1-įverčio reikšmė, gauta eksperimentų su statistiniais įverčiais metu, yra 30.9%
naudojant logaritmuotą Dice koeficientą.
24 pav. Eksperimentų su 2-gramomis rezultatų palyginimas
Taikant sekų modelius pastebėta, kad gaunamos F1-vertės yra mažesnės nei 2-gramų
modelių atveju, tačiau, kaip minėta anksčiau, sekų modeliai leidžia atpažinti neriboto ilgio
45
pastoviuosius junginius. Geriausias rezultatas taikant CRF metodą yra 33.3%, o RNN 44.9%
(F1-įverčio vertės). Gautos F1-įverčio reikšmės pateiktos stačiakampėse diagramose 25 pav.
Matoma, kad priklausomai nuo parametrų šių modelių gerumas varijuoja mažiau nei 2-gramų
modelių. Nuspręsta patikrinti, ar modeliai žymi tuos pačius junginius ar skirtingus. Abiejų
metodų grąžinamos žymės testavimo duomenims sujungtos. Siekiant kuo didesnio išsamumo
nuspręsta esant klasifikavimo nesutapimams palikti žymes, reiškiančias pastovųjį junginį, be to,
B-MWE ir I-MWE žymės sujungtos į MWE siekiant neskirti pirmumo nei vienam klasifikatoriui
nesutapimo atveju. Apskaičiavus F1-įvertį gauta 49% vertė (tikslumas 47%, išsamumas 51%)
(vertė pažymėta raudonu tašku 25 pav.), kuri parodo, kad modeliai atpažįsta ne visiškai tuos
pačius junginius ir jų sujungimas yra prasmingas, tai matoma ir 26 pav., kuriame pateiktas
metodų žymėjimo persidengimas. Pasirinkta šiuos du modelius kartu naudoti prototipo kūrime.
25 pav. Eksperimentų su sekų modeliais rezultatų palyginimas
26 pav. CRF ir RNN žymėjimo palyginimas (pasviręs šriftas žymi teisingus pastoviuosius junginius, mėlynas
tekstas – CRF pažymėtus junginius, paryškintas šriftas – RNN pažymėtus junginius)
46
6 PASTOVIŲJŲ JUNGINIŲ ATPAŽINTUVO PROTOTIPAS
Panaudojant geriausius apmokytus, anksčiau aprašytus modelius iškeltas tikslas sukurti
pastoviųjų junginių atpažintuvo prototipą. Toliau šiame skyriuje aprašoma projektavimo ir
realizavimo eiga bei galutinis rezultatas – sukurtas prototipas.
6.1 Prototipo projektavimas
Nuspręsta atpažintuvo prototipą kurti internetinės sistemos forma ir kaip API, kuris
galėtų būti pasiekiamas ir kitiems specialistams jų kuriamose sistemose. Siekta, kad vartotojo
sąsaja būtų kuo paprastesnė. Numatyta, kad vartotojas, atsidaręs internetinį puslapį per naršyklę
galėtų pasirinkti tekstinį failą, jį peržiūrėti, nusiųsti į serverį ir gauti rezultatus – pastoviaisiais
junginiais anotuotą failą. Šie galimi vartotojo veiksmai matomi panaudos atvejų diagramoje 27
pav.
27 pav. Panaudos atvejų diagrama pastoviųjų junginių atpažintuvo prototipui
Pagrindiniame puslapio lange numatyta pateikti trumpą informacinį tekstą, kuris
informuotų apie parsiunčiamus rezultatus į asmens įrenginį, leisti vykdyti tekstinio failo įkėlimą
tiek naršant kompiuterio failuose, tiek ir nutempimo (angl. drag&drop) būdu. Pagrindinio lango
eskizas matomas 28 pav.
47
28 pav. Pagrindinio vartotojo sąsajos lango schema
Atliekant anksčiau aprašytus eksperimentus naudota teksto morfologinė informacija. 2-
gramų modeliui yra reikalinga kalbos dalių ir detali (skaičius, giminė, linksnis, asmuo ir t. t.)
morfologinė informacija, tuo tarpu sekų modeliams reikia tik kalbos dalių. Kadangi neturima
prieigos prie morfologinio analizatoriaus (anotavimas atliktas VDU KLC), nuspręsta prototipe
naudoti tik sekų modelius (geriausius CRF ir RNN variantus išbandytus eksperimentų metu), o
kalbos dalių žymėjimo modelį apmokyti taikant anksčiau pastoviesiems junginiams žymėti
išbandytą modelį, kurio pirminė paskirtis yra kalbos dalių ir esybių žymėjimas [21] ir
panaudojant turimą anotuotą 70 mln. žodžių tekstyną.
Sistemos logiką nuspręsta realizuoti taikant REST API principus. Tam, kad būtų galima
perduoti duomenų failą anotavimui pastoviaisiais junginiais nutarta sukurti „/upload“ prieigos
tašką, į kurį kreipiantis POST užklausa būtų siunčiamas duomenų failas, sistema sužymėtų
pastoviuosius junginius ir grąžintų rezultatus. Perduoto duomenų failo apdorojimo sistemoje
schema matoma 29 pav.
48
29 pav. Serveryje gauto failo apdorojimo ir pastoviųjų junginių žymėjimo schema
Sistemos nefunkciniai reikalavimai:
1. REST API principų taikymas;
2. Sistemos prieinamumas per naršyklę.
Sistemos funkciniai reikalavimai:
1. Vartotojui leidžiama įkelti failą naudojantis vartotojo sąsaja;
2. Į API leidžiama kreiptis ne tik per vartotojo sąsają, bet ir kreipiantis užklausa
tiesiogiai, pavyzdžiui, naudojant trečiųjų šalių sukurtus įrankius, tokius kaip „Postman“ [67];
3. Vartotojo sąsajoje ir funkcinėje logikoje turi būti atlikta failo patikra. Failas yra
neteisingas, negaliojantis ir neapdorojamas jei jis nėra tekstinis;
4. Vartotojui leidžiama peržiūrėti jo įkeltą failą;
5. Sistema apdorodama vartotojo įkeltą tekstinį failą turi sužymėti pastoviuosius
junginius.
6.2 Prototipo realizavimas
Pirmiausia, kad būtų galima realizuoti prototipą, buvo apmokytas kalbos dalių žymėjimo
modelis. Pasirinkta apmokyti anksčiau minėtą modelį [21], kuriame naudojami GloVe tipo
žodžių vektoriai (dimensija 200), simbolių vektoriai (dimensija 100), simbolių vektoriai
apmokomi naudojant LSTM (dydis 100), išėjimo sluoksnyje taikomas CRF metodas, parametrai
49
ir hiperparametrai: išmetimas (angl. dropout) 0.5, paketo dydis 20, optimizavimo algoritmas
Adam, mokymosi greitis 0.001, iškarpa 5, dvikrypčio LSTM dydis 200. Mokymui naudotas
VDU KLC morfologiškai anotuotas 70 mln. žodžių tekstynas. Duomenys mokymui paruošti
tokiu formatu: žodis, tarpas, kalbos dalis, naujos eilutės simbolis ir t. t. (30 pav.) Sakinių ribas
žymi papildoma tuščia eilutė. Duomenys suskirstyti į 3 imtis: mokymo (apie 60%), patikros (apie
20%) ir testavimo (apie 20% duomenų). Mokymo gerumas vertintas taikant F1 ir „Accuracy“
metrikas. Mokymas truko 10 dienų, patikros duomenims gauta 98.78% F1 ir 98.93% „Accuracy“
įverčių vertės, o testavimo duomenims: 98.76% F1 ir 98.91% „Accuracy“ vertės. Vis tik būtina
atkreipti dėmesį, kad į šias metrikų vertes neįskaičiuotos klaidos, kurias padarė VDU KLC
taikytas įrankis, tačiau priimta, kad modelis gali būti naudojamas tolesniame darbe.
30 pav. Kalbos dalių žymėjimo mokymo duomenų fragmentas
Vartotojo sąsajai kurti naudotos šios technologijos:
1. HTML, JavaScript. Įprastos technologijos tinklalapiams kurti;
2. Bootstrap 4 [68] vartotojo sąsajos struktūrai ir stiliui papildyti;
3. jQuery [69]. Biblioteka, palengvinanti darbą su JavaScript, yra reikalinga kitų
papildinių veikimui;
4. Krajee Bootstrap File Input biblioteka [70] failų įkėlimo funkcionalumui
realizuoti kliento dalyje ir siuntimui į serverį.
Prototipo tinklalapio struktūra aprašyta naudojant HTML žymėjimo kalbą. Inicializuotas
ir sukonfigūruotas failų įkėlimo funkcionalumas pasitelkiant Krajee Bootstrap File Input
biblioteką. Papildinio nustatymuose nurodoma, kad būtų leidžiama vienu metu įkelti tik vieną
failą, leidžiami tik tekstinio turinio „txt“ failai, į kokį API prieigos tašką bus kreipiamasi norint
perduoti failą. Failas gali būti įkeliamas nutempimo (angl. drag&drop) būdu arba ieškant norimo
failo kompiuteryje, įgalinta failo peržiūra prieš jo perdavimą serveriui (dalis failų įkėlimo
funkcionalumo konfigūravimo pateikta 31 pav.). Prototipo pradinis langas matomas 32 pav.
Daugiau sukurto prototipo sąsajos vaizdų pateikta 9.3 priede.
50
31 pav. Krajee Bootstrap File Input bibliotekos nustatymų dalis
32 pav. Prototipo vartotojo sąsajos pagrindinis langas
REST API kūrimui naudotas Flask karkasas [71]. Buvo siekiama naudoti karkasą, skirtą
Python programavimo kalbai, nes Python ir papildomos jo bibliotekos naudotos eksperimentų
atlikimui, o jau sukurtus modelius nuspręsta pernaudoti prototipe. Dėl pakankamo suteikiamo
funkcionalumo, reikalingo prototipo programavimui, pasirinktas būtent Flask karkasas.
Naudojant šį karkasą realizuotas prieigos taškas „/upload“, į kurį kreipiantis POST
užklausa perduodamas tekstinis failas. Patikrinama, ar failas yra įkeltas ir ar jis yra tekstinis, jei
ne, į kliento dalį siunčiamas atitinkamas atsakymas (angl. response). Saugumo tikslais prieš
nuskaitant failą naudojama Flask rekomenduojama funkcija „secure_filename“, kuri pakeičia
failo pavadinimą taip, kad šis negalėtų pakenkti serverio failų sistemai. Nuskaitytas failas
dekoduojamas UTF-8 koduote, tekstas suskaidomas sakiniais, sakiniai žodžiais pasitelkiant
51
NLTK biblioteką [48]. Tada sužymimos kalbos dalys taikant anksčiau šiame skyriuje aprašytą
modelį, po to paruošiami duomenys CRF ir RNN modeliams, pastarieji pritaikomi. Taip pat
sužymimi junginiai, esantys žodyne, o galiausiai visi rezultatai apjungiami ir išsiunčiami atgal
kaip atsakymas.
API paleidimo serveryje metu vykdoma inicializacija: užkraunami kalbos dalių
žymėjimo, CRF ir RNN modeliai (vėliau užtenka tik kreiptis kreipiniu „predict“), pastoviųjų
junginių žodynas, žodžių sąrašas, reikalingas modelių veikimui.
Iš pradžių API testuotas be vartotojo sąsajos, pasitelkiant „Postman“ [67] įrankį.
Perdavus tekstinį failą, API grąžina rezultatus JSON formatu, kadangi toks formatas
reikalaujamas failų įkėlimo bibliotekos, kad būtų patvirtintas sėkmingas perdavimas. Sėkmingo
rezultato grąžinimas testuojant su „Postman“ matomas 33 pav., nesėkmingo 34 pav. Kreipiantis
per internetinę sistemą ir grąžinus rezultatą vartotojo sąsajoje yra suformuojamas failas ir
atsiunčiamas vartotojui. Failas atsiunčiamas tokiu formatu: kiekvienoje eilutėje yra žodis,
tabuliavimo ženklas, žymė, ar junginys pastovusis ar ne ir naujos eilutės simbolis, o tuščia eilutė
žymi sakinių ribas. Tokio suformuoto rezultatų failo pavyzdys matomas 35 pav.
33 pav. Sėkmingo rezultato grąžinimas
52
34 pav. Nesėkmingo rezultato grąžinimas, kai perduodamas netekstinis failas
35 pav. Atsiunčiamo rezultatų failo pavyzdys
Prototipo programinis kodas pateiktas „Bitbucket“ saugykloje, nuoroda:
https://bitbucket.org/ievabumb/mwe_tagger_prototype.
6.3 Rekomendacijos tolesniam vystymui
Prototipą būtų galima toliau vystyti šiomis kryptimis:
1. Optimizuoti veikimo greitį. Identifikuoti lėčiausius komponentus ir rasti
sprendimą, kaip juos pagreitinti siekiant sumažinti laukimo laiką;
2. Išplėsti prototipą papildomais modeliais: pridėti 2-gramų, 3-gramų, kitų
architektūrų neuroninių tinklų modelius;
3. Išanalizuoti lingvistinio filtro pridėjimo galimybes ir jį realizuoti esant galimybei.
53
7 REZULTATAI IR IŠVADOS
7.1 Rezultatai
1. Išanalizuota pastoviųjų junginių sąvoka;
2. Atlikus literatūros analizę aprašyta, kokios yra išskiriamos metodų, skirtų pastoviųjų junginių
automatinio atpažinimo uždaviniui spręsti, grupės, aptarti taikytini metodai, jų veikimo
principas;
3. Sukurtas internetinis robotas, kuriuo nuskanuota (angl. scraped) dalis „delfi.lt“ portalo ir
suformuotas apie 70 mln. žodžių pradinis tekstynas. Iš jo sugeneruotos keturios kolekcijos n-
gramų, kai n=1,2,3,4 (72, 67, 62, 57 mln. n-gramų), 2-gramų kolekcija su detalia
morfologine informacija (morfologinis anotavimas atliktas VDU KLC), GloVe tipo žodžių
vektoriai;
4. 2-gramų kolekcijoms apskaičiuotos dažnių lentelės ir 17 statistinių įverčių, išnagrinėtas jų
reikšmių pasiskirstymas;
5. Atlikti eksperimentai:
5.1. su statistiniais įverčiais 2-gramoms be morfologinės informacijos – surasti geriausi
kiekvieno įverčio reikšmių intervalai kaip gerumo matą naudojant F1-įvertį;
5.2. naudojant 2-gramų kolekciją (kartu su morfologine informacija) su 3 klasifikatoriais
(Naïve Bayes, Random Forest ir SVM) taikant 4 skirtingus kategorinių duomenų
kodavimo metodus (OHE, OHE, kai kategorijos, kurių dažnis mažesnis nei 100,
laikomos viena, požymių maiša, kategorijų kodavimas dažniu) bei 2 skirtingus duomenų
mastelio keitimo metodus – standartizavimą ir transformavimą pagal kvantilius. Taip pat
atlikti eksperimentai taikant duomenų generavimo mažesnei klasei SMOTE metodą ir
duomenų kiekio sumažinimo metodus ENN ir Tomek;
5.3. su CRF metodu kaip požymius parinkus žodį, jo kontekstą (1,2 žodžius), pradžios ir
pabaigos simbolius (2 arba 3) bei kalbos dalis;
5.4. su rekurentiniais neuroniniais tinklais (bi-LSTM) kaip požymius naudojant žodžių
vektorius ir kalbos dalis, išbandant skirtingus optimizavimo algoritmus ir nuostolio
funkcijas;
6. Suprojektuotas pastoviųjų žodžių junginių atpažintuvo prototipas;
7. Apmokytas kalbos dalių žymėjimo modelis naudojant šiai užduočiai kitoms kalboms gerus
rezultatus lėmusį neuroninių tinklų modelį;
8. Sukurtas pastoviųjų junginių atpažintuvo prototipas apjungiant geriausius apmokytus CRF ir
RNN modelius. Prototipas realizuotas kaip internetinė sistema;
54
9. Pasiūlytos gairės tolimesniam prototipo vystymui.
10. Tyrimų rezultatai publikuoti:
10.1. N-gramų tekstynai. Bumbulienė I., Mandravickaitė J., Boizou L., Krilavičius T.
2017: An overview of Lithuanian Internet media n-gram corpus. SYSTEM 2017:
Symposium for Young Scientists in Technology, Engineering and Mathematics. CEUR
Workshop Proceedings, 24–28.
10.2. Mašininio mokymo metodų taikymas pastoviųjų junginių atpažinimui.
Bumbulienė I., Mandravickaitė J., Krilavičius T. 2017: Application of Machine
Learning for MWE Identification. The 9 th international workshop Data Analysis
Methods for Software Systems. Druskininkai, 2017 m. gruodžio 1 d.
10.3. Visos publikacijos ir pranešimai pateikti 9.7 priede.
7.2 Išvados
1. Analizuojant pastoviųjų junginių sąvoką išsiaiškinta, kad tai yra sąlyginai laisva
kalbos struktūra ir negali būti apibrėžta vienareikšmiškai;
2. Nagrinėjant pastoviųjų junginių identifikavimo metodus išsiaiškinta, kad yra
išskiriamos trys pagrindinės sprendimo metodų grupės, o plačiausiai naudojami hibridiniai
metodai, kurie suteikia galimybę apjungti lingvistines ir statistines pastoviųjų junginių savybes.
Automatiniam pastoviųjų junginių atpažinimui yra taikoma didelė įvairovė mašininio mokymo
metodų ir nėra vieno geriausiai tinkančio metodo šio uždavinio sprendimui;
3. Sugeneravus n-gramas pastebėta, kad didėjant n reikšmei didėja ir unikalių n-
gramų bei n-gramų, kurių dažnis 1, skaičius. Tuo tarpu didėjant n didžiausias vienos n-gramos
dažnis mažėja, t. y. dažniausia n-grama randama rečiau, kai n didesnis;
4. Apskaičiavus statistinių įverčių reikšmes 2-gramoms pastebėta, kad PMI,
logDice, MI, MI2, MI3, Odds Ratio, Relative Risk verčių histogramos artimos normaliajam
pasiskirstymui, o kitų nagrinėtų įverčių dauguma reikšmių yra aptinkamos viename intervale;
5. Atlikus eksperimentinę geriausių įverčių intervalų paiešką išskirti kiekvieno
normuoto įverčio intervalai, kai gaunama didžiausia F1-įverčio vertė. Pastebėta, kad pagal
naudotą skalę geriausiai (F1-įverčio reikšmė 30.9%) pastoviuosius junginius nuo nepastoviųjų
atskiria logaritmuotas Dice koeficientas intervale [0.7; 0.94];
6. Analizuojant literatūrą išsiaiškinta, kad yra daug metodų, leidžiančių kategorinius
duomenis transformuoti naudojimui apmokant klasifikatorius. Atlikus eksperimentus pastebėta,
kad naudotiems duomenims OHE metodas nėra tinkamas ir lemia prastus klasifikavimo
rezultatus;
55
7. Atlikus eksperimentus netaikant papildomo duomenų generavimo ir šalinimo
pastebėta, kad didžiausia F1 įverčio reikšmė (44%) gaunama, kai kategorinių duomenų
transformavimui taikoma požymių maiša, duomenų mastelis keičiamas transformuojant pagal
kvantilius ir taikomas Naïve Bayes klasifikatorius. Pakeitus šio klasifikatoriaus sprendimo
priėmimą į tokį, kad nepastoviuoju junginiu laikomas tas, kurio tikimybė būti nepastoviuoju yra
lygi 1 pasiektas geresnis F1 įverčio rezultatas – 64%;
8. Atlikus eksperimentus taikant duomenų generavimo ir naikinimo metodus
geriausias rezultatas pasiektas naudojant kategorijų kodavimą dažniu, transformavimą pagal
kvantilius, Random Forest klasifikatorių ir SMOTE + ENN bei SMOTE + Tomek metodus (F1
įverčio rezultatas – 52%);
9. Taikant CRF metodą pastebėta, kad nėra didelio rezultatų pagerėjimo žvelgiant į
2 žodžių kontekstą lyginant su 1 žodžio kontekstu. Geriausias rezultatas (F1 vertė 33.3%)
pasiektas su tokiu požymių rinkiniu: žodis, 2 žodžiai jam iš kairės ir dešinės, jų kalbos dalys, 3
simboliai nuo žodžių pradžios ir pabaigos;
10. Atlikus eksperimentus su rekurentiniais neuroniniais tinklais išsiaiškinta, kad
geriausias rezultatas gaunamas taikant stochastinį gradientinį nusileidimą kaip optimizatorių ir
kategorinę krosentropiją kaip nuostolio funkciją (F1 vertė 44.9%);
11. Apibendrinant eksperimentų rezultatus pastebėta, kad taikant sekų modelius
gaunamos mažesnės F1-įverčio vertės nei taikant 2-gramų modelius, tačiau CRF ir RNN metodai
leidžia atpažinti ne tik dvižodžius junginius, bet ir ilgesnius bei turinčius įsiterpusių žodžių.
Apjungus CRF ir RNN geriausius modelius gaunama 49% F1-įverčio reikšmė, kuri yra didesnė
nei pavienių modelių ir parodo, kad metodai atpažįsta nevisiškai tuos pačius junginius;
12. Prototipo kūrimo metu įsitikinta, kad apmokyti modeliai gali būti sėkmingai
pernaudojami internetinėje sistemoje.
56
8 LITERATŪROS SĄRAŠAS
[1] N. S. P. Z. Dhouha Bouamor, „Identifying bilingual Multi-Word Expressions for Statistical
Machine Translation,“ 2012.
[2] S. W. Yulia Tsvetkov, „Identification of Multiword Expressions by Combining Multiple
Linguistic Information Sources,“ t. 40, nr. Computational Linguistics, pp. 449-468, 2014.
[3] S. N. S. B. Asif Ekbal, Emerging Applications of Natural Language Processing: Concepts
and New Research, IGI Global, 2012.
[4] C. J. F. R. G. N. I. A. L. C. M. A. Z. Nicoletta Calzolari, „Towards Best Practice for
Multiword Expressions in Computational Lexicons,“ 2002.
[5] T. Baldwin, 2004. [Tinkle]. Available:
https://people.eng.unimelb.edu.au/tbaldwin/pubs/altss2004.pdf. [Kreiptasi 13 04 2018].
[6] „http://mwe.lt/,“ VDU, BPTI, [Tinkle]. Available: http://mwe.lt/. [Kreiptasi 3 5 2018].
[7] J. K. E. R. L. V. Agnė Bielinskienė, „Kolokacijų ir frazeologizmų atpažinimo kriterijai,“
Kalbų studijos, t. 31, p. 83–101, 2017.
[8] S. J. i. R. D. John Sinclair, English collocation studies: The OSTI Report, University of
Birmingham Press, 2004.
[9] R. Marcinkevičienė, „Tradicinė frazeologija ir kiti stabilūs žodžių junginiai,“ įtraukta
Lituanistica, Kaunas, lmaleidykla.lt, 2001, pp. 81-98.
[10] K. V. P. A. V. Rodrigo Augusto Scheller Boos, „Identification of Multiword Expressions in
the brWaC,“ 2014.
[11] P. S. Pavel Pecina, „Combining Association Measures for Collocation Extraction,“ įtraukta
Proceedings of the COLING/ACL 2006 Main Conference Poster Sessions, Sydney, 2006.
[12] P. Pecina, LEXICAL ASSOCIATION MEASURES Collocation Extraction, Institute of
Formal and Applied Linguistics, 2009.
[13] R. W. L. M. E. W. S. C. A. V. Leonardo Zilio, „Joining Forces for Multiword Expression
Identification,“ įtraukta "Computational Processing of the Portuguese Language: 12th
International Conference, PROPOR 2016, Tomar, Portugal, July 13-15, 2016, Proceedings,
Springer International Publishing, 2016, pp. 233-238.
[14] M. N. François ROLE, „HANDLING THE IMPACT OF LOW FREQUENCY EVENTS
ON CO-OCCURRENCE BASED MEASURES OF WORD SIMILARITY A Case Study of
57
Pointwise Mutual Information,“ 2011.
[15] S. Evert, „collocations.de,“ 6 4 2004. [Tinkle]. Available:
http://www.collocations.de/AM/contents.html. [Kreiptasi 13 4 2018].
[16] P. Rychlý, „A Lexicographer-Friendly Association Score,“ įtraukta Proceedings of Recent
Advances in Slavonic Natural Language Processing, 2008.
[17] S. C. F. M. Malvina Nissim, „Extracting MWEs from Italian corpora: A case study for
refining the POS-pattern methodology,“ įtraukta Proceedings of the 10th Workshop on
Multiword Expressions (MWE 2014), Gothenburg, 2014.
[18] G. E. L. A. L. F. M. M. N. L. P. Sara Castagnoli, „POS-Patterns or Syntax? Comparing
Methods for Extracting Word Combinations,“ įtraukta EUROPHRAS 2015 - Computerised
and Corpus-based Approaches to Phraseology: Monolingual and Multilingual
Perspectives., Malaga, 2015.
[19] F. S. Alexsandro Fonseca, „A Comparative Study of Different Classification Methods for
the Identification of Brazilian Portuguese Multiword Expressions,“ įtraukta Proceedings of
the First Workshop on Computational Approaches to Compound Analysis, pages 53–62,
Dublin, 2014.
[20] M.-C. d. M. C. D. M. Spence Green, „Parsing Models for Identifying Multiword
Expressions,“ Computational Linguistics, t. 39, pp. 195-227, 2012.
[21] G. Genthial, „Sequence Tagging with Tensorflow,“ 5 4 2017. [Tinkle]. Available:
https://guillaumegenthial.github.io/sequence-tagging-with-tensorflow.html. [Kreiptasi 25 4
2018].
[22] H. T. H. L. Yinghong Liang, „A language-independent hybrid approach for multi-word
expression extraction,“ įtraukta Neural Networks (IJCNN), Anchorage, AK, USA, 2017.
[23] L. P. C. Willi Richert, „Chapter 6: Classification II – Sentiment Analysis,“ įtraukta
Introducing the Naive Bayes classifier, Birmingham, Packt Publishing, 2013.
[24] J. Leek, „coursera.org,“ [Tinkle]. Available: https://www.coursera.org/learn/practical-
machine-learning/lecture/XKsl6/random-forests. [Kreiptasi 14 4 2018].
[25] S. Raschka, „Chapter 3: A Tour of Machine Learning Classi ers Using Scikit-learn,“
įtraukta Python Machine Learning, Birmingham, Packt Publishing, 2016, pp. 49-99.
[26] Y. Y. Colin Campbell, „Support Vector Machines for Classification,“ įtraukta Learning
with Support Vector Machines, Morgan & Claypool, 2011, pp. 1-27.
[27] A. M. Charles Sutton, „An Introduction to Conditional Random Fields,“ 17 11 2010.
[Tinkle]. Available: https://arxiv.org/pdf/1011.4088.pdf. [Kreiptasi 15 4 2018].
58
[28] E. Chen, „Introduction to Conditional Random Fields,“ 03 01 2012. [Tinkle]. Available:
http://blog.echen.me/2012/01/03/introduction-to-conditional-random-fields/. [Kreiptasi 19 4
2018].
[29] C. R. Manon Scholivet, „Identification of Ambiguous Multiword Expressions Using
Sequence Models and Lexical Resources,“ įtraukta Proceedings of the 13th Workshop on
Multiword Expressions (MWE 2017),, Valencia, Spain, 2017.
[30] D. Britz, „Recurrent Neural Networks Tutorial, Part 1 – Introduction to RNNs,“ 2015.
[Tinkle]. Available: http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-
part-1-introduction-to-rnns/. [Kreiptasi 4 5 2018].
[31] V. C. B. P. C. Waseem Gharbieh, „Deep Learning Models For Multiword Expression
Identification,“ įtraukta Proceedings of the 6th Joint Conference on Lexical and
Computational Semantics (*SEM 2017), Vancouver, Canada, 2017.
[32] G. I. W. Claude Sammut, Encyclopedia of Machine Learning, Sidnėjus: Springer, 2011.
[33] S. A. i. A. Mendes, „An evaluation of the role of statistical measures and frequency for
MWE identification,“ 2014.
[34] A. v. C. Federico Sangati, „Multiword Expression Identification with Recurring Tree
Fragments and Association Measures,“ Denver, Colorado, 2015.
[35] „Scrapy,“ [Tinkle]. Available: https://scrapy.org/. [Kreiptasi 4 5 2018].
[36] „MongoDB,“ MongoDB, Inc., [Tinkle]. Available: https://www.mongodb.com/. [Kreiptasi
19 4 2018].
[37] „universaldependencies.org,“ [Tinkle]. Available: http://universaldependencies.org/.
[Kreiptasi 23 4 2018].
[38] K. Ganesan, „Text Mining, Analytics & More,“ 23 11 2014. [Tinkle]. Available: http://text-
analytics101.rxnlp.com/2014/11/what-are-n-grams.html. [Kreiptasi 4 05 2018].
[39] „Lietuvių kalbo sutrumpinimų žodynas,“ TokenMill, 15 06 2016. [Tinkle]. Available:
https://github.com/tokenmill/ltlangpack/blob/master/tokenizer/abbr-dictionary.xml.
[Kreiptasi 4 5 2018].
[40] „brat rapid annotation tool,“ [Tinkle]. Available: http://brat.nlplab.org/index.html.
[Kreiptasi 23 4 2018].
[41] R. S. C. D. M. Jeffrey Pennington, „GloVe: Global Vectors for Word Representation,“
įtraukta Empirical Methods in Natural Language Processing (EMNLP), 2014, pp. 1532-
1543.
[42] „Github GloVe,“ [Tinkle]. Available: https://github.com/stanfordnlp/GloVe. [Kreiptasi 24 4
59
2018].
[43] „matplotlib,“ [Tinkle]. Available: http://matplotlib.org/. [Kreiptasi 23 4 2018].
[44] „Python Data Analysis Library,“ [Tinkle]. Available: http://pandas.pydata.org/. [Kreiptasi
23 4 2018].
[45] „scikit-learn,“ [Tinkle]. Available: http://scikit-learn.org/. [Kreiptasi 23 4 2018].
[46] „sklearn-crfsuite,“ [Tinkle]. Available: https://sklearn-crfsuite.readthedocs.io/en/latest/.
[Kreiptasi 23 4 2018].
[47] G. L. a. F. N. a. C. K. Aridas, „Imbalanced-learn: A Python Toolbox to Tackle the Curse of
Imbalanced Datasets in Machine Learning,“ Journal of Machine Learning Research, t. 18,
pp. 1-5, 2017.
[48] „Natural Language Toolkit,“ [Tinkle]. Available: https://www.nltk.org/. [Kreiptasi 25 4
2018].
[49] R. Řehůřek, „Gensim,“ [Tinkle]. Available: https://radimrehurek.com/gensim/. [Kreiptasi
25 4 2018].
[50] „Keras,“ [Tinkle]. Available: https://keras.io/. [Kreiptasi 23 4 2018].
[51] „Tensorflow,“ [Tinkle]. Available: https://www.tensorflow.org/. [Kreiptasi 23 4 2018].
[52] S. Raschka, „About Feature Scaling and Normalization,“ 11 07 2014. [Tinkle]. Available:
http://sebastianraschka.com/Articles/2014_about_feature_scaling.html. [Kreiptasi 4 5 2018].
[53] Y. (. Liu, Python Machine Learning By Example, Packt Publishing, 2017.
[54] J. Brownlee, „machinelearningmastery.com,“ 28 07 2017. [Tinkle]. Available:
https://machinelearningmastery.com/why-one-hot-encode-data-in-machine-learning/.
[Kreiptasi 4 5 2018].
[55] o. Attenberg, K. Weinberger, A. Smola, A. Dasgupta ir M. Zinkevich, „Collaborative spam
filtering with the hashing trick,“ Virus Bulletin, 01 11 2009.
[56] K. Weinberger, A. Dasgupta, J. Langford, A. Smola ir J. Attenberg, „Feature Hashing for
Large Scale Multitask Learning,“ įtraukta ICML, 2009.
[57] „Patsy: Contrast Coding Systems for categorical variables,“ [Tinkle]. Available:
http://www.statsmodels.org/devel/contrasts.html. [Kreiptasi 23 4 2018].
[58] „sklearn.preprocessing.StandardScaler,“ [Tinkle]. Available: http://scikit-
learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html. [Kreiptasi
24 4 2018].
[59] „sklearn.preprocessing.QuantileTransformer,“ [Tinkle]. Available: http://scikit-
60
learn.org/stable/modules/generated/sklearn.preprocessing.QuantileTransformer.html.
[Kreiptasi 24 4 2018].
[60] K. W. B. L. O. W. P. K. N. V. Chawla, „SMOTE: synthetic minority over-sampling
technique,“ Journal of artificial intelligence research, pp. 321-357, 2002.
[61] F. N. D. O. C. A. G. Lemaitre, „4. Combination of over- and under-sampling,“ [Tinkle].
Available: http://contrib.scikit-learn.org/imbalanced-learn/stable/combine.html. [Kreiptasi 4
5 2018].
[62] D. Wilson, „Asymptotic Properties of Nearest Neighbor Rules Using Edited Data,“ In IEEE
Transactions on Systems, Man, and Cybernetrics, pp. 408-421, 1972.
[63] F. N. D. O. C. A. G. Lemaitre, „3.2.2.1. Tomek’s links,“ [Tinkle]. Available:
http://contrib.scikit-learn.org/imbalanced-learn/stable/under_sampling.html#tomek-s-links.
[Kreiptasi 4 5 2018].
[64] G. Genthial, „Named Entity Recognition with Tensorflow,“ [Tinkle]. Available:
https://github.com/guillaumegenthial/sequence_tagging. [Kreiptasi 25 4 2018].
[65] „Keras. Optimizers,“ [Tinkle]. Available: https://keras.io/optimizers/. [Kreiptasi 26 4 2018].
[66] „Keras. Loss functions,“ [Tinkle]. Available: https://keras.io/losses/. [Kreiptasi 25 4 2018].
[67] „Postman,“ Postdot Technologies, Inc., [Tinkle]. Available: https://www.getpostman.com/.
[Kreiptasi 1 5 2018].
[68] „Bootstrap,“ [Tinkle]. Available: https://getbootstrap.com/. [Kreiptasi 1 5 2018].
[69] „jQuery,“ [Tinkle]. Available: http://jquery.com/. [Kreiptasi 4 5 2018].
[70] K. Visweswaran, „Bootstrap File Input,“ [Tinkle]. Available: http://plugins.krajee.com/file-
input. [Kreiptasi 1 5 2018].
[71] A. Ronacher, „Flask,“ [Tinkle]. Available: http://flask.pocoo.org/. [Kreiptasi 1 5 2018].
[72] Z.-M. Gao, „Automatic Extraction of English Collocations and their Chinese-English
Bilingual Examples: A Computational Tool for Bilingual Lexicography,“ Concentric:
Studies in Linguistics, t. 40.1, pp. 95-121, 2014.
61
9 PRIEDAI
9.1 Statistinių įverčių reikšmių histogramos
62
63
64
65
9.2 Statistinių įverčių intervalams apskaičiuoto F1-įverčio reikšmių
paviršiai
66
67
9.3 Prototipas
68
69
70
9.4 Pirmo tiriamojo darbo santrauka
Autorius Ieva Bumbulienė
Pavadinimas Pastoviųjų junginių automatiniam atpažinimui
taikytinų metodų ir įrankių analizė
Vadovas Prof. dr. Tomas Krilavičius
Darbas pristatytas Vytauto Didžiojo Universitetas,
Informatikos fakultetas, Kaunas
(2016-12-21)
Puslapių skaičius 34
Priedų skaičius 3
Pastoviųjų junginių automatinis atpažinimas yra aktualus natūraliosios kalbos apdorojimo
sistemų, kompiuterinės lingvistikos srityse. Nekreipiant dėmesio į pastoviuosius junginius
natūraliosios kalbos sistemos gali pateikti nenatūralias išraiškas, pavyzdžiui, mašininiame
vertime, o minimų junginių procentinė dalis kalboje yra didelė (~41% daugelyje kalbų) ir tai šią
problemą daro dar labiau aktualia. Taigi, šiame darbe yra gvildenama automatinio pastoviųjų
junginių atpažinimo problema, ieškomi žinomi sprendimo būdai. Išsikeltas darbo tikslas:
išanalizuoti metodus ir įrankius, naudojamus automatiniam pastoviųjų junginių atpažinimui
atlikti. Šio tiriamojo darbo metu išnagrinėta ir aprašyta pastoviųjų junginių sąvoka, jų
klasifikacija. Atlikus literatūros analizę išsiaiškinta, kad minimi junginiai negali būti apibrėžti
vienareikšmiškai ir yra sudėtinga juos atpažinti automatiškai. Taip pat aprašytos 3 metodų
grupės, kurios taikomos pastoviųjų junginių atpažinime, ir išsiaiškinta, kad plačiausiai naudojami
hibridiniai metodai, apimantys tiek lingvistines, tiek ir statistines pastoviųjų junginių vartojimo
ypatybes. Be to, palyginti du įrankiai („MWEtoolkit“ ir „Text-NSP“), skirti jų analizei bei
atpažinimui, kurie buvo ypač dažnai aptinkami literatūroje. Sukūrus internetinį robotą, surinktas
apie 72 mln. žodžių tekstynas, kurį dar papildomai apdorojus ketinama naudoti eksperimentų
atlikimui kitame tiriamajame darbe.
71
9.5 Antro tiriamojo darbo santrauka
Autorius Ieva Bumbulienė
Pavadinimas N-gramų sąrašo sudarymas iš surinkto
lietuviško tekstyno ir eksperimentai su
statistiniais įverčiais pastoviųjų junginių
atpažinimui
Vadovas Prof. dr. Tomas Krilavičius
Darbas pristatytas Vytauto Didžiojo Universitetas,
Informatikos fakultetas, Kaunas
(2017-06-08)
Puslapių skaičius 38
N-gramos yra taikomos sprendžiant įvairias natūraliosios kalbos apdorojimo srities
problemas, o tarp jų ir siekiant atpažinti pastoviuosius junginius, bei gali būti reikalingos taikant
statistinius atpažinimo metodus. Šio darbo metu užsibrėžta sugeneruoti n-gramų sąrašą iš
surinkto lietuviško tekstyno ir atlikti eksperimentus su statistiniais įverčiais, kurie yra taikomi
pastoviųjų junginių atpažinimui. Išanalizavus, kokie simboliai sudaro iš „delfi.lt“ surinktą
tekstyną, sukurtos n-gramų generavimo taisyklės, kuriomis remiantis sugeneruotos n-gramos, kai
n=1,2,3,4. Po to atliktas n-gramų dažnių skaičiavimas ir sudarytos dažnių lentelės. Panaudojant
jas kiekvienai bigramai apskaičiuoti septyni įverčiai: abipusė informacija (PMI), logaritminio
tikėtinumo santykis (LLR), Dice ir logaritmuotas Dice koeficientai, T-testas, Chi-kvadratas ir
Phi-kvadratas. Išanalizuoti įverčių reikšmių pasiskirstymai ir rasti geriausi įverčių verčių
intervalai panaudojant F-Score matą kaip gerumo kriterijų. Galiausiai išbandytas „MWEtoolkit“
įrankis n-gramų generavimui ir įverčių skaičiavimui. Toliau ketinama tęsti eksperimentus su
bigramomis, trigramomis ir tetragramomis bei išbandyti mašininio mokymo metodus.
72
9.6 Trečio tiriamojo darbo santrauka
Autorius Ieva Bumbulienė
Pavadinimas Mašininio mokymo metodų taikymas
lietuviškų pastoviųjų junginių atpažinimui
Vadovas Prof. dr. Tomas Krilavičius
Darbas pristatytas Vytauto Didžiojo Universitetas,
Informatikos fakultetas, Kaunas
(2017-12-20)
Puslapių skaičius 30
Automatinis pastoviųjų junginių atpažinimas – tai natūraliosios kalbos apdorojimo srities
uždavinys, kuris yra sprendžiamas taikant mašininio mokymo metodus. Šio darbo metu
išanalizuoti literatūros šaltiniai, aprašantys mašininio mokymo metodų taikymą sprendžiamo
uždavinio kontekste ir atlikti eksperimentai su trimis klasifikatoriais – Naive Bayes, Random
Forest ir SVM. Klasifikatorių apmokymui naudotos statistinės dvižodžių pastoviųjų ir
nepastoviųjų junginių savybės – tai 18 skirtingų statistinių įverčių ir lingvistinės savybės –
morfologinė informacija. Taip pat eksperimentai atlikti su 4 skirtingais kategorinės informacijos
kodavimo būdais ir klasių subalansavimo metodais (SMOTE kartu su ENN ir SMOTE su
Tomek). Geriausias rezultatas (F1 įverčio reikšmė 64%) eksperimentų metu pasiektas taikant
požymių maišą kategoriniams požymiams, duomenų mastelį transformuojant pagal kvantilius,
naudojant Naive Bayes klasifikatorių ir nepastoviuoju junginiu vadinant tokį, kurio tikimybė būti
nepastoviuoju yra 1. Po to suprojektuota ir realizuota duomenų bazė, kuri skirta pastoviųjų
junginių saugojimui. Ketinama toliau eksperimentuoti taikant mašininio mokymo metodus, ypač
gilųjį mokymą.
9.7 Publikacijos ir pranešimai 1. Bumbulienė I., Mandravickaitė J., Boizou L., Krilavičius T. 2017: An overview
of Lithuanian Internet media n-gram corpus. SYSTEM 2017: Symposium for Young Scientists
in Technology, Engineering and Mathematics. CEUR Workshop Proceedings, 24–28, http://ceur-
ws.org/Vol-1853/p05.pdf.
2. Savary, Agata; Ramisch, Carlos; Cordeiro, Silvio Ricardo; et al., 2017, Annotated
corpora and tools of the PARSEME Shared Task on Automatic Identification of Verbal
73
Multiword Expressions (edition 1.0), LINDAT/CLARIN digital library at the Institute of Formal
and Applied Linguistics (ÚFAL), Faculty of Mathematics and Physics, Charles University,
http://hdl.handle.net/11372/LRT-2282. (Lietuvių kalbai - Kovalevskaitė J., Rimkutė E., Boizou
L., Bielinskienė A., ir Bumbulienė I.).
3. Bumbulienė I., Mandravickaitė J., Krilavičius T. 2017: Application of Machine
Learning for MWE Identification. The 9 th international workshop Data Analysis Methods for
Software Systems. Druskininkai, 2017 m. gruodžio 1 d.
4. Rimkutė E., Bielinskienė A., Boizou L., Bumbulienė I., Kovalevskaitė J.,
Krilavičius T., Mandravickaitė J., Vilkaitė L. 2017: Duomenų bazė lietuvių kalbos pastoviesiems
junginiams. 24-oji tarptautinė Jono Jablonskio konferencija Skaitmeniniai kalbos ištekliai, jų
plėtros kryptys ir panaudos galimybės. Lietuvių kalbos instituto Bendrinės kalbos tyrimų centras
ir Vilniaus universiteto Taikomosios kalbotyros instituto Lietuvių kalbos katedra. Vilnius, 2017
m. rugsėjo 29 d. http://mwe.lt/wp-content/uploads/2017/10/Jablonskio_konferencijos_tezes.pdf.
5. Bielinskienė A., Boizou L., Bumbulienė I., Kovalevskaitė J., Krilavičius T.,
Mandravickaitė J., Rimkutė E., Vilkaitė L. 2017: Lietuvių kalbos pastoviųjų junginių nustatymo
metodika ir aprašymo principai. LITAKOS asociacijos seminaras. Vilnius, Vilniaus universitetas,
2017 m. rugsėjo 8 d. http://mwe.lt/wp-content/uploads/2017/09/PASTOVU-projekto-
pristatymas_2017-09-08.pdf.
6. Rimkutė E., Kovalevskaitė J., Bielinskienė A., Boizou L., Krilavičius T.,
Mandravickaitė J., Bumbulienė I., Vilkaitė L. 2017: Lietuvių kalbos terminų ir kolokacijų
automatinis nustatymas. 2-oji tarptautinė mokslinė terminologijos konferencija Moksliniai,
administraciniai ir edukaciniai terminologijos lygmenys. Vilnius, Lietuvių kalbos institutas,
2017 m. birželio 1 d. http://mwe.lt/wp-
content/uploads/2017/09/TEZES_Moksliniai_administraciniai_ir_edukaciniai_terminologijos_ly
gmenys_2017.pdf.