• No results found

Vyuˇzit´ı algoritm˚u dataminingu pro rozpozn´av´an´ı pojmenovan´ych entit

N/A
N/A
Protected

Academic year: 2022

Share "Vyuˇzit´ı algoritm˚u dataminingu pro rozpozn´av´an´ı pojmenovan´ych entit"

Copied!
48
0
0

Loading.... (view fulltext now)

Full text

(1)

Vyuˇ zit´ı algoritm˚ u dataminingu pro rozpozn´ av´ an´ı pojmenovan´ ych entit

Diplomov´ a pr´ ace

Studijn´ı program: N2612 – Elektrotechnika a informatika Studijn´ı obor: 1802T007 – Informaˇcn´ı technologie Autor pr´ace: Bc. Vojtˇech Houˇzviˇcka

Vedouc´ı pr´ace: Ing. Pavel Tyl

(2)

Datamining algorithms for named entity recognition

Diploma thesis

Study programme: N2612 – Electrical engineering and informatics Study branch: 1802T007 – Information technology

Author: Bc. Vojtˇech Houˇzviˇcka Supervisor: Ing. Pavel Tyl

(3)

Tento list nahrad’te

origin´ alem zad´ an´ı.

(4)

Prohl´ aˇ sen´ı

Byl jsem sezn´amen s t´ım, ˇze na mou diplomovou pr´aci se plnˇe vzta- huje z´akon ˇc. 121/2000 Sb., o pr´avu autorsk´em, zejm´ena § 60 – ˇskoln´ı d´ılo.

Beru na vˇedom´ı, ˇze Technick´a univerzita v Liberci (TUL) neza- sahuje do m´ych autorsk´ych pr´av uˇzit´ım m´e diplomov´e pr´ace pro vnitˇrn´ı potˇrebu TUL.

Uˇziji-li diplomovou pr´aci nebo poskytnu-li licenci k jej´ımu vyuˇzit´ı, jsem si vˇedom povinnosti informovat o t´eto skuteˇcnosti TUL;

v tomto pˇr´ıpadˇe m´a TUL pr´avo ode mne poˇzadovat ´uhradu n´aklad˚u, kter´e vynaloˇzila na vytvoˇren´ı d´ıla, aˇz do jejich skuteˇcn´e v´yˇse.

Diplomovou pr´aci jsem vypracoval samostatnˇe s pouˇzit´ım uveden´e literatury a na z´akladˇe konzultac´ı s vedouc´ım m´e diplomov´e pr´ace a konzultantem.

Souˇcasnˇe ˇcestnˇe prohlaˇsuji, ˇze tiˇstˇen´a verze pr´ace se shoduje s elek- tronickou verz´ı, vloˇzenou do IS STAG.

Datum:

Podpis:

(5)

Abstrakt

Tato pr´ace se zab´yv´a vyhled´av´an´ım pojmenovan´ych entit v textu pomoc´ı dataminingov´ych algoritm˚u a jej´ım c´ılem je navrhnout n´astroj, kter´y by tento probl´em ˇreˇsil. Souˇc´ast´ı pr´ace je reˇserˇse existuj´ıc´ıch n´astroj˚u a algoritm˚u, kter´e se danou problematikou zab´yvaj´ı.

D´ale byl navrˇzen a implementov´an n´astroj, kter´y vyuˇz´ıv´a nˇekolik dataminingov´ych algoritm˚u z´aroveˇn a kombinuje tak jejich v´yhody.

Konkr´etn´ı algoritmy jsou realizov´any pomoc´ı extern´ıch kniho- ven a v´ysledky vyhled´av´an´ı jednotliv´ych algoritm˚u jsou slouˇceny pomoc´ı vlastn´ı navrˇzen´e metody. Tato metoda bere v potaz pˇredchoz´ı ´uspˇeˇsnost n´astroj˚u a vyb´ır´a ze vˇsech v´ysledk˚u ten nejv´ıce pravdˇepodobn´y. Pr´ace tak´e popisuje vytvoˇren´ı datov´eho modelu pro nauˇcen´ı n´astroje. Pomoc´ı vlastn´ıho modelu lze n´astroj pouˇz´ıt nad libovolnou dom´enou dat. Cel´y n´astroj je uzp˚usoben´y na vy- hled´av´an´ı entit v ˇcesk´em jazyce. V z´avˇeru pr´ace je n´astroj na vy- tvoˇren´em datov´em modelu otestov´an pomoc´ı pˇresnosti a ´uplnosti.

Kl´ıˇ cov´ a slova

Vyhled´av´an´ı pojmenovan´ych entit, datamining, dolov´an´ı dat, stro- jov´e uˇcen´ı, extrakce informace, algoritmy dataminingu, morfolo- gick´a anal´yza, pojmenovan´a entita

(6)

Abstract

This thesis concerns itself with named entity recognition and use of data mining algorithms for this purpose. Its main objective is to design and implement a tool, that solves the problem of named entity recognition. This thesis contains research of existing tools for named entity recognition and research of data mining algorithms.

A new tool for named entity recognition was designed and imple- mented. This tool combines several data mining algorithms and dictionary method and takes advantage of their strong points by merging their results using own designed method. Each algorithm is implemented by external tool. The method for results merging uses previous precision of included tools to determine most proba- ble results. The thesis also covers the topic of creating own training data set. The tool was trained and tested using data set created within the diploma thesis.

Key words

Named entity recognition, data mining, machine learning, infor- mation extraction, data mining algorithms, morphological analysis, named entity

(7)

Podˇ ekov´ an´ı

Dˇekuji vedouc´ımu pr´ace Ing. Pavlu Tylovi za cenn´e rady, vˇecn´e pˇripom´ınky a vstˇr´ıcnost pˇri konzultac´ıch a pˇri vypracov´an´ı diplo- mov´e pr´ace.

Dˇekuji sv´ym rodiˇc˚um, Janovi a Jitce, za jejich duchovn´ı i materi´aln´ı podporu a poskytnut´ı z´azem´ı pro odpoˇcinek a nab´ır´an´ı nov´ych sil v sam´em srdci ˇCesk´eho stˇredohoˇr´ı.

Dˇekuji tak´e sleˇcnˇe Mark´etˇe Kostelencov´e, za ˇcastou motivaci k pr´aci, podporu ve chv´ıl´ıch nejistoty a pomoc s korekturami textu.

(8)

Obsah

Seznam zkratek . . . 12

1 Uvod´ 13 2 Pojmenovan´e entity a dataminingov´e algoritmy 14 2.1 Uloha rozpozn´´ av´an´ı pojmenovan´ych entit v textu . . . 14

2.2 Bˇeˇzn´y postup pˇri vyhled´av´an´ı pojmenovan´ych entit . . . 15

2.3 Zp˚usoby rozpozn´av´an´ı pojmenovan´ych entit v textu . . . 16

2.3.1 Slovn´ıkov´e metody . . . 16

2.3.2 Metody zaloˇzen´e na statistick´em modelu . . . 16

2.4 Metriky pro mˇeˇren´ı ´uspˇeˇsnosti NER n´astroje . . . 17

2.5 Strojov´e uˇcen´ı a hled´an´ı pojmenovan´ych entit . . . 18

2.6 Uskal´ı vyhled´´ av´an´ı pojmenovan´ych entit . . . 18

2.7 Algoritmy pro vyhled´av´an´ı pojmenovan´ych entit v textu . . . 19

2.7.1 Support Vector Machines . . . 20

2.7.2 Hidden Markov Model . . . 21

(9)

2.7.3 Conditional Random Fields . . . 22

3 N´astroje pro vyhled´av´an´ı pojmenovan´ych entit v textu 23 3.1 Cizojazyˇcn´e n´astroje . . . 24

3.2 Cesk´ˇ e n´astroje . . . 25

4 N´avrh a implementace n´astroje pro NER 28 4.1 Popis navrˇzen´e implementace . . . 28

4.1.1 F´aze uˇcen´ı . . . 28

4.1.2 F´aze rozpozn´av´an´ı . . . 29

4.2 Pouˇzit´y datov´y korpus . . . 30

4.3 Pouˇzit´e znaˇcen´ı pojmenovan´ych entit . . . 33

4.4 Tvorba slovn´ıku z dat z ˇCSFD . . . 34

4.5 Pˇr´ıprava tr´enovac´ı a testovac´ı sady . . . 34

4.5.1 Automatick´e rozˇsiˇrov´an´ı tr´enovac´ı sady . . . 35

4.5.2 Tr´enovac´ı data pro n´astroj LIBSVM . . . 35

4.5.3 Ruˇcn´ı anotace dat . . . 37

4.6 Tr´enov´an´ı NER n´astroj˚u . . . 39

4.7 Testov´an´ı NER n´astroj˚u . . . 40

4.8 Pouˇzit´ı NER n´astroj˚u samostatnˇe . . . 40

5 Testov´an´ı navrˇzen´eho n´astroje 42

6 Z´avˇer 46

(10)

Seznam obr´ azk˚ u

2.1 Bˇeˇzn´y postup pˇri rozpozn´av´an´ı pojmenovan´ych entit . . . 15

2.2 Hled´an´ı optim´aln´ı nadroviny v ´uloze SVM . . . 20

2.3 Transformace line´arnˇe neseparovateln´ych dat . . . 21

2.4 Grafick´e zn´azornˇen´ı podm´ınˇen´ych n´ahodn´ych pol´ı s ˇretˇezovou struk- turou. . . 22

4.1 N´avrh implementace n´astroje pro NER . . . 29

4.2 Struktura staˇzen´ych dat . . . 31

5.1 Porovn´an´ı F-m´ıry n´astroje MANER s jednotliv´ymi n´astroji . . . 45

(11)

Seznam tabulek

3.1 Srovn´an´ı vybran´ych n´astroj˚u pro NER . . . 27

4.1 Udaje o staˇ´ zen´ych datech . . . 31

4.2 Znaˇcen´ı druh˚u vyhled´avan´ych entit . . . 33

4.3 V´yznam morfologick´ych znaˇcek pro slovo Praha . . . 36

4.4 Udaje o tr´´ enovac´ı a testovac´ı sadˇe . . . 38

4.5 Konfigurace poˇc´ıtaˇce, na kter´em bylo prov´adˇeno testov´an´ı . . . 39

4.6 Doba trv´an´ı tr´enov´an´ı jednotliv´ych n´astroj˚u . . . 40

5.1 V´ysledky testov´an´ı n´astroje MANER pˇred automatick´ym rozˇs´ıˇren´ım tr´enovac´ı sady . . . 42

5.2 V´ahy pouˇzit´e pˇri testov´an´ı n´astroje MANER pˇred automatick´ym rozˇs´ıˇren´ım tr´enovac´ı sady . . . 43

5.3 V´ysledky testov´an´ı n´astroje MANER po automatick´em rozˇs´ıˇren´ı tr´enovac´ı sady . . . 44

5.4 V´ahy pouˇzit´e pˇri testov´an´ı n´astroje MANER po automatick´em rozˇs´ıˇren´ım tr´enovac´ı sady . . . 44

5.5 Vliv paralelizace na rychlost bˇehu programu . . . 45

(12)

Seznam zkratek

API Application Interface

CNEC Czech Named Entity Corpus CRF Conditional Random Field CSS Cascading Style Sheets

CSFDˇ Cesko-Slovensk´ˇ a Filmov´a Datab´aze

DOM Document Object Model

HMM Hidden Markov Model

HTML HyperText Markup Language

ICDM International Conference on Data Mining

IP Internet Protocol

JS JavaScript

LIPI LIng PIpe

MANER Multiple Algorithm Named Entity Recognizer MorphoDiTa Morphological Dictionary and Tagger

MUC Message Understanding Conference

NE Named Entity

NER Named Entity Recognition NLP Natural Language Processing

RAM Random Access Memory

SNER Stanford Named Entity Recognition SVM Support Vector Machines

XML eXtended Markup Language

(13)

1 Uvod ´

Informace je ropou 21. stolet´ı a anal´yza spalovac´ım motorem.

Peter Sondergaard, Gartner Research

Podle sedm´e v´yroˇcn´ı studie EMC Digital Universe objem dat obsaˇzen´ych v di- git´aln´ım svˇetˇe vzroste desetkr´at do roku 2020 [1]. Aˇckoliv data nesou sama o sobˇe uˇziteˇcn´e informace, jejich anal´yzou lze z´ıskat informace nov´e, nach´azet dˇr´ıve ne- vidˇen´e vztahy a objevovat nov´e souvislosti. A tak data (informace) v dneˇsn´ı dobˇe tvoˇr´ı jednu z nejvz´acnˇejˇs´ıch komodit.

Nechat data bez anal´yzy znamen´a ztr´acet jejich potenci´aln´ı hodnotu. Nejedn´a se pouze o prvopl´anovˇe uˇziteˇcn´a data, ale tak´e o takzvan´e datov´e zplodiny, neuˇziteˇcn´a data, ze kter´ych lze jejich anal´yzou z´ıskat uˇziteˇcn´e informace. Tento pojem je pouˇzit v knize Big Data [2], kde je uveden na n´azorn´em pˇr´ıkladu shromaˇzd’ov´an´ı informac´ı o chov´an´ı ˇcten´aˇre elektronick´e knihy. Jak dlouho str´av´ı ˇcten´ım jedn´e str´anky, kde ˇctou, kde si podtrhnou nˇejakou pas´aˇz atd. V´yrobce elektronick´ych knih pak tyto informace shrom´aˇzd´ı, analyzuje a pokus´ı se poskytnout ˇcten´aˇri jeˇstˇe lepˇs´ı z´aˇzitek ze ˇcten´ı. Jin´y pˇr´ıklad uˇzit´ı je anal´yza zn´am´ych dat o z´akazn´ıc´ıch finanˇcn´ı spoleˇcnosti, na z´akladˇe kter´e pak spoleˇcnost pˇredv´ıd´a, zda nov´emu z´akazn´ıkovi udˇel´ı p˚ujˇcku ˇci nikoliv [3].

Tento proces, kdy se z dat tˇeˇz´ı nov´a netrivi´aln´ı data, se naz´yv´a datamining (do- slova dolov´an´ı dat). A pr´avˇe s rychl´ym n´ar˚ustem digit´aln´ıho obsahu stoup´a vyuˇzit´ı a obliba dataminingu. Jednou z mnoha oblast´ı, kterou se datamining zab´yv´a, je extrakce informace z textu, konkr´etnˇeji vyhled´av´an´ı pojmenovan´ych entit v textu.

O tom, jak´e n´astroje a postupy datamining pˇri vyhled´av´an´ı pojmenovan´ych entit nab´ız´ı, pojedn´av´a tato diplomov´a pr´ace. Zamˇeˇruji se v n´ı pˇredevˇs´ım na to, kter´e konkr´etn´ı algoritmy pro dolov´an´ı dat jsou k t´eto ˇcinnosti vhodn´e a jak je pouˇz´ıt.

(14)

2 Pojmenovan´ e entity a dataminingov´ e algoritmy

Oznaˇcen´ım pojmenovan´a entita rozum´ıme slovo nebo v´ıceslovn´e spojen´ı, kter´e jed- noznaˇcnˇe identifikuje objekt ˇci entitu. Tˇemito entitami jsou nejˇcastˇeji osoby, organi- zace, mˇesta, geografick´a ´uzem´ı, data nebo ˇcasov´a rozmez´ı, v´yrazy mnoˇzstv´ı a jin´e [4].

Term´ın pojmenovan´a entita byl zaveden v roce 1996 na ˇsest´e Message Under- standing conference. Tato konference, kter´a se poprv´e konala roku 1987, se or- ganizuje za ´uˇcelem lepˇs´ıho porozumˇen´ı a vyvinut´ı pˇresnˇejˇs´ıch metod pro extrakci informace. Konference je zaloˇzena na principu soutˇeˇzen´ı nˇekolika t´ym˚u o nejlepˇs´ı v´ysledky v adaptov´an´ı r˚uzn´ych postup˚u pˇri snaze o extrakci informace z textu [5].

2.1 Uloha rozpozn´ ´ av´ an´ı pojmenovan´ ych entit v textu

Rozpozn´av´an´ı pojmenovan´ych entit (NER) je jedna z ´uloh pouˇz´ıvan´ych v datami- ningu. Jej´ım c´ılem je odhalit, kde se v textu nach´az´ı pojmenovan´e entity. Vstupem pro vyhled´av´an´ı je blok textu a v´ysledkem pak stejn´y blok textu, ve kter´em jsou anotov´any pojmenovan´e entity. Napˇr´ıklad pro vstup:

Roy Raymond, zakladatel znaˇcky Victoria’s Secret, kter´a m´a k datu 1. ledna 2014 cenu zhruba pˇet miliard dolar˚u, sp´achal v roce 1993 sebevraˇzdu skokem z Golden Gate Bridge deset let pot´e, co znaˇcku prodal Lesliemu Wexnerovi za ˇctyˇri miliony dolar˚u.

M˚uˇze b´yt v´ystupem:

[Roy Raymond]Osoba, zakladatel znaˇcky [Victoria’s Secret]znaˇcka, kter´a m´a k datu [1. ledna 2014]Datumcenu zhruba [pˇet miliard dolar˚u]mnoˇzstv´ı, sp´achal v roce [1993]Datum

(15)

sebevraˇzdu skokem z [Golden Gate Bridge]stavba [deset let]ˇcasov´y ´udaj pot´e, co znaˇcku prodal [Lesliemu Wexnerovi]osoba za [ˇctyˇri miliony dolar˚u]mnoˇzstv´ı.

V tomto pˇr´ıpadˇe bylo ve vˇetˇe detekov´ano a klasifikov´ano osm pojmenovan´ych entit. Atomick´e ˇc´asti n´azvu entity (slova, interpunkˇcn´ı znam´enka) jsou oznaˇcov´any jako tokeny. Toto pojmenov´an´ı se do ˇceˇstiny nepˇrekl´ad´a. Pojmenovan´a entita Gol- den Gate Bridge je tˇr´ıtokenov´a a klasifikov´ana tˇr´ıdou stavba. Z´aroveˇn je patrn´e, ˇze jedin´a pojmenovan´a entita m˚uˇze b´yt definov´ana mnoha r˚uzn´ymi ´useky textu (Roy Raymond, zakladatel znaˇcky Victoria’s Secret) a entity mohou b´yt do sebe vnoˇren´e ([zakladatel znaˇcky [Victoria’s Secret]znaˇcka]Osoba). Jak budeme entitu vn´ımat, pak zcela z´aleˇz´ı na tom, za jak´ym ´uˇcelem text zkoum´ame.

2.2 Bˇ eˇ zn´ y postup pˇ ri vyhled´ av´ an´ı pojmenovan´ ych entit

Obr´azek 2.1 popisuje, jak se zpravidla postupuje pˇri rozpozn´av´an´ı pojmenovan´ych entit. Vstupn´ı text se nejprve rozdˇel´ı na vˇetn´e celky (lemmatizace), n´aslednˇe se se rozdˇel´ı na tokeny (tokenizace), provede se vyhled´av´an´ı pojmenovan´ych entit pomoc´ı slovn´ık˚u a pot´e pomoc´ı statistick´ych metod. V´ysledkem je oznaˇckovan´y vstupn´ı text, s nalezen´ymi pojmenovan´ymi entitami. Obr´azek 2.1 popisuje zp˚usob, jak´ym funguje hybridn´ı n´astroj (n´astroj kombinuje uˇzit´ı slovn´ıkov´ych a statistick´ych metod).

Obr´azek 2.1: Bˇeˇzn´y postup pˇri rozpozn´av´an´ı pojmenovan´ych entit

(16)

2.3 Zp˚ usoby rozpozn´ av´ an´ı pojmenovan´ ych entit v textu

Pˇr´ıstup k rozpozn´an´ı pojmenovan´ych entit je dvoj´ı:

ˆ Slovn´ıkov´e metody

ˆ Metody zaloˇzen´e na statistick´em modelu

2.3.1 Slovn´ıkov´ e metody

Slovn´ıkov´e metody vyuˇz´ıvaj´ı k nalezen´ı entit v textu pˇredem definovan´y slovn´ık pojm˚u. Obvykle dosahuj´ı vˇetˇs´ı pˇresnosti neˇz metody zaloˇzen´e na statistick´em mo- delu, za cenu ˇcasu str´aven´eho pˇri pˇr´ıpravˇe slovn´ıku – jeho vytvoˇren´ı m˚uˇze zabrat i mˇes´ıce pr´ace. Pomoc´ı tohoto pˇr´ıstupu lze nal´ezt pouze entity definovan´e slovn´ıkem a pokryt´ı je tedy omezen´e. Dalˇs´ım ´uskal´ım (nejen t´eto metody) jsou zaˇc´atky vˇet, kde nelze rozhodnout, zda velk´e p´ısmeno oznaˇcuje zaˇc´atek vˇety, nebo se jedn´a o vlastn´ı jm´eno. Napˇr´ıklad:

Neˇcas zahalil krajinu neproniknutelnou z´aclonou deˇstˇe.

Neˇcas podal demisi 17. ˇcervna 2013.

ˇZe se ve druh´em pˇr´ıpadˇe jedn´a o ˇcesk´eho politika, tedy o pojmenovanou entitu, zjist´ıme pouze z kontextu vˇety. Stroj by v obou pˇr´ıpadech rozhodl stejnˇe – oznaˇcil by v´yraz Neˇcas jako pojmenovanou entitu bud’ v obou vˇet´ach, nebo v ˇz´adn´e. V obou pˇr´ıpadech by se tak dopustil chyby.

2.3.2 Metody zaloˇ zen´ e na statistick´ em modelu

Metody zaloˇzen´e na statistick´em modelu k rozpozn´an´ı entit vyuˇz´ıvaj´ı strojov´e uˇcen´ı, pˇri kter´em je anotov´ana pouze mal´a ˇc´ast tr´enovac´ıch dat. Stroj vyuˇzije tuto tr´enovac´ı sadu, aby se z n´ı nauˇcil pracovat s daty, kter´a v t´eto sadˇe nejsou. K uˇcen´ı se pouˇz´ıv´a nˇekter´y z dataminingov´ych algoritm˚u, kter´y se vyb´ır´a podle typu a zamˇeˇren´ı ´ulohy.

Pˇresnost t´eto metody je vˇzdy menˇs´ı neˇz pˇresnost slovn´ıkov´e metody. Tato metoda je naopak flexibilnˇejˇs´ı, protoˇze dok´aˇze rozhodovat i o datech, kter´a nejsou v tr´enovac´ı

(17)

sadˇe – m´a tedy vˇetˇs´ı pokryt´ı. V pˇr´ıkladu uveden´em v kapitole 2.3.1 by statistick´y model uˇz mohl rozhodnout spr´avnˇe v obou pˇr´ıpadech, pokud by k rozpozn´av´an´ı pojmenovan´ych entit vyuˇzil napˇr´ıklad ˇsirˇs´ıho kontextu vˇety.

2.4 Metriky pro mˇ eˇ ren´ı ´ uspˇ eˇ snosti NER n´ astroje

Aby jednotliv´e n´astroje bylo moˇzn´e mezi sebou porovn´avat, byly zavedeny ukaza- tele pro mˇeˇren´ı jejich v´ykonu [6]. Tyto ukazatele vych´az´ı z n´asleduj´ıc´ıch hodnot namˇeˇren´ych pˇri pr´aci n´astroje.

ˆ True Positive (TP) – stroj spr´avnˇe oznaˇcil v´yraz jako pojmenovanou entitu.

ˆ False Negative (FN) – v´yraz, kter´y je pojmenovanou entitou, nebyl strojem rozpozn´an.

ˆ False Positive (FP) – stroj oznaˇcil v´yraz za pojmenovanou entitu, aˇckoliv se o pojmenovanou entitu nejedn´a.

Pomoc´ı tˇechto hodnot se vypoˇctou tˇri ukazatele, kter´e urˇcuj´ı kvalitu pouˇzit´e metody pro rozpozn´an´ı pojmenovan´ych entit. Tˇemito ukazateli jsou:

ˆ Pˇresnost (precision) – d´ana jako pomˇer TP / (TP + FP), ud´av´a pomˇer spr´avnˇe nalezen´ych pojmenovan´ych entit v˚uˇci vˇsem nalezen´ym entit´am.

ˆ ´Uplnost (recall) – definov´ano jako TP / (TP + FN), ud´av´a pomˇer entit, kter´e byly spr´avnˇe oznaˇceny jako pojmenovan´e entity, v˚uˇci vˇsem entit´am v textu.

ˆ F-m´ıra (F-measure) – je nejˇcastˇeji definov´ana jako harmonick´y pr˚umˇer pˇresnosti a ´uplnosti. Tedy vztahem:

F1 = 2 · precision · recall

precision + recall (2.1)

F-m´ıra zahrnuje pˇresnost i ´uplnost a m´a nejpˇresnˇejˇs´ı vypov´ıdac´ı hodnotu o pouˇzit´e metodˇe. Ve v´yˇse uveden´em vzorci je na pˇresnost i ´uplnost kladen stejnˇe velk´y d˚uraz. Nˇekdy se pouˇz´ıv´a vyj´adˇren´ı, kter´e klade vˇetˇs´ı d˚uraz na

(18)

pˇresnost (napˇr. F0,5) nebo na ´uplnost (napˇr. F2). V´ysledn´a F-m´ıra se pak dopoˇc´ıt´av´a podle vztahu:

Fλ = (1 + λ2) · precision · recall

2· precision) + recall (2.2) Tyto ukazatele se vz´ajemnˇe doplˇnuj´ı v tom smyslu, ˇze souvis´ı s opaˇcn´ym typem chyb.

2.5 Strojov´ e uˇ cen´ı a hled´ an´ı pojmenovan´ ych entit

Strojov´e uˇcen´ı je vˇedeck´a discipl´ına, kter´a se zab´yv´a algoritmy, pomoc´ı nichˇz se stroj dok´aˇze nauˇcit samostatn´emu rozhodov´an´ı. Uˇcen´ı prob´ıh´a n´asleduj´ıc´ım zp˚uso- bem: Stroji je pˇredloˇzena sada tr´enovac´ıch dat, ze kter´ych vytvoˇr´ı model. Na z´akladˇe tohoto modelu je pak schopen rozhodnout, jak zach´azet s nov´ymi daty, aniˇz by se tato data nach´azela v tr´enovac´ı sadˇe. Uˇcen´ı prob´ıh´a nˇekterou z obecn´ych technik strojov´eho uˇcen´ı, typicky za vyuˇzit´ı algoritmu SVM (Support Vector Machines), HMM (Skryt´e Markovovy Modely) nebo CRF (Conditional Random Fields).

V ´uloze hled´an´ı pojmenovan´ych entit tvoˇr´ı tr´enovac´ı sadu text, ve kter´em jsou pojmenovan´e entity anotov´any. Z tohoto textu stroj vytvoˇr´ı model, pomoc´ı kter´eho klasifikuje pojmenovan´e entity v neanotovan´em textu. ´Uˇcinnost tohoto pˇr´ıstupu je podm´ınˇena jak velk´ym mnoˇzstv´ım anotovan´ych dat, tak algoritmem poˇzit´ym pro uˇcen´ı a rozhodov´an´ı stroje. Aby se pˇredeˇslo zbyteˇcn´emu ´usil´ı vˇenovan´emu ano- taci dat, pouˇz´ıv´a se takzvan´y semisupervised pˇr´ıstup – kombinace strojov´eho uˇcen´ı s uˇcitelem a bez uˇcitele – anotovan´a data tvoˇr´ı pouze malou ˇc´ast tr´enovac´ı sady, zbytek dat je neanotovan´y.

Nˇekter´e n´astroje mohou tyto metody kombinovat a ze spr´avnˇe urˇcen´ych entit vytv´aˇret slovn´ıky, ze kter´ych se d´ale uˇc´ı a pouˇz´ıvaj´ı je pˇri budouc´ıch vyhled´av´an´ıch.

2.6 Uskal´ı vyhled´ ´ av´ an´ı pojmenovan´ ych entit

Aˇckoliv se na ´uloze NER pracuje jiˇz od devades´at´ych let, jsou dnes syst´emy NER st´ale omezen´e v tom smyslu, ˇze syst´em vyvinut´y pro konkr´etn´ı dom´enu text˚u nebude

(19)

ide´alnˇe fungovat nad jinou dom´enou. Pˇretvoˇren´ı syst´emu tak, aby fungoval nad novou dom´enou, m˚uˇze st´at stejn´e ´usil´ı jako tvorba nov´eho syst´emu. To plat´ı jak pro syst´emy vyuˇz´ıvaj´ıc´ı statistick´y model, tak pro syst´emy zaloˇzen´e na slovn´ıkov´ych metod´ach.

Stˇeˇzejn´ı dom´eny, kter´ymi se dnes NER zab´yv´a jsou: novinov´e ˇcl´anky, bioinfor- matika, molekul´arn´ı biologie, vojensk´e zpr´avy, dotazy zad´avan´e do vyhled´avaˇc˚u, l´ekaˇrsk´e zpr´avy atd.

Dalˇs´ım ´uskal´ım je rozd´ılnost jazyk˚u a jejich bohatost na r˚uzn´e v´yjimky. V ˇceˇstinˇe se jedin´a entita m˚uˇze vyskytovat v mnoha r˚uzn´ych tvarech a je potˇreba, aby ji syst´em vˇzdy klasifikoval spr´avnˇe. Jin´ym specifikem jsou jazyky, jejichˇz abecedy obsahuj´ı velk´e mnoˇzstv´ı znak˚u, jako napˇr´ıklad ˇc´ınˇstina se zhruba pades´ati tis´ıci znaky.

2.7 Algoritmy pro vyhled´ av´ an´ı pojmenovan´ ych entit v textu

Obecnˇe je dataminingov´y algoritmus koneˇcn´a sada pravidel, kter´a ze vstupn´ıch dat vytvoˇr´ı statistick´y model. Tento model je d´ale vyuˇzit ke klasifikaci nezn´am´ych dat.

Pouˇzitelnost algoritmu z´avis´ı na povaze dataminingov´e ´ulohy – algoritmus vhodn´y pro jednu ´ulohu, nemus´ı b´yt vhodn´y pro jinou. Neexistuje tedy takov´y algoritmus, kter´y by byl pouˇziteln´y na vˇsechny typy ´uloh a z´aroveˇn vykazoval u vˇsech nejlepˇs´ı v´ysledky.

Pro rozpozn´av´an´ı pojmenovan´ych entit je vhodn´ych algoritm˚u v´ıce. Nejˇcastˇeji pouˇz´ıvan´e a ˇcasem ovˇeˇren´e jsou algoritmus podp˚urn´ych vektor˚u (Support Vector Ma- chines – SVM), Skryt´y Markov˚uv model (Hidden Markov Model – HMM) a podm´ınˇe- n´a n´ahodn´a pole (Conditional Random Fields – CRF). Tyto algoritmy jsem tak´e vyuˇzil pˇri realizaci vlastn´ı implementace n´astroje pro NER. Algoritmy jsem vybral na z´akladˇe v´ysledk˚u pr´ace ICDM, kter´a srovn´av´a nejpouˇz´ıvanˇejˇs´ı z´akladn´ı algoritmy dataminingu [7].

(20)

2.7.1 Support Vector Machines

Algoritmus podp˚urn´ych vektor˚u je relativnˇe nov´ym pˇr´ıstupem ke strojov´emu uˇcen´ı, kter´y umoˇzˇnuje ˇreˇsit probl´em rozdˇelen´ı do dvou tˇr´ıd (jedn´a se tedy o bin´arn´ı kla- sifik´ator). Podp˚urn´y vektor je reprezentant tr´enovac´ı sady, kter´y slouˇz´ı k vytvoˇren´ı rozhodovac´ı nadroviny, podle kter´e algoritmus rozdˇeluje vstupn´ı vektory do tˇr´ıd.

Tˇechto rozhodovac´ıch nadrovin m˚uˇzeme nal´ezt v´ıce neˇz jednu, proto je hled´an´ı roz- hodovac´ı roviny optimalizaˇcn´ı ´uloha, viz obr´azek 2.2. Podp˚urn´e vektory jsou pr´avˇe body, kter´e tuto rovinu popisuj´ı.

(a) Optim´aln´ı nadrovina (b) Neoptim´aln´ı nadrovina

Obr´azek 2.2: Hled´an´ı optim´aln´ı nadroviny v ´uloze SVM

Mˇejme sadu tr´enovac´ıch dat, kter´a jsou klasifikov´ana do dvou tˇr´ıd:

(x1, Y1) ... (xn, Yn), Yi ∈ -1, +1

kde xi ∈ Rnje vektor vlastnost´ı i-t´eho vzorku ze sady tr´enovac´ıch dat a Yije tˇr´ıda do kter´e xi n´aleˇz´ı. C´ılem algoritmu je nal´ezt rozhodovac´ı funkci, kter´a s dostateˇcnou pˇresnost´ı urˇc´ı tˇr´ıdu Y pro vstupn´ı vektor x. Neline´arn´ı SVM klasifik´ator pˇriˇrad´ı kaˇzd´emu vstupn´ımu vektoru xi rozhodovac´ı funkci f (x) = sign(g(x)), kde

g(x) =

m

X

i=1

wiK(x, si) + b

Pokud je pro vstupn´ı vektor x f (x) = 1, znamen´a to, ˇze x je prvkem tˇr´ıdy Y , pokud f (x) = −1, pak x nen´ı prvkem tˇr´ıdy Y . Symbol si oznaˇcuje podp˚urn´y vektor a m je poˇcet podp˚urn´ych vektor˚u. V´ypoˇcetn´ı sloˇzitost funkce g(x) je tedy pˇr´ımo

´

umˇern´a ˇc´ıslu m. K(x, si) je j´adro, kter´e mapuje vstupn´ı vektory do prostoru s vyˇsˇs´ı

(21)

dimenz´ı, neˇz je dimenze vektoru. Umoˇzˇnuje tak separovat line´arnˇe neseparovateln´a data transformac´ı ze vstupn´ıho prostoru (viz obr´azek 2.3 vlevo) do prostoru s vyˇsˇs´ı dimenz´ı, ve kter´em jsou data separovateln´a (viz obr´azek 2.3 vpravo).

Obr´azek 2.3: Transformace line´arnˇe neseparovateln´ych dat

J´adrov´ych funkc´ı pouˇz´ıvan´ych v SVM je nˇekolik. ˇCasto se pouˇz´ıvaj´ı j´adra, kter´a vyuˇz´ıvaj´ı skal´arn´ı souˇcin a jsou definov´ana pˇredpisem

K(x, si) = k(x· si)

Dalˇs´ı, m´enˇe uˇz´ıvan´e j´adro je napˇr´ıklad polynomick´e j´adro, definovan´e pˇredpisem K(x, si) = (1 + x)d

Promˇenn´a d je zad´av´ana uˇzivatelem. Volba j´adra a jeho implementace z´asadnˇe ovlivˇnuje v´ykonnost SVM algoritmu.

2.7.2 Hidden Markov Model

Skryt´y Markov˚uv model je statistick´a metoda, kter´a modeluje syst´em se skryt´ymi stavy. Ze syst´emu je tedy pozorovateli viditeln´y pouze jeho v´ystup. Vnitˇrn´ı stav syst´emu, kter´y je pozorovateli skryt´y, m´a na v´ystup pravdˇepodobnostn´ı vliv. Mate- matick´e z´aklady modelu vyvinul v roce 1966 Leonard E. Baum [8]. Mimo extrakci informace z textu a POS tagging je skryt´y Markov˚uv model vhodn´y tak´e pro roz- pozn´av´an´ı ˇreˇci, ruˇcnˇe psan´eho textu ˇci gest.

(22)

2.7.3 Conditional Random Fields

Metoda podm´ınˇen´ych n´ahodn´ych pol´ı je opˇet statistick´a modelovac´ı metoda. Na poli NLP je obl´ıben´a zejm´ena proto, ˇze na rozd´ıl od bˇeˇzn´ych klasifik´ator˚u dok´aˇze vz´ıt v potaz sousedn´ı vzorky klasifikovan´eho vzorku. V pˇr´ıpadˇe NER se tedy jedn´a o kon- text, ve kter´em je klasifikovan´e slovo zm´ınˇeno. Vyuˇzit´ı t´eto vlastnosti je n´azornˇe uk´az´ano v kapitole 2.3.1. ˇCast´e vyuˇzit´ı CRF je pr´avˇe v oblasti NLP, d´ale v ob- lasti poˇc´ıtaˇcov´eho vidˇen´ı (segmentace obrazu, rozpozn´an´ı objekt˚u) nebo vyhled´av´an´ı gen˚u.

Na CRF se lze d´ıvat jako na pravdˇepodobnostn´ı grafick´y model, kter´y zn´azorˇnuje zn´am´e z´avislostn´ı vztahy mezi jednotliv´ymi pozorov´an´ımi [9], nebo jako na Marko- vova n´ahodn´a pole [10]. Tento model je z´avisl´y na n´ahodn´e promˇenn´e X, kter´a pˇredstavuje posloupnost pozorov´an´ı. Uvaˇzujeme neorientovan´y graf

G = (V, E), kde {v ∈ V } jsou vrcholy grafu G a {e ∈ E} jsou jeho hrany.

Kaˇzd´y vrchol v pˇredstavuje jednu z n´ahodn´ych promˇenn´ych yv ∈ Y . Pokud kaˇzd´a promˇenn´a yv zachov´a Markovovu vlastnost vzhledem ke grafu G, pak (Y, X) je podm´ınˇen´e n´ahodn´e pole. Struktura grafu G m˚uˇze b´yt teoreticky libovoln´a. V praxi se vˇsak pˇri modelov´an´ı posloupnost´ı nejˇcastˇeji vyuˇz´ıv´a takov´e struktury, ve kter´e vrcholy v pˇredstavuj´ıc´ı prvky Y , tvoˇr´ı jednoduch´y ˇretˇez prvn´ıho ˇr´adu. Toto seˇrazen´ı je ilustrov´ano na obr´azku 2.4 – vyˇsrafovan´e promˇenn´e jsou generov´any modelem, b´ıl´e nejsou. Obr´azek je pˇrevzat z [10].

Obr´azek 2.4: Grafick´e zn´azornˇen´ı podm´ınˇen´ych n´ahodn´ych pol´ı s ˇretˇezovou struk- turou.

(23)

3 N´ astroje pro vyhled´ av´ an´ı pojmenovan´ ych entit v textu

N´astroj˚u pro NER existuje cel´a ˇrada. N´ıˇze jsou uvedeny nˇekter´e z nejzn´amˇejˇs´ıch, kter´e jsou dostupn´e veˇrejnosti zdarma pro vˇedeck´e ´uˇcely [11]. Tyto n´astroje se liˇs´ı v mnoha ohledech:

ˆ Metody, kter´ymi n´astroje pracuj´ı – slovn´ıkov´e, automatick´e se strojov´ym uˇce- n´ım nebo hybridn´ı, kter´e kombinuj´ı slovn´ıkov´e a statistick´e metody.

ˆ Tˇr´ıdy entit, kter´e n´astroj vyhled´av´a a rozpozn´av´a.

ˆ Dom´enov´y rozsah – nˇekter´e mohou b´yt obecn´e a aplikovateln´e na jak´ykoliv text, jin´e naopak specificky zamˇeˇren´e na konkr´etn´ı dom´enu.

ˆ Implementace – nˇekter´e se pouˇz´ıvaj´ı ve formˇe knihovny nebo plugin˚u, jin´e jako webov´e sluˇzby atd.

ˆ V´ystup – jelikoˇz neexistuje standard pro zad´av´an´ı pojmenovan´ych entit, i v´y- stupy n´astroj˚u se liˇs´ı. Vˇetˇsinou je v´ystup ve formˇe objekt˚u nebo textov´ych soubor˚u.

Aˇckoliv se mohou n´astroje pro NER v mnoh´em liˇsit, jedno maj´ı spoleˇcn´e – pouˇzit´y slovn´ık, tr´enovac´ı sada a dataminingov´y algoritmus maj´ı z´asadn´ı vliv na v´ykon a efektivitu n´astroje.

V n´asleduj´ıc´ı podkapitole jsou struˇcnˇe charakterizov´any nejpouˇz´ıvanˇejˇs´ı n´astroje.

Rozdˇelen´ı na cizojazyˇcn´e a ˇcesk´e n´astroje je myˇsleno z pohledu vstupn´ıho textu, se kter´ym n´astroj pracuje. Obecnˇe lze n´astroj pouˇz´ıt i na jin´y jazyk. Jeho ´uspˇeˇsnost pak z´avis´ı na m´ıˇre zamˇeˇren´ı n´astroje na konkr´etn´ı jazyk. Pokud budou jazyky z´asadnˇe

(24)

odliˇsn´e, n´astroj pravdˇepodobnˇe nebude vykazovat takov´e v´ysledky jako pro jazyk, na kter´y je uzp˚usoben.

3.1 Cizojazyˇ cn´ e n´ astroje

Stanford NER (SNER)

SNER1 je n´astroj pro rozpozn´av´an´ı pojmenovan´ych entit implementovan´y v jazyce Java a zamˇeˇren´y pˇredevˇs´ım na rozpozn´an´ı tˇr´ı tˇr´ıd – osoby, organizace a lokality.

V z´akladn´ı verzi obsahuje modely pro anglick´y jazyk, ale je moˇzn´e v programu naˇc´ıst vlastn´ı model a nad n´ım pak prov´adˇet NER. Tento syst´em vyuˇz´ıv´a metodu CRF, kter´a na rozd´ıl od bˇeˇzn´ych klasifik´ator˚u dok´aˇze vz´ıt v potaz ˇsirˇs´ı kontext a ne- rozhodovat pouze na z´akladˇe jednoho, v dan´y moment klasifikovan´eho vzorku.

Illinois Named Entity Tagger (INET)

INET2 je vydav´an jako samostatn´y program, kter´y je zaloˇzen na nˇekolika metod´ach strojov´eho uˇcen´ı: skryt´e Markovovy modely, v´ıcevrstevn´e neuronov´e s´ıtˇe a jin´e sta- tistick´e metody. V p˚uvodn´ı verzi rozpozn´aval ˇctyˇri tˇr´ıdy pojmenovan´ych entit, ve st´avaj´ıc´ı verzi uˇz dok´aˇze rozliˇsit osmn´act tˇr´ıd entit. Pˇri pr´aci mimo jin´e vyuˇz´ıv´a slovn´ıky sestaven´e z hesel z wikipedie.

Alias-i LingPipe (LIPI)

LIPI3 je robustn´ı n´astroj, kter´y se pouˇz´ıv´a nejen pro NER, ale i jin´e ´ulohy na zpra- cov´an´ı textu a extrakci informace (napˇr´ıklad automatick´a oprava pˇreklep˚u). Pro NER vyuˇz´ıv´a metodu HMM.

OpenCalais Web Service (OCWS)

OCWS4 je n´astroj v podobˇe webov´e sluˇzby. Metody rozhran´ı OCWS je moˇzn´e volat nˇekolika protokoly: SOAP, REST a HTTP. Podobnˇe jako u LIPI se jedn´a o robustn´ı

1http://www-nlp.stanford.edu/software/CRF-NER.shtml

2http://cogcomp.cs.illinois.edu/page/software view/NETagger

3http://alias-i.com/lingpipe

4http://www.opencalais.com/documentation/calais-web-service-api

(25)

n´astroj s ˇsirˇs´ım zamˇeˇren´ım, kter´y vyhled´av´a nejen entity, ale tak´e napˇr´ıklad fakta a ud´alosti. V´ysledky pak dok´aˇze mapovat na hesla na wikipedii. OCWS podporuje angliˇctinu, francouzˇstinu a ˇspanˇelˇstinu.

General Architecture for Text Engineering (GATE)

GATE5 je software, kter´y se zab´yv´a zpracov´an´ım textu velmi zeˇsiroka. Na jeho v´yvoji, kter´y prob´ıh´a od roku 1995, pracuje rozs´ahl´a komunita v´yvoj´aˇr˚u i uˇzivatel˚u po cel´em svˇetˇe. Cel´a architektura je rozdˇelena na nˇekolik produkt˚u podle zamˇeˇren´ı a uˇzit´ı. Jsou jimi:

ˆ GATE Developer – integrovan´e v´yvojov´e prostˇred´ı urˇcen´e ke zpracov´an´ı jazyka a textu spolu se syst´emem pro extrakci informace a sadou plugin˚u (tyto pluginy m˚uˇze vyv´ıjet s´am uˇzivatel). Cel´e toto prostˇred´ı je zamˇeˇren´e na angliˇctinu.

ˆ GATE Embedded – objektov´a knihovna urˇcen´a pro import a pouˇzit´ı v jin´ych aplikac´ıch a programech. Umoˇzˇnuje pˇr´ıstup ke vˇsem sluˇzb´am GATE Develo- per.

ˆ GATE Teamware – urˇceno pro rozs´ahl´e komerˇcn´ı projekty.

ˆ M´ımir (Multi-paradigm Information Management Index and Repository) – n´astroj, kter´y umoˇzˇnuje fulltextov´e vyhled´av´an´ı a anotaci dat a je pouˇziteln´y na rozs´ahl´e textov´e korpusy (aˇz TB textu).

3.2 Cesk´ ˇ e n´ astroje

Common Part-of-speech Tagger (COMPOST)

COMPOST6 je program pro vyhled´av´an´ı entit v ˇcesk´em a anglick´em jazyce, ho- landˇstinˇe a islandˇstinˇe. Je psan´y pouze pro operaˇcn´ı syst´em linux a vyv´ıjen´y na fakultˇe matematiky a fyziky Univerzity Karlovy v Praze. Nem´a grafick´e uˇzivatelsk´e rozhran´ı – spouˇst´ı se pouze z pˇr´ıkazov´eho ˇr´adku. Pojmenovan´e entity vyhled´av´a kombinov´an´ım metod strojov´eho uˇcen´ı s uˇcitelem a bez uˇcitele.

5https://gate.ac.uk

6http://ufal.mff.cuni.cz/compost

(26)

MorphoDiTa

MorphoDiTa7 (Morphological Dictionary and Tagger) je v´ıce´uˇcelov´y lingvistick´y n´astroj vydan´y pod licenc´ı LGPL, kter´y vznikl na Univerzitˇe Karlovˇe v Praze. Ne- jedn´a se pˇr´ımo o n´astroj pro NER, ale umoˇzˇnuje prov´adˇet tokenizaci, morfologickou anal´yzu a obsahuje tak´e lingvistick´e modely. N´astroj MorphoDiTa lze pouˇz´ıt jak samostatnˇe, tak jako knihovnu pro jazyk Java. V pr´aci jsem jej vyuˇzil pro z´ısk´an´ı morfologick´ych znaˇcek z textu.

Treex

Treex8 (form´alnˇe TectoMT) je modul´arn´ı n´astroj pro NLP implementovan´y v ja- zyce Python, kter´y tak´e vznik´a na Univerzitˇe Karlovˇe v Praze. Jeho silnou str´ankou je vysok´a modularizace, d´ıky kter´e je snadn´e jej zaˇclenit do vlastn´ıho projektu a d´ale rozv´ıjet. Skl´ad´a se z takzvan´ych blok˚u, kter´e maj´ı jednotn´e, objektovˇe orientovan´e rozhran´ı a usnadˇnuj´ı tak vz´ajemnou interakci. Treex je tak´e moˇzn´e vyzkouˇset pˇres webov´e rozhran´ı.

7http://ufal.mff.cuni.cz/morphodita

8http://ufal.mff.cuni.cz/treex

(27)

Tabulka3.1:Srovn´an´ıvybran´ychn´astroj˚uproNER N´astrojSA1 WS2 LIB3 AlgoritmusJazyk4 LicenceImplementaceV´yvoj5 SNER•◦•CRFEN,DE,ES,ZHGNUGPLJava2006-2015 INET•◦◦HMMENzdarmapro vˇedeck´e´uˇcelyJava2013-2015 LIPI◦◦•HMMEN,NL,HI,ES, DE,FR,ZH,ARzdarmapodAGPLJava2003-2011 OCWS◦•◦—EN,FR,ESzdarmaprokomerˇcn´ıa nekomerˇcn´ıuˇzit´ı—2008-2014 GATE•◦•FSAENGNULGPJava2003-2014 LIBSVM◦◦•SVM—zdarmase zachov´an´ımlicenceC++,Java2000-2014 ApacheUIMA◦◦•HMM,BSFENapacheC++,Java2006-2015 LingvoNER◦◦•Slovn´ık.metodyCZGNUGPLJava2010-2013 1StandAloneastrojlzepouˇz´ıtjakosamostatnˇebˇeˇz´ıc´ıprogram. 2 WebServiceastrojjeposkytoanjakoweboasluˇzba. 3 Libraryn´astrojjeposkytoanjakoknihovna,kteroulzevloˇzitdovlastn´ıhoprogramu. 4 Myˇslenjejazyk,vekter´emastrojvyhled´av´aentity. 5 Uvedenyjsourokyvyd´an´ıprvn´ıanejnovˇejˇs´ıverzeastroje.

(28)

4 N´ avrh a implementace n´ astroje pro NER

Vlastn´ı implementaci jsem navrhl tak, aby vyuˇz´ıvala moˇznost´ı v´ıce dataminingov´ych algoritm˚u z´aroveˇn a kombinovala jejich siln´e str´anky. Ve vznikl´em n´astroji jsou pouˇzity dataminingov´e algoritmy SVM, HMM, CRF (viz kapitolu 2.7) a slovn´ıkov´a metoda pro vyhled´av´an´ı pojmenovan´ych entit. Z pohledu metodiky pr´ace se tedy jedn´a o hybridn´ı n´astroj. Algoritmy HMM, CRF a SVM jsou prov´adˇeny extern´ımi n´astroji LIPI, SNER a LIBSVM (viz tabulku 3.1). D´ale jsem implementoval slo- vn´ıkovou metodu, kter´a je souˇc´ast´ı v´ysledn´eho programu. Program jsem pracovnˇe nazval MANER (Multiple Algorithm Named Entity Recognizer). Pˇri psan´ı programu jsem se inspiroval knihou Umˇen´ı programov´an´ı [12], kter´a je dobr´ym zdrojem n´avod˚u a pˇr´ıklad˚u programov´an´ı sloˇzitˇejˇs´ıch datov´ych struktur a matematick´ych v´ypoˇct˚u.

4.1 Popis navrˇ zen´ e implementace

Navrˇzen´a implementace, zn´azornˇen´a na obr´azku 4.1, pracuje ve dvou z´akladn´ıch f´az´ıch – f´aze uˇcen´ı a f´aze rozpozn´av´an´ı.

4.1.1 F´ aze uˇ cen´ı

V t´eto f´azi je stroji poskytnuta tr´enovac´ı sada, na kter´e se jednotliv´e ˇc´asti n´astroje nauˇc´ı rozpozn´avat pojmenovan´e entity. Protoˇze jednotliv´e n´astroje nepracuj´ı se stejn´ymi vstupn´ımi daty, je potˇreba tr´enovac´ı data vˇzdy pˇrev´est do form´atu sro- zumiteln´eho pro dan´y n´astroj. Kaˇzd´y ze tˇr´ı n´astroj˚u si na z´akladˇe tr´enovac´ıch dat vytvoˇr´ı vlastn´ı model. Pomoc´ı tohoto modelu pak rozpozn´av´a pojmenovan´e entity ve druh´e f´azi (rozpozn´av´an´ı). Tuto ˇcinnost staˇc´ı prov´est pouze jednou, kdyˇz je potˇreba n´astroj nauˇcit rozpozn´avat entity nad jinou dom´enou.

(29)

Obr´azek 4.1: N´avrh implementace n´astroje pro NER

4.1.2 F´ aze rozpozn´ av´ an´ı

V t´eto f´azi jsou jiˇz n´astroje natr´enov´any a pˇripraveny rozpozn´avat pojmenovan´e entity ve vstupn´ım textu. Rozpozn´av´an´ı prob´ıh´a ve dvou kroc´ıch:

Krok 1 – vyhled´an´ı entit

V tomto kroku vˇsechny ˇctyˇri n´astroje provedou sv´e vyhled´av´an´ı (provede se tedy tˇrikr´at statistick´a metoda a jednou slovn´ıkov´a metoda). V´ystupem jsou ˇctyˇri se- znamy pojmenovan´ych entit.

(30)

Krok 2 – slouˇcen´ı v´ysledk˚u

Ctyˇri seznamy nalezen´ˇ ych entit z pˇredeˇsl´eho kroku jsou nyn´ı slouˇceny do jednoho.

Slouˇcen´ı se ˇr´ıd´ı pˇredeˇsl´ym ´uspˇechem jednotliv´ych n´astroj˚u ve vyhled´av´an´ı entit.

Kaˇzd´emu n´astroji je podle jeho pˇresnosti pˇridˇelena v´aha (ˇc´ıslo v intervalu <0; 1>).

Na z´akladˇe tˇechto vah se urˇc´ı nejpravdˇepodobnˇejˇs´ı kandid´ati na spr´avnˇe nalezen´e pojmenovan´e entity. Vznikl´y seznam (ve formˇe oznaˇckovan´eho vstupn´ıho dokumentu s nalezen´ymi pojmenovan´ymi entitami) je v´ystupem tohoto kroku a cel´eho n´astroje.

4.2 Pouˇ zit´ y datov´ y korpus

K demonstraci ´ulohy byl vybr´an korpus dat z´ıskan´y ze str´anek ˇCSFD ( ˇCesko- Slovensk´a Filmov´a Datab´aze). Data byla z´ısk´ana postupn´ym parsov´an´ım ˇzebˇr´ıˇck˚u film˚u, amat´ersk´ych film˚u, TV poˇrad˚u a seri´al˚u. Vˇsechny filmy poch´az´ı z ˇcesk´e pro- dukce. Pro parsov´an´ı dat jsem v jazyce Java implementoval parser, kter´y vyuˇz´ıv´a knihovnu jsoup1 k parsov´an´ı HTML a manipulaci s DOM. V´ysledn´y korpus ve form´atu XML obsahuje n´azev filmu, url adresu filmu, rok vzniku, hodnocen´ı, po- pis z´apletky, v´ypis lid´ı, kteˇr´ı se pod´ıleli na vzniku filmu spolu s odkazy na jejich profily, v´yˇcet vˇsech koment´aˇr˚u k filmu spolu s udˇelen´ym hodnocen´ım, jm´enem ko- ment´atora a odkazem na jeho profil. Datov´a struktura dokumentu je zn´azornˇena na obr´azku 4.2. Datov´y korpus a zdrojov´e k´ody parseru jsou obsaˇzeny na pˇriloˇzen´em CD. Tabulka 4.1 obsahuje ´udaje o staˇzen´ych datech.

1http://jsoup.org; intuitivn´ı API pro pr´aci s HTML dokumenty, kter´e vyuˇz´ıv´a podobnou ano- taci jako CSS a JS.

(31)

Obr´azek 4.2: Struktura staˇzen´ych dat Tabulka 4.1: ´Udaje o staˇzen´ych datech

Poˇcet vˇet 757 487 Poˇcet film˚u 3 571 Poˇcet koment´aˇr˚u 227 893 Poˇcet koment´ator˚u (unik´atn´ı) 19850

Poˇcet akt´er˚u (unik´atn´ı) 9710

N´astroj MANER lze pro stahov´an´ı dat o filmech pouˇz´ıt n´asleduj´ıc´ım zp˚usobem:

java -jar maner.jar -download [yearFrom] [yearTo] [movieType]

Tyto tˇri argumenty slouˇz´ı k filtrov´an´ı film˚u, o kter´ych se budou data stahovat.

Argumenty yearFrom a yearTo omezuj´ı filmy rokem vzniku. Argument movieType omezuje filmy typem.

(32)

Povolen´e hodnoty tohoto argumentu jsou:

0 – filmy 1 – video filmy 2 – TV filmy 3 – TV seri´aly 4 – TV poˇrady 7 – studentsk´e filmy 8 – amat´ersk´e filmy

V´ysledek stahov´an´ı je uloˇzen do XML souboru s n´asleduj´ıc´ı cestou:

./files/dumps/list-[movieType]-1-from-[yearFrom]-to-[yearTo].xml

Stahov´an´ı dat je omezen´e na deset poˇzadavk˚u za minutu. Pˇredejde se tak vy- sok´emu mnoˇzstv´ı poˇzadavk˚u na server, moˇzn´emu podezˇren´ı na DoS2 utok a n´´ asle- dn´emu zablokov´an´ı IP adresy.

Staˇzen´a data jsou d´ale pouˇzita k vytvoˇren´ı testovac´ı a tr´enovac´ı sady a slovn´ıku.

Metody kter´e jsou k tomu pouˇzity ˇctou data vˇzdy pouze z jednoho souboru, a proto n´astroj umoˇzˇnuje spojit nˇekolik XML soubor˚u do jednoho pomoc´ı pˇr´ıkazu:

java -jar maner.jar -merge [directoryWithXMLFiles] [outputFile]

Data lze z XML form´atu do textov´e podoby bez znaˇcek pˇrev´est pˇr´ıkazem:

java -jar maner.jar -convert [inputXMLFile] [outputDirectory]

2Denial of Service

(33)

4.3 Pouˇ zit´ e znaˇ cen´ı pojmenovan´ ych entit

Jako standard pro oznaˇcov´an´ı pojmenovan´ych entit ve v´ystupn´ım textu jsem pouˇzil konvence podobn´e CNEC. Tedy nalezen´e entity jsou vyznaˇceny ve formˇe:

Hrdiny filmu <PERS Petera Kerekese> jsou vojenˇst´ı kuchaˇri z r˚uzn´ych kout˚u

<LOC Evropy>.

Znaˇcen´ı ve slovn´ıku a v tr´enovac´ı a testovac´ı sadˇe je odliˇsn´e od znaˇcen´ı ve v´ystupn´ım souboru, a to zejm´ena kv˚uli odliˇsn´e struktuˇre soubor˚u. Na rozd´ıl od v´ystupn´ıho souboru, kter´y je ve formˇe souvisl´eho textu, jsou tr´enovac´ı a testovac´ı sada a slovn´ık vˇzdy ve formˇe jednoho hesla na ˇr´adek. A proto jsou ve tvaru:

Hrdiny O

filmu O

Petra PERS

Kerekese PERS

Vˇsechny druhy entit, kter´e n´astroj MANER vyhled´av´a, jsou spolu s jejich ozna- ˇcen´ım shrnuty v tabulce 4.2. Ke klasicky vyhled´avan´ym entit´am jsem nav´ıc pˇridal entity specifick´e pro vybranou dom´enu dat. Jedn´a se o n´azev filmu a pˇrezd´ıvky (zejm´ena pˇrezd´ıvky komentuj´ıc´ıch, tedy jm´ena uˇzivatel˚u ˇCSFD).

Tabulka 4.2: Znaˇcen´ı druh˚u vyhled´avan´ych entit

Druh entity Oznaˇcen´ı (SNER, LIPI) Oznaˇcen´ı (SVM)

Osoba PERS 1

Lokalita LOC 2

Casov´ˇ y ´udaj TIME 4

N´azev organizace ORG 6

N´azev filmu MOV 7

Pˇrezd´ıvka NICK 3

Slovo, kter´e nen´ı entitou O 0

(34)

4.4 Tvorba slovn´ıku z dat z ˇ CSFD

Pro vytvoˇren´ı slovn´ıku ze staˇzen´ych dat pouˇzijeme pˇr´ıkaz:

java -jar maner.jar -dctbuild [inputXMLFile] [outputDictionary]

Argument inputXMLFile je soubor, kter´y vznikl po vykon´an´ı pˇr´ıkazu download nebo merge (kapitola 4.2). Ve v´ysledn´em slovn´ıku jsou obsaˇzena vˇsechna jm´ena film˚u, herc˚u, tv˚urc˚u film˚u a uˇzivatel˚u, kter´a byla k nalezen´ı ve vstupn´ım souboru. Tato jsou oznaˇcena pˇr´ısluˇsn´ym druhem entity a to stylem popsan´ym v kapitole 4.3.

4.5 Pˇ r´ıprava tr´ enovac´ı a testovac´ı sady

Knihovny SNER a LIPI vyuˇz´ıvaj´ı podobn´y vstupn´ı form´at tr´enovac´ı a testovac´ı sady: [token][tabul´ator][tˇr´ıda entity pˇr´ısluˇsej´ıc´ı tokenu]. Liˇs´ı se pouze v pojmenov´an´ı druh˚u entit. Ve form´atu pro LIPI je rozliˇseno, zda se jedn´a o zaˇc´atek (prefix B-) pojmenovan´e entity nebo pokraˇcov´an´ı v´ıcetokenov´e entity, kter´a zaˇcala na nˇekter´em z pˇredchoz´ıch ˇr´adk˚u (prefix I-). Pro pˇreveden´ı tr´enovac´ı sady n´astroje SNER na tr´enovac´ı sadu pro n´astroj LIPI slouˇz´ı pˇr´ıkaz:

java -jar maner.jar -lipiconvert [pathToSNERTrainFile] [outputFile]

Algoritmus prov´adˇej´ıc´ı konverzi vych´az´ı z pˇredpokladu, ˇze mezi dvˇema enti- tami je alespoˇn jedno slovo nebo znak, kter´e nen´ı entitou. Tedy kaˇzdou entitu, jeˇz n´asleduje bezprostˇrednˇe za jinou entitou a m´a stejnou tˇr´ıdu, oznaˇc´ı jako po- kraˇcov´an´ı pˇredchoz´ı entity. Tento pˇr´ıstup je do jist´e m´ıry naivn´ı, ale poruˇsen´ı tohoto pˇredpokladu nastane tak ojedinˇele (napˇr´ıklad v tr´enovac´ı a testovac´ı sadˇe nenastalo), ˇze je moˇzn´e jej pouˇz´ıt, aniˇz by t´ım utrpˇela n´asledn´a pˇresnost vytvoˇren´eho uˇc´ıc´ıho modelu. Pro zjednoduˇsen´ı jsem pro tr´enov´an´ı SVM algoritmu pouˇzil stejn´y form´at jako je form´at SNER, kter´y je pˇred spuˇstˇen´ım programu pˇreveden na vektory.

Obˇe sady byly vytvoˇreny z dat staˇzen´ych z ˇCSFD. Ze vˇsech koment´aˇr˚u a z´apletek jsem n´ahodnˇe vybral tˇri tis´ıce vˇet na tr´enovac´ı sadu a 600 vˇet na testovac´ı sadu,

(35)

rovnomˇernˇe vˇzdy polovinu vˇet ze z´apletek a polovinu z koment´aˇr˚u. Vybran´y text jsem proˇsel a ke kaˇzd´emu tokenu pˇriˇradil odpov´ıdaj´ıc´ı druh entity. Takto oznaˇcen´ym dat˚um se ˇr´ık´a golden data (zlat´a data), nebot’ se vych´az´ı z pˇredpokladu, ˇze jsou spr´avn´a a stroj se z nich m˚uˇze uˇcit. Tvorba obs´ahlejˇs´ı sady je velmi zdlouhav´a ˇcinnost a projevuje se to na vysok´e hodnotˇe takto anotovan´ych dat. Vznikl´a tr´enovac´ı sada je povaˇzov´ana za malou (ve srovn´an´ı napˇr´ıklad s tr´enovac´ı sadou CNEC, kter´a obsahuje 9000 vˇet).

4.5.1 Automatick´ e rozˇ siˇ rov´ an´ı tr´ enovac´ı sady

Aby se pˇri rozpozn´av´an´ı pojmenovan´ych entit dos´ahlo co nejlepˇs´ıch v´ysledk˚u, vyuˇzil jsem automatick´e rozˇs´ıˇren´ı tr´enovac´ı sady. Protoˇze manu´aln´ı oznaˇcov´an´ı entit je ˇcasovˇe n´aroˇcn´a ˇcinnost, je moˇzn´e tr´enovac´ı sadu rozˇs´ıˇrit automaticky. Obecnˇe se v dataminingu vyuˇz´ıv´a v´ıce pˇr´ıstup˚u (napˇr´ıklad generov´an´ı virtu´aln´ıch pˇr´ıklad˚u na z´akladˇe zn´am´ych dat). U t´eto konkr´etn´ı ´ulohy je vhodn´e k rozˇs´ıˇren´ı sady pouˇz´ıt vznikl´y slovn´ık entit. Tr´enovac´ı sadu jsem tedy rozˇs´ıˇril o slovn´ık vˇsech jmen a pˇre- zd´ıvek staˇzen´ych z ˇCSFD.

4.5.2 Tr´ enovac´ı data pro n´ astroj LIBSVM

Tr´enovac´ı sada pro n´astroj LIBSVM je z´asadnˇe odliˇsn´a od tr´enovac´ıch sad dvou pˇredchoz´ıch n´astroj˚u. Je to zp˚usobeno pˇredevˇs´ım podstatou algoritmu SVM. Pˇred tr´enov´an´ım n´astroje je potˇreba kaˇzd´y token pˇrev´est na vektor. Kaˇzd´a poloˇzka tohoto vektoru urˇcit´ym zp˚usobem charakterizuje dan´y token. Poloˇzky vektoru jsem sestavil z morfologick´ych znaˇcek ke kter´ym jsem nav´ıc pˇridal vlastn´ı charakteristiky popsan´e n´ıˇze.

Morfologick´e znaˇcky

Pro charakterizaci tokenu jsem vyuˇzil morfologick´e znaˇcky. Morfologick´a znaˇcka je ˇretˇezec, kter´y vznikne jako v´ystup morfologick´e anal´yzy. Kaˇzd´y jeho znak pˇredstavuje jednu morfologickou kategorii.

(36)

Napˇr´ıklad znaˇcka Praha: NNFS1---A----

nese o slovˇe Praha informaci, kter´a je pops´ana v tabulce 4.3.

Tabulka 4.3: V´yznam morfologick´ych znaˇcek pro slovo Praha pozice znak v´yznam

1 N podstatn´e jm´eno 2 N obyˇcejn´e substantivum 3 F ˇzensk´eho rodu

4 S jednotn´eho ˇc´ısla 5 1 v prvn´ım p´adˇe

11 A afirmativ, tedy slovo je bez negativn´ı pˇredpony ne

Pokud je na nˇekter´e pozici pomlˇcka, znamen´a to, ˇze tato hodnota u dan´eho slova ned´av´a smysl (napˇr´ıklad znaˇcka na des´at´e pozici urˇcuje stupeˇn). Kompletn´ı dokumentaci s popisem kaˇzd´e znaˇcky a jej´ıch moˇzn´ych hodnot lze nal´ezt v [13]. Pro z´ısk´an´ı morfologick´ych znaˇcek k dan´emu tokenu jsem pouˇzil n´astroj MorphoDiTa.

Struktura vstupn´ıch vektor˚u

Vektory v tr´enovac´ı sadˇe maj´ı celkem dvacet poloˇzek. Prvn´ı poloˇzka pˇredstavuje tˇr´ıdu entity dan´eho tokenu. Jedn´a se o ˇc´ıslo v rozsahu nula aˇz sedm. Nula je vy- hrazena pro slova, kter´a nejsou pojmenovan´ymi entitami a ostatn´ı ˇc´ısla pˇredstavuj´ı jednotliv´e tˇr´ıdy pojmenovan´ych entit (viz tabulku 4.2). Dalˇs´ıch patn´act poloˇzek vek- toru pˇredstavuje morfologick´e znaˇcky dan´eho tokenu. Poloˇzky na pozici 17, 18, 19 a 20 nab´yvaj´ı pouze hodnot jedna a nula, a uchov´avaj´ı tyto informace:

pozice 17 – zda je dan´y token delˇs´ı neˇz dva znaky pozice 18 – zda dan´y token zaˇc´ın´a velk´ym p´ısmenem pozice 19 – zda je dan´y token cel´y velk´ymi p´ısmeny pozice 20 – zda je dan´y token na zaˇc´atku vˇety

(37)

Pˇrevod tr´enovac´ı sady do form´atu SVM

Pro pˇrevod tr´enovac´ı sady slouˇz´ı pˇr´ıkaz:

java -jar maner.jar -svmconvert [inputFile] [outputFile]

Vstupn´ı soubor mus´ı b´yt ve form´atu tr´enovac´ı sady pro n´astroj SNER (tedy vˇzdy [token] [tˇr´ıda] na jednom ˇr´adku). V´ystupn´ı soubor je pak ve form´atu jednoho podp˚ur- n´eho vektoru na ˇr´adek.

Tedy pro Praha : NNFS1---A---- bude v´ystupem:

2 1:6 2:37 3:1 4:3 5:1 11:1 16:1 17:1 18:0 19:1

V´yznam jednotliv´ych ˇc´ısel je uveden v´yˇse. Je d˚uleˇzit´e podotknout, ˇze prvn´ı ˇc´ıslo ud´av´a tˇr´ıdu pojmenovan´ych entit (2 = LOC ) do kter´e vektor n´aleˇz´ı a je uvedeno samostatnˇe. Vˇsechna ostatn´ı jsou po dvojici a to ve formˇe: [pozice poloˇzky]:[hodnota poloˇzky]. Poloˇzky kter´e nejsou urˇcen´e (v morfologick´e znaˇcce maj´ı pomlˇcku) se ve vektoru v˚ubec neobjev´ı.

4.5.3 Ruˇ cn´ı anotace dat

Pro zjednoduˇsen´ı ruˇcn´ı anotace dat n´astroj MANER implementuje n´asleduj´ıc´ı po- stup:

1. lemmatizace libovolnˇe velk´eho souboru s textem – data jsou pˇrevedena do podoby jedna vˇeta na ˇr´adek,

2. n´ahodn´y v´ybˇer zadan´eho poˇctu vˇet,

3. tokenizace – data jsou pˇrevedena do podoby jeden token na ˇr´adek,

4. pˇriˇrazen´ı v´ychoz´ı tˇr´ıdy entity kaˇzd´emu tokenu – data jsou pˇrevedena do podoby [token][tabul´ator][v´ychoz´ı tˇr´ıda entity].

(38)

Pro proveden´ı dan´e sekvence operac´ı slouˇz´ı pˇr´ıkazy:

java -jar maner.jar -lemmatize [inputFile]

java -jar maner.jar -limitlemmas [inputFile] [n]

java -jar maner.jar -tokenize [inputFile]

java -jar maner.jar -defaultclass [inputFile] [defaultClass]

Kaˇzd´y pˇr´ıkaz vytv´aˇr´ı nov´y soubor (se stejnou cestou jako vstupn´ı soubor, pouze mu pˇrid´a novou koncovku), kter´y pˇrej´ım´a n´asleduj´ıc´ı pˇr´ıkaz. Po vykon´an´ı t´eto sek- vence je potˇreba proj´ıt cel´y v´ysledn´y soubor a kaˇzd´e entitˇe pˇriˇradit jej´ı odpov´ıdaj´ıc´ı tˇr´ıdu. V´ystupem tohoto kroku jsou jiˇz v´yˇse zm´ınˇen´a golden data. V tabulce 4.4 jsou uvedeny ´udaje o ruˇcnˇe oznaˇcen´ych datech. Je patrn´e a oˇcek´avateln´e, ˇze vˇetˇsina slov nejsou pojmenovan´e entity. Pomˇer rozdˇelen´ı jednotliv´ych tˇr´ıd je na n´ahodnˇe vybran´ych datech velmi podobn´y v tr´enovac´ı i testovac´ı sadˇe. V tabulce je tak´e uvedeno, jak se zmˇenila tr´enovac´ı sada po automatick´em rozˇs´ıˇren´ı.

Tabulka 4.4: ´Udaje o tr´enovac´ı a testovac´ı sadˇe

Tr´enovac´ı sada Testovac´ı sada Rozˇs´ıˇren´a tr. sada

Poˇcet vˇet 3 000 600 12 000

Poˇcet slov 49 768 9 861 208 962

Poˇcet jmen (PERS) 1 904 340 22 134

Poˇcet lokalit (LOC) 519 66 519

Poˇcet n´azv˚u film˚u (MOV) 340 60 10 481 Poˇcet ˇcas. ´udaj˚u (TIME) 148 31 14 432

Poˇcet organizac´ı (ORG) 136 38 136

Poˇcet pˇrezd´ıvek (NICK) 59 10 28 695

Poˇcet ne-entit (O) 46 609 9 304 132 647

Procento entit 6,35 % 5,65 % 36,5 %

(39)

4.6 Tr´ enov´ an´ı NER n´ astroj˚ u

Po vytvoˇren´ı tr´enovac´ıch sad je moˇzn´e je pouˇz´ıt k tr´enov´an´ı jednotliv´ych n´astroj˚u.

Pˇr´ıkazy pro tr´enov´an´ı jsou:

java -jar maner.jar -svmtrain [inputFile] [outputFile]

java -jar maner.jar -lipitrain [inputFile] [outputFile]

java -jar maner.jar -snertrain [propertiesFile]

U n´astroj˚u LIBSVM a LIPI je rozhran´ı stejn´e. Argument inputFile je cesta ke vstupn´ı tr´enovac´ı sadˇe v pˇr´ısluˇsn´em form´atu a argument outputFile je cesta, kam se uloˇz´ı natr´enovan´y model. U tr´enov´an´ı n´astroje SNER je rozhran´ı odliˇsn´e. Jedin´y ar- gument propertiesFile je cesta k souboru s nastaven´ım tr´enovac´ıho n´astroje. Tento soubor mimo jin´e obsahuje i nastaven´ı vstupn´ıho a v´ystupn´ıho souboru. Pˇr´ıklad takov´eho souboru lze nal´ezt na pˇriloˇzen´em CD. Cesta k souboru je:

./MANER/files/SNER/csfdner.prop.

Tr´enovac´ı sada pro n´astroj SVMLIB mus´ı b´yt nejprve pˇrevedena do form´atu vek- tor˚u (viz kapitolu 4.5.2). Co se t´yˇce doby tr´enov´an´ı n´astroj˚u, jsou zde z´asadn´ı rozd´ıly.

N´astroj LIBSVM se na tr´enovac´ı sadˇe uˇcil nejkratˇs´ı dobu (necel´ych 7 sekund), n´astroj SNER se uˇcil 27 sekund a n´astroji SNER vytv´aˇren´ı modelu zabralo dokonce 9,5 minuty. Uveden´e hodnoty byly namˇeˇreny na poˇc´ıtaˇci s konfigurac´ı uvedenou v tabulce 4.5. Na stejn´em poˇc´ıtaˇci byly prov´adˇeny i veˇsker´a dalˇs´ı testov´an´ı.

Tabulka 4.5: Konfigurace poˇc´ıtaˇce, na kter´em bylo prov´adˇeno testov´an´ı Operaˇcn´ı syst´em Windows 8.1 Pro

Velikost RAM 6 GB

Procesor Intel® Core— i3-3227U, CPU @ 1,90 GHz 1,90 GHz Typ syst´emu 64bitov´y

V tabulce 4.6 jsou uvedeny doby tr´enov´an´ı jednotliv´ych n´astroj˚u na p˚uvodn´ı tr´enovac´ı sadˇe i na rozˇs´ıˇren´e tr´enovac´ı sadˇe. ˇCasy jsou uvedeny ve form´atu hh:mm:ss.

(40)

Tabulka 4.6: Doba trv´an´ı tr´enov´an´ı jednotliv´ych n´astroj˚u Z´akladn´ı tr´enovac´ı sada Rozˇs´ıˇren´a tr´enovac´ı sada

SNER 00:09:11 01:29:42

LIPI 00:00:30 00:01:21

LIBSVM 00:01:02 02:35:44

4.7 Testov´ an´ı NER n´ astroj˚ u

Souˇc´ast´ı n´astroje je tak´e rozhran´ı pro jeho otestov´an´ı. Pro otestov´an´ı je potˇreba sada dat ve stejn´em form´atu jako tr´enovac´ı data. Aby byly v´ysledky testov´an´ı od- pov´ıdaj´ıc´ı, mˇela by se data v testovac´ı sadˇe liˇsit, ale tak´e by se mˇelo jednat o data ze stejn´e dom´eny jako data v tr´enovac´ı sadˇe. Otestov´an´ı se provede pˇr´ıkazem:

java -jar maner.jar -test [inputFile] [snerModelFile]

[lipiModelFile] [svmModelFile] [outputFile]

N´astroj MANER naˇcte ze vstupn´ıho souboru spr´avn´e tˇr´ıdy jednotliv´ych entit a pˇred´a n´astroj˚um pro rozpozn´av´an´ı entit pouze ˇcist´a data. Po zpracov´an´ı vyhodnot´ı v´ysledky vˇsech n´astroj˚u pomoc´ı spr´avn´ych odpovˇed´ı a v´ysledky uloˇz´ı do v´ystupn´ıho souboru.

Tyto v´ysledky obsahuj´ı poˇcty TP, FP, FN, pˇresnost, ´uplnost a F-m´ıru.

4.8 Pouˇ zit´ı NER n´ astroj˚ u samostatnˇ e

Mimo to, ˇze lze n´astroj MANER pouˇz´ıt jako celek, lze tak´e pouˇz´ıt pouze jednotliv´e n´astroje. M˚uˇzeme tak zjistit, jak hodnotil dan´y vstupn´ı text kaˇzd´y n´astroj. Rozhran´ı pro samostatn´e pouˇzit´ı n´astroj˚u je:

java -jar maner.jar -svm [inputFile] [modelFile]

java -jar maner.jar -lipi [inputFile] [modelFile]

java -jar maner.jar -sner [inputFile] [modelFile]

Argument inputFile je cesta ke vstupn´ımu souboru s prost´ym textem. Argument modelFile je cesta k modelu, jehoˇz tvorbu popisuje kapitola 4.6. V´ystup jednot-

(41)

liv´ych n´astroj˚u je vytiˇstˇen na standardn´ı v´ystup. Pokud bychom chtˇeli zkontrolovat vyhodnocen´ı slovn´ıkov´e metody, pouˇzijeme pˇr´ıkaz:

java -jar maner.jar -dictionary [inputFile] [dictionaryFile]

Argument dictionaryFile je soubor se slovn´ıkem. Tvorba slovn´ıku je pops´ana v ka- pitole 4.4.

(42)

5 Testov´ an´ı navrˇ zen´ eho n´ astroje

V t´eto kapitole jsou shrnuty v´ysledky namˇeˇren´e pˇri bˇehu programu. Program byl natr´enov´an a otestov´an pomoc´ı testovac´ı a tr´enovac´ı sady vytvoˇren´e v r´amci pr´ace – tedy pomoc´ı dat staˇzen´ych z webu ˇCSFD. V tabulce 5.1 jsou shrnuty v´ysledky testu programu pˇred automatick´ym rozˇs´ıˇren´ım tr´enovac´ı sady pomoc´ı slovn´ıku. Uveden´a hodnota vˇzdy pˇredstavuje F-m´ıru (tedy kombinaci pˇresnosti a ´uplnosti) konkr´etn´ıho n´astroje. F-m´ıra je v tomto pˇr´ıpadˇe harmonick´y pr˚umˇer pˇresnosti a ´uplnosti (viz ka- pitolu 2.4). Tr´enovac´ı a testovac´ı sady pouˇzit´e pro otestov´an´ı n´astroje jsou pops´any v tabulce 4.4.

Tabulka 5.1: V´ysledky testov´an´ı n´astroje MANER pˇred automatick´ym rozˇs´ıˇren´ım tr´enovac´ı sady

Tˇr´ıda Testovan´y n´astroj

SNER LIPI LIBSVM slovn´ık MANER PERS 0,801 0,131 0,721 0,885 0,952

LOC 0,666 0,4 0,0 0,0 0,652

TIME 0,415 0,586 0,384 0,0 0,578

ORG 0,211 0,211 0,0 0,0 0,4

MOV 0,052 0,027 0,0 0,874 0,787

NICK 0,0 0,011 0,0 0,71 0,551

O 0,917 0,888 0,922 0,933 0,952

Z tabulky 5.1 je patrn´e, ˇze nejl´epe n´astroj vyhled´aval jm´ena lid´ı a datov´e ´udaje.

Jm´ena lid´ı vyhled´aval nejl´epe proto, ˇze jejich zastoupen´ı v tr´enovac´ı sadˇe bylo nejvyˇsˇs´ı. Datov´ych ´udaj˚u nebylo mnoho, ale od bˇeˇzn´eho textu jsou jednoduˇse rozliˇsi- teln´e. Nejl´epe toho vyuˇz´ıv´a algoritmus SVM, kter´y na slova pohl´ıˇz´ı z morfologick´eho hlediska. Naopak ostatn´ı tˇr´ıdy pro tento algoritmus byly probl´emov´e pr´avˇe z tohoto d˚uvodu.

(43)

D´ale je patrn´e, ˇze slovn´ıkov´a metoda nepˇresahuje r´amec definovan´eho slovn´ıku, a rozpozn´av´a pouze druhy pojmenovan´ych entit, kter´e jsou ve slovn´ıku definov´any.

Obecnˇe si ze vˇsech n´astroj˚u nejl´epe vedl n´astroj SNER. Lze zde vypozorovat jistou souvislost mezi dobou tr´enov´an´ı n´astroje a jeho ´uspˇeˇsnost´ı, viz tabulku 4.6.

Pˇred t´ım, neˇz se provedlo testov´an´ı cel´eho n´astroje MANER, byly v´ysledky tes- tov´an´ı d´ılˇc´ıch n´astroj˚u pouˇzity k sestaven´ı tabulky vah. Jako v´aha n´astroje pro konkr´etn´ı tˇr´ıdu entit slouˇz´ı jeho pˇresnost pˇri testov´an´ı. V podstatˇe se tedy jedn´a o tabulku pˇresnost´ı jednotliv´ych n´astroj˚u. Jedinou v´yjimkou je tˇr´ıda O. Aˇckoliv je zde oznaˇcov´ana jako tˇr´ıda pojmenovan´e entity, ve skuteˇcnosti se o pojmenovanou entitu nejedn´a. Protoˇze je jej´ı zastoupen´ı v bˇeˇzn´em textu nejvyˇsˇs´ı, n´astroj je touto tˇr´ıdou pˇreuˇcen. Pokud by j´ı z˚ustala jej´ı pˇresnost, pak by vˇetˇsinu skuteˇcn´ych pojme- novan´ych entit v textu n´astroj oznaˇcil tˇr´ıdou O. Proto byla v tabulce vah u kaˇzd´eho n´astroje pro tˇr´ıdu O pouˇzita pˇresnost 0,01. V´ahy, kter´a vznikly pˇri prvn´ım testov´an´ı, jsou uvedeny v tabulce 5.2.

Tabulka 5.2: V´ahy pouˇzit´e pˇri testov´an´ı n´astroje MANER pˇred automatick´ym rozˇs´ıˇren´ım tr´enovac´ı sady

Tˇr´ıda N´astroj

SNER LIPI LIBSVM slovn´ık PERS 0,905 0,899 0,781 0,97

LOC 0,919 0,888 0,0 0,0

TIME 1,0 1,0 1,0 0,0

ORG 1,0 1,0 0,0 0,0

MOV 0,5 1,0 0,0 0,7

NICK 0,25 0,333 0,0 0,125

O 0,01 0,01 0,01 0,01

V tabulce 5.3 jsou v´ysledky bˇehu programu po automatick´em rozˇs´ıˇren´ı tr´enovac´ı sady. Je patrn´e, ˇze toto rozˇs´ıˇren´ı na v´ysledky testov´an´ı mˇelo znaˇcn´y vliv. Bylo za- znamen´ano oˇcek´avan´e zlepˇsen´ı zejm´ena v rozpozn´av´an´ı tˇech tˇr´ıd entit, kter´e byly rozˇs´ıˇren´e. Ve tˇr´ıd´ach, kter´e rozˇs´ıˇreny nebyly (LOC, ORG ) v´ysledky nejsou jedno- znaˇcn´e. Zat´ımco rozpozn´av´an´ı tˇr´ıdy LOC se zlepˇsilo, rozpozn´av´an´ı tˇr´ıdy ORG se zhorˇsilo.

(44)

Tabulka 5.3: V´ysledky testov´an´ı n´astroje MANER po automatick´em rozˇs´ıˇren´ı tr´enovac´ı sady

Tˇr´ıda Testovan´y n´astroj

SNER LIPI LIBSVM slovn´ık MANER

PERS 0,95 0,043 0,753 0,885 0,98

LOC 0,789 0,429 0,0 0,0 0,769

TIME 0,894 0,398 0,753 0,0 0,996

ORG 0,222 0,222 0,0 0,0 0,316

MOV 0,922 0,227 0,286 0,875 0,952

NICK 0,768 0,687 0,529 0,71 0,753

O 0,955 0,89 0,905 0,933 0,911

V´ahy pouˇzit´e pro testov´an´ı s rozˇs´ıˇrenou tr´enovac´ı sadou jsou uvedeny v ta- bulce 5.4.

Tabulka 5.4: V´ahy pouˇzit´e pˇri testov´an´ı n´astroje MANER po automatick´em rozˇs´ıˇren´ım tr´enovac´ı sady

Tˇr´ıda Testovan´y n´astroj

SNER LIPI LIBSVM slovn´ık

PERS 0,709 0,6 0,601 0,992

LOC 0,625 0,666 0,0 0,0

TIME 0,935 0,93 0,826 0,0

ORG 0,666 0,666 0,0 0,0

MOV 0,727 0,8 0,0 0,933

NICK 0,0 1 0,0 0,944

O 0,01 0,01 0,01 0,01

(45)

Graf na obr´azku 5.1 pˇrehlednˇe zn´azorˇnuje, jak byl n´astroj MANER ´uspˇeˇsn´y v nal´ez´an´ı pojmenovan´ych entit v porovn´an´ı s d´ılˇc´ımi v´ysledky jednotliv´ych n´astroj˚u.

Obr´azek 5.1: Porovn´an´ı F-m´ıry n´astroje MANER s jednotliv´ymi n´astroji Souˇc´ast´ı v´yvoje byla tak´e n´asledn´a paralelizace bˇehu n´astroje. Protoˇze MANER p˚uvodnˇe pracoval v jednom vl´aknˇe, bylo moˇzn´e zmˇeˇrit vliv paralelizace na rychlost bˇehu programu. Namˇeˇren´e hodnoty jsou uvedeny v tabulce 5.5. Mˇeˇren´ı prob´ıhalo na poˇc´ıtaˇci se stejnou konfigurac´ı, jako je uvedena v tabulce 4.5. Do mˇeˇren´ı byl zahr- nut ˇcas bˇehu programu od zaˇc´atku do konce, vˇcetnˇe konstantn´ı sloˇzky (inicializace n´astroj˚u a naˇc´ıt´an´ı model˚u). ˇCasy jsou uvedeny ve form´atu hh:mm:ss.

Tabulka 5.5: Vliv paralelizace na rychlost bˇehu programu

2 kB textu (379 slov) 2,6 MB textu (370 000 slov)

Pˇred paralelizac´ı 00:00:32 02:13:42

Po paralelizaci 00:00:14 00:53:21

(46)

6 Z´ avˇ er

V t´eto pr´aci byla ˇreˇsena problematika vyhled´av´an´ı pojmenovan´ych entit pomoc´ı al- goritm˚u dataminingu. Byla provedena reˇserˇse n´astroj˚u, kter´e se k dan´ym ´uˇcel˚um pouˇz´ıvaj´ı, jejich v´yhody, nev´yhody a specifika pouˇzit´ı. D´ale byla provedena reˇserˇse algoritm˚u dataminingu, kter´e se v uveden´e oblasti extrakce informace pouˇz´ıvaj´ı. Na z´akladˇe tˇechto poznatk˚u byl navrˇzen a v jazyce Java implementov´an n´astroj, kter´y inovativn´ım zp˚usobem ˇreˇs´ı dan´y probl´em. Tento n´astroj kombinuje nˇekolik exis- tuj´ıc´ıch n´astroj˚u a algoritm˚u a vyuˇz´ıv´a v´yhody kaˇzd´eho z nich. Pomoc´ı navrˇzen´eho n´astroje lze doc´ılit vyˇsˇs´ı pˇresnosti i ´uplnosti neˇz u jednotliv´ych n´astroj˚u samostatnˇe.

Pr´ace d´ale na praktick´em pˇr´ıkladˇe popisuje, jak pro navrˇzen´y n´astroj vytvoˇrit da- tov´y model. Na vytvoˇren´em modelu byl n´astroj otestov´an pomoc´ı pˇresnosti a ´uplnosti.

N´astroj t´emˇeˇr ve vˇsech pˇr´ıpadech vykazoval vyˇsˇs´ı pˇresnost i ´uplnost neˇz pˇri pouˇzit´ı d´ılˇc´ıch n´astroj˚u a algoritm˚u samostatnˇe, coˇz lze povaˇzovat za hlavn´ı pˇr´ınos pr´ace. Po otestov´an´ı n´astroje pomoc´ı pˇresnosti a ´uplnosti byly naplnˇeny vˇsechny body zad´an´ı pr´ace.

Dalˇs´ı v´yvoj n´astroje MANER by mohl smˇeˇrovat k pˇr´ıvˇetivˇejˇs´ımu uˇzivatelsk´emu rozhran´ı. Jelikoˇz je uˇzivatelsk´e rozhran´ı programu ve formˇe pˇr´ıkazov´e ˇr´adky, mohl by b´yt dalˇs´ım krokem v´yvoj grafick´eho uˇzivatelsk´eho rozhran´ı, kter´e by program zpˇr´ıstupnilo ˇsirˇs´ımu spektru uˇzivatel˚u. Lepˇs´ıch v´ysledk˚u vyhled´av´an´ı by tak´e bylo moˇzn´e doc´ılit dalˇs´ım c´ılen´ym rozˇsiˇrov´an´ım tr´enovac´ı sady. A to zejm´ena o ty tˇr´ıdy entit, kter´e jsou v t´e st´avaj´ıc´ı ˇr´ıdce zastoupen´e.

(47)

Literatura

[1] TURNER, Vernon, David REINSEL, John F. GANTZ a Stephen MINTON.

The Digital Universe of Opportunities: Rich Data and the Increasing Value of the Internet of Things. The Digital Universe of Opportunities: Rich Data and the Increasing Value of the Internet of Things [online]. 2014 [cit. 2015-01-23].

Dostupn´e z: http://idcdocserv.com/1678.

[2] MAYER-SCH ¨ONBERGER, Viktor a Kenneth CUKIER. Big Data. 1. vyd.

Brno: Computer Press, 2014, 256 s. ISBN 978-80-251-4119-9.

[3] RUD, Olivia Parr. Data mining: praktick´y pr˚uvodce dolov´an´ım dat pro efektivn´ı prodej, c´ılen´y marketing a podporu z´akazn´ık˚u (CRM). 1. vyd. Praha: Computer Press, 2001, 329 s. Rychle a jistˇe. ISBN 8072265776.

[4] RATINOV, Lev a Dan ROTH. Design challenges and misconceptions in named entity recognition. In: Proceedings of the Thirteenth Conference on Computati- onal Natural Language Learning - CoNLL ’09 [online]. 2009 [cit. 2015-02-20].

DOI: 10.3115/1596374.1596399.

[5] GRISHMAN, Ralph a Beth SUNDHEIM. Message Understanding Conference- 6. In: Proceedings of the 16th conference on Computational linguistics - [online].

1996 [cit. 2015-05-15]. DOI: 10.3115/992628.992709.

[6] GOUTTE, Cyril a Eric GAUSSIER. A Probabilistic Interpretation of Pre- cision, Recall and F -score, with Implication for Evaluation [online]. Mey- lan, France, 2004 [cit. 2015-01-13]. Dostupn´e z: http://www.xrce.xerox.com/

content/download/16594/118473/file/xrce eval.pdf. Xerox Research Cen- tre Europe.

(48)

[7] WU, Xindong, Vipin KUMAR, J. Ross QUINLAN, Joydeep GHOSH, Qi- ang YANG, Hiroshi MOTODA, Geoffrey J. MCLACHLAN, Angus NG, Bing LIU, Philip S. YU, Zhi-Hua ZHOU, Michael STEINBACH, David J. HAND a Dan STEINBERG. Top 10 algorithms in data mining. Knowledge and Infor- mation Systems [online]. 2007, vol. 14, issue 1, s. 1-37 [cit. 2015-05-15]. DOI:

10.1007/s10115-007-0114-2.

[8] BAUM, Leonard E. a Ted PETRIE. Statistical Inference for Probabilistic Functions of Finite State Markov Chains. The Annals of Mathematical Statis- tics [online]. 1966, vol. 37, issue 6, s. 1554-1563 [cit. 2014-12-11]. DOI: 10.1214/a- oms/1177699147.

[9] KOLLER, Daphne a Nir FRIEDMAN. Probabilistic graphical models: princi- ples and techniques. Cambridge: MIT Press, c2009, xxxv, 1231 s. Adaptive computation and machine learning (MIT Press). [cit. 2015-12-11]. ISBN 978-0- 262-01319-2.

[10] WALLACH, Hanna M. 2004. Conditional Random Fields: An Introduction [on- line]. [cit. 2015-12-11]. Dostupn´e z: http://www.inference.phy.cam.ac.uk/

hmw26/papers/crf intro.pdf.

[11] ATDAG, Samet a Vincent LABATUT. A comparison of named entity reco- gnition tools applied to biographical texts. In: 2nd International Conference on Systems and Computer Science [online]. 2013 [cit. 2015-01-07]. DOI: 10.1109/ic- conscs.2013.6632052.

[12] KNUTH, Donald Ervin. Umˇen´ı programov´an´ı. Vyd. 1. Brno: Computer Press, 2008, xix, 648 s. ISBN 978-80-251-2025-5.

[13] HAJI ˇC, Jan. Popis morfologick´ych znaˇcek — poziˇcn´ı syst´em. [online]. s. 6 [cit.

2015-02-16]. Dostupn´e z: https://ucnk.ff.cuni.cz/doc/popis znacek.pdf.

References

Related documents

Potlaˇ cov´ an´ı odezvy existuj´ı dva druhy, Network Echo Cancellation (potlaˇ cov´ an´ı odezvy v s´ıt’ov´ ych sign´ alech) a Acoustic Echo Cancellation (potlaˇ cov´

Uveden´ a simulace je zaloˇ zena, jak jiˇ z bylo zm´ınˇ eno, na opakovan´ em gene- rov´ an´ı n´ ahodn´ ych dat, na kter´ ych se prov´ ad´ı dan´ y algoritmus a jsou

Bˇ ehem procesu repasov´ an´ı se z´ısk´ av´ a velk´ e mnoˇ zstv´ı dat, kter´ e je nutn´ e ukl´ adat kv˚ uli zpˇ etn´ e kontrole procesu.. nice v libovoln´ em okamˇ

Pˇredloˇ zen´ a disertaˇ cn´ı pr´ ace se zab´ yv´ a adaptac´ı existuj´ıc´ıho syst´ emu automatick´ eho rozpozn´ av´ an´ı ˇreˇ ci (ASR) pro dalˇs´ı jazyky.. Zamˇ eˇruje

Kromˇ e fin´ aln´ı verze, kter´ a komplexnˇ e zpracov´ av´ a veˇsker´ e dan´ e poˇ zadavky, vzni- kala souˇ casnˇ e i verze, kter´ a fungovala bez pouˇ zit´ı detektoru

Na obr´ azku 4.35 je zobrazeno porovn´ an´ı akustick´ eho tlaku nad nosn´ıkem uni- morf (bez elektrod i s elektrodami vych´ az´ı nad nosn´ıkem velice podobn´ y akustick´ y

Ke kaˇ zd´ emu videu pouˇ zit´ emu pˇri testov´ an´ı byly hod- noty poˇ ctu osob, kter´ e proˇsly a poˇ ctu unik´ atn´ıch osob, kter´ e se ve videu objevily tak´ e

Mezi data ukl´ adan´ a do datab´ aze patˇr´ı informace o pool serveru, ke kter´ emu je tˇ eˇ zebn´ı klient aktu´ alnˇ e pˇripojen, informace o dobˇ e tˇ eˇ zby aktu´