• No results found

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

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

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

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

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

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.

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.