Mendelova univerzita v Brnˇe Provoznˇe ekonomick´a fakulta
Aplikov´ an´ı paralelismu pˇri dolov´ an´ı znalost´ı z textov´ ych dat Diplomov´ a pr´ ace
Vedouc´ı pr´ace:
Bc. Zdenˇek Nov´ak
doc. Ing. Frantiˇsek Daˇrena, Ph.D.
Brno 2013
list originalniho zadani prace
Dˇekuji vedouc´ımu pr´ace, doc. Ing. Frantiˇsku Daˇrenovi, Ph.D., za veden´ı pˇri zpracov´an´ı diplomov´e pr´ace a za poskytnut´ı nezbytn´ ych podklad˚ u, pomoci a cenn´ ych rad. ˇ zkovi, CSc., za sezn´amen´ı s problematikou text miningu Dˇekuji tak´e doc. Ing. Janu Ziˇ a pomoci pˇri vypr´acov´an´ı t´eto pr´ace.
Prohlaˇsuji, ˇze jsem tuto pr´aci vypracoval zcela samostatnˇe s pouˇzit´ım v´ yhradnˇe tˇech zdroj˚ u, kter´e jsou souhrnnˇe uvedeny v seznamu literatury.
Brno, 23. kvˇetna 2013
....................................................
5
Abstract Zdenˇek Nov´ak, Application of parallel approach to text mining. Diploma thesis. Brno, 2013. The diploma thesis deals with mining knowledge from large collections of textual data using parallelism as a possible solution of problems related to high computational complexity of this process. It describes issues associated with preprocessing of textual data and usage of machine learning algorithms. The outcome is represented by the results of experiments that compare a traditional approach to text classification with a parallel approach. For the purpose of realizing these experiments an application (using some popular libraries (sometimes modified) and software) was implemented. The applied classification algorithms include neural networks, support vector machines, and k-nearest neighbours. The results demonstrate that a parallel approach enables to reduce the time complexity of the process while maintaining sufficient values of classification performance metrics. Keywords text mining, machine learning, classification, parallelism, neural networks, support vector machines, k-nearest neighbours
Abstrakt Zdenˇek Nov´ak, Aplikov´an´ı paralelismu pˇri dolov´an´ı znalost´ı z textov´ ych dat. Diplomov´a pr´ace. Brno, 2013. Diplomov´a pr´ace se zab´ yv´a problematikou dolov´an´ı znalost´ı z rozs´ahl´ ych kolekc´ı textov´ ych dat a moˇzn´ ym ˇreˇsen´ım tohoto v´ ypoˇcetnˇe n´aroˇcn´eho procesu v podobˇe paralelizace. Popisuje problematiku spojenou s pˇr´ıpravou textov´ ych dat a jejich n´asledn´ ym zpracov´an´ım algoritmy strojov´eho uˇcen´ı. V´ ystupem jsou v´ ysledky experiment˚ u, kter´e porovn´avaj´ı tradiˇcn´ı sekvenˇcn´ı pˇr´ıstup klasifkiace dat s paraleln´ım ˇreˇsen´ım. Pro u ´ˇcely realizace tˇechto experiment˚ u byla implementov´ana aplikace (s vyuˇzit´ım zn´am´ ych knihoven (ˇca´steˇcnˇe upraven´ ych) a softwaru). Pouˇzit´e klasifikaˇcn´ı algoritmy zahrnuj´ı neuronov´e s´ıtˇe, podp˚ urn´e vektory a k-nejbliˇzˇs´ıch soused˚ u. V´ ysledky ukazuj´ı, ˇze pouˇzit´ı paraleln´ıho pˇr´ıstupu umoˇzn ˇuje sn´ıˇzen´ı ˇcasov´e n´aroˇcnosti procesu se souˇcasn´ ym zachov´an´ım dostateˇcn´ ych hodnot metrik pro zhodnocen´ı pˇresnosti klasifikace. Kl´ıˇ cov´ a slova dolov´an´ı znalost´ı z textov´ ych dat, strojov´e uˇcen´ı, klasifikace, paralelismus, neuronov´e s´ıtˇe, porp˚ urn´e vektory, k-nejbliˇzˇs´ıch soused˚ u
6
OBSAH
Obsah ´ 1 Uvod a c´ıl pr´ ace ´ 1.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 C´ıl pr´ace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Souˇ casn´ y stav 2.1 Text mining . . . . . . . 2.2 Reprezentace dokument˚ u 2.3 Klasifikace dokument˚ u . 2.4 Hodnocen´ı u ´spˇeˇsnost´ı . . 2.5 Paraleln´ı zpracov´an´ı . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
3 Metodika zpracov´ an´ı 3.1 Data . . . . . . . . . . . . . . . . . 3.1.1 Standardn´ı zdroje textov´ ych 3.1.2 Vytvoˇren´ı nov´e kolekce . . . 3.2 Algoritmy strojov´eho uˇcen´ı . . . . . 3.3 V´ ybˇer mnoˇziny dat a jej´ı rozdˇelˇen´ı 3.4 Technologie pro implementaci . . . 3.4.1 V´ ybˇer knihoven . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . . kolekc´ı . . . . . . . . . . . . . . . . . . . . . . . . . .
4 V´ ysledky 4.1 N´avrh experiment˚ u . . . . . . . . . . . . 4.2 N´avrh aplikace pro realizaci experiment˚ u 4.3 Implementace . . . . . . . . . . . . . . . 4.3.1 Adres´aˇrov´a struktura . . . . . . . 4.3.2 Rozˇs´ıˇren´ı modulu TextMining . . 4.3.3 Rozˇs´ıˇren´ı knihovny FANN . . . . 4.3.4 Form´at pro bin´arn´ı uchov´an´ı dat 4.3.5 Nejbliˇzˇs´ı soused . . . . . . . . . . 4.4 Experimenty . . . . . . . . . . . . . . . . 4.4.1 Neuronov´e s´ıtˇe . . . . . . . . . . 4.4.2 Podp˚ urn´e vektory . . . . . . . . . 4.4.3 Nejbl´ıˇzˇs´ı soused . . . . . . . . . . 4.4.4 Shrnut´ı v´ ysledk˚ u . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
8 8 8
. . . . .
9 13 14 28 37 39
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
40 40 40 41 42 42 43 44
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
48 48 48 49 52 52 54 56 58 58 59 61 61 63
5 Diskuze 65 5.1 Nedostatky implementace . . . . . . . . . . . . . . . . . . . . . . . . 65 5.2 Moˇznosti nav´az´an´ı na pr´aci . . . . . . . . . . . . . . . . . . . . . . . 65 5.3 Moˇznosti vyuˇzit´ı v praxi . . . . . . . . . . . . . . . . . . . . . . . . . 65 6 Z´ avˇ er
66
OBSAH
7
A Pˇ r´ıloha 1
67
B Literatura
68
1
´ ´ UVOD A C´ıL PRACE
1 1.1
8
´ Uvod a c´ıl pr´ ace ´ Uvod
Jiˇz nˇekolik des´ıtek let jsou zn´am´e modely a navrˇzen´e inteligentn´ı algoritmy, jejichˇz pouˇzit´ı ale nebylo do ned´avn´e doby moˇzn´e. Kupˇr´ıkladu model umˇel´eho neuronu byl poprv´e pˇredstaven na zaˇc´atku druh´e poloviny minul´eho stolet´ı (Rosenblatt, 1957), ale jeho praktick´a realizace nebyla v dan´e dobˇe kv˚ uli neodstateˇcn´e v´ ypoˇcetn´ı technice moˇzn´a. Teprve v ned´avn´e dobˇe umoˇznilo neust´al´e zvyˇsov´an´ı v´ ypoˇcetn´ıch moˇznost´ı jeho re´aln´e vyuˇzit´ı a obecnˇe rozvoj umˇel´e inteligence, kter´a si klade za c´ıl stvoˇrit inteligentn´ı program ˇci stroj. Jde o velice zaj´ımav´ y obor v oblasti poˇc´ıtaˇcov´e ˇ vˇedy, kter´ y pˇritahuje znaˇcn´e mnoˇzstv´ı lid´ı. Casto jsou vˇsak souˇcasn´e moˇznosti st´ale omezeny dostupnou v´ ypoˇcetn´ı kapacitou, a proto nˇekter´a u ´sil´ı smˇeˇruj´ı k hled´an´ı zp˚ usob˚ u, jak tyto n´aroky na poˇc´ıtaˇcovou techniku sn´ıˇzit. Jednou z mnoha oblast´ı umˇel´e inteligence je dolov´an´ı znalost´ı z dat, jehoˇz princip spoˇc´ıv´a v prohled´av´an´ı velk´eho mnoˇzstv´ı sebran´ ych u ´daj˚ u s c´ılem odhalit v tˇechto datech nov´e, skryt´e in’ formace. Zvl´aˇst n´ım pˇr´ıpadem je dolov´an´ı znalost´ı z textov´ ych dat. S re´aln´ ymi aplikacemi z t´eto oblasti se vˇetˇsina lid´ı setk´av´a kaˇzd´ y den, napˇr. pˇri vyhled´av´an´ı pˇres celosvˇetov´ y vyhled´avaˇc Google. Jde tedy o velice zaj´ımavou oblast hromadn´eho zpracov´an´ı dat, protoˇze d´ıky dneˇsn´ımu rozˇs´ıˇren´ı internetu a moˇznostech, kter´e nejr˚ uznˇejˇs´ı webov´e aplikace nab´ızej´ı, je k dispozici obrovsk´e mnoˇzstv´ı textov´ ych dat. Nˇekter´e aplikace nemus´ı d´ıky mal´emu mnoˇzstv´ı dat dostupn´ ych ke zpracov´an´ı dosahovat kvalitn´ıch v´ ysledk˚ u a jedn´ım ze zp˚ usob˚ u, jak v´ ysledky vylepˇsit, je pr´avˇe vˇetˇs´ı mnoˇzstv´ı dat (Banko, Brill, 2001). S mnoˇzstv´ım dat nen´ı u dolov´an´ı z text˚ u probl´em, ale narozd´ıl od klasick´eho dolov´an´ı jsou n´aroky na v´ ypoˇcetn´ı v´ ykon vyˇsˇs´ı. M˚ uˇze za to pr´avˇe povaha textov´ ych dat. D˚ usledkem je tedy nemoˇznost zpracov´avat v rozumn´em ˇcase velk´a mnoˇzstv´ı textov´ ych dat, pˇrestoˇze jsou dostupn´a a mohla by tak b´ yt nˇejak´ ym zp˚ usobem vyuˇzita. Moˇzn´ ym ˇreˇsen´ım, kter´ ym se zab´ yv´a tak´e tato diplomov´a pr´ace, je aplikov´an´ı paraleln´ıho pˇr´ıstupu. Ten umoˇzn ˇuje sn´ıˇzit v´ ypoˇcetn´ı n´aroky kladen´e na poˇc´ıtaˇcovou techniku pˇri zpracov´an´ı rozs´ahl´ ych kolekc´ı textov´ ych dokument˚ u ˇ zka, Daˇrena, 2012). Pˇredevˇs´ım jde o zjiˇstˇen´ı moˇznost´ı nasazen´ı konkr´etn´ıch al(Ziˇ goritm˚ u pˇri paraleln´ım zpracov´an´ı a jak´ y bude m´ıt tento pˇr´ıstup dopad na jejich schopnost poskytovat spr´avn´e v´ ysledky v rozumn´em ˇcase.
1.2
C´ıl pr´ ace
C´ılem pr´ace je prozkoumat moˇznosti aplikov´an´ı paraleln´ıho pˇr´ıstupu pˇri dolov´an´ı znalost´ı z rozs´ahl´ ych kolekc´ı textov´ ych dat. Hlavn´ı snaˇzen´ı bude smˇeˇrovat na porovn´an´ı vlivu tohoto pˇr´ıstupu na pˇresnost a v´ ypoˇcetn´ı n´aroˇcnost r˚ uzn´ ych algoritm˚ u strojov´eho uˇcen´ı, kter´e jsou pouˇz´ıv´any pro klasifikaci textov´ ych dat. Pro tyto u ´ˇcely bude nutn´e realizovat sadu experiment˚ u, kter´e poskytnou v´ ysledky vhodn´e pro tato srovn´an´ı. V pr´aci bude navrˇzen form´at tˇechto experiment˚ u a z´ıskan´e v´ ysledky vyhodnoceny. Pro jejich realizaci bude tak´e implementov´ana aplikace.
2
ˇ ´ STAV SOUCASN Y
2
9
Souˇ casn´ y stav
Umˇel´a inteligence je v dneˇsn´ı dobˇe samostatn´ ym vˇedn´ım oborem, kter´ y si od sv´eho vzniku v roce 1987 proˇsel obdob´ımi velik´eho nadˇsen´ı a vkl´ad´an´ı mnoha nadˇej´ı i neutuchaj´ıc´ı skepse a odm´ıt´an´ı. Samotn´e z´aklady poloˇzil v roce 1956 na univerzitˇe v Princetonu John McCarthy, a to uspoˇra´d´an´ım prvn´ı mezin´arodn´ı konference, jej´ımˇz t´ematem byla pr´avˇe umˇel´a inteligence. Za sv´e pˇrispˇen´ı na poli tohoto nov´eho vˇedn´ıho oboru pak v roce 1985 obdrˇzel Turingovu cenu (AI Basics). Mezi u ´ˇcastn´ıky t´eto konference byl i Marvin Minsky, kter´ y je tak´e povaˇzov´an za jednoho z otc˚ u modern´ı umˇel´e inteligence. On s´am ji pak definuje jako vˇedu, jej´ımˇz c´ılem je tvorba stroj˚ u na dˇel´an´ı vˇec´ı, pro jejichˇz vykon´av´an´ı je vyˇzadov´ana urˇcit´a inteligence, prov´ad´ı-li je ˇclovˇek (Whitby, 1996). Toto samozˇrejmˇe nen´ı jedin´a z definic, na kter´e lze pˇri nahl´ednut´ı do r˚ uzn´ ych uˇcebnic, vˇedeck´ ych ˇcl´ank˚ u ˇci internetu narazit. Dokonce je moˇzn´e se na umˇelou inteligenci d´ıvat nikoliv jako na vˇedn´ı obor, n´ ybrˇz jako na urˇcitou vlastnost umˇel´eho (ve smyslu neˇziv´eho) objektu, kter´a mu umoˇzn ˇuje se inteligentnˇe rozhodovat nejen na z´akladˇe vjem˚ u, kter´e z´ısk´av´a ze sv´eho okol´ı, ale tak´e na z´akladˇe vlastn´ıch znalost´ı, kter´e m´a uchov´any ve sv´e pamˇeti. Samotn´ y pojem inteligentn´ı rozhodov´an´ı je vˇsak pomˇernˇe v´agn´ı. Intuitivnˇe si pod t´ımto lze pˇredstavit napˇr´ıklad to, ˇze inteligentnˇe se rozhoduj´ıc´ı stroj by mˇel doch´azet k podobn´ ym z´avˇer˚ um, ke kter´ ym by za stejn´ ych okolnost´ı dospˇel ˇclovˇek. Definitivn´ı rozhodnut´ı o tom, zda je stroj inteligentn´ı nebo nikoliv, je moˇzn´e uˇcinit na z´akladˇe tzv. Turingova testu, pojmenovan´em po britsk´em matematikovi Alanu Turingovi. Ten se ve sv´em ˇcl´anku Computing machinery and intelligence (1950) zaob´ıral ot´azkou, zda je moˇzn´e uvaˇzovat nad t´ım, jestli mohou stroje myslet. M´ısto pokus˚ u o jej´ı zodpovˇezen´ı, kv˚ uli v´ıcev´ yznamnosti slov stroj a myslet, navrhl jin´ y pˇr´ıstup k formulaci tohoto probl´emu, a to ve formˇe hry. T´eto se u ´ˇcastn´ı celkem tˇri osoby: muˇz, ˇzena a tazatel. Tazatel z˚ ust´av´a v oddˇelen´e m´ıstnosti a obˇema osob´am ´ pokl´ad´a ot´azky, pˇriˇcemˇz jejich odpovˇedi pak dost´av´a v tiˇstˇen´e podobˇe. Ukolem tazatele je rozpoznat, kdo je muˇz a kdo ˇzena, a oba dva se snaˇz´ı tazatele pˇresvˇedˇcit, ˇze jsou ˇzena, tzn. ˇze muˇz z´amˇernˇe lˇze, zat´ımco ˇzena ˇr´ık´a pravdu. K tomuto je vˇsak tˇreba urˇcit´ ym zp˚ usobem myslet a inteligentnˇe odpov´ıdat. Muˇz je pot´e v pr˚ ubˇehu hry nahrazen umˇelou inteligenc´ı a pokud stroj zvl´adne svou u ´lohu a obelˇze tazatele, tak t´ımto testem proˇsel. Jeho chov´an´ı tud´ıˇz lze oznaˇcit za inteligentn´ı. Dodnes se to vˇsak ˇza´dn´emu stroji zcela nepodaˇrilo. Nejbl´ıˇze tomu byl program Josepha Weizenbauma (1966),1 kter´ y je i nˇekter´ ymi lidmi povaˇzov´an za prvn´ı, kter´ y testem proˇsel. Princip spoˇc´ıv´a v jednoduch´em hled´an´ı kl´ıˇcov´ ych slov v pr˚ ubˇehu konverzace, na z´akladˇe kter´ ych pak sestavuje svoje odpovˇedi a nov´e ot´azky. Pokud nen´ı k dispozici dostatek informac´ı pro sestaven´ı odpovˇedi, program opakuje dˇr´ıvˇejˇs´ı v´ yroky nebo pouˇz´ıv´a obecn´e odpovˇedi – tento postup je zaloˇzen na tzv. rogeri´ansk´e psychoterapii. D´ıky tˇemto princip˚ um program dok´azal tazatele v Turingovˇe testu pˇresvˇedˇcit o tom, ˇze je ˇclovˇek. 1
dnes jsou podobn´e programy zn´ am´e pod n´azvem chatterbot
2
ˇ ´ STAV SOUCASN Y
10
Umˇel´a inteligence – jako vˇedn´ı obor – v dneˇsn´ı dobˇe v podstatˇe zastˇreˇsuje celou ˇradu r˚ uzn´ ych pˇr´ıstup˚ u ˇreˇsen´ı t´eto problematiky. D˚ uvodem je to, ˇze narozd´ıl od konkr´etn´ıch implementac´ı umˇel´e inteligence hraj´ıc´ı napˇr´ıklad ˇsachy, tak vytvoˇren´ı obecn´e umˇel´e inteligence, kter´a by sv´ ymi kvalitami byla alespoˇ n srovnateln´a s lidsk´ ym myˇslen´ım, se velice brzo uk´azalo jako t´emˇeˇr neˇreˇsiteln´ y probl´em. Proto se souˇcasn´a snaha zamˇeˇruje zejm´ena na hled´an´ı d´ılˇc´ıch ˇreˇsen´ı. Technologie a pˇr´ıstupy, kter´e se se pro tyto u ´ˇcely vyuˇz´ıvaj´ı jsou (Russell, Norvig, 1995): • strojov´e uˇcen´ı, • expertn´ı syst´emy, • fuzzy logika, • neuronov´e s´ıtˇe, • genetick´e programov´an´ı, • proch´azen´ı stavov´eho prostoru, • dolov´an´ı z dat. Expertn´ı syst´emy jsou jedn´ım z typ˚ u tzv. znalostn´ıch syst´em˚ u, coˇz jsou ve sv´e podstatˇe programov´e syst´emy, kter´e maj´ı v nˇejak´e konkr´etn´ı podobˇe uloˇzeny znalosti z urˇcit´e probl´emov´e oblasti a vyuˇz´ıvaj´ı je k hled´an´ı ˇreˇsen´ı na probl´emy spadaj´ıc´ı do stejn´e oblasti (Koneˇcn´ y, Trenz, 2010). Expertn´ı syst´emy se vˇsak odliˇsuj´ı t´ım, ˇze dok´aˇz´ı nalezen´e ˇreˇsen´ı zd˚ uvodnit. D˚ uvodem jejich tvorby je pˇredevˇs´ım nedostatek expert˚ u, jejichˇz sluˇzby b´ yvaj´ı jednak drah´e, ale tak´e nemus´ı b´ yt kv˚ uli ˇcasov´e vyt´ıˇzenosti experta v˚ ubec dostupn´e. Vytvoˇren´ım syst´emu jsou pak znalosti snadno kdykoliv dostupn´e, jeho u ´drˇzba je levnˇejˇs´ı, zaruˇcuje urˇcitou u ´roveˇ n bezchybnosti a uchov´av´a data po neomezenˇe dlouhou dobu. Asi nejvˇetˇs´ı probl´em vˇsak spoˇc´ıv´a pr´avˇe v z´ısk´an´ı potˇrebn´ ych znalost´ı od expert˚ u. Ti mus´ı formulovat tzv. rozhodovac´ı pravidla, kter´a jsou n´aslednˇe pˇrevedena do podoby srozumiteln´e pro expertn´ı syst´em. Princip fungov´an´ı syst´emu spoˇc´ıv´a v pouˇzit´ı inferenˇcn´ıho (odvozovac´ıho) mechanismu, kter´ y na z´akladˇe b´aze znalost´ı sest´avaj´ıc´ı z fakt˚ u (atomick´a pravdiv´a tvrzen´ı) a pravidel, metodou zpˇetn´eho ˇretezen´ı odvod´ı jednotliv´e podc´ıle a poˇrad´ı jejich ˇreˇsen´ı. C´ılem fuzzy logiky je umoˇznit pr´aci s tzv. v´agn´ımi pojmy, coˇz jsou hodnoty vyj´adˇren´e slovnˇe nikoliv konkr´etn´ı ˇc´ıselnou hodnotou. Sv´e uplatnˇen´ı nalezla ve fuzzy expertn´ıch syst´emech, u kter´ ych jsou pravidla formulov´ana slovn´ımi hodnotami (Koneˇcn´ y, Trenz, 2010). Tyto hodnoty zastupuj´ı urˇcit´ y interval ˇc´ıseln´ ych hodnot a z´aroveˇ n definuj´ı i jistotu, s jakou konkr´etn´ı prvek nebo hodnota do dan´eho intervalu patˇr´ı ˇci ne. Jin´ ym oznaˇcen´ım pro tyto intervaly hodnot jsou fuzzy mnoˇziny. Genetick´e programov´an´ı je zaloˇzen´e na principech prob´ıhaj´ıc´ıch v pˇr´ırodˇe na u ´rovni biologick´e evoluce. Zakladn´ı myˇslenka je inspirov´ana Darwinovou teori´ı o v´ yvoji ˇzivoˇciˇsn´ ych druh˚ u, tedy ˇze zjednoduˇsenˇe pˇreˇzij´ı jen ti nejsilnˇejˇs´ı, potaˇzmo nejlepˇs´ı, jedinci. Princip spoˇc´ıv´a ve vygenerov´an´ı populace nˇejak´ ych ˇreˇsen´ı pro urˇcit´ y
2
ˇ ´ STAV SOUCASN Y
11
probl´em. D˚ uleˇzit´e je, aby poˇca´teˇcn´ı populace byla dostateˇcnˇe poˇcetn´a, jinak by mohlo doj´ıt k degenerov´an´ı ˇreˇsen´ı. Na ˇcleny populace jsou pak v kaˇzd´e iteraci, pˇredstavujic´ı jednu generaci populace, aplikov´any tˇri z´akladn´ı operace, a to kˇr´ıˇzen´ı, mutace a v´ ybˇer nejlepˇs´ıch jedinc˚ u (Koza, 1990). Je tedy nutn´e nˇejak´ ym zp˚ usobem zajistit srovnatelnost jednotliv´ ych ˇclen˚ u populace. Ti jsou reprezentov´ani chromozomy skl´adaj´ıc´ı se z urˇcit´eho poˇctu gen˚ u. Kvalitu jedince pak urˇcuje tzv. funkce 2 pˇrizp˚ usobivosti. L´epe ohodnocen´ı jedinci maj´ı pak vyˇsˇs´ı ˇsanci, ˇze budou vybr´ani do procesu kˇr´ıˇzen´ı, a t´ım pˇr´ıpadnˇe pˇrenesou alespoˇ n ˇca´st sv´e kvality na potomky. H˚ uˇre ohodnocen´ı jedinci nejsou z v´ ybˇeru zcela vyˇrazeni, ale jejich ˇsance na participaci jsou v´ yraznˇe menˇs´ı. Proces mutace, pˇredstavuj´ıc´ı n´ahodnou zmˇenu gen˚ u jedince, je do jednotliv´ ych generac´ı populace zaveden kv˚ uli tomu, aby dˇr´ıv nebo pozdˇeji nedoch´azelo k degeneraci, coˇz odpov´ıd´a uv´ıznut´ı v lok´aln´ım extr´emu. Ide´aln´ı ˇreˇsen´ı se tedy naproti tomu nach´az´ı v glob´aln´ım extr´emu. V´ yhodou genetick´ ych algoritm˚ u je, ˇze se pˇri hled´an´ı ˇreˇsen´ı nemus´ı vyh´ ybat lok´aln´ım extr´em˚ um, narozd´ıl od mnoha jin´ ych algoritm˚ u jako neuronov´e s´ıtˇe, kter´e v lok´aln´ım extr´emu snadno uv´ıznou. Nˇekteˇr´ı jedinci populace naopak obsad´ı tyto extr´emy a jejich potomci pak budou pˇredstavovat ˇreˇsen´ı jin´a. Genetick´e algoritmy lze pouˇz´ıt na ˇreˇsen´ı cel´e ˇrady probl´em˚ u, kupˇr´ıkladu aproximace funkce, probl´em obchodn´ıho cestuj´ıc´ıho nebo i generov´an´ı zdrojov´eho k´odu. Proch´azen´ı stavov´eho prostoru je jednou z d˚ uleˇzit´ ych ˇc´ast´ı umˇel´e inteligence, jelikoˇz pˇredstavuje jeden ze z´akladn´ıch u ´kon˚ u, kter´e je potˇreba ˇreˇsit. Ani se souˇcasn´ ym v´ ypoˇcetn´ım v´ ykonem nen´ı moˇzn´e, aby programy prohled´avaly vˇsechny moˇzn´e kombinace hodnot jednotliv´ ych promˇenn´ ych, dokud nenaraz´ı na spr´avn´e ˇreˇsen´ı. Z tohoto d˚ uvodu je nutn´e hledat ˇreˇsen´ı inteligentnˇejˇs´ım zp˚ usobem, a to pomoc´ı stavov´eho prostoru. Jednotliv´e kombinace hodnot promˇenn´ ych pˇredstavuj´ı konkr´etn´ı stavy, pˇriˇcemˇz existuj´ı dva v´ yznaˇcn´e stavy, a to poˇca´teˇcn´ı, odkud zaˇc´ın´a proces prohled´av´an´ı stavov´eho prostoru, a stav koncov´ y, kter´ y vyhovuje podm´ınk´am na poˇzadovan´e ˇreˇsen´ı probl´emu. Aby bylo moˇzn´e pˇrech´azet mezi jednotliv´ ymi stavy, tak jsou zavedeny tzv. operace, jejichˇz realizac´ı se stroj pohybuje stavov´ ym prostorem a prohled´av´a dostupn´e stavy. Cel´ y statov´ y prostor je moˇzn´e zn´azornit pomoc´ı orientovan´eho grafu, ve kter´em uzly pˇredstavuj´ı stavy a hrany operace. Zpravidla se stavov´ y prostor nikdy neuchov´av´a v pamˇeti stroje cel´ y, protoˇze pro komplexnejˇs´ı typ u ´loh to zkr´atka nen´ı moˇzn´e. M´ısto toho se n´asleduj´ıc´ı stavy generuj´ı na z´akladˇe aktu´aln´ıho stavu a operac´ı, kter´e je moˇzn´e z tohoto stavu realizovat. Stroj si pak vyb´ır´a, do kter´eho stavu pˇrejde na z´akladˇe hodnot´ıc´ı funkce, kter´a stanov´ı, jak´ y uˇzitek3 dan´ y stav pˇrinese. Typick´ ym pˇr´ıkladem u ´lohy, jej´ıˇz ˇreˇsen´ı je zaloˇzen´e pr´avˇe na proch´azen´ı stavov´eho prostoru, je hra mision´aˇri a kanibalov´e. Ta spoˇc´ıv´a v pˇrepraven´ı tˇr´ı kanibal˚ u a tˇr´ı mision´aˇr˚ u na druh´ y bˇreh pomoc´ı lod’ky, kter´a uveze maxim´alnˇe dvˇe osoby. D˚ uleˇzit´e vˇsak je aby, na jednom z bˇreh˚ u nebyli kanibalov´e v poˇcetn´ı pˇrevaze. Stavy zde pˇredstavuj´ı pozici lod’ky a poˇcty kanibal˚ u a mision´aˇr˚ u na obou bˇrez´ıch. Operace pak jsou moˇzn´e pˇrevozy z jednoho bˇrehu na druh´ y. Zde 2 3
v origin´ ale fitness function programy pracuj´ıc´ı t´ımto zp˚ usobem jsou oznaˇcov´any jako uˇzitkovˇe zamˇeˇren´ı agenti
2
ˇ ´ STAV SOUCASN Y
12
je stavov´ y prostor natolik mal´ y (pokud ukl´ad´ame pouze unik´atn´ı stavy), ˇze nic nebr´an´ı tomu, naj´ıt ˇreˇsen´ı prohled´an´ım vˇsech moˇzn´ ych stav˚ u. Oproti tomu hra v ˇsachy tento pˇr´ıstup jiˇz neumoˇzn ˇuje. Stavy zde pˇredstavuj´ı rozestaven´ı figurek na ˇsachovnici a operace moˇzn´e tahy. Odhaduje se, ˇze pokud by byl pro uloˇzen´ı kaˇzd´eho stavu pouˇzit atom ve vesm´ıru, pak stejnˇe nebude moˇzn´e uchovat vˇsechny moˇzn´e stavy. Poˇc´ıtaˇcov´ y hr´aˇc tedy m˚ uˇze zjednoduˇsenˇe fungovat tak, ˇze nˇejak´ ym zp˚ usobem hodnot´ı kvalitu, kterou mi pˇrenesou jednotliv´e tahy, a rozhoduje se na z´akladˇe proch´azen´ı pouze ˇc´asti stavov´eho prostoru. N´aroˇcnost poˇc´ıtaˇcov´eho hr´aˇce pak m˚ uˇze b´ yt urˇcena poˇctem budouc´ıch tah˚ u, kter´e m˚ uˇze pˇri sv´em rozhodov´an´ı prohledat. Dolov´an´ı z dat nelze zcela jednoznaˇcnˇe oznaˇcit jako souˇc´ast umˇel´e inteligence, ale v podstatˇe s n´ı u ´zce souvis´ı. V procesu dolov´an´ı z dat jsou totiˇz velice ˇcasto pouˇz´ıv´any pr´avˇe technologie a pˇr´ıstupy zn´am´e z umˇel´e inteligence, potaˇzmo strojov´eho uˇcen´ı. Samotn´e dolov´an´ı je tedy zamˇeˇreno na hled´an´ı nebo odkr´ yv´an´ı znalost´ı, kter´e mohou b´ yt v datech skrytˇe obsaˇzen´e. V knize Data Mining: Practical Machine Learning Tools and Techniques (Witten, Eibe, 2005) je dolov´an´ı z dat definov´ano jako proces odhalov´an´ı vzor˚ u v datech, pˇriˇcemˇz proces samotn´ y mus´ı b´ yt automatick´ y nebo alespoˇ n poloautomatick´ y a odhalen´e vzory mus´ı b´ yt natolik smyslupln´e, aby dok´azaly poskytnout urˇcitou v´ yhodou, zpravidla ekonomickou. Tato definice zohledˇ nuje i ekonomick´ y rozmˇer z´ıskan´ ych v´ ysledk˚ u. Ve firmen´ım svˇetˇe je totiˇz dolov´an´ı jiˇz pomˇernˇe bˇeˇznou prax´ı, a to v r´amci business inteligence aplikac´ı, kdy se z dat, kter´e firma z´ıskala napˇr´ıklad od sv´ ych z´akazn´ık˚ u, mohou zjiˇst’ovat nov´e skuteˇcnosti, ˇclenit z´akazn´ıky do r˚ uzn´ ych skupin podle jejich preferenc´ı nebo vzor˚ u v jejich n´akupn´ım chov´an´ı. Pˇri tomto pˇr´ıstupu se zpravidla vyuˇz´ıvaj´ı vˇsechny moˇzn´a dostupn´a data, kter´a m´a firma k dispozici. Tato data jsou strukturovan´a a pˇrev´aˇznˇe vyjadˇruj´ı nˇejak´e ˇc´ıslen´e hodnoty, napˇr´ıklad celkov´e pen´ıze utracen´e z´akazn´ıkem za urˇcit´e skupiny produkt˚ u, ˇcetnost jeho n´akup˚ u, poˇcty nakoupen´ ych poloˇzek v d´ılˇc´ıch n´akupech nebo pˇr´ısluˇsnost produktu do urˇcit´e kategorie vyj´adˇren´a ˇ ast dat vˇsak z˚ ˇc´ıseln´ ym identifik´atorem. C´ ust´av´a v r´amci klasick´eho dolov´an´ı z dat nevyuˇzita a je tedy nutn´e hledat jin´e pˇr´ıstupy ˇci metody, kter´e by tuto mezeru dok´azaly zaplnit. Jednou takovou zvl´aˇstn´ı oblast´ı je pak dolov´an´ı z textov´ ych dat, kter´e se bˇeˇznˇe oznaˇcuje jako text mining, pˇr´ıpadnˇe text data mining. T´ema t´eto pr´ace spad´a pr´avˇe do oblasti dolov´an´ı z textov´ ych dat, a proto bude nˇekolik kapitol vˇenov´ano bliˇzˇs´ımu pˇredstaven´ı souˇcasn´ ych postup˚ u pouˇz´ıvan´ ych pˇri text miningu. ´ celem tohoto obecn´eho u Uˇ ´vodu bylo alespoˇ n velice povrchovˇe ˇcten´aˇri nast´ınit historick´ y v´ yvoj v oblasti inteligentn´ıch algoritm˚ u, v jak´em kontextu se souˇcasn´e technologie nach´az´ı, k ˇcemu a jak se vyuˇz´ıvaj´ı a pˇredevˇs´ım poskytnout pˇribliˇznou pˇredstavu o postaven´ı text miningu mezi tˇemito pˇr´ıstupy. Dalˇs´ı kapitoly se jiˇz ˇcistˇe zamˇeˇr´ı pr´avˇe na problematiku dolov´an´ı z textov´ ych dat.
2.1
2.1
Text mining
13
Text mining
Text mining, neboli t´eˇz dolov´an´ı z textov´ ych dat, je ch´ap´an jako proces odvozov´an´ı vysoce kvalitn´ıch informac´ı z textu, pˇriˇcemˇz vysok´a kvalita je ch´ap´ana jako kombinace v´ yznamnosti, novoty a zaj´ımavosti novˇe z´ıskan´ ych informac´ı (Konchady, 2006). Sv´e uplatnˇen´ı nal´ez´a v ˇradˇe r˚ uzn´ ych oblast´ı jako je bioinformatika, webov´e sluˇzby, ˇr´ızen´ı vztahu se z´akazn´ıkem nebo pro akademick´e u ´ˇcely (Text Mining Science, 2012). Jak jiˇz bylo zm´ınˇeno, jde o urˇcitou odnoˇz data miningu, kter´a se zamˇeˇruje ˇcistˇe na textov´a data. Toto je hlavn´ı rozd´ıl oproti klasick´ ym pˇr´ıstup˚ um dolov´an´ı z dat, kter´e vyˇzaduj´ı dobˇre strukturovan´a data. Neznamen´a to vˇsak, ˇze jde o naprosto odliˇsn´e oblasti, opak je pravdou. Pˇri pr´aci s textov´ ymi daty jsou totiˇz velice ˇcasto pouˇz´ıv´any tyt´eˇz postupy a metody jako pˇri zpracov´an´ı strukturovan´ ych dat. Aby to vˇsak bylo moˇzn´e, je nutn´e textov´a data vhodnˇe pˇredzpracovat a pˇrev´est je do podoby poˇzadovan´e tˇemito metodami, tedy do ˇc´ıseln´e reprezentace. Pokud se na data pro dolov´an´ı ˇclovˇek pod´ıv´a jako na tabulku hodnot, zn´amou napˇr´ıklad z programu Microsoft Excel, jednotliv´e ˇr´adky pˇredstavuj´ı konkr´etn´ı instance dˇr´ıve zaznamenan´ ych pˇr´ıpad˚ u. Kaˇzd´a buˇ nka tabulky pak urˇcuje jeden atribut, kter´ y m´a jasnˇe definovanou svou dom´enu. Jeden ze z´akladn´ıch probl´em˚ u, kter´ y se mus´ı pˇri pr´aci se strukturovan´ ymi daty ˇreˇsit, je pr´avˇe nutnost dodrˇzen´ı pˇr´ısluˇsnosti hodnot kaˇzd´eho atributu do odpov´ıdaj´ıc´ı dom´eny, a to samozˇrejmˇe u vˇsech uchov´avan´ ych z´aznam˚ u. Stejnˇe tak problematick´e mohou b´ yt (a zpravidla tak´e jsou) ne´ upln´e z´aznamy, kdy nˇekter´e atributy nemaj´ı zad´any svou hodnotu. Oba dva je tˇreba nˇejak´ ym zp˚ usobem ˇreˇsit. Vˇetˇsinou se to dˇeje v r´amci pˇr´ıpravy dat pro samotn´e dolov´an´ı, kdy ne´ upln´e z´aznamy mohou b´ yt napˇr´ıklad zcela vyˇrazeny nebo doplnˇeny pr˚ umˇern´ ymi hodnotami. Pˇri pr´aci s texty nen´ı nutn´e tˇemto komplikac´ım ˇcelit. Je to d´ano t´ım, ˇze textov´a data pˇredstavuj´ı tzv. kolekci dokument˚ u a kaˇzd´ y jednotliv´ y dokument se bere jako jedna instance, tedy ˇra´dek v tabulce. Jako atributy dokument˚ u jsou pak pouˇz´ıv´any vˇsechna slova, kter´a se v r´amci cel´e kolekce dokument˚ u objev´ı. T´ım p´adem odpad´a probl´em s neupln´ ymi z´aznamy, jelikoˇz slovo se vˇzdy v dan´em dokumentu bud’ vyskytuje nebo nevyskytuje. Stejnˇe tak nejsou komplikace se sjednocov´an´ım dom´en jednotliv´ ych atribut˚ u napˇr´ıˇc vˇsemi z´aznamy, protoˇze informace o v´ yskytu slova se vˇzdy vyjadˇruje stejnou hodnotou. Zde je nav´ıc moˇzn´e vypozorovat dalˇs´ı zaj´ımavou charakteristiku textov´ ych dat. Hodnoty jsou ve cel´e tabulce pouze kladn´e (Konchady, 2006), opˇet narozd´ıl od dat, se kter´ ymi se pracuje pˇri klasick´em dolov´an´ı, kde napˇr´ıklad stav u ´ˇctu m˚ uˇze nab´ yvat i z´aporn´ ych hodnot. I pˇres tyto urˇcit´e v´ yhody, kter´e s sebou pˇrin´aˇs´ı pr´ace s textov´ ymi daty, st´ale je samotn´ y proces pˇredzpracov´an´ı text˚ u ˇcasto mnohem n´aroˇcnˇejˇs´ı, neˇz je tomu u strukturovan´ ych dat (Neto, Santos, Kaestner, Freitas, 2000). Jako dalˇs´ı u ´skal´ı text˚ u a pr´ace s nimi je uv´adˇena napˇr´ıklad uˇz samotn´a abstrakce ˇci nejednoznaˇcnost, kter´a se za textem skr´ yv´a. To v podstatˇe souvis´ı s dalˇs´ım probl´emem, kter´ y sk´ yt´a r˚ uznorodost vyjadˇrov´an´ı se pomoc´ı pˇrirozen´eho jazyka, kdy stejnou vˇec je moˇzn´e pojmenovat r˚ uzn´ ymi slovy se stejn´ ym nebo velice podobn´ ym v´ yznamem. Z hlediska poˇc´ıtaˇce jsou vˇsak tato synonyma automaticky br´ana jako r˚ uzn´e atributy.
2.2
14
Reprezentace dokument˚ u
Stejnˇe tak zhorˇsuj´ı ˇreˇsen´ı probl´emu homonyma, coˇz jsou naopak mnohov´ yznamov´a slova. Pˇr´ıkladem m˚ uˇze b´ yt ˇcesk´e slovo mˇes´ıc, kter´e lze ch´apat jako mˇes´ıc kalend´aˇrn´ı ˇ ˇci jako vesm´ırn´e tˇeleso. Clovˇek snadno pochop´ı v´ yznam slova na z´akladˇe kontextu, v jak´em se slovo nach´az´ı, a rozpoznal by jej tedy jako dva odliˇsn´e atributy dokumentu, poˇc´ıtaˇc uˇz nikoliv. Z´akladn´ı pracovn´ı postup pˇri dolov´an´ı z textov´ ych dat je
relacni databaze
Predzpracovani textovych dat
diskove uloziste
Dolovani
Ziskana znalost
Kolekce dokumentu
internet
Obr´azek 1: Sch´ema postupu pˇri dolov´an´ı z textov´ ych dat
sch´ematicky zn´aroznˇen na obr´azku 1. Prvn´ım krokem je z´ısk´an´ı kolekce dokument˚ u. Zdrojem mohou b´ yt relaˇcn´ı datab´aze, internetov´e str´anky, elektronick´e ˇcl´anky atd. Po ukonˇcen´ı sbˇeru dat je tˇreba veˇsker´e dokumenty pˇredzpracovat dle poˇzadavk˚ u technologi´ı a algoritm˚ u, kter´e budou pouˇzity pˇri samotn´em dolov´an´ı. Tento proces m˚ uˇze b´ yt pomˇernˇe pˇr´ımoˇcar´ y a jednoduch´ y, kdy dojde pouze k transformaci nestrukturovan´ ych text˚ u do strukturovan´e podoby (jak bylo ve zkratce pops´ano dˇr´ıve). Samozˇrejmˇe je tak´e moˇzn´e zvolit mnohem sofistikovanˇejˇs´ı pˇr´ıstup, kdy budou odstranˇena nˇekter´a slova ˇci cel´e dokumenty, provedeny r˚ uzn´e v´ ypoˇcty pro transformaci ˇc´ıseln´ ych hodnot charakterizuj´ıc´ı jednotliv´e dokumenty, obohacov´an´ı ˇci naopak zmenˇsov´an´ı dokument˚ u apod. Nejˇcastˇeji pouˇz´ıvan´e pˇr´ıstupy pro tuto f´azi procesu budou pops´any v n´asleduj´ıc´ıch kapitol´ach. Posledn´ım krokem pak uˇz je realizace samotn´eho dolov´an´ı, jehoˇz v´ ystupem by mˇela b´ yt urˇcit´a netrivi´aln´ı znalost, napˇr´ıklad nauˇcen´ y klasifik´ator nebo odhalen´ı spoleˇcn´ ych vzor˚ u mezi jednotliv´ ymi dokumenty. Novˇe z´ıskanou znalost je vˇetˇsinou potˇrebn´e nˇejak´ ym zp˚ usobem zhodnotit. Ke zmˇeˇren´ı kvality znalosti se pouˇz´ıv´a nˇekolik r˚ uzn´ ych zp˚ usob˚ u, kter´e budou tak´e bl´ıˇze pˇredstave ve zvl´aˇstn´ı kapitole. Ve zkratce prob´ıh´a proces zhodnocen´ı kvality znalosti tak, ˇze se vytvoˇr´ı tzv. testovac´ı mnoˇzina dokument˚ u a znalost je na t´eto mnoˇzinˇe otestov´ana. Z v´ ysledk˚ u testu jsou n´aslednˇe vypoˇc´ıt´any r˚ uzn´e metriky pˇresnosti, kter´e pom´ahaj´ı zhodnotit kvalitu odhalen´e znalosti (Manning, Raghavan, Sch¨ utze, 2008).
2.2
Reprezentace dokument˚ u
Textov´a data je nezbytn´e transformovat do podoby, kter´a je vhodn´a pro algoritmus pouˇz´ıvan´ y ve f´azi dolov´an´ı. Tato ˇca´st procesu zpracov´an´ı text˚ u je velice d˚ uleˇzit´a
2.2
Reprezentace dokument˚ u
15
a zvolen´e postupy pˇri transformaci dat do strukturovan´e podoby maj´ı znaˇcn´ y vliv na v´ yslednou kvalitu z´ıskan´ ych znalost´ı. Pˇr´ıkladem, na kter´em lze ilustrovat dopad nevhodnˇe zvolen´e podoby vstupn´ıch dat na v´ ysledek a samotn´ y pr˚ ubˇeh hled´an´ı v´ ysledku, m˚ uˇze b´ yt algoritmus sl´ez´an´ı kopce (anglicky gradient descent). Pro jednoduchost m˚ uˇzeme uvaˇzovat, ˇze pouˇzijeme pouze data o dvou atributech, pˇriˇcemˇz jejich hodnoty se nach´azej´ı v rozd´ıln´ ych intervalech (napˇr. 1–5 a 1800–2400). Tyto hodnoty slouˇz´ı jako vstup pro hodnot´ıc´ı funkci, kter´a pˇriˇrad´ı dan´e dvojici hodnot konkr´etn´ı cenu. Cenov´e ohodnocen´ı se vypoˇc´ıt´a pro urˇcit´e mnoˇzstv´ı kombinac´ı hodnot v dan´ ych rozsahech. Pokud tato data zobraz´ıme pomoc´ı konturov´eho grafu, budou m´ıt jednotliv´e izolinie tvar velice u ´zk´ ych elips (Ng, 2012). Pro algoritmus bude v takov´emto pˇr´ıpadˇe mnohem obt´ıˇznˇejˇs´ı nal´ezt cestu do hledan´eho minima. Pokud jsou vˇsak hodnoty pˇrepoˇc´ıt´any do shodn´eho mˇeˇr´ıtka (rozsah hodnot bude pak pro oba atributy stejn´ y), dostanou izolinie pˇribliˇznˇe kruhov´ y tvar a algoritmus zkonverguje mnohem rychleji. Tento jev je ilustraˇcnˇe zn´azornˇen na obr´azku 2. Podobn´ ym zp˚ usobem se lze d´ıvat na pˇr´ıpravu textov´ ych dat. Nevhodn´a reprezentace m˚ uˇze negativnˇe ovlivnit proces dolov´an´ı a z´ısk´an´e v´ ysledky nemus´ı dosahovat dostateˇcn´e kvality. Proto je d˚ uleˇzit´e vˇenovat pˇr´ıpravˇe dostateˇcnou pozornost a snaˇzit se o nalezen´ı co nejvhodnˇejˇs´ı reprezentace dat.
Obr´azek 2: Zjednoduˇsen´ a ilustrace vlivu normalizace dat na pr˚ ubˇeh algoritmu gradient descent. Lev´ y konturov´ y graf zn´ azorˇ nuje v´ yraznˇe z´ uˇzen´e izolinie, kter´e jsou typick´e pro hodnoty atribut˚ u z v´ yraznˇe odliˇsn´ ych interval˚ u. Prav´ y graf zn´azorˇ nuje moˇznou podobu izolini´ı po normalizaci hodnot do shodn´ ych interval˚ u.
Aby bylo moˇzn´e jednotliv´e textov´e dokumenty transformovat do strukturovan´e podoby, je tˇreba urˇcit nˇejakou z´akladn´ı stavebn´ı jednotku, pomoc´ı kter´e bude moˇzn´e dokument vyj´adˇrit. Pˇrirozen´ ym a z´aroveˇ n nejpouˇz´ıvanˇejˇs´ım ˇreˇsen´ım je pouˇz´ıt´ı slov, kter´a jsou dostateˇcnˇe srozumiteln´a. V´ yhodou je nav´ıc i fakt, ˇze zpracov´an´ı text˚ u do tohoto zp˚ usobu reprezentace je pomˇernˇe jednoduch´a. Nen´ı to vˇsak jedin´ y pˇr´ıstup a stejnˇe jako pˇri klasick´em dolov´an´ı, i zde je moˇzn´e vytv´aˇret z datov´ ych sloˇzek
2.2
Reprezentace dokument˚ u
16
sloˇzky nov´e. Pokud data obsahuj´ı napˇr. u ´daje o rozloze domu a jeho prodejn´ı cenˇe, je moˇzn´e na z´akladˇe tˇechto hodnot vypoˇc´ıtat novou sloˇzku, a to cenu za metr ˇctvereˇcn´ı. Ta pak m˚ uˇze teoreticky pomoci pˇri samotn´em dolov´an´ı, kupˇr´ıkladu by mohla tato informace dobˇre poslouˇzit pˇri shlukov´an´ı. Obdobnˇe je moˇzn´e rozˇsiˇrovat moˇznosti pro strukturovan´ y popis textov´ ych dat. Model bag-of-words Z´akladn´ım pˇr´ıstupem je tzv. bag of words reprezentace a pouˇzit´ı nal´ez´a nejen pˇri pr´aci s textov´ ymi dokumenty, ale tak´e s obrazov´ ymi daty nebo s video daty. Kaˇzd´ y dokument je reprezentov´an skupinou slov. Tato mnoˇzina se tak´e naz´ yv´a slovn´ık. Nejjednoduˇsˇs´ı reprezentac´ı je vyj´adˇren´ı dokument˚ u pomoc´ı pˇr´ıznaku v´ yskytu slova. Mnohem ˇcastˇeji se vˇsak m´ısto t´eto bin´arn´ı hodnoty (slovo se v dokumentu nach´az´ı nebo nenach´az´ı) pouˇz´ıv´a poˇcet v´ yskytu dan´eho slova v dokumentu. Pak je moˇzn´e d´ıvat se na reprezentaci pomoc´ı bag-of-words jako na histogram slov pro konkr´etn´ı dokument. D˚ uleˇzit´e je, ˇze kaˇzd´ y dokument, jakoˇzto uspoˇr´adan´a struktura slov, je transformov´an na neuspoˇr´ad´anou mnoˇzinu slov, ˇc´ımˇz doch´az´ı ke ztr´atˇe urˇcit´eho mnoˇzstv´ı informace. V podstatˇe se naivnˇe pˇredpokl´ad´a, ˇze v´ yskyty jednotliv´ ych slov jsou na sobˇe vz´ajemnˇe nez´avisl´e a nen´ı tedy nutn´e uchov´avat informaci o poˇrad´ı jednotliv´ ych slov (Zhang, Jin, Zhou, 2012). Obdobn´ ym zp˚ usobem je bag-of-words uplatˇ nov´ano i pro obrazov´a data, kde jsou slova nahrazena tzv. vizu´aln´ımi slovy, coˇz jsou mal´e ˇca´sti obrazu, kter´e b´ yvaj´ı tak´e oznaˇcov´any jako pˇr´ıznaky (angl. features). Je tedy moˇzn´e se setkat i s oznaˇcen´ım bag-of-features. Z´akladn´ı podoba bag-of-words, ve kter´e jsou pouˇzita pouze slova z dokument˚ u v p˚ uvodn´ım tvaru, je schopna poskytnout pomˇernˇe dobr´e v´ ysledky ˇ (Zhang, Jin, Zhou, 2012). Casto je vˇsak vyuˇz´ıv´ano r˚ uzn´ ych moˇznost´ı, jak reprezentaci dokumentu pomoc´ı bag-of-words zlepˇsit a dos´ahnout tak kvalitnˇejˇs´ıch v´ ysledk˚ u. Tˇechto postup˚ u existuje nemal´e mnoˇzstv´ı, a tak se m˚ uˇze proces transformace textu velice snadno skl´adat hned z nˇekolika d´ılˇc´ıch krok˚ u. Z´aroveˇ n je tak´e tˇreba br´at v potaz r˚ uzn´e probl´emy, kter´e je tˇreba pˇri transformaci textu ˇreˇsit. Tokenizace Tokenizace je proces rozdˇelen´ı textu na jednotliv´a slova a jde o d˚ uleˇzitou ˇca´st procesu zpracov´an´ı textu. (Manning, Raghavan, Sch¨ utze, 2008) Text dokumentu je tˇreba rozdˇelit na tzv. tokeny, coˇz jsou instance prvk˚ u ze slovn´ıku. Aˇckoliv by se mohlo ˇreˇsen´ı jevit jako pomˇernˇe jednoduch´e a pˇr´ımoˇcar´e, tak i zde je moˇzn´e narazit na nˇekolik probl´em˚ u. Pokud se pracuje kupˇr´ıkladu s doslovn´ ym pˇrepisem ˇreˇci nˇejak´eho ˇclovˇeka, m˚ uˇze tento text obsahovat nedoˇreˇcen´a slova nebo neartikulovan´e zvuky pouˇz´ıvan´e pˇri pauz´ach mezi ˇreˇc´ı. Budou i tyto ˇretˇezce povaˇzov´any za slova ˇci nikoliv? Dalˇs´ı probl´em mohou zp˚ usobit obecnˇe v´ıceslovn´e n´azvy napˇr. mˇest nebo instituc´ı. Budou Kr´alovo pole nebo u ´stavn´ı soud br´any jako jeden token nebo jak tokeny dva?
2.2
Reprezentace dokument˚ u
17
R˚ uzn´e jazyky mohou nav´ıc d´ıky sv´ ym vlastn´ım charakteristik´am pˇrin´est dalˇs´ı aspekty, kter´e m˚ uˇze b´ yt vhodn´e nˇejak´ ym zp˚ usobem vyˇreˇsit. V angliˇctinˇe se napˇr´ıklad mohou objevit tzv. hovorov´e staˇzen´e tvary. Jde o zkr´acen´ y z´apis (nejˇcastˇeji podmˇetu a pˇr´ısudku). Pˇri zpracov´an´ı je tˇreba rozhodnout, jak´ ym zp˚ usobem se bude zach´azat s podobn´ ymi z´apisy. Zda-li se apostrof nahrad´ı za mezeru a vzniknou tak nekoreketn´ı slova, nebo se vˇse ponech´a v p˚ uvodn´ım tvaru, pˇr´ıpadnˇe se z´apis rozˇs´ıˇr´ı na kompletn´ı slova. I’m You’re don’t
---> ---> --->
I am You are do not
Dalˇs´ım zaj´ımav´ ym pˇr´ıkladem m˚ uˇze b´ yt japonˇstina, pro kterou je charakterisick´e psan´ı slov bez oddˇelen´ı mezerou. Pˇri zpracov´an´ı japonsky psan´eho textu je tedy nutn´e nˇejak´ ym zp˚ usobem rozdˇelit psanou vˇetu jednotliv´e tokeny. Pro tyto u ´ˇcely dobˇre slouˇz´ı longest fit algoritmus (funguje na hladov´em principu), kter´ y postupnˇe proch´az´ı text znak po znaku a hled´a nejdelˇs´ı moˇznou shodu se nˇekter´ ym ze slov ve slovn´ıku. Vyuˇz´ıv´a se zde dalˇs´ı zaj´ımav´e charakteristiky japonˇstiny, a to pr˚ umˇern´e d´elky slova, kter´a je 2.4 znaku. Tento pomˇernˇe jednoduch´ y pˇr´ıstup vˇsak funguje velice dobˇre. V japonsky psan´em textu je jeˇstˇe moˇzn´e narazit na celkem tˇri typy abeced, z nichˇz kaˇzd´a slouˇz´ı pro jin´ yu ´ˇcel. ˇ ıny, vˇzdy jde o obsahov´a slova jako • Kanji – pouˇz´ıv´a se pro slova prop˚ ujˇcen´a z C´ podstatn´a jm´ena, pˇr´ıdavn´a jm´ena nebo slovesa • Hiragana – pouˇz´ıv´a se pro funkˇcn´ı slova, gramatick´e znaˇcky, skloˇ novac´ı koncovky a nˇekter´a japonsk´a slova nepsan´a v Kanji • Katakana – tato abeceda se pouˇz´ıv´a pro slova vyp˚ ujˇcen´a z ciz´ıch jazyk˚ u (kromˇe ˇc´ınˇstiny) Nˇekter´a slova mohou b´ yt nav´ıc ps´ana jako kombinace v´ıce abeced. Tak´e se pro technick´e pˇrevzat´e n´azvy bez vlastn´ıho pˇrekladu pouˇz´ıv´a klasick´a latinka (Fung, Kan, Horita, 1996). V japonˇstinˇe se nav´ıc (narozd´ıl od angliˇctiny) vyskytuje velk´e mnoˇzstv´ı homonym a synonym, coˇz opˇet vyˇzaduje vˇenovat zv´ yˇsenou pozornost pˇri zpracov´an´ı a reprezentovat r˚ uzn´a slova se stejn´ ym v´ yznamem jedn´ım tokenem nebo stejn´a slova s r˚ uzn´ ym v´ yznamem v´ıce tokeny. Jak je vidˇet na nˇekolika m´alo pˇr´ıkladech, aˇckoliv se m˚ uˇze zd´at samotn´e rozdˇelen´ı textu na slova velice snadnou u ´lohou, pro z´ısk´an´ı opravdu kvalitn´ı reprezentace dokumentu je nutn´e oˇsetˇrit ˇradu mnohoznaˇcnost´ı a naopak nejednoznaˇcnost´ı textu psan´eho v pˇrirozen´em jazyce. R˚ uzn´e jazyky pak mohou nav´ıc cel´ y proces jeˇstˇe zkomplikovat sv´ ymi charakteristick´ ym vlastnostmi, na kter´e je tak´e tˇreba br´at pˇri zpracov´an´ı zˇretel.
2.2
Reprezentace dokument˚ u
18
Normalizace Stejnˇe jako v pˇr´ıpadˇe klasick´eho dolov´an´ı, je i u textov´ ych dat nutn´e prov´est urˇcitou m´ıru normalizace. Jedn´a se o proces, ve kter´em doch´az´ı ke sjednocen´ı zp˚ usobu reprezentace urˇcit´e informace (Manning, Raghavan, Sch¨ utze, 2008), a to napˇr´ıˇc celou datovou z´akladnou. Zat´ımco u strukturovan´ ych dat se bˇehem normalizce jednotn´ ym zp˚ usobem vyjadˇruj´ı napˇr´ıklad data, penˇeˇzn´ı poloˇzky, adresy nebo jm´ena, u textov´ ych dat doch´az´ı k normalizaci z´apisu slov se stejn´ ym v´ yznamem, ale rozd´ıln´ ym z´apisem. Typick´ ym pˇr´ıkladem mohou b´ yt r˚ uzn´e zkratky nebo n´azvy. Narodil jsem se v ˇ Cesk´ e republice. Po vystudov´ an´ ı jsem se rozhodl odcestovat z ˇ CR do zahraniˇ c´ ı. Let ˇ C.R.--U.S.A. bude odl´ etat za 15 minut. ˇ Ve v´ yˇse uveden´ ych vˇet´ach se vyskytuj´ı tˇri r˚ uzn´a oznaˇcen´ı pro Ceskou republiku. Bˇehem normalizce by tato slova mˇela b´ yt rozpozn´ana a nad´ale jiˇz vyj´adˇrena vˇzdy stejn´ ym jedn´ım slovem. T´ım dojde jednak ke zmenˇsen´ı velikosti slovn´ıku, ale pˇredevˇs´ım budou slova vyjadˇruj´ıc´ı naprosto shodnou informaci z´aps´ana stejn´ ym zp˚ usobem, coˇz by mˇelo m´ıt pozitivn´ı dopad na algoritmy pouˇzit´e pro samotn´e dolov´an´ı. Case folding Volnˇe psan´ y text b´ yv´a velice ˇcasto neuhlazen´y. Jelikoˇz b´ yvaj´ı zpracov´avan´a data vˇetˇsinou kolekc´ı dokument˚ u z r˚ uzn´ ych zdroj˚ u, tak je velice pravdˇepodobn´e, ˇze jednotliv´e dokumenty poch´azej´ı od r˚ uzn´ ych lid´ı, s r˚ uzn´ ymi n´avyky pˇri psan´ı. Stejn´a slova tak mohou b´ yt zaps´ana r˚ uznˇe a jedn´ım z rozd´ıl˚ u m˚ uˇze b´ yt pouˇzit´a forma p´ısma. V textov´ ych datech se tak vyskytuj´ı slova psan´a jak minuskami, tak i verz´alkami. Nˇekter´e texty mohou b´ yt naps´any cel´e pomoc´ı minusek, jinde mohou b´ yt nˇekter´a slova nebo i cel´e texty psan´e naopak pouze verz´alkami, nˇekdy se vyskytnou i slova obsahuj´ıc´ı p´ısmena psan´a r˚ uznou formou zcela nahodile (nˇekdy oznaˇcov´ano jako mixed-case). Pokud by texty z˚ ustaly ve sv´e p˚ uvodn´ı podobˇe, mohou b´ yt stejn´a slova se stejn´ ym v´ yznamem vyj´adˇrena hned nˇekolika unik´atn´ımi prvky slovn´ıku, ˇcemuˇz se snaˇz´ı case folding zabr´anit. Jde ve sv´e podstatˇe o pomˇernˇe konkr´etn´ı pˇr´ıpad pˇredch´azej´ıc´ı normalizace, protoˇze doch´az´ı k sjednocov´an´ı pouˇzit´e formy p´ısma. Nejjednoduˇsˇs´ım pˇr´ıstupem je celou mnoˇzinu dokument˚ u sjednotit bud’ do lower-case nebo upper-case podoby. T´ım vˇsak m˚ uˇze doj´ıt i sjednocen´ı zp˚ usobu z´apisu slov, kter´a vyjadˇruj´ı r˚ uzn´e vˇeci a mˇely by tedy z˚ ustat rozliˇsiteln´e. Jack Black (jm´ eno herce) ---> jack black (pˇ reklad: hever ˇ cern´ y) F.E.D. (jm´ eno u ´r ˇadu) ---> fed (pˇ reklad: nakrmen´ y) Pˇr´ıkladem mohou b´ yt nejr˚ uznˇejˇs´ı n´azvy nebo jm´ena, kter´a b´ yvaj´ı ˇcasto odliˇsena od klasick´ ych slov pr´avˇe pomoc´ı formy p´ısma. Je moˇzn´e pouˇz´ıt heuristick´ y pˇr´ıstup, kdy ke zmˇenˇe formy p´ısma dojde pouze u nadpis˚ u nebo zaˇc´atk˚ u vˇet a slova uvnitˇr vˇet jsou ponech´ana v p˚ uvodn´ım tvaru. Ve vˇetˇsinˇe pˇr´ıpad˚ u by tento postup
2.2
Reprezentace dokument˚ u
19
mˇel dos´ahnout pomˇernˇe dobr´ ych v´ ysledk˚ u, ale na prvn´ı pohled je vidˇet, ˇze rozhodnˇe nejde o bezchybn´ y pˇr´ıstup. Pokud budou jm´ena nebo n´azvy uvedeny na zaˇc´atku vˇet nebo v nadpisech, tak dojde k jejich chybn´emu pˇreps´an´ı do lower-case podoby a spol´eh´a se zde na spr´avn´e pouˇz´ıv´an´ı formy p´ısma samotn´ ymi autory textu. Z tohoto d˚ uvodu b´ yv´a transformace veˇsker´eho textu do lower-case nejefektivnˇejˇs´ı (Manning, Raghavan, Sch¨ utze, 2008). Oprava pravopisu Oprava pravopisu je dnes jiˇz pomˇernˇe rozˇs´ıˇrenou souˇca´st´ı cel´e ˇrady program˚ u nebo aplikac´ı, kter´e vetˇsina lid´ı bˇeˇznˇe vyuˇz´ıv´a. Na kontrolu pravopisu je moˇzn´e narazit pˇri vyhled´av´an´ı pomoc´ı internetov´eho vyhled´avaˇce Google, kter´ y podtrˇzen´ım zv´ yrazn´ı nespr´avnˇe napsan´a slova v dotazu a samotn´e vyhled´av´an´ı provede pro dotaz s opravami. Textov´ y procesor MS Word, kter´ y je souˇca´st´ı kancel´aˇrsk´eho bal´ıku od firmy Microsoft, podobn´ ym zp˚ usobem zv´ yrazˇ nuje nespr´avn´a slova, pˇr´ıpadnˇe pˇreklepy pˇr´ımo opravuje. A stejnˇe tak se oprava pravopisu nach´az´ı i v chytr´ ych telefonech. V r´amci dolov´an´ı z textov´ ych dat je motivac´ı pro pouˇzit´ı korekce pravopisu zredukov´an´ı velikosti slovn´ıku, kdy nejr˚ uznˇejˇs´ı pˇreklepy mohou vytvoˇrit celou ˇradu neplatn´ ych slov, kter´a budou m´ıt n´ızkou frekvenci v´ yskytu (Daˇrena, 2011) a m˚ uˇze tak doj´ıt ke sn´ıˇzen´ı kvality z´ıskan´e znalosti. Cel´ y proces opravy pravopisu je moˇzn´e rozdˇelit na dvˇe u ´lohy, a to nalezen´ı chyby a jej´ı n´asledn´a oprava (Manning, Raghavan, Sch¨ utze, 2008). Jednotliv´e chyby v textov´ ych datech lze tak´e rozdˇelit do dvou kategori´ı. Prvn´ı jsou chyby, jejichˇz d˚ usledkem vznikaj´ı nov´a neplatn´a (smyˇslen´a) slova. graffe
--->
giraffe
Nejjednoduˇsˇs´ım pˇr´ıstupem pro odhalen´ı podobn´ ych chyb je pouˇzit´ı rozs´ahl´eho slovn´ıku. Pro proveden´ı opravy je vytvoˇren seznam moˇzn´ ych kandid´at˚ u a vybr´an je ten nejpravdˇepodobnˇejˇs´ı. Pravdˇepodobnost je moˇzn´e urˇcit na z´akladˇe Levenshteinovi vzd´alenosti (oznaˇcov´ano tak´e jako minimal edit distance) nebo na z´akladˇe tzv. noisy channel modelu (Kernignan, Church, Gale, 1990). Druhou skupinou jsou chyby, u kter´ ych dojde k z´amˇenˇe jednoho slova za slovo jin´e. To se m˚ uˇze st´at u tzv. homofonn´ıch slov, kter´a poslechovˇe znˇej´ı totoˇznˇe, ale maj´ı r˚ uzn´ y z´apis, nebo pouh´ ym prohozen´ım p´ısmen nebo z´amˇenou p´ısmen. too beer table fee
---> ---> ---> --->
two bear label free
U t´eto skupiny chyb je jejich oprava velice podobn´a, ale o nˇeco komplikovanˇejˇs´ı, protoˇze nelze jednoznaˇcnˇe urˇcit, kter´e slovo bylo zaps´ano chybnˇe. Pro kaˇzd´e slovo je tedy vygenerov´an seznam kandid´at˚ u, do kter´eho je zahrnuto jednak slovo sa-
2.2
20
Reprezentace dokument˚ u
motn´e, vˇsechna korektn´ı slova, kter´a lze z´ıskat vloˇzen´ım, smaz´an´ım nebo substituc´ı jednoho p´ısmene. Je moˇzn´e zahrnout i slova homofonn´ı. V´ ybˇer spr´avn´eho (nejpravdˇepodobnˇejˇs´ıho) slova pak prob´ıh´a opˇet na z´akladˇe noisy channel modelu. Lemmatizace Lemmatizace je proces, pˇri kter´em doch´az´ı k pˇreveden´ı slova do z´akladn´ıho (t´eˇz slovn´ıkov´eho nebo kanonick´eho) tvaru, tzv. lemma. Lemmatizace prob´ıh´a na z´akladˇe morfologick´e anal´ yzy, pomoc´ı kter´e se urˇc´ı, do jak´eho konkr´etn´ıho tvaru m´a b´ yt urˇcit´e slovo pˇrevedeno. Bˇehem anal´ yzy se tedy nepracuje pouze s jedn´ım slovem, ale je zahrnuta vˇetˇs´ı ˇc´ast textu, aby bylo moˇzn´e spr´avnˇe pochopit v´ yznam slova, a t´ım p´adem urˇcit i jeho z´akladn´ı tvar. Slova se totiˇz ve vˇetˇsinˇe jazyk˚ u ’ pouˇz´ıvaj´ı bud v odvozen´ ych nebo skloˇ novan´ ych tvarech. Tyto tvary slov mohou m´ıt napˇr´ıklad shodn´ y z´apis s jin´ ymi slovy, kter´a vˇsak maj´ı odliˇsn´ y v´ yznam (Manning, Raghavan, Sch¨ utze, 2008). I saw your saw in garage. ---> i see your saw in garage Pˇr´ıkladem m˚ uˇze b´ yt tvar nepravideln´eho anglick´eho slovesa see (vidˇet) ve tvaru pro minul´ y ˇcas saw, kter´ y by mˇel b´ yt pˇreps´an na tvar infinitivu. Kdeˇzto podstatn´e jm´eno saw (pila) by mˇelo z˚ ustat nezmˇenˇeno. Implementace lematiz´eru je vˇsak pomˇernˇe n´aroˇcn´a. Proto se ˇcasto m´ısto lemmatizace pouˇz´ıv´a pro pˇrev´adˇen´ı slov do z´akladn´ıho tvaru jednoduˇsˇs´ı pˇr´ıstup stemming. Stemming C´ılem stemmingu je, stejnˇe jako v pˇr´ıpadˇe lemmatizace, pˇrepis slov do jejich z´akladn´ıho tvaru. Snahou je tedy odstranit odvozen´e tvary a skloˇ novan´e koncovky slov. Toho vˇsak jiˇz nen´ı dosahov´ano morfologickou anal´ yzou, ale prost´ ym aplikov´an´ım sady pˇrepisovac´ıch pravidel. Jednoduchost tohoto postupu se samozˇrejmˇe odr´aˇz´ı i na celkov´em ˇcase zpracov´an´ı, kdy pˇri morfologick´e anal´ yze je tˇreba pracovat s vˇetˇs´ım mnoˇzstv´ım textov´ ych dat, aby bylo moˇzn´e spr´avnˇe urˇcit z´akladn´ı tvar slova. Pˇri stemmingu se pracuje pouze s jednotliv´ ymi slovy a pokud vyhovuje urˇcit´emu tvaru, aplikuje se pˇrepisovac´ı pravidlo. To vˇsak m˚ uˇze v´est k mnoha chybn´ ym u ´prav´am, kter´e mohou vytvoˇrit nekorektn´ı slova. walking king sing
---> ---> --->
walk k s
Velice tedy z´aleˇz´ı na poˇrad´ı a spr´avn´e formulaci pravidel pro proveden´ı u ´pravy. Pˇr´ıklad se slovy king a sing ukazuje chybnˇe zapsan´e pravidlo, kter´e odstran´ı posledn´ı tˇri p´ısmena, pokud m´a slovo koncovku ing. Lepˇs´ı tvar pravidla by slovo pˇrepsal pouze v pˇr´ıpadˇe, ˇze se nˇekde ve slovˇe nach´az´ı tak´e samohl´aska. Nejpouˇz´ıvanˇejˇs´ım implementac´ı pouˇz´ıvanou pro stemming anglick´eho textu je Porter˚ uv algoritmus. Cel´ y proces je rozdˇelen na celkem ˇctyˇri ˇca´sti, pˇriˇcemˇz v prvn´ım
2.2
21
Reprezentace dokument˚ u
kroku se prov´ad´ı pˇrepis slov v mnoˇzn´em ˇc´ısle a pˇr´ıˇcest´ı minul´em. N´asleduj´ıc´ı pravidla4 tvoˇr´ı jednu ze skupin, kter´a je aplikov´ana pr´avˇe v t´eto f´azi (Porter, 1980). SSES -> SS IES -> I SS S
-> SS ->
caresses ponies ties caress cats
-> -> -> -> ->
caress poni ti caress cat
Odstranˇ en´ı stop slov Stop slova tvoˇr´ı zvl´aˇstn´ı skupinu slov. Vˇsechna slova, kter´e by bylo moˇzn´e oznaˇcit jako stop slova, nemaj´ı z hlediska urˇcen´ı celkov´eho v´ yznamu psan´eho textu pˇr´ıliˇs velkou informaˇcn´ı hodnotu. Pˇresto se vˇsak jedn´a o slova, kter´a se v textu vyskytuj´ı velice ˇcasto, protoˇze jde o obecn´a slova. Typick´ ym pˇr´ıkladem stop slov mohou b´ yt pˇredloˇzky nebo spojky. Tato slova b´ yvaj´ı proto odstraˇ nov´ana ze slovn´ıku, ˇc´ımˇz dojde k redukci jeho velikosti a sn´ıˇz´ı se n´aroky na pamˇet’ potˇrebou pˇri dolov´an´ı. D´ale je uveden pˇr´ıklad stop slov pro anglick´ y a ˇcesk´ y jazyk. a, an, the, be, and, so, to, then, with, where, why, ... a, byl, tak, tato, kdy, pak, proto, nebo, kdyz, jen, ... Tato slova b´ yvaj´ı definov´ana v tzv. seznamu stop slov (angl. stop words list). Jedn´ım z moˇzn´ ych zp˚ usob˚ u, jak podobn´ y seznam z´ıskat, je spoˇc´ıtat frekvenci v´ yskytu vˇsech slov napˇr´ıˇc celou kolekc´ı dokument˚ u a do seznamu zaˇradit ty s nejvˇetˇs´ım poˇctem v´ yskytu. Probl´em vˇsak spoˇc´ıv´a v tom urˇcit, kolik nejˇcastˇejˇs´ıch slov zaˇclenit do seznamu. Nˇekdy m˚ uˇze b´ yt odstranˇen´ı stop slov tak´e neˇz´adouc´ı. Pokud se pracuje s fr´azemi, ˇcasto b´ yvaj´ı pr´avˇe stop slova pomˇernˇe d˚ uleˇzit´a pro z´ısk´an´ı korektn´ı fr´aze (Manning, Raghavan, Sch¨ utze, 2008). Pˇri konstrukci seznamu stop slov b´ yv´a tak´e vhodn´e zohlednit oblast, kter´e se zpracov´avan´a textov´a data t´ ykaj´ı. Typick´ y seznam slov je tak moˇzn´e rozˇs´ıˇrit o dalˇs´ı ˇcasto pouˇz´ıvan´a obecn´a slova bez v´ yznamov´e hodnoty, kter´e jsou pro danou oblast specifick´e, nebo naopak nˇekter´a ˇcast´a, ale v´ yznamovˇe hodnotn´a slova ze seznamu vyˇradit. Odstranˇ en´ı slov dle frekvence v´ yskytu Stejnˇe jako v pˇr´ıpadˇe odstranˇen´ı stop slov, kdy jsou ze slovn´ıku vyˇrazena nejˇcastˇeji se vyskytuj´ıc´ı obecn´a slova, je moˇzn´e zredukovat velikost slovn´ıku odstranˇen´ım dalˇs´ıch slov, ˇcistˇe dle frekvence jejich v´ yskytu. T´ım opˇet dojde ke sn´ıˇzen´ı n´aroˇcnosti na ’ pamˇet a m˚ uˇze odj´ıt ke zlepˇsen´ı pr˚ ubˇehu dolov´an´ı. Odebrat ze slovn´ıku je moˇzn´e bud’ slova s pˇr´ıliˇs velkou ˇcetnost´ı, coˇz b´ yvaj´ı zpravidla obecnˇejˇs´ı slova s menˇs´ı v´ yznamovou nebo informaˇcn´ı hodnotou, nebo naopak slova s pˇr´ıliˇs n´ızkou frekvenc´ı v´ yskytu, kdy 4
pˇrevzato z ˇcl´ anku An algorithm for suffix stripping
2.2
22
Reprezentace dokument˚ u
m˚ uˇze j´ıt o velice specifick´a slova pouˇzit´a ve velmi mal´em mnoˇzstv´ı dokument˚ u, kter´a tak´e nebudou z hlediska co nejefektivnˇejˇs´ıho odhalen´ı (obecn´e) znalosti pˇr´ıliˇs ˇ pˇr´ınosn´a. Casto se tak´e m˚ uˇze jednat o pˇreklepy (Daˇrena, 2011). Rozˇs´ıˇren´ı o fr´ aze Vˇetˇsina pˇredchoz´ıch operac´ı prov´adˇen´ ych pˇri pˇredzpracov´an´ı textov´ ych dat se zamˇeˇruje na zredukov´an´ı velikosti slovn´ıku a souˇcasn´em zv´ yˇsen´ı kvality z´ıskan´e znalosti. Nˇekdy vˇsak m˚ uˇze b´ yt prospˇeˇsn´e slovn´ık naopak rozˇs´ıˇrit o fr´aze, neboli n-tice slov. Nejz´akladnˇejˇs´ı podobou fr´az´ı jsou tzv. bigramy sloˇzen´e ze dvou slov, pˇr´ıpadnˇe trigramy sloˇzen´e ze tˇr´ı slov. Je samozˇrejmˇe moˇzn´e vytv´aˇret i delˇs´ı fr´aze obecnˇe z n slov, tzv. n-gramy. Toto rozˇs´ıˇren´ı slovn´ıku vˇsak nen´ı dobr´e aplikovat glob´alnˇe a vytvoˇrit vˇsechny moˇzn´e varianty, protoˇze ˇc´ım vˇetˇs´ı bude slovn´ık, t´ım n´aroˇcnˇejˇs´ı bude n´asledn´e hled´an´ı znalosti. Proto se zpravidla pouˇz´ıv´aj´ı pouze v´ yznamn´e fr´aze, kter´e jsou pro pouˇzit´a textov´a data typick´e. Pouˇzit´ı fr´az´ı m˚ uˇze b´ yt tak´e vhodn´e pˇri pr´aci s velmi kr´atk´ ymi dokumenty, kdy se za u ´ˇcelem zlepˇsen´ı reprezentace dat jednotliv´e dokumenty umˇele rozˇsiˇruj´ı dalˇs´ım textem. Model vektorov´ eho prostoru Pˇri dolov´an´ı je c´ılem odhalit nˇejakou obecnou znalost, kterou pak lze aplikovat na dalˇs´ı dokumenty, kter´e nebyly pˇri hled´an´ı pouˇzity. Z´ıskanou znalost´ı mohou b´ yt napˇr´ıklad spoleˇcn´e znaky pro urˇcitou skupinu dokument˚ u, na z´akladˇe kter´ ych pak lze identifikovat pˇr´ısluˇsnost urˇcit´eho dokumentu do dan´e skupiny. Jednotliv´e dokumenty je tedy tˇreba mezi sebou nˇejak´ ym zp˚ usobem porovn´avat a pro tyto u ´ˇcely je tak´e nutn´e zvolit vhodnou reprezentaci dokumentu. Model vektorov´eho prostuoru je jednou z reprezentac´ı, kter´a je zaloˇzena na bag-of-words. Poprv´e byl uveden v ˇcl´anku z roku 1975 (Salton, Wong, Yang, 1975). Vˇsechny dokumenty z cel´e kolekce pouˇzit´e pˇri dolov´an´ı tvoˇr´ı spoleˇcnˇe prostor dokument˚ u. Pokud by slovn´ık vytvoˇren´ y nad tˇemito dokumenty obsahoval celkem tˇri slova, bylo by moˇzn´e kaˇzd´ y takov´ y dokument zn´azornit jako bod pomoc´ı kart´ezsk´eho souˇradnicov´eho syst´emu, pˇriˇcemˇz tˇri slova ze slovn´ıku by pˇredstavovala tˇri z´akladn´ı osy x, y a z. Dokument lze tedy vyj´adˇrit jako vektor, jehoˇz jednotliv´e sloˇzky pˇredstavuj´ı ˇcetnost v´ yskytu kaˇzd´eho slova ze slovn´ıku v dan´em dokumentu (Turney, Pantel, 2010). Dokumenty vˇsak zpravidla b´ yvaj´ı mnohem delˇs´ı a velikost vygenerovan´eho slovn´ıku b´ yv´a tedy mnohon´asobnˇe vˇetˇs´ı neˇz pouh´a tˇri slova. M´ısto trojrozmˇern´eho prostoru se pracuje s prostorem o n rozmˇerech, pˇriˇcemˇz n je rovna velikosti slovn´ıku. Kaˇzd´ y dokument je pak vyj´adˇren pomoc´ı vektoru o n sloˇzk´ach. n = |vocabulary| d ∈ Nn d = (w1 , w2 , w3 , ..., wn )
2.2
23
Reprezentace dokument˚ u
Tomuto vektoru se tak´e nˇekdy ˇr´ık´a pˇr´ıznakov´ y vektor (angl. feature vector). Jako hodnoty jednotliv´ ych pˇr´ıznak˚ u vektoru se nejˇcastˇeji pouˇz´ıvaj´ı frekvence v´ yskytu jednotliv´ ych slov v dan´em dokumentu, kter´ ym jsou vˇsak pˇriˇrazeny statistick´e v´ahy pro urˇcen´ı d˚ uleˇzitosti kaˇzd´eho slova (Wang, Zhang, Vassileva, 2010). Kaˇzd´ y vektor reprezentuj´ıc´ı konkr´etn´ı dokument je vˇsak velmi ˇr´ıdk´ y. To je typickou charakteristikou pro reprezentaci textov´ ych dat pomoc´ı vektoru. Tuto skuteˇcnost lze uk´azat na vzorku uˇzivatelsk´ ych recenz´ı dostupn´ ych u produkt˚ u prod´avan´ ych elektronick´ ym obchodem Amazon. Nad kolekc´ı obsahuj´ıc´ı celkem sto tis´ıc recenz´ı byl vygenerov´an slovn´ık o velikosti 13 026 slov. Nejkratˇs´ı dokument obsahoval celkem dvˇe slova, nejdelˇs´ı 187 slov a pr˚ umˇern´a d´elka dokumentu byla dvacet ˇ slov. R´ıdkost vektoru reprezentuj´ıc´ı dokument o pr˚ umˇern´e d´elce tak ˇcin´ı zhruba 99,85 %, takˇze drtiv´a vˇetˇsina sloˇzek vektoru je rovna nule. Na z´akladˇe zp˚ usobu uchov´av´an´ı hodnot ve vektorech je tedy moˇzn´e rozliˇsit dva hlavn´ı typy reprezentace: • hust´a (angl. dense), • ˇr´ıdk´a (angl. sparse). U hust´ ych vektor˚ u jsou ukl´ad´any vˇsechny sloˇzky vektoru. Pokud by tedy byl dokument z kolekce v´ yˇse popsan´ ych recenz´ı reprezentov´an pomoc´ı hust´eho vektoru, obsahoval by celkem 13 026 sloˇzek, ze kter´ ych by pouh´ ych dvacet bylo nenulov´ ych. V pˇr´ıpadˇe ˇr´ıdk´eho vektoru jsou nulov´e hodnoty vypuˇstˇeny a nenulov´e hodnoty jsou ukl´ad´any jako dvojice index sloˇzky vektoru a hodnota dan´e sloˇzky. Aby byl tento zp˚ usob reprezentace efektivn´ı, mus´ı b´ yt alespoˇ n polovina sloˇzek vektoru nulov´a. U uk´azkov´e kolekce dokument˚ u je v´ıce jak 99 procent hodnot nulov´ ych, takˇze reprezentace textov´ ych dat ˇr´ıdk´ ymi vektory je mnohem efektivnˇejˇs´ı neˇz u hust´ ych vektor˚ u. Celou kolekci dokument˚ u je moˇzn´e zn´azornit pomoc´ı tzv. term-document matice, ve kter´e ˇr´adky pˇredstavuj´ı jednotliv´e dokumenty a sloupce jednotliv´a slova ze slovn´ıku, oznaˇcovan´e tak´e jako termy (viz tabulka 1). V´aˇzen´ı frekvence v´ yskytu slov v dokumentu m´a za u ´kol l´epe vyj´adˇrit d˚ uleˇzitost dan´eho slova. Pokud se slovo vyskytne v dokumentu desetkr´at, bude pro urˇcen´ı dokumentu d˚ uleˇzitˇejˇs´ı v´ıce, neˇz kdyby se v dokumentu vyskytlo pouze jednou. D˚ uleˇzitost tohoto slova vˇsak nen´ı desetkr´at vˇetˇs´ı. Jiˇz zm´ınˇen´a stop slova jsou velice obecn´a, a proto se v dokumentech vyskytuj´ı ve velk´ ych poˇctech. Jejich informaˇcn´ı hodˇ ım nota je vˇsak velice mal´a. To sam´e do urˇcit´e m´ıry plat´ı i pro ostatn´ı slova. C´ ˇcastˇeji se v dokumentu vyskytuj´ı, t´ım b´ yvaj´ı obecnˇejˇs´ı a jejich informaˇcn´ı hodnota sp´ıˇse kles´a. D˚ uleˇzitost slova tedy neroste proporcion´alnˇe s poˇctem jejich v´ yskytu. Zp˚ usob, jak tuto skuteˇcnost prom´ıtnout do vektorov´e reprezentace dokumentu, ukazuje n´asleduj´ıc´ı rovnice. weightd,t =
local weightd,t · global weightt normalizationd,t
2.2
24
Reprezentace dokument˚ u
Tabulka 1: Reprezentace kolekce dokument˚ u pomoc´ı Term-document count matrix
t1
t2
t3
···
tj
···
tn
d1
w11
w12
w13
···
w1j
···
w1n
d2
w21
w22
w23
···
w2j
···
w2n
d3 .. .
w31 .. .
w32 .. .
w33 .. .
··· .. .
w3j .. .
··· .. .
w3n .. .
di .. .
wi1 .. .
wi2 .. .
wi3 .. .
··· ...
wij .. .
··· ...
win .. .
dm
wm1
wm2
wm3
···
wmj
···
wmn
V´ ysledn´a v´aha pro slovo t v dokumentu d je d´ana jako souˇcin jeho lok´aln´ı v´ahy (v r´amci dan´eho dokumentu) a jeho glob´aln´ıho v´ahy (v r´amci cel´e kolekce dokument˚ u). Z´ıskan´ y souˇcin vah je pak moˇzn´e pomoc´ı pod´ılu normalizovat. Mezi nejˇcastˇeji pouˇz´ıvan´e funkce pro urˇcen´ı lok´aln´ı v´ahy termu patˇr´ı (Singhal, 1997): • term frequency: tato funkce vrac´ı poˇcet v´ yskyt˚ u termu v dan´em dokumentu. function term-frequency(term, dokument) returns frekvence vstupy: term // poˇ cı ´tan´ y term dokument // seznam slov lok´ aln´ ı promˇ enn´ e: frekvence // poˇ cet v´ yskytu termu frekvence <- 0 for each slovo in dokument do if slovo shodn´ e s term then nav´ ys ˇit frekvence done return frekvence • term presence: tato bin´arn´ı funkce zcela ignoruje poˇcet v´ yskyt˚ u a vrac´ı pouze pˇr´ıznak, zda se term v dokumetu vyskytuje nebo ne. 1 pokud term-frequencyd,t > 0 local weightd,t = 0 jinak Pokud by byla pouˇzita pouze tato metoda v´aˇzen´ı, tak by cel´a kolekce dokument˚ u byla reprezentov´ana zvl´aˇstn´ım pˇr´ıpadem matice – incidenˇcn´ı matice term-document.
2.2
25
Reprezentace dokument˚ u
• logarithmic term frequency: v´ ysledek t´eto funkce je v z´akladn´ı podobˇe poˇc´ıt´an pomoc´ı n´asleduj´ıc´ıho vztahu log term-frequency pokud term-frequencyd,t > 0 10 d,t local weightd,t = 0 jinak Pomoc´ı tohoto zp˚ usobu lok´aln´ıho v´aˇzen´ı v´ yskytu termu je moˇzn´e zohlednit v´ yˇse popsan´ y probl´em s neproporcion´aln´ım r˚ ustem d˚ uleˇzitosti termu vzhledem k frekvenci jeho v´ yskytu. D´ıky charakteristice logaritmick´e funkce se tedy s rostouc´ı frekvenc´ı v´ yskytu zpomaluje r˚ ust d˚ uleˇzitosti. Je moˇzn´e pouˇz´ıt i lehce upravenou variantu 1 + log term-frequency 10 d,t pokud term-frequencyd,t > 0 local weightd,t = 0 jinak vyuˇz´ıvaj´ıc´ı tzv. aditivn´ıho vyhlazov´an´ı (angl. add-one smoothing). • augmented term frequency: pˇri pouˇzit´ı t´eto funkce doch´az´ı k zredukov´an´ı rozsahu pˇr´ır˚ ustk˚ u d˚ uleˇzitosti do urˇcit´eho intervalu, nejˇcastˇeji do rozmez´ı hodnot 0,5 a 1,0. Pracuje se s pˇredpokladem, ˇze pouh´a pˇr´ıtomnost slova je ohodnocena z´akladn´ı hodnotou k (obvykle 0,5). Za kaˇzd´ y dalˇs´ı v´ yskyt je tato hodnota line´arnˇe nav´ yˇsena aˇz po nejvyˇsˇs´ı frekvenci, pro kterou bude vr´acena maxim´aln´ı hodnota intervalu (1,0). V´ ypoˇcet vypad´a n´asledovnˇe local weightd,t = k + (1 − k) ·
term-frequencyd,t max-term-frequencyd
• okapi’s term frequency: tato funkce je zaloˇzena na aproximaci 2-Poissonova modelu a jej´ı charakteristika je velice podobn´a funkci logarithmic term frequency. local weightd,t =
term-frequencyd,t 2 + term-frequencyd,t
Pro urˇcen´ı celkov´e v´ahy vˇsak pouh´e lok´aln´ı v´aˇzen´ı frekvence v´ yskytu termu nestaˇc´ı. Pˇri hodnocen´ı d˚ uleˇzitosti dan´eho slova je nutn´e zohlednit nejen jeho v´ yznamnost v r´amci dokumentu, ale tak´e v r´amci cel´e kolekce dokument˚ u. V opaˇcn´em pˇr´ıpadˇe by doˇslo k tomu, ˇze vˇsechna slova, i kdyˇz se vyskytnou v r´amci cel´e kolekce pouze v jednom dokumentu, jsou br´ana jako informaˇcnˇe stejnˇe pˇr´ınosn´a. K tomuto rozliˇsen´ı slouˇz´ı glob´aln´ı v´aˇzen´ı termu. Moˇznost´ı je opˇet nˇekolik: • ˇz´adn´e v´aˇzen´ı: zohlednˇen´ı glob´aln´ı v´ahy slova pˇri v´ ypoˇctu jeho celkov´e v´ahy je moˇzn´e vyruˇsit nastaven´ım jednotkov´e v´ahy global weightt = 1
2.2
26
Reprezentace dokument˚ u
• inverse document frequency: z´akladem pro v´ ypoˇcet glob´aln´ı v´ahy termu je poˇcet dokument˚ u, ve kter´ ych se dan´ y term vyskytuje. function document-frequency(term, dokumenty) returns frekvence vstupy: term // poˇ cı ´tan´ y term dokumenty // seznam seznam˚ u slov lok´ aln´ ı promˇ enn´ e: frekvence // poˇ cet v´ yskytu termu frekvence <- 0 for each dokument in dokumenty do if dokument obsahuje term then nav´ ys ˇit frekvence done return frekvence C´ılem vˇsak je sn´ıˇz´ıt v´ yznamnost termu, kter´ y lze povaˇzovat za obecn´ y, tedy v ˇc´ım vˇetˇs´ım mnoˇzstv´ı dokument˚ u se term vyskytuje, t´ım niˇzˇs´ı by mˇela b´ yt jeho v´ yznamnost. Frekvence v´ yskytu slova v r´amci dokumentu by tedy mˇela b´ yt redukov´ana hodnotou, kter´a roste s niˇzˇs´ım v´ yskytem termu v r´amci kolekce dokument˚ u. Toho je moˇzn´e dos´anout pouˇzit´ım inverzn´ı relativn´ı hodnoty v´ yskytu termu v kolekci. global weightt = log
m document-frequencyt
Logaritmus je zde, stejnˇe jako u frekvenci v´ yskytu termu v dokumentu, pouˇzit pro zredukov´an´ı r˚ ustu hodnot. Tento zp˚ usob v´aˇzen´ı je vˇetˇsinou oznaˇcov´an zkratkou IDF. • probabilistic inverse document frequency: tato funkce je velice podobn´a funkci IDF, ale v´ ypoˇcet d˚ uleˇzitosti termu je zaloˇzen na pravdˇepodobnosti relevance dan´eho termu, coˇz je pod´ıl poˇctu dokument˚ u neobsahuj´ıc´ıch term v˚ uˇci poˇctu dokument˚ u obsahuj´ıc´ıch term. global weightt = log
m − document-frequencyt document-frequencyt
• global frequency inverse document frequency: tato funkce pˇriˇrazuje nejmenˇs´ı moˇzn´e hodnoty term˚ um, kter´e se vyskytuj´ı ve vˇsech dokumentech. global weightt = log
global-frequencyt document-frequencyt
Pomoc´ı glob´aln´ıch vah je tedy moˇzn´e zohlednit frekvenci v´ yskytu termu v cel´e kolekci dokument˚ u a pˇridat tak na d˚ uleˇzitosti m´enˇe pouˇz´ıvan´ ym slov˚ um a z´aroveˇ n ubrat na d˚ uleˇzitosti mnohem obecnˇejˇs´ım slov˚ um, kter´a se objevuj´ı ve vˇetˇsinˇe dokument˚ u z kolekce. V´ ysledkem souˇcinu lok´aln´ı a glob´aln´ı v´ahy je tedy celkov´a v´aha termu. Posledn´ım krokem ve v´ ypoˇctu vektor˚ u je jejich normalizace. D˚ uvodem
2.2
27
Reprezentace dokument˚ u
prov´adˇen´ı normalizace je zajiˇstˇen´ı toho, aby dokumenty pouˇz´ıvaj´ıc´ı stejn´a slova byly ve vektorov´em prostoru reprezentov´any body leˇz´ıc´ımi bl´ızko sebe. Bez proveden´ı normalizace totiˇz mohou b´ yt dokumenty obsahuj´ıc´ı podobn´a slova od sebe znaˇcnˇe vzd´aleny. D˚ uvodem mohou b´ yt jejich rozd´ıln´e d´elky, d´ıky kter´ ym jsou stejn´a slova vyj´adˇrena rozd´ıln´ ymi (n´asobn´ ymi) hodnotami. Nav´ıc delˇs´ı dokumenty obsahuj´ı v´ıce slov a d˚ usledkem je opˇet prodluˇzov´an´ı vzd´alenosti mezi dokumenty. Vliv pouˇzit´ı ˇci nepouˇzit´ı normalizace je moˇzn´e uk´azat na jednoduch´em pˇr´ıkladu, kdy je k dispozici zjednoduˇsen´a kolekce ˇctyˇr dokument˚ u, ve kter´ ych jsou pouˇzita pouze dvˇe slova. vocabulary = (dobre, rano) d_1 d_2 d_3 d_4
= = = =
"dobre rano" "dobre" "rano" "dobre rano dobre rano"
-> -> -> ->
d_1 d_2 d_3 d_4
= = = =
(1, (1, (0, (2,
1) 0) 1) 2)
-> -> -> ->
d_1 d_2 d_3 d_4
= = = =
(0.12, (0.12, (0.00, (0.24,
0.12) 0.00) 0.12) 0.24)
Z hlediska podobnosti by mˇel b´ yt prvn´ı dokument nejbl´ıˇze ke ˇctvrt´emu dokumentu, protoˇze obsahuj´ı v´ıce stejn´ ych slov, zat´ımco s dalˇs´ımi dvˇema dokumenty m´a spoleˇcn´e pouze jedno slovo. Na obr´azku 3 jsou dokumenty zobrazeny ve dvourozmˇern´em
Obr´azek 3: Zn´ azornˇen´ı vzd´ alenosti dokument˚ u ve vektorov´em prostoru vyj´adˇren´ ych pomoc´ı TF-IDF
prostoru, spolu s jejich vzd´alenost´ı od prvn´ıho dokumentu. Proveden´ım normalizace dojde k pˇrepoˇc´ıt´an´ı jednotliv´ ych sloˇzek vektor˚ u, kter´e pak budou n´aleˇzet do prostoru vyhrazen´em jednotkov´ ym vektorem, ˇc´ımˇz dojde k pˇr´ıbl´ıˇzen´ı vektor˚ u se stejn´ ymi slovy, ale r˚ uzn´ ymi poˇcty v´ yskytu tˇechto slov. V pˇr´ıpadˇe uk´azkov´e kolekce dokument˚ u budou vektory reprezentuj´ıc´ı prvn´ı a ˇctvrt´ y dokument po normalizaci totoˇzn´e. D´ale jsou uvedeny nˇekter´e techniky pro proveden´ı normalizace d´elky vektoru: • ˇz´adn´a normalizace: stejnˇe jako u glob´aln´ı v´ahy je moˇzn´e potlaˇcit i efekt nor-
2.3
28
Klasifikace dokument˚ u
malizace a ponechat vektory v p˚ uvodn´ı podobˇe normalizationd,t = 1 • cosine normalization: kosinov´a normalizace patˇr´ı mezi nejpouˇz´ıvanˇejˇs´ı pˇr´ıstupy pro normalizaci d´elek vektor˚ u. Pro pˇreveden´ı vektoru do jednotkov´eho prostoru se pouˇz´ıv´a Eukleidovsk´a d´elka dan´eho vektoru. Aplikov´an´ım normalizace je pak ˇ ım jsou vyˇsˇs´ı hodnoty v´ kaˇzd´a sloˇzka vektoru podˇelena jeho d´elkou. C´ yskytu slov v dokumentu, t´ım se celkov´a d´elka vektoru prodluˇzuje a vyˇsˇs´ı dˇelitel tak v´ıce sniˇzuje v´ahu slova. Stejnˇe tak vˇetˇs´ı mnoˇzstv´ı slov v dokumentu prodluˇzuje d´elku jeho vektoru a opˇet navyˇsuje hodnotu dˇelitele. Tento zp˚ usob normalizace tedy zohledˇ nuje oba d˚ usledky delˇs´ıch dokument˚ u. v u n uX 2 wd,i normalizationd,t = t n=1
• maximum term-frequency normalization: normalizace vyuˇz´ıvaj´ıc´ı pro pˇrevod v´ah slov do jednotkov´eho prostoru maxim´aln´ı v´ahu v dokumentu je principem totoˇzn´a s jiˇz zm´ınˇen´ ym zp˚ usobem v´ ypoˇctu glob´aln´ı v´ahy pomoc´ı funkce augmented term frequency. Ta pˇriˇrazovala urˇcitou z´akladn´ı v´ahu minim´aln´ı hodnotˇe frekvence slova v kolekci dokument˚ u a zbytek z jednotkov´eho intervalu rovnomˇernˇe rozdˇelila mezi ostatn´ı hodnoty v´ yskytu. Slovo s maxim´aln´ım v´ yskytem tak bylo vˇzdy pˇrepoˇc´ıt´ano na hodnotu 1. Stejn´ y princip je moˇzn´e pouˇz´ıt i pˇri normalizaci d´elky vektoru. normalizationd,t = max-weightd Nev´ yhodou tohoto pˇr´ıstupu je, ˇze pˇri normalizaci jsou ve v´ ypoˇctu zohlednˇeny pouze vyˇsˇs´ı hodnoty v´ yskytu slov v dokumentu. Probl´em s prodluˇzov´an´ım vzd´alenosti v d˚ usledku vˇetˇs´ıho poˇctu slov u delˇs´ıch dokument˚ u tento zp˚ usob normalizce neˇreˇs´ı. Uveden´ y v´ yˇcet zp˚ usob˚ u v´ ypoˇctu v´ahy slova rozhodnˇe nepˇredstavuje kompletn´ı v´ yˇcet. C´ılem je sp´ıˇse poskytnout z´akladn´ı pˇredstavu o moˇznostech reprezentace textov´ ych dat pomoc´ı vektor˚ u a nast´ınit v´ yhody a nev´ yhody r˚ uzn´ ych pˇr´ıstup˚ u. Obecnˇe se pro urˇcen´ı vah nejˇcastˇeji pouˇz´ıv´a sch´ema Term frequency-Inverse Document Frequency, zkr´acenˇe TF-IDF, a pˇri nutnosti normalizace d´elek v´ ysledn´ ych vektor˚ u je pouˇzita kosinov´a normalizace.
2.3
Klasifikace dokument˚ u
Klasifikace textov´ ych dokument˚ u je jedn´ım z typick´ ych probl´em˚ u, kter´e lze v r´amci dolov´an´ı znalost´ı z textov´ ych dat ˇreˇsit. Mimo klasifikaci jde tak´e o predikci, vyhled´av´an´ı a extrakci informac´ı (Weiss et. 2010). Pˇred samotn´ ym form´aln´ım popisem probl´emu klasifikace dokument˚ u bude uvedeno nˇekolik re´aln´ ych probl´em˚ u, pro jejichˇz ˇreˇsen´ı se vyuˇz´ıv´a pr´avˇe klasifikace.
2.3
Klasifikace dokument˚ u
29
Zˇrejmˇe nejrozˇs´ıˇrenˇejˇs´ım pˇr´ıkladem, se kter´ ym si dnes a dennˇe setk´av´a vˇetˇsina lid´ı, je detekov´an´ı nevyˇza´dan´e poˇsty oznaˇcovan´e jako spam. Vˇetˇsina elektronick´e poˇsty obsahuje pouze textov´a data, nˇekdy vˇsak b´ yvaj´ı obohaceny o HTML tagy. To samo o sobˇe uˇz m˚ uˇze slouˇzit jako atribut dokumentu, pomoc´ı kter´eho je moˇzn´e urˇcit, zda se jedn´a o spam ˇci nikoliv. Pˇri klasifikaci elektronick´e poˇsty je moˇzn´e kromˇe From:
[email protected] Subject: M´ ame pro V´ as pen´ ıze zdarma - kdo si hraje, nezlob´ ı! Date: 15 November 2012 08:57:51 CET To: Zdenˇ ek Nov´ ak -----------------------------------------------------------------Vyuˇ zijte speci´ aln´ ı nab´ ıdky, jak z´ ıskat pen´ ıze. ˇ Cek´ a v´ as propracovan´ a grafika, napˇ et´ ı a z´ abava. Zahrajte si 50x zdarma obl´ ıbenou hru na internetu. Vˇ se, co vyhrajete si m˚ uz ˇete nechat! ZAˇ C´ IT HR´ AT
Obr´azek 4: Uk´ azka elektronick´e poˇsty ozanˇcov´an´e jako spam
samotn´eho textu zpr´avy vyuˇz´ıt i dalˇs´ı atributy, jako adresa odes´ılatele nebo text pˇredmˇetu zpr´avy. Na uk´azkov´em mailu (viz obr´azek 4) je vidˇet, ˇze pˇredmˇet obsahuje slova jako pen´ıze, zdarma, a tak´e vykˇriˇcn´ık. Stejnˇe tak adresa odes´ılatele nem´a u ´plnˇe typick´ y tvar a nenach´az´ı-li se jiˇz v pˇr´ıjemcovˇe kontaktn´ım adres´aˇri, m˚ uˇze pˇrispˇet ke klasifikaci zpr´avy jako nevyˇza´dan´e. Z hlediska klasifikace textu je vˇsak nejd˚ uleˇzitˇejˇs´ı text zpr´avy. Ten opˇet obsahuje slova jako speci´aln´ı nab´ıdka, pen´ıze, z´abava, zdarma, kter´e jsou typick´e sp´ıˇse pro spam. Vˇsechny tyto atributy mailu mohou b´ yt vyuˇz´ıv´any klasifik´atorem, kter´ y na z´akladˇe adresy odes´ılatele a pˇr´ıtomnosti urˇcit´ ych slov ve zpr´avˇe ˇci jej´ım pˇredmˇetu rozhodne, zda novˇe pˇr´ıchoz´ı poˇsta skonˇc´ı ve spamov´em koˇsi. Dalˇs´ım pˇr´ıkladem klasifikaˇcn´ı u ´lohy je anal´ yza m´ınˇen´ı. Typick´ ym z´astupcem anal´ yzy m´ınˇen´ı je kategorizace psan´ ych recenz´ı na pozitivn´ı a negativn´ı. Princip je stejn´ y jako v pˇr´ıpadˇe odhalov´an´ı nevyˇza´dan´e poˇsty. V textu recenze se hledaj´ı urˇcit´a slova, kter´a sv´ ym v´ yznamem pomohou urˇcit, jak´ y je v´ yznam cel´eho textu. Ve dvou ˇ uk´azkov´ ych recenz´ıch pˇrevzat´ ych z Cesko-Slovensk´e filmov´e datab´aze (viz obr´azek 5) jsou tato slova na prvn´ı pohled snadno identifikovateln´a. V prvn´ı recenzi jsou pouˇzita slova jako skvˇel´y, v´yteˇcn´y, perfektn´ı nebo l´ıbit, kter´a d´avaj´ı vcelku jasn´ y sign´al o spokojenosti uˇzivatele s filmem. Oproti tomu v druh´e recenzi jsou naopak slova s negativn´ım sentimentem jako nuda, straˇsn´e ˇci pˇrecenit. Tyto pˇr´ıklady
2.3
Klasifikace dokument˚ u
30
Skvˇ el´ y film, v´ ıteˇ cn´ y J.Nicholson. jak se dok´ azal pohybovat mezi bl´ azny a pefektnˇ e zahr´ at. Moc se mi to l´ ıbilo :-) 92% Nuda, nuda, straˇ sn´ a nuda. Nech´ apem, ako sa podarilo takto precenit’ tento film u takej vel’kej masy div´ akov... Z´ azrak. -----------------------------------------------------------------Film je zcela brilantn´ ım d´ ılem, naprost´ y skvost ve sv´ e kategorii, dosahuje t´ emˇ eˇ r stejn´ ych kvalit jako Catwoman s Halle Berry.
Obr´azek 5: Uk´ azka uˇzivatelsk´ ych recenz´ı. Zdroj: http://www.csfd.cz/film/2982-prelet-nad-kukaccim-hnizdem/
slouˇz´ı vˇsak pouze pro ilustraci, protoˇze text m˚ uˇze ˇcasto obsahovat slova, kter´a obrac´ı v´ yznam nˇekter´ ych pˇr´ıdavn´ ych jmen. Nejn´aroˇcnˇejˇs´ı mohou pro automatizovanou klasifikaci textu b´ yt ironick´e vˇety, kter´e sice obsahuj´ı pozitivn´ı slova, ale jejich v´ yznam je pˇresnˇe opaˇcn´ y. Pro ˇclovˇeka by nemˇel b´ yt probl´em rozpoznat negativn´ı t´on smyˇslen´e recenze (viz obr´azek 5), avˇsak pokud nen´ı sezn´amen s velice negativn´ım popkulturn´ım m´ınˇen´ım o filmu Catwoman, na kter´ y se text recenze odvol´av´a, m˚ uˇze i ˇclovˇek doj´ıt k myln´emu z´avˇeru. Pro klasifik´ator je situace v podstatˇe velice podobn´a a bez zahrnut´ı znalosti o kvalit´ach ostatn´ıch film˚ u je odk´az´an pouze na text recenze, kter´ y obsahuje pˇrev´aˇznˇe pozitivn´ı slova. Je tedy velice pravdˇepodbn´e, ˇze podobn´ y text by byl chybnˇe oznaˇcen jako pozitivn´ı. Klasifikace je vˇsak velice obecnou u ´lohou a aplikovat ji lze na celou ˇradu probl´em˚ u, nejen v oblasti zpracov´an´ı textov´ ych dat. Zde jsou uvedeny nˇekter´e typick´e klasifikaˇcn´ı u ´lohy s textov´ ymi daty (Manning, Raghavan, Sch¨ utze, 2008): • detekce spamu, • anal´ yza m´ınˇen´ı, • pˇriˇrazen´ı autora, • identifikace jazyka, • rozliˇsen´ı pohlav´ı autora, • kategorizace ˇcl´ank˚ u dle t´ematu. C´ılem klasifikace textov´ ych dokument˚ u je umoˇznit automatick´e pˇr´ıˇrazov´an´ı dokumentu d do jedn´e z moˇzn´ ych tˇr´ıd c. Pokud definujeme mnoˇzinu moˇzn´ ych tˇr´ıd jako C = {c1 , c2 , c3 , ..., c|C| } a mnoˇzinu dokument˚ u jako D = {d1 , d2 , d3 , ..., d|D| }, tak je moˇzn´e klasifikaci form´alnˇe definovat jako funkci, kter´a pˇriˇrazuje kaˇzd´e uspoˇra´dan´e dvojici (di , cj ) ∈ D × C logickou hodnotu pravda, pokud di n´aleˇz´ı
2.3
Klasifikace dokument˚ u
31
do cj a nepravda v opaˇcn´em pˇr´ıpadˇe. Po definovan´ı mnoˇziny logick´ ych hodnot L = {pravda, nepravda} je tedy moˇzn´e zapsat klasifikaˇcn´ı funkci v n´asleduj´ıc´ım tvaru: Φ:D×C →L ˇ sen´ım klasifikaˇcn´ı u ˆ kter´a je co nejpˇresnˇejˇs´ı aproReˇ ´lohy je vˇsak nalezen´ı funkce Φ, ximac´ı funkce Φ. Tato funkce je oznaˇcov´ana jako klasifik´ator (Sebastiani, 2005). D˚ uvodem, proˇc se zab´ yvat ˇreˇsen´ım automatick´e klasifikaci textov´ ych dokuˇ ek si pˇredevˇs´ım mus´ı cel´ ment˚ u, je pˇredevˇs´ım n´aroˇcnost ruˇcn´ıho tˇr´ıdˇen´ı text˚ u. Clovˇ y text pˇreˇc´ıst, aby plnˇe porozumˇel jeho obsahu a mohl jej spr´avnˇe zaˇradit do nˇekter´e ze tˇr´ıd. To sice nemus´ı b´ yt probl´em napˇr´ıklad u recenz´ı, kter´e b´ yvaj´ı vˇetˇsinou kr´atk´e a jejich pˇreˇcten´ı tak zabere maxim´alnˇe nˇekolik m´alo minut, vˇetˇsinou jich vˇsak b´ yv´a velk´e mnoˇzstv´ı. Klasifikace velk´eho mnoˇzstv´ı textov´ ych dokument˚ u ˇcistˇe lidsk´ ymi silami je tedy velice n´aroˇcn´a (Manning, Raghavan, Sch¨ utze, 2008). Pokud by bylo nutn´e dos´ahnout v´ ysledk˚ u v co nejkratˇs´ım ˇcase, je tˇreba do klasifikace zaˇradit vˇetˇs´ı mnoˇzstv´ı lid´ı, mezi kter´e by byly jednotliv´e dokumenty rozdˇeleny. Tento pˇr´ıstup v sobˇe vˇsak skr´ yv´a probl´em souvisej´ıc´ı s jednou z charakteristik klasifikace. Rozhodnut´ı o pˇr´ısluˇsnosti dokumentu do urˇcit´e tˇr´ıdy je ovlivnˇen zkuˇsenostmi jednotliv´ ych lid´ı a koneˇcn´e zaˇrazen´ı dokumentu je v´ ysledkem subjektivn´ıho rozhodnut´ı (Sebastiani, 2005). R˚ uzn´ı lid´e se tak velice ˇcasto nemus´ı na pˇr´ısluˇsnosti dokumentu do tˇr´ıdy shodnout. Rozdˇelen´ım klasifikace skupiny dokument˚ u mezi v´ıce lid´ı tedy dojde ke ztr´atˇe konzistence pˇri pˇridˇelov´an´ı tˇr´ıd. Pouˇzit´ım automatick´eho klasifik´atoru je tento probl´em eliminov´an. Dokument je v jednoduˇsˇs´ı variantˇe klasifikace zaˇrazov´an vˇzdy v´ yhradnˇe do jedn´e ze tˇr´ıd. Pro kaˇzd´ y dokument di ∈ D tedy plat´ı, ˇze m´a pˇriˇrazenu pouze jednu tˇr´ıdu cj ∈ C. Dokument je stejnˇe tak moˇzn´e klasifikovat do v´ıce tˇr´ıd, vˇcetnˇe nezaˇrazen´ı do ´ ˇza´dn´e ze tˇr´ıd. Nejˇcastˇeji b´ yv´a klasifikaˇcn´ı u ´loha ˇreˇsena jako bin´arn´ı. Ukolem klasifik´atoru je tedy zaˇradit dokument pouze do jedn´e ze dvou tˇr´ıd, coˇz lze pˇreformulovat na probl´em pˇriˇrazen´ı ˇci nepˇriˇrazen´ı do jedn´e tˇr´ıdy (druhou tˇr´ıdu pˇredstavuje doplnˇek tˇr´ıdy prvn´ı). Funkce bin´arn´ıho klasifik´atoru je t´ım p´adem definov´ana jako aproximace funkce Φ : D → L. Bin´arn´ıho klasifik´atoru je moˇzn´e vyuˇz´ıt i pro ˇreˇsen´ı klasifikaˇcn´ı u ´lohy s v´ıce tˇr´ıdami, a to tak, ˇze se pro kaˇzdou tˇr´ıdu vytvoˇr´ı zvl´aˇstn´ı bin´arn´ı klasifik´ator. Koneˇcn´ y klasifik´ator pro celou mnoˇzinu tˇr´ıd C tvoˇr´ı skupina tˇechto bin´arn´ıch klasifik´ator˚ u. D˚ uvodem pro ˇreˇsen´ı v´ıcetˇr´ıdn´ı klasifikace t´ımto zp˚ usobem je menˇs´ı sloˇzitost tvorby bin´arn´ıho klasifik´atoru. Pro nalezen´ı aproximaˇcn´ı funkce a vytvoˇren´ı klasifik´atoru se pouˇz´ıvaj´ı r˚ uzn´e algoritmy strojov´eho uˇcen´ı. Ty maj´ı za u ´kol automaticky odhalit na mnoˇzinˇe tzv. tr´enovac´ıch dat pravidla, pomoc´ı kter´ ych se n´aslednˇe rozhoduje o pˇr´ısluˇsnosti dokumentu do urˇcit´e tˇr´ıdy. Aby bylo moˇzn´e tato pravidla v textov´ ych datech nal´ezt, je nutn´e poskytnout dostateˇcnˇe velkou mnoˇzinu tr´enovac´ıch dokument˚ u, ale z´aroveˇ n co nejv´ıce vyv´aˇzenou z hlediska poˇctu dokument˚ u zastupuj´ıc´ıch jednotliv´e tˇr´ıdy. Z toho tak´e plyne, ˇze vˇsechny dokumenty z tr´enovac´ı mnoˇziny mus´ı m´ıt pˇriˇrazenu nˇekterou ze tˇr´ıd, kter´e chceme pomoc´ı klasifik´atoru rozezn´avat.
2.3
32
Klasifikace dokument˚ u
Bayesovsk´ y klasifik´ ator Naivn´ı Bayes˚ uv klasifik´ator patˇr´ı k z´akladn´ım algoritm˚ um strojov´eho uˇcen´ı, kter´e se pouˇz´ıvaj´ı pˇri klasifikaci textov´ ych dat. Jde o jednoduch´ ych pˇr´ıstup ke klasifikaci, jehoˇz z´akladem je tzv. Bayesovsk´ y teor´em (Manning, Raghavan, Sch¨ utze, 2008) P (cj |di ) =
P (di |cj )P (cj ) P (di )
Pˇri v´ ypoˇctu se pracuje s apriorn´ı pravdˇepodobnost´ı v´ ybˇeru klasifikaˇcn´ı tˇr´ıdy c P (cj ), tedy ˇze n´ahodnˇe vybran´ y dokument bude patˇrit do tˇr´ıdy c, d´ale s pravdˇepodobnost´ı v´ ybˇeru dokumentu d P (di ) a s pravdˇepodobnost´ı v´ yskytu dokumentu d ve tˇr´ıdˇe c P (di |cj ). V´ ysledkem v´ ypoˇctu je podm´ınˇen´a pravdˇepodobnost, ˇze pˇri v´ ybˇeru dokumentu d bude jeho klasifikaˇcn´ı tˇr´ıdou tˇr´ıda c. Aby tedy bylo moˇzn´e urˇcit tˇr´ıdu, do kter´e n´ahodnˇe vybran´ y dokument patˇr´ı, je tˇreba z tr´enovac´ıch dat vypoˇc´ıta jednotliv´e pravdˇepodobnosti P (cj ), P (di ) a P (di |cj ). Pro urˇcen´ı tˇr´ıdy nezn´am´eho dokumentu se n´aslednˇe spoˇc´ıtaj´ı pravdˇepodobnosti P (c|d), a to pro vˇsechny moˇzn´e tˇr´ıdy. c = argmax P (cj |di ) cj ∈C
= argmax cj ∈C
P (di |cj )P (cj ) P (di )
= argmax P (di |cj )P (cj ) cj ∈C
Dokument je zaˇrazen do t´e tˇr´ıdy, kter´a maximalizuje aposteriorn´ı pravdˇepodobnost P (c|d). Pˇri v´ ypoˇctu byl vypuˇstˇen dˇelitel s pravdˇepodobnost´ı dokumentu, protoˇze jde o konstantn´ı hodnotu a nem´a tud´ıˇz na v´ ysledek ˇza´dn´ y vliv. Jelikoˇz jsou texty reprezentov´any pomoc´ı pˇr´ıznako´ ych vektor˚ u, je ignorov´ano poˇrad´ı slov v dan´em dokumentu. Z´aroveˇ n se (naivnˇe) pˇredpokl´ad´a, ˇze jednotliv´e pˇr´ıznaky jsou na sobˇe vz´ajmnˇe nez´avisl´e. Pravdˇepodobnost P (di |cj ) je tedy d´ana jako souˇcin pravdˇepodobnosti v´ yskytu slov w ve tˇr´ıdˇe c. Y P (w1 , w2 , w3 , ..., wn |cj ) = P (wk |cj ) wk ∈di
c = argmax P (cj ) cj ∈C
Y
P (wk |cj )
wk ∈di
Rozhodovac´ı stromy Intuitivn´ım pˇr´ıstupem ke klasifikaci textov´ ych dat jsou rozhodovac´ı pravidla, kdy se na z´akladˇe pˇr´ıtomnosti konkr´etn´ıch slov rozhodne, do jak´e tˇr´ıdy dokument patˇr´ı. Rozhodovac´ı stromy jsou implementac´ı tohoto pˇr´ıstupu. Jde o v´ yznaˇcn´ y typ grafu,
2.3
33
Klasifikace dokument˚ u
kter´ y obsahuje dva typy uzl˚ u, prvn´ım jsou rozhodovac´ı uzly, kter´e pˇredstavuj´ı jednotliv´a rozhodovac´ı pravidla. Dle moˇzn´ ych odpovˇed´ı na dan´e pravidlo vede z rozhodovac´ıho uzlu stejn´ y poˇcet hran. Druh´ ym typem uzlu jsou listy uchov´avaj´ıc´ı tˇr´ıdu, do kter´e je dokument klasifikov´an. Pˇri klasifikaci se postupuje od prvn´ıho pravidla (koˇrene stromu) a postupn´ ym vyhodnocov´an´ım pravidel se pˇres hrany dokument pˇresunuje do podstrom˚ u, aˇz doraz´ı k jednomu z list˚ u, ˇc´ımˇz dojde k pˇripˇrazen´ı dokumentu do tˇr´ıdy reprezentovan´e dan´ ym listem (Russell, Norvig, 1995). Z tr´enovac´ıch dat se tedy pˇri dolov´an´ı extrahuj´ı pravidla a odpovˇedi, kter´e vytvoˇr´ı rozhodovac´ı strom. Snahou je, aby bylo pravidel co nejm´enˇe a strom byl co nejjednoduˇsˇs´ı, tzn. aby odpovˇedi co nejv´ıce rozdˇelovaly data do jednotliv´ ych tˇr´ıd. Pokud je k dispozici mnoˇzina dokument˚ u obsahuj´ıc´ı 50 pˇr´ıklad˚ u za kaˇzdou ze dvou tˇr´ıd, tak by ˇspatn´e pravidlo tuto mnoˇzinu rozdˇelilo na podmnoˇziny, ve kter´ ych budou obˇe tˇr´ıdy zastoupeny opˇet stejn´ ym poˇctem dokument˚ u. Dobr´e pravidlo by naopak vytvoˇrilo v´ıce homogenn´ı podmnoˇziny, ve kter´ ych by v´ yraznˇeji pˇrevaˇzovala jedna tˇr´ıda. Vyuˇzit´ı zde tedy nal´ez´a teorie informace. Pravidla jsou vytv´aˇrena tak, aby pokud moˇzno co nejv´ıce minimalizovala m´ıru nevˇedomosti ˇci chaosu poˇc´ıtanou pomoc´ı entropie. X H(X) = − pi log2 pi Atribut dat (v pˇr´ıpadˇe textu slovo) zvolen´ y jako rozdˇelovac´ı parametr mus´ı analogicky maximalizovat informaˇcn´ı zisk. Pro kaˇzd´ y atribut je tedy spoˇc´ıt´ana tato hodnota a pro rozdˇelen´ı se zvol´ı ten, kter´ y poskytne maxim´aln´ı informaˇcn´ı zisk. Ten se poˇc´ıt´a jako v´aˇzen´ y souˇcet entropi´ı jednotliv´ ych podmnoˇzin odeˇcten´ y od nynejˇs´ı entropie. Neuronov´ e s´ıtˇ e Snahou algoritmu neuronov´ ych s´ıt´ı je napodobit princip fungov´an´ı lidsk´eho mozku, konkr´etnˇeji zp˚ usobu, jak´ ym se mozek uˇc´ı nov´ ym znalostem. Z´akladn´ı stavebn´ı jednotkou v mozku je buˇ nka zvan´a neuron. Jeho u ´ˇcelem je pˇrij´ım´an´ı nervov´ ych impuls˚ u pomoc´ı dendrit˚ u a naopak v´ ys´ıl´an´ı nervov´ ych impuls˚ u k ostatn´ım neuron˚ um skrze axony. V´ ystupn´ı sign´al je vˇsak neuronem vysl´an pouze ve chv´ıli, kdy jeho vstupn´ı ˇıma, Neruda, 1996). Umˇel´e neuronov´e sign´aly pˇrekroˇc´ı urˇcitou prahovou hodnotu (S´ s´ıtˇe modeluj´ı biologickou neuronovou s´ıt’ a jej´ım z´akladn´ım prvkem je tedy umˇel´ y neuron, oznaˇcov´an tak´e jako perceptron. Princip fungov´an´ı je zcela totoˇzn´ y s biologick´ ym neuronem. Perceptron pˇrij´ım´a na vstupech hodnoty s nimiˇz provede v´aˇzen´ y souˇcet (viz obr´azek 6). V´ ysledek souˇctu je pouˇzit jako vstup pro aktivaˇcn´ı funkci neuronu, kter´a pˇrevede souˇcet vstupn´ıch hodnot na velikost v´ ystupn´ıho sign´alu, kter´ y bude neuron vys´ılat do s´ıtˇe. Nejˇcastˇeji se pouˇz´ıv´a logistick´a pˇrechodov´a funkce z(x) =
1 , 1 + e−x
je ale moˇzn´e pouˇz´ıt i funkce jin´e (mezi dalˇs´ı ˇcasto pouˇz´ıvan´e patˇr´ı napˇr. skokov´a nebo line´arn´ı).
2.3
34
Klasifikace dokument˚ u
w1 x1 x2 x3
w2
Pn
i=0
w i xi
z(x)
w3 w0 x0 = 1
Obr´azek 6: Model perceptronu
Pomoc´ı perceptronu je moˇzn´e nal´ezt line´arn´ı hranici mezi dvˇema skupinami prvk˚ u v prostoru. Pro nalezen´ı neline´arn´ı hranice, jsou neurony zapojov´any do s´ıt´ı. Nejˇcastˇejˇs´ım zapojen´ım neuron˚ u je tˇr´ıvrstv´a architektura (viz obr´azek 7). S´ıt’ je rozdˇelena na tˇri vrstvy, prvn´ı je vstupn´ı vrstva, posledn´ı v´ ystupn´ı vrstva a mezi nimi se nach´az´ı tzv. skryt´a vrstva. Pokud se na dvˇe sousedn´ı vrstvy v neuronov´e s´ıti bude nahl´ıˇzet jako na graf s neurony reprezentuj´ıc´ı uzly a vazby mezi neurony hrany, tak zp˚ usob zapojen´ı neuron˚ u odpov´ıd´a u ´pln´emu bipartitn´ımu grafu, tzn. ˇze kaˇzd´ y neuron z jedn´e vrstvy je vˇzdy propojen s kaˇzd´ ym neuronem z druh´e vrstvy. Neuronovou s´ıt’
vstupn´ı vrstva
skryt´a vrstva
v´ ystupn´ı vrstva
Obr´azek 7: Sch´ematick´e zn´ azornˇen´ı tˇr´ıvrstv´e neuronov´e s´ıtˇe
je tˇreba nauˇcit nˇejak´e znalosti. V souˇcasn´e dobˇe existuj´ı r˚ uzn´e pˇr´ıstupy k procesu uˇcen´ı s´ıtˇe, nejz´akladnˇejˇs´ım a tak´e nejˇcastˇeji pouˇz´ıvan´ ym algoritmem je zpˇetn´e ˇs´ıˇren´ı chyby (angl. backpropagation). Bˇehem uˇcen´ı doch´az´ı k aktualizaci vah vstup˚ u pro jednotliv´e neurony tak, aby se minimalizovala chybov´a funkce. Pˇri pr´aci s textov´ ymi daty jsou na vstup neuronov´e s´ıtˇe pˇred´av´any jednotliv´e pˇr´ıznakov´e vektory. D´ıky dˇr´ıve uveden´ ym charakteristik´am textov´ ych dat reprezen-
2.3
Klasifikace dokument˚ u
35
tovan´ ych pomoc´ı vektor˚ u tak mus´ı vzniknout s´ıt’ s ˇra´dovˇe nˇekolika tis´ıci neuron˚ u na vstupn´ı vrstvˇe. Poˇcet neuron˚ u ve v´ ystupn´ı vrstvˇe se odv´ıj´ı od klasifikaˇcn´ı u ´lohy. Pokud jsou rozliˇsov´any pouze dvˇe tˇr´ıdy, postaˇc´ı jedin´ y neruon. V pˇr´ıpadˇe v´ıcetˇr´ıdn´ı klasifikace uˇz mus´ı b´ yt pˇr´ıtomno tolik neuron˚ u, kolik je rozliˇsov´ano tˇr´ıd. Velikost ˇ ım skryt´e vrstvy se vol´ı experiment´alnˇe, podle kvality dosahovan´ ych v´ ysledk˚ u. C´ vyˇsˇs´ı je celkov´ y poˇcet neuron˚ u, t´ım roste ˇcasov´a n´aroˇcnost na proces uˇcen´ı neuronov´e s´ıtˇe, takˇze pro klasifikaci textov´ ych dat nemus´ı b´ yt pouˇzit´ı s´ıt´ı nejlepˇs´ı moˇznou variantou. Podp˚ urn´ e vektory Metoda podp˚ urn´ ych vektor˚ u (angl. support vector machines, zkr´acenˇe SVM) slouˇz´ı pro rozdˇelen´ı bod˚ u ve v´ıcerozmˇern´em prostoru do dvou skupin, a to bud’ line´arn´ı nebo neline´arn´ı hranic´ı. Jednotliv´e body jsou od sebe oddˇeleny pomoc´ı hyperroviny, kter´a je um´ıstˇena tak, aby hraniˇcn´ı p´asmo mezi obˇema skupinami bylo co nejvˇetˇs´ı (viz obr´azek 8), ˇc´ımˇz se dos´ahne sn´ıˇzen´ı chybovosti pˇri klasifikov´an´ı n´ahodnˇe vybran´eho nezn´am´eho prvku (Vapnik, 1995). Probl´em tedy spoˇc´ıv´a v nalezen´ı optim´aln´ıho um´ıstˇen´ı roviny, protoˇze zp˚ usob˚ u jej´ıho um´ıstˇen´ı je teoreticky nekoneˇcnˇe mnoho. Pro hled´an´ı rozdˇeluj´ıc´ı hyperroviny se pouˇz´ıv´aj´ı tzv. j´adrov´e (kernel) funkce, kter´ ych existuje v´ıce druh˚ u. Z´akladn´ı funkce umoˇzn ˇuje nal´ezt pouze linearn´ı hranici, podobnˇe jako napˇr. perceptron. Pouˇzit´ım polynomi´aln´ı nebo radi´aln´ı b´azov´e funkce je moˇzn´e nal´ezt i hranici neline´arn´ı. Ta je nalezena pomoc´ı transformace
Obr´azek 8: Uk´ azka hraniˇcn´ıho p´ asma a hyperroviny rozdˇeluj´ıc´ı dvˇe skupiny prvk˚ u. Zdroj: http://phaedrusdeinus.org/svm-lightning/
prvk˚ u do nov´eho prostoru s v´ıce dimenzemi, kter´ y umoˇzn´ı nalezen´ı line´arn´ı hranice. Zpˇetnou transformac´ı se dostane hranice neline´arn´ı. Algoritmus podp˚ urn´ ych vektor˚ u je pro pr´aci s textov´ ymi daty velice vhodn´ y (Joachims, 1998). Vektory reprezentuj´ıc´ı
2.3
36
Klasifikace dokument˚ u
textov´a data jsou velice ˇr´ıdk´e a skl´ad´aj´ı se z velk´eho mnoˇzstv´ı atribut˚ u. SVM m´a totiˇz tu vlastnost, ˇze schopnost nalezen´ı hranice m˚ uˇze b´ yt nez´avisl´a na dimenzionalitˇe vektorov´eho prostoru. Pokud tedy v datech existuje nˇejak´e hraniˇcn´ı p´asmo, je moˇzn´e generalizovat i vysoce dimenzion´aln´ı data, coˇz je pˇresnˇe pˇr´ıpad vektor˚ u reprezentuj´ıc´ı textov´a data. Metoda nejbliˇ zˇs´ıho souseda Metoda nejbliˇzˇs´ıho souseda, potaˇzmo k nejbliˇzˇs´ıch soused˚ u, je zaloˇzena na porovn´av´an´ı dokument˚ u a v´ ypoˇctu jejich vz´ajemn´e podobnosti. M´ısto procesu uˇcen´ı, kter´ y z tr´enovac´ıch generalizuje nˇejakou znalost, jsou tr´enovac´ı pˇr´ıklady spolu s informac´ı o pˇr´ısluˇsnosti do nˇekter´e ze tˇr´ıd ukl´ad´any do datab´aze a jednotliv´e atributy slouˇz´ı jako souˇradnice ve v´ıce rozmˇern´em prostoru, ˇc´ımˇz hodnoty tˇechto atribut˚ u urˇcuj´ı polohu dokumentu v dan´em prostoru (Manning, Raghavan, Sch¨ utze, 2008). Nezn´am´ y pˇr´ıpad je n´aslednˇe porovn´an se vˇsemi z´aznamy v datab´azi a jeho tˇr´ıda se urˇc´ı podle k nejbliˇzˇs´ıch (nejpodobnˇejˇs´ıch) pˇr´ıpad˚ u. Poˇcet uloˇzen´ ych dokument˚ u je d˚ uleˇzit´e peˇclivˇe vyb´ırat, protoˇze pˇri mal´em poˇctu nemus´ı b´ yt k dispozici dostatek informac´ı pro spr´avn´e klasifikov´an´ı nezn´am´ ych pˇr´ıpad˚ u. Na druhou stranu velk´e mnoˇzstv´ı bude prodluˇzovat proces hled´an´ı nejbliˇzˇs´ıch soused˚ u. V pˇr´ıpadˇe textov´ ych dat jsou dokumenty reprezentov´any pˇr´ıznakov´ ymi vektory. Pˇredpokl´ad´a se, ˇze dokumenty ze stejn´e tˇr´ıdy budou do urˇcit´e m´ıry pouˇz´ıvat shodn´a slova, a tak budou i ve v´ıcerozmˇern´em prostoru bl´ızko sebe. Pro mˇeˇren´ı podobnosti jednotliv´ ych dokument˚ u existuje cel´a ˇrada metrik. Nejz´akladnˇejˇs´ı je Eukleidova vzd´alenost. v u n uX δ(dt , dq ) = kdt − dq k = t (wt,i − wq,i )2 i=1
Ta mˇeˇr´ı rozd´ıl mezi dotazovan´ ym dokumentech dq a tr´enovac´ım dokumentem dt jako druhou odmocninu ze souˇctu ˇctverc˚ u. Pouˇzit´ı t´eto vzd´alenosti b´ yv´a u vˇetˇsiny probl´em˚ u ˇreˇsen´ ych pomoc´ı metody nejbliˇzˇs´ıho souseda nejˇcastˇejˇs´ı. Dalˇs´ım pouˇz´ıvan´ ym typem je Manhattansk´a vzd´alenost. δ(dt , dq ) = |dt − dq | =
n X
|wt,i − wq,i |
i=1
Podobnost dokument˚ u je poˇc´ıt´ana jako souˇcet absolutn´ıch rozd´ılu mezi jednotliv´ ymi pˇr´ıznaky vektor˚ u reprezentuj´ıc´ı dan´e dokumenty. Posledn´ım zde uveden´ ym zp˚ usobem v´ ypoˇctu podobnosti dokument˚ u je kosinov´a vzd´alenost, kdy hodnota podobnosti dvou dokument˚ u je d´ana hodnotou kosinu u ´hlu, kter´ y spolu pˇr´ıznakov´e vektory tˇechto dokument˚ u sv´ıraj´ı. Pn dt,i dq,i dt · dq δ(dt , dq ) = = qP i=1 qP n n kdt kkdq k 2 2 i=1 wt,i i=1 wq,i
2.4
37
Hodnocen´ı u ´spˇeˇsnost´ı
Kosinov´a vzd´alenost je pro hodnocen´ı podobnosti textov´ ych dat velice vhodn´a, 5 protoˇze nezohledˇ nuje rozsah hodnot jednotliv´ ych pˇr´ıznak˚ u obou vektor˚ u. Pokud dokumenty obsahuj´ı stejn´a slova, ale v r˚ uzn´ ych poˇctech, m˚ uˇze pˇri pouˇzit´ı Eukleidovsk´e vzd´alenosti vyj´ıt jako v´ıce podobn´ y dokument, kter´ y obsahuje menˇs´ı poˇcet stejn´ ych slov, ale v podobn´em mnoˇzstv´ı. Tuto situaci je moˇzn´e vidˇet na v´ yˇse uveden´em obr´azku 3. Z hlediska kosinov´e vzd´alenosti je vˇsak situace pˇresnˇe opaˇcn´a, protoˇze urˇcuj´ıc´ı je sv´ıran´ yu ´hel, nikoliv d´elka vektor˚ u.
2.4
Hodnocen´ı u ´spˇ eˇsnost´ı
Po nauˇcen´ı klasifik´atoru je nutn´e nˇejak´ ym zp˚ usobem zmˇeˇrit kvalitu jeho klasifikaˇcn´ıch schopnost´ı. Proces uˇcen´ı je totiˇz ˇcasto zaloˇzen na minimalizaci chyby, kter´e klasifik´ator dos´ahne na tr´enovac´ıch dat. Zde vˇsak hroz´ı probl´em tzv. pˇreuˇcen´ı (overfitting), kdy v´ ysledn´ y klasifik´ator dosahuje vynikaj´ıc´ıch v´ ysledk˚ u na tr´enovac´ıch datech, nicm´enˇe na testovac´ıch datech bude jeho chybovost mnohem vyˇsˇs´ı v d˚ usledku nenauˇcen´ı znalosti zobecniteln´e i na data nepouˇzit´a v procesu uˇcen´ı. Opaˇcn´ ym probl´emem je naopak nedouˇcen´ı (underfitting), kdy je uˇcen´ı klasifik´atoru zastaveno pˇr´ıliˇs brzy a tud´ıˇz z´ısk´a pouze mal´e mnoˇzstv´ı znalosti. Zhodnocen´ı kvality klasifik´atoru se tedy prov´ad´ı mˇeˇren´ım jeho v´ ykonnosti na testovac´ıch datech. Pro tyto u ´ˇcely existuj´ı r˚ uzn´e metriky, kter´e umoˇzn ˇuj´ı vyj´adˇrit kvalitu dosaˇzen´ ych v´ ysledk˚ u v ˇc´ıseln´e podobˇe a je tedy moˇzn´e mezi sebou jednotliv´e klasifik´atory porovn´avat. Pomysln´ ym odrazov´ ym m˚ ustkem pro v´ ypoˇcet nˇekter´ ych metrik je kontingenˇcn´ı tabulka, v pˇr´ıpadˇe bin´arn´ı klasifikace o rozmˇerech 2 × 2, oznaˇcovan´a tak´e jako matice z´amˇen. Na jedn´e z os jsou zaznamen´av´any dokumenty podle jejich skuteˇcn´e Tabulka 2: Matice z´ amˇen pro bin´arn´ı klasifik´ator pozitivn´ıch recenz´ı
positive
negative
positive
TP
FP
negative
FN
TN
tˇr´ıdy a na druh´e ose tˇr´ıdy, kter´e byly dokument˚ um pˇriˇrazeny klasifik´atorem (viz tabulka 2). Celkem tak mohou nastat ˇctyˇri zp˚ usoby klasifikace dokumentu. Pozitivn´ı dokument m˚ uˇze b´ yt oznaˇcen spr´avnˇe jako pozitivn´ı, v takov´em pˇr´ıpadˇe jde o True Positive klasifikaci, nebo nespr´avnˇe jako negativn´ı, kdy jde o False Negative klasifikaci. Obdobnˇe pro negativn´ı recenze ozanˇcen´e spr´avnˇe jako negativn´ı True Negative a nespr´avnˇe jako pozitivn´ı False Positive. Poˇcet spr´avnˇe klasifikovan´ ych dokument˚ u se tak nach´az´ı na diagon´ale matice. acc = 5
TP + TN TP + FP + FN + TN
ve skuteˇcnosti hodnoty pˇrev´ ad´ı do jednotkov´eho rozsahu, ˇc´ımˇz dojde k eliminaci vlivu r˚ uzn´ ych rozsah˚ u
2.4
38
Hodnocen´ı u ´spˇeˇsnost´ı
Z´akladn´ı metrikou pro ohodnocen´ı celkov´e u ´spˇeˇsnosti klasifikace je accuracy, coˇz je pod´ıl spr´avnˇe klasifikovan´ ych pˇr´ıpad˚ u ze vˇsech testovan´ ych. Tento zp˚ usob mˇeˇren´ı v´ ysledn´e pˇresnosti dok´aˇze poskytnout z´akladn´ı pˇredstavu o z´ıskan´em klasifik´atoru, avˇsak v nˇekter´ ych pˇr´ıpadech m˚ uˇze b´ yt tento zp˚ usob zhodnocen´ı velice nepˇresn´ y. Pokud jsou jednotliv´e tˇr´ıdy v testovac´ı mnoˇzinˇe zastoupeny rovnomˇernˇe, je hodnocen´ı pomoc´ı acc v poˇra´dku. V pˇr´ıpadˇe znaˇcn´e pˇrevahy jedn´e ze tˇr´ıd nad druhou vˇsak m˚ uˇze nastat n´asleduj´ıc´ı situace. Mnoˇzina o t´ısici dokumentech obsahuje pouze deset pozitivn´ıch pˇr´ıpad˚ u, kter´e chceme pomoc´ı klasifik´atoru rozeznat (viz tabulka 3. Pokud bude klasifik´ator zcela ignorovat existenci pozitivn´ıch pˇr´ıpad˚ u a pro vˇsechny pˇr´ıpady urˇc´ı jako v´ yslednou tˇr´ıdu negativn´ı, bude dosahovat velice vysok´e 99% pˇresnosti, pˇr´ıpadnˇe obr´acen´ım vn´ım´an´ı hodnoty pouze 1% chybovosti. ´ celem vˇsak je spr´avnˇe rozeznat onˇech 10 pozitvn´ıch dokument˚ Uˇ u. Aby bylo moˇzn´e podobn´e pˇr´ıpady spr´avnˇe zhodnotit, je nutn´e pouˇz´ıt i jin´e metriky. Tˇemito metriTabulka 3: Matice z´ amˇen klasifikace nevyv´aˇzen´e testovac´ı mnoˇziny
positive
negative
positive
0
0
negative
10
990
kami, kter´e dok´aˇz´ı kvantifikovat u ´spˇeˇsnost klasifik´atoru pˇri klasifikaci pozitivn´ıch pˇr´ıpad˚ u, jsou precision a recall. Precision ud´av´a pomˇer spr´avnˇe klasifikovan´ ych pozitivn´ıch pˇr´ıpad˚ u na vˇsech pˇr´ıpadech klasifikovan´ ych jako pozitivn´ı. Recall naproti tomu vyjadˇruje pomˇer spr´avnˇe klasifikovan´ ych pozitivn´ıch pˇr´ıpad˚ u na vˇsech skuteˇcnˇe pozitivn´ıch pˇr´ıpadech. prec =
TP TP + FP
rec =
TP TP + FN
Pouˇzit´ım tˇechto metrik na zhodnocen´ı v´ yˇse popsan´eho klasifik´atoru se tedy vyruˇs´ı vliv drtiv´e vˇetˇsiny spr´avnˇe negativn´ıch dokument˚ u, protoˇze v jejich v´ ypoˇctu ˇz´adn´ ym zp˚ usobem nefiguruj´ı. V´ ysledn´e hodnoty jsou v obou pˇr´ıpadech nulov´e, na ˇcemˇz je jasnˇe vidˇet neschopnost klasifik´atoru rozeznat pozitivn´ı dokumenty. Zlepˇsen´ı se dos´ahne t´ım, ˇze nˇekter´e z dokument˚ u budou klasifikov´any jako pozitivn´ı. V pˇr´ıpadˇe nutnosti vyj´adˇrit pˇresnost klasifik´atoru pomoc´ı jedin´e ˇc´ıseln´e hodnoty je moˇzn´e pouˇz´ıt metriku F-measure, kter´a kombinuje dohromady precision a recall, a to jako jejich harmonick´ y pr˚ umˇer. 2 · prec · rec F = prec + rec Pokud se klasifikuje do v´ıce neˇz dvou tˇr´ıd, je vhodn´e podobn´ ym zp˚ usobem vyj´adˇrit kvalitu z´ıskan´e znalosti pomoc´ı jedn´e hodnoty (Manning, Raghavan, Sch¨ utze, 2008). Toho se dosahuje tzv. makropr˚ umˇerov´an´ım nebo mikropr˚ umˇerov´an´ım. V pˇr´ıpadˇe makropr˚ umˇerov´an´ı jsou pro kaˇzdou tˇr´ıdu zvl´aˇst’ spoˇc´ıt´any jednotliv´e metriky, kter´e
2.5
Paraleln´ı zpracov´an´ı
39
jsou n´aslednˇe zpr˚ umˇerov´any. U mikropr˚ umˇerov´an´ı jsou matice z´amˇen pro jednotliv´e tˇr´ıdy seˇcteny do jedn´e spoleˇcn´e, ze kter´e jsou n´aslednˇe spoˇc´ıt´any hodnot´ıc´ı metriky. Pokud je nˇekter´a ze tˇr´ıd zastoupena ve vˇetˇs´ım mnoˇzstv´ı, bude pˇrenost dosahovan´a nad touto tˇr´ıdou pˇri mikropr˚ umˇerov´an´ı pˇrevaˇzovat nad pˇresnostmi klasifikace ostatn´ıch, m´enˇe zastoupen´ ych tˇr´ıd. V takov´em pˇr´ıpadˇe je vhodnˇejˇs´ı pouˇz´ıt variantu makropr˚ umˇerov´an´ı, protoˇze do koneˇcn´eho v´ ysledku pˇrisp´ıvaj´ı u ´spˇeˇsnosti klasifikace jednotliv´ ych tˇr´ıd stejn´ ym d´ılem.
2.5
Paraleln´ı zpracov´ an´ı
Paraleln´ı zpracov´an´ı v sobˇe skr´ yv´a moˇznost sn´ıˇzit celkovou ˇcasovou n´aroˇcnost klasifikace na z´akladˇe rozs´ahl´ ych kolekc´ı textov´ ych dat. Rozdelˇen´ım cel´eho probl´emu na nˇekolik menˇs´ıch by mˇelo doj´ıt k rapidn´ımu sn´ıˇzen´ı ˇcasu, potˇrebn´eho pro natr´enov´an´ı klasifik´atoru, protoˇze v´ ypoˇcetn´ı n´aroˇcnost zpravidla neroste u tˇechto typu probl´em˚ u line´arnˇe. Paralen´ı pˇr´ıstup jiˇz byl pro tyto u ´ˇcely pouˇzit, napˇr. pro detekci webov´ ych u ´tok˚ u byl pouˇzit klasifik´ator zaloˇzen´ y na podobnosti dokument˚ u, pˇriˇcemˇz klasick´ y ˇ sekvenˇcn´ı pˇr´ıstup nebyl schopen zpracovat pˇr´ıchoz´ı data v re´aln´em ˇcase. Reˇsen´ım probl´emu bylo zparalelizov´an´ı tohoto procesu (Ulmer et al., 2011). Dalˇs´ım moˇzn´ ym pˇr´ıstupem bylo vytvoˇren´ı skupiny klasifik´ator˚ u na z´akladˇe d´ılˇc´ıch dimenz´ı rozs´ahl´e kolekce textov´ ych dat (Lertnattee, Theeramunkong, 2004). Na PEF byl realizov´an v´ yzkum zamˇeˇren´ y na zp˚ usob rozdˇelen´ı datov´e mnoˇziny na jednotliv´e podmnoˇziny tak, aby byla co moˇzn´a nejv´ıce zachov´ana kvalita v´ ysledn´e komise klasifik´ator˚ u ˇ v˚ uˇci klasifik´atoru nauˇcen´em na cel´em datov´em souboru (Ziˇzka, Daˇrena, 2012). Tento konkr´etn´ı v´ yzkum byl jedn´ım ze z´akladn´ıch podklad˚ u pro vypracov´an´ı t´eto pr´ace.
3
´ ı METODIKA ZPRACOVAN´
3
40
Metodika zpracov´ an´ı
V´ ystupem diplomov´e pr´ace je zrealizov´an´ı nˇekolika klasifikaˇcn´ıch experiment˚ u nad vˇetˇs´ı kolekc´ı textov´ ych dat, kter´e budou slouˇzit k ovˇeˇren´ı hypot´ezy o moˇznosti aplikov´an´ı paralelizovan´eho pˇr´ıstupu pˇri uˇcen´ı klasifik´ator˚ u nad rozs´ahl´ ymi kolekcemi textov´ ych dokument˚ u. Pro z´ısk´an´ı potˇrebn´ ych v´ ysledk˚ u bude nutn´e: • sebrat dostateˇcn´e mnoˇzstv´ı ohodnocen´ ych textov´ ych dat, • zvolit testovan´e algoritmy strojov´eho uˇcen´ı, • vybrat a rozdˇelit mnoˇzinu dokument˚ u pro paraleln´ı zpracov´an´ı, • pˇredzpracovat vhodn´ ym zp˚ usobem textov´e dokumenty, • nauˇcit a otestovat klasifik´ator na cel´e vybran´e mnoˇzinˇe a na rozdˇelen´ ych podmnoˇzin´ach.
3.1
Data
Z´akladem pro uskuteˇcnˇen´ı potˇrebn´ ych experiment˚ u je dostateˇcn´e mnoˇzstv´ı textov´ ych dokument˚ u, vyjadˇruj´ıc´ı urˇcit´ y postoj autora textu nebo zab´ yvaj´ıc´ı se nˇejak´ ym t´ematem. Takov´ ych dat je na internetu dostupn´ ych pomˇernˇe velk´e mnoˇzstv´ı, ale z´ısk´an´ı jejich dostateˇcnˇe velk´eho poˇctu nen´ı zcela trivi´aln´ı. Data totiˇz mus´ı b´ yt vhodnˇe ohodnocena, aby mohla b´ yt pouˇzita k vytv´aˇren´ı jednotliv´ ych klasifik´ator˚ u pomoc´ı tzv. uˇcen´ı s uˇcitelem. Pro kaˇzd´ y dokument je nutn´e zn´at jeho pˇr´ısluˇsnost do klasifikaˇcn´ı tˇr´ıdy, a to i pro testovac´ı data, jelikoˇz v´ ysledn´e klasifik´atory je tˇreba otestovat na datech nepouˇzit´ ych v procesu uˇcen´ı a porovnat tˇr´ıdu urˇcenou klasifik´atorem se skuteˇcnou tˇr´ıdou dokumentu. Zp˚ usoby vytvoˇren´ı potˇrebn´e kolekce dokument˚ u jsou celkem dva. Prvn´ı je vyuˇzit´ı nˇekter´e z jiˇz existuj´ıc´ıch kolekc´ı textov´ ych dokument˚ u a druh´ y je sestaven´ı vlastn´ı nov´e kolekce. 3.1.1
Standardn´ı zdroje textov´ ych kolekc´ı
V cel´e ˇradˇe vˇedeck´ ych prac´ıch zab´ yvaj´ıc´ıch se problematikou dolov´an´ı z textov´ ych dat, konkr´etnˇe kategorizac´ı dokument˚ u, b´ yvaj´ı velice ˇcasto pouˇz´ıv´any obecnˇe zn´am´e (angl. well-known) a z´aroveˇ n volnˇe dostupn´e kolekce ohodnocen´ ych dokument˚ u (Cardoso-Cachopo, 2007). 20 Newsgroups Tato kolekce dokument˚ u obsahuje zhruba dvacet tis´ıc pˇr´ıspˇevk˚ u, kter´e jsou t´emˇeˇr rovnomnˇernˇe rozdˇeleny do dvaceti tˇr´ıd pˇredstavuj´ıc´ı r˚ uzn´a t´emata, kter´ ych se pˇr´ıspˇevky t´ ykaj´ı (baseball, hockey, electronics, atheism), pˇriˇcemˇz pˇr´ısluˇsnost dokumentu do tˇr´ıdy je exkluzivn´ı (patˇr´ı vˇzdy pouze do jedn´e tˇr´ıdy). Kromˇe samotn´eho
3.1
Data
41
textu obsahuj´ı dokumenty ˇradu meta informac´ı, jako adresu a jm´eno odes´ılatele ˇci pˇr´ıjemce, n´azev vl´akna nebo pˇredmˇet zpr´avy (Rennie, 2008). Reuters-21578 Dalˇs´ı ˇcasto pouˇz´ıvan´a kolekce Reuters-21578 obsahuje celkem 21578 dokument˚ u, z nichˇz zhruba polovina je ohodnocena alespoˇ n jednou tˇr´ıdou. Z cel´e kolekce je moˇzn´e pouˇz´ıt dvˇe menˇs´ı kolekce R10 a R90 obsahuj´ıc´ı dan´e dokumenty rozdˇelen´e do odpov´adaj´ıc´ıho poˇctu tˇr´ıd (napˇr. grain, livestock, coffe, cpu). Dokumenty jsou uloˇzen´e v SGML form´atu, takˇze obsahuj´ı nav´ıc strukturn´ı znaˇcky (Lewis, 2004). WebKB Kolekce WebKB obsahuje internetov´e str´anky sebran´e z r˚ uzn´ ych univerzit. Celkem je k dispozici pˇres 8 tis´ıc str´anek, kter´e byly ruˇcnˇe klasifikov´any do n´asleduj´ıc´ıch kategori´ı: student, faculty, staff, department, course, project, a other. Str´anky jsou uloˇzeny pˇr´ımo v HTML form´atu, takˇze podobnˇe jako u Reuters kolekce obsahuj´ı strukturn´ı znaˇcky. Nav´ıc je na zaˇca´tku kaˇzd´eho dokumentu uvedena MIME hlaviˇcka. Nˇekter´e z uloˇzen´ ych str´anek tak mohou obsahovat pouze informace pro prohl´ıˇzeˇc o pˇresmˇerov´an´ı na jinou adresu (Cardoso-Cachopo, 2007). V´ yhoda pouˇzit´ı nˇekter´e z uveden´ ych kolekc´ı spoˇc´ıv´a ve snadn´e srovnatelnosti z´ıskan´ ych v´ ysledk˚ u s ostatn´ımi v´ yzkumy, kter´e tyto datov´e kolekce pˇri sv´ ych experimentech pouˇzily. Nˇekter´e jsou nav´ıc dostupn´e i v urˇcit´em prezpracovan´em stavu, kupˇr´ıkladu jsou jiˇz odstranˇena stop slova nebo byl aplikov´an stemming, coˇz m˚ uˇze usnadnit proces pˇr´ıpravy dat. Pro potˇreby t´eto pr´ace jsou vˇsak tyto jinak velice vhodn´e kolekce nepouˇziteln´e, a to kv˚ uli pˇr´ıliˇs mal´emu mnoˇzstv´ı dokument˚ u. Pro vytvoˇren´ı dostateˇcnˇe rozs´ahl´e kolekce dat bude tedy nutn´e zvolit jin´ y zp˚ usob. 3.1.2
Vytvoˇren´ı nov´ e kolekce
Pokud z nˇejak´eho d˚ uvodu nen´ı moˇzn´e pouˇz´ıt pro experimenty standardnˇe pouˇz´ıvan´e kolekce dokument˚ u, mus´ı b´ yt pouˇzita nˇekter´a prozat´ım obecnˇe nerozˇs´ıˇren´a kolekce nebo vytvoˇrena zcela nov´a. Zdrojem textov´ ych dat s ohodnocen´ım mohou b´ yt nejr˚ uznˇejˇs´ı internetov´e str´anky, na kter´ ych mohou n´avˇstˇevn´ıci ps´at do diskuz´ı, koment´aˇr˚ u ˇci hodnocen´ı produkt˚ u a z´aroveˇ n pˇridat jeˇstˇe jin´ y zp˚ usob urˇcen´ı v´ yznamu napsan´eho textu, napˇr. plusov´e a minusov´e body nebo poˇcty hvˇezdiˇcek. Celosvˇetovˇe zn´am´e internetov´e str´anky jako internetov´a filmov´a datab´aze IMBb nebo tˇreba elektronick´ y obchod Amazon maj´ı v souˇcasn´e dobˇe obrovskou z´akladnu uˇzivatel˚ u, kteˇr´ı p´ıˇs´ı recenze na filmy ˇci produkty a poskytuj´ı tak nemal´e mnoˇztsv´ı textov´ ych dat ohodnocen´ ych poˇctem hvˇezdiˇcek, pˇriˇrazen´ım k produktu ˇci filmu urˇcit´e kategorie, apod. Mohou tak slouˇzit jako dobr´ y zdroj pro z´ısk´an´ı dostateˇcn´eho mnoˇzstv´ı ohodnocen´ ych dat psan´ ych v pˇrirozen´em jazyce. Vˇetˇsinou vˇsak nen´ı ˇcasovˇe nebo i finanˇcnˇe moˇzn´e ruˇcn´ım zp˚ usobem proch´azet podobn´e str´anky a ukl´adat jednotliv´e recenze do nov´e kolekce, kter´a by mˇela obsaho-
3.2
42
Algoritmy strojov´eho uˇcen´ı
vat ˇra´dovˇe nˇekolik des´ıtek, ne-li stovek tis´ıc dokument˚ u. Proces je moˇzn´e zautomatizovat vytvoˇren´ım programu, kter´ y bude na z´akladˇe url str´anky postupnˇe stahovat, extrahovat z nich potˇrebn´e u ´daje a ukl´adat je ve vhodn´em form´atu pro n´asledn´e pouˇzit´ı pˇri experimentech. Tabulka 4: Charakteristika dat hotelov´ ych recenz´ı
Nejkratˇs´ı recenze
1 slovo
Nejdelˇs´ı recenze
400 slov
Pr˚ umˇern´a d´elka recenze
24 slov
V t´eto diplomov´e pr´aci by byl norm´alnˇe zvolen druh´ y zp˚ usob, protoˇze standardn´ı textov´e kolekce bohuˇzel neobsahuj´ı postaˇcuj´ıc´ı poˇcet dokument˚ u, kter´ y je pro realizaci zam´ yˇslen´ ych experiment˚ u bezpodm´ıneˇcnˇe nutn´ y. Vedouc´ım pr´ace vˇsak byla ˇ zka, Daˇrena, 2010), kter´a d´ana k dispozici jiˇz zkompletovan´a kolekce dokument˚ u (Ziˇ m´a poˇzadovan´e vlastnosti, tedy ohodnocen´ı textov´ ych dat a dostateˇcn´e mnoˇzstv´ı dokument˚ u. Jedn´a se o recenze hotel˚ u psan´ ych v anglick´em jazyce a dle jejich obsahu jsou rozdˇeleny do dvou tˇr´ıd, pozitivn´ı a negativn´ı recenze, pˇriˇcemˇz jejich pˇr´ısluˇsnost do dan´ ych tˇr´ıd urˇcovali pˇr´ımo autoˇri recenz´ı. Nejz´akladnˇejˇs´ı charektristiky tˇechto dat jsou uvedeny v tabulce 4.
3.2
Algoritmy strojov´ eho uˇ cen´ı
Na konci pˇredchoz´ı kapitoly byly kr´atce pˇredstaveny algoritmy, kter´e se pro klasifikaci textov´ ych dat pouˇz´ıvaj´ı nejˇcastˇeji. Experimenty budou provedeny pouze s nˇekolika vybran´ ymi metodami, a to: • neuronov´e s´ıtˇe, • podp˚ urn´e vektory, • nejbliˇzˇs´ı soused. D˚ uvodem jejich v´ ybˇeru je pˇredevˇs´ım ˇcasov´a n´aroˇcnost, kterou by mˇelo b´ yt moˇzn´e d´ıky paraleln´ımu pˇr´ıstupu v´ yraznˇe sn´ıˇzit. D˚ uleˇzit´ ym faktorem vˇsak je, jak´ y bude vliv na celkovou u ´spˇeˇsnost z´ıskan´ ych klasifik´ator˚ u a kter´ y ze zp˚ usob˚ u rozdˇelen´ı celkov´e mnoˇziny dat na podmnoˇziny bude poskytovat nejlepˇs´ı v´ ysledky.
3.3
V´ ybˇ er mnoˇ ziny dat a jej´ı rozdˇ elˇ en´ı
Z´akladem pro srovn´an´ı vlivu paralelizace dolov´an´ı z textov´ ych dat je rozs´ahl´a mnoˇzina dokument˚ u, na kterou budou aplikov´any algoritmy strojov´eho uˇcen´ı, a to jednak na celou mnoˇzinu a pot´e na jednotliv´e podmnoˇziny, na kter´e bude vybran´a mnoˇzina rozdˇelena.
3.4
Technologie pro implementaci
43
V´ ysledn´e podmnoˇziny by mˇely zachovat pomˇer, v jak´em se nach´az´ı zastoupen´ı jednotliv´ ych tˇr´ıd v cel´e mnoˇzinˇe. V ide´aln´ım pˇr´ıpadˇe by uˇz pˇri v´ ybˇeru hlavn´ı mnoˇziny mˇelo b´ yt zajiˇstˇeno rovnocenn´e zastoupen´ı vˇsech tˇr´ıd, aby byly klasifikaˇcn´ı algorimty natr´enov´any na stejn´em mnoˇzstv´ı pozitivn´ıch i negativn´ıch pˇr´ıpad˚ u a dok´azaly se tak nauˇcit co nejl´epe mezi obˇema pˇr´ıpady rozliˇsovat. To vˇsak v praxi ˇcasto nemus´ı b´ yt moˇzn´e a mˇelo by tedy pˇred rozdˇelen´ım nejdˇr´ıve doj´ıt ke zjiˇstˇen´ı pomˇeru, v jak´em jsou tˇr´ıdy zastoupeny a rozdˇelen´ı na podmnoˇziny prov´est obdobn´ ym zp˚ usobem. Testov´an´ı z´ıskan´ ych klasifik´ator˚ u mus´ı n´aslednˇe prob´ıhat na shodn´e mnoˇzinˇe testovac´ıch dokument˚ u, kter´a bude z hlediska jej´ı velikosti vytv´aˇrena v urˇcit´em pˇredem dan´em pomˇeru v˚ uˇci hlavn´ı tr´enovac´ı mnoˇzinˇe.
3.4
Technologie pro implementaci
Cel´ y proces pr˚ ubˇehu experiment˚ u je tˇreba rozdˇelit na dvˇe hlavn´ı ˇc´asti: • pˇr´ıprava dat, • uˇcen´ı a testov´an´ı klasifik´atoru. Vzhledem k obrovsk´emu rozsahu zpracov´avan´ ych dat nen´ı moˇzn´e ruˇcnˇe prov´adˇet jejich v´ ybˇer, ˇci dokonce pˇrevod dokument˚ u do vektorov´e podoby a pˇrepoˇc´ıt´an´ı vah jednotliv´ ych pˇr´ıznak˚ u vektoru. Pro tyto u ´ˇcely bude nutn´e vytvoˇrit jednoduchou aplikaci, kter´a se postar´a o v´ ybˇer dat, jejich n´asledn´e rozdˇelen´ı na podmnoˇziny a pˇreveden´ı text˚ u do vektorov´e reprezentace. Pouˇzit´ y programovac´ı jazyk by tedy mˇel umoˇzn ˇovat pokud moˇzno co nejjednoduˇsˇs´ı pr´aci s textov´ ymi daty a soubory, a to pokud moˇzno bez omezen´ı na velikost zpracov´avan´ ych dat. Pro tyto u ´ˇcely je velice vhodn´ y programovac´ı jazyk Perl, kter´ y vznikl pr´avˇe jako n´ahrada prostˇredk˚ u pro zpracov´an´ı textu, kter´e v dobˇe jeho vzniku jiˇz nebyly pro tyto u ´ˇcely dostaˇcuj´ıc´ı (Daˇrena, 2005). Pˇredzpracov´an´ı textov´ ych dokument˚ u bude tedy realizov´ano pomoc´ı nˇekolika skript˚ u. Nauˇcen´ı klasifik´ator˚ u a otestov´an´ı jejich znalosti vyˇzaduje obdobn´ y pˇr´ıstup. Je tˇreba vytvoˇrir aplikaci, kter´a zpracuje pˇredpˇripraven´a data pomoc´ı zvolen´eho uˇc´ıc´ıho algoritmu a otestuje v´ ysledn´ y klasifik´ator. Veˇsker´ y pr˚ ubˇeh bˇehu programu je nutn´e zazn´amen´avat do souboru (pro pozdˇejˇs´ı kontrolu dosaˇzen´ ych v´ ysledk˚ u). Stejnˇe tak testovac´ı ˇca´st by mˇela pˇredpovˇedi klasifik´atoru zaznamenat do souboru, aby bylo moˇzn´e po proveden´ı vˇsech potˇrebn´ ych experiment˚ u v´ ysledky porovnat a vyhodnotit. Poˇzadavky na pouˇzit´ y programovac´ı jazyk tedy budou ponˇekud odliˇsn´e: • existence knihoven pro algoritmy strojov´eho uˇcen´ı – i kdyˇz je moˇzn´e prov´est vlastn´ı implementaci vybran´ ych algoritm˚ u, nen´ı podobn´ y postup nejlepˇs´ım moˇzn´ ym ˇreˇsen´ım, protoˇze odladˇen´ı korektn´ıho fungov´an´ı by bylo ˇcasovˇe n´aroˇcn´e a nˇekter´e moˇzn´e chyby, kter´e by mohly m´ıt negativn´ı vliv na z´ıskan´e v´ ysledky, by se nemuselo podaˇrit ani odhalit, je tedy nutn´e vybrat takov´ y programovac´ı jazyk, pro kter´ y jsou jiˇz tyto algoritmy implementov´any v podobˇe rozˇs´ıˇren´ ych a uˇzivateli ovˇeˇren´ ych knihoven,
3.4
Technologie pro implementaci
44
• objektovˇe orientovan´ y pˇr´ıstup programov´an´ı, • rychlost – v´ ystupem vybran´eho jazyk by mˇela b´ yt aplikace bˇeˇz´ıc´ı co nejrychleji, ide´alnˇe by tedy mˇelo j´ıt o jazyk kompilovan´ y, protoˇze bˇehem procesu uˇcen´ı klasifik´ator˚ u doch´az´ı d´ıky rozs´ahlosti zpracov´avan´eho souboru dat (oˇcek´av´a se zhruba sto tis´ıc dokument˚ u reprezetovan´ ych vektory s v´ıce jak deseti tis´ıci atributy) k znaˇcn´emu prodluˇzov´an´ı doby uˇcen´ı a tak´e i doby potˇrebn´e pro odladˇen´ı cel´e aplikace a z´ısk´an´ı koneˇcn´ ych v´ ysledk˚ u, • moˇznost pr´ace s pamˇet´ı – stejnˇe jako m´a velikost zpracov´avan´ ych dat vliv na dobu uˇcen´ı, roste i n´aroˇcnost na pamˇet’, takˇze vybran´ y jazyk by mˇel v pˇr´ıpadˇe nutnosti umoˇzn ˇovat spr´avu pouˇz´ıvan´e pamˇeti, • typovˇe striktn´ı – neoˇcek´avan´e chyby, kter´e by mohly tak´e negativnˇe ovlivnit z´ıskan´e v´ ysledky, je eliminovat d´ıky striktn´ı typov´e kontrole, • spustitelnost na libovoln´em operaˇcn´ım syst´emu, • autorova znalost pouˇz´ıv´an´ı jazyka. Dle takto stanoven´ ych poˇzadavk˚ u byl pro implementaci zvolen programovac´ı jazyk C++. Ten je velice rozˇs´ıˇren´ y a umoˇzn ˇuje tak v´ ybˇer z ˇrady jiˇz pouˇz´ıvan´ ych a ovˇeˇren´ ych knihoven, kter´e je moˇzn´e pouˇz´ıt pro implementaci klasifik´ator˚ u. 3.4.1
V´ ybˇ er knihoven
Pokud by mˇela b´ yt provedena implementace vˇsech potˇrebn´ ych programov´ ych prostˇredk˚ u, kter´e jsou nutn´e pro realizaci experiment˚ u, bylo by nutn´e vˇenovat velk´e mnoˇzstv´ı ˇcasu na odladˇen´ı r˚ uzn´ ych ˇca´st´ı aplikace a hled´an´ı moˇzn´ ych chyb, kter´e by mohly ovlivnit z´ıskan´e v´ ysledky. Z tohto d˚ uvodu budou pro nˇekter´e kritick´e ˇca´sti aplikace pouˇzity knihovny, jejichˇz pouˇzit´ı by mˇelo zaruˇcit • oddladˇen´e a ovˇeˇren´e ˇc´asti zdrojov´eho k´odu, • implementaci od odborn´ık˚ u z dan´e oblasti, • ˇcasovou u ´sporu nutnou pro implementaci, • moˇznost ˇreˇsen´ı probl´em˚ u v r´amci komunity pouˇz´ıvaj´ıc´ı knihovnu, • zpracovanou dokumentaci. Pouˇzit´ı knihoven pˇrin´aˇs´ı ˇradu v´ yhod a jedin´ ym probl´emem m˚ uˇze b´ yt absence urˇcit´e poˇzadovan´e funkcionality, kterou je tˇreba vlastn´ımi silami doprogramovat. Pˇr´ıprava dat V prvn´ı ˇca´sti, urˇcen´e pro pˇr´ıpravu a pˇredzpracov´an´ı textov´ ych dokument˚ u, bude moˇzn´e vyuˇz´ıt programov´ y modul TextMining, jehoˇz autorem je vedouc´ı t´eto diploˇ zka, Daˇrena, 2010). Tento modul poskytuje jednoduch´e rozhran´ı pro mov´e pr´ace (Ziˇ
3.4
Technologie pro implementaci
45
pˇrevod textov´ ych dokument˚ u do vektorov´e reprezentace. Pˇri transformaci textov´ ych dat je moˇzn´e volit z cel´e ˇrady v´aˇzen´ı hodnot ve v´ ysledn´ ych pˇr´ıznakov´ ych vektorech, a to jak pro lok´aln´ı v´ahy, tak i pro glob´aln´ı v´ahy a normalizaci hodnot. Je moˇzn´e odfiltrovat i slova s n´ızk´ ym nebo naopak pˇr´ıliˇs vysok´ ym poˇctem v´ yskyt˚ u, opˇet na v´ıce u ´rovn´ıch – jednak v r´amci jednotliv´ ych dokument˚ u, v r´amci cel´eho datov´eho souboru, nebo podle poˇctu dokument˚ u, ve kter´ ych se jednotliv´a slova vyskytuj´ı. D˚ uleˇzitou souˇca´st´ı je vytv´aˇren´ı slovn´ık˚ u nad zpracov´avanou mnoˇzinou dokument˚ u, kter´e je pak moˇzn´e pˇri pˇr´ıpravˇe jin´e mnoˇziny textov´ ych dat naˇc´ıst, ˇc´ımˇz dojde ke sjednocen´ı reprezentace tˇechto dvou mnoˇzin pomoc´ı vektor˚ u se stejn´ ymi atributy. Jedin´ y poˇzadavek je kladen´ y na form´at souboru vstupn´ıch dat, kter´e mus´ı m´ıt n´asleduj´ıc´ı tvar. CLASS \t DOCUMENT -------------------------------------------------------------NEGATIVE This is very dissapointing movie, don’t waste your time with it. POSITIVE Absolutely brilliant piece, perfect cast, gorgeous visuals and very catching story. Na kaˇzd´em ˇra´dku vstupn´ıho souboru se nach´az´ı dvojice hodnot tˇr´ıda a samotn´ y dokument vz´ajemnˇe od sebe oddˇelen´e znakem tabul´atoru. Transformovan´a data je moˇzn´e ukl´ad´at do nˇekolika r˚ uzn´ ych form´at˚ u, napˇr. pro algoritmus C5 generuj´ıc´ı rozhodovac´ı strom, aplikaci Weka pro dolov´an´ı z dat vyvinut´e na univerzitˇe Waikato, nebo programov´ y bal´ık pro shlukovac´ı u ´lohy CLUTO. Vyuˇzit´ı tohoto modulu je moˇzn´e dvˇema zp˚ usoby. Jednak jej lze zahrnout do vlastn´ıch skript˚ u a vyuˇz´ıt poskytnut´e rozhran´ı pro nastaven´ı parametr˚ u pˇrevodn´ıho algoritmu a spuˇstˇen´ı transformace dat. Druh´ ym zp˚ usobem je pouˇzit´ı i grafick´e nadstavby nad t´ımto modulem, implementovan´e pomoc´ı modulu pro grafick´e uˇzivatelsk´e rozhran´ı Perl/Tk. Tato aplikace umoˇzn ˇuje uˇzivatelsky pˇr´ıvˇetiv´e zad´av´an´ı parametr˚ u a tak´e validaci zadan´ ych hodnot (Nov´ak, Daˇrena, 2012). Realizace experiment˚ u Druhou ˇc´ast implementace bude tvoˇrit aplikace pro realizaci samotn´ ych experiment˚ u. Zde budou kritickou ˇca´st tvoˇrit jednotliv´e algoritmy strojov´eho uˇcen´ı, kter´e mus´ı b´ yt pro z´ısk´an´ı nez´avadn´ ych v´ ysledk˚ u ˇr´adnˇe odladˇeny a zbaveny vˇsech chyb, kter´e by mohly zp˚ usobit zkreslen´ı v´ ysledn´ ych hodnot. Je tedy pˇrirozen´e s´ahnout po jiˇz existuj´ıc´ıch knihovn´ach, kter´e poskytnou kvalitn´ı a ovˇeˇrenou implementaci tˇechto algoritm˚ u. Prvn´ım pouˇzit´ ym algoritmem jsou umˇel´e neuronov´e s´ıtˇe. Na internetov´e str´ance sourceforge.net slouˇz´ıc´ı jako u ´loˇzistˇe pro open source projekty je dle jednoduch´eho vyhled´avac´ıho dotazu dostupn´ ych zhruba dvacet projekt˚ u, kter´e implementuj´ı neuronov´e s´ıtˇe pro programovac´ı jazyk C++. Na v´ ybˇer je tedy z pomˇernˇe velk´eho mnoˇzstv´ı a popis vˇsech tˇechto moˇznost´ı by byl zbyteˇcnˇe dlouh´ y. Autor pr´ace m´a jiˇz
3.4
Technologie pro implementaci
46
zkuˇsenosti s pouˇz´ıv´an´ım knihovny Fast Artificial Neural Network (zkr´acenˇe FANN), kter´a je implementov´ana v programovac´ım jazyku C. Dostupn´a je ale cel´a ˇrada bindings pro ostatn´ı programovac´ı jazyky, vˇcetnˇe pouˇz´ıvan´eho C++. Dle domovsk´e str´anky6 projektu poskytuje tato knihovna celou ˇradu funkc´ı: • v´ıcevrstv´a architektura s´ıtˇe, • ˇctyˇri r˚ uzn´e uˇc´ıc´ı algoritmy, • pln´e ˇci ˇca´steˇcn´e propojen´ı neuron˚ u, • podpora dynamicky se upravuj´ıc´ı topologie, • snadn´a pouˇzitelnost, • vysok´a rychlost (´ udajnˇe aˇz 150 n´asobek rychlosti jin´ ych knihoven), • rychl´e ukl´ad´an´ı a naˇc´ıt´an´ı natr´enovan´ ych s´ıt´ı, • nadstavby s GUI, • jiˇz zm´ınˇen´e bindings do velk´eho mnoˇzstv´ı programovac´ıch jazyk˚ u. Tato knihovna tedy slibuje opravdu kvalitn´ı implementaci s r˚ uzn´ ymi moˇznostmi nastaven´ı topologie neuronov´e s´ıtˇe, zp˚ usobu propojen´ı neuron˚ u i r˚ uzn´ ych uˇc´ıc´ıch algoritm˚ u. Pokud by tedy mˇela v´ ysledn´a aplikace slouˇzit jako podklad pro dalˇs´ı v´ yzkum a experimenty, m˚ uˇze b´ yt pouˇzita ˇrada tˇechto rozliˇcn´ ych moˇznost´ı poskytovan´e knihovnou FANN. Nejvˇetˇs´ım kladem je vˇsak slibovan´a rychlost knihovny. Nejvˇetˇs´ı nev´ yhodou pˇri pouˇz´ıv´an´ı neuronov´ ych s´ıt´ı pˇri zpracov´an´ı textov´ ych dat je totiˇz pr´avˇe velk´a ˇcasov´a n´aroˇcnost. Jak´ ykoliv zp˚ usob urychlen´ı cel´eho procesu je tedy v´ıtan´ y a pro implementaci klasifik´atoru neuronov´e s´ıtˇe bude pouˇzita knihovna FANN. D´ale bude testov´an vliv paralelizace zpracov´an´ı dat na algoritmus podp˚ urn´ ych 7 vektor˚ u. Na internetov´em port´alu support vector machines je k dispozici velice rozs´ahl´ y seznam knihoven a softwaru implementuj´ıc´ı podp˚ urn´e vektory, a to nejen pro programovac´ı jazyk C a C++. Uveden je zde tˇreba jiˇz dˇr´ıvˇe zm´ınˇen´ y bal´ık algoritm˚ u pro dolovan´ı z dat Weka, Java applety, toolbox pro Matlab, jazyk R ˇci Python. Nechyb´ı zde ani pomˇernˇe zn´am´a knihovna libsvm8 opˇet poskytuj´ıc´ı rozhran´ı do cel´e ˇrady jin´ ych programovac´ıch jazyk˚ u. Na domovsk´e str´ance knihovny je tak´e uveden v´ yˇcet nˇekter´ ych v´ yznaˇcn´ ych vlastnost´ı implementace: • efektivn´ı klasfikace do v´ıce tˇr´ıd, • krosvalidace, • r˚ uzn´e j´adrov´e (kernel) funkce, 6
http://leenissen.dk/fann/wp/ http://www.support-vector-machines.org/ 8 http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 7
3.4
Technologie pro implementaci
47
• demonstrativn´ı GUI aplikace, • automatick´e urˇcen´ı parametr˚ u. Na prvn´ım m´ıstˇe v seznamu SVM softwaru je vˇsak uvedena knihovna SVM light9 jej´ıˇz autorem Thorsten Joachims, kter´ y se zasadil rozˇs´ıˇren´ı pouˇzitelnosti podp˚ urn´ ych vektor˚ u pro klasifikiaci textov´ ych dat. Tato knihovna se ˇrad´ı mezi nejpouˇz´ıvanˇejˇs´ı. Poskytuje vysoce optimalizovanou implementaci, kter´a umoˇzn ˇuje jej´ı pouˇzit´ı pro velice rozs´ahl´e datov´e soubory. K dispozici jsou tak´e r˚ uzn´e j´adrov´e funkce: • line´arn´ı, • polynomi´aln´ı, • radi´alnˇe b´azov´a, • sigmoid tanh, • uˇzivatelem definovan´a funkce. Vzhledem k tomu, ˇze Joachims pouˇz´ıval tuto knihovnu pro ˇradu vˇedeck´ ych ˇcl´ank˚ u zab´ yvaj´ıc´ıch se klasifikac´ı textov´ ych dat, bude pro implementaci tohoto algoritmu pouˇzita pr´avˇe knihovna SVM light, kter´a byla po konzultaci doporuˇcena i vedouc´ım pr´ace. Posledn´ım algoritmem strojov´eho uˇcen´ı je metoda nejbliˇzˇs´ıho souseda. Probl´em pˇri klasifikaci textov´ ych dat pomoc´ı tohoto pˇr´ıstupu spoˇc´ıv´a obdobnˇe jako u neuronov´ ych s´ıt´ı ve velk´e ˇcasov´e n´aroˇcnosti, kter´a roste s mnoˇzstv´ım zpracov´avan´ ych dokument˚ u a souˇcasnˇe s velikost´ı slovn´ıku. Implementace samotn´eho algoritmu nemus´ı b´ yt nikterak sloˇzit´a, protoˇze doch´az´ı pouze k postupn´emu srovn´av´an´ı dotazovan´eho vektoru se vˇsemi vektory uloˇzen´ ymi v datab´azi. Tento z´akladn´ı pˇr´ıstup vˇsak trp´ı zm´ınˇenou ˇcasovou n´aroˇcnost´ı. Proto existuj´ı modifikace, kter´e umoˇzn´ı zmenˇsen´ı poˇctu z´aznam˚ u, se kter´ ymi je dotazovan´ y vektor porovn´av´an. Pro v´ ybˇer tˇechto vektor˚ u jsou pouˇzity K-D stromy, kter´e rozdˇel´ı prostor na tzv. hyperkv´adry a klasifikovan´ y vektor je porovn´av´an pouze s pˇr´ıpady ze stejn´eho hyperkv´adru. Knihovna ANN: A Library for Approximate Nearest Neighbor Searching10 implementuje tento typ nejbliˇzˇs´ıch soused˚ u. Bude pouˇzita pouze jako pˇredloha pro vlastn´ı implementaci tohoto typu klasifik´atoru.
9 10
http://svmlight.joachims.org/ http://www.cs.umd.edu/~mount/ANN/
4
´ VYSLEDKY
4
48
V´ ysledky
V´ ysledkem t´eto diplomov´e pr´ace by mˇely b´ yt z´avˇery odvozen´e z v´ ysledk˚ u z´ıskan´ ych proveden´ım nˇekolika experiment˚ u, kter´e jsou zamˇeˇreny na srovn´an´ı dolov´an´ı znalost´ı z rozs´ahl´e textov´e kolekce a nˇekolika menˇs´ıch d´ılˇc´ıch kolekc´ı vzniknuvˇs´ıch rozdˇelen´ım p˚ uvodn´ı rozs´ahl´e kolekce dokument˚ u. Experimenty budou realizov´any skrze aplikaci, kter´a je pro tyto u ´ˇcely implementov´ana, stejnˇe jako skripty vytvoˇren´e pro usnadnˇen´ı pˇr´ıpravy textov´ ych dat. V´ ystupy pr´ace jsou tedy: • v´ ysledky experiment˚ u, • skripty pro pˇr´ıpravu dat, • aplikace pro realizaci experiment˚ u.
4.1
N´ avrh experiment˚ u
C´ılem experiment˚ u je provˇeˇrit vliv paralelizovan´eho pˇr´ıstupu pˇri dolov´an´ı znalost´ı z rozs´ahl´ ych kolekc´ı textov´ ych dat. Pˇredvˇs´ım pak jak´ y bude m´ıt vliv na v´ yslednou klasifikaci r˚ uzn´e rozdˇelen´ı tr´enovac´ıch dokument˚ u na menˇs´ı mnoˇziny a jak´e budou rozd´ıly mezi jednotliv´ ymi algoritmy strojov´eho uˇcen´ı, pouˇzit´e pro tvorbu klasifik´atoru. D˚ uleˇzit´ y by tak´e mohl b´ yt vliv r˚ uzn´ ych nastaven´ı pro jednotliv´e typy klasifik´ator˚ u, napˇr. jin´a architektura neuronov´e s´ıtˇe nebo jin´ y typ j´adrov´e funkce u podp˚ urn´ ych vektor˚ u. Na obr´azku 9 je zn´azornˇeno sch´ema pr˚ ubˇehu experimentu. Z dostupn´e kolekce dokument˚ u je nutn´e nejdˇr´ıve vybrat vhodn´e mnoˇzstv´ı dat, kter´e je pot´e rozdˇeleno na tr´enovac´ı a testovac´ı mnoˇzinu. Urˇcuj´ıc´ı je poˇzadovan´ y poˇcet dokument˚ u v tr´enovac´ı mnoˇzinˇe, takˇze testovac´ı dokumenty jsou vyb´ır´any pomˇernˇe v˚ uˇci poˇctu tr´enovac´ıch dokument˚ u, a to v pomˇeru 1 : 3, takˇze na jeden testovac´ı dokument pˇripadaj´ı tˇri tr´enovac´ı dokumenty. Tr´enovac´ı mnoˇzina je n´aslednˇe cel´a pouˇzita pro natr´enov´an´ı jednoho klasifik´atoru, kter´ y pˇredstavuje klasick´ y pˇr´ıstup ke klasifikaci textov´ ych dokument˚ u. Z´aroveˇ n je rozdˇelena na vz´ajemn´e disjunktn´ı podmnoˇziny, nad kter´ ymi jsou opˇet nauˇceny jednotliv´e klasifik´atory, kter´e vytvoˇr´ı komisi. Z kaˇzd´e tr´enovac´ı mnoˇziny je vytvoˇren slovn´ık, pomoc´ı kter´eho jsou transformov´ana testovac´ı data a pˇr´ısluˇsn´ y klasifik´ator je na tˇechto datech otestov´an. V pˇr´ıpadˇe komise je koneˇcn´a tˇr´ıda nezn´am´eho dokumentu urˇcena dle rozhodnut´ı vˇetˇsiny.
4.2
N´ avrh aplikace pro realizaci experiment˚ u
Aplikace pro realizaci experiment˚ u mus´ı slouˇzit jako n´astroj, kter´ y umoˇzn´ı jeho uˇzivateli snadno definovat, jak´ y druh klasifik´atoru bude pro klasifikaci pouˇzit a jak´e hodnoty parametr˚ u, kter´ ymi je moˇzn´e ovlivnit pr˚ ubˇeh tr´enov´an´ı a testov´an´ı dan´eho klasifik´atoru, budou nastaveny. Tak´e mus´ı b´ yt snadno nastaviteln´e, na jak´ ych datech bude klasifik´ator tr´enov´an a na kter´ ych datech bude tak´e testov´an. Veˇsker´ y pr˚ ubˇeh cel´eho experimentu je nutn´e nˇejak´ ym zp˚ usobem zaznamen´avat, takˇze je tak´e nutn´e
4.3
Implementace
49
Obr´azek 9: Sch´ematick´e znazornˇen´ı hlavn´ıch krok˚ u experimentu. Expertem je jeden klasifik´ator nauˇcen´ y na cel´e tr´enovac´ı mnoˇzinˇe a komisi tvoˇr´ı nˇekolik klasifik´ator˚ u nauˇcen´ ych na tr´enovac´ıch podmnoˇzin´ ach.
umoˇznit nastaven´ı parametr˚ u, jako n´azev souboru pro uchov´an´ı predikc´ı nauˇcen´eho klasifik´atoru nebo n´azev souboru pro uloˇzen´ı z´ıskan´eho klasifik´atoru. Aplikace by mˇela vˇsechna tato nastaven´ı naˇc´ıst, vytvoˇrit odpov´ıdaj´ıc´ı typ klasifik´atoru, nastavit zadan´e parametry klasifik´atoru, spustit uˇcen´ı nad zadan´ ymi tr´enovac´ımi daty a po ukonˇcen´ı tr´enovac´ı f´aze otestovat nauˇcen´ y klasifik´ator na souboru s testovac´ı mnoˇzinou dokument˚ u. Veˇsker´e v´ ystupy na standardn´ı a chybov´ y v´ ystup by mˇely b´ yt zaznamen´any do logovac´ıho souboru pro pozdˇejˇs´ı zkontrolov´an´ı pr˚ ubˇehu cel´eho ’ experimentu. Zvl´aˇst by pak mˇely b´ yt uchov´av´any v´ ysledky z testov´an´ı z´ıskan´eho klasifik´atoru, a to v podobˇe souboru obsahuj´ıc´ıho informace o tˇr´ıdˇe, do kter´e testovac´ı dokument opravdu patˇr´ı, a tˇr´ıdˇe predikovan´e dan´ ym klasifik´atorem, aby mohly b´ yt po skonˇcen´ı experimentu vypoˇc´ıt´any hodnot´ıc´ı metriky u ´spˇeˇsnosti.
4.3
Implementace
K implementaci byl vybr´an programovac´ı jazyk C++ a jedn´ım z d˚ uvod˚ u tohoto v´ ybˇeru byla podpora objektov´eho pˇr´ıstupu dan´ ym jazykem. Implementace aplikace tedy bude kr´atce pops´ana z hlediska jednotliv´ ych objekt˚ u, kter´e celou aplikaci tvoˇr´ı.
4.3
50
Implementace
Experiment Z´akladn´ı tˇr´ıda slouˇz´ıc´ı pro spuˇstˇen´ı cel´eho experimentu. Star´a se o vytvoˇren´ı objekt˚ u pro tisk zpr´av a zpracov´an´ı konfiguraˇcn´ıho souboru, ve kter´em jsou uloˇzena veˇsker´a nastaven´ı konkr´etn´ıho experimentu. Z tohoto souboru pˇreˇcte pouze typ pouˇz´ıvan´eho klasifik´atoru a dle zadan´eho nastaven´ı vytvoˇr´ı objekt pro dan´ y algoritmus strojov´eho uˇcen´ı. Po jeho vytvoˇren´ı je algoritmus spuˇstˇen. Algorithm Algorithm je abstraktn´ı tˇr´ıdou, pomoc´ı kter´e jsou u tˇr´ıd pro konkr´etn´ı algoritmy strojov´eho uˇcen´ı vynucov´any implementace dvou z´akladn´ıch metod, volan´ ych skrze metody tˇr´ıdy Experiment. Prvn´ı metoda slouˇz´ı pro naˇcten´ı parametr˚ u z konfiguraˇcn´ıho souboru, jejichˇz ˇc´ast b´ yv´a zpravidla specifick´a pro dan´ y algoritmus. Druhou metodou je implementov´ano spuˇstˇen´ı samotn´eho algoritmu. Vˇsechny n´asleduj´ıc´ı tˇr´ıdy reprezentuj´ıc´ı konkr´etn´ı algoritmy jsou potomky t´eto tˇr´ıdy (viz obr´azek 10). ANNAlgorithm
SVMAlgorithm
KNNAlgorithm
# binary file
# docfile
# binary file
# test file
# testfile
# test file #k
# desired error # max epochs
# classify() # train()
# prepare ann()
+ load parameters()
# prepare subsets()
+ run()
# kdt depth # ktree dimensions # build kdtree()
# train ann()
# choose dimensions()
# test ann on data()
# search tree()
+ load parameters()
Algorithm
# sparse cosine() # split node()
+ run() # printer +load parameters()
+ load parameters() + run()
+run()
ˇ ast tˇr´ıdn´ıho diagramu zobrazuj´ıc´ı tˇr´ıdy reprezentuj´ıc´ı jednotliv´e algoritmy. Obr´azek 10: C´ Kv˚ uli rozsahu jsou uvedeny pouze vybran´e metody a atributy bez datov´ ych typ˚ u a parametr˚ u.
ANNAlgorithm Tˇr´ıda reprezentuj´ıc´ı algoritmus neuronov´ ych s´ıt´ı umoˇzn ˇuje natr´enov´an´ı a otestov´an´ı modelu s´ıtˇe oproti datov´emu souboru. Pro samotn´ y klasifik´ator je pouˇz´ıv´ana knihovna FANN, rozˇs´ıˇren´a o nˇekter´e funkcionality, kter´e knihovna sama o sobˇe neposkytuje.
4.3
Implementace
51
SVMAlgorithm Tato tˇr´ıda slouˇz´ı pro reprezentaci klasifik´atoru podp˚ urn´ ych vektor˚ u. V implementaci je pouˇzita knihovna SVM light. Archiv, kter´ y je dostupn´ y na domovsk´e str´ance t´eto knihovny, obsahuje zdrojov´e k´ody pro knihovnu samotnou, ale tak´e pro programy na nauˇcen´ı a otestov´an´ı podp˚ urn´ ych vektor˚ u. Tˇela metod train a classify jsou pˇrevzata ze soubor˚ u se zdrojov´ ym k´odem tˇechto program˚ u a jsou pouze vhodnˇe upravena do objektov´e podoby. KNNAlgorithm Tˇr´ıda pro metodu nejbliˇzˇs´ıho souseda obstar´av´a porovn´an´ı testovac´ıch dokument˚ u s tr´enovac´ımi, v´ ypoˇcet vzd´alenosti mezi dvˇema vektory reprezentuj´ıc´ı porovn´avan´e dokumenty, v´ ybˇer k nejbliˇzˇs´ıch soused˚ u a urˇcen´ı predikovan´e tˇr´ıdy na z´akladˇe pˇr´ısluˇsnosti do tˇr´ıd u nejm´enˇe vzd´alen´ ych dokument˚ u. Printer Velice jednoduch´a abstraktn´ı tˇr´ıda slouˇz´ıc´ı jako pˇredloha pro tˇr´ıdy implementuj´ıc´ı jednotn´ y zp˚ usob v´ ypisu zpr´av z pr˚ ubˇehu experimentu. Obˇe n´asleduj´ıc´ı tˇr´ıdy jsou potomky t´eto tˇr´ıdy, kter´a vynucuje implementaci metod info, debug, warn a error. TerminalPrinter Tento potomek tˇr´ıdy Printer implementuje v´ ypis zpr´av na standardn´ı v´ ystup a chybov´ ych zpr´av na standardn´ı chybov´ y v´ ystup. Kaˇzd´emu ze ˇctyˇr typ˚ u zpr´avy je moˇzn´e nastavit hlaviˇcku, kter´a bude vˇzdy pˇredch´azet vypisovan´emu textu zpr´avy. Log4cPrinter Sofistikovanˇejˇs´ı zp˚ usob v´ ypisu zpr´av, kter´ y veˇsker´ y v´ ystup z´aroveˇ n ukl´ad´a do souboru, implementuje tato tˇr´ıda, a to pomoc´ı knihovny Log4cplus11 urˇcen´e pro logov´an´ı v´ ystupu programu. Nastaven´ı cel´eho logov´an´ı se prov´ad´ı pomoc´ı konfiguraˇcn´ıho souboru. Ten je do programu pˇred´an jako jeden z obecn´ ych parametr˚ u v konfiguraˇcn´ım souboru cel´eho experimentu. Skripty pro pˇr´ıpravu dat Skripty pro pˇr´ıpravu dat slouˇz´ı pro hromadn´e zpracov´an´ı a pˇr´ıpravu kolekce textov´ ych dokument˚ u. Skripty pro pˇr´ıpravu prepare fann data a prepare svm data zajist´ı vytvoˇren´ı potˇrebn´ ych datov´ ych soubor˚ u pro realizaci experimentu na z´akladˇe velikosti tr´enovac´ı mnoˇziny a poˇctu d´ılˇc´ıch podmnoˇzin. Pˇri sv´em bˇehu volaj´ı skripty split, slouˇz´ıc´ı pro rozdˇelen´ı dat na podmnoˇziny, a vectorize fann data nebo 11
http://log4cplus.sourceforge.net/
4.3
Implementace
52
vectorize svm data, kter´e pouˇz´ıvaj´ı rozˇs´ıˇren´ y modul TextMining pro pˇrevod textov´ ych dat do vektorov´e podoby. 4.3.1
Adres´ aˇrov´ a struktura
Aplikace je do jist´e m´ıry implementov´ana na pevnˇe danou adres´aˇrovou strukturu, ale n´azvy jednotliv´ ych sloˇzek a jejich um´ıstˇen´ı je moˇzn´e snadno zmˇenit, a to skrze hodnoty v konfiguraˇcn´ım souboru experimentu. V´ ychoz´ı struktura je zn´azornˇena n´asleduj´ıc´ı: +-/ +-CPP/ | +-config/ | +-logs/ | +-results/ | +-src/ | +-include/ | +-convert | +-a.out +-output/ +-data +-_texts.text +-split/ +-experiment.sh +-generate_config_files.pl +-prepare_fann_data.sh +-prepare_svm_data.sh +-results.pl +-split.pl +-vectorize_fann_data.pl +-vectorize_svm_data.pl Nˇekolik perlovsk´ ych a shellovsk´ ych skript˚ u slouˇz´ı pouze pro pˇr´ıpravu dat a spouˇstˇen´ı sady experiment˚ u. Pˇri jejich implementaci jiˇz byla tato adres´aˇrov´a struktura br´ana jako z´avazn´a a tud´ıˇz jsou potˇrebn´e datov´e soubory oˇcek´av´any ve sloˇzk´ach data a data/split nebo n´azvy a um´ıstˇen´ı program˚ u convert a a.out ve sloˇzce CPP. 4.3.2
Rozˇs´ıˇren´ı modulu TextMining
Transformace textov´ ych dokument˚ u do vektorov´e podoby spolu s pˇrepoˇc´ıt´an´ım vah jednotliv´ ych term˚ u a n´asledn´ ym uloˇzen´ım do souboru s uˇcit´ ym form´atem obstar´av´a programov´ y modul TextMining. Bohuˇzel neobsahuje podporu pro form´aty, kter´e jsou vyˇzadov´any knihovnami pouˇzit´ ymi pro jednotliv´e klasifik´atory. Aby tedy bylo moˇzn´e modul pouˇz´ıt, je nutn´e rozˇs´ıˇrit jeho podporovan´e v´ ystupn´ı form´aty.
4.3
53
Implementace
Form´ at FANN Knihovna FANN pouˇz´ıv´a pro uloˇzen´ı datov´ ych soubor˚ u vlastn´ı form´at textov´eho souboru, kde se na prvn´ım ˇra´dku nach´az´ı mezerou oddˇelen´e z´akladn´ı informace o datov´em souboru, a to celkov´ y poˇcet pˇr´ıklad˚ u, poˇcet atribut˚ u vstupn´ıho vektoru a poˇcet atribut˚ u v´ ystupn´ıho vektoru. D´ale jiˇz jsou v souboru uvedeny jednotliv´e pˇr´ıklady, vˇzdy jako dvojice ˇr´adk˚ u, kde na prvn´ım je uveden vstupn´ı vektor a na druh´em v´ ystupn´ı vektor. Celkov´ y poˇcet ˇra´dk˚ u souboru je tedy 2n + 1, kde n je poˇcet pˇr´ıklad˚ u. Veˇsker´e hodnoty vektor˚ u jsou od sebe oddˇeleny jednou mezerou. Zde je uveden obecn´ y z´apis a jednoduch´ y pˇr´ıklad datov´eho souboru pro funci XOR: data_length num_input num_output input-vector_1 output-vector_1 input-vector_2 output-vector_2 ... input-vector_n output-vector_n
4 2 1 1 1 1 0 1 0 ... 0 0 1
Form´ at FANN-SPARSE Vzhledem k rozs´ahlosti jednotliv´ ych vektor˚ u, kter´e mohou m´ıt v´ıce jak deset tis´ıc atribut˚ u z nichˇz drtiv´a vˇetˇsina nese nulovou hodnotu, je mnohem efektivnˇejˇs´ı ukl´adat datov´e soubory v tzv. ˇr´ıdk´em form´atu. Ukl´ad´any jsou pouze nenulov´e hodnoty, a to jako dvojice ˇc´ıslo atributu a hodnota. Form´at souboru tedy z˚ ust´av´a totoˇzn´ y s p˚ uvodn´ım form´atem, pouze jednotliv´e vektory jsou uloˇzeny v ˇr´ıdk´em form´atu, pˇriˇcemˇz vˇsechny ˇc´ıseln´e hodnot jsou od sebe oddˇeleny mezerou. Form´ at SVMlight Knihovna SVM light vyˇzaduje datov´e soubory uloˇzeny tak´e ve sv´em vlastn´ım form´atu. Jelikoˇz vˇsak byla implementov´ana i za u ´ˇcelem klasifikace textov´ ych dokument˚ u pomoc´ı podp˚ urn´ ych vektor˚ u, je tomuto faktu uzp˚ usoben i samotn´ y form´at datov´eho souboru. Stejnˇe jako v pˇr´ıpadˇe knihovny FANN jde o textov´ y soubor, kter´ y na kaˇzd´em ˇr´adku uchov´av´a jeden vektor. Vektory jsou vˇsak rovnou vyˇzadov´any v ˇr´ıdk´em form´atu, coˇz eliminuje prostorovou n´aroˇcnost ukl´ad´an´ı textov´ ych dokument˚ u ve vektorov´e reprezentaci. Zde je uveden obecn´ y form´at z´apisu jednoho pˇr´ıkladu a konkr´etn´ı pˇr´ıklad funkce XOR: class index:value index:value index:value ... +1 0:1 1:1 -1 0:0 1:1 -1 0:1 1:0 +1 0:0 0:0
4.3
Implementace
54
Na zaˇc´atku kaˇzd´eho ˇra´dku je tedy nutn´e uv´est tˇr´ıdu, do kter´e pˇr´ıklad patˇr´ı, v pˇr´ıpadˇe bin´arn´ıho klasifik´atoru jsou moˇzn´ ymi tˇr´ıdami pouze hodnoty +1 a −1. D´ale jsou jiˇz zaps´any pouze dvojteˇckou oddˇelen´a ˇc´ısla index atributu a hodnota, pˇriˇcemˇz tyto jednotliv´e dvojice jsou od sebe navz´ajem oddˇeleny mezerou. Slovn´ık s parametry pro v´ aˇ zen´ı Pokud je klasifik´ator nauˇcen na konkr´etn´ı mnoˇzinˇe tr´enovac´ıch dokument˚ u, kter´e byly pˇri transformaci do vektorov´e reprezentace urˇcit´ ym zp˚ usobem v´aˇzeny, je nutn´e stejn´ ym zp˚ usobem pˇredzpracovat i testovac´ı mnoˇzinu. Jednoduch´ ym pˇr´ıstupem by bylo vytvoˇrit jednu velkou mnoˇzinu dat slouˇcen´ı tr´enovac´ı i testovac´ı, pˇr´ıpadnˇe i validaˇcn´ı mnoˇziny, a tu zpracovat najednou. T´ım by vˇsak doˇslo ke stanoven´ı parametr˚ u pro v´aˇzen´ı hodnot term˚ u i na z´akladˇe dokument˚ u v testovac´ı mnoˇzinˇe, coˇz nen´ı ˇza´dan´e, jelikoˇz urˇcuj´ıc´ı je pouze tr´enovac´ı mnoˇzina. Pokud by napˇr´ıklad testovac´ı mnoˇzina obsahovala slovo, kter´e by se ve tr´enovac´ı mnoˇzinˇe nevyskytovalo, doˇslo by v pˇr´ıpadˇe zpracov´an´ı jedn´e velk´e mnoˇziny dokument˚ u k zahrnut´ı tohoto slova do pˇr´ıznakov´eho vektoru, ale nikdy by tento pˇr´ıznak nebyl pˇri tr´enov´an´ı pouˇzit, protoˇze se v tr´enovac´ıch datech nevyskytuje ˇza´dn´ y dokument, kter´ y by mohl dan´emu atributu pˇridˇelit nˇejakou hodnotu. Pokud vˇsak budou tr´enovac´ı data upravena na z´akladˇe parametr˚ u pouze z tr´enovac´ı mnoˇziny, dojde k vyˇrazen´ı tohoto pro klasifik´ator nezn´am´eho slova. Obdobn´a logika plat´ı i pro parametry pro v´aˇzen´ı jednotliv´ ych term˚ u. Pouˇzit´ y modul umoˇzn ˇuje zpracov´avat textov´e dokumenty na z´akladˇe zadan´eho slovn´ıku, kdy pˇri pˇrevodu do vektorov´e reprezentace dojde k vyˇrazen´ı tˇech slov, kter´a se ve slovn´ıku nenach´az´ı. Bohuˇzel vˇsak nejsou pˇren´aˇseny v´aˇz´ıc´ı parametry. Modul byl tedy rozˇs´ıˇren o moˇznost generov´an´ı slovn´ıku, kter´ y pro jednotliv´a slova uchov´av´a tak´e potˇrebn´e v´aˇz´ıc´ı parametry, jako celkov´ y v´ yskyt slova v kolekci, minim´aln´ı a maxim´aln´ı hodnota v´ yskytu slova apod. Pˇri zad´an´ı tohoto upraven´eho slovn´ıku nejsou tedy tyto hodnoty zjiˇst’ov´any ze zadan´eho vstupn´ıho datov´e souboru, ale ze slovn´ıku, ˇc´ımˇz je zajiˇstˇena shodn´a reprezentace hodnot tr´enovac´ı i testovac´ı mnoˇziny. 4.3.3
Rozˇs´ıˇren´ı knihovny FANN
Knihovna FANN poskytuje pro pr´aci s neuronov´ ymi s´ıtˇemi pouze dvˇe tˇr´ıdy, kter´e reprezentuj´ı: • neuronovou s´ıt’, • pouˇzit´a data. Aby nebylo nutn´e v´ yraznˇe zasahovat do k´odu knihovny, jsou od tˇechto dvou tˇr´ıd odvozeni potomci, kteˇr´ı implementuj´ı potˇrebn´a funkˇcn´ı rozˇs´ıˇren´ı.
4.3
Implementace
55
Rozdˇ elen´ı dat a normalizace Data pro neuronov´e s´ıtˇe je tˇreba rozdˇelit na celkem tˇri disjunktn´ı mnoˇziny, a to tr´enovac´ı, testovac´ı a validaˇcn´ı data. Knihovna FANN umoˇzn ˇuje naˇcten´ı jednoho datov´eho souboru pro proces uˇcen´ı, pro testov´an´ı je pot´e moˇzn´e pouˇz´ıt zcela jin´ y soubor. V z´ajmu zachov´an´ı p˚ uvodn´ı podoby func´ı t´eto knihovny, budou tyto tˇri mnoˇziny zahrnuty v jednom jedin´em souboru. Data bude tedy nutn´e internˇe vhodnˇe rozdˇelit. Pro tyto u ´ˇcely bylo implementov´ano nˇekolik funkc´ı, kter´e jednak vypoˇc´ıtaj´ı hranice jednotliv´ ych mnoˇzin, umoˇzn´ı v´ ybˇer aktu´alnˇe pouˇz´ıvan´e mnoˇziny a pr´aci s urˇcitou podmnoˇzinou jako s jednolit´ ym datov´ ym souborem. Pˇri pouˇz´ıv´an´ı neuronov´ ych s´ıt´ı je nutn´e, stejnˇe jako u ostatn´ıch typ˚ u klasifik´ator˚ u, ˇreˇsit normalizaci dat. Pokud by data z˚ ustala ve sv´em p˚ uvodn´ım tvaru, pro s´ıt’ by bylo mnohem n´aroˇcnˇejˇs´ı vhodnˇe upravovat v´ahy vazeb mezi neurony tak, aby chyba z˚ ustala co nejmenˇs´ı. Normalizaci dat je moˇzn´e pouˇz´ıt jiˇz pˇri pˇrev´adˇen´ı dokument˚ u do vektorov´e reprezentace. Jelikoˇz by vˇsak kv˚ uli rozdˇelov´an´ı dat nen´ı pˇri pˇredzpracov´an´ı dat pˇredem jasn´e, kter´e pˇr´ıklady budou patˇrit do jak´e mnoˇziny, je i normalizace prov´adˇena pˇr´ımo pˇri bˇehu aplikace. Implementace tedy rozˇs´ıˇr´ıla moˇznosti knihovny FANN o n´asleduj´ıc´ı funkcionalitu. Normalizaci dat je moˇzn´e zapnout zavol´an´ım metody, kter´a vypoˇc´ıt´a a nastav´ı normalizaˇcn´ı parametry pro vˇsechny jednotliv´e atributy vstupn´ıch dat, a to na z´akladˇe aktu´alnˇe vybran´e mnoˇziny. Pokud nejsou data rozdˇelena, jsou parametry vypoˇc´ıt´any z cel´eho datov´eho souboru. Tˇemito hodnotami jsou: • minim´aln´ı hodnota, • maxim´aln´ı hodnota, • suma hodnot, • rozsah hodnot, • pr˚ umˇern´a hodnota. Normalizovan´a hodnota je vypoˇc´ıt´ana jako pod´ıl mezi rozd´ılem p˚ uvodn´ı hodnoty a pr˚ umˇern´e hodnoty a rozsahu hodnot (rozd´ıl maxim´aln´ı a minim´aln´ı hodnoty) pro dan´ y atribut. xi,j − avgj x0i,j = maxj − minj Data jsou do normalizovan´e hodnoty pˇrev´adˇena vˇzdy pˇri jejich v´ ybˇeru z datov´eho souboru. Kombinac´ı v´ ybˇeru tr´enovac´ı mnoˇziny a n´asledn´ ym zavol´an´ım normalizaˇcn´ı metody je tedy dosaˇzeno aplikov´an´ı normalizaˇcn´ıch parametr˚ u pouze z tr´enovac´ı mnoˇziny na data v ostatn´ıch mnoˇzin´ach. Pokud je nutn´e normalizovat data ze zcela jin´eho datov´eho souboru, je moˇzn´e mezi nimi pˇredat moment´alnˇe pouˇz´ıvan´e normalizaˇcn´ı parametry.
4.3
Implementace
56
Validace bˇ ehem tr´ enov´ an´ı Pˇri uˇcen´ı neuronov´ ych s´ıt´ı m˚ uˇze doj´ıt k celkem dvˇema negativn´ım v´ ysledk˚ um. ’ Prvn´ım je nedouˇcen´ı, kdy dojde k tomu, ˇze nauˇcen´a s´ıt nedok´azala bˇehem uˇcen´ı dostateˇcnˇe zobecnit znalost skrytou v tr´enovac´ıch datech, protoˇze byl tento proces ukonˇcen pˇr´ıliˇs brzy, nejˇcastˇeji v d˚ usledku pˇr´ıliˇs vysok´e hodnoty poˇzadovanov´e chyby. Druh´ ym pˇr´ıpadem je pˇresn´ y opak. S´ıt’ se uˇc´ı na tr´enovac´ıch datech tak dlouho, aˇz zaˇcne ztr´acet schopnost generalizace skryt´e znalosti a ze s´ıtˇe se st´av´a expert pouze na tr´enovac´ı data. Na testovac´ıch datech tak bude v obou pˇr´ıpadech s´ıt’ dosahovat zpravidla n´ızk´e pˇresnosti. Zat´ımco nedouˇcen´ı je moˇzn´e relativnˇe snadno vyˇreˇsit zmˇenou parametr˚ u, zamezen´ı pˇreuˇcen´ı s´ıtˇe je o nˇeco sloˇzitˇejˇs´ı. Uˇcen´ı je tˇreba zastavit ve chv´ıli, kdy se zaˇcne zhorˇsovat schopnost s´ıtˇe generalizace, tzn. dojde ke zv´ yˇsen´ı chybovosti na tzv. validaˇcn´ı mnoˇzinˇe dat. Moˇznost validace bˇehem tr´enov´an´ı neuronov´e s´ıtˇe musela b´ yt doprogramov´ana, aby mohlo b´ yt zabr´anˇeno pˇreuˇcen´ı klasifik´ator˚ u. Knihovna FANN umoˇzn ˇuje implementaci callback funkce, kter´a je vol´ana bˇehem kaˇzd´e tr´enovac´ı epochy a jej´ı n´avr´atov´a hodnota je urˇcij´ıc´ı pro pokraˇcov´an´ı tr´enov´an´ı nebo jeho pˇreruˇsen´ı. Jde tedy o ide´aln´ı zp˚ usob, jak rozˇs´ıˇrit funcionalitu knihovny o validaci. Zastavovac´ı pravidlo m´a n´asleduj´ıc´ı podobu. Pokud dojde nˇekolikr´at bezprostˇrednˇe po sobˇe ke zv´ yˇsen´ı chyby na validaˇcn´ı mnoˇzinˇe dat, uˇcen´ı s´ıtˇe bude pˇredˇcasnˇe zastaveno. Poˇcet zv´ yˇsen´ı validaˇcn´ı chyby je pak jedn´ım z parametr˚ u uˇcen´ı s´ıtˇe. V callback funkci dojde ke zmˇenˇe tr´enovac´ıch dat na validaˇcn´ı mnoˇzinu, uloˇz´ı se souˇcasn´a hodnota chyby (vypoˇc´ıt´ana pˇri tr´enov´an´ı), otestuje se souˇcasn´e nauˇcen´ı s´ıtˇe na validaˇcn´ıch datech a zkontroluje se nov´a chybovost s jej´ım historick´ ym v´ yvojem. Pokud doˇslo k pˇr´ıliˇs velk´emu poˇctu zv´ yˇsen´ı, funkce vr´at´ı negativn´ı hodnotu, ˇc´ımˇz dojde k zastaven´ı tr´enov´an´ı. V opaˇcn´em pˇr´ıpadˇe se chyba uloˇz´ı, obnov´ı se dˇr´ıve uloˇzen´a tr´enovac´ı chyba a zmˇen´ı se mnoˇzina dat na tr´enovac´ı. Funkce v tomto pˇr´ıpadˇe vr´at´ı pozitivn´ı hodnotu. ˇ ıdk´ R´ y form´ at dat Pˇrepracov´an byl rovnˇeˇz zp˚ usob reprezentace vstupn´ıch a v´ ystupn´ıch vektor˚ u z hust´eho tvaru na ˇr´ıdk´ y. T´ım dojde ke markantn´ımu sn´ıˇzen´ı prostorov´e n´aroˇcnosti cel´eho algoritmu. Z implementaˇcn´ıho hlediska ˇslo o pomˇernˇe jednoduchou u ´pravu, kdy jsou z datov´ehou souboru pˇreˇcteny a ve formˇe atribut˚ u objektu uchov´any u ´daje o poˇzadovan´e velikosti vstupn´ıch a v´ ystupn´ıch vektor˚ u, kter´e jsou n´aslednˇe pouˇzity pro sestaven´ı hust´ ych vektor˚ u z ˇr´ıdk´e reprezentace naˇcten´e z datov´eho souboru. Data jsou tedy uchov´av´ana a naˇc´ıt´ana efektivnˇe a k jejich rozˇs´ıˇren´ı do hust´eho tvaru doch´az´ı pouze ve chv´ıli v´ ypoˇctu pˇri uˇcen´ı neuronov´e s´ıtˇe. 4.3.4
Form´ at pro bin´ arn´ı uchov´ an´ı dat
Data, se kter´ ymi neuronov´e s´ıtˇe pracuj´ı, jsou vyj´adˇrena ˇc´ıseln´ ymi hodnotami. Uloˇzen´ı ˇc´ıseln´ ych hodnot v textov´em souboru je vˇsak neefektivn´ı a obecnˇe je pr´ace
4.3
57
Implementace
s textov´ ym souborem n´aroˇcnˇejˇs´ı, pokud jde o pˇr´ıstup k r˚ uzn´ ym ˇc´astem souboru. V´ yhodnˇejˇs´ı variantou je ukl´ad´an´ı tˇechto dat v podobˇe bin´arn´ıho souboru, kter´ y umoˇzn ˇuje dynamicky pˇristupovat k hodnot´am na libovoln´em m´ıstˇe v souboru, bez komplikovan´eho ˇcten´ı a pr´aci s textov´ ymi daty. Na obr´azku 11 je zn´azornˇen form´atu souboru, kter´ y byl implementov´an pro u ´ˇcely uchov´an´ı vektorov´e reprezentace textov´ ych dokument˚ u a dynamick´ y pˇr´ıstup k jednotliv´ ym vektor˚ um v pr˚ ubˇehu tr´enov´an´ı nebo testov´an´ı s´ıtˇe. Pouˇzit´ı tohoto souboru tak´e usnadn´ı pr´aci s rozdˇelen´ım datov´eho souboru na tr´enovac´ı, testovac´ı a validaˇcn´ı podmnoˇziny. Rozhran´ı mezi +---+ | | <- jeden byte +---+
+===========+ | | <- v´ ıce byt˚ u +===========+
Bin´ arn´ ı soubor: +===========+================+======+ | meta_data | d´ elky_vektor˚ u | data | +===========+================+======+ Meta data: +---+---+---+---+---+---+---+---+---+---+---+---+ | poˇ cet_dat | pocˇ et_vstup˚ u | poˇ cet_v´ ystup˚ u | +---+---+---+---+---+---+---+---+---+---+---+---+ D´ elky vektor˚ u: +---+---+---+---+ d´ elka_dat x | d´ elka_vektoru | +---+---+---+---+ Data: +======================+---+---+---+---+ | r ˇı ´dk´ y_vstupn´ ı_vetkor |v´ ystupn´ ı_vektor| +======================+---+---+---+---+ ˇ Rı ´dk´ y vektor: +---+---+---+---+---+---+---+---+ d´ elka_vektoru x | index | hodnota | +---+---+---+---+---+---+---+---+ Obr´azek 11: Sch´ema uspoˇr´ ad´ an´ı dat v bin´arn´ım souboru
bin´arn´ım souborem a tˇr´ıdou pro reprezentaci dat pouˇz´ıvan´ ych neuronovou s´ıt´ı zajiˇst’uje tˇr´ıda tie.
4.4
Experimenty
4.3.5
58
Nejbliˇ zˇs´ı soused
Posledn´ı implementovanou ˇca´st´ı je algoritmus nejbliˇzˇs´ıho souseda, kter´ y klasifikuje na z´akladˇe podobnosti ˇci vzd´alenosti jednotliv´ ych dokument˚ u. K vlastn´ı implementaci bylo pˇristoupeno z d˚ uvodu nemoˇznosti vyuˇzit´ı nˇekter´e z dostupn´ ych knihoven, kter´e naˇc´ıtaly cel´a vstupn´ı data do pamˇeti. V pˇr´ıpadˇe dat zpracov´avan´ ych v t´eto pr´aci jde o bezm´ala 10 GB, coˇz nen´ı pro bˇeˇzn´e poˇc´ıtaˇce prostorovˇe u ´nosn´e. Ve vlastn´ı implementaci budou tedy vyuˇzity jiˇz dostupn´e prostˇredky v podobˇe bin´arn´ıho souboru a ˇr´ıdk´e reprezentace dat. Pro dalˇs´ı sn´ıˇzen´ı n´aroˇcnosti je mnoˇzstv´ı prohled´avan´ ych dokument˚ u zredukov´ano pomoc´ı tzv. k-dimenzion´aln´ıho stromu, kter´ y rozdˇeluje prostor vstupn´ıch dat dle jednotliv´ ych dimenz´ı na menˇs´ı podprostory. T´ımto zp˚ usobem jsou vˇsechny tr´enovac´ı dokumenty rozdˇeleny do podmnoˇzin a pˇri klasifikaci nezn´am´eho dokumentu se nejdˇr´ıve zjist´ı, do kter´e podmnoˇziny by dle sv´ ych hodnot atribut˚ u spadal, a n´aslednˇe je porovn´an pouze s dokumenty z t´eto podmnoˇziny.
4.4
Experimenty
C´ılem experiment˚ u je prozkoumat moˇznost paraleln´ıho zpracov´an´ı rozs´ahl´e kolekce dokument˚ u a zjistit, jak´ y m˚ uˇze m´ıt podobn´ y pˇr´ıstup vliv na pˇresnost v´ ysledn´e klasifikace tˇechto textov´ ych dat. Experimenty jsou realizov´any n´asleduj´ıc´ım zp˚ usobem: jednak je nutn´e vyzkouˇset r˚ uzn´a rozdˇelen´ı tr´enovac´ı mnoˇziny a tak´e r˚ uzn´e velikosti ˇ zka, Daˇrena, 2012) byl t´eto mnoˇziny. Na z´akladˇe jiˇz realizovan´ ych experiment˚ u (Ziˇ zvolen podobn´ y pˇr´ıstup, aby z´ıskan´e v´ ysledky bylo moˇzn´e porovnat. Hlavn´ı experiment bude realizov´an nad vybranou tr´enovac´ı mnoˇzinou o 200 000 dokumentech a tato kolekce bude rozdˇelena na 10, 5, 4, 3 a 2 disjunktn´ı podmnoˇziny. Stejn´ ym zp˚ usobem pak bude zpracov´ana i mnoˇzina o 100 000 dokumentech, na kter´e bude tak´e otestov´an vliv zmˇeny parametr˚ u klasifik´ator˚ u na v´ yslednou klasifikaci. Pro realizaci experiment˚ u byl pouˇzit dom´ac´ı poˇc´ıtaˇc s pomˇernˇe star´ ym hardwarov´ ym vybaven´ım. Pouˇzit´ y stroj byl osazen tˇr´ıj´adrov´ ym procesorem od firmy AMD a k dispozici bylo celkem 4 GB operaˇcn´ı pamˇeti. Tento poˇc´ıtaˇc poslouˇzil jako host pro vytvoˇren´ı dvou virtu´aln´ıch stroj˚ u, na kter´ ych byly exeprimenty spouˇstˇeny. Obˇema virtu´aln´ı stroj˚ um bylo pˇridˇeleno jedno j´adro fyzick´eho procesoru a 1 GB z dostupn´e operaˇcn´ı pamˇeti. Jako operaˇcn´ı syst´em byla pouˇzita linuxov´a distribuce Ubuntu 12.10 v tzv. minim´aln´ı verzi. Pro vˇsechny experimenty jsou pouˇzity totoˇzn´e dokumenty, kter´e jsou pouze reprezentov´any r˚ uzn´ ym zp˚ usobem, a to podle pouˇzit´eho typu klasifik´atoru. Z vybran´ ych dokument˚ u byla vyˇrazena slova, kter´a se na glob´aln´ı u ´rovni – tzn. v r´amci cel´e vybran´e kolekce – vyskytuj´ı m´enˇe neˇz tˇrikr´at. Jin´ y zp˚ usob vyˇrazov´an´ı slov z vektorov´e reprezentace dokument˚ u nebyl pouˇzit. Data jsou tak´e vyb´ır´ana tak, aby pomˇer mezi obˇema tˇr´ıdami byl vyrovnan´ y. D´ıky vyv´aˇzenosti obou tˇr´ıd v pouˇzit´ ych datech je moˇzn´e prov´est shodnocen´ı kvality z´ıskan´e znalosti pomoc´ı metriky Acc, stejnˇe tak jsou ale uvedeny i ostatn´ı v´ yˇse popsan´e indik´atory pˇresnosti klasi-
4.4
Experimenty
59
fik´atoru. Jelikoˇz byly vytvoˇreny komise klasifik´ator˚ u se sud´ ym poˇctem, je dalˇs´ım ze sledovan´ ych parametr˚ u poˇcet testovac´ıch pˇr´ıpad˚ u, o kter´ ych komise nedok´azala (v d˚ usledku shodn´eho poˇctu hlas˚ u) rozhodnout. D˚ uleˇzit´ ym faktorem je tak´e ˇcas, kter´ y je potˇrebn´ y pro natr´enov´an´ı. 4.4.1
Neuronov´ e s´ıtˇ e
Narozd´ıl od ostatn´ıch pouˇzit´ ych klasifik´ator˚ u vyˇzaduj´ı neuronov´e s´ıtˇe pro sv˚ uj bˇeh a z´ısk´an´ı kvalitn´ıch v´ ysledk˚ u vyˇzaduj´ı pouˇzit´ı validaˇcn´ı mnoˇziny. Ta je vybr´ana stejn´ ym zp˚ usobem jako testovac´ı mnoˇzina, tzn. vzhledem k velikosti tr´enovac´ı mnoˇziny, a to v pomˇeru 3 : 1. Model neuronov´e s´ıtˇe bylo moˇzn´e parametrizovat ˇradou r˚ uzn´ ych nastaven´ı. Pˇri zpracov´an´ı dokument˚ u bylo pouˇzito n´asleduj´ıc´ı nastaven´ı: • reprezentace dat: term-frequency, • poˇcet skryt´ ych vrstev: 1, • velikost skryt´ ych vrstev: 50 neuron˚ u, • uˇc´ıc´ı algoritmus: backpropagation, • pˇrechodov´e funkce: sigmoid´aln´ı, • velikost chyby: 0.005, • validaˇcn´ı zastaven´ı: v´ıce jak 5 zv´ yˇsen´ı validaˇcn´ı chyby. S t´ımto nastaven´ım jsou nad jednotliv´ ymi tr´enovac´ımi mnoˇzinami vytvoˇreny potˇrebn´e klasifik´atory a n´aslednˇe vˇsechny otestov´any na testovac´ı mnoˇzinˇe. Dosaˇzen´e ˇ v´ ysledky jsou zobrazeny v tabulce 5. Casov´ e hodnoty jsou zde uvedeny jako poˇcet minut, pˇriˇcemˇz jde o souˇcet ˇcasu potˇrebn´eho pro nauˇcen´ı vˇsech klasifik´ator˚ u v dan´e komisi. Ve sloupc´ıch jsou uvedeny hodnoty: poˇcet klasifik´ator˚ u, ˇcas uˇcen´ı, metriky accuracy, recall, precision, f-measure, poˇcet dokument˚ u bez klasifikace a sk´ore komise (v´ ypoˇcet uveden d´ale). Na v´ ysledc´ıch je pomˇernˇe hezky vidˇet vliv nerozhodnosti klasifik´ator˚ u, kter´e tvoˇrily komisi se sud´ ym poˇctem ˇclen˚ u, ˇc´ımˇz mohlo doch´azet ke shodn´emu poˇctu hlas˚ u pro obˇe tˇr´ıdy, a proto nemohlo b´ yt rozhodnuto o koneˇcn´e klasifikaci testovan´eho dokumentu. Nejde vˇsak o velk´e mnoˇzstv´ı pˇr´ıpad˚ u, u nejhorˇs´ı varianty, kterou je dvouˇclenn´a komise, bylo takto nezaˇrazeno zhruba 1 % testovac´ıch pˇr´ıpad˚ u. S vyˇsˇs´ım poˇctem ˇclen˚ u komise se mnoˇzstv´ı neklasifikovan´ ych dokument˚ u zmenˇsuje, a to pˇribliˇznˇe ve stejn´em pomˇeru pro obˇe velikosti tr´enovac´ıch dat. Z hlediska pˇresnosti klasifikace jsou dosaˇzen´e v´ ysledky pˇribliˇznˇe stejn´e. V´ yjimku opˇet tvoˇr´ı dvouˇclenn´a komise, u kter´e doˇslo k poklesu pˇresnosti o zhruba pˇet procent, coˇz je pˇrev´aˇznˇe d˚ usledek vˇetˇs´ıho mnoˇzstv´ı neklasifikovan´ ych dokument˚ u. V ostatn´ıch metrik´ach jsou jiˇz v´ ysledky mezi jednotliv´ ymi komisemi velice vyrovnan´e, rozd´ılnost se pohybuje maxim´alnˇe do dvou procent. Pˇresnosti je tedy za pomoc´ı komise moˇzn´e dos´ahnout t´emˇeˇr totoˇzn´e, jako v pˇr´ıpadˇe jednoho klasifik´atoru, dokonce je zpozo-
4.4
60
Experimenty
Tabulka 5: V´ ysledky dosaˇzen´e s klasifik´atorem neuronov´e s´ıtˇe
100k N
ˇ [min] Cas
Acc
Rec
Prec
F
Scorek
Bez klasifikace
1
875
0.9195
0.9218
0.9173
0.9195
—
—
2
360
0.8671
0.9625
0.8973
0.9288
0.7658
2941
3
222
0.9256
0.9253
0.9259
0.9256
0.8765
—
4
168
0.9055
0.9520
0.9160
0.9337
0.8964
1454
5
130
0.9334
0.9503
0.9147
0.9322
0.9333
—
10
80
0.9228
0.9451
0.9258
0.9354
0.9561
658
200k 1
10560
0.9132
0.9007
0.9289
0.9146
—
—
2
1740
0.8564
0.9613
0.8990
0.9291
0.8865
6456
3
1080
0.9334
0.9399
0.9261
0.9330
0.9599
—
4
720
0.9061
0.9520
0.9252
0.9384
0.9620
3169
5
600
0.9373
0.9511
0.9220
0.9363
0.9848
—
10
240
0.9320
0.9554
0.9228
0.9388
0.9989
932
rov´ano i nepatrn´e zv´ yˇsen´ı. Nejvˇetˇs´ı rozd´ıly jsou vˇsak vidˇet v ˇcase potˇrebn´em pro sestaven´ı komise. V pˇr´ıpadˇe menˇs´ı varianty tr´enovac´ı mnoˇziny trvalo nauˇcen´ı jednoho klasifik´atoru zhruba 14 hodin. Tento ˇcas je moˇzn´e zkr´atit v´ıce jak o polovinu ´ jiˇz pouh´ ym rozdˇelen´ım na dvˇe podmnoˇziny. Uspora ˇcasu d´ale roste s velikost´ı komise. U varianty s vˇetˇs´ı tr´enovac´ı mnoˇzinou je ˇcasov´a u ´spora jeˇstˇe v´ yraznˇejˇs´ı. Samostatn´ y klasifik´ator byl tr´enov´an zhruba sedm a p˚ ul dne, zat´ımco dvouˇclenn´a komise umoˇznila sn´ıˇzit potˇrebn´ y ˇcas na 29 hodin. S vyˇsˇs´ım poˇctem klasifik´ator˚ u a vˇetˇs´ım mnoˇzstv´ım zpracov´avan´ ych tedy v´ yraznˇe roste ˇcasov´a u ´spora. Pokud by bylo tˇreba vyj´adˇrit jednou ˇc´ıselnou hodnotu kvalitu konkr´etn´ı komise, zohledˇ nuj´ıc´ı ˇcas potˇrebn´ y na nauˇcen´ı, je nutn´e navrhnout v´ ypoˇcet t´eto hodˇ ıseln´e vyj´adˇren´ı by tedy mˇelo br´at v potaz uˇsetˇren´e mnoˇzstv´ı ˇcasu a zmˇenu noty. C´ pˇresnosti komise oproti jednomu klasifik´atoru. Vzorec, navrhnovan´ y pro v´ ypoˇcet t´eto hodnoty je n´asleduj´ıc´ı: time1 Acc1 scorek = 0.5 · 1− + timek Acck Jde o pouhou pr˚ umˇernou hodnotu z pomˇer˚ u mezi ˇcasem a pˇresnost´ı komise a jednoho klasifik´atoru, pˇriˇcemˇz ˇcas je pˇrepoˇc´ıt´an na doplnˇek do jedn´e, aby vˇetˇs´ı u ´spora ˇcasu
4.4
Experimenty
61
mˇela pozitivn´ı vliv na v´ yslednou hodnotu sk´ore. Pouˇzit´ım tohoto zp˚ usobu vyj´adˇren´ı kvality je moˇzn´e jednotliv´e varianty mezi sebou snadno porovnat. Jako v´ yhodnˇejˇs´ı se tedy jev´ı komise s vyˇsˇs´ım poˇctem ˇclen˚ u, zjem´ena kv˚ uli v´ yrazn´ ym ˇcasov´ ym u ´spor´am. Vzorec by d´ale bylo moˇzn´e upravit na v´aˇzen´ y pr˚ umˇer, pomoc´ı kter´eho by mohl b´ yt kladen vˇetˇs´ı d˚ uraz na zmˇenu pˇresnosti. 4.4.2
Podp˚ urn´ e vektory
Algoritmus podp˚ urn´ ych vektor˚ u je s´am o sobˇe velice vhodn´ ym pro zpracov´an´ı textov´ ych dokument˚ u. Jednak je jeho proces uˇcen´ı mnohem rychlejˇs´ı neˇz u neuronov´ ych s´ıt´ı, ale tak´e m˚ uˇze dos´ahnout lepˇs´ı pˇresnosti. Aplikov´an´ı paraleln´ıho pˇr´ıstupu by tedy teoreticky mohlo tak´e jeˇstˇe zv´ yˇsit pouˇzitelnost tohoto typu klasifik´atoru pˇri zpracov´an´ı rozs´ahl´ ych kolekc´ı. Joachims publikoval ˇradu ˇcl´ank˚ u, ve kter´ ych se vˇenoval pouˇzit´ı podp˚ urn´ ych vektor˚ u pˇri klasifikaci textov´ ych dokument˚ u. Parametrizace klasifik´atoru tedy vych´az´ı z doporuˇcen´ı uveden´ ych v tˇechto ˇcl´anc´ıch (Joachims, 1998). • reprezentace dat: tf-idf, • normalizace dat: kosinov´a, • j´adrov´a funkce: polynomi´aln´ı, • stupeˇ n polynomu: 3. Pr˚ ubˇeh je totoˇzn´ y jako u neuronov´ ych s´ıt´ı – kaˇzd´ y klasifik´ator je s t´ımto nastaven´ım natr´enov´an nad konkr´etn´ı tr´enovac´ı mnoˇzinou a n´aslednˇe otestov´an. V´ ysledky shrnuje tabulka 6, pˇriˇcemˇz ˇcas je tentokr´at vyj´adˇren jako poˇcet vteˇrin. Dosaˇzen´e v´ ysledky jsou velice podobn´e, jako v pˇr´ıpadˇe neuronov´ ych s´ıt´ı. Doˇslo vˇsak ke sn´ıˇzen´ı poˇctu neklasifikovan´ ych dokument˚ u a obecnˇe je dosahov´ano lepˇs´ıch hodnocen´ı. Pˇresnost mezi jednotliv´ ymi komisemi je vyrovnanˇejˇs´ı, ale v˚ uˇci jednomu klasifik´atoru ˇ nedos´ahla (narozd´ıl od s´ıt´ı) ˇza´dn´a komise lepˇs´ı pˇresnosti. Casov´ au ´spora, aˇckoliv je st´ale vzhledem k jednomu klasifik´atoru pomˇernˇe velk´a (z necel´ ych 4 hodin na p˚ ul hodiny), nen´ı tak v´ yrazn´a jako u neuronov´ ych s´ıt´ı. Zde se tedy nab´ız´ı ot´azka, zda tato ˇcasov´a u ´spora stoj´ı jednoduˇse ˇreˇceno za n´amahu s pˇr´ıpravou dat pro d´ılˇc´ı klasifik´atory. Rozd´ıl v pˇresnosti mezi komis´ı 10 klasifik´ator˚ u a samostatn´eho klasifik´atoru ˇcin´ı 1 %, takˇze z´ıskan´a znalost je teoreticky t´emˇeˇr totoˇzn´a a mnohem jednoduˇsˇs´ı je vytvoˇrit a pouˇz´ıvat klasifik´ator jeden. Uplatnˇen´ım Occamovi bˇritvy by tedy mohl b´ yt jako nejlepˇs´ı ˇreˇsen´ı zvolen i navzdory ˇcasov´e u ´spoˇre samostatn´ y klasifik´ator. Na z´akladˇe sk´ore pro ohodnocen´ı komise jsou stejnˇe jako v pˇredchoz´ım pˇr´ıpadˇe v´ yhodnˇejˇs´ı skupiny s vyˇsˇs´ım poˇctem klasifik´ator˚ u. 4.4.3
Nejbl´ıˇ zˇs´ı soused
Posledn´ım typem klasifikace dokument˚ u je metoda nejbliˇzˇs´ıho souseda. Jelikoˇz nebyl tento pˇr´ıstup implementov´an pomoc´ı knihovny, vych´az´ı veˇsker´e moˇznosti paramet-
4.4
62
Experimenty
Tabulka 6: V´ ysledky dosaˇzen´e s klasifik´atorem podp˚ urn´ ych vektor˚ u
100k N
ˇ [sec] Cas
Acc
Rec
Prec
F
Scorek
Bez klasifikace
1
3945
0.9471
0.9657
0.9268
0.9459
—
—
2
2400
0.9299
0.9728
0.9065
0.9385
0.6867
819
3
1800
0.9422
0.9642
0.9185
0.9408
0.7693
—
4
1200
0.9337
0.9691
0.9074
0.9372
0.8408
492
5
1200
0.9401
0.9647
0.9137
0.9385
0.8442
—
10
500
0.9346
0.9679
0.9047
0.9352
0.9300
234
200k 1
14064
0.9506
0.9648
0.9352
0.9498
—
—
2
10800
0.9374
0.9731
0.9190
0.9453
0.6091
1396
3
7200
0.9480
0.9658
0.9290
0.9470
0.7427
—
4
5280
0.9409
0.9705
0.9201
0.9446
0.8072
796
5
3840
0.9458
0.9652
0.9250
0.9447
0.8610
—
10
2100
0.9393
0.9661
0.9150
0.9399
0.9194
402
rizace bˇehu z pomˇernˇe pˇr´ımoˇcaˇre pojat´e implementace. • reprezentace dat: term-frequency, • mˇeˇren´ı podobnosti: kosinov´a podobnost, • poˇcet soused˚ u: 5, • poˇcet dˇel´ıc´ıch dimenz´ı: 10, • maxim´aln´ı hloubka K-D stromu: 8. Dosaˇzen´e v´ ysledky z´ıskan´e porovn´an´ım dokument˚ u z testovac´ı mnoˇziny oproti jednotliv´ ym tr´enovac´ım mnoˇzin´am jsou zobrazeny v tabulce 7, kde ˇcas je stejnˇe jako u neuronov´ ych s´ıt´ı vyj´adˇren poˇctem minut. Oproti pˇredhoz´ım klasifik´ator˚ um v´ yraznˇe vzrostl poˇcet neklasifikovan´ ych dokument˚ u, coˇz m´a tak´e nezanedbateln´ y dopad na v´ yslednou pˇresnost komis´ı se sud´ ym poˇctem ˇclen˚ u. U dvouˇclenn´e komise nebylo moˇzn´e z celkov´eho poˇctu testovan´ ych dokument˚ u pro v´ıce jak ˇctvrtinu urˇcit v´ yslednou tˇr´ıdu, coˇz m´a za n´asledek v´ıce jak 10 % propad v pˇresnosti, ale z´aroveˇ n doˇslo k stejn´emu n´ar˚ ustu hodnoty metriky recall. Z hlediska ˇcasov´e n´aroˇcnosti doˇslo k mal´e u ´spoˇre v pˇr´ıpadˇe menˇs´ı tr´enovac´ı mnoˇziny u dvouˇclenn´e komise, v ostatn´ıch
4.4
63
Experimenty
Tabulka 7: V´ ysledky dosaˇzen´e s klasifik´atorem nejbliˇzˇs´ıho souseda
100k N
ˇ [min] Cas
Acc
Rec
Prec
F
Scorek
Bez klasifikace
1
57
0.7728
0.7444
0.8331
0.7863
—
—
2
48
0.6344
0.8508
0.7064
0.7719
0.4894
8951
3
53
0.7999
0.7688
0.8579
0.8109
0.5526
—
4
52
0.7047
0.7904
0.8888
0.8367
0.4998
5247
5
61
0.8212
0.7729
0.9096
0.8357
0.4962
—
10
60
0.7948
0.8161
0.8979
0.8550
0.4879
2403
200k 1
370
0.7945
0.7524
0.8784
0.8105
—
—
2
250
0.6337
0.8507
0.7286
0.7850
0.5610
18132
3
232
0.8239
0.7847
0.8926
0.8352
0.7050
—
4
235
0.7448
0.8405
0.8606
0.8505
0.6512
9746
5
211
0.8334
0.7872
0.9137
0.8458
0.7393
—
10
270
0.8063
0.8209
0.9079
0.8622
0.6426
4326
pˇr´ıpadech byly ˇcasy velice podobn´e. U vˇetˇs´ı tr´enovac´ı mnoˇziny jiˇz doˇslo k urˇcit´ ym ˇcasov´ ym u ´spor´am, avˇsak oproti pˇredchoz´ım variant´am nikterak velk´ ym. Ohodnocen´ı jednotliv´ ych komis´ı pomoc´ı dˇr´ıve navrˇzen´eho vzorce jasnˇe ukazuje vliv neklasifikovan´ ych dat, kdy se rozd´ıl ve v´ ysledn´e hodnotˇe mezi komis´ı se sud´ ym a lich´ ym poˇctem hlas˚ u pohybuje mezi pˇeti a sedmn´acti procenty, pˇriˇcemˇz lepˇs´ıch v´ ysledk˚ u dosahovali poˇcetnˇejˇs´ı komise. Pouˇzit´ım komise s lich´ ym poˇctem klasifik´ator˚ u je tedy moˇzn´e dos´ahnout urˇcit´e u ´spory ˇcasu a tak´e zlepˇsen´ı pˇresnosti klasifikace. D˚ uvodem je porovn´av´an´ı nezn´am´eho dokumentu s vˇetˇs´ım poˇctem soused˚ u, neˇz je tomu u samostatn´eho klasifik´atoru. 4.4.4
Shrnut´ı v´ ysledk˚ u
Na z´akladˇe z´ıskan´ ych v´ ysledk˚ u je moˇzn´e odvodit urˇcit´e z´avˇery o moˇznosti paralelizace zpracov´an´ı rozs´ahl´ ych kolekc´ı textov´ ych dokument˚ u. Rozdelˇen´ım zpracov´avan´e kolekce dokument˚ u na nˇekolik menˇs´ıch disjunktn´ıch mnoˇzin je moˇzn´e dos´ahnout v´ yrazn´eho sn´ıˇzen´ı ˇcasov´e n´aroˇcnosti, a to s velice mal´ ym sn´ıˇzen´ım schopnosti klasifik´atoru spr´avnˇe klasifikovat nezn´am´e dokumenty. V´ yjimku tvoˇr´ı metoda nejbliˇzˇs´ıho souseda, u kter´e bylo vypozorov´ano i m´ırn´e zv´ yˇsen´ı pˇresnosti, avˇsak stanoven´ı
4.4
Experimenty
64
konkr´etn´ıho trendu ˇcasov´e u ´spory nen´ı jednoznaˇcn´e. Z experimentu s rozs´ahlejˇs´ı tr´enovac´ı mnoˇzinou je vidˇet rostouc´ı u ´spora se zvyˇsuj´ıc´ım se poˇctem ˇclen˚ u komise, avˇsak tento z´avˇer naruˇsuje komise s deseti ˇcleny, kdy doˇslo naopak ke zv´ yˇsen´ı ˇcasu. U metody nejbliˇzˇs´ıho souseda byl tak´e nejv´ıce patrn´ y negativn´ı dopad sud´eho poˇctu klasifik´ator˚ u, kter´ y m˚ uˇze m´ıt za n´asledek zhorˇsen´ı pˇresnosti kv˚ uli neklasifikovan´ ym dokument˚ um. Nejv´ yraznˇejˇs´ı ˇcasov´e u ´spory je moˇzn´e dos´ahnout s neuronov´ ymi s´ıtˇemi, u kter´ ych m´a d´ıky velk´e ˇcasov´e n´aroˇcnosti roustouc´ı s poˇctem zpracov´avan´ ych dat paraleln´ı zpracov´an´ı nejvˇetˇs´ı v´ yznam. Pro zjiˇstˇen´ı vlivu r˚ uzn´ ych parametr˚ u na v´ ysledky z´ıskan´e pˇri paraleln´ım zpracov´an´ı textov´ ych dat byly tak´e realizov´any experimenty s rozd´ıln´ ym nastaven´ım. Z ˇcasov´eho hlediska byla pouˇzita pouze tr´enovac´ı mnoˇzina o 100 000 dokumentech. U neuronov´ ych s´ıt´ı byla zjednoduˇsena architektura a sn´ıˇzena poˇzadovan´a chyba, u podp˚ urn´ ych vektor˚ u zmˇenˇena j´adrov´a funkce na radi´aln´ı a u nejbliˇzˇs´ıho souseda byl zv´ yˇsen poˇcet soused˚ u. Dosaˇzen´e v´ ysledky jsou velice podobn´e a obecn´ y trend ve sn´ıˇzen´ı ˇcasov´e n´aroˇcnosti se zanedbateln´ ym sn´ıˇzen´ım pˇresnosti plat´ı pro neuronov´e s´ıtˇe i podp˚ urn´e vektory. U nejbliˇzˇs´ıho souseda bylo dosaˇzeno tak´e podobn´ ych v´ ysledk˚ u v podobˇe zv´ yˇsen´ı pˇresnosti pˇri pouˇzit´ı lich´eho poˇctu klasifik´ator˚ u, ale nev´ yrazn´a ˇcasov´a u ´spora byla sp´ıˇse n´ahodn´a.
5
DISKUZE
5
65
Diskuze
V t´eto diplomov´e pr´aci bylo snahou prozkoumat moˇznosti paralelizovan´eho pˇr´ıstupu k dolov´an´ı znalost´ı z rozs´ahl´ ych kolekc´ı textov´ ych dokument˚ u, kter´e jsou pro sv´e typick´e vlastnosti velice ˇcasovˇe i prostorovˇe n´aroˇcn´e na zpracov´an´ı. Z´ıskan´e v´ ysledky uk´azaly, ˇze rozdˇelen´ım probl´emu na nˇekolik menˇs´ıch d´ılˇc´ıch probl´em˚ u je moˇzn´e dos´ahnout sn´ıˇzen´ı ˇcasov´e n´aroˇcnosti a neutrpˇet v´ yrazn´e sn´ıˇzen´ı pˇresnosti klasifikace. V´ yjimkou je algoritmus nejbliˇzˇs´ıho souseda, u kter´eho ke sn´ıˇzen´ı ˇcasu doch´azelo sp´ıˇse n´ahodnˇe, ale pokud byl poˇcet klasifik´ator˚ u lich´ y, bylo moˇzn´e zv´ yˇsit celkovou pˇresnost. Rozhoduj´ıc´ım faktorem je velikost komise klasifik´ator˚ u, kter´a s vyˇsˇs´ım poˇctem ˇclen˚ u umoˇzn ˇuje vyˇsˇs´ı sn´ıˇzen´ı ˇcasov´e n´aroˇcnosti, pˇriˇcemˇz rozd´ıly v pˇresnosti byly vˇetˇsinou velice mal´e. V´ yhodnˇejˇs´ı je tedy pouˇzit´ı vyˇsˇs´ıho poˇctu klasifik´ator˚ u, pokud moˇzno lich´eho poˇctu, aby nedoch´azelo k nerozhodnosti hlas˚ u komise pˇri klasifikaci nezn´am´eho dokumentu.
5.1
Nedostatky implementace
Nejvˇetˇs´ım nedostatkem je souˇcasn´a podoba objektov´eho n´avrhu aplikace, kter´ y pouˇz´ıv´a menˇs´ı mnoˇzstv´ı tˇr´ıd obsahuj´ıc´ı funkcionality, kter´e by bylo moˇzn´e vyˇclenit a z´ıskat t´ım ˇcistˇs´ı n´avrh. Pokud by tedy aplikace mˇela slouˇzit jako podklad pro dalˇs´ı v´ yzkum nebo i praktick´e vyuˇzit´ı, bylo by velice vhodn´e prov´est refaktoring. Urˇcit´ ym nedostatkem m˚ uˇze b´ yt tak´e vlastn´ı implementace algoritmu nejbliˇzˇs´ıho souseda a KD strom˚ u, kter´e nebyly ovˇeˇreny vˇetˇs´ım mnoˇzstv´ım uˇzivatel˚ u, jako tomu b´ yv´a u volnˇe dostupn´ ych knihoven.
5.2
Moˇ znosti nav´ az´ an´ı na pr´ aci
Pr´ace se dan´e problematice vˇenuje jeˇstˇe na pomˇernˇe obecn´e u ´rovni a zkoum´an byl pˇredevˇs´ım vliv paralelizace na r˚ uzn´e algoritmy. Moˇznost´ı, jak d´ale pˇristoupit k tomuto probl´emu, je nˇekolik. Jednak by bylo vhodn´e pouˇz´ıt jin´ y typ textov´ ych dat, kter´ y by mˇel rozd´ıln´e charakteristiky, a porovnat z´ıskan´e v´ ysledky. Vliv parametrizace jednotliv´ ych algoritm˚ u byl v t´eto pr´aci tak´e zahrnut, avˇsak z ˇcasov´ ych d˚ uvod˚ u bylo provedeno pouze mal´e mnoˇzstv´ı experiment˚ u s r˚ uzn´ ym nastaven´ım a vyvozen´e z´avˇery tedy nemus´ı m´ıt dostateˇcnou podporu v empirick´ ych datech.
5.3
Moˇ znosti vyuˇ zit´ı v praxi
D´ıky rozs´ahl´ ym u ´spor´am v ˇcase potˇrebn´em pro nauˇcen´ı klasifik´atoru by mˇelo b´ yt moˇzn´e podobn´ y pˇr´ıstup vyuˇz´ıt pro zpracov´an´ı velice rozs´ahl´ ych kolekc´ı textov´ ych dokument˚ u, a to i na bˇeˇzn´em dom´ac´ım poˇc´ıtaˇci. V akademick´e a firemn´ı sf´eˇre je takto moˇzn´e uˇsetˇrit v´ yrazn´ ym zp˚ usobem v´ ypoˇcetn´ı prostˇredky pˇri n´aroˇcn´ ych v´ ypoˇctech spojen´ ych se zpracov´an´ım velk´eho mnoˇzstv´ı textov´ ych dat.
6
6
´ ER ˇ ZAV
66
Z´ avˇ er
C´ılem t´eto diplomov´e pr´ace bylo prozkoumat moˇznost aplikov´an´ı paraleln´ıho pˇr´ıstupu pˇri dolov´an´ı znalost´ı z textov´ ych dat. Pr´ace se zamˇeˇrila pˇredevˇs´ım na rozd´ılnost ve v´ ysledc´ıch pro tˇri r˚ uzn´e klasifikaˇcn´ı algoritmy, a to neuronov´ ymi s´ıtˇemi, podp˚ urn´ ymi vektory a metodou nejbliˇzˇs´ıho souseda. Pˇri zpracov´an´ı pr´ace byla nastudov´ana problematika pˇredzpracov´an´ı textov´ ych dokument˚ u a jejich transformace do vektorov´e reprezentace, zp˚ usob fungov´an´ı klasifik´ator˚ u pouˇz´ıvan´ ych pˇri pr´aci s textov´ ymi daty a jiˇz dosaˇzn´e v´ ysledky v oblasti paralelizace tohoto typu probl´emu. V pr´aci samotn´e je pops´ana znaˇcn´a ˇc´ast teorie spojen´e se zpracov´an´ım textov´ ych dokument˚ u a jejich pˇr´ıpravou pro algoritmy strojov´eho uˇcen´ı, stejnˇe tak i princip tˇechto algoritm˚ u a kr´atk´e shrnut´ı dosavadn´ıch poznatk˚ u paralelizov´an´ı zpracov´an´ı textov´ ych dat. Jako jeden z v´ ystup˚ u, nikoliv vˇsak hlavn´ı, byla vytvoˇrena aplikace pro realizaci experiment˚ u. Jedn´ım z hlavn´ıch probl´em˚ u pˇri implementaci byla prostorov´a ˇ n´aroˇcnost zpracov´an´ı textov´ ych dat. Reˇsen´ım byla u ´prava vybran´ ych knihoven tak, aby byly schopn´e pracovat s ˇr´ıdk´ ymi vektory, d´ıky kter´ ym bylo dosaˇzeno enormn´ıho sn´ıˇzen´ı poˇzadvaku na pamˇet’ov´e vybaven´ı poˇc´ıtaˇce, a experimenty tak mohly b´ yt realizov´any i na bˇeˇzn´em dom´ac´ım poˇc´ıtaˇci. Proveden´e u ´pravy by tedy bylo moˇzn´e d´ale vyuˇz´ıt pˇri jak´ekoliv u ´loze t´ ykaj´ıc´ı se klasifikace velk´eho mnoˇzstv´ı textov´ ych dat. Hlavn´ım v´ ystupem jsou v´ ysledky samotn´ ych experiment˚ u, kter´e mˇely za u ´kol odhalit vliv paralelizace na u ´ˇspˇeˇsnost a n´aroˇcnost tvorby jednotliv´ ych klasifik´ator˚ u. Snahou bylo rozˇs´ıˇrit poznatky a nast´ınit tak dalˇs´ı moˇznosti smˇerov´an´ı v´ yzkumn´eho snaˇzen´ı v t´eto oblasti.
A
A
ˇ ıLOHA 1 PR´
67
Pˇr´ıloha 1
Zdrojov´e k´ody aplikace spolu s v´ ysledky experiment˚ u jsou k dispozici na pˇriloˇzen´em DVD.
B
B
LITERATURA
68
Literatura
AI Basics John McCarthy Artificial intelligence: Manufactured Minds [online]. [cit. 2013-04-13]. Dostupn´e z WWW: http://library.thinkquest.org/05aug/01158/mccarthy.html. Banko, M., Brill, E. Scaling to Very Very Large Corpora for Natural Language Disambiguation Proceedings of the 39th Annual Meeting on Association for Computational Linguistics – ACL ’01 [online]. 2001, s. 26–33 [cit. 2013-05-03]. Dostupn´e z: doi:10.3115/1073012.1073017 . Cardoso-Cachopo, A. Datasets for single-label text categorization [online]. 2007 [cit. 2013-05-11]. Dostupn´e z WWW: http://web.ist.utl.pt/acardoso/datasets/. ˇena, F. Mysl´ıme v jazyku Perl Vyd. 1. Praha: Grada, 2005, 700 s. ISBN 80Dar 247-1147-8. ˇena, F. Vybran´e pˇr´ıstupy k dolov´an´ı znalost´ı ze soci´aln´ıch m´edi´ı 2011. HabiDar litaˇcn´ı pr´ace. Mendelova univerzita v Brnˇe. Fung, P., Kan, M., Horita, Y. Extracting Japanese Domain and Technical Terms is Relatively Easy Computer Science Deparment, Columbia University, New York, 1996. Dostupn´e z: doi:10.1.1.151.278. Joachims, T. Text Categorization with Support Vector Machines: Learning with Many Relevant Features Proceeding of the European Conference on Machine Learning, Springer, 1998. Kernighan, M., Church, K., Gale, W. A spelling correction program based on a noisy channel model In Proc. ACL, 1990, s. 205–210. Konchady, M. Text Mining Application Programming Boston: Charles River Media, 2006, xix, 412 s. ISBN 978-1-58450-460-3. ˇ ny ´ , V., Trenz O. Umˇel´a inteligence Brno: 2010. 120 s. Konec Koza, J. Genetic programming: A paradigm for genetically breeding populations of computer programs to solve problems Computer Science Department, Standford University [online]. 1990 [cit. 2013-04-13]. Dostupn´e z WWW: http://www.genetic-programming.com/jkpdf/tr1314.pdf. Lertnattee, V., Theeramunkong, T. Parallel text categorization for multidimensional data Lecture Notes in Computer Science, Vol. 3320, 2004, s. 38–41. Lewis, D. Reuters-21578 Text Categorization Test Collection [online]. 2007 [cit. 2013-05-11]. Dostupn´e z WWW: http://daviddlewis.com/resources/testcollections/reuters21578. ¨ tze, H. Introduction to Information Retrieval Manning, C., Raghavan, P., Schu Cambridge University Press, 2008.
B
LITERATURA
69
Neto, J., Santos, A., Kaestner, C., Freitas, A. Document Clustering and Text Summarization Pontificia Universidade Catolica do Parana, 2000. Dostupn´e z: doi:10.1.1.43.4634. Ng, A. Machine Learning Coursera [online]. Stanford University, [cit. 2013-05-03]. Dostupn´e z WWW: https://www.coursera.org/course/ml. ´ k, Z., Dar ˇena, F. Aplikace pro pˇr´ıpravu textov´ych dat [CD-ROM]. In PEFNova net 2012. ISBN 978-80-7375-669-7. Porter, M. An algorithm for suffix stripping Program, 14(3), s. 130–137, 1980. Rennie, J. 20 Newsgroups [online]. 2008 [cit. 2013-05-11]. Dostupn´e z WWW: http://qwone.com/~jason/20Newsgroups/. Rosenblatt, F. The Perceptron–a perceiving and recognizing automation Report 85-460-1, Cornell Aeronautical Laboratory, 1957. Russel, S., Norvig, P. Artificial intelligence: A modern approach Englewood Cliffs, N.J.: Prentice Hall, 1995, xxviii, 932 s. ISBN 01-310-3805-2. Salton, G., Wong, A., Yang, C. A Vector Space Model for Automatic Indexing Communications of the ACM 18, 11 (November 1975), s. 613–620. Dostupn´e z: doi:10.1145/361219.361220. Sebastiani, F. Text categorization Text Mining and its Applications to Intelligence, CRM and Knowldge, WIT Press. 2005, s. 109–129. Singhal, A. Term weighting revisited [online]. 1997 [cit. 2013-05-10]. Disertaˇcn´ı pr´ace. Cornell University. Dostupn´e z WWW: http://ecommons.cornell.edu/bitstream/1813/7281/1/97-1626.pdf. ˇ´ıma, J., Neruda, R. Teoretick´e ot´azky neuronov´ych s´ıt´ı Praha: Matfyzpress, S 1996, 390 s. ISBN 80-858-6318-9. Text Mining Science Text Mining for Science [online]. 2012 [cit. 2013-04-16]. Dostupn´e z WWW: http://textminingscience.com/pages/text-mining-science. Turing, A. Computing machinery and intelligence [online]. [cit. 2013-04-13]. Dostupn´e z WWW: http://www.loebner.net/Prizef/TuringArticle.html. Turney, P., Pantel, P. From Frequency to Meaning: Vector Space Models of Semantics Journal of Artificial Intelligence Research 37, 2010, s. 141–188. Ulmer, C., Gokhale, M., Gallagher, B., Top, P., Eliassi-Rad, T. Massively parallel acceleration of a document-similarity classifier to detect web attacks Journal of Parallel and Distrubuted Computing, Vol. 71, No. 2, 2011, s. 225–235. Vapnik, V. The Nature of Statistical Learning Theory Springer, 1995.
B
LITERATURA
70
Wang, Y., Zhang, J., Vassileva, J. Towards Effective Recommendation of Social Data across Social Networking Sites In: Dicheva, D., Dochev, D. (eds.) Artificial Intelligence: Methodology, Systems, and Applications. Springer, 2010, s. 61–70. Weiss, S., Indurkhya, N., Zhang, T., Damerau, F. Text Mining: Predictive Methods for Analyzing Unstructured Information New York, Springer, 2010. ISBN 978-1-44192996-9. Weizenbaum, J. ELIZA—a computer program for the study of natural language communication between man and machine Communications of the ACM, v.9 n.1, p.36–45. Dostupn´e z: doi:10.1145/365153.365168. Whitby, B. Reflections on artificial intelligence Exeter: Intellect, 1996. ISBN 18715-1668-4. Witten, I., Eibe, F. Data Mining: Practical Machine Learning Tools and Techniques 2nd ed. Amsterdam: Morgan Kaufman, 2005. ISBN 978-008-0477-022. Zhang, Y., Jin, R., Zhou, Z. Understanding bag-of-words model: a statictical framework 2010. s. 43–52. Dostupn´e z: doi:10.1007/s13042-010-0001-0. ˇˇ ˇena F. Automatic Sentiment Analysis Using the Textual Pattern Zi zka, J., Dar Content Similarity in Natural Language Lecture Notes in Artificial Intelligence, 2010, 6231, 1: 224–231. ISSN 0302-9743. ˇˇ ˇena F. Parallel Processing of Very Many Textual Customers’ ReZi zka J., Dar views Freely Written Down in Natural Languages In IMMM 2012: The Second International Conference on Advances in Information Mining and Management. 2012, s. 147–153. ISBN 978-1-61208-227-1.