Microsoft Word - Copy of Magistrinis.doc

Panašūs dokumentai
VLKK

10 Pratybos Oleg Lukašonok 1

LIETUVIŲ KALBOS IR LITERATŪROS MOKYKLINIO BRANDOS EGZAMINO UŽDUOTIES VERTINIMO INSTRUKCIJA

Slide 1

PowerPoint Presentation

Java esminės klasės, 1 dalis Išimtys, Įvestis/išvestis

4 skyrius Algoritmai grafuose 4.1. Grafų teorijos uždaviniai Grafai Tegul turime viršūnių aibę V = { v 1,v 2,...,v N } (angl. vertex) ir briaun

P. Kasparaitis. Praktinė informatika. Skriptų vykdymas ir duomenų valdymas Skriptų vykdymas ir duomenų valdymas Įvadas Skripto failas tai M

LIETUVOS ŽEMĖS ŪKIO UNIVERSITETAS

VERSLO IR VADYBOS TECHNOLOGIJŲ PROGRAMA

Slide 1

Slide 1

Projektas „Europos kreditų perkėlimo ir kaupimo sistemos (ECTS) nacionalinės koncepcijos parengimas: kreditų harmonizavimas ir mokymosi pasiekimais gr

PowerPoint Presentation

Privalomai pasirenkamas istorijos modulis istorija aplink mus I dalis _suredaguotas_

Algoritmai ir duomenų struktūros (ADS) 2 paskaita Saulius Ragaišis, VU MIF

UGDYMO PLĖTOTĖS CENTRO DIREKTORIUS ĮSAKYMAS DĖL UGDYMO PLĖTOTĖS CENTRO DIREKTORIAUS 2016 M. VASARIO 29 D. ĮSAKYMO NR. VK-24 DĖL BENDROJO UGDYMO DALYKŲ

LIETUVOS JAUNŲJŲ MATEMATIKŲ MOKYKLA 7. PAPRASČIAUSIOS DIFERENCIALINĖS LYGTYS ( ) Teorinę medžiagą parengė ir septintąją užduotį sudarė prof. d

Programų sistemų inžinerija Saulius Ragaišis, VU MIF

PRIEDAI 199 G priedas. Skirtingų kartų elektroninių vartotojų portretai G.1 lentelė. Kūkikių bumo kartos elektroninio vartotojo portretas (sudaryta au

PowerPoint Presentation

VADOVĖLIO VERTINIMO KRITERIJŲ APRAŠAI 1. MEDŽIAGOS TINKAMUMAS VERTYBINĖMS NUOSTATOMS UGDYTI(S) Vertinimo kriterijai 1.1. Tekstinė ir vaizdinė medžiaga

EUROPOS KOMISIJA Briuselis, C(2017) 4679 final KOMISIJOS ĮGYVENDINIMO SPRENDIMAS (ES) / dėl bendros sistemos techninių standa

PowerPoint Presentation

(Microsoft Word - Pasiruo\360imas EE 10 KD-1)

Layout 1

Dažniausios IT VBE klaidos

DĖL APLINKOS IR SVEIKATOS MOKSLO KOMITETO ĮSTEIGIMO

Projektas

* # * # # 1 TIESĖS IR PLOKŠTUMOS 1 1 Tiesės ir plokštumos 1.1 Lygtys ir taškų aibės Sferos lygtis Tarkime, kad erdvėje apibrėžta Dekarto stačiak

A. Merkys ASOCIACIJA LANGAS Į ATEITĮ, 2015 m. Elektroninis mokymasis Tikriausiai šiais laikais daugelis esate girdėję apie elektroninį bei nuotolinį m

PowerPoint Presentation

VIEŠO NAUDOJIMO Aplinkos oro teršalų koncentracijos tyrimų, atliktų 2017 m. rugpjūčio d. Šiltnamių g. 23 Vilniaus mieste, naudojant mobiliąją la

Projektas

Viešoji konsultacija dėl dezinformacijos apie Lietuvą sklaidos mažinimo užsienyje 2019 m. kovo mėn., Vilnius KONTEKSTAS KONSULTACIJOS TIKSLAS VIEŠOSIO

PATVIRTINTA Valstybinės kainų ir energetikos kontrolės komisijos pirmininko 2017 m. d. įsakymu Nr. O1- VALSTYBINĖS KAINŲ IR ENERGETIKOS KONTROLĖS KOMI

PowerPoint Presentation

CPO veiklos rezultatų ir finansinės naudos VALSTYBEI vertinimo ATASKAITA

Algoritmai ir duomenų struktūros (ADS) 7 paskaita Saulius Ragaišis, VU MIF

„This research is funded by the European Social Fund under the Global Grant masure“

KPMG Screen 3:4 (2007 v4.0)

DB sukūrimas ir užpildymas duomenimis

Algoritmø analizës specialieji skyriai

9 paskaita 9.1 Erdvės su skaliarine daugyba Šiame skyriuje nagrinėsime abstrakčias tiesines erdves, kurioms apibrėžta skaliarinė daugyba. Jos sudaro l

Printing triistr.wxmx

PATVIRTINTA

Titel der Präsentation

K9 WebProtection (toliau K9) programa yra nemokama asmeniniam naudojimui. Programa suderinama su Windows Vista, Windows 7, Windows 10 ir Mac operacinė

LIETUVOS ŽEMĖS ŪKIO UNIVERSITETAS

Projektas

File Transfer programinės įrangos naudotojo instrukcija

Logines funkcijos termu generavimo algoritmas pagristas funkciniu modeliu

VALSTYBINIO SOCIALINIO DRAUDIMO FONDO VALDYBOS

Microsoft Word - 8 Laboratorinis darbas.doc

SD_wp2_Guide for teachers_lt_final

VABALNINKO BALIO SRUOGOS GIMNAZIJA Vabalninko Balio Sruogos gimnazija K.Šakenio g. 12, Vabalninkas, Biržų raj. Tel. (8-450)

ES F ben dri Projekto kodas (Įrašoma automatiškai) 1 PROJEKTO SFMIS DUOMENŲ FORMA FORMAI PRITARTA m. Europos Sąjungos struktūrinės paramos a

Title

Regioniniu s vietimo valdymo informaciniu sistemu ple tra ir s vietimo politikos analize s specialistu kompetencijos tobulinimas (II etapas) Bendradar

VILNIAUS R. PABERŽĖS ŠV. STANISLAVO KOSTKOS GIMNAZIJOS 2, 4, 6 IR 8 KLASĖS MOKINIŲ MOKYMOSI PASIEKIMŲ VERTINIMO PANAUDOJANT DIAGNOSTINIUS IR STANDARTI

Microsoft Word - 15_paskaita.doc

Microsoft Word - TEATRO IR KINO PEDAGOGIKA.docx

LMTA prenumeruojamos duomenų bazės

Urbutis, Vincas Žodžių darybos teorija Turinys Pratarmė antrajam leidimui 5 Pratarmė 6 Literatūros sutrumpinimai 8 I. Diachroninė ir sinchroninė žodži

PATVIRTINTA Mykolo Romerio universiteto Rektoriaus 2014 m. birželio 2 d. įsakymu Nr.1I-291 MYKOLO ROMERIO UNIVERSITETO LAIKINOSIOS STUDIJŲ REZULTATŲ Į

Lietuvos mobiliojo ryšio operatorių 30Mbit/s zonų skaičiavimo metodika

VILNIAUS KOLEGIJA AGROTECHNOLOGIJ FAKULTETAS CHEMIJOS KATEDRA Tyrimas: STUDENTAI APIE KURSINĮ DARBĄ Dalykas: LABORATORIJ VEIKLA Tyrimą atliko lektorė:

NACIONALINIS KIBERNETINIO SAUGUMO CENTRAS Tel El. p. NACIONALINIS KIBERNETINIO SAUGUMO CENTRAS PRIE KRA

GPAIS vartotojo vadovas savivaldybėms GPAIS VARTOTOJO VADOVAS SAVIVALDYBIŲ PILDOMAI INFORMACIJAI GPAIS TURINYS 1. BENDRI DARBO SU GPAIS PRINCIPAI... 2

RR-GSM_IM_LT_110125

NLF

Suvestinė redakcija nuo Įsakymas paskelbtas: TAR , i. k LIETUVOS RESPUBLIKOS ŽEMĖS ŪKIO MINISTRAS ĮSAKYMAS DĖL LIETUV

INSTITUCIJOS, VYKDANČIOS MOKYTOJŲ IR ŠVIETIMO PAGALBĄ TEIKIANČIŲ SPECIALISTŲ KVALIFIKACIJOS TOBULINIMĄ, 2013 METŲ VEIKLOS ĮSIVERTINIMO IŠVADOS 1. Inst

PowerPoint Presentation

Microsoft Word - Palmolive_Drogas_full_rules_April_2019.doc

Administravimo vadovas SAFTit Pro v3

Projektas

TIESINĖ ALGEBRA Matricos ir determinantai Matricos. Transponuota matrica. Nulinė ir vienetinė matrica. Kvadratinė matrica. Antrosios ir trečiosios eil

LIETUVOS RESPUBLIKOS FINANSŲ MINISTRAS ĮSAKYMAS DĖL FINANSŲ MINISTRO 2014 M. GRUODŽIO 30 D. ĮSAKYMO NR. 1K-499 DĖL METŲ EUROPOS SĄJUNGOS FON

NACIONALINIS KIBERNETINIO SAUGUMO CENTRAS Tel El. p. NACIONALINIS KIBERNETINIO SAUGUMO CENTRAS PRIE KRAŠTO APSA

(Microsoft Word - Versta i\360 angli\360ko vertimo i\360 dan\370 k.docx)

DATA: TURINYS ĮVADAS 5 Teksto skaitymo būdai 5 LIETUVIŲ KALBA UŽRAŠAI I SKYRIUS. KALBA KAIP SOCIALINIS KULTŪRINIS REIŠKINYS 8 1. Vaizdinės ir tekstinė

EUROPOS KOMISIJA Briuselis, C(2012) 2384 final KOMISIJOS ĮGYVENDINIMO SPRENDIMAS kuriuo priimamas valstybių narių teikiamų Europ

Jūsų duomenys, jūsų teisės. Ericsson duomenų tvarkytojo įmonei privalomos duomenų apsaugos taisyklės Įžanga Ericsson veikla pasižymi sąžiningumu, skai

Muzikos duomenų bazės NAXOS Music Library naudojimo vadovas Turinys Kas yra NAXOS Music Library... 2 Kaip pradėti naudotis... 3 Kaip atlikti paiešką..

Priedas

AB FREDA

ASMENS DUOMENŲ APSAUGA I. BENDROSIOS NUOSTATOS 1. Taisyklės reglamentuoja Bendrovės ir jos darbuotojų veiksmus, tvarkant Asmens duomenis, naudojant Be

Mokinių kūrybinių darbų vertinimo kriterijai, vertinimo aptarimas

PowerPoint Presentation

Microsoft Word - Attachment_5.Magistro_darbu_reikalavimai.doc

MatricosDetermTiesLS.dvi

PowerPoint Presentation

PATVIRTINTA Lietuvos statistikos departamento generalinio direktoriaus ir Muitinės departamento prie Lietuvos Respublikos finansų ministerijos general

PS_riba_tolydumas.dvi

Verslui skirta Facebook paskyra pilna sudėtingų terminų bei funkcijų Facebook Pixel, conversion rate ir taip toliau. Tačiau darbas su klientais social

INTERVIU CIKLAS DĖL PRAMONĖS 4.0 EKOSISTEMOS VYSTYMO PRIEMONIŲ KAS DALYVAVO? 20 6 apdirbamosios gamybos įmonių (t.y. 25 % Panevėžio regiono apdirbamos

LT PRIEDAS Teikiant duomenis EURES veiklos vertinimo sistemai naudotinų rodiklių sąrašas Elektroninė šio sąrašo versija ir, jei jis bus iš dalies keič

Įžanga apie privatumą Dalyviai tyrinės tai, kaip jie patys suvokia privatumą ir kokį poveikį jis daro jų gyvenimams. Dalyviai apžvelgs informacijos, k

KTU BIBLIOTEKOS PASLAUGOS

Transkriptas:

VYTAUTO DIDŽIOJO UNIVERSITETAS INFORMATIKOS FAKULTETAS TAIKOMOSIOS INFORMATIKOS KATEDRA Karolis Monkus ŽODŽIO PRASMĖS IDENTIFIKAVIMO ALGORITMAS NAUDOJANT TEKSTYNĄ Magistro baigiamasis darbas Verslo informatikos studijų programa, valstybinis kodas 62609P102 Informatikos studijų kryptis Vadovas (-ė) (Moksl. laipsnis, vardas, pavardė) (Parašas) (Data) Apginta doc.dr. Kęstutis Šidlauskas (Fakulteto dekanas) (Parašas) (Data) Kaunas, 2010

TURINYS SANTRUMPŲ IR TERMINŲ ŽODYNAS...3 SANTRAUKA LIETUVIŲ KALBA...4 SANTRAUKA ANGLŲ KALBA...5 I. ĮVADAS...6 II. PROBLEMOS ANALIZĖ...8 2.1 Natūralios kalbos apdorojimas...8 2.2 Žodžių daugiaprasmiškumas...10 2.2.1 Žniniomis paremtas žodžio prasmės nustatymas...11 2.2.2 Neprižiūrimas žodžio prasmės nustatymas...13 2.2.3 Prižiūrimas žodžio prasmės nustatymas...15 III. PROJEKTAVIMAS...18 3.1 Metodo pasirinkimas...18 3.2 Reikšmingų žodžių vektoriaus algoritmas...19 3.2.1 Kaimyninių žodžių radimas...21 3.2.2 Ryšių matricos formavimas...21 3.2.3 Sakinių atvaizdavimas vektoriais...23 3.2.4 Vektorių klasterizavimas...24 3.2.5 Klasterių panaudojimas reikšmės identifikavimui naujuose sakiniuose...28 3.3 Realizavimo įrankiai...29 IV. TEORINIAI IR EKSPERIMENTINIAI TYRIMAI...32 4.1 Eksperimento struktūra...32 4.2 Tekstyno ir klasterizavimo algoritmų įtaka...33 4.3 Įvairių algoritmo parametrų įtaka...37 4.3.1 Eksperimentai su kaimyniniais žodž.ais...37 4.3.2 Eksperimentai su žodžių dažnumais...45 V. IŠVADOS...49 VI. LITERATŪROS SĄRAŠAS...50 PRIEDAS NR 1...51 2

Santrumpų ir terminų žodynas XML - Extensible Markup Language išplėsta žymių kalba WSD Word Sense Disambiguation žodžio daugiaprasmiškumo pašalinimas NLTK Natural Language ToolKit natūralios kalbos apdorojimo įrankis NLP Natural Language Processing natūralios kalbos apdorojimas TEI - Text Encoding Initiative standartas lingvistinių tekstų atvaizdavimui skaitmenine forma SGML - Standard Generalized Markup Language - standartinė teksto žymėjimo kalba MRD Machine Readable Format mašininio skaitymo formatas KOLOKACIJA du ar daugiau žodžių, dažnai vartojamų kartu BIGRAMA vienas paskui kitą einantys dviejų žodžių junginiai 3

Santrauka Magistro darbo autorius: Magistro darbo pavadinimas: Vadovas: Darbas pristatytas: Karolis Monkus Žodžio prasmės identifikavimo algoritmas naudojant tekstyną Dr. Daiva Vitkutė - Adžgauskienė Vytauto Didžiojo Universitetas, Informatikos fakultetas, Kaunas, 2010 gegužė Puslapių skaičius: 50 Lentelių skaičius: 4 Paveikslų skaičius: 40 Priedų skaičius: 2 Šiame darbe nagrinėjamas žodžio daugiaprasmiškumo pašalinimo elektroniniame tekste modelis bei jo algoritmas. Problemos analizės skyriuje apžvelgiami pagrindiniai šios problemos sprendimo metodai: žodynais paremti, žymėtais tekstynais paremti bei nežymėtais tekstynais paremti. Dėl savo pritaikomumo bei patogumo naudoti elektroninius, nesužymėtus tekstus, tolesniam darbui pasirenkamas nežymėtų tekstynų metodas. Projektavimo skyriuje remiantis atlikta teorine analize ir gautais jos rezultatais, projektuojamas reikšmingų žodžių vektoriaus algoritmas ir jam naudojamos funkcijos. Sekančiame skyriuje atliekama tinkamiausių resursų analizė. Teorinių bei eksperimentinių tyrimų skyriuje bandymams pasirenkami tekstynai bei skirtingi klasterizavimo algoritmai. Testuojamas reikšmingų žodžių vektoriaus algoritmas ir žiūrima kokie programoje naudojami parametrai leidžia pagerinti žodžio prasmės identifikavimo tikslumą. Paskutiniame skyriuje suformuojamos galutinės išvados, apibrėžiančios metodo pasirinkimą, algoritmo veikimo tikslumą bei skirtingų parametrų įtaką. Apibendrinama atlikto darbo esmė. 4

Abstract Author of Master Thesis: Full title of Master Thesis: Supervisor: Presented at: Karolis Monkus Word sense disambiguation using corpora Dr. Daiva Vitkutė - Adžgauskienė Vytautas Magnus University, Faculty of Informatics, Kaunas, May 2010 Number of pages: 50 Number of tables: 4 Number of pictures: 40 Number of appendices: 2 In this paper model and algorithm of word sense disambiguation is discussed. In problem analysis chapter there are outlined some of most important methods for solving this problem: knowledge-based disambiguation, supervised disambiguation and unsupervised disambiguation. Because of it s adaptability and ease of use of electronic, unannotated texts, unsupervised disambiguation method is selected for further work. In planning chapter referring to previously made theoretical analysis and it s results, feature vector algorithm and all of it s functions are designed. Next chapter presents the analysis of the most useful resources for algorithm. For the theoric and experimental research chapter different kind of corpora and clustering algorithms are selected. Experiments are being used to test word sense disambiguation accuracy for the feature vector algorithm. In the last chapter some final conclusions are formulated, defining the method of choice, functioning of various parameters and accuracy of algorithm. 5

I. ĮVADAS Šiandieniniame sparčiai judančiame ir kasdien besikeičiančiame informacijos pasaulyje, tekstas tampa viena iš pagrindinių priemonių informacija perduoti, priimti bei transliuoti. Kaip pavyzdį galima pateikti kasdieninį tekstinės informacijos sklidimą susirašinėjant elektroninio pašto laiškais, trumposiomis žinutėmis mobiliajame telefone, taip pat šios informacijos pateikimas naujienų tinklapiuose, sparčiai plintančiuose asmeninių dienoraščių puslapiuose (angl. Web Blog) bei kitose skaitmeninėse aplinkose. Žmonės tarpusavyje kasdien bendraudami taip pat keičiasi tekstine informacija, žiniomis, tačiau skirtingai nei kompiuteriams ši kasdieninė kalba, perduodamo teksto prasmė mums dažniausiai yra suprantama. Žmonėms suprasti ir atpažinti informaciją yra daug paprasčiau nes jie turi socialinės, fizinės, emocinės bei psichologinės tipinio kasdieninio gyvenimo patirties. Norint, kad tokį informacijos sklidimą bei dalinimąsi bent šiek tiek suprastų ir galėtų interpretuoti kompiuterinės mašinos, reikia kurti specialias sistemas bei programinę įrangą, kuri turėtų turtingą semantinių žinių bazę bei leistų atpažinti įvairią tekstinę informaciją. Kol kas tokių natūralios kalbos apdorojimo sistemų nėra labai daug sukurta, tačiau pastebimas vis didesnis susidomėjimas tiek teorine, tiek praktine šios srities dalimi. Gana nemaža dalis mokslininkų, tyrėjų bei inžinierių visame pasaulyje dirba šioje srityje ir pagal tai galima spręsti koks svarbus ir reikalingas šiandienai šių idėjų pritaikymas praktikoje. Taikymo pavyzdžiai galėtų būti: įvairios mašininio vertimo sistemos, galinčios pasirinkti skirtingus vertimo kelius; informacijos sužymėjimas semantiniam Web tinklui ir paruošimas semantinei paieškai; verslo informacijos analizė, kuriant įvairią programinę įrangą bei daugelis kitų sričių. Jei kompiuterinės mašinos pradėtų suprasti žmonių kasdieninę kalbą, taip kaip dabar ją supranta ir įsisavina žmonės, informacijos gavimas ir perdavimas taptų daug lengvesnis, paprastesnis ne tik žmonių pasaulyje, bet ir elektroninėje erdvėje. Darbo tikslas Šio baigiamojo darbo tikslas yra išanalizuoti ir pasiūlyti sprendimą automatiniam žodžio prasmės atpažinimui naudojant tekstyną. 6

Uždaviniai Remiantis literatūros analize pasirinkti ir toliau analizuoti tinkamiausią metodą Išskirti problemas atsirandančias taikant žodžio daugiaprasmiškumo nustatymo algoritmą ir pasiūlyti tinkamiausią sprendimo variantą Algoritmo realizavimui atlikti išsamią resursų analizę bei pasirinkti tinkamus programavimo įrankius Eksperimento būdu ištirti įvairių parametrų įtaką pasirinktam algoritmui 7

II. PROBLEMOS ANALIZĖ Šiame skyriuje remiantis įvairiais literatūros šaltiniais pristatoma darbe nagrinėjama žodžio prasmės identifikavimo problema, vyraujantys požiūriai bei įvairūs sprendimo metodai. 2.1. Natūralios kalbos apdorojimas Nuo pat seniausių laikų kalba žmonių gyvenime užimą didelį vaidmenį. Jos pagalba mes kasdien galime kalbėtis vieni su kitais, tarti įvairiausius garsus. Kalbos dėka mokame išreikšti save, galime suprasti vienas kitą, priimti įvairius sprendimus. Tačiau gyvenant XXI amžiuje, kai neįsivaizduojame savo darbo, mokslų ar net laisvalaikio praleidimo be kompiuterių, automatiškai norisi, kad bendravimas su šiais įrenginiais taptų bent šiek tiek panašesnis į mums taip įprastą natūralią kalbą. Tarp įvairiausių kompiuterinių mokslų sričių egzistuoja ir tokia, kuri gali padėti spręsti šias problemas. Natūralios kalbos apdorojimas (angl. Natural language processing arba NLP) yra bendra lingvistikos ir informatikos sritis, tirianti informacinių technologijų ir kompiuterinių programų pritaikymo visoms natūralios kalbos naudojimo sritims galimybes. Sheffield o universiteto natūralios kalbos apdorojimo tyrėjų grupė pateikia tokį NLP apibrėžimą: NLP yra ir moderni šiuolaikinė kompiuterinė technologija ir kartu tai yra taikytinas metodas tyrimų ir vertinimų atlikimui apie pačią žmonių kalbą [1]. Paprastai sakant NLP leidžia kompiuteriams laisvai apdoroti tiek rašytinę, tiek šnekamąją kalbą įvairiems naudingiems praktiniams tikslams, kaip: Kurti automatinius tekstus Gauti atsakymus į klausimus iš žiniatinklyje pateiktų tekstų bazių Automatiškai versti įvairias kalbas Kalbėtis su kompiuterinėmis mašinomis natūralia kalba ir gauti atsakymus į norimus klausimus Automatiškai taisyti tekstus Didelės apimties tekstinių duomenų indeksavimui ir paieškai Automatiniam tekstų atpažinimui (pvz: žmogaus įvestame tekste stengiamasi sugrupuoti kuriose teksto dalyse kalbama apie vardą žmogaus, kur apie vietovardį, kur įmonės ar organizacijos pavadinimą ir t.t.) 8

Vis didesnį NLP populiarėjimą rodo ir tai, jog informacinių technologijų rinkoje atsiranda vienas už kitą naujesni produktai, naudojantys natūralios kalbos apdorojimo technologijas. Telefonai, delniniai kompiuteriai jau palaiko nuspėjamo teksto ir žmogaus rašysenos atpažinimo funkcijas. Daugelis žiniatinklio paieškos sistemų leidžia pasiekti reikalingą informaciją net ir pateikus nerišlią, nepilnai suformuotą tekstinę užklausą. Automatinės mašininio vertimo sistemos mums lengvai leidžia versti didelius tekstinius dokumentus iš vienos kalbos į kitą (pvz: VDU internetinė anglų lietuvių kalbos vertimo priemonė http://vertimas.vdu.lt, Google internetinė įvairių pasaulio kalbų vertimo priemonė http://translate.google.com). Norint atlikti įvairius natūralios kalbos tekstų apdorojimo ekperimentus, reikia turėti tam tikrą tekstinės informacijos duomenų bazę. Pagrindiniai resursai naudojami kompiuterinės kalbos ir šnekos apdorojimo uždaviniams spręsti yra šie: ü Tekstynai ir garsynai (elektroninis tekstų ir garsų rinkinys, sudarytas taip, kad kuo geriau atspindėtų kalbą ar jos atmainą) ü Kodavimo schemos (anotuoti tekstynai su įterptomis žymėmis tag ais) ü Žodynai ir ontologijos (ontologijos tai tam tikros srities sąvokų visumos specifikavimas) ü Įvairūs standartai (Text Encoding Initiative; Standard Generalized Markup Language) Natūralios kalbos apdorojimo procesai yra labai svarbūs bendrame kompiuterinių mokslų kontekste. Kartais šie procesai laikomi arba pristatomi kaip dirbtinio intelekto sub-kategorija. Jei pabandytume tai atvaizduoti, NLP užimtų štai tokią vietą: Kompiuteriai Duomenų bazės Dirbtinis intelektas \(AI Artificial Intelligence) Algoritmai Tinklai Robotika Natūralios kalbos apdorojimas (NLP) Paieška Informacijos gavyba Mašininis vertimas Kalbos analizė Semantika Gramatinė analizė 1 pav. NLP kompiuterių moksle 9

Kiekviena vis naujesnė atsirandanti kompiuterinė technologija anksčiau ar vėliau susiduria su tam tikromis sprendimų problemomis. Šioje vietoje ne išimtis yra ir NLP. Keletas pagrindinių problemų dėl kurių natūralios kalbos apdorojimas tampa sudėtingu ir nemažai darbo pastangų reikalaujančiu procesu: 1) Šnekos atpažinimas daugelyje kalbų tariami žodžiai dažnai nėra atskiriami vienas nuo kito, todėl tokio signalo atpažinimas kompiuterinėms mašinoms tampa sudėtingu procesu. Taip pat natūralioje kalboje retai pasitaiko ilgesnių pauzių. 2) Sintaksės daugiaprasmiškumas natūralios kalbos gramatika nėra vienareikšmiška. Dažnai reikia naudoti skirtingus nagrinėjimo būdus duotam sakiniui. O tinkamo būdo pasirinkimas reikalauja semantinės bei susijusios kontekstinės informacijos. 3) Žodžių daugiaprasmiškumas nemaža dalis žodžių gali būti daugiaprasmiški, t.y. turėti daugiau negu vieną galimą reikšmę. Reikia pasirinkti geriausią tam tikro žodžio prasmės variantą, kuris būtų tinkamiausias naudojamame kontekste. Plačiau apie šiam darbui pasirinktą žodžių daugiaprasmiškumo problemą ir galimus jos sprendimo būdus bei metodus bus kalbama sekančiame skyrelyje. 2.2. Žodžių daugiaprasmiškumas Žodžių daugiaprasmiškumas (angl. Word Sense Disambiguation) yra viena iš daugelio NLP sprendžiamų tyrimų sričių. Dar 1949 metais pažymėta kaip viena iš mašininio vertimo problemų: žodis gali būti išverstas į kitą kalbą teisingai tik tada, kai yra žinoma tikroji specifinė jo reikšmė [2]. Kaip minėta anksčiau, žodžių daugiaprasmiškumo pašalinimo uždaviniai sprendžia problemą susijusią su žodžio prasmės parinkimu iš keleto galimų variantų. Dažnai žmonėms sakinys, kuriame galima būtų rasti daugiaprasmiškų žodžių, yra lengvai suprantamas bendrame kontekste, tačiau kompiuteriams tai sukelia daug problemų. Žodžių daugiaprasmiškumo problemos sprendimai yra labai reikalingi kalbant apie įvairių paieškos sistemų naudingumo pagerinimą bei kitas kompiuterinės lingvistikos tyrimo sritis, kaip tekstų diskursas, nuoseklumas ir t.t. Žodžių daugiaprasmiškumui pašalinti yra naudojami trys pagrindiniai metodai [3]: 10

Žiniomis (knowledge - based) paremtas prasmės nustatymas (naudoja esamus žodynus, tezaurus) Neprižiūrimas (unsupervised) žodžio prasmės nustatymas (naudoja nežymėtus tekstynus) Prižiūrimas (supervised) žodžio prasmės nustatymas (naudoja žymėtus tekstynus) Kiekvienas iš šių metodų gali būti naudojamas tik turint atitinkamus resursus. Pavyzdžiui: žiniomis paremtam žodžio prasmės nustatymui būtinas didelės apimties elektroninis žodynas; prižiūrimam žodžio prasmės nustatymui reikalingi žymėti tekstynai, kurių šiuo metu labai trūksta, nes tekstų žymėjimas yra gana ilgas ir sudėtingas procesas. Platesnis šių metodų sprendimų ir naudojamų algoritmų tyrimas nagrinėjamas sekančiuose skyreliuose. 2.2.1. Žiniomis paremtas žodžio prasmės nustatymas Naudojant žiniomis paremtą metodą, žodžių daugiaprasmiškumui nustatyti yra remiamasi pagrinde vien sukurtais ir naudojamais žodynais, neanotuotais tekstais ar tekstynais. Daugelis šiuolaikinių žodynų, tokių kaip Oxfordo, Collins o bei WordNet žodynai yra pritaikyti mašininio skaitymo formatui (angl. Machine Readable format arba MRD). Mašininio skaitymo žodynai yra naudingi tuom, jog juose apie kiekvieną esantį žodį yra pateikiamos galimos to žodžio reikšmės, kiekvienos iš jų apibrėžimas bei tipiniai panaudojimo sakiniuose pavyzdžiai. Vienas iš siūlomų sprendimų algoritmų, paremtų mašinio skaitymo žodynais yra Lesk o algoritmas. Jis leidžia identifikuoti žodžių prasmes naudojamuose tekstuose, lyginant panašumus tarp tų žodžių apibrėžimų. Pagrindiniai žingsniai realizuojant šį algoritmą yra šie [4]: 1) Iš žodyno išrenkamos visų daugiaprasmiškų žodžių reikšmės; 2) Nustatomi tų žodžių prasmių apibrėžimai; 3) Pasirenkami tie variantai, kurie toms žodžių reikšmėms tinka labiausiai. Pavyzdys: imamas žodžių junginys Pine cone. Apsibrėžiamos visos galimos ir taikytinos šių žodžių reikšmės. Jas lyginant tarpusavyje nustatomas tinkamiausias variantas, kuris leistų teigti, kad būtent tos šių žodžių reikšmės labiausiai tinka bendrame kontekste. Jeigu žodžių apibrėžimai visiškai tarpusavyje nesiderina, jų reikšmei priskiriamas nulis. Reikšmėms, kurios labiau sutampa skiriamas vienetas, bei labiausiai sutampančiai ir tinkamiausiai skiriami du balai. Pagal tai kam skiriamas aukščiausias įvertinimas yra gaunamas Lesk o algoritmo sprendinys [4]: 11

2 pav. Lesk o algoritmo pavyzdys Šaltinis: http://d.umn.edu/~tpederse/tutorials/advances-in-wsd-aaai-2005.ppt 3 pav. Lesk o algoritmas Šaltinis: http://d.umn.edu/~tpederse/tutorials/advances-in-wsd-aaai-2005.ppt Šis algoritmas yra gana dažnai naudojamas žodyninių žodžių reikšmių nustatymui, tačiau juo pagrinde remiamasi nustatant tik žodžių porų reikšmes, retai kada jis naudojamas pilno sakinio sprendimams. Taip pat šio algoritmo statistinis tikslumas yra sąlyginai mažas 40 60%. Kitas šiek tiek sudėtingesnis yra algoritmas leidžiantis sakinyje surasti leksinę grandinę (angl. Lexical chain). Leksinė grandinė tai semantiškai susijusių žodžių seka, kuri sukuria tam tikrą kontekstą ir prisideda prie esamų reikšmių sąsajos [5]. Leksinių grandinių suradimui naudojamas toks algoritmas [4]: 1) Pasirenkami tam tikri žodžiai iš norimo teksto. Tai būtinai turi būti tarpusavyje panašūs žodžiai ir taip pat turi būti tos pačios kalbos dalies: veiksmažodis, daiktavardis ir t.t. 2) Kiekvienam pasirinktam žodžiui ir kiekvienai to žodžio reikšmei, reikia surasti juos siejančią grandinę, kuri būtų tinkamiausia pagal žodžio prasmę bendrame kontekste. 12

3) Galiausiai jei tokia grandinė yra randama, į ją įterpiamos mūsų pasirinktų daugiaprasmiškų žodžių reikšmės. Jei tokia grandinė nerandama iš esamų reikšmių, tada kuriama nauja ir t.t. 4 pav. Leksinės grandinės algoritmo pavyzdys Šaltinis: http://d.umn.edu/~tpederse/tutorials/advances-in-wsd-aaai-2005.ppt Pavyzdyje pasirenkami trys tarpusavyje susiję, vienos kalbos dalies žodžiai: train, travel, rail. Kadangi pavyzdyje yra ieškoma žodžio train leksinės grandinės, todėl iš galimų žodžių reikšmių yra atrenkamos ir priskiriamos tos, kurios labiausiai tinka ieškomam žodžiui ir taip galiausiai sudaroma grandinė. Šis procesas gali būti kartojamas ir su kitais pasirinktais žodžiais. Šio algoritmo pagrindinis minusas tame, kad nevisada iš keleto pasirinktų žodžių galima rasti bendrą sąsają, t.y. leksinę grandinę. Algoritmo statistinio tikslumo vidurkis yra 60 80%. 2.2.2. Neprižiūrimas žodžio prasmės nustatymas Neprižiūrimos žodžio prasmės arba nežymėtais tekstynais paremti metodai yra naudingi tada, kai nėra galimybės ar tam tikrų resursų naudoti anotuotus, t.y. žymėtus tekstynus. Neprižiūrimas daugiaprasmiškumo nustatymas [6] tai bendra įvairių metodų klasė, kurios pagrindinis naudojamas įrankis yra nežymėti tekstynai ir kuri stengiasi suklasterizuoti tam tikrus pasirinktus žodžius pagal jų bendrą tarpusavio panašumą. Pagrindinės sprendimų sritys naudojant nežymėtų tekstynų metodus: 13

Dažniausiai vienam tam tikram žodžiui pašalinamas daugiaprasmiškumas iš bendro konteksto Tikrinamas žodžio panašumas su kitais to pačio konteksto žodžiais Reikšmingų žodžių vektoriai gali būti parenkami iš skirtingų tekstynų arba tiesiog iš klasterizuojamų duomenų Duomenų klasteriai nėra kaip nors sužymimi Tipiški nežymėti metodai dažniausiai naudoja statistinius algoritmus su neapdirbtais duomenimis, todėl jiems gali pritrūkti turimų žinių, kurias turi tiek žodynai, tiek žymėti tekstynai. Nepaisant to, netgi visiškas žinių neturėjimas, gali leisti pašalinti žodžių daugiaprasmiškumą. Tokie metodai naudoja panašumo matus klasterizuojant žodžius ar sakinius į tam tikras grupes pagal jų prasmių vienodumą ir panašumo matai yra suskaičiuojami pagal žodžių vartojamumą. Kaip teigia žymus Minesotos universiteto kompiuterinių mokslų profesorius Ted Pedersen [3]: Nežymėtų tekstynų naudojamus metodus galima skirstyti į dvi grupes: tipais paremti metodai ir žodžiais paremti metodai. Tipais paremti metodai leidžia suklasterizuoti žodžius pagal jų naudojimą panašiuose kontekstuose. Metodu stengiamasi skirtingus tekstyno žodžius pavaizduoti taip, kad būtų galima išgauti jų panašumą su naudojamu kontekstu. Tokie pavaizdavimai yra dažniausiai paremti asociacijų tarp žodžių matavimu. Kita grupė naudoja žodžiais paremtus metodus. Ji suklasterizuoja ir pasirinktą žodį ir jo kontekstą, turintį panašumą su tuo žodžiu. Klasteriai yra sudaryti iš konteksto, kuris naudoja žodį tik su juo sutampančia reikšme. Žodžiais paremti metodai dažniausiai turi pirmo ir antro pasirinkimo savybių vektorius. Pirmo pasirinkimo savybių vektoriai yra sudaromi iš naudojamo žodžio konteksto, o antro pasirinkimo sudaromi ir iš pirmų savybių vektoriaus ir tos savybės jau gali nebeegzistuoti bendrame kontekste. Pagrindinis nežymėtais tekstynais paremtų metodų trūkumas yra tai, jog naudojant juos žodžių daugiaprasmiškumo pašalinimui, algoritmų įgyvendinimas tampa sudėtingesnis, nes gauti rezultatai neturi tiesioginio ryšio su rezultatais gautais naudojant anotuotų tekstynų metodus. Be to, nustatyti kiekį galimų reikšmių žodžio daugiaprasmiškumo pašalinimui yra nemažas darbas ir rezultatai dažnai būna prastesni nei naudojant žymėtais tekstynais paremtus metodus. Nepaisant to, galima pažymėti, kad metodo pritaikymas yra galimas daug platesnėms ir įvairesnėms mokslinėms sritims, kurių tekstai daugumoje nėra anotuoti, kaip medicina, biotechnologijos ir kt. Taip pat šio metodo privalumas yra tai, jog jis visada bus reikalingas naudojant internetą ir jame esančią tekstinę informaciją. Tokia informacija yra lengvai prieinama virtualiai ir jos kiekiai yra beveik neriboti. 14

2.2.3. Prižiūrimas žodžio prasmės nustatymas Ši metodų klasė leidžia sumažinti žodžių daugiaprasmiškumo pašalinimo problemą iki tam tikros klasifikacijos, kai pasirinktam žodžiui yra priskiriama labiausiai tinkanti reikšmė iš duotų galimų variantų, atsirandančių naudojamame sakinyje ar žodžių junginyje. Be žymėtų tektynų algoritmų sprendimams taip pat naudojami žodynai bei įvairūs sintaksinės analizės įrankiai (tageriai, parseriai). Vienas iš tokių dažniausiai naudojamų žymėtų tekstynų algoritmų yra Naïve Bayesian klasifikatorius. Šis metodas yra naudojamas jau surinktam tam tikrų savybių rinkiniui. Tos savybės dažniausiai būna tam tikras žodžių rinkinys paimtas iš sužymėto tektyno. Klasifikatoriaus modelį sudaro klasė ir su ja susijusių žodžių savybių rinkinys. Tarkime turime klasę vaisius ir keletą jos savybių rinkinių kaip spalva ir forma. Problema kyla tada kai tokių klasių ir savybių rinkinių gali būti begalė, todėl reikėtų ir daugybės ryšių tarp jų, kad pavyktų patikrinti tų savybių tinkamumą klasėms. Naïve Bayesian klasifikatoriaus apibrėžimas daro prielaidą, jog [7] Savybės tarpusavyje gali būti nepriklausomos viena nuo kitos, t.y. užtenka ir vienos savybės, kad pagal ją būtų galima tam tikrą žodį priskirti kuriai nors klasei. Ši prielaida yra vadinama sąlygine nepriklausomybe. Daugelis mokslinių tyrimų, lyginusių klasifikavimo algoritmus davė prielaidą, kad Naïve Bayesian klasifikatorius gali būti lyginamas ir naudojamas kartu su kitais klasifikavimo medžių algoritmais bei neuroninių tinklų klasifikatoriais. Tyrimai taip pat parodė aukštą tikslumą bei greitį, naudojant šį algoritmą su didelėmis duomenų bazėmis. Kitas gana dažnai naudojamas ir praktikoje sutinkamas yra sprendimų medžio algoritmas (angl. Decision tree). Lyginant su Naïve Bayesian, šis algoritmas yra daug aiškesnis ir daug lengviau interpretuojamas. Pagrindiniai žingsniai, kurių pagalba realizuojamas sprendimų medžio algoritmas yra šie [4]: 1) Pasirenkamas žymėto tekstyno žodis, kurį geriausiai galima būtų suskirstyti į keletą savybių reikšmių; 2) Toms savybių reikšmėms parenkamas kitas žodis, kuris taip pat galėtų apibūdinti keletą tolimesnių savybių; 3) Tai kartojama iki tol, kol poaibis tampa švarus, arba nebelieka tinkančių žodžių. 15

Paprasčiausias tokio algoritmo pavyzdys galėtų būti: Pasivaikščiojimo lauke sprendimo priėmimas. 5 pav. Sprendimų medžio pavyzdys Lyginant tarpusavyje šiuos du paminėtus algoritmus, negalima būtų teigti, kad vienas yra geresnis už kitą. Kiekvienas turi savų pliusų ir minusų, tačiau statistiniai tyrimai rodo, kad geresni ir tikslesni rezultatai yra pasiekiami, kai šie abu algoritmai yra naudojami kartu. 1 lentelė Žodžio daugiaprasmiškumo pašalinimo metodų palyginimas Metodas Privalumai Trūkumai Žiniomis paremtas Prižiūrimas Neprižiūrimas 1. Gali remtis elektroniniais žodynais (pvz: WordNet). 2. Daugiaprasmiškumo pašalinimui galima naudoti gramatikos tasykles. 1. Laikomas pačiu tiksliausiu žodžių daugiaprasmiškumo pašalinimo metodu. 2. Naudoja jau sužymėtus (anotuotus) tekstynus. 1. Tinkamiausias naudoti didelėms tekstinių duomenų bazėms. 2. Daugiaprasmiškumo pašalinimui remiasi tame pačiame tekste esančiais reikšmingais kaimyniniais žodžiais. 16 1. Žodynų žodžių apibrėžimai dažniausiai būna labai trumpi. 2. Nemažai žodžių turinčių bendrą prasmę, žodynuose yra nutolę vienas nuo kito (pvz: cigaretė ir pelenai) 1. Sužymėti tekstynus reikalauja labai daug laiko ir yra gana brangu. 2. Sunku pritaikyti skirtingoms aplikacijoms. 1. Tikslumu atsilieka nuo žiniomis paremto bei prižiūrimo metodų. 2. Nėra galimybės remtis žodynais bei sužymėtais tekstynais.

Aukščiau esančioje lentelėje apibrėžiami pagrindiniai visų išnagrinėtų metodų privalumai bei trūkumai. Atlikus išsamią šių metodų bei jiems skirtų algoritmų analizę, galima teigti, jog kiekvienas metodas turi pakankamai tikslius skaičiavimo algoritmus tiriant žodžių daugiaprasmiškumo pašalinimo problemą. Tačiau kiekvienas metodas taip pat turi tam tikrus būtinus resursų reikalavimus, kaip žodynai, žymėti ir nežymėti tekstynai ir t.t. Dėl savo pritaikomumo įvairiems elektroninėje erdvėje esantiems tekstams bei kitų veiksnių išdėstytų sekančiame skyriuje, tolesniam darbui pasirenkamas neprižiūrimas daugiaprasmiškumo pašalinimo metodas. 17

III. PROJEKTAVIMAS Šiame skyriuje plačiai išdėstomas siūlomas problemos sprendimo algoritmas, pasirinktam žodžio daugiaprasmiškumo pašalinimo metodui, bei išanalizuojamas kiekvienas jo realizavimui skirtas žingsnis. 3.1. Metodo pasirinkimas Remiantis praeitame skyriuje atlikta žodžio daugiaprasmiškumo pašalinimo metodų analizę, tolesniems eksperimentiniams tyrimams pasirinktas nežymėtais tekstynais paremtas metodas. Pagrindiniai veiksniai, kurie nulėmė šio metodo pasirinkimą: Vienas svarbiausių veiksnių yra tai, jog kol kas labai trūksta žymėtų tekstynų bei įvairių elektroninių žodynų resursų. Tai yra suprantama, nes sužymėti didelės apimties tekstyną, tarkim tokį kokį turi VDU kompiuterinės lingvistikos centras (duomenų bazę sudaro 140 mln. žodžių), reikia labai daug laiko ir pastangų. Kita priežastis lėmusi tokį pasirinkimą yra tai, jog šis metodas yra labai tinkamas ieškant būtent sprendimų su elektroniniais tekstais, kurie internetinėje erdvėje taip pat dažniausiai retai būna kaip nors sužymėti ar paruošti naudoti, todėl šis metodas netgi būtų idealiausias žodžių daugiaprasmiškumo pašalinimo sprendimams realizuoti. Kaip pavyzdį pačiai sąvokai žodžio daugiaprasmiškumas būtų galima pateikti lietuvišką žodį atmintis. Nors šiandieniniame informacijos pasaulyje šis žodis gana dažnai vartojamas ir turi reikšmę kaip kompiuterio, USB laikmenos atmintis, tačiau nereikia pamiršti ir sąvokos žmogaus atmintis. Čia ir iškyla supratimo problema kompiuterinėms sistemoms: kuri sąvoka, kur turi būti naudojama. Nepaisant visų šio metodo privalumų, reiktų paminėti, kad šalinant žodžių daugiaprasmiškumą, gali kilti ir problemų, kadangi kaip minėjau nėra galimybės remtis sužymėtais tekstynais ar žodynais, kuriuose jau būtų nurodytos galimos kelios tam tikrų žodžių reikšmės bei reikėtų išspręsti statistinio tikslumo problemą, nes naudojant šį metodą skaičiavimų tikslumas yra ženkliai mažesnis nei kituose nagrinėtuose metoduose. 18

3.2. Reikšmingų žodžių vektoriaus algoritmas Darbe pristatomas algoritmas pavadintas reikšmingų žodžių vektoriaus algoritmu todėl, kad žodžių prasmė elektroniniuose tektstuose yra nustatoma pagal tam žodžiui reikšmingus kaimyninius žodžius, kurie ir laikomi ieškomo daugiaprasmio žodžio savybėmis. Bendras šio algoritmo veikimo principas: 1) Kaimyninių žodžių radimas Naudojant nežymėtą tekstyną, nagrinėjamas daugiaprasmiškų žodžių kontekstas ir bandoma reikšmingų žodžių vektoriais aprašyti išsiskiriančius atskirus atvejus (atitinkančius skirtingas reikšmes). Reikšmingų žodžių vektorių sudarys n kaimyninių žodžių iš kairės ir n kaimyninių žodžių iš dešinės. 2) Žodžių filtravimas Atliekamas taip vadinamas filtravimas, pašalinami nereikšmingi žodžiai, t.y. mažiau kartų pasikartoję žodžiai ir nesusiję su nagrinėjamu charakteringu žodžiu. 3) Ryšių matricos formavimas Toliau turint tokį reikšmingų žodžių vektorių, yra sudaroma ryšių matrica (angl. co-occurrence matrix) ir žiūrima kaip tie žodžiai yra susiję vienas su kitu poromis (1-as su 2-u, 2-as su 3-iu, 1-as su 3-iu ir t.t.). Tam bus skaičiuojamas PMI (angl. Pointwise Mutual Information) metodas žodžių pasikartojimo dažnumas. Gautos matricos eilutės nusakys kiekvienos iš savybių sąsajas su kitomis reikšmingų žodžių vektoriaus savybėmis. 4) Sakinių atvaizdavimas vektoriais Turint šią matricą, dar karta einama per tekstyną ir kiekvieną sakinį, kuriame pasitaikys nagrinėjamas daugiaprasmis žodis, aprašome tam tikru konteksto vektoriumi. Visų pirma žiūrima kokios savybės iš reikšmingų žodžių vektoriaus yra šiame sakinyje, po to imamos praeityje aprašytos matricos eilutės ir jos vaizduojamos vektoriais. Tada sakinių konteksto vektorius, bus visų žodžių vektorių centroidinis vidurkis. 5) Vektorių klasterizavimas Visi surinkti sakinių vektoriai toliau bus klasterizuojami pagal tam tikrą algoritmą. Gauti reikšmių vektoriai bus palyginami tarpusavyje ir pasirinktas tinkamiausias variantas, atspindės visą reikšmingų žodžių vektorių, skirtą tam tikro žodžio daugiaprasmiškumo pašalinimui tekste. 19

6 pav. Reikšmingų žodžių vektoriaus algoritmo schema 20

3.2.1. Kaimyninių žodžių radimas Šiame etape panaudojame tekstyną ir jame ieškome atskirų daugiaprasmio žodžio pasirodymo atvejų. Kiekvienam nagrinėjamo žodžio pasirodymo atvejui imame tam tikrą kaimynų iš kairės ir iš dešinės skaičių, taip suformuodami reikšmingų žodžių vektorių. Svarbu pasirinkti tinkamą kaimynų skaičių. Pasirinkus per mažą kaimyninių žodžių skaičių, juose gali neatsispindėti ieškomo žodžio prasmė. Kitavertus, per didelis kaimynų skaičius gali duoti reikšmes, kurios jau nebeturi sąsajos su nagrinėjamu žodžiu. Taip pat reikia nepamiršti, kad tarp visų kaimynų gali pasitaikyti nemažai žodžių, kurie nepadeda nustatyti žodžio prasmės, t.y. tokių kaip: prieveiksmiai, dalelytės, jungtukai ir t.t. Tam kad atmesti šiuos nereikalingus žodžius ar simbolius, reikia suformuoti taip vadinamą nereikšmingų žodžių (stop words) sąrašą. Naudojant tokį sąrašą, galima tolimesniam nagrinėjimui pasirinkti tik bendro konteksto įvertinimui reikalingus žodžius. Taip pat iš jau gauto reikšmingų žodžių vektoriaus reikėtų atmesti ir retai pasitaikančius žodžius. Tam gali būti taikomas toks algoritmas: skaičiuojamas žodžių pasirodymo dažnumas, ir tie žodžiai, kurie pasikartojo tik vieną kartą nagrinėjamo žodžio kontekste, yra pašalinami. Toks žodžių filtravimas leidžia sutvarkyti reikšminių žodžių vektorių taip, kad jame liktų tik naudingi ir tinkami tyrimui žodžiai. 2 lentelė Kalbos dalys naudojamos Stop Words sąraše Kalbos dalys Conjunctions Particles Pronoun Adverb Dažniausiai pasitaikantys žodžiai for, and, but, or, yet, so, nor, both, either, neither, while, since the, a, no, oh, ah, to, wow, up, well, not, over, off, with, in he, you, me, ours, some, each, themselves, this, that, who, what almost, already, calmly, behind, gently, early, happily, kindly 3.2.2. Ryšių matricos formavimas Turėdami suformuotą reikšmingų žodžių vektorių, kurį sudaro n žodžių, toliau jam skaičiuojame ryšių matricą (angl. co occurence matrix). Paprasčiau sakant, kiekvienai atrinktai žodžių porai yra skaičiuojamas jų pasirodymo kartu dažnis nagrinėjamo daugiaprasmio žodžio kontekste, t.y. tarp jo kaimynų. Ryšių matricos reikšmės suskaičiuojamos, taikant PMI metodą visiems reikšmingų žodžių vektoriaus elementams. PMI (angl. Pointwise Mutual Information) [8] tai asociatyvumo matavimo metodas, naudojamas informacijos teorijoje ir matematinėje 21

statistikoje. Tai matas, kuris parodo kiek jungtinė įvykių tikimybė, skiriasi nuo atskirų atsitiktinių įvykių tikimybių sandaugos, tariant, kad jie yra nepriklausomi vienas nuo kito. Matematinė šio metodo išraiška, kai x ir y vaizduoja atskirus įvykius, atrodytų taip: PMI (x, y) = log (p(x, y) / p(x)p(y)) (1) Kalbant lingvistiniais terminais, PMI metodas yra naudojamas kolokacijų įvertinimui, kadangi jis leidžia įvertinti, kiek vienas žodis pasako apie kitą. PMI metodo skaičiavimai atliekami pagal tokį algoritmą: 7 pav. PMI metodas Lentelėje esantys žodžiai: žodis1 ir žodis2 - tai reikšminių žodžių pora, kuriai skaičiuojami pasirodymo nagrinėjamo daugiaprasmio žodžio aplinkoje dažnumai. n11 rodys kiek kartų žodis1 ir žodis2 pasitaiko kartu. n12 ir n21 rodys kiek kartų aplinkoje pasirodo tik vienas iš šių žodžių. n22 rodys kiek yra atvejų, kai nėra nė vieno iš žodžių. Kintamasis np1 yra suminis, t.y. jis rodo bendrą atvejų skaičių, kai pasirodo tik pirmasis iš žodžių, o antrasis yra arba jo nėra. Bendras kiekvienos eilutės imties dydis yra skaičiuojamas pagal formulę: m11 = (np1 * n1p) / npp (2) PMI skaičiuojamas pagal formulę: PMI = log (n11 / m11) (3) Gautos PMI reikšmės įkeliamos į reikšmingų žodžių ryšių matricą kiekvienai iš reikšminių žodžių vektoriuje esančių žodžių porų. Žemiau pateikiamas suformuotos ryšių matricos pavyzdys: 22

8 pav. Reikšmingų žodžių ryšių matrica Šaltinis: http://d.umn.edu/~tpederse/tutorials/advances-in-wsd-aaai-2005.ppt 3.2.3. Sakinių atvaizdavimas vektoriais Sekantis etapas yra skirtas sakinių su nagrinėjamu daugiaprasmiu žodžiu atvaizdavimui daugiamačiu vektoriumi. Tuo tikslu tekstyne išrenkami sakiniai su daugiaprasmiu žodžiu. Turėdami anksčiau sudarytą reikšmingų žodžių vektorių, galime identifikuoti konkrečiame sakinyje esančius reikšmingus žodžius. Visiems sakinyje esantiems reikšminiams žodžiams erdvėje vaizduojami vektoriai, atitinkantys tų žodžių eilutes ryšių matricoje. Vektorių padėtis erdvėje priklauso nuo jų elementų, t.y PMI reikšmių. Žemiau pateiktame paveikslėlyje vaizduojami tokie reikšmingų žodžių vektoriai. Punktyrine rodykle yra žymimas visų vektorių centroidinis vidurkis. 23

9 pav. Žodžių vektoriai Pagal vektorių padėtį erdvėje skaičiuojamas jų visų vidurkis (centroidinis vektorius), kuris ir atitinka konkretaus sakinio konteksto vektorių. Formulė sakinio konteksto vektoriaus apskaičiavimui yra: (4) Čia w i * centroidinio vektoriaus koordinatės m vektorių skaičius w vektorių koordinatės 3.2.4. Vektorių klasterizavimas Visi ankstesniame algoritmo žingsnyje suformuoti sakinių vektoriai grupuojami į panašių vektorių klasterius. Klasteriai sudaromi, matuojant kampo kosinuso tarp vektorių reikšmę, t.y. kuo vektoriai artimesni, tuo labiau tikėtina, kad jie atstovauja tai pačiai nagrinėjamo žodžio prasmei. Formulė skirta kampo kosinusui apskaičiuoti būtų tokia: (5) 24

Čia q ir d yra vektoriai tarp kurių bus matuojamas kosinuso kampas. Toliau toks klasterizavimas bus atliekamas iki tol, kol nebeliks nepriskirtų vektorių arba susidarys pakankamai dideli keli vektorių klasteriai. Žemiau pateiktas paveikslėlis parodo, kaip skirtingas žodžio prasmes atstovaujantys vektoriai susikoncentruoja į atskirus klasterius. 10 pav. Skirtingų reikšmių pasiskirstymas Pagrindiniai klasterizavimo metodai, kuriuos galime naudoti skirtingų žodžio prasmių išskyrimui, yra šie [4], [9]: Užbaigto sujungimo metodas (angl. Complete Linkage clustering) atstumas tarp dviejų klasterių yra skaičiuojamas kaip atstumas tarp dviejų tolimiausių objektų tuose klasteriuose. Erdvėje tai atrodytų maždaug taip: 11 pav. Užbaigto sujungimo metodas 25

Grupės vidurkio metodas (angl. Group-average agglomerative clustering) atstumas tarp dviejų klasterių yra apibrėžiamas kaip atstumo vidurkis tarp visų juose esančių objektų porų, kur kiekviena pora yra sudaryta iš vieno objekto. Žemiau pateiktame paveikslėlyje A, B, C, D, E vaizduoja skirtingai išsidėsčiusius duomenis. 12 pav. Grupės vidurkio metodas Wardo metodas (angl. Ward s method) šio metodo esmė yra tai, jog kiekviename klasterių suformavimo žingsnyje jis stengiasi minimizuoti kvadratų sumą tarp bet kurių dviejų pasitaikiusių klasterių. K vidurkių metodas (angl. K means clustering) vienas iš labiausiai paplitusių ir dažniausiai naudojamų algoritmų tiek prižiūrimo, tiek neprižiūrimo žodžių daugiaprasmiškumo pašalinimui. Tačiau sėkmingas šio algoritmo naudojimas ir tikslumas labai priklauso nuo pradinių aprioriai apibrėžtų klasterių vidurkių reikšmių jos turi būti pakankamai nutolusios viena nuo kitos. Pagrindiniai žingsniai realizuojant k vidurkių metodą yra šie: ü Pasirenkamas norimas skaičius būsimų klasterių ir tas skaičius priskiriamas kokiam nors kintamajam n ü Klasteriams n priskiriamos pakankamai viena nuo kitos nutolusios jų vidurkių reikšmės ü Kiekvienas žodis yra priskiriamas tam klasteriui, prie kurio vidurkio reikšmės jis yra arčiausiai ü Po priskyrimo, vidurkio reikšmės pasislenkia į grupelėje esančių žodžių vidurį ü Šie du paskutiniai žingsniai yra kartojami tol, kol nebelieka laisvų nepriskirtų žodžių 26

Žemiau pateiktas paveikslėlis iliustruoja visus žingsnius, kurie atliekami naudojant k vidurkių klasterizavimo algoritmą. Jame pavaizduoti penki žodžiai ir dviejų klasterių vidurkių reikšmės. 13 pav. K vidurkių klasterizavimo algoritmo veikimo principas Pirmame paveikslėlyje pasirenkamos dvi klasterių vidurkinės reikšmės. Toliau žodžiai esantys arčiausiai šių vidurkinių reikšmių yra joms priskiriami. Priklausomai nuo gautų klasterių, vidurkinės reikšmės yra pastumiamos maždaug į visų tame klasteryje esančių žodžių vidurį. Antrame paveikslėlyje matosi, kad iš pradžių vienam klasteriui buvo priskirti žodžiai: ž1 ir ž2, o antram priskirti likusieji: ž3, ž4 ir ž5. Tačiau klasterizuojant tolimesniame žingsnyje galima pastebėti, kad ž3 dabar yra arčiau pirmojo klasterio negu antrojo. Pasibaigus klasterizavimui gauname žodžius: ž1, ž2, ž3 pirmame, o žodžius: ž4 ir ž5 atitinkamai antrame klasteryje. Toks ir yra pagrindinis k vidurkių klasterizavimo algoritmo veikimo principas. Vienos sąsajos metodas (angl. Single link clustering) vienas paprasčiausių ir suprantamiausių metodų, kitaip dar vadinamas artimiausių kaimynų metodu. Pagrindinė metodo savybė yra tai, jog atstumas tarp dviejų klasterių yra apibrėžiamas kaip minimalus atstumas tarp dviejų objektų, esančių skirtinguose klasteriuose. 27

3.2.5. Klasterių panaudojimas reikšmės identifikavimui naujuose sakiniuose Atlikus klasterizavimą, gautos naujos reikšmės ir sudarys pasirinkto daugiaprasmiško žodžio skirtingų reikšmių vektorius. Toliau norėdami palyginti kuri iš gautų reikšmių labiausiai tinkama priskirti ieškomo žodžio reikšmei, turime tuos vektorius atvaizduoti koordinačių ašyje. Tada imamas naujas sakinys, kuriame būtų naudojamas pasirinktas žodis ir jam sudaromas reikšmingų žodžių vektorius su visais šio algoritmo žingsniais, kaip buvo daroma pradžioje. Naujo sakinio vektorių taip pat atvaizduojame koordinačių ašyje. 14 pav. Reikšmių vektoriaus palyginimas su sakinio vektoriumi Kiekvienas atskiras reikšmių vektorius yra lyginamas su sakinio vektoriumi. Kurio kampas tarp vektorių bus mažiausias, ta reikšmė ir bus priskiriama naujam sakiniui. Aukščiau pateiktame pavyzdyje reikšmių vektoriai žymimi atitinkamai ir, naujo sakinio vektorius žymimas punktyru. 28

3.3. Realizavimo įrankiai Tokiam reikšmingų žodžių vektoriaus algoritmui realizuoti, pasirinkimo galimybės yra labai įvairios: a) Galima suprogramuoti visą algoritmą naudojant kažkurią vieną pasirinktą programavimo kalbą (pvz: C++, Java, Python ir t.t.). b) Pasinaudoti specialiai tokioms užduotims sukurtais paketais, kaip WSDGate, WEKA ir t.t. c) Naudoti programavimo kalbą ir jai specialiai pritaikytas papildomas priemones. Renkantis pirmą variantą, lingvistinių duomenų ir įvairių funkcijų programavimas tampa ilgu ir sudėtingu procesu. Pasirinkus antra variantą, galima būtų naudoti WSDGate įrankį. WSDGate [10] tai įrankis skirtas žodžių daugiaprasmiškumo pašalinimui ir yra naudojamas kartu su Java kalbos priedu GATE (angl. General Architecture for Text Engineering). Tačiau naudojant tokius paketus, galimybės laisvai kurti praktiškai nėra. Daugelis funkcijų yra labai ribotos, galimi tik keli skirtingi veiksmai dirbant su tekstais. Realiausias ir greičiausias reikšmingų žodžių vektoriaus algoritmo realizavimas būtų naudojant vieną pasirinktą programavimo kalbą bei jai specialiai pritaikytus papildomus paketus. Šiam darbui buvo pasirinkta Python programavimo kalba. Python yra įvairiapusiška objektinio programavimo kalba, kuria galima kurti daugelio sričių programinę įrangą. Python yra labai galinga ir funkcionali kalba lingvistinių duomenų apdorojimui. Būdama objektiškai orientuota programavimo kalba, Python lengvai leidžia pernaudoti turimus duomenis ir metodus. Python galima būtų palyginti su kita plačiai naudojama objektinio programavimo kalba Java. Python kalba Java kalba import sys import java.io.*; for line in sys.stdin: public class as_words { for word in line.split(): public static void main(string[] args) throws if word.endswith('as'): Exception { print word BufferedReader in = new BufferedReader(new InputStreamReader( System.in)); String line = in.readline(); while (line!= null) { for (String word : line.split(" ")) { if (word.endswith("as")) System.out.println(word); } line = in.readline(); }}} 29

Aukščiau pateiktame pavyzdyje nuskaitomas failo tekstas ir ekrane atspausdinami tie žodžiai, kurie baigiasi galūne as. Iš šio pavyzdžio galima spręsti, jog Python programavimo kalba tekstinės funkcijos yra realizuojamos daug paprasčiau ir kūrimas tokių programų neatima daug laiko. Kitas gana svarbus aspektas lėmęs šios programavimo kalbos pasirinkimą yra specialiai jai pritaikytas NLTK paketas. NLTK (angl. Natural Language Tool-Kit) [11] tai atviro kodo Python programavimo kalbos modulis ir lingvistiniai duomenys skirti natūralios kalbos procesams kurti. Šis įrankis turi didelę įvairių lingvistinių modelių bazę. NLTK yra labai naudingas įrankis ne tik mokslininkams, dėstytojams ar studentams, studijuojantiems natūralios kalbos apdorojimą, bet ir tyrėjams, dirbantiems tokiose srityse, kaip mašininis mokymas bei dirbtinio intelekto sistemos. Taip pat NLTK turi didelius žymėtų ir nežymėtų tekstynų resursus, kuriuos įsikelti ir naudoti tyrimams yra labai paprasta. 15 pav. NLTK paketo tekstynų bei įvairių modelių resursai Kartu su NLTK yra pateikiama nemažai dokumentacijos palengvinančios programų kūrimo darbą. Taip pat šis įrankis yra puikiai suderinamas su Python programavimo kalba. Kitas patogus naudoti įrankis yra įvairiems matematiniams duomenų skaičiavimams skirtas Numpy paketas. 30

Numpy [12] specialus Python kalbai skirtas paketas, kurio bibliotekoje yra nemažai matematinių formulių bei funkcijų skaičiavimų. Numpy pagalba galima kurti didelius n-mačius masyvus ir matricas. Šiame darbe numpy yra labai naudingas atliekant matematinių formulių skaičiavimus tokius kaip: centroidinio vektoriaus vidurkio nustatymas; klasterizavimo algoritmams skirtas kampo kosinuso tarp vektorių apskaičiavimas ir kitur. 31

IV. TEORINIAI IR EKSPERIMENTINIAI TYRIMAI Šiame skyriuje remiantis teoriniais rezultatais atliekami įvairūs eksperimentiniai bandymai su sudarytu reikšmingų žodžių vektoriaus algoritmu ir jais bandoma apibrėžti pilną šio algoritmo veikimą. 4.1. Eksperimento struktūra Sudarytas reikšmingų žodžių vektoriaus algoritmas buvo realizuotas python programavimo kalba bei papildomais šiems uždaviniams spręsti skirtais paketais, kaip nltk, numpy. Prieš atliekant įvairius eksperimentus buvo sudarytas bendros eigos planas, kurio pagrindinės dalys yra šios: Tekstyno ir klasterizavimo algoritmų įtaka. Eksperimentai bus atliekami su specialiai sukurtu bandomuoju 15 sakinių tekstynu bei su daugiau nei 1 mln. žodžių turinčiu Brown tekstynu, atspindinčiu šiandieninę amerikietiškąją anglų kalbą. Duomenys bus testuojami naudojant 2 pasirinktus klasterizavimo algoritmus: grupės vidurkio algoritmą (GAAC) bei K vidurkių algoritmą (K - means). Įvairių algoritmo parametrų įtaka. Bus nagrinėjami įvairūs daugiaprasmiški angliški žodžiai, turintys po 2 arba 3 galimas prasmes, kaip pvz: chair, stick, place, right, key ir t.t. Algoritmo tikslumui nustatyti bus tyrinėjama šių parametrų įtaka: Kaimyninių žodžių skaičius tyrimas bus atliekamas su 10 ir 5 kaimyniniais žodžiais. Jis parodys, koks kaimynų skaičius reikalingas surinkti tik reikšmingus ir susijusius su ieškomu daugiaprasmiu žodžiu vektorius. Pasikartojančių žodžių dažnumas kaip ir kaimynų atveju, bus tiriama koks reikšmingų žodžių dažnumo atvejis atspindės skirtingas prasmes. Kiekvieno iš plane paminėto žingsnio eiga bei gauti rezultatai bus smulkiai aprašomi. Tai leis suformuoti galutines išvadas, kurios ir parodys koks yra šio reikšmingų žodžių vektoriaus algoritmo tikslumas ir tinkamumas naudojimui tam pritaikytose kompiuterinėse sistemose. 32

4.2. Tekstyno ir klasterizavimo algoritmų įtaka Šiame skyriuje eksperimentai bus atliekami naudojant bandomąjį ir Brown tekstynus, o duomenų klasterizavimui pasirinkti GAAC ir K vidurkių klasterizavimo algoritmai. Bandomasis tekstynas reprezentuoja dviprasmį anglišką žodį chair. Žodis chair naudojamas dviems prasmėms apibūdinti: 1. Kėdė, kaip baldas (pvz: I m sitting on a chair ); 2. Kėdė, kaip užimas postas ar pareigos (pvz: He is the chair of maths department ). Kadangi bandomasis tekstynas yra mažas, buvo eksperimentuojama su 5 kaimyniniais žodžiais iš kairės ir iš dešinės. Atmetus nereikalingus žodžius iš esamo suformuoto sąrašo (stop words) bei tuos, kurie pasikartojo mažiaus nei 2 kartus, buvo gautas reikšmingų žodžių vektorius: ( department, head, table, sat, furniture, meeting ). 16 pav. Suformuotas reikšmingų žodžių vektorius Paveikslėlyje galima matyti, kaip iš keleto sakinių, pasirinkus 5 kaimyninius žodžius ir atmetant nereikšmingus žodžius, kaip: a, in, the, and yra gaunamas reikšmingų žodžių vektorius. Iš šio vektoriaus, kaip ir tikėtasi, galima išskirti 2 žodžio chair reikšmės: žodžiai department, head ir meeting būtų tinkami kalbant apie užimamas pareigas; tuo tarpu žodžiai table, sat ir furniture naudojami kalbant apie kėdę kaip baldą. Sudarius reikšmingų žodžių vektorių, toliau suformuojama ryšių matrica. Šešių reikšminių žodžių atveju gaunama 6x6 dydžio ryšių matrica. Kaip buvo minėta teorinėje dalyje, ši matrica toliau yra pildoma PMI reikšmėmis, kurios leidžia nustatyti reikšminių žodžių tarpusavio sąsajas. Bandomajam tekstynui ir žodžiui chair suskaičiuota ryšių matrica atrodo taip: 33

17 pav. Ryšių matrica Sekančiame žingsnyje buvo analizuojami visi bandomojo tekstyno sakiniai su daugiaprasmišku žodžiu chair. Juose buvo ieškomi ir atrenkami tie žodžiai, kuriuos galima rasti anksčiau suformuotame reikšmingų žodžių vektoriuje. Skaičiuojamas juos atitinkančių ryšių matricos eilučių centroidinis vektorius, kuris reprezentuoja atitinkamo sakinio konteksto vektorių. Sakinių konteksto vektoriai buvo klasifikuojami, naudojant grupės vidurkio (GAAC) klasterizavimo algoritmą. Bandomajam tekstynui GACC algoritmas teisingai atpažino 2 klasterius, kuriems ir priskyrė atitinkamų sakinių konteksto vektorius 95% tikslumu. 18 pav. Sakinių suskirstymas į klasterius Paveikslėlyje parodytas dviejų sakinių konteksto vektorių priskyrimas klasteriams 0 ir 1 pagal tuose sakiniuose identifikuotus reikšminius žodžius. Šie klasteriai ir identifikuoja dvi skirtingas žodžio chair prasmes. Kadangi bandomasis tekstynas sukurtas reprezentuoti tik vieną daugiaprasmį žodį, todėl tolesniems reikšmingų žodžių vektoriaus algoritmo eksperimentams buvo naudotas Brown tekstynas. Šis tekstynas pasirinktas dėl keleto priežasčių: 34

Pirmiausia yra tai, kad jame galima rasti daug tekstų iš skirtingų žanrų kategorijų, kaip: naujienos, religija, mokslinė fantastika, romanai bei daug kitų. Antras taip gana svarbus dalykas yra tai, jog tekstynas turi daugiau nei 1mln. žodžių tarp skirtingų žanrų, todėl jis yra bene tinkamiausias resursas ieškant dviprasmiškų žodžių ir tyrinėjant skirtingas jų prasmes. Atlikus keletą pradinių eksperimentų, rezultatai parodė, jog realaus tekstyno atveju, GAAC klasterizavimo algoritmas nėra tikslus, o kai kuriais atvejais ir visai nenaudingas. Todėl bandant kitus klasterizavimo algoritmus tinkamesnis pasirodė k vidurkių klasterizavimo metodas, kurio naudojimas ir tikslumas priklauso nuo pradinių apibrėžtų klasterių vidurkių reikšmių. Brown tekstyno ir k vidurkių klasterizavimo algoritmo bandymui buvo pasirinktas dviprasmis angliškas žodis key, turintis šias pagrindines prasmes: 1. Pagrindas, pagrindinis; 2. Raktas Skirtingai nei bandomojo tekstyno atveju, čia parenkamas 10 kaimyninių žodžių skaičius, bei atmetami visi nereikšmingi žodžiai ir tie, kurie pasikartojo mažiau nei 3 kartus. Gaunamas reikšmingų žodžių vektorius: 19 pav. Žodžio key reikšmingų žodžių vektorius Gautame vektoriuje iš karto galima pastebėti žodžius door ir white, kurie būtų tinkami prasmei raktas; o taip pat žodžius points ir marketing, kurie pabrėžtų prasmę pagrindinis. Kadangi šiame tekstyne su žodžiu key yra tik 84 sakiniai ir tai matosi iš mažo reikšmingų žodžių skaičiaus, tačiau kartais ir tokio vektoriaus gali užtekti, kad gautume norimus rezultatus. Visi tolesni žingsniai yra atliekami pagal anksčiau apibrėžtą algoritmo struktūrą. Sakinių konteksto vektoriai yra grupuojami naudojant k vidurkių klasterizavimo algoritmą. Kaip jau minėta, šiam metodui reikalinga apibrėžti pakankamai viena nuo kitos nutolusias vidurkines reikšmes. Taigi išskirti dviems klasteriams buvo nustatytos 0 ir 1 vidurkinės reikšmės ir duomenys sugrupuoti į tokius klasterius: 35

20 pav. Duomenų klasteriai Išanalizavus gautus klasterius ir palyginus juos su sakinių konteksto vektoriais, žodžiui key buvo gautas 75% tikslumas. Kitam eksperimentui buvo pasirinktas žodis chair, kuris naudojant bandomąjį tekstyną davė 95% tikslumą. Tačiau naudojant Brown tekstyną ir k vidurkių klasterizavimo algoritmą nepavyko išskirti ieškomo žodžio prasmių. Rezultatų analizė parodė, kad žodis chair Brown tekstyne nėra tinkamai reprezentuojamas 57 sakiniai rodo vieną jo prasmę, o tik 2 kitą. Tai leidžia formuluoti reikalavimą, kad žodžių prasmės išskyrimui tekstynas turi būti pakankamai reprezentatyvus daugiaprasmių žodžių atžvilgiu, norint tinkamai identifikuoti daugiaprasmius žodžius. Apibendrinant galima būtų teigti, jog tekstyno įtaka reikšmingų žodžių vektoriaus algoritmui yra didžiulė. Jeigu sakinių su ieškomu daugiaprasmiu žodžiu yra pakankamai daug, tuomet gaunami visai neblogi rezultatai; jeigu žodis prastai reprezentuojamas, rezultatai gali būti netikslūs arba jų visai gali nebūti. O duomenų klasterizavimui būtų rekomenduojama naudoti k vidurkių metodą, kadangi jis nesunkiai realizuojamas ir duoda pakankamai gerus rezultatus. 36

4.3. Įvairių algoritmo parametrų įtaka Šiame skyriuje bus atliekami eksperimentai ir žiūrima kokią įtaką algoritmui daro skirtingas kaimyninių žodžių skaičius bei pasikartojančių žodžių dažnumas. 4.3.1. Eksperimentai su kaimyniniais žodžiais Pirmam eksperimentui iš Brown tekstyno buvo pasirinktas dviprasmiškas angliškas žodis stick. Žodis stick šnekamojoje anglų kalboje pagrinde naudojamas dviems prasmėms apibūdinti: 1. Lazda, pagalys, rankena; 2. Laikytis, prilipti. Šiame skyriuje bus eksperimentuojama su kaimyninių žodžių skaičiumi ir žiūrima kokią įtaką jie daro klasterizuojant gautus duomenis. Taigi šiam bandymui pasirinkta 10 kaimyninių žodžių iš kairės ir iš dešinės. Atmetami visi žodžiai, kurie pasikartojo mažiau nei tris kartus. Toks žemas dažnumo lygis nustatytas dėl to, jog su šiuo žodžiu tekstyne rasti tik 38 sakiniai. Tai palyginus yra labai mažai, ypač žinant kiek iš viso žodžių yra Brown tekstyne. Atlikus visus šiuos nustatymus buvo gautas toks reikšmingų žodžių vektorius: 21 pav. Žodžio stick reikšmingų žodžių vektorius Iš gauto reikšmingų žodžių vektoriaus yra gana sunku išskirti dvi ieškomas žodžio stick prasmes. Kai kurie žodžiai gali pasirodyti nelabai reikalingi bendrame kontekste, tačiau toliau nagrinėjant pilnus sakinius su žodžiu stick, bus galima aiškiau išskirti pasitaikančius atskirus žodžių prasmės atvejus. Sekančiame žingsnyje suformavus matricą ir atrinkus iš tekstyno visus sakinius su žodžiu stick, gauti duomenys yra klasterizuojami naudojant k vidurkių klasterizavimo algoritmą. Šiam algoritmui parenkamos pakankamai viena nuo kitos nutolusios vidurkinės reikšmės: 0 ir 1. Tai leis užtikrinti tikslesnius klasterizavimo rezultatus. Taip pat tikslesniam skaičiavimui gauti, programa automatiškai prafiltruos silpną ryšį su reikšminiais žodžiais turinčius sakinius. Jei kuriame nors sakinyje su žodžiu stick tarp visų esančių žodžių nepasitaikys nė vieno reikšminio žodžio, tokio sakinio rezultatai nebus fiksuojami. Taigi atlikus šiuos veiksmus yra gaunami tokie suklasterizuoti duomenys: 37

22 pav. Duomenų klasteriai (10 kaimynų) Kadangi iš gautų klasterių negalima spręsti kuri daugiaprasmio žodžio reikšmė priskirta 0, kuri priskirta 1, todėl šioje vietoje norint sužinoti klasterizavimo tikslumą reikia peržiūrėti rastus sakinius su žodžiu stick ir palyginti juos su jau gautais klasteriais. Štai keletas iš tekstyne rastų sakinių: 23 pav. Sakiniai su ieškomu daugiaprasmiu žodžiu Kaip galime pastebėti pirmame ir trečiame sakiniuose randama žodžio stick reikšmė yra: prilipti, laikytis, o antras ir ketvirtas sakiniai reprezentuoja stick reikšmę kaip lazda ar pagalys. Tačiau gautuose suklasterizuotuose duomenyse matome pirmą sakinį priskirtą 0 klasteriui, kitus tris sakinius 1 klasteriui. Tai leidžia daryti išvadą, kad kažkur klasterizavimo algoritmas nukrypsta ir gaunami ne visai teisingi klasteriai. Tačiau, kaip ir daugelyje kitų sričių, kaip pavyzdžiui mašiniame vertime yra neįmanoma tikėtis 100% tikslumo. Atlikus išsamius skaičiavimus šis bandymas parodė gana aukštą 83% tikslumą. Toliau tam pačiam žodžiui stick kaimyninių žodžių skaičius yra keičiamas į 5, paliekant tą patį dažnumo atvejį ir žiūrima kaip tai įtakoja būsimus rezultatai. Gaunamas toks reikšmingų žodžių vektorius: 24 pav. Reikšmingų žodžių vektorius 38

Su 5 kaimyniniais žodžiais gaunamas tik dviejų reikšmingų žodžių vektorius. Toks duomenų skaičius klasterizavimo algoritmui yra nepakankamas, todėl gaunamas programos klasterizavimo klaidos pranešimas: 25 pav. Klasterizavimo klaidos pranešimas Assertion Error klaida pasako, jog k vidurkių klasterizavimo algoritmui nepavyko priskirti skirtingų reikšmių klasterių. Taigi šioje vietoje galima daryti išvadą, jog esant pakankamam kaimynų skaičiui, t.y. 10, gaunami gan neblogi rezultatai, kurių tikslumas siekia 83%, o mažinant kaimynų skaičių iki 5, šiuo atveju yra nesuformuojamas pakankamas reikšmingų žodžių kiekis, todėl ir skirtingi 2 klasteriai nėra suformuojami. Sekančiam bandymui pamėginta naudoti gana dažnai šiame tekstyne sutinkamą dviprasmišką žodį place. Su šiuo žodžiu yra išskiriamos taip pat dvi pagrindinės prasmės: 1. Vieta. 2. Padėti, įdėti. Kaip ir praeitame eksperimente pirmiausiai pasirinkau 10 kaimyninių žodžių. Kadangi kaip jau minėjau, žodis place tekstyne yra gana populiarus (su šiuo žodžiu randamas 541 sakinys), todėl skirtingai nei praeitame bandyme didinamas žodžių dažnumo lygis iki daugiau nei 7 kartus pasikartojančių žodžių, t.y. žodžiai, kurie bendrame kontekste pasikartos 7 ar mažiau kartų, nepateks į formuojamą reikšmingų žodžių vektorių. 26 pav. Žodžio place reikšmingų žodžių vektorius Taigi kaip ir buvo galima tikėtis, esant dideliam sakinių su ieškomu daugiaprasmiu žodžiu skaičiui, gaunamas gana didelis jo reikšmingų žodžių vektorius. Toliau viskas vyksta taip pat kaip nurodyta algoritmo formulavime: suformuojama 34x34 ryšių matrica. Jai skaičiuojamos PMI reikšmės. Imami visi sakiniai, kuriuose randamas žodis place ir skaičiuojami jų centroidiniai vidurkiai. Gauti duomenys yra klasterizuojami: 39

27 pav. Duomenų klasteriai (10 kaimynų) Atlikus detalius skaičiavimus buvo nustatyta jog klasteriui 0 buvo priskirta žodžio place prasmė apibūdinanti daiktavardį vieta, o klasteriui 1 priskirta reikšmė apibūdinanti veiksmažodį padėti, įdėti. Toks klasterių pasiskirstymas leido nustatyti, jog šio eksperimento tikslumo koeficientas yra 78,75%. Tai yra taip pat neblogas rezultatas, žinant, kad šiuo atveju žodis place buvo labiau reprezentuotas Brown tekstyne nei ankstesnis žodis stick. Toliau vėl bandoma tikrinti kokią įtaką klasterizavimui daro skirtingas kaimyninių žodžių skaičius, todėl atliekamas eksperimentas su 5 kaimynais. Kadangi šiuo bandymu kaimynų yra perpus mažiau, todėl pašalinus visus nereikšminius žodžius bei paliekant ta patį žodžių dažnumo lygį yra gaunamas jau ženkliai mažesnis reikšmingų žodžių vektorius. 28 pav. Žodžio place reikšmingų žodžių vektorius Galima pastebėti, jog visi reikšminiai žodžiai šiuo atveju išlieka tie patys kaip ir bandyme su 10 kaimyninių žodžių, tačiau dabar jų yra nebe 34, o 11. Taigi iškart iškyla klausimas: ar toks reikšmingų žodžių sumažėjimas leis lengviau ir teisingiau sugrupuoti duomenis į atitinkamus klasterius, ar vis dėl to mažinant kaimynus, bus prarandami kai kurie svarbūs žodžiai ir nuo to nukentės tikslumas. Atsakyti į šį klausimą abiejų eksperimentų atveju galima paprasčiausiai palyginant visus rastus sakinius ir jiems priskirtus klasterius. Tam pirmiausiai reikia žinoti kokie yra klasteriai eksperimente su 5 kaimynais: 29 pav. Duomenų klasteriai (5 kaimynai) 40

Gerai įsižiūrėjus į klasterizavimo rezultatus naudojant 10 ir 5 kaimyninius žodžius, kai kuriuose vietose galima įžvelgti klasterių suformavimo neatitikimą, t.y. nevienodą 0 ir 1 išsidėstymą. Tačiau taip gali būti ir dėl pačio bandymo su skirtingu kaimynų skaičiumi, nes kuo mažesnis reikšmingų žodžių vektorius, tuo daugiau sakinių gali turėti silpną ryšį su juo. Toliau lyginant gautus klasterizavimo duomenis su sakiniais ir juose naudojamo žodžio place atitikimą skirtingoms reikšmėms, šiam atvejui buvo nustatytas 64,28% tikslumas. Tai yra 14% procentų mažesnis tikslumas nei tuo atveju kai buvo naudojama 10 kaimyninių žodžių, todėl galima daryti išvadą, kad mažinant kaimynų skaičių, klasterizavimo tikslumas nors ne ženkliai, bet sumažėjo. Kaip matome, žodžiams turintiems dvi prasmes, jų išskyrimo tikslumo rezultatai yra gana neblogi. Kitu eksperimentu bus bandoma patikrinti ar k vidurkių klasterizavimo algoritmas taip pat gerai dirba su žodžiu turinčiu 3 prasmes. Taigi pasirinkau daugiaprasmį žodį right. Nors šis žodis yra gana dažnas šnekamojoje kalboje ir turi nemažai skirtingų prasmių, tačiau pagrindinės išskiriamos yra šios: 1. Teisingas, teisus. 2. Dešinė. 3. Teisė. Kaip ir ansktesniuose bandymuose, taip ir čia su 3 skirtingomis reikšmėmis pirmiausiai pasirenkame 10 kaimynų ribą. Žodis right yra gana neblogai reprezentuojamas Brown tekstyne, t.y. iš viso randami 695 sakiniai. Tuo remiantis bandymams nustatomas taip pat gana aukštas pasikartojančių žodžių dažnumo lygis. Bus atmetami visi žodžiai pasikartojantys mažiau nei 8 kartus. Gaunamas toks reikšmingų žodžių vektorius: 30 pav. Žodžio right reikšmingų žodžių vektorius Toliau k vidurkių klasterizavimo algoritmui pateikiami nebe du, o trys klasteriai ir taip pat pridedama papildoma vidurkinė reikšmė 2, prie jau esančių 0 ir 1. Taigi, pagal esamas vidurkines reikšmes algoritmas turėtų suskaidyti sakinius su žodžiu right į 3 skirtingus klasterius atitinkančius skirtingas prasmes. 41

31 pav. Duomenų klasteriai (10 kaimynų) Kaip matome algoritmas išskirstė duomenis į tris klasterius: 0, 1, 2. Kadangi programa negali rezultato pateikti žodžiais, t.y. kuris klasteris atitinka kurią žodžio right reikšmę, todėl šioje vietoje būtina peržiūrėti gautus pilnus sakinius ir pabandyti suskaičiuoti kokį tikslumą duoda k vidurkių klasterizavimo algoritmas duomenims suskaidytiems į 3 klasterius. Žemiau pateikti keletas gautų sakinių atspindinčių skirtingas žodžio right prasmes: 32 pav. Sakiniai su žodžiu right 42

Šiame paveikslėlyje pavaizduoti patys pirmieji 4 sakiniai su žodžiu right, kuriuos programa rado tekstyne. Paėmę iš anksčiau nustatytų duomenų klasterio pirmus 4 duomenis: 2, 0, 1, 2; nesunkiai galime patikrinti ar šie klasteriai atpažįstami teisingai, iš dalies teisingai ar blogai. Pirmas ir ketvirtas sakiniai apibrėžia reikšmę dešinė. Antrame sakinyje gaunama reikšmė yra teisingas. Ir trečiasis pateikiamas su reikšme teisė. Lyginant šias prasmes su gautais nustatytais klasteriais, galime pastebėti, jog yra gaunamas 100% tikslumas. Pirmą ir ketvirtą sakinius atitinkanti reikšmė dešinė patenka į skaičiumi 2 pažymėtą klasterį, o likusios reikšmės teisingas ir teisė atitinkamai pateko į skaičiais 0 ir 1 pažymėtus klasterius. Dažnai atliekant įvairius eksperimentus pačioje pradžioje yra gaunami labai geri rezultatai, tačiau norint nustyti tikrą klasterių ir žodžių prasmių atitikimą, reikėtų ištirti visus gautus sakinius. Šiame eksperimente, žodžiui right parinkus 10 kaimyninių žodžių ir sudarius 3 klasterius, buvo gautas 72% tikslumas. Tolesniam eksperimentui kaip ir su kitais jau naudotais žodžiais, taip ir su žodžiu right, buvo pasirinkti 5 kaimyniniai žodžiai iš kairės ir iš dešinės bei tie patys 3 klasteriai. Gautas toks reikšmingų žodžių vektorius: 33 pav. Žodžio right reikšmingų žodžių vektorius Kaip matome gautą vektorių sudaro 4 kartus mažiau reikšminių žodžių negu tuo atveju, kai buvo naudojama 10 kaimynų. Tai yra jau savaime daug pasakantis faktas, nes esant mažam žodžių skaičiui ir dideliam sakinių su ieškomu daugiaprasmiu žodžiu skaičiui, pastebima tikslumo mažėjimo tendencija. 34 pav. Duomenų klasteriai (5 kaimynai) Iš gautų duomenų klasterių taip pat galima pastebėti, jog didžioji dalis sakinių yra priskirti 0 ir 1 klasteriams, ir tik nedidelis kiekis skiriamas 2 klasteriui. Atlikti skaičiavimai tik dar labiau 43

patvirtina įvairias teorines prielaidas. Naudojant 5 kaimynus, žodžiui right yra gaunamas tik 26% tikslumas. Atlikus šiuos visus eksperimentus, skirtus ištirti kaimynų įtaką reikšmingų žodžių vektoriaus algoritmo tikslumui buvo gauti įvairūs rezultatai, kurie yra apibendrinami žemiau pateiktoje lentelėje. 3 lentelė Kaimyninių žodžių įtakos rezultatai Kaimynai = 5 Kaimynai = 10 Kaimynai = 15 stick Nesuformuojami klasteriai Tikslumas 83% Tikslumas 63% place Tikslumas 64,28% Tikslumas 78,75% Nesuformuojami klasteriai right Tikslumas 26% Tikslumas 72% Tikslumas 56% chair Tikslumas 8% Tikslumas 10% Nesuformuojami klasteriai key Nesuformuojami klasteriai Tikslumas 75% Tikslumas 49% Iš gautų rezultatų galima formuoti išvadą, jog daugeliu atveju kaimyninių žodžių skaičius turi labai didelę įtaką klasterizavimo tikslumui. Didžiausią tikslumą parodė atvejai kai naudojama 10 kaimyninių žodžių. Nuo šios ribos mažinant arba didinant kaimynų skaičių, tikslumas nuosekliai mažėjo. Kai kuriems žodžiams naudojant 5 ir 15 kaimynų net nebuvo suformuoti klasteriai, t.y. gautas neigiamas bandymo rezultatas. Kaip galima pastebėti žodžio chair atveju naudojant skirtingus kaimynus, tikslumas skyrėsi labai nedaug, tačiau jis buvo labai mažas ir analizė parodė, jog žodis chair Brown tekstyne nėra tinkamai reprezentuojamas. 44

4.3.2. Eksperimentai su žodžių dažnumais Šiame skyrelyje bus eksperimentuoja naudojant skirtingus žodžių pasikartojimo dažnumus formuojant reikšmingų žodžių vektorių ir žiūrima kaip tai įtakoja klasterizavimo tikslumą. Ankstesni bandymai su kaimyniniais žodžiais parodė, jog geriausi rezultatai pasiekiami naudojant 10 kaimynų, todėl ir čia jų naudosime tiek pat. Pirmas eksperimentas atliekamas su dviprasmiu žodžiu stick. Bandymuose su kaimynais jam buvo naudojama ne mažiau kaip 3 pasikartojančių žodžių riba ir tai davė 83% tikslumą. Šiame bandyme padidinus dažnumo ribą iki 4 žodžių buvo gautas reikšmingų žodžių vektorius turintis tik 3 žodžius. Tai automatiškai sugeneravo jau anksčiau matytą klaidos pranešimą, reiškiantį jog programai nepavyko iš turimų duomenų priskirti dviejų klasterių. 35 pav. Klasterizavimo klaidos pranešimas Sumažinus dažnumo ribą iki 2 kartus pasikartojančių žodžių buvo gautas toks reikšmingų žodžių vektorius: 36 pav. Žodžio stick reikšmingų žodžių vektorius Nors gautą vektorių sudaro nemažai žodžių, tačiau daugelis jų bendrame kontekste turi labai mažai sąsajų su daugiaprasmiu žodžiu. Atlikus skaičiavimus pagal klasterizavimo duomenis buvo gautas vos 23% tikslumas. Taigi nė vienas šiame eksperimente su žodžiu stick naudotų dažnumo atvejų nepagerino tikslumo, kuris buvo gautas naudojant 10 kaimyninių žodžių ir 3 kartus pasikartojančius žodžius. Paimkime kitą žodį place, kuris yra žymiai geriau reprezentuojamas Brown tekstyne. Jeigu kaimynų bandymuose buvo naudoti daugiau nei 7 kartus pasitaikantys žodžiai, tai šiuo atveju padidinus žodžių dažnumą iki 9 buvo gautas toks reikšmingų žodžių vektorius: 45