M ASARYKOVA UNIVERZITA FAKULTA INFORMATIKY
}
w A| y < 5 4 23 1 0 / -. , )+ ( %&' $ # !"
Æ
Syntaktick´a analyza ´ s vyuˇzit´ım postupn´e segmentace vˇety D IPLOMOV A´
´ PR ACE
Vojtˇech Kov´arˇ
Brno, podzim 2008
Prohl´asˇ en´ı Prohlaˇsuji, zˇ e tato diplomov´a pr´ace je mym ˚ ım autorskym ´ puvodn´ ´ d´ılem, kter´e jsem vypracoval samostatnˇe. Vˇsechny zdroje, prameny a literaturu, kter´e jsem pˇri vypracov´an´ı pouˇz´ıval nebo z nich cˇ erpal, v pr´aci rˇa´ dnˇe cituji s uveden´ım upln´ ´ eho odkazu na pˇr´ısluˇsny´ zdroj.
Vedouc´ı pr´ace: RNDr. Aleˇs Hor´ak, Ph.D. ii
Podˇekov´an´ı Dˇekuji Aleˇsi Hor´akovi za odborn´e veden´ı pr´ace, vstˇr´ıcny´ pˇr´ıstup a cenn´e konzultace. Rovnˇezˇ dˇekuji sv´e rodinˇe a pˇr´ıtelkyni za nenahraditelnou podporu pˇri psan´ı pr´ace.
iii
Shrnut´ı Tato pr´ace se zabyv´ ´ a n´avrhem nov´e metody pro syntaktickou analyzu ´ cˇ eˇstiny, zaloˇzen´em na postupn´e segmentaci vˇety. Popisujeme souˇcasn´e hlavn´ı pˇr´ıstupy k rˇeˇsen´emu ukolu ´ a jejich nedostatky, n´avrh a implementaci nov´eho syst´emu pro syntaktickou analyzu cˇ eˇstiny a dosaˇzen´e vysledky mˇerˇen´ı ´ ´ pˇresnosti na korpusovych ´ datech.
iv
Kl´ıcˇ ov´a slova automatick´a syntaktick´a analyza, syntax, analyz´ator, parser, analyza cˇ eˇs´ ´ tiny, segmentace vˇety, set
v
Obsah ´ 1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Syntaktick´a analyza ´ pˇrirozenych ´ jazyku˚ . . . . . . . . . . . . . . 2.1 Z´avislostn´ı pˇr´ıstup . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Praˇzsky´ z´avislostn´ı korpus . . . . . . . . . . . . . . . 2.1.2 Z´avislostn´ı analyz´atory . . . . . . . . . . . . . . . . . 2.1.3 Mˇerˇen´ı uspˇ ´ esˇ nosti z´avislostn´ı analyzy . . . . . . . . . ´ 2.2 Sloˇzkovy´ pˇr´ıstup . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Analyz´ator Synt . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Mˇerˇen´ı uspˇ ´ esˇ nosti sloˇzkov´e analyzy . . . . . . . . . . ´ 2.3 Parci´aln´ı syntaktick´a analyza . . . . . . . . . . . . . . . . . . ´ 2.4 Probl´emy v syntaktick´e analyze ´ . . . . . . . . . . . . . . . . . 2.4.1 N´ızk´a pˇresnost analyzy . . . . . . . . . . . . . . . . . ´ 2.4.2 V´ıceznaˇcnost analyzy . . . . . . . . . . . . . . . . . . ´ 2.4.3 Subjektivita syntaxe . . . . . . . . . . . . . . . . . . . 2.4.4 Urˇcov´an´ı spornych ´ a nadbyteˇcnych ´ jevu˚ . . . . . . . 3 Metoda postupn´e segmentace vˇety . . . . . . . . . . . . . . . . . . ´ 3.1 Uvodn´ ı pozorov´an´ı o syntaxi . . . . . . . . . . . . . . . . . . 3.1.1 Pozorov´an´ı prvn´ı: Obt´ızˇ e v n´avrhu gramatiky . . . . 3.1.2 Pozorov´an´ı druh´e: Negramatick´e konstrukce . . . . . 3.1.3 Pozorov´an´ı tˇret´ı: Kl´ıcˇ ov´a slova ve form´aln´ıch jazyc´ıch 3.1.4 Pozorov´an´ı cˇ tvrt´e: Kl´ıcˇ ov´a slova v pˇrirozenych ´ jazyc´ıch 3.2 Syntaktick´a analyza ´ s vyuˇzit´ım postupn´e segmentace vˇety . 3.2.1 Z´akladn´ı principy . . . . . . . . . . . . . . . . . . . . 3.2.2 Sch´ema algoritmu . . . . . . . . . . . . . . . . . . . . 3.2.3 Pravidla a realizace . . . . . . . . . . . . . . . . . . . . 3.2.4 Formy vystupu . . . . . . . . . . . . . . . . . . . . . . ´ Hybridn´ı syntaktick´e stromy . . . . . . . . . . . . . . Z´avislostn´ı vystup . . . . . . . . . . . . . . . . . . . . ´ V´ıceznaˇcnost ve vystupu . . . . . . . . . . . . . . . . ´ 3.3 Zaˇrazen´ı formalismu . . . . . . . . . . . . . . . . . . . . . . . 4 Syst´em SET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 N´avrh syst´emu . . . . . . . . . . . . . . . . . . . . . . . . . .
3 4 4 5 6 7 7 8 9 10 10 10 11 11 12 14 14 14 15 15 17 18 18 19 20 23 23 24 24 25 26 26 1
Implementace . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Modul grammar . . . . . . . . . . . . . . . . . 4.2.2 Modul token . . . . . . . . . . . . . . . . . . . 4.2.3 Modul segment . . . . . . . . . . . . . . . . . 4.2.4 Modul matcher . . . . . . . . . . . . . . . . . 4.2.5 Modul parser . . . . . . . . . . . . . . . . . . 4.2.6 Dalˇs´ı moduly . . . . . . . . . . . . . . . . . . . 4.3 Syst´em pravidel . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Form´at z´apisu pravidel . . . . . . . . . . . . . 4.3.2 Form´at z´apisu znaˇcek sˇ ablony . . . . . . . . . 4.3.3 Znaˇcky s vˇetˇs´ım rozsahem . . . . . . . . . . . . 4.3.4 Znaˇcky bound a rbound . . . . . . . . . . . . 4.3.5 Form´at akc´ı . . . . . . . . . . . . . . . . . . . . 4.3.6 Re´aln´e pˇr´ıklady pravidel . . . . . . . . . . . . 4.4 Pouˇzit´ı programu . . . . . . . . . . . . . . . . . . . . . 4.4.1 Form´at vstupu . . . . . . . . . . . . . . . . . . 4.4.2 Form´at vystupu . . . . . . . . . . . . . . . . . . ´ 5 Dosaˇzen´e vysledky a dalˇsı´ vyvoj . . . . . . . . . . . . . . . ´ ´ . . . . . . . . . . . . . 5.1 Pˇresnost z´avislostn´ıho vystupu ´ 5.1.1 Testovac´ı data . . . . . . . . . . . . . . . . . . . 5.1.2 Vysledky a interpretace . . . . . . . . . . . . . ´ 5.2 Analyza ´ chyb . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Nepˇresnosti v PDT . . . . . . . . . . . . . . . . 5.2.2 M´enˇe cˇ ast´e syntaktick´e jevy . . . . . . . . . . . 5.2.3 Nedostateˇcn´a lexik´aln´ı informace . . . . . . . ˇ 5.3 Casov´ a n´aroˇcnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 Dalˇs´ı vyvoj ´ 5.4.1 Analyza ´ v´ıceznaˇcnych ´ morfologickych ´ vstupu˚ 5.4.2 Vyuˇzit´ı korpusovych ´ statistik . . . . . . . . . . 6 Z´avˇer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A Pˇr´ıloha A: Uk´azka spuˇstˇen´ı programu . . . . . . . . . . . . 4.2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27 27 27 28 28 29 29 29 30 31 34 34 35 36 37 38 38 40 40 40 41 42 42 43 45 45 46 46 46 48 52
2
Kapitola 1
´ Uvod Automatick´a analyza ´ pˇrirozen´eho jazyka je odvˇetv´ım, kter´e s rozmachem informaˇcn´ı spoleˇcnosti nabyv´ Vznik´a potˇreba au´ a st´ale vˇetˇs´ıho vyznamu. ´ tomaticky analyzovat velk´a mnoˇzstv´ı dokumentu˚ v pˇrirozen´em jazyce, dostupnych ˚ ejˇs´ıch datab´az´ıch novinovych ´ volnˇe na Internetu, v nejruznˇ ´ cˇ i odbornych ˚ jazykovych ´ cˇ l´anku, ´ korpusech apod. Tyto dokumenty je tˇreba d´ale tˇr´ıdit, z´ısk´avat z nich informace a inteligentn´ımi metodami v nich vyhled´avat tak, aby cˇ ten´arˇ hledaj´ıc´ı informaci str´avil minimum cˇ asu zbyteˇcnym ˚ kter´e jsou pro nˇej neuˇziteˇc´ cˇ ten´ım textu, n´e. Ve vzd´alenˇejˇs´ı budoucnosti mohou vznikat stroje, kter´e se na z´akladˇe textu˚ v pˇrirozen´em jazyce budou uˇcit fakta, budovat a rozˇsiˇrovat svou znalostn´ı b´azi a slouˇzit jako specializovan´e dialogov´e syst´emy, pˇr´ıpadnˇe dokonce inferenˇcn´ı stroje a gener´atory novych ´ teori´ı. V cestˇe za takto vyspˇelymi inteligentn´ımi syst´emy jsme vˇsak zat´ım na ´ sam´em poˇca´ tku. Vˇetˇsina ze souˇcasnych ´ ,,inteligentn´ıch” pˇr´ıstupu˚ vyuˇz´ıv´a pouze jednoduch´e statistick´e informace z´ıskan´e ze slov, pˇr´ıpadnˇe z morfologick´e analyzy ˚ tohoto stavu ´ slov obsaˇzenych ´ ve vstupn´ım textu. Duvodem je nedostateˇcn´a kvalita n´astroju˚ pro analyzu jazyka na vyˇssˇ´ıch urovn´ ´ ıch – ´ pˇredevˇs´ım syntaktick´e a s´emantick´e. Kvalita takovychto n´astroju˚ je kl´ıcˇ ov´a, ´ chceme-li analyzovat texty skuteˇcnˇe do hloubky, tj. dos´ahnout stavu, kdy pˇr´ısluˇsny´ stroj (napˇr´ıklad vyhled´avac´ı) obsahu zpracov´avanych ´ dokumentu˚ de facto rozum´ı. Tato pr´ace se zabyv´ vˇet ´ a probl´emem automatick´e syntaktick´e analyzy ´ v pˇrirozen´em jazyce, konkr´etnˇe v cˇ eˇstinˇe, jako jedn´ım z kroku˚ komplexn´ı automatick´e analyzy jazyka. V uvodn´ ´ ıch cˇ a´ stech jsou na z´akladˇe dostup´ nych ´ pramenu˚ shrnuty z´akladn´ı pˇr´ıstupy pouˇz´ıvan´e k syntaktick´e analyze ´ cˇ eˇstiny a probl´emy, s nimiˇz se tyto pˇr´ıstupy potykaj´ ´ ı. Dalˇs´ı cˇ a´ sti jsou vˇenov´any hlavn´ımu pˇr´ınosu pr´ace, j´ımˇz je metoda postupn´e segmentace vˇety. Zminujeme ˇ myˇslenky, kter´e k navrhovan´emu konceptu vedly, vysvˇetlujeme principy metody a pˇredstavujeme syst´em pro automatickou syntaktickou analyzu cˇ eˇstiny SET, ktery´ je na metodˇe postupn´e segmentace vˇety ´ zaloˇzen. 3
Kapitola 2
Syntaktick´a analyza ´ pˇrirozenych ´ jazyku˚ ´ Ukolem syntaktick´e analyzy pˇrirozenych je od´ ´ jazyku˚ (d´ale jen analyzy) ´ halit povrchovou strukturu vˇety, tj. vztahy mezi slovy i vˇetˇs´ımi jednotkami (konstituenty) a zpusob, ˚ jakym ´ se tyto jednotky skl´adaj´ı do vˇetn´eho celku. Takto z´ıskan´a informace je kl´ıcˇ ov´a v n´asleduj´ıc´ım procesu s´emantick´e (ˇci logick´e) analyzy ´ dan´e vˇety, pˇr´ıpadnˇe pro extrakci d´ılˇc´ıch informac´ı z textu. V souˇcasnosti existuj´ı dva z´akladn´ı pˇr´ıstupy k syntaktick´e analyze ´ cˇ eskych ´ vˇet. Prvn´ım z nich je pˇr´ıstup z´avislostn´ı, jenˇz je rozv´ıjen v praˇzsk´em ´ ´ Ustavu form´aln´ı a aplikovan´e lingvistiky (UFAL). Na jeho z´akladech je mimo jin´e postaven Praˇzsky´ z´avislostn´ı korpus (Prague Dependency Treebank, nebo t´ezˇ PDT [3], [4]) a mnoˇzstv´ı analyz´atoru˚ (napˇr. [5], [9], [10]). Druhym ´ je pˇr´ıstup sloˇzkovy, ´ na jehoˇz z´akladˇe pracuj´ı analyz´atory vyv´ıjen´e v Centru zpracov´an´ı pˇrirozen´eho jazyka na Fakultˇe informatiky Masarykovy univerzity, jejichˇz nejvyznamnˇ ejˇs´ım reprezentantem je analyz´ator ´ synt [12]. V t´eto kapitole struˇcnˇe pop´ısˇ eme charakteristick´e vlastnosti obou zm´ınˇenych ˇ ı vyraz´ pˇr´ıstupu˚ a nast´ın´ıme probl´emy, kter´e prozat´ım znemoˇznuj´ ´ nˇejˇs´ı nasazen´ı vyv´ıjenych ´ analyz´atoru˚ na vyˇssˇ´ıch vrstv´ach analyzy ´ jazyka, jako je logick´a analyza ´ cˇ i extrakce informac´ı.
2.1
Z´avislostn´ı pˇr´ıstup
´ Pr´ace prob´ıhaj´ıc´ı na UFAL vych´az´ı z tradice praˇzsk´e lingvistick´e sˇ koly, kter´a zahrnuje pomˇernˇe komplexn´ı analyzu jazyka na rovinˇe morfologick´e, ´ syntaktick´e a cˇ a´ steˇcnˇe i s´emantick´e. Na z´akladˇe tˇechto tradiˇcn´ıch teori´ı, upravenych v oblasti poˇc´ıtaˇcov´e lingvis´ pro potˇreby souˇcasn´eho vyzkumu ´ tiky, jsou anotov´ana rozs´ahl´a korpusov´a data a vyv´ıjeny analyz´atory vyuzˇ ´ıvaj´ıc´ı ruzn ˚ ych ´ pˇr´ıstupu˚ (viz d´ale). V z´avislostn´ım formalismu je za syntaktickou analyzu vˇety povaˇzov´an ´ koˇrenovy´ strom vˇety (acyklicky´ orientovany´ graf s vyznaˇcenym ´ koˇreno4
2. S YNTAKTICK A´
´ ZA P Rˇ IROZEN Y´ CH JAZYK U˚ ANAL Y
Obr´azek 2.1: Pˇr´ıklad z´avislostn´ıho stromu pro vˇetu Slunce vyjde na z´apadˇe? vym ´ vrcholem), jehoˇz vrcholy tvoˇr´ı pr´avˇe slova vstupn´ı vˇety,1 spolu s jedn´ım pˇridanym ´ pomocnym ´ vrcholem, ktery´ je vˇzdy koˇrenem stromu. S vy´ jimkou tohoto pomocn´eho vrcholu nejsou do vˇety pˇrid´av´any zˇ a´ dn´e dalˇs´ı strukturn´ı informace, vˇse je kodov´ ´ ano do vz´ajemnych ´ vztahu˚ slov ve vstupn´ı vˇetˇe. Vztahy mezi slovy jsou zachyceny hranami v grafu vˇety, pˇriˇcemˇz kaˇzd´a hrana vyjadˇruje z´avislost jednoho slova na jin´em. Kaˇzd´a hrana je d´ale ohodnocena syntaktickou funkc´ı,2 jeˇz urˇcuje typ z´avislosti dan´e hrany (napˇr. funkce Attr vyjadˇruje z´avislost pˇr´ıvlastku na rˇ´ıd´ıc´ım slovˇe). Plat´ı, zˇ e z kaˇzd´eho vrcholu s vyjimkou koˇrene vede pr´avˇe jedna z´avislostn´ı hrana, ´ tj. kaˇzd´e slovo je z´avisl´e na pr´avˇe jednom dalˇs´ım slovˇe (nebo koˇrenov´em uzlu). Pˇr´ıklad z´avislostn´ıho stromu muˇ ˚ zeme vidˇet na obr´azku 2.1.3 2.1.1 Praˇzsky´ z´avislostn´ı korpus ´ Jiˇz zm´ınˇeny´ Praˇzsky´ z´avislostn´ı korpus (PDT [3]), vytv´arˇeny´ na UFAL, je korpus cˇ eˇstiny, manu´alnˇe anotovany´ na v´ıce urovn´ ´ ıch analyzy ´ jazyka podle 1. Za slova zde povaˇzujeme vˇsechny tzv.tokeny tj. slova, cˇ´ısla a interpunkci. 2. Technicky jsou touto syntaktickou funkc´ı ohodnoceny uzly stromu, pˇredstavu ohodnocenych ´ hran vˇsak povaˇzujeme za n´azornˇejˇs´ı. 3. Pˇrevzato z vizualizovanych ´ pˇr´ıkladu˚ pro PDT 2.0, http://ufal.mff.cuni.cz/pdt2.0/visual-data/sample/sample3_a_26.htm
5
2. S YNTAKTICK A´
´ ZA P Rˇ IROZEN Y´ CH JAZYK U˚ ANAL Y
principu˚ praˇzsk´e lingvistick´e sˇ koly. Jeho celkovy´ rozsah je t´emˇerˇ dva miliony slovn´ıch jednotek. V t´eto pr´aci je pro n´as podstatn´a syntakticky oznaˇckovan´a cˇ a´ st korpusu, tzv. analytick´a rovina anotace, kter´a v nynˇejˇs´ı verzi PDT 2.0 obsahuje 87 913 vˇet s celkovym ´ poˇctem 1 503 739 slovn´ıch jednotek. Tato cˇ a´ st korpusu je tvoˇrena syntaktickymi stromy cˇ eskych ´ ´ vˇet manu´alnˇe vytvoˇrenymi ´ podle z´avislostn´ıho formalismu pˇredstaven´eho vyˇ ´ se. Je to jediny´ manu´alnˇe syntakticky oznaˇckovany´ korpus cˇ eˇstiny srovnateln´e velikosti (jediny´ zdroj ,,spr´avnych” syntaktickych dat) a je tedy velmi duleˇ ˚ zity´ z hlediska tes´ ´ tov´an´ı kvality vyv´ıjenych ˚ ´ automatickych ´ analyz´atoru.
2.1.2 Z´avislostn´ı analyz´atory Spolu s PDT je na stejn´em pracoviˇsti vyv´ıjeno mnoˇzstv´ı automatickych ´ z´avislostn´ıch analyz´atoru, ˚ kter´e korpus pouˇz´ıvaj´ı jako tr´enovac´ı a testovac´ı data. Tyto analyz´atory vesmˇes pracuj´ı ve dvou f´az´ıch. V prvn´ı, tr´enovac´ı f´azi se analyz´ator z oznaˇckovanych ˚ ych ´ dat nauˇc´ı pravidla (v ruzn ´ form´ach podle konkr´etn´ıho analyz´atoru), kter´a n´aslednˇe pouˇz´ıv´a ve druh´e f´azi, kdy podle z´ıskanych ´ pravidel analyzuje vstupn´ı vˇetu. Na tomto principu pracuj´ı napˇr´ıklad analyz´atory popsan´e v [5], [8] a tak´e McDonnald’s maximum spanning tree parser [22], jenˇz dosahuje nejlepˇs´ıch vysledk u˚ v mˇerˇen´ı pˇres´ nosti analyzy kombinace analyz´atoru, ˚ viz d´ale). ´ (s vyjimkou ´ ´ Ne vˇsechny analyz´atory, se kterymi se pracuje na UFAL, jsou ale tohoto ´ charakteru. Uvedeme zde dva pˇr´ıklady odliˇsn´eho pˇr´ıstupu k z´avislostn´ı analyze. Prvn´ım z nich je Holanuv ˚ parser ANALOG [9], ktery´ nem´a tr´eno´ vac´ı f´azi a ve f´azi analyzy ´ vyhled´av´a takovou lok´aln´ı konfiguraci, kter´a je nejv´ıce podobn´a datum ˚ v tr´enovac´ı mnoˇzinˇe. ˇ Druhym analyz´atorem je Zabokrtsk´ eho pravidlovy´ z´avis´ ,,atypickym” ´ lostn´ı analyz´ator, popsany´ v [10], ktery´ analyzuje vstupn´ı vˇetu s pomoc´ı ruˇcnˇe vytvoˇrenych ´ transformaˇcn´ıch pravidel, nevyuˇz´ıv´a tedy zˇ a´ dnou informaci z tr´enovac´ıch dat. Pravidla jsou implementov´ana pˇr´ımo jako funkce v programovac´ım jazyce Perl, nen´ı vyuˇzito zˇ a´ dn´eho zn´am´eho gramatick´eho formalismu. Vˇsechny uveden´e analyz´atory pˇredpokl´adaj´ı na vstupu morfologicky jednoznaˇcnˇe oznaˇckovanou (desambiguovanou) vˇetu, pˇred jejich pouˇzit´ım je tedy tˇreba aplikovat morfologicky´ analyz´ator a desambigu´ator (tagger). 6
2. S YNTAKTICK A´
´ ZA P Rˇ IROZEN Y´ CH JAZYK U˚ ANAL Y
4 i s pˇ ´ Seznam dostupnych r´ısluˇs´ taggeru˚ je zveˇrejnˇen na str´ank´ach UFAL nym ´ koment´arˇem a odkazy.
2.1.3 Mˇerˇen´ı uspˇ ´ esˇ nosti z´avislostn´ı analyzy ´ ´ esˇ nost z´avislostn´ı analyzy Uspˇ vˇety je d´ana poˇctem spr´avnˇe urˇcenych ´ ´ z´avislost´ı, hran ve stromu vˇety (za spr´avnˇe urˇcen´e povaˇzujeme samozˇrejmˇe ty hrany, kter´e se shoduj´ı s anotac´ı v korpusu). Pro kaˇzdou vˇetu urˇcujeme pˇresnost (precision) a pokryt´ı (recall) hran urˇcenych ´ analyz´atorem. Vzhledem k tomu, zˇ e poˇcet hran je pro danou vˇetu vˇzdy stejny´ (z´avislostn´ı strom obsahuje pr´avˇe tolik hran, kolik je slov ve vˇetˇe), pˇresnost ´ esˇ nost i pokryt´ı budou pro danou vˇetu vˇzdy nabyvat stejn´e hodnoty. Uspˇ ´ analyz´atoru na jedn´e vˇetˇe muˇ ˚ zeme tedy vyj´adˇrit jedinym ´ cˇ ´ıslem, v dalˇs´ım ´ textu nazyvan ym ´ ´ pouze pˇresnost. Uspˇesˇ nost analyz´atoru na testovac´ı sadˇe je pak vyj´adˇrena prumˇ ˚ erem (v nˇekterych ´ pˇr´ıpadech pˇr´ıpadnˇe medi´anem) pˇresnost´ı analyzy ´ pro jednotliv´e vˇety. Pˇresnost analyz´atoru˚ uvedenych ´ v pˇredchoz´ı cˇ a´ sti se pohybuje od 53 do 84 procent [10]. Nejuspˇ ´ esˇ nˇejˇs´ım samostatnym ´ analyz´atorem je jiˇz zm´ınˇeny´ McDonnald’s maximum spanning tree parser, dosahuj´ıc´ı pˇresnosti 83.98 %. Zaj´ımavy´ je experiment s kombinac´ı nˇekolika ruzn ˚ ych analyz´atoru˚ ´ (t´ezˇ [10]), v nˇemˇz se podaˇrilo zvyˇ ´ sit dosahovanou pˇresnost o dalˇs´ı t´emˇerˇ ˇ dvˇe procenta na 85.84 %. Pˇresnost Zabokrtsk´ eho pravidlov´eho analyz´atoru 5 je 75.93 %.
2.2
Sloˇzkovy´ pˇr´ıstup
Druhym ´ z hlavn´ım proudu˚ v automatick´e syntaktick´e analyze ´ je pˇr´ıstup sloˇzkovy, ´ rozv´ıjeny´ v Centru zpracov´an´ı pˇrirozen´eho jazyka na Fakultˇe informatiky Masarykovy univerzity (CZPJ FI MU). Narozd´ıl od z´avislostn´ıho, sloˇzkovy´ formalismus operuje pˇri vyznaˇcov´an´ı syntaktickych ´ vztahu˚ i s vˇetˇs´ımi celky, neˇz jsou slova. V procesu analyzy ´ jsou rozpozn´av´any konstituenty ve vstupn´ı vˇetˇe a je odhalov´an zpusob, ˚ jakym ´ se tyto konstituenty skl´adaj´ı do vˇetn´eho celku. Sloˇzkov´e stromy, vystup ze sloˇzkov´e analyzy, pak tento proces n´azornˇe ´ ´ reflektuj´ı – je explicitnˇe vyznaˇceno, kter´e cˇ a´ sti vˇety formuj´ı jmenn´e skupiny, kter´e jmenn´e skupiny se poj´ı se slovesem apod. Jak jiˇz je z pˇredchoz´ıho patrn´e, sloˇzkov´e stromy pouˇz´ıvaj´ı netermin´aln´ı symboly pro oznaˇcen´ı rozpo4. http://ufal.mff.cuni.cz/czech-tagging/ 5. Vˇsechna uv´adˇen´a cˇ´ısla se vztahuj´ı k mˇerˇ en´ı na odd´ılu PDT, ktery´ je k urˇcen ke ,,slep´emu” testov´an´ı uspˇ ´ esˇ nosti vyv´ıjenych ´ analyz´atoru˚ – e-test.
7
2. S YNTAKTICK A´
´ ZA P Rˇ IROZEN Y´ CH JAZYK U˚ ANAL Y
Obr´azek 2.2: Pˇr´ıklad sloˇzkov´eho stromu pro vˇetu Slunce vyjde na z´apadˇe?
znanych ´ struktur, jsou tedy bohatˇs´ı a sloˇzitˇejˇs´ı neˇz stromy z´avislostn´ı. Jejich podoba odpov´ıd´a odvozen´ı podle form´aln´ı gramatiky bezkontextov´eho typu a koresponduje s teoriemi syntaxe podle Noama Chomsk´eho. Pˇr´ıklad sloˇzkov´eho stromu muˇ ˚ zeme vidˇet na obr´azku 2.2.
2.2.1 Analyz´ator Synt Na z´akladˇe sloˇzkov´eho pˇr´ıstupu je v CZPJ FI MU vyv´ıjen analyz´ator synt [12]. Tento analyz´ator je zaloˇzen na bezkontextov´e gramatice obohacen´e o kontextov´e akce; tato gramatika je pˇritom nejednoznaˇcn´a, takˇze na vystup jsou pˇred´av´any mnoˇziny moˇznych ´ ´ stromu˚ pro danou vˇetu, nikoli jeden strom. Nicm´enˇe, stromy v t´eto mnoˇzinˇe jsou ohodnoceny a setˇr´ıdˇeny a algoritmy implementovan´e v analyz´atoru dovoluj´ı vybrat N nejlepˇs´ıch stromu˚ v polynomi´aln´ım cˇ ase, i kdyˇz celkovy´ poˇcet stromu˚ muˇ ˚ ze byt ´ aˇz exponenci´aln´ı. 8
2. S YNTAKTICK A´
´ ZA P Rˇ IROZEN Y´ CH JAZYK U˚ ANAL Y
Vzhledem k tomu, zˇ e gramatika cˇ eˇstiny je velmi rozs´ahl´a (zejm´ena kvuli ˚ relativnˇe voln´emu poˇra´ dku slov), je vyv´ıjena ve formˇe tzv. metagramatiky [14], jeˇz umoˇznuje ˇ zhustit informaci obsaˇzenou v gramatice do rˇ a´ dovˇe 200 pravidel, kter´a jsou pot´e automaticky rozgenerov´ana do gramatick´eho formalismu pouˇz´ıvan´eho analyz´atorem. Rozgenerovan´a forma gramatiky jiˇz obsahuje tis´ıce pravidel. Pro samotny´ proces analyzy je pak pouˇz´ıv´an algoritmus head-driven ´ chart parsing [17], ktery´ je velmi efektivn´ı i pro rozs´ahl´e gramatiky. Po proveden´ı analyzy ı mnoˇzina stromu˚ d´ale proˇrez´av´ana a tˇr´ıdˇena ´ je vystupn´ ´ s vyuˇzit´ım ruzn ˚ ych ´ metod ([15], [18], [19]). Narozd´ıl od vˇetˇsiny z´avislostn´ıch analyz´atoru˚ zm´ınˇenych vyˇ ´ ´ se, analyz´ator synt dok´azˇ e zpracovat i text s v´ıceznaˇcnym ´ morfologickym ´ oznaˇckov´an´ım, bez vyrazn´ eho n´arustu ˚ cˇ asov´e n´aroˇcnosti analyzy. ´ ´ V n´avaznosti na vysledky programu synt jsou t´ezˇ rozpracov´any me´ tody analyzy jazyka na vyˇssˇ´ıch vrstv´ach, zejm´ena logick´a analyza ´ ´ v transparentn´ı intenzion´aln´ı logice [11]. Popis tˇechto metod by vˇsak byl jiˇz nad r´amec t´eto pr´ace. 2.2.2 Mˇerˇen´ı uspˇ ´ esˇ nosti sloˇzkov´e analyzy ´ Pro mˇerˇen´ı uspˇ ´ esˇ nosti sloˇzkov´e analyzy ´ je pouˇz´ıv´ano podobnostn´ıch metrik na sloˇzkovych ´ stromech. V souˇcasnosti je pravdˇepodobnˇe nejrozˇs´ırˇenˇejsˇ´ı z nich metrika PARSEVAL a jej´ı varianty, v posledn´ı dobˇe je vˇsak poukazov´ano na jej´ı nedostateˇcnost [7] a jsou navrhov´any metriky nov´e. Velmi nadˇejnym ´ n´avrhem se jev´ı technika Leaf Ancestor Assessment (LAA), navrˇzen´a v roce 2000 [24]. Probl´emem v pˇr´ıpadˇe mˇerˇen´ı uspˇ ´ esˇ nosti sloˇzkov´e analyzy ´ cˇ eˇstiny je neexistence rozs´ahl´eho korpusu sloˇzkovych ´ stromu˚ pro cˇ eˇstinu. Protoˇze existuj´ı techniky pˇrevodu z´avislostn´ıch stromu˚ na sloˇzkov´e a naopak [2], bylo by moˇzn´e vyuˇz´ıt PDT, jsou vˇsak probl´emy s pˇrevodem neprojektivn´ıch konstrukc´ı, kter´e nelze zachytit ve sloˇzkov´em formalismu. (O neprojektivn´ı konstrukci v z´avislostn´ım stromˇe mluv´ıme tehdy, kdyˇz mnoˇzina z´avislost´ı jednoho uzlu netvoˇr´ı souvisly´ usek ´ v r´amci vˇety, viz napˇr. [27].) Probl´em s pˇrevodem z´avislostn´ıch a sloˇzkovych ´ reprezentac´ı syntaxe je tak´e hlavn´ı pˇr´ıcˇ inou toho, zˇ e se dosud nepodaˇrilo uspokojivˇe srovnat kvalitu praˇzskych z´avislosn´ıch analyz´atoru˚ s analyz´atorem synt. Vysledky ´ ´ zat´ım jedin´eho pokusu o srovn´an´ı je moˇzno nal´ezt v [13]. Na z´akladˇe vy´ sledku˚ zde uvedenych ´ lze soudit, zˇ e pˇresnost analyz´atoru synt (mˇerˇeno metrikou LAA) se pohybuje mezi 70 a 90 procenty. Tento udaj ´ je vˇsak velmi neurˇcity. ´ 9
2. S YNTAKTICK A´
2.3
´ ZA P Rˇ IROZEN Y´ CH JAZYK U˚ ANAL Y
Parci´aln´ı syntaktick´a analyza ´
V pˇredch´azej´ıc´ıch cˇ a´ stech jsme se zabyvali syntaktickou analyzou uplnou, ´ ´ ´ jej´ımˇz c´ılem je z´ıskat upln ´ y´ syntakticky´ strom vstupn´ı vˇety. C´ılem parci´aln´ı syntaktick´e analyzy ´ (t´ezˇ shallow parsing ) je z´ıskat z vˇety pouze nˇekter´e syntaktick´e informace, napˇr. hranice jmennych ych ´ fr´az´ı a jinych ´ vyznamn ´ ´ vˇetnych ´ skupin, nikoli kompletn´ı strom vˇety. Z´akladn´ı techniky parci´aln´ı syntaktick´e analyzy ´ jsou shrnuty v [1], parci´aln´ı syntaktickou analyzou cˇ eˇstiny a jej´ım vyuˇzit´ım se zabyv´ ´ ´ a pr´ace [26]. Za jednu z technik parci´aln´ı analyzy ˚ zeme oznaˇcit i formalismus ´ jazyka muˇ pro tzv. word sketches, urˇceny´ zejm´ena pro vyhled´av´an´ı cˇ astych ´ kolokac´ı v jazykovych korpusech [23]. ´ V t´eto pr´aci se zabyv´ ´ syntaktickou analyzou, ne´ ame pˇredevˇs´ım uplnou ´ budeme tedy zab´ıhat do vˇetˇs´ıch detailu. ˚ Metoda analyzy, kterou v dalˇ s ´ıch ´ kapitol´ach navrhujeme, m´a vˇsak s technikami parci´aln´ı analyzy nˇekter´e ´ rysy spoleˇcn´e, jak uvid´ıme d´ale. V n´avrhu vyuˇz´ıv´ame nˇekterych d´ılˇc´ıch ´ (parci´aln´ıch) syntaktickych ´ informac´ı v nˇekolika vrstv´ach k tomu, abychom z´ıskali uplnou ´ analyzu vstupn´ı vˇety. Navrˇzeny´ syst´em se dokonce d´a cˇ a´ s´ teˇcnˇe pro parci´aln´ı syntaktickou analyzu pouˇz´ıt, i kdyˇz to nebylo prim´ar´ n´ım c´ılem.
2.4
Probl´emy v syntaktick´e analyze ´
Kromˇe jiˇz zm´ınˇenych ´ probl´emu˚ s mˇerˇen´ım pˇresnosti a jej´ım srovn´av´an´ım existuje v oblasti syntaktick´e analyzy ´ rˇada dalˇs´ıch. Nˇekter´e z nich jsou omezeny na jednotliv´e pouˇzit´e formalismy, jin´e lze ch´apat jako komplexn´ı probl´emy analyzy ˚ V t´eto sekci nˇekter´e z takovych ´ pˇrirozenych ´ jazyku. ´ probl´emu˚ zm´ın´ıme. 2.4.1 N´ızk´a pˇresnost analyzy ´ N´ızk´a uspˇ ´ esˇ nost je kl´ıcˇ ovym ´ probl´emem v oblasti syntaktick´e analyzy ´ pˇrirozenych jazyku. ˚ Nejlepˇs´ı dosahovan´e vysledky se pro cˇ eˇstinu pohybuj´ı ´ ´ okolo 85 procent, coˇz pˇri prumˇ ˚ ern´e d´elce vˇety 17 slov6 znamen´a zhruba 2,5 chyby na kaˇzdou vˇetu. Takov´ato chybovost je neunosn´ ´ a t´emˇerˇ pro vˇsechny dalˇs´ı potenci´aln´ı aplikace vystup u˚ analyzy. Z tohoto duvodu ˚ jsou tak´e vyv´ıjeny st´ale nov´e ´ ´ pˇr´ıstupy k syntaktick´e analyze ˚ mimo jin´e vznikla i tato ´ a z tohoto duvodu pr´ace. 6. Mˇerˇ eˇ no na PDT.
10
2. S YNTAKTICK A´
´ ZA P Rˇ IROZEN Y´ CH JAZYK U˚ ANAL Y
2.4.2 V´ıceznaˇcnost analyzy ´ V´ıceznaˇcnost (ambiguita) je probl´emem na vˇsech urovn´ ´ ıch analyzy pˇriro´ zen´eho jazyka. Na urovni ´ syntaxe je cˇ asto dokonce nemoˇzn´e rozhodnout, kter´e ze dvou moˇznych ´ cˇ ten´ı je spr´avn´e. Jako pˇr´ıklad n´am muˇ ˚ ze poslouˇzit vˇeta: ,,Karel pron´asledoval muˇze na kole.” Z takto samostatnˇe uveden´e vˇety nelze urˇcit, zda se fr´aze na kole poj´ı se jm´enem muˇz cˇ i s dˇejem pron´asledov´an´ı. V tomto pˇr´ıpadˇe by cˇ lovˇeku patrnˇe pomohl sˇ irˇs´ı kontext textu, ten ale syntaktick´e analyz´atory zpravidla nevid´ı. V pˇr´ıpadˇe brnˇensk´eho analyz´atoru synt zpusobuje ˚ probl´em v´ıceznaˇcnosti extr´emn´ı mnoˇzstv´ı stromu˚ na vystupu (aˇz miliardy) pro nˇekter´e vˇety. ´ Duvodem ˚ nen´ı jen vnitˇrn´ı v´ıceznaˇcnost syntaxe, ale i fakt, zˇ e princip analy´ zy implementovany´ v syst´emu zohlednuje ˇ pouze morfologickou informaci vstupn´ıch slov – tedy napˇr. fr´aze ,,d´ıvka od r´ana zp´ıvala” je pro nˇej nerozeznateln´a od fr´aze ,,d´ıvka z vesnice zp´ıvala” a urˇcuje tedy vˇzdy vˇsechny moˇznosti, coˇz ve vysledku muˇ ˚ ze zpusobit ˚ exponenci´aln´ı n´arust ˚ poˇctu stro´ mu. ˚ Praˇzsk´e z´avislostn´ı analyz´atory v´ıceznaˇcnost prakticky neuvaˇzuj´ı, jejich vystupem je vˇzdy jedin´a analyza. Pro vˇsechny souˇcasn´e mysliteln´e aplikace ´ ´ to asi dostaˇcuje, nicm´enˇe v budoucnu se patrnˇe bude muset vyˇreˇsit probl´em zpˇetn´e aplikace informac´ı z vyˇssˇ´ıch vrstev analyzy syn´ jazyka na analyzu ´ taktickou, nebot’ syntaktick´e cˇ ten´ı muˇ ˚ ze byt e ovlivnˇeno s´emanti´ vyznamnˇ ´ kou vypovˇ edi, s´emantikou kontextu, situac´ı promluvy a podobnˇe. Vubec ˚ ´ zde pˇritom neuvaˇzujeme takov´e pˇr´ıpady jako je v´ıceznaˇcnost zamyˇ ´ slen´a, objevuj´ıc´ı se napˇr´ıklad v anekdot´ach cˇ i v poezii, nebot’ analyza ´ takovychto ´ jevu˚ je z´aleˇzitost´ı sp´ısˇ e vzd´alenˇejˇs´ı budoucnosti. 2.4.3 Subjektivita syntaxe Tento probl´em se d´a s trochou nads´azky formulovat jako ,,co cˇ lovˇek, to n´azor”. Tento princip plat´ı i v syntaxi – i v r´amci jednoho projektu cˇ i jedn´e pracovn´ı skupiny se lid´e cˇ asto neshodnou, jak m´a vypadat spr´avn´a analyza ´ nˇekterych ˚ Napˇr´ıklad pro vˇetu ,,Faxu sˇ kod´ı pˇredevˇs´ım ´ syntaktickych ´ jevu. pˇret´ızˇ en´e telefonn´ı linky” 7 nen´ı zcela jasn´e, zda se slovo pˇredevˇs´ım poj´ı sp´ısˇ e ke slovu linky, ke slovesu sˇ kodit, cˇ i dokonce k adjektivu pˇret´ızˇ en´e. Vˇetˇs´ı skupina lid´ı se na spr´avn´em rozhodnut´ı jednoduˇse neshodne.8 7. Uvedeny´ pˇr´ıklad je re´alnou vˇetou z PDT. 8. Podkladem pro toto tvrzen´ı je autorovi diskuse, kter´a probˇehla v listopadu 2008 mezi cˇ leny CZPJ FI MU a drobny´ pruzkum ˚ t´eto ot´azky, ktery´ si n´aslednˇe provedl ve sv´em okol´ı.
11
2. S YNTAKTICK A´
´ ZA P Rˇ IROZEN Y´ CH JAZYK U˚ ANAL Y
ˇ asteˇcVyˇ ´ se uveden´e bohuˇzel plat´ı i o pracovn´ı skupinˇe anot´atoru˚ PDT. C´ nym ´ rˇeˇsen´ım v tomto konkr´etn´ım pˇr´ıpadˇe bylo seps´an´ı rozs´ahl´eho manu´alu pro anot´atory [6], ktery´ urˇcuje, jak maj´ı byt ´ rˇeˇseny nˇekter´e sporn´e a nejednoznaˇcn´e situace pˇri anotaci. Manu´al bohuˇzel ponech´av´a anot´atorum ˚ znaˇcnou volnost v rozhodov´an´ı, nav´ıc ani zdaleka nepokryv´ ´ a vˇsechny sporn´e pˇr´ıpady (coˇz je tak´e v principu zˇrejmˇe nemoˇzn´e), napˇr´ıklad pro slovo pˇredevˇs´ım z vˇety v pˇredchoz´ım odstavci v nˇem zˇ a´ dn´e rˇeˇsen´ı nenajdeme. Ve vysledku se tedy v manu´alnˇe anotovanych ´ ´ korpusovych ´ datech mohou vyskytnout (a vyskytuj´ı) pomˇernˇe vyrazn´ e nekonzistence. ´ Vyvst´av´a tedy ot´azka, zda je n´ami zvoleny´ (a vˇseobecnˇe pouˇz´ıvany) ´ pˇr´ıstup k syntaxi spr´avny. ´ Pˇrestoˇze se totiˇz lid´e neshodnou na tom, co dˇelat se slovem pˇredevˇs´ım z diskutovan´eho pˇr´ıkladu, evidentnˇe jsou schopni pro uˇ ´ cely bˇezˇ n´e komunikace vˇetu spr´avnˇe pochopit a porozumˇet j´ı (podobnˇe jako je tomu u mnoha dalˇs´ıch bˇezˇ nych ´ jevu˚ v jazyce, kter´e se obt´ızˇ nˇe vyjadˇruj´ı v tradiˇcn´ıch formalismech pro syntaxi a kter´e zde pro nedostatek prostoru neuv´ad´ıme). Na tomto m´ıstˇe se spokoj´ıme s prohl´asˇ en´ım, zˇ e zˇ a´ dn´e lepˇs´ı pojet´ı syntaxe zat´ım bohuˇzel neexistuje a n´avrh nov´eho je ukolem, ´ ktery´ znaˇcnˇe pˇresahuje moˇznosti a r´amec t´eto pr´ace. Nicm´enˇe, t´ema t´eto sekce je jistˇe hodno dalˇs´ıho zpracov´an´ı. V dalˇs´ım textu pr´ace se k tomuto t´ematu cˇ a´ steˇcnˇe vr´at´ıme v cˇ a´ sti 5.2.1. 2.4.4 Urˇcov´an´ı spornych ´ a nadbyteˇcnych ´ jevu˚ Tento posledn´ı zminovan ˇ y´ nedostatek souˇcasn´eho pˇr´ıstupu k syntaktick´e analyze ´ je znaˇcnˇe pˇr´ıbuzny´ pˇredchoz´ım dvˇema. J´adrem probl´emu je fakt, zˇ e zvoleny´ syntakticky´ formalismus n´as nut´ı nˇejakym ˚ rozhodo´ zpusobem vat o struktuˇre jevu, ˚ u nichˇz je sporn´e cˇ i irelevantn´ı, kter´a z nab´ızej´ıc´ıch se moˇznost´ı je spr´avn´a. Pˇr´ıkladem muˇ ˚ ze byt ´ slovo pˇredevˇs´ım z pˇredchoz´ı podkapitoly; tento probl´em jsme jiˇz zm´ınili a jeho rˇeˇsen´ı oznaˇcili v r´amci t´eto pr´ace za nedosaˇziteln´e. Existuj´ı vˇsak i jin´e typy struktur, u kterych ´ se probl´em urˇcov´an´ı nadbyteˇcnych eji a jejichˇz rˇeˇsen´ı mohou byt ´ jevu˚ objevuje vyraznˇ ´ ´ pˇr´ımoˇcarˇejˇs´ı – jedno z nich navrhujeme v sekci 3.2.4. N´asleduj´ı pˇr´ıklady z jednotlivych ˚ ´ formalismu. Za pˇr´ıklad nadbyteˇcn´e informace v pˇr´ıpadˇe z´avislostn´ıho formalismu muˇ ˚ zeme bez rozpaku˚ oznaˇcit t´emˇerˇ vˇsechny probl´emy rozeb´ıran´e v odd´ılu 3.7.2. N´avodu pro anot´atory [6]. Jedn´a se zde o zachycen´ı struktury textu adres, n´azvu˚ firem vˇcetnˇe telefonn´ıch cˇ ´ısel apod. Poˇzadavek formalismu, podle nˇehoˇz m´a byt ´ kaˇzd´e slovo (vˇcetnˇe interpunkce) zavˇesˇ eno pr´avˇe na 12
2. S YNTAKTICK A´
´ ZA P Rˇ IROZEN Y´ CH JAZYK U˚ ANAL Y
Obr´azek 2.3: Instrukce pro anotaci vˇety ,,Vˇred, tel. / fax : (069) 23 13 98, l. 260.” v PDT. Pˇrevzato z N´avodu pro anot´atory. jednom dalˇs´ım slovˇe, zde vytv´arˇ´ı komplexn´ı struktury, kter´e jsou vˇsak v drtiv´e vˇetˇsinˇe pˇr´ıpadu˚ zbyteˇcn´e a pro cˇ lovˇeka naprosto neintuitivn´ı. Napˇr. v pˇr´ıpadˇe vˇety ,,Vˇred, tel. / fax : (069) 23 13 98, l. 260.” – viz obr´azek 2.3 – n´am z´avislostn´ı analyza ´ zˇrejmˇe ned´av´a t´emˇerˇ zˇ a´ dnou smysluplnou informaci. Je ot´azkou, zda by takov´eto ,,vˇety” vubec ˚ mˇely byt ´ zaˇrazov´any do jazykov´eho korpusu typu PDT. Pˇr´ıkladem nadbyteˇcn´e informace ve sloˇzkov´em formalismu je struktura sloˇzitˇejˇs´ıch jmennych ´ fr´az´ı. V pˇr´ıpadˇe fr´aze ,,n´ızk´a rychlost pˇrenosu” n´as formalismus (alesponˇ v jeho souˇcasn´e podobˇe v analyz´atoru synt) nut´ı zvolit mezi dvˇema moˇznymi uz´avorkov´an´ımi – (n´ızk´a rychlost) pˇrenosu ´ vs. n´ızk´a (rychlost pˇrenosu). Je zˇrejm´e, zˇ e obˇe uz´avorkov´an´ı jsou ekvivalentn´ı, cˇ lovˇek nen´ı schopen rozhodnout, kter´e z nich je lepˇs´ı. Takovychto pˇr´ıkladu˚ je v obou pˇredstavenych formalismech v´ıce. Je´ ´ jich dusledkem ˚ jsou mj. nekonzistence v anotovanych ´ datech, a n´aslednˇe sn´ızˇ en´a objektivita hodnocen´ı vysledk u˚ analyz´atoru. ˚ Jiinak rˇ eˇceno, v tˇech´ to pˇr´ıpadech nejsou lid´e schopni spr´avn´e rˇeˇsen´ı urˇcit, pˇresto ale chceme po analyz´atorech, aby volily spr´avnˇe.
13
Kapitola 3
Metoda postupn´e segmentace vˇety V t´eto kapitole pop´ısˇ eme z´akladn´ı principy nov´eho pˇr´ıstupu k syntaktick´e analyze, zaloˇzen´eho na postupn´e segmentaci vˇety. Nejprve uvedeme nˇeko´ lik pozorov´an´ı o analyze ´ jazyku˚ a vyslov´ıme neform´aln´ı z´avˇery, ke kterym ´ n´as tato pozorov´an´ı pˇrivedla. N´aslednˇe pop´ısˇ eme navrhovanou metodu v´ıce podrobnˇe a uvedeme jej´ı vztahy k ostatn´ım formalismum. ˚ Konkr´etn´ı aplikace metody, analyz´ator SET, bude n´apln´ı kapitoly n´asleduj´ıc´ı.
3.1
´ Uvodn´ ı pozorov´an´ı o syntaxi
V t´eto sekci uvedeme nˇekolik pozorov´an´ı o syntaxi nejen pˇrirozenych ´ jazyku, ˚ kter´a n´am poslouˇz´ı jako evidence pro nˇekter´e z´avˇery, kter´e n´aslednˇe pˇredstav´ıme. V dalˇs´ıch sekc´ıch pak rozvedeme n´avrh metody analyzy, k n´ızˇ ´ n´as tyto z´avˇery pˇrivedly. 3.1.1 Pozorov´an´ı prvn´ı: Obt´ızˇ e v n´avrhu gramatiky Jak jiˇz cˇ a´ steˇcnˇe vyplynulo z udaj ´ u˚ uvedenych ´ v cˇ a´ sti 2.4, formulace pravidel v tradiˇcn´ıch formalismech je velmi n´aroˇcnym ´ Sloˇzitost jevu˚ ´ ukolem. v pˇrirozen´em jazyce n´am neumoˇznuje ˇ obs´ahnout plny´ rozsah jazyka relativnˇe jednoduchou gramatikou bez vedlejˇs´ıch efektu, ˚ kter´e se n´aslednˇe projevuj´ı n´ızkou pˇresnost´ı cˇ i vysokou v´ıceznaˇcnost´ı vystupu analyzy. Velkou ´ ´ komplikac´ı v pˇr´ıpadˇe cˇ eˇstiny je t´ezˇ relativnˇe volny´ poˇra´ dek slov ve vˇetˇe. Pro analyz´atory zaloˇzen´e na statistick´em uˇcen´ı z korpusovych ˚ ´ dat muzˇ eme uˇcinit podobny´ z´avˇer; tyto n´astroje v tr´enovac´ı f´azi (zjednoduˇsenˇe rˇeˇceno) vyv´ıjej´ı svou sadu pravidel, kter´a pak aplikuj´ı ve f´azi analyzy. Z vy´ ´ sledn´e n´ızk´e pˇresnosti lze soudit, zˇ e tr´enovac´ı data nebo formalismus pouzˇ ity´ pro nauˇcen´a pravidla (pˇr´ıpadnˇe oboj´ı) jsou nedostateˇcn´e. Pro ilustraci uvaˇzme n´asleduj´ıc´ı pˇr´ıklad n´avrhu jednoduch´e bezkontextov´e gramatiky pro analyzu cˇ eskych ´ ´ jmennych ´ fr´az´ı (pˇr´ıklad je vykonstruov´an a znaˇcnˇe zjednoduˇsen, pˇresto vˇsak reflektuje re´alny´ probl´em – v tomto pˇr´ıpadˇe probl´em analyz´atoru synt): 14
3. M ETODA •
NP → N
•
N P → ADJ
•
N P → ADJ N P
•
NP → NP NP
´ SEGMENTACE V Eˇ TY POSTUPN E
(napˇr. ,,pes”) (napˇr. ,,ˇcerven´a (je pˇekn´a barva)”) (napˇr. ,,velky´ pes”) (napˇr. ,,kr´alovna kr´asy”)
Tato gramatika d´av´a pro analyzu element´arn´ı fr´aze ,,velky´ cˇ erny´ pes” ´ v principu 5 moˇznych ´ analyz. ´ Pokud nam´ısto fr´aze o tˇrech slovech budeme uvaˇzovat dvacetislovnou vˇetu, exponenci´aln´ı poˇcet stromu˚ na vystupu ne´ bude jiˇz zˇ a´ dnym ´ pˇrekvapen´ım. Gramatiku by samozˇrejmˇe bylo moˇzno optimalizovat, ovˇsem za cenu n´arustu ˚ jej´ı velikosti a sloˇzitosti, ktery´ by komplikoval jej´ı dalˇs´ı vyvoj. ´ 3.1.2 Pozorov´an´ı druh´e: Negramatick´e konstrukce Jak v pˇr´ıpadˇe form´alnˇe definovanych ˚ tak ´ (napˇr. programovac´ıch) jazyku, v pˇr´ıpadˇe jazyku˚ pˇrirozenych je zn´amou pravdou, zˇ e lid´e bez probl´emu˚ ´ dok´azˇ ´ı analyzovat informaci obsaˇzenou v negramatickych ´ kostrukc´ıch, tj. takovych, ve kterych ´ ´ jsou form´aln´ı chyby. Bez t´eto dovednosti by napˇr´ıklad program´atoˇri nemohli opravovat chyby ve vytvoˇren´em kodu ´ a stejnˇe tak ’ pr´ace jazykovych ´ korektoru˚ by byla zcela nemoˇznou, nebot jedni ani druz´ı by nebyli schopni pochopit zamyˇ opravovan´eho textu. ´ sleny´ vyznam ´ Samozˇrejmˇe, tato schopnost je omezena jen na jist´e druhy gramatickych ´ chyb – jak ve form´aln´ıch, tak v pˇrirozenych ´ jazyc´ıch existuj´ı chyby, kter´e podstatnˇe zmˇen´ı vyznam textu a znemoˇzn´ı cˇ ten´arˇi textu v puvodn´ ˚ ım vy´ ´ znamu porozumˇet. Dovolujeme si vˇsak tvrdit, zˇ e takovychto chyb je v pˇri´ rozenych ´ jazyc´ıch menˇsina. Pro ilustraci uv´ad´ıme pˇr´ıklad dvou negramatickych ´ konstrukc´ı, kterym ´ lid´e ovl´adaj´ıc´ı dany´ jazyk bez probl´emu˚ porozum´ı (a pˇr´ıpadnˇe dok´azˇ ´ı pˇr´ıtomn´e chyby opravit). Prvn´ı pˇr´ıklad se tyk´ ´ a jazyka C jako reprezentanta form´aln´ıch jazyku, ˚ druh´a konstrukce je v cˇ eˇstinˇe: •
if i % 3 == 0 printf(i);
•
Kdyˇz to neudˇel´asˇ zbiju tˇe.
3.1.3 Pozorov´an´ı tˇret´ı: Kl´ıcˇ ov´a slova ve form´aln´ıch jazyc´ıch V tomto pozorov´an´ı si vezmeme opˇet jazyk C jako reprezentanta form´aln´ıch jazyku. ˚ Uvaˇzujme n´asleduj´ıc´ı jednoduchy´ program: 15
3. M ETODA
´ SEGMENTACE V Eˇ TY POSTUPN E
int i = 20; while (i > 0) { if (i % 3 == 0) printf("%d", i); i--; }
Pokusme se nyn´ı o interpretaci procesu, jakym ´ cˇ lovˇek, ktery´ do jist´e m´ıry ovl´ad´a jazyk C, cˇ te dany´ program. Na prvn´ım rˇa´ dku podle kl´ıcˇ ov´eho slova int pozn´a, zˇ e se zav´ad´ı nov´a promˇenn´a. Podle dalˇs´ıch informac´ı na tomt´ezˇ rˇa´ dku usoud´ı, zˇ e promˇenn´a se jmenuje i a jej´ı inici´aln´ı hodnota je 20. V dalˇs´ım rˇa´ dku s pomoc´ı kl´ıcˇ ov´eho slova while rozezn´a, zˇ e na tomto m´ıstˇe zaˇc´ın´a cyklus; podle pˇr´ısluˇsnych ´ sloˇzenych ´ z´avorek pak urˇc´ı jeho rozsah. Podle podm´ınky v kulatych ´ z´avork´ach zase muˇ ˚ ze udˇelat z´avˇer o tom, kdy tento cyklus skonˇc´ı. Takto bychom mohli d´ale pokraˇcovat aˇz do upln´ ´ eho porozumˇen´ı programu. Nyn´ı si poloˇzme ot´azku, jakym ˚ prov´ad´ı analyzu stejn´eho ´ zpusobem ´ programu kompil´ator (poˇc´ıtaˇc). Bezpochyby implementuje nˇejakou formu LR cˇ i LALR analyz´atoru, coˇz znamen´a, zˇ e naˇc´ıt´a jedno vstupn´ı slovo (token) po druh´em a postupnˇe nad nimi stav´ı syntakticky´ strom podle gramatiky pro jazyk C. O pˇresn´e podobˇe procesu lidsk´eho ch´ap´an´ı programu by se jistˇe dalo dlouze diskutovat, nicm´enˇe muˇ ˚ zeme s velkou m´ırou jistoty rˇ´ıci, zˇ e je znaˇcnˇe odliˇsn´a od procesu, jakym ´ programu rozum´ı kompil´ator. Kdyby tomu tak nebylo, program´atoˇri by nedˇelali chyby. D´ale muˇ ˚ zeme rˇ´ıci, zˇ e lidsk´e cˇ ten´ı programu je daleko v´ıce z´avisl´e na kl´ıcˇ ovych int, while, if a printf spolu s pˇr´ısluˇsnymi ´ slovech jazyka. Vyrazy ´ ´ z´avorkami vyznaˇcuj´ıc´ımi rozsah pˇrisp´ıvaj´ı k celkov´emu pochopen´ı struktury programu, zat´ımco napˇr´ıklad podm´ınky v kulatych z´avork´ach jsou ´ relativnˇe druhoˇrad´e a pro r´amcov´e pochopen´ı vypoˇ ´ cetn´ıho toku programu nejsou zapotˇreb´ı. Pro zaj´ımavost srovnejme informaˇcn´ı hodnotu programu s vypuˇstˇenymi kl´ıcˇ ovymi slovy s hodnotou programu, obsahuj´ıc´ı pouze ´ ´ kl´ıcˇ ov´a slova: 16
3. M ETODA
´ SEGMENTACE V Eˇ TY POSTUPN E
xxx i = 20; xxx (i > 0) xxx (i % 3 == 0) xxx("%d", i); i--; ================================== int xxx; while xxx { if xxx printf xxx; xxx; } Pokud muˇ ˚ zeme mluvit o m´ırˇe pochopen´ı u tˇechto ,,programu”, ˚ je tato m´ıra u druh´eho z nich jistˇe vyˇssˇ´ı, pˇrestoˇze tento obsahuje daleko menˇs´ı zlomek textu puvodn´ ˚ ıho programu (poˇc´ıt´ano v tokenech). Pro upln´ ´ e pochopen´ı samozˇrejmˇe potˇrebujeme informace upln´ ´ e, nicm´enˇe vyˇ ´ se uvedenym ´ pˇr´ıkladem jsme uk´azali, zˇ e v procesu lidsk´eho porozumˇen´ı programu mohou m´ıt ruzn´ ˚ e tokeny ruznou ˚ v´ahu. Zejm´ena je tˇreba vˇs´ımat si nejprve kl´ıcˇ ovych slov programu a teprve potom zbylych kon´ ´ strukc´ı. Z tohoto duvodu ˚ je tak´e ve vyvojov ych ´ ´ prostˇred´ıch pro vˇetˇsinu programovac´ıch jazyku˚ hojnˇe vyuˇz´ıv´ano zvyraznˇ en´ı syntaxe, kter´e vyznamnˇ e ´ ´ pom´ah´a program´atorovi pˇri cˇ ten´ı a analyze ´ programu. ´ zdrojov´eho kodu
3.1.4 Pozorov´an´ı cˇ tvrt´e: Kl´ıcˇ ov´a slova v pˇrirozenych ´ jazyc´ıch N´azev t´eto kapitoly muˇ ˚ ze byt kl´ıcˇ ov´a slova ´ ponˇekud zav´adˇej´ıc´ı – vyrazem ´ se v souvislosti s pˇrirozenym ´ jazykem obvykle m´ın´ı souhrn nˇekolika slov urˇcuj´ıc´ıch t´ema textu. Zde budeme tento vyraz pouˇz´ıvat pro slova syn´ takticky vyznamn´ a, tj. ve stejn´em vyznamu jako v pˇredchoz´ı podkapitole, ´ ´ tykaj´ ˚ ´ ıc´ı se programovac´ıch jazyku. Kl´ıcˇ ov´a slova v pˇrirozenych jazyc´ıch funguj´ı ve skuteˇcnosti obdobnˇe ´ jako kl´ıcˇ ov´a slova ve form´aln´ıch jazyc´ıch – aniˇz bychom vidˇeli celou vˇetu, dok´azˇ eme jej´ı r´amcovou strukturu urˇcit pomoc´ı nˇekolika m´alo typu˚ slov. Pˇr´ıklad vˇety:
Aˇz pˇrijdete domu, ˚ udˇelejte si malou modn´ ´ ı pˇrehl´ıdku. 17
3. M ETODA
´ SEGMENTACE V Eˇ TY POSTUPN E
A jej´ı pˇrepis pouze s ,,kl´ıcˇ ovymi slovy” ve dvou moˇznych podob´ach ´ ´ (podle toho, kter´a slova jeˇstˇe povaˇzujeme za kl´ıcˇ ov´a):
Aˇz xxx , xxx . Aˇz pˇrijdete xxx , udˇelejte xxx . Pomˇernˇe zˇretelnˇe vid´ıme, zˇ e znaˇcnou cˇ a´ st struktury vˇety lze odhalit pouze na z´akladˇe nˇekterych cnych slov ve vˇetˇe (to, jestli slovesa ´ vyznaˇ ´ ´ (kl´ıcˇ ovych) ´ povaˇzujeme za kl´ıcˇ ov´a slova, je v tuto chv´ıli nepodstatn´e). Pˇritom identifikace tˇechto kl´ıcˇ ovych ´ slov je cˇ asto v mnohych ´ ohledech jednoznaˇcn´a (coˇz je v analyze ´ jazyka velmi pˇr´ıjemn´a vyjimka). ´ Detekc´ı a pouˇzit´ım nˇekterych ´ kl´ıcˇ ovych ´ slov v naˇsem pojet´ı se zabyvali ´ autoˇri v [21]. Zde byla kl´ıcˇ ov´a slova pouˇz´ıv´ana k segmentaci komplexn´ıch vˇet na menˇs´ı celky. Bylo uk´az´ano, zˇ e proces segmentace je popsatelny´ nˇekolika jednoduchymi pravidly a je do velk´e m´ıry jednoznaˇcny. ´ ´ Tento cˇ l´anek se cˇ a´ steˇcnˇe stal inspirac´ı k naˇsemu pˇr´ıstupu, popisovan´emu n´ızˇ e. V dalˇs´ım textu budeme pracovat s hypot´ezou, podle n´ızˇ si lidsky´ mozek pˇri cˇ ten´ı textu nejprve vˇs´ım´a syntakticky kl´ıcˇ ovych ´ slov, jak byla pˇredstavena, a na jejich z´akladˇe rozpozn´av´a jist´e struktur´aln´ı informace ve vˇetˇe obsaˇzen´e. Teprve potom analyzuje dalˇs´ı, podrobnˇejˇs´ı strukturu vˇety, podobnˇe jako v pˇr´ıpadˇe analyzy ´ programovac´ıch jazyku˚ z pˇredchoz´ı podkapi´ kodu toly. Tato hypot´eza zde nebyla nijak form´alnˇe dok´az´ana (form´aln´ı dukaz ˚ je patrnˇe v ot´azk´ach pruzkumu ˚ procesu˚ v lidsk´em mozku nemoˇzny), ´ nicm´enˇe byla pˇredloˇzena evidence dokl´adaj´ıc´ı, zˇ e nˇekter´e prvky textu jsou pro lidsky´ mozek vyznamnˇ ejˇs´ı neˇz jin´e, at’ jiˇz m´ame na mysli form´aln´ı jazyky cˇ i ´ jazyky pˇrirozen´e.
3.2
Syntaktick´a analyza ´ s vyuˇzit´ım postupn´e segmentace vˇety
Formulace pr´avˇe uveden´e hypot´ezy n´am nyn´ı jiˇz relativnˇe snadno pomuˇ ˚ ze vyj´adˇrit principy, jichˇz chceme vyuˇz´ıt v n´avrhu nov´e metody syntaktick´e analyzy ´ cˇ eˇstiny. V t´eto sekci pop´ısˇ eme n´avrh techniky analyzy ´ sp´ısˇ e obecnˇe, genericky, konkr´etn´ı realizac´ı se zabyv´ ´ ame v n´asleduj´ıc´ı kapitole. Zaˇcneme n´acˇ rtem obecnych principu, ˚ n´aslednˇe budeme naˇsi pˇredstavu postupnˇe ´ konkretizovat. 3.2.1 Z´akladn´ı principy Z´avˇery z pozorov´an´ı a z´akladn´ı principy metody v bodech: 18
3. M ETODA
´ SEGMENTACE V Eˇ TY POSTUPN E
•
ˇ Clovˇ ek pˇri analyze bodu˚ ve vˇetˇe, ´ jazyka vyuˇz´ıv´a detekci kl´ıcˇ ovych ´ na z´akladˇe z´ıskanych ´ informac´ı analyzuje vˇetu ,,nahrubo” a pot´e pokraˇcuje v detekci jemnˇejˇs´ıch podstruktur.
•
Je velmi obt´ızˇ n´e popsat tento proces tradiˇcn´ımi formalismy, viz pozorov´an´ı prvn´ı.
•
Architektura budouc´ıho syst´emu by se tedy mˇela co nejv´ıce bl´ızˇ it hypot´eze o fungov´an´ı lidsk´eho mozku pˇri analyze ´ jazyka.
•
Nejprve se soustˇred´ıme na prvky textu, kter´e lze urˇcit relativnˇe snadno a jednoznaˇcnˇe, d´ale pokraˇcujeme komplikovanˇejˇs´ı analyzou. ´
•
Detekce kl´ıcˇ ovych ´ ıch; v kaˇz´ bodu˚ prob´ıh´a v nˇekolika f´az´ıch cˇ i urovn´ d´e dalˇs´ı f´azi vyuˇz´ıv´ame vysledk u˚ pˇredchoz´ı analyzy ´ ´ (napˇr. postupn´a segmentace vˇety podle nalezenych ´ kl´ıcˇ ovych ´ bodu˚ zajist´ı menˇs´ı rozsah nalezenych ´ segmentu˚ a snazˇs´ı dalˇs´ı zpracov´an´ı jednotlivych ´ segmentu). ˚
•
Detekci kl´ıcˇ ovych ´ slov a vyznaˇcov´an´ı nalezenych ´ syntaktickych ´ vztahu˚ v segmentu obstar´avaj´ı pˇredevˇs´ım manu´alnˇe vytvoˇren´a pravidla. Syntaktick´e vztahy jsou vyznaˇcov´any referencemi mezi slovy segmentu a pˇrid´av´an´ım sloˇzkovych ´ elementu˚ do segmentu (viz d´ale).
•
Na kaˇzd´e urovni ´ analyzy pˇripouˇst´ıme v´ıceznaˇcnost jako norm´aln´ı ´ jev prov´azej´ıc´ı pˇrirozen´e jazyky – tuto v´ıceznaˇcnost budeme jistym ´ zpusobem ˚ prom´ıtat i do vystupu. ´
•
Na kaˇzd´e urovni ´ analyzy ´ vˇsak tak´e zavedeme tˇr´ıd´ıc´ı (hodnot´ıc´ı) funkce, kter´e vyberou nejpravdˇepodobnˇejˇs´ı z rozpoznanych struktur a ´ v dalˇs´ıch urovn´ ´ ıch pak pracujeme jen s touto nejlepˇs´ı analyzou (duvo˚ ´ dem tohoto postupu je efektivita vysledn´ eho algoritmu, vˇetˇs´ı samo´ statnost jednotlivych ´ vrstev a transparentnost cel´eho postupu analy´ zy)
•
Pˇri implementaci pravidel a tˇr´ıd´ıc´ıch funkc´ı se budeme snaˇzit o maxim´aln´ı pˇrehlednost, deklarativnost, modularitu a rozˇsiˇritelnost programu.
3.2.2 Sch´ema algoritmu Nyn´ı pˇristoup´ıme k v´ıce form´aln´ımu popisu algoritmu analyzy. ´ 19
3. M ETODA
´ SEGMENTACE V Eˇ TY POSTUPN E
Uvaˇzujme posloupnost U = [U1 , U2 , ..., Un ] urovn´ ´ ı analyzy. Kaˇzd´a z u´ ´ rovn´ı Ui pˇredstavuje mnoˇzinu pravidel dan´e urovnˇ ´ e, tedy Ui = {Pi,1 , Pi,2 , ..., Pi,m } Necht’ na vstupu je vˇeta (segment) S. Algoritmus analyzy proch´az´ı jednu ´ urove ´ nˇ po druh´e a snaˇz´ı se naj´ıt realizaci (t´ezˇ match ) kaˇzd´eho pravidla z pˇr´ısluˇsn´e mnoˇziny v dan´em segmentu. Pokud jsou nalezeny realizace, jsou vybr´any nejlepˇs´ı nekonfliktn´ı z nich a v segmentu jsou vyznaˇceny pˇr´ısluˇsn´e syntaktick´e vztahy. Podle aktu´aln´ı urovnˇ ´ e Ui mohou byt ´ v segmentu vytvoˇreny subsegmenty Si,1 , Si,2 ..., Si,p , na kterych spouˇst´ıme rekurzivnˇe. Du˚ ´ pak analyzu ´ sledkem vytvoˇren´ı subsegmentu˚ je mj. to, zˇ e nemohou byt ´ pˇrid´av´any zˇ a´ dn´e dalˇs´ı vztahy mezi prvky z odliˇsnych ´ subsegmentu˚ Sa,b , Sc,d , kde a 6= c nebo b 6= d. Toto muˇ ˚ ze byt ´ uˇziteˇcn´e napˇr. pˇri analyze ´ vsuvek cˇ i relativn´ıch vˇet – vytvoˇren´ı subsegmentu pro relativn´ı vˇetu zpusob´ ˚ ı jej´ı oddˇelen´ı od zbytku vˇety, ktery´ d´ale nen´ı v analyze uvaˇ z ov´ a n (a symetricky, relativn´ı vˇeta nen´ı ´ d´ale uvaˇzov´ana v analyze ´ zbytku segmentu). Preciznˇeji ve formˇe pseudokodu ´ je idea algoritmu zn´azornˇena na obr´azku 3.1.
3.2.3 Pravidla a realizace V t´eto cˇ a´ sti upˇresn´ıme pojem pravidla a jeho realizace v dan´em segmentu. Jako motivaˇcn´ı pˇr´ıklad n´am poslouˇz´ı n´asleduj´ıc´ı pˇredstava. Chceme, aby z´apis typu adj ... noun
AGREE 0 2 gnc
MARK 0
DEP 2
umoˇznil nal´ezt ve vstupn´ım segmentu vˇsechna pˇr´ıdavn´a jm´ena n´asledovan´a (ne nutnˇe bezprostˇrednˇe) podstatnym ´ jm´enem takov´a, zˇ e obˇe slova se shoduj´ı v rodˇe, cˇ ´ısle a p´adˇe. Z´arovenˇ m´a uvedeny´ z´apis vyznaˇcit z´avislost pˇr´ıdavn´eho jm´ena na pˇr´ısluˇsn´em substantivu. Nyn´ı form´alnˇeji. Kaˇzd´e pravidlo Pi,j se skl´ad´a ze sˇ ablony Ti,j a mnoˇziny akc´ı Ai,j . 20
3. M ETODA
´ SEGMENTACE V Eˇ TY POSTUPN E
function parse(segment S): -------------------------init(U);
// inicializuj mnoˇ zinu ´ urovn´ ı
for level in U˜do begin found_matches := {}; for rule in level do begin new_matches := find_matches(rule, S); // najdi realizace pravidla v˜segmentu found_matches := found_matches + new_matches; end; best_matches := select_best_matches( found_matches, level); // vyber nejlepˇ s´ ı nekonfliktn´ ı realizace for match in best_matches do begin // pˇ ridej do segmentu pˇ r´ ısluˇ sn´ e vztahy add_relationships(S, match); if creates_subsegments(level) then begin SS := create_subsegment(S, match); parse(SS); end; end; end; Obr´azek 3.1: Pseudokod ´ algoritmu analyzy ´
21
3. M ETODA
´ SEGMENTACE V Eˇ TY POSTUPN E
ˇ Sablona je posloupnost znaˇcek [z1 , z2 , ..., zn ], kde kaˇzd´a znaˇcka reprezentuje jedno nebo v´ıce slov segmentu (u kaˇzd´e znaˇcky je pˇritom pevnˇe urˇceno, zda muˇ ˚ ze cˇ i nemuˇ ˚ ze reprezentovat v´ıce slov). Kaˇzd´a znaˇcka d´ale definuje podm´ınky urˇcuj´ıc´ı, kter´a slova muˇ ˚ ze reprezentovat. Tyto podm´ınky mohou omezovat tvar slova, lemma, morfologickou znaˇcku a pˇr´ıpadnˇe dalˇs´ı atributy dostupn´e pro prvky vstupn´ıho segmentu. Pˇred objasnˇen´ım pojmu akce nejprve definujeme realizaci pravidla. Budeme uvaˇzovat segment S jako posloupnost vstupn´ıch slov [s1 , s2 , ..., sm ]. Realizace pravidla je pak poslounost uspoˇra´ danych ´ dvojic [(zi1 , sj ), (zi2 , sj+1 ), ..., (ziq , sj+q−1 )] takov´a, zˇ e i1 = 1, iq = n, d´ale ik+1 = ik + 1 (pokud zik reprezentuje pr´avˇe jedno vstupn´ı slovo) nebo ik+1 = ik (jen pokud zik reprezentuje v´ıce vstupn´ıch slov) a koneˇcnˇe pro kaˇzdou dvojici posloupnosti (z, s) plat´ı, zˇ e s splnuje ˇ vˇsechny podm´ınky definovan´e znaˇckou z. Definovali jsme tedy relaci, kter´a souvisl´e podposloupnosti vstupn´ıch slov pˇriˇrad´ı podle urˇcitych ´ pravidel znaˇcky ze sˇ ablony pravidla. Tuto relaci budeme nazyvat realizace. ´ Mnoˇzina akc´ı A obsahuje akce prov´adˇen´e nad realizac´ı pravidla, resp. nad prvky segmentu, kterym ´ je v realizaci pˇriˇrazena nˇejak´a znaˇcka. Akce mohou byt ´ troj´ıho typu: •
Dalˇs´ı omezen´ı na realizaci. Takov´ato pravidla vyjadˇruj´ı dalˇs´ı podm´ınky, kter´e mus´ı realizace splnovat ˇ a kter´e nelze vyj´adˇrit sˇ ablonou pravidla. Pˇr´ıkladem je test na gramatickou shodu u nˇekterych ´ prvku˚ vstupn´ıho segmentu.
•
Vyznaˇcen´ı dalˇs´ıch atributu˚ realizace. Tyto akce mohou z realizace vybrat nˇekter´a (duleˇ ˚ zit´a) vstupn´ı slova nebo nastavit pravdˇepodobnostn´ı ohodnocen´ı pˇr´ısluˇsn´eho pravidla. Atributy vyznaˇcen´e tˇemito akcemi mohou byt ´ d´ale pouˇzity v tˇr´ıd´ıc´ıch funkc´ıch a mohou je t´ezˇ vyuˇz´ıvat akce tˇret´ıho typu –
•
Akce pˇrid´avaj´ıc´ı vztahy do segmentu. Tyto akce rˇ´ıd´ı cˇ innost algoritmu v pˇr´ıpadˇe, zˇ e je pˇr´ısluˇsn´a realizace vybr´ana do dalˇs´ı analyzy ´ vybˇ ´ erovou funkc´ı select best matches. Mohou reprezentovat pˇrid´an´ı z´avislosti do segmentu nebo pˇrid´an´ı sloˇzkov´eho uzlu do segmentu (viz t´ezˇ d´ale).
Na tomto m´ıstˇe se spokoj´ıme s takto obecnou podobou definice pravidel a jejich realizac´ı. Aktu´aln´ı reprezentace pravidel v programu je pops´ana 22
3. M ETODA
´ SEGMENTACE V Eˇ TY POSTUPN E
v cˇ a´ sti 4.3, je vˇsak moˇzn´e, zˇ e konkr´etn´ı podoba jejich form´atu se bude d´ale vyv´ıjet, proto povaˇzujeme za vhodn´e uv´est ji oddˇelenˇe. 3.2.4 Formy vystupu ´ V t´eto cˇ a´ sti konkretizujeme formy vystupu navrhovan´eho analyz´atoru. ´ Hybridn´ı syntaktick´e stromy Vystupem z algoritmu pˇredstaven´eho v pˇredchoz´ım textu bude segment ´ obohaceny´ o strukturn´ı vztahy mezi jeho prvky, dle realizac´ı pravidel vybranych Abychom se v maxim´aln´ı m´ırˇe vyhnuli probl´e´ v procesu analyzy. ´ mum ˚ popsanym kombinaci ´ v cˇ a´ sti 2.4.4, navrhli jsme jako form´at vystupu ´ z´avislostn´ıho a sloˇzkov´eho form´atu syntaktickych ˚ v dalˇs´ım textu ´ stromu, hybridn´ı form´at. jej budeme nazyvat ´ Syntakticky´ strom v hybridn´ım form´atu obsahuje dva typy uzlu: ˚ povrchov´e, kter´e pˇredstavuj´ı slova vstupn´ı vˇety, a sloˇzkov´e, pˇredstavuj´ıc´ı sloˇzkov´e elementy. Jeho hrany se rovnˇezˇ dˇel´ı do dvou skupin. Hrany z´avislostn´ı vyznaˇcuj´ı z´avislostn´ı vztahy mezi uzly, stejnˇe jako je tomu u praˇzsk´eho z´avislostn´ıho pˇr´ıstupu. Hrany sloˇzkov´e vyznaˇcuj´ı pˇr´ısluˇsnost uzlu do sloˇzˇ ıd´ıc´ı uzel sloˇzkov´e hrany mus´ı byt ky. R´ ´ vˇzdy sloˇzkovy. ´ T´ımto hybridn´ım form´atem se snaˇz´ıme reflektovat ruznorodost ˚ syntaktickych ˚ ktery´ je pro nˇej vhodnˇej´ jevu˚ a kaˇzdy´ z nich zachycovat zpusobem, sˇ´ı. Tedy napˇr´ıklad pro analyzu ´ jmenn´e skupiny (jakou je napˇr. ,,n´ızk´a rychlost pˇrenosu” ) zvol´ıme z´avislostn´ı formalismus. Vyhneme se tak probl´emu s dvoj´ım moˇznym ´ uz´avorkov´an´ım, jak byl pops´an v cˇ a´ sti 2.4.4. Naopak pro informace typu adres, kod ´ u, ˚ jmen firem a osob apod. vol´ıme form´at sloˇzkovy´ (motivace opˇet poch´az´ı z cˇ a´ sti 2.4.4). Vˇerˇ´ıme, zˇ e dobry´ analyz´ator nemus´ı umˇet urˇcit vnitˇrn´ı strukturu vˇsech moˇznych oznaˇcen´ı ´ kodov´ ´ eho charakteru, jako to vyˇzaduje z´avislostn´ı formalismus (zabyv´ ´ ame pˇrirozen´eho jazyka), staˇc´ı, kdyˇz v textu kodov´ ´ a oznaˇcen´ı rozse analyzou ´ pozn´a a oznaˇc´ı (napˇr. pˇripojen´ım vˇsech slov kodov´ ´ eho oznaˇcen´ı pod jeden pˇridany´ sloˇzkovy´ element). Sloˇzkovy´ pˇr´ıstup pouˇz´ıv´ame i v pˇr´ıpadˇe analyzy ´ koordinac´ı, nebot’ vyznaˇcen´ı koordinace z´avislost´ı na spojovac´ım vyrazu (jako je tomu v PDT) ´ povaˇzujeme za znaˇcnˇe matouc´ı jak pro cˇ lovˇeka, jenˇz cˇ te vysledky analyzy, ´ ´ tak pro vlastn´ı analyz´ator. Uk´azku hybridn´ıho stromu muˇ ˚ zeme vidˇet na obr´azku 3.2. Z´avislostn´ı hrany jsou vyznaˇceny cˇ ernˇe, sloˇzkov´e modˇre. Sloˇzkov´e uzly jsou vyznaˇceny rovnˇezˇ modrou barvou a n´azvem v lomenych ´ z´avork´ach. 23
3. M ETODA
´ SEGMENTACE V Eˇ TY POSTUPN E
Obr´azek 3.2: Uk´azka hybridn´ıho stromu pro vˇetu ,,Poˇcet kopi´ı z jedn´e kazety se pohybuje kolem 9 aˇz 10 tis´ıc.”
Z´avislostn´ı vystup ´ Protoˇze je velmi zˇ a´ douc´ı, aby spr´avnost vystup u˚ z navrhovan´eho analyz´a´ toru bylo moˇzno zmˇerˇit na korpusu PDT, bude analyz´ator schopen poskytovat vystup i v cˇ istˇe z´avislostn´ım form´atu. Toho doc´ıl´ıme tak, zˇ e u kaˇzd´eho ´ sloˇzkov´eho elementu, pˇridan´eho do segmentu, urˇc´ıme nejduleˇ ˚ zitˇejˇs´ı slovo (hlavu) tohoto elementu a pˇri pˇrevodu do z´avislostn´ıho form´atu zavˇes´ıme vˇsechny prvky dan´e sloˇzky na tuto hlavu.
V´ıceznaˇcnost ve vystupu ´ Kromˇe jednoznaˇcn´eho vystupu ve formˇe nejlepˇs´ıch vybranych ´ ´ realizac´ı a syntaktick´eho stromu, ktery´ je jimi urˇcen, chceme na vystupu zachytit i in´ formaci o v´ıceznaˇcnostech v segmentu. Toho dos´ahneme vypisem vˇsech nalezenych ´ ´ realizac´ı n´asledovanym ´ vy´ stupem z funkce select best matches, vyb´ıraj´ıc´ı nejlepˇs´ı z nich. Tento pˇr´ıstup n´am umoˇzn´ı velmi n´azorny´ pohled na proces analyzy ´ a kromˇe zachycen´ı pˇr´ıpadnych ´ v´ıceznaˇcnost´ı umoˇzn´ı efektivn´ı ladˇen´ı pravidel a tˇr´ıd´ıc´ıch funkc´ı. 24
3. M ETODA
3.3
´ SEGMENTACE V Eˇ TY POSTUPN E
Zaˇrazen´ı formalismu
Z pˇredchoz´ıho textu, v nˇemˇz jsme pˇredstavili pˇrevod stromu˚ na vystupu ´ navrhovan´eho analyz´atoru do z´avislostn´ıho formalismu, jiˇz vyplyv´ ´ a, zˇ e vˇsechny struktury, kter´e lze reprezentovat z´avislostn´ım formalismem, mu˚ zˇ eme reprezentovat i v n´ami navrhovan´em formalismu. V opaˇcn´em smˇeru tato pˇrevoditelnost nutnˇe platit nemus´ı – n´ami pˇredstaveny´ formalismus dovoluje kodovat ´ vztah mezi tˇremi a v´ıce slovy bez nutnosti rozliˇsen´ı jemnˇejˇs´ı struktury tˇechto vztahu˚ (pomoc´ı sloˇzkovych ´ elementu), ˚ zat´ımco z´avislostn´ı form´at syntaktickych ´ stromu˚ povoluje pouze bin´arn´ı vztahy. Podobnˇe n´asˇ formalismus narozd´ıl od z´avislostn´ıho umoˇznuje ˇ vyj´adˇrit souˇradny´ vztah, opˇet pomoc´ı sloˇzkovych ˚ V pˇr´ıpadˇe ´ elementu. anotace PDT se tyto nedostatky cˇ a´ steˇcnˇe rˇ eˇs´ı zaveden´ım syntaktickych ´ (analytickych) funkc´ ı , jak bylo pops´ a no v sekci vˇ e novan´ e z´ a vislostn´ ı mu forma´ lismu, z´avislostn´ı analyz´atory vˇsak se syntaktickymi funkcemi nepracuj´ı. ´ Srovn´an´ı naˇseho formalismu s formalismem sloˇzkovym ´ vych´az´ı obdobnˇe jako srovn´an´ı formalismu˚ z´avislostn´ıho a sloˇzkov´eho (viz uvodn´ ´ ı kapitoly). Pˇrednost´ı naˇseho n´avrhu oproti sloˇzkov´emu formalismu je zejm´ena schopnost kodovat ´ neprojektivn´ı konstrukce. Pˇrevoditelnost mezi obˇema form´aty je moˇzn´a v jistych ´ mez´ıch, stejnych ´ jako jsou meze pˇrevodu mezi form´atem z´avislostn´ım a sloˇzkovym ´ [2].
25
Kapitola 4
Syst´em SET V t´eto kapitole pˇredstavujeme konkr´etn´ı aplikaci metody popsan´e v kapitole pˇredchoz´ı – syst´em pro automatickou syntaktickou analyzu cˇ eˇstiny ´ SET. Pop´ısˇ eme celkovy´ n´avrh syst´emu, konkr´etn´ı form´at pravidel a implementaci hodnot´ıc´ıch funkc´ı s vazbou na teoreticky´ popis z pˇredchoz´ı kapitoly. V z´avˇeru kapitoly pod´ame struˇcnou informaci o pouˇzit´ı vysledn´ eho ´ programu, ktery´ je pˇriloˇzen na CD.
4.1
N´avrh syst´emu
Z´akladn´ı cˇ innost syst´emu spoˇc´ıv´a v realizaci algoritmu specifikovan´eho v pˇredchoz´ı kapitole. N´avrh oddˇeluje znalosti ve formˇe pravidel od vy´ konn´eho kodu ´ programu, pravidla jsou z tohoto duvodu ˚ uchov´av´ana ve vyhrazen´em textov´em souboru, oddˇelenˇe od zdrojovych ´ u˚ programu. ´ kod V n´avrhu syst´emu jsme si stanovili nˇekolik prakticky motivovanych ´ omezen´ı rˇeˇsen´eho probl´emu. Pˇrednˇe se budeme vˇenovat analyze ´ cˇ eˇstiny; n´avrh pravidel a pˇr´ıpadn´a uzpusoben´ ˚ ı programu pro jin´e jazyky ponech´av´ame dalˇs´ımu vyvoji. D´ale, na vstupu programu oˇcek´av´ame spr´avnˇe ´ utvoˇrenou cˇ eskou vˇetu. Nechceme se zabyvat ani rozliˇsov´an´ım, zda je dan´a ´ vˇeta spr´avnˇe utvoˇrena,1 ani opravami chyb ve vˇet´ach cˇ i hled´an´ı spr´avnych ´ analyz chybami algoritmus samozˇrej´ vˇet s chybami. Vˇety s gramatickymi ´ mˇe zpracuje, na vystupu ovˇsem mohou byt ˚ e chy´ ´ nepˇresnosti zpusoben´ bami ve vstupn´ı vˇetˇe. Posledn´ım praktickym ´ omezen´ım je rozhodnut´ı analyzovat pouze vˇety, kter´e jsou jednoznaˇcnˇe morfologicky oznaˇckov´any. Pˇred pouˇzit´ım programu je tedy tˇreba aplikovat morfologicky´ analyz´ator a desambigu´ator, stejnˇe jako je tomu u praˇzskych ˚ Vzhledem k tomu, zˇ e ´ z´avislostn´ıch analyz´atoru. desambigu´ator nutnˇe mus´ı prov´adˇet alesponˇ z´akladn´ı povrchovou syntaktickou analyzu, doch´az´ı zde k cˇ a´ steˇcn´emu pˇrekryvu rˇeˇsenych ´ V cˇ a´ s´ ´ uloh. 1. Rozhodov´an´ı spr´avnosti, pˇr´ısluˇsnosti danych ´ vˇet do jazyka, nar´azˇ ´ı opˇet na probl´em nenalezen´ı shody mezi vˇetˇs´ı skupinou lid´ı.
26
4. S YST E´ M SET ti 5.4.1 proto navrhujeme rozˇs´ırˇen´ı analyz´atoru o analyzu morfologicky ´ v´ıceznaˇcnych ´ vstupu˚ a aplikaci navrhovan´eho algoritmu na desambiguaci morfologick´e informace. Vlastn´ı cˇ innost analyz´atoru – aplikace pravidel na vstupn´ı segment – je rozdˇelena do nˇekolika modulu, ˚ kter´e popisujeme v n´asleduj´ıc´ı cˇ a´ sti. Byl navrˇzen objektovy´ model reprezentace vˇety, pravidel, i vlastn´ı analyzy. ´ Z duvodu ˚ rozˇsiˇritelnosti, rychlosti vyvoje, cˇ itelnosti z´apisu a celkov´e ´ pˇrehlednosti programu byl pro implementaci zvolen jazyk Python. Tato volba se muˇ ˚ ze negativnˇe projevit na rychlosti analyzy, kter´a vˇsak pro n´as ´ v souˇcasn´e f´azi vyvoje nen´ı prioritou, nav´ıc je probl´em rychlosti v pˇr´ıpadˇe ´ potˇreby relativnˇe snadno rˇeˇsitelny´ reimplementac´ı nˇekterych kl´ıcˇ ovych ´ ´ modulu˚ napˇr. v jazyce C.
4.2
Implementace
V t´eto cˇ a´ sti pop´ısˇ eme vlastn´ı implementaci syst´emu. Popis budeme organizovat podle rozdˇelen´ı syst´emu do jednotlivych ˚ ´ modulu. 4.2.1 Modul grammar Tento modul zajiˇst’uje naˇc´ıt´an´ı pravidel z definiˇcn´ıho souboru a jejich organizaci do jednotlivych ´ ı analyzy. Obsahuje definici tˇr´ıdy Rule, repre´ urovn´ ´ zentuj´ıc´ı pravidlo, a tˇr´ıdy Grammar, jeˇz pˇredstavuje soubor vˇsech pravidel rozˇclenˇenych ´ ı analyzy. ´ do jednotlivych ´ urovn´ ´ Souˇca´ st´ı tˇechto tˇr´ıd je mj. analyz´ator syntaxe pravidel, ktery´ pˇrev´ad´ı textovou podobu pravidel do pamˇet’ovych ´ struktur. Struktura pravidla je d´ana sˇ ablonou, tj. seznamem znaˇcek, a mnoˇzinou akc´ı. Kaˇzd´a znaˇcka je vnitˇrnˇe reprezentov´ana jako mnoˇzina podm´ınek zapsanych instanc´ı ob´ jektu slovn´ık (Python Dictionary). Akce jsou rovnˇezˇ reprezentov´any slovn´ıkovymi objekty, kde kl´ıcˇ i jsou jm´ena akc´ı, hodnotami seznamy argumentu˚ ´ akce. 4.2.2 Modul token Modul token modeluje z´akladn´ı prvky vstupn´ı vˇety – slova neboli tokeny. Obsahuje definici z´akladn´ı tˇr´ıdy Token a tˇr´ı odvozenych ´ tˇr´ıd: SurfaceToken, pouˇz´ıvan´e pro reprezentaci skuteˇcnych vstupn´ıch slov, PhrToken, repre´ zentuj´ıc´ı pˇrid´avan´e sloˇzkov´e elementy, a LinkToken, jej´ızˇ instance zajiˇst’uj´ı vazby mezi segmentem a vytvoˇrenymi subsegmenty. ´ 27
4. S YST E´ M SET Kaˇzd´a instance tˇr´ıdy Token obsahuje odkaz na mateˇrsky´ segment cˇ i subsegment, d´ale pak odkaz na token, na nˇemˇz z´avis´ı, a odkaz na seznam vˇsech potomku˚ (tokenu, ˚ kter´e z´avis´ı na tomto tokenu). Tyto dva posledn´ı udaje ´ jsou na poˇca´ tku pr´azdn´e, jsou naplnov´ ˇ any v prubˇ ˚ ehu analyzy. Na ´ z´akladˇe udaj ´ u˚ v nich obsaˇzenych vykreslov´an vy´ je po skonˇcen´ı analyzy ´ ´ sledny´ syntakticky´ strom. Kde je to smyslupln´e, instance tˇr´ıdy Token maj´ı atributy word, lemma a tag urˇcuj´ıc´ı pˇr´ısluˇsn´e morfologick´e kategorie. Morfologick´a znaˇcka (tag ) je oˇcek´av´ana v atributov´em form´atu, jaky´ pouˇz´ıv´a morfologicky´ analyz´ator ajka [25], vyvinuty´ v CZPJ FI MU, a v principu nen´ı omezena na morfologickou informaci jednotlivych ´ slov. Vnitˇrn´ı struktura analyz´atoru s konkr´etn´ı podobou znaˇcky nijak nepracuje a pˇrizpusoben´ ˚ ı analyz´atoru pˇr´ıpadnym ´ mnoˇziny pravidel. ´ novym ´ znaˇck´am by tedy znamenalo pouze upravu 4.2.3 Modul segment Tento modul reprezentuje vstupn´ı vˇetu, je v nˇem definov´ana tˇr´ıda Segment. Instance t´eto tˇr´ıdy obsahuj´ı seznam instanc´ı tˇr´ıdy Token (slov, prvku˚ segmentu) a (zpoˇca´ tku pr´azdny) ˚ ´ seznam sv´azanych ´ subsegmentu. Jeho metody pokryvaj´ ´ ı naˇc´ıt´an´ı slov z vertik´aln´ıho souboru ve form´atu brief a tisk vystupn´ ıch stromu˚ v z´avislostn´ım nebo hybridn´ım form´atu na ´ z´akladˇe vztahu˚ mezi obsaˇzenymi instancemi typu Token. Objekt tak´e im´ plementuje nˇekter´e pomocn´e metody vyuˇz´ıvan´e v procesu analyzy, jako ´ napˇr. pˇrid´an´ı z´avislosti mezi prvky segmentu nebo pˇrid´an´ı sloˇzkov´eho elementu spolu s pˇr´ısluˇsnymi vazbami. ´ 4.2.4 Modul matcher ´ Ukolem modulu matcher je reprezentace a vyhled´av´an´ı realizac´ı pravidel v segmentu. Obsahuje definice tˇr´ıd Match a Matcher. Tˇr´ıda Match pˇredstavuje jednu konkr´etn´ı realizaci pravidla v dan´em segmentu. Obsahuje vˇsechny informace potˇrebn´e pro vyznaˇcen´ı pˇr´ısluˇsnych ´ vztahu˚ v segmentu – pˇriˇrazen´ı jednotlivych ´ prvku˚ segmentu znaˇck´am v sˇ ablonˇe pravidla a vysledky vypoˇ ´ ´ ctu akc´ı nad danou realizac´ı. Tˇr´ıda Matcher zajiˇst’uje vyhled´av´an´ı vˇsech realizac´ı dan´eho pravidla nad segmentem a vypoˇ ´ cet akc´ı pravidla nad nalezenymi ´ realizacemi. Zde je nutno poznamenat, zˇ e cˇ asov´a n´aroˇcnost vyhled´an´ı vˇsech realizac´ı muˇ ˚ ze byt ´ aˇz kvadratick´a vzhledem k d´elce segmentu. Duvodem ˚ je jednoduchy´ fakt, zˇ e i poˇcet nalezenych ˚ ze byt ˚ zit´e ´ realizac´ı muˇ ´ v principu kvadraticky. ´ Duleˇ vˇsak je, zˇ e se jedn´a pouze o extr´emn´ı pˇr´ıpady a u vˇsech rozumnˇe defino28
4. S YST E´ M SET vanych ´ pravidel je sloˇzitost nalezen´ı realizac´ı line´arn´ı (algoritmus je zalozˇ en na pruchodu ˚ segmentem a testov´an´ı, zda vstupn´ı slova splnuj´ ˇ ı podm´ınky znaˇcek sˇ ablony dan´eho pravidla). Modul matcher t´ezˇ obsahuje pomocn´e funkce, jeˇz testuj´ı, zda urˇcit´e slovo vstupn´ıho segmentu splnuje ˇ podm´ınky dan´e urˇcitou znaˇckou sˇ ablony pravidla. 4.2.5 Modul parser Tento modul integruje cˇ innost vˇsech dˇr´ıve popsanych ´ modulu˚ a realizuje vlastn´ı cˇ innost algoritmu popsan´eho v cˇ a´ sti 3.2.2. Je v nˇem definov´ana tˇr´ıda Parser se z´akladn´ı metodou parse(), pˇrid´avaj´ıc´ı struktur´aln´ı vztahy do segmentu. Obsahem tˇr´ıdy Parser jsou t´ezˇ hodnot´ıc´ı funkce pro kaˇzdou z urovn´ ´ ı analyzy. Tyto funkce jsou vesmˇes zaloˇzeny na jednoduch´em vypoˇ ´ ´ ctu zahrnuj´ıc´ım velikost realizace (poˇcet slov segmentu, kter´a jsou pokryta danou realizac´ı) a pravdˇepodobnost pravidla (vysledek jedn´e z pravidlovych ´ ´ akc´ı). Podle vysledku tˇechto hodnot´ıc´ıch funkc´ı jsou vˇsechny realizace se´ tˇr´ıdˇeny a do dalˇs´ı analyzy ´ jsou vyb´ır´any nejlepˇs´ı z nich, kter´e nejsou v konfliktu (vztahy v segmentu jimi urˇcen´e nekoliduj´ı). 4.2.6 Dalˇs´ı moduly Implementaci doplnuj´ ˇ ı moduly set, tree view a utils. Modul set je koˇrenovym ´ modulem cel´eho programu, obsahuje analyzu ´ pˇr´ıkazov´e rˇa´ dky (pro tento ukol ´ byl pouˇzit modul getopt) a spouˇstˇen´ı analyzy podle za´ danych ˚ ´ parametru. Modul tree view slouˇz´ı ke zobrazen´ı jednoduch´eho grafick´eho vystu´ pu vysledn ych i v textov´e po´ ´ stromu˚ (program samozˇrejmˇe d´av´a vystup ´ dobˇe, tento vˇsak nen´ı pro cˇ lovˇeka pˇr´ıliˇs pˇrehledny). ´ Koneˇcnˇe modul utils obsahuje nˇekolik pomocnych ´ generickych ´ funkc´ı, zejm´ena pro usnadnˇen´ı vypis ´ u˚ programu.
4.3
Syst´em pravidel
V t´eto sekci pop´ısˇ eme konkr´etn´ı implementaci syst´emu pravidel podle principu˚ uvedenych ´ v cˇ a´ sti 3.2.3. Definice pravidel pro cˇ eˇstinu ve form´atu popisovan´em v t´eto kapitole jsou uchov´av´any v souboru grammar.set a jsou dostupn´e na pˇriloˇzen´em CD. 29
4. S YST E´ M SET V analyz´atoru SET jsme se rozhodli implementovat pravidla v sˇ esti vrstv´ach. Kaˇzd´a z vrstev odhaluje odliˇsnou strukturn´ı informaci. Popisujeme zde puvodn´ ˚ ı n´avrh pravidel, v dalˇs´ım vyvoji se muˇ ˚ ze uk´azat, zˇ e nˇekter´e ´ z vrstev jsou nepotˇrebn´e, cˇ i naopak je tˇreba pˇridat dalˇs´ı. Prvn´ı tˇri vrstvy popisuj´ı jevy relativnˇe jednoduch´e, dalˇs´ı tˇri se postupnˇe zabyvaj´ ´ ı sloˇzitˇejˇs´ımi a sloˇzitˇejˇs´ımi fenom´eny. Analyza ´ podle jednotlivych ´ vrstev pravidel prob´ıh´a n´asledovnˇe: 1.
Detekce tzv. ,,tvrdych” (jednoznaˇcnych) vsuvek. Tyto vsuvky vytvoˇr´ı ´ ´ subsegment z´avisly´ na vrcholov´em uzlu hlavn´ı vˇety. Mohou to byt ´ napˇr. dodatky uveden´e v z´avork´ach.
2.
Detekce vˇetnych ´ ukonˇcen´ı. Ukonˇcen´ı umist’ujeme do jedn´e sloˇzky s vrcholovym ´ uzlem hlavn´ı vˇety.
3.
Detekce ,,tvrdych” (jednoznaˇcnych) oddˇelovaˇcu. ˚ Tyto oddˇelovaˇce roz´ ´ dˇel´ı vˇetu (segment) na subsegmenty souˇradnˇe spojen´e sloˇzkovym ´ elementem. Mohou to byt ´ napˇr. stˇredn´ıky.
4.
Detekce vedlejˇs´ıch vˇet. Vedlejˇs´ı vˇety opˇet vytv´arˇ´ı subsegmenty.
5.
Detekce koordinac´ı, m´enˇe jednoznaˇcnych ´ vsuvek (napˇr. oddˇelenych ´ cˇ a´ rkami) a oznaˇcen´ı kodov´ ´ eho charakteru (data, telefonn´ı cˇ ´ısla). Tyto struktury jsou reprezentov´any sloˇzkovymi elementy. ´
6.
Zbyl´e z´avislostn´ı (a tedy bin´arn´ı) vztahy ve vˇetˇe. Tyto struktury jsou reprezentov´any z´avislostmi mezi prvky segmentu.
V n´asleduj´ıc´ı sekci pop´ısˇ eme konkr´etn´ı form´at pravidel analyz´atoru, tedy kodov´ ´ an´ı sˇ ablon a akc´ı pravidel, vˇcetnˇe vyˇ ´ ctu vˇsech dostupnych ´ akc´ı. 4.3.1 Form´at z´apisu pravidel Pravidla zapisujeme jako sˇ ablonu n´asledovanou seznamem akc´ı. Cel´a sˇ ablona mus´ı byt ´ na jednom rˇ a´ dku a mus´ı byt ´ uvedena kl´ıcˇ ovym ´ slovem TMPL: (vˇcetnˇe dvojteˇcky). Seznam akc´ı muˇ ˚ ze byt ´ rozdˇelen v m´ıstˇe pˇred kl´ıcˇ ovym ´ slovem (viz d´ale) tak, aby novy´ rˇa´ dek zaˇc´ınal kl´ıcˇ ovym ´ slovem. V dalˇs´ım textu podrobnˇe pop´ısˇ eme form´at z´apisu jednotlivych kom´ ˇ ast 4.3.6 je vˇenov´ana konkr´etn´ım pˇr´ıkladum ponent pravidla. C´ ˚ pravidel, s nimiˇz muˇ ˚ ze cˇ ten´arˇ obecny´ popis srovn´avat. 30
4. S YST E´ M SET 4.3.2 Form´at z´apisu znaˇcek sˇ ablony Jak jiˇz bylo rˇeˇceno, sˇ ablona je seznam znaˇcek; takto ji tak´e zapisujeme. Kaˇzd´a znaˇcka muˇ ˚ ze byt ´ zaps´ana v nˇekolika form´ach: •
Jedin´a podm´ınka. Takov´ato znaˇcka se zapisuje v hranatych z´avor´ k´ach; levou z´avorku bezprostˇrednˇe n´asleduje atribut, na ktery´ je podm´ınka kladena, mezera (pˇr´ıpadnˇe jiny´ b´ıly´ znak) a omezen´ı uveiden´eho atributu bezprostˇrednˇe n´asledovan´e pravou hranatou z´avorkou. Sch´ema: [atribut podm´ ınka] Pˇr´ıklad: [lemma tˇ reba] – tato znaˇcka bude vyhovovat vstupn´ım slovum, ˚ jejichˇz z´akladn´ı tvar je tˇreba.
•
Pojmenovan´a promˇenn´a. Tato znaˇcka se zapisuje jako znak dolar ($ ) bezprostˇrednˇe n´asledovany´ n´azvem promˇenn´e. Jm´eno promˇenn´e muˇ ˚ ze obsahovat alfanumerick´e znaky, teˇcku a podtrˇz´ıtko. Podm´ınky dan´e znaˇcky jsou pak vyj´adˇreny na zvl´asˇ tn´ıch rˇa´ dc´ıch pod vlastn´ı definic´ı pravidla. Tyto rˇa´ dky (nazyvejme je definice promˇennych ´ ´ ) maj´ı n´asleduj´ıc´ı form´at: $jm´ eno[atribut]: seznam omezen´ ı oddˇ elen´ y mezerami Pˇr´ıklad: $SPOJKA – tato znaˇcka bude vyhovovat slovum ˚ a, i, ani, nebo, pokud jeden z dalˇs´ıch rˇa´ dku˚ bude $SPOJKA[word]: a i ani nebo
•
Alias. Tato znaˇcka je jednou z mnoˇziny znaˇcek pˇreddefinovanych ´ v modulu grammar. Zapisuje se svym je d´an ´ jm´enem a jej´ı vyznam ´ definic´ı (vˇzdy jako jedin´a podm´ınka) v uveden´em modulu. Seznam vˇsech aliasu˚ dostupnych ´ v souˇcasnosti uv´ad´ıme v tabulce 4.1, seznam je vˇsak velmi flexibiln´ı (pˇrid´an´ı nov´eho aliasu se provede pˇrid´an´ım jedn´e rˇa´ dky kodu ´ v souboru grammar.py). Pˇr´ıklad: infinitive – vyjadˇruje tot´ezˇ jako [tag k5mF], sloveso v infinitivn´ım tvaru.
Doplnuj´ ˇ ıc´ı informace k prvn´ımu zpusobu ˚ z´apisu. V tomto pˇr´ıpadˇe mu˚ zˇ e byt ´ podm´ınka uvedena tak´e jako disjunkce omezen´ı. Jednotliv´a omezen´ı jsou oddˇelena znakem ,,|”. Napˇr´ıklad znaˇcka [word a|i|ani|nebo] bude m´ıt stejny´ vyznam jako znaˇcka $SPOJKA z pˇr´ıkladu ve druh´e odr´azˇ ce. ´ 31
4. S YST E´ M SET Alias comma like noun verb verb all adj noun prep num adv infinitive
Ekvivalent [word ,|-] [tag k1|k2|k3] [tag k5m(IBRAP)] [tag k5] [tag k2] [tag k1] [tag k7] [tag k4] [tag k6] [tag k5mF]
Slovn´ı popis cˇ a´ rka nebo pomlˇcka substantivum, adjektivum cˇ i z´ajmeno sloveso v urˇcit´em tvaru sloveso v jak´emkoli tvaru adjektivum substantivum pˇredloˇzka cˇ ´ıslovka pˇr´ıslovce sloveso v infinitivu
Tabulka 4.1: Seznam aliasu˚ pro sˇ ablony pravidel s pˇr´ısluˇsnou s´emantikou Speci´aln´ı moˇznost vyj´adˇren´ı je u omezen´ı atributu tag – po uveden´ı libovoln´eho atributu morfologick´e znaˇcky lze m´ısto jedin´e hodnoty zapsat seznam hodnot v kulatych ´ z´avork´ach. Tento seznam je opˇet ch´ap´an jako disjunkce omezen´ı. Tedy napˇr´ıklad znaˇcka sˇ ablony [tag k(123)c2] vyjadˇruje substantivum, adjektivum nebo z´ajmeno, vˇzdy vˇsak ve druh´em p´adˇe. Doplnuj´ ˇ ıc´ı informace ke druh´emu zpusobu ˚ z´apisu. K promˇenn´e v sˇ ablonˇe pravidla se vˇzdy vztahuje prvn´ı vyskyt definice dan´e promˇenn´e n´asle´ duj´ıc´ı dan´e pravidlo. Definice promˇennych ´ lze tedy sd´ılet v´ıce sˇ ablonami, coˇz muˇ ˚ ze v nˇekterych e zestruˇcnit z´apis pravidel. V de´ pˇr´ıpadech vyraznˇ ´ finici promˇenn´e je moˇzno uv´est omezen´ı na v´ıce atributu, ˚ a to z´apisem na v´ıce rˇa´ dku. ˚ Vˇsechny rˇa´ dky s definic´ı jedn´e promˇenn´e mus´ı n´asledovat bezprostˇrednˇe za sebou, v pˇr´ıpadˇe pˇreruˇsen´ı jinym ´ rˇ a´ dkem (napˇr. definic´ı ˇ adky s dejin´e promˇenn´e) je podstatn´a pouze prvn´ı souvisl´a cˇ a´ st definice. R´ finicemi jsou br´any jako konjunkce podm´ınek (dan´e slovo mus´ı vyhovovat vˇsem rˇa´ dkum ˚ definice). Je t´ezˇ moˇzno uv´adˇet negativn´ı podm´ınky, tedy hodnoty, kterych nesm´ı. Pˇr´ıklad: ´ dany´ atribut nabyvat ´ $SPOJKA ... 32
4. S YST E´ M SET $SPOJKA[tag]: k8xC $SPOJKA[word not]: a i ani nebo Tato znaˇcka reprezentuje vˇsechny souˇrad´ıc´ı spojky (k8xC) s vyjimkou slov ´ a, i, ani, nebo. Seznam vˇsech atributu˚ pouˇzitelnych ´ v z´apisu pomoc´ı pojmenovanych ´ promˇennych ´ je n´asleduj´ıc´ı (s pˇr´ısluˇsnou s´emantikou omezen´ı): •
word – tvar slova mus´ı byt ´ jedn´ım z rˇetˇezcu˚ ze seznamu
•
lemma – z´akladn´ı tvar slova mus´ı byt ´ jedn´ım ze seznamu
•
tag – morfologick´a znaˇcka mus´ı souhlasit alesponˇ s jednou morf. znaˇckou ze seznamu
•
word not – tvar slova nesm´ı byt ´ v seznamu
•
lemma not – z´akladn´ı tvar slova nesm´ı byt ´ v seznamu
•
tag not – morfologick´a znaˇcka nesm´ı souhlasit s zˇ a´ dnou ze seznamu
V z´avˇeru popisu znaˇcek sˇ ablony zm´ın´ıme konstrukt, ktery´ je rozˇs´ırˇen´ım teoretick´eho modelu z pˇredchoz´ı kapitoly. V nˇekterych ˚ zeme cht´ıt nˇekter´e znaˇcky v sˇ ablonˇe prov´a´ pˇr´ıpadech muˇ zat, napˇr. chceme-li rozpozn´avat koordinace a vyj´adˇrit, zˇ e v koordinaci mohou byt ´ dvˇe substantiva, dvˇe adjektiva, ale nikoli substantivum a adjektivum. Tohoto doc´ıl´ıme pouˇzit´ım konstruktu MATCH, kterym ´ je moˇzno definovat v´ıce promˇennych ´ najednou a prov´azat seznamy jejich podm´ınek. ˇ sen´ı pro uvedeny´ pˇr´ıklad dostaneme n´asledovnˇe: Reˇ $C1 [word a] $C2 ... MATCH $C1[tag] $C2[tag] k1 k1 k2 k2 END Konstrukce MATCH plnˇe nahrazuje definice obou zahrnutych ´ promˇennych. ´ 33
4. S YST E´ M SET 4.3.3 Znaˇcky s vˇetˇsı´m rozsahem Doposud jsme pˇredstavili znaˇcky sˇ ablony, kter´e reprezentuj´ı pouze jedno vstupn´ı slovo. V n´asleduj´ıc´ıch odstavc´ıch pˇredstav´ıme takov´e znaˇcky sˇ ablony, kter´e mohou reprezentovat zˇ a´ dn´e nebo v´ıce slov vstupn´ıho segmentu. Vyznam tˇechto znaˇcek tkv´ı v moˇznosti vyj´adˇrit jevy, kdy mezi dvˇema slovy ´ v nˇejak´em vztahu (ktery´ dan´e pravidlo odhaluje) jsou jin´a slova, pˇriˇcemˇz neum´ıme zachytit jejich pˇresnou podobu. Z´akladn´ı znaˇckou, reprezentuj´ıc´ı nula nebo v´ıce vstupn´ıch slov, jsou tˇri teˇcky (...). Vyznam t´eto znaˇcky je ,,libovolny´ poˇcet libovolnych ´ ´ slov”. V praxi vˇsak potˇrebujeme tyto ,,mezery” v pravidle omezovat ruzn ˚ ymi ´ podm´ınkami. Napˇr´ıklad nechceme, aby v mezer´ach mezi prvky koordinace byly dalˇs´ı souˇrad´ıc´ı spojky. Toho doc´ıl´ıme speci´aln´ı formou znaˇcky pro pojmenovanou promˇennou: $SPACE* Hvˇezdiˇcka za pojmenov´an´ım promˇenn´e znaˇc´ı libovolny´ poˇcet vyskyt u. ˚ ´ V jednom z dalˇs´ıch rˇa´ dku˚ pak uvedeme definici t´eto promˇenn´e (hvˇezdiˇcka je br´ana jako souˇca´ st n´azvu promˇenn´e, proto se vyskytuje i zde): $SPACE*[tag not]: k8xC T´ımto zpusobem ˚ jsme tedy definovali mezeru, kter´a neobsahuje souˇrad´ıc´ı spojku. Jej´ı vyuˇzit´ı v pravidle pro koordinaci dvou substantiv muˇ ˚ ze vypadat napˇr´ıklad takto: TMPL: noun $SPACE* [word a] $SPACE* noun $SPACE*[tag not]: k8xC
4.3.4 Znaˇcky bound a rbound Z praktick´e potˇreby vyplynula nutnost definovat znaˇcky, kterymi lze vy´ j´adˇrit zaˇca´ tek a konec segmentu bez vazby na konkr´etn´ı slova v segmentu. Tyto znaˇcky tedy opˇet pˇrekraˇcuj´ı teoreticky´ r´amec pravidla, definovany´ v pˇredchoz´ı kapitole. Jsou to znaˇcky se speci´aln´ımi aliasy, bound a rbound. Prvn´ı z nich oznaˇcuje zaˇca´ tek segmentu, druh´a z nich jeho konec. Kromˇe hranic segmentu se tyto znaˇcky mohou v´azat tak´e na oddˇelovaˇce, napˇr. cˇ a´ rku. 34
4. S YST E´ M SET 4.3.5 Form´at akc´ı Deklarace akc´ı n´asleduje v z´apisu pravidla deklaraci sˇ ablony. Akc´ı muˇ ˚ ze byt ´ libovolny´ poˇcet a vˇzdy jsou zaps´any ve formˇe kl´ıcˇ ov´eho slova (jm´ena akce) n´asledovan´eho seznamem argumentu˚ akce. Nˇekter´e akce se mohou odkazovat na znaˇcky sˇ ablony – dˇeje se tak indexy pˇr´ısluˇsnych ´ znaˇcek (tedy celymi cˇ ´ısly, vyjadˇruj´ıc´ımi poˇrad´ı dan´e znaˇcky v sˇ ablonˇe), poˇc´ıt´ano od nuly. ´ Odkazov´any mohou byt ´ pouze znaˇcky reprezentuj´ıc´ı jedno slovo segmentu. Poˇcet argumentu˚ akce muˇ ˚ ze byt ´ promˇenny, ´ kaˇzd´a akce m´a vˇsak minim´alnˇe jeden argument. N´asleduje seznam vˇsech v souˇcasnosti implementovanych ˚ koment´arˇem k s´emantice akce ´ akc´ı spolu s popisem argumentu, a pˇr´ıklady: •
MARK – tato akce je pouˇz´ıv´ana pro vyznaˇcen´ı slov segmentu. Moˇznosti pouˇzit´ı jsou dvˇe: prvn´ı z nich zpusob´ ˚ ı pˇrid´an´ı sloˇzkov´eho elementu do segmentu, v takov´em pˇr´ıpadˇe je posledn´ım argumentem jm´eno nov´e sloˇzky, pˇredchoz´ı argumenty vyznaˇcuj´ı indexy slova budouc´ı sloˇzky. Druhy´ zpusob ˚ pouˇzit´ı je vyznaˇcen´ı jedin´eho prvku segmentu. Vysledku akce (oznaˇcen´emu slovu cˇ i sloˇzkov´emu elementu) se pot´e ´ pˇrid´av´a z´avislost akc´ı DEP. Pˇr´ıklad: MARK 0 2 4
– vyznaˇc´ı koordinaci na slovech odpov´ıdaj´ıc´ıch znaˇck´am s indexy 0, 2 a 4.
•
AGREE – test na gramatickou shodu. Argumenty jsou tˇri: dva indexy znaˇcek, jimˇz pˇr´ısluˇsn´a slova maj´ı byt ´ testov´ana na shodu, tˇret´ım argumentem je rˇetˇezec tvoˇreny´ n´azvy atributu˚ morfologickych ´ znaˇcek. Seznam argumentu˚ muˇ ˚ ze v pˇr´ıpadˇe potˇreby obsahovat i v´ıce trojic. Pˇr´ıklad: AGREE 0 2 gnc – vyjadˇruje shodu v p´adˇe, v cˇ ´ısle a rodˇe na slovech odpov´ıdaj´ıc´ıch znaˇck´am 0 a 2.
•
DEP – vyznaˇc´ı z´avislost vysledku akce MARK. M´a jediny´ argument, ´ j´ımˇz je index rˇ´ıd´ıc´ıho slova. Pˇr´ıklad: DEP 5 – pˇrid´a z´avislost vysledku akce MARK na slovu od´ pov´ıdaj´ıc´ımu znaˇcce 5.
•
PROB – vyjadˇruje v´ahu pravidla, d´ale pouˇz´ıvanou hodnot´ıc´ımi funkcemi. M´a jediny´ argument, j´ımˇz je kladn´e pˇrirozen´e cˇ ´ıslo (pˇr´ıpadnˇe 0 pro nˇekter´e speci´aln´ı uˇ ´ cely). Pˇr´ıklad: PROB 5 – sn´ızˇ ´ı v´ahu pravidla na 5 (vychoz´ ı hodnota je 100). ´
•
HEAD – vyznaˇc´ı hlavu sloˇzkov´eho elementu, ktery´ byl vytvoˇren akc´ı MARK. M´a opˇet jediny´ argument, j´ımˇz je index slova, kter´e m´a byt ´ 35
4. S YST E´ M SET oznaˇceno jako hlava. Pˇr´ıklad: HEAD 2
•
IMPORTANT – oznaˇcuje nˇekter´a slova segmentu za ,,duleˇ ˚ zit´a”. Tato slova se d´ale mohou vyuˇz´ıvat v hodnot´ıc´ıch funkc´ıch nebo podle nich mohou byt ´ vytv´arˇeny subsegmenty. Argumenty akce je libovolny´ pocˇ et indexu˚ znaˇcek. Pˇr´ıklad: IMPORTANT 2 4
4.3.6 Re´aln´e pˇrı´klady pravidel V tomto odd´ılu uvedeme nˇekolik pˇr´ıkladu˚ re´alnych pravidel syst´emu se ´ struˇcnym ´ koment´arˇem. Kompletn´ı soubor pravidel je pˇriloˇzen spolu s programem na CD (soubor grammar.set). N´asleduj´ı pˇr´ıklady pravidel: TMPL: noun $...* comma [tag k3yR] $...* verb $...* rbound MARK 2 7 DEP 0 AGREE 0 3 gn $...*[tag not]: k3yR Toto pomˇernˇe komplexn´ı pravidlo pokryv´ ˚ ´ a vedlejˇs´ı vˇetu vztaˇznou. Muzˇ eme z nˇej vyˇc´ıst, zˇ e rˇ´ıd´ıc´ım prvkem vztaˇzn´e vˇety je podstatn´e jm´eno a zˇ e vˇeta samotn´a je uvozena cˇ a´ rkou a vztaˇznym ´ z´ajmenem a obsahuje sloveso v urˇcit´em tvaru. Akce vytv´arˇ´ı sloˇzkovy´ element relclause, ktery´ z´avis´ı na rˇ´ıd´ıc´ım substantivu. T´ezˇ mus´ı byt ´ splnˇena shoda v rodˇe a cˇ ´ısle mezi vztaˇznym ´ z´ajmenem a rˇ´ıd´ıc´ım substantivem. Pˇr´ıpadn´a dalˇs´ı slova v mezer´ach jsou zachycena znaˇckou $...* s libovolnym ´ rozsahem; podle definice pˇr´ısluˇsn´e promˇenn´e se v mezer´ach nemohou vyskytovat jin´a vztaˇzn´a z´ajmena. TMPL: $1 num MARK 0 1 $1[word]: A B C D T
HEAD 0
Toto pravidlo je o pozn´an´ı jednoduˇssˇ´ı a pˇrehlednˇejˇs´ı (podobnˇe jako vˇetˇsina ostatn´ıch). Rozpozn´av´a nˇekter´a kodov´ ´ a oznaˇcen´ı, napˇr. A 4 pro form´at pap´ıru. Vid´ıme, zˇ e obˇe detekovan´a slova jsou pˇrid´ana do sloˇzkov´eho elementu code a hlavou je zvoleno prvn´ı z nich (podle pˇr´ısluˇsn´e konvence v PDT). 36
4. S YST E´ M SET TMPL: verb ... $AND ... verb MARK 0 2 4 HEAD 2 IMPORTANT 2 4 $AND[word]: , a ani nebo Pravidlo vyjadˇruj´ıc´ı koordinaci dvou sloves pomoc´ı nˇekterych ´ spojek. Vid´ıme, zˇ e obˇe slovesa jsou i se spojkou pˇrid´ana do sloˇzkov´eho elementu pro koordinaci a zˇ e hlavou t´eto koordinace je zvolena (opˇet podle konvenc´ı PDT) spojka. Akce IMPORTANT vyznaˇcuje slova, kter´a budou pouˇzita jako argumenty hodnot´ıc´ı funkce; hodnot´ıc´ı funkce v tomto konkr´etn´ım pˇr´ıpadˇe zohlednuje ˇ vzd´alenost mezi vyznaˇcenymi slovy. Pro pˇr´ıpadn´a vypl ˇ a ´ ´ nov´ slova je pouˇzita obecn´a znaˇcka tˇr´ı teˇcek. TMPL: noun $...* [tag k1c2] $...*[tag not]: k5
MARK 2 DEP 0 PROB 500
Typick´e z´avislostn´ı pravidlo. Vyjadˇruje genitivn´ı vazbu (napˇr. ,,ministr sˇ kolstv´ı” ) z´avislost´ı druh´eho slova na prvn´ım. V´aha pravidla je zvyˇ ´ sena na 500, nebot’ se jedn´a o jev velmi frekventovany. ´ Pˇripouˇst´ı se, aby fr´aze byla rozdˇelena slovem, kter´e nen´ı slovesem (resp. v´ıce takovymi slovy). ´ Aˇckoliv n´am obecny´ popis pravidlov´eho formalismu zabral mnoho m´ısta, z uvedenych ´ pˇr´ıkladu˚ lze vidˇet, zˇ e pravidla maj´ı velmi vysokou expresivitu a relativnˇe dobrou cˇ itelnost. Fungov´an´ı pravidel na principu hled´an´ı realizac´ı v segmentu (lidovˇe rˇeˇceno ,,napasov´an´ı” pravidla na segment) poskytuje velmi dobrou pˇredstavu o tom, co vlastnˇe pravidla se vstupn´ım segmentem dˇelaj´ı.
4.4
Pouˇzit´ı programu
V t´eto podkapitole uvedeme nˇekolik praktickych ´ instrukc´ı k pouˇzit´ı programu SET. Struˇcnˇe t´ezˇ pop´ısˇ eme form´at vstupu a vystupu programu. ´ Program se spouˇst´ı z pˇr´ıkazov´e rˇa´ dky pˇr´ıkazem set.py a jako jediny´ (povinny) ´ argument oˇcek´av´a jm´eno souboru se vstupn´ı vˇetou. Pˇred spuˇstˇen´ım nen´ı tˇreba prov´adˇet zˇ a´ dnou instalaci, je pouze nutn´e m´ıt nainstalov´an interpret jazyka Python a knihovnu Tkinter (dostupnou volnˇe v bal´ıcˇ ku python-tk ). Reperto´ar pˇrep´ınaˇcu˚ je pomˇernˇe maly, ´ vzhledem k tomu, zˇ e c´ılem pr´ace bylo vytvoˇrit prototypovou implementaci metody postupn´e segmentace vˇety, nikoli sˇ iroce pouˇzitelny´ program. Ve vychoz´ ım nastaven´ı bez pˇre´ p´ınaˇcu˚ program provede analyzu vstupn´ı vˇety a na vystup vyp´ısˇ e hyb´ ´ 37
4. S YST E´ M SET ˇ Setˇ rete ˇ setˇ rit k5eAp2nPt_mRaP pen´ ıze pen´ ıze k1gInPc4 , , kI netelefonujte telefonovat k5eNp2nPt_mRaP , , kI faxujte faxovat k5eAp2nPt_mRaP ! ! kI
ˇ rete pen´ıze, neteleObr´azek 4.1: Uk´azka vstupu ve form´atu brief – vˇeta Setˇ fonujte, faxujte! ridn´ı strom v textov´em form´atu. Pˇrep´ınaˇc -d pˇrepne vystup na z´avislostn´ı ´ form´at. Pˇrep´ınaˇc -g zpusob´ ˚ ı po vyps´an´ı stromu v textov´e podobˇe graficky´ vystup v podobˇe jednoduch´eho okna s vykreslenym ´ ´ stromem (z´avislostn´ım nebo hybridn´ım). V prubˇ ˚ ehu analyzy program vypisuje na standardn´ı chybovy´ vystup ´ ´ podrobn´e informace o vypoˇ ´ nˇ analyzy, nalezen´e reali´ ctu: aktu´aln´ı urove ´ zace, nejlepˇs´ı vybran´e realizace, vytvoˇren´e subsegmenty. Tento vypis d´av´a ´ vyvoj´ ´ arˇi pravidel znaˇcnou kontrolu nad vypoˇ ´ ctem programu a poskytuje velmi uˇziteˇcnou a podrobnou informaci o moˇznych ´ nedostatc´ıch v praviˇ dlech. Uk´azka spuˇstˇen´ı programu na vˇetˇe Setˇrete pen´ıze, netelefonujte, faxujte! (4. vˇeta v PDT 1.0) je obsahem pˇr´ılohy A. 4.4.1 Form´at vstupu Jak jiˇz bylo naznaˇceno, soubor se vstupn´ı vˇetou je oˇcek´av´an ve vertik´aln´ım form´atu brief. Tento form´at je tvoˇren tˇremi sloupci. Prvn´ı z nich obsahuje slovn´ı tvar, jak byl ve vˇetˇe pouˇzit (atribut word ). Ve druh´em je uveden z´akladn´ı tvar, lemma, uvozen´e znaˇckou . Tˇret´ı, posledn´ı sloupec obsahuje morfologickou znaˇcku slova a je uvozen znaˇckou . Pˇr´ıklad vˇety v uveden´em form´atu muˇ ˚ zeme vidˇet na obr´azku 4.1. 4.4.2 Form´at vystupu ´ Form´at grafick´eho vystupu programu i vypisu prubˇ ˚ ehu analyzy na stan´ ´ ´ dardn´ı chybovy´ vystup povaˇzujeme za intuitivn´ı. Zastav´ıme se zde kr´atce ´ jen u form´atu vystupn´ ıch stromu˚ v textov´e podobˇe. ´ Z´avislostn´ı i hybridn´ı stromy jsou popisov´any stejnym ´ form´atem. Jedn´a se o cˇ tyˇri tabul´atorem oddˇelen´e sloupce, na kaˇzd´em rˇa´ dku je popis jednoho 38
4. S YST E´ M SET vrcholu vystupn´ ıho stromu. Prvn´ı sloupec urˇcuje identifik´ator dan´eho vr´ cholu, pˇrirozen´e cˇ ´ıslo. Druhy´ obsahuje rˇ etˇezec popisuj´ıc´ı vrchol – u slovn´ıch vrcholu˚ je to tvar slova, u sloˇzkovych ´ elementu˚ jejich pojmenov´an´ı. Ve tˇret´ım sloupci je uveden identifik´ator vrcholu, na nˇemˇz aktu´aln´ı vrchol z´avis´ı (-1 je pouˇz´ıv´ano pro koˇrenovy´ vrchol). Posledn´ı sloupec vyjadˇruje typ t´eto z´avislosti, obsahuje znak p pro sloˇzkovy´ typ vztahu, d pro z´avislosti.
39
Kapitola 5
Dosaˇzen´e vysledky a dalˇs´ı vyvoj ´ ´ V t´eto kapitole pop´ısˇ eme experimenty a mˇerˇen´ı, kter´e jsme s navrˇzenym ´ syst´emem SET prov´adˇeli. Pokus´ıme se lokalizovat cˇ ast´e chyby, jichˇz se analyz´ator dopouˇst´ı, a navrhnout zpusoby ˚ rˇeˇsen´ı. Naznaˇc´ıme t´ezˇ moˇzn´e smˇery dalˇs´ıho vyvoje programu. ´
5.1
Pˇresnost z´avislostn´ıho vystupu ´
V t´eto cˇ a´ sti prezentujeme mˇerˇen´ı pˇresnosti z´avislostn´ıho vystupu analyz´a´ toru ve srovn´an´ı s dostupnymi syntakticky anotovanymi daty. V n´asledu´ ´ j´ıc´ım textu nejprve popisujeme mnoˇziny dat, kter´e jsme zahrnuli do testov´an´ı, n´aslednˇe uv´ad´ıme a interpretujeme dosaˇzen´e vysledky. ´ 5.1.1 Testovac´ı data Z´akladn´ı testovac´ı mnoˇzinou je pro n´as podmnoˇzina PDT, urˇcen´a k slep´emu testov´an´ı analyz´atoru˚ – PDT e-test. Vzhledem k tomu, zˇ e PDT obsahuje vˇety, o nichˇz je diskutabiln´ı, zda jsou vubec ˚ vˇetami (seznamy fotbalovych u, ˚ pˇr´ıklad uvedeny´ v cˇ a´ s´ vysledk ´ ti 2.4.4), rozhodli jsme se do vyhodnocen´ı zahrnout dalˇs´ı testovac´ı mnoˇziny vˇet. Prvn´ı z nich je tvoˇrena vˇetami odd´ılu PDT e-test takovymi, kter´e obsa´ huj´ı alesponˇ jedno sloveso v urˇcit´em tvaru (u tˇechto je vˇetˇs´ı pravdˇepodobnost, zˇ e budou spr´avnymi cˇ eskymi vˇetami). Tuto testovac´ı sadu budeme ´ ´ v dalˇs´ım oznaˇcovat jako e-test-sel. Dalˇs´ı dodateˇcnou mnoˇzinou, kterou jsme se rozhodli zahrnout do vyhodnocen´ı, je prvn´ıch 2000 vˇet z mal´eho brnˇensk´eho korpusu sloˇzkovych ´ stromu. ˚ Tento korpus byl vytvoˇren pro uˇ ´ cely testov´an´ı analyz´atoru synt [20] a mezi jeho vlastnosti patˇr´ı mj. to, zˇ e byl s pomoc´ı analyz´atoru synt vytvoˇren a obsahuje pouze vˇety, kter´e tento analyz´ator akceptoval. Zdrojem vˇet je PDT, je tedy moˇzn´e vˇety brnˇensk´eho korpusu v datech identifikovat a zmˇerˇit pˇresnost jejich z´avislostn´ı analyzy. Motivac´ı pro tuto tes´ tovac´ı mnoˇzinu je n´am povaha vˇet akceptovanych analyz´atorem synt – ´ 40
5. D OSA Zˇ EN E´ Testovac´ı sada PDT e-test e-test-sel BPT2000 PDT100
Pˇresnost – prumˇ ˚ er 75,55 % 76,21 % 81,99 % 84,08 %
´ SLEDKY A DAL Sˇ ´I V Y´ VOJ VY
Pˇresnost – medi´an 77,27 % 77,27 % 85,71 % 88,56 %
Tabulka 5.1: Pˇresnost z´avislostn´ıho vystupu programu SET na ruzn ˚ ych ´ ´ testovac´ıch sad´ach jeho pravidlovy´ formalismus by mˇel akceptovat pouze spr´avnˇe utvoˇren´e cˇ esk´e vˇety a tedy korpus pravdˇepodobnˇe obsahuje ve znaˇcn´e m´ırˇe ,,uˇcesanou” cˇ eˇstinu (bez krkolomnych konstrukc´ı typu sportovn´ıch vysledk u˚ ´ ´ apod.). Tuto sadu vˇet d´ale oznaˇcujeme BPT2000. Posledn´ı testovac´ı mnoˇzinou je 100 prvn´ıch vˇet z PDT 1.0. Duvodem ˚ t´eto volby je skuteˇcnost, zˇ e mnoˇzina pravidel analyz´atoru SET byla s pomoc´ı tˇechto vˇet vyv´ıjena. Mˇerˇen´ım pˇresnosti proti takov´eto mnoˇzinˇe tedy muˇ ˚ zeme odhadnout pˇresnost, jak´e muˇ ˚ ze analyz´ator potenci´alnˇe na danych ´ datech dos´ahnout bez podstatnych ´ rozˇs´ırˇen´ı, napˇr´ıklad t´ım, zˇ e by ve vyvoji ´ pravidel byli angaˇzov´ani lingvistiˇct´ı specialist´e, nebo dalˇs´ım studiem korpusovych ´ dat. Tuto testovac´ı sadu znaˇc´ıme PDT100. Pro vˇsechny testovac´ı mnoˇziny jsme vyuˇz´ıvali dostupnou morfologickou anotaci, nebot’ jsme nechtˇeli do vysledk u˚ mˇerˇen´ı zan´asˇ et chyby niˇzsˇ´ıch ´ vrstev analyzy. Chtˇeli jsme se omezit cˇ istˇe na mˇerˇen´ı kvality analyzy ´ ´ syntaxe, nikoli komplexn´ı analyzy ´ jazyka s vyuˇzit´ım naˇseho syntaktick´eho modulu. 5.1.2 Vysledky a interpretace ´ V tabulce 5.1 jsou shrnuty vysledky mˇerˇen´ı pˇresnosti vytvoˇren´eho ana´ lyz´atoru na uvedenych ´ testovac´ıch mnoˇzin´ach. Vid´ıme, zˇ e pˇresnost z´avislostn´ıho vystupu se v souhrnu pohybuje mezi 75 a 90 procenty. ´ Rovnˇezˇ muˇ ˚ zeme vypozorovat, zˇ e pˇresnost je vyˇssˇ´ı na tˇech mnoˇzin´ach, z nichˇz jsou odfiltrov´any nˇekter´e typy vˇet a potenci´al navrhovan´eho analyz´atoru bez vyrazn ych rozˇs´ırˇen´ı (pˇresnost na vyvojov´ e mnoˇzinˇe vˇet) je ´ ´ ´ t´emˇerˇ 90 procent. Z vyˇssˇ´ıch hodnot medi´anu˚ lze soudit, zˇ e probl´emy zpu˚ sobuje sp´ısˇ e mal´e mnoˇzstv´ı vˇet, s nimiˇz m´a analyz´ator vˇetˇs´ı probl´emy. To muˇ ˚ ze byt ´ zapˇr´ıcˇ inˇeno absenc´ı nˇekterych ´ potˇrebnych ´ pravidel, viz t´ezˇ d´ale. Ve srovn´an´ı s ostatn´ımi z´avislostn´ımi analyz´atory se pˇresnost programu ˇ SET nejv´ıce bl´ızˇ ´ı Zabokrtsk´ eho pravidlov´emu analyz´atoru [10]. To muˇ ˚ ze 41
5. D OSA Zˇ EN E´
´ SLEDKY A DAL Sˇ ´I V Y´ VOJ VY
souviset s faktem, zˇ e oba programy stav´ı na stejnych ´ z´akladech – pro analyzu ˚ zeme z citovan´eho ´ pouˇz´ıvaj´ı cˇ lovˇekem vytvoˇren´a pravidla a pokud muˇ cˇ l´anku soudit, jejich pravidlov´e syst´emy byly vyv´ıjeny srovnatelnou dobu. Dovolujeme si vˇsak tvrdit, zˇ e n´ami navrˇzeny´ pravidlovy´ formalismus m´a ˇ oproti Zabokrtsk´ eho analyz´atoru vyhodu snadnˇejˇs´ı rozˇsiˇritelnosti. Vzhle´ dem k tomu, zˇ e pravidla jsou relativnˇe cˇ iteln´a, je t´ezˇ moˇzn´e do procesu jejich vyvoje zapojit lingvistick´e odborn´ıky, kterym ´ ´ by psan´ı pravidel jako ˇ procedur v jazyce Perl (jak jsou implementov´any v Zabokrtsk´ eho analyz´atoru) patrnˇe dˇelalo nemal´e probl´emy. Nˇekter´e z analyz´atoru˚ zaloˇzenych na uˇcen´ı z anotovanych dat dosa´ ´ huj´ı lepˇs´ıch vysledk u˚ neˇz oba pravidlov´e analyz´atory. Domn´ıv´ame se, zˇ e ´ je to zpusobeno ˚ pˇrev´azˇ nˇe nekonzistencemi v datech, vuˇ ˚ ci nimˇz jsou automaticky se uˇc´ıc´ı algoritmy mnohem odolnˇejˇs´ı neˇz manu´alnˇe vytvoˇren´e syst´emy pravidel (nekonzistencemi a chybami v datech se d´ale zabyv´ ´ ame v dalˇs´ı cˇ a´ sti, vˇenovan´e analyze chyb). Tato odolnost je vˇ s ak vyv´ a z ena t´ım, ´ ˇ zˇ e zm´ınˇen´e analyz´atory jsou velmi sv´az´any s uˇc´ıc´ımi daty, je obt´ızˇ n´e je d´ale rozˇsiˇrovat a zpˇresnovat ˇ a je nemoˇzn´e je pouˇz´ıt k jinym ´ celum, ˚ neˇz je ´ uˇ analyza ´ syntaxe podle konvenc´ı oznaˇckovanych ´ dat (PDT). Jsme pˇresvˇedcˇ eni o tom, zˇ e nepˇr´ıtomnost tˇechto nedostatku˚ kompenzuje niˇzsˇ´ı pˇresnost na testovac´ım odd´ılu PDT.
5.2
Analyza ´ chyb
Pˇri analyze ´ chyb jsme respektovali pˇra´ n´ı anot´atoru˚ PDT, aby odd´ıl e-test nebyl pˇr´ıstupny´ pˇri vyvoji programu a podrobn´e vysledky analyz´atoru na ´ ´ tˇechto datech jsme nezkoumali. Nam´ısto toho jsme se dukladnˇ ˚ eji vˇenovali analyze chyb na testovac´ıch datech z PDT 1.0. V n´asleduj´ıc´ıch podkapi´ tol´ach se podrobnˇeji vˇenujeme nejˇcastˇejˇs´ım typum ˚ chyb, s nimiˇz jsme se pˇri testov´an´ı setkali.
5.2.1 Nepˇresnosti v PDT Pomˇernˇe velk´a cˇ a´ st chybnˇe urˇcenych ˚ jinde neˇz v sa´ z´avislost´ı m´a puvod motn´em analyz´atoru – v testovac´ıch datech, PDT 1.0. Muˇ ˚ ze se jednat o chybnˇe urˇcenou morfologickou znaˇcku slova, chybnˇe urˇcenou z´avislost, pˇr´ıpadnˇe nedodrˇzen´ı konvenc´ı anotace definovanych ´ v N´avodu pro anot´atory [6] nebo nekonzistence v anotaci nˇekterych ´ syntaktickych ˚ ´ jevu. 42
5. D OSA Zˇ EN E´
´ SLEDKY A DAL Sˇ ´I V Y´ VOJ VY
Prvn´ı dva pˇr´ıpady jsou relativnˇe rˇ´ıdk´e; poˇcet zjevnych chyb v datech ´ netvoˇr´ı statisticky vyznamn´ e procento, i kdyˇz chyby jsou samozˇrejmˇe pˇr´ı´ tomny. Podstatnˇe z´avaˇznˇejˇs´ı jsou probl´emy s nedodrˇzov´an´ım danych ´ konvenc´ı a s nekonzistencemi v anotaci spornych ˚ pro kter´e konvence neexis´ jevu, ˇ rete pen´ıze, netetuj´ı. Jako pˇr´ıklad si vezmˇeme cˇ tvrtou vˇetu PDT 1.0, ,,Setˇ lefonujte, faxujte!”. Vystup z analyz´atoru SET je zn´azornˇen na obr´azku 5.1 ´ a tuto analyzu muˇ ˚ zeme bez rozpaku˚ oznaˇcit za stoprocentn´ı a spr´avnou. ´ Podle konvenc´ı uvedenych ´ v N´avodu pro anot´atory je uvedeny´ hybridn´ı strom pˇreveden do cˇ istˇe z´avislostn´ı formy, jak je vidˇet na obr´azku 5.2. Na obr´azku 5.3 vid´ıme reprezentaci uveden´e vˇety v PDT. Jak je vidˇet, anot´ator nerespektoval doporuˇcen´ı N´avodu (zn´azornˇen´ı koordinace), coˇz m´a v tomto pˇr´ıpadˇe destruktivn´ı vliv na hodnocen´ı naˇs´ı analyzy ˚ ci ´ – jej´ı pˇresnost vuˇ uveden´e reprezentaci v PDT je pouhych ´ 57 procent. Dalˇs´ım pˇr´ıkladem nekonzistence jsou pˇr´ıpady pˇr´ısudku vyj´adˇren´eho v trpn´em rodˇe, jako napˇr. ,,je nakupov´an” (vˇeta PDT cˇ . 28) nebo ,,je uv´adˇen” (vˇeta 13). Nekonzistence je v oznaˇcen´ı rˇ´ıd´ıc´ıho slova pˇr´ısudkov´e fr´aze; nˇek˚ zitosti dy je oznaˇcen tvar slovesa byt ´ , jindy pˇr´ıcˇ est´ı trpn´e. Vzhledem k duleˇ pˇr´ısudkov´e fr´aze ve vˇetˇe muˇ ˚ ze tato nekonzistence postihnout i dalˇs´ı z´avislostn´ı hrany (mnoho vˇetnych e ovlivnit ´ cˇ lenu˚ z´avis´ı na pˇr´ısudku) a vyraznˇ ´ celkov´e hodnocen´ı spr´avnosti analyzy. ´ Vyskyt chyb a nekonzistenc´ı podobnych vyˇ ´ ´ ´ se uvedenym ´ je pomˇernˇe cˇ asty, ´ zde uv´ad´ıme pouze sˇ piˇcky ledovce. Velmi hrubym ´ odhadem (odvozenym ˚ ehu nˇekolikatydenn´ ı pr´ace s korpusem) mohou ´ z pozorov´an´ı v prubˇ ´ chyby, nekonzistence a sporn´e z´avislosti pokryvat aˇz 10, moˇzn´a dokonce ´ 15 procent celkov´eho poˇctu z´avislostn´ıch hran v korpusu. Odpov´ıdaj´ıc´ım zpusobem ˚ jsou potom zkresleny vysledky vyhodnocen´ı pˇresnosti syntak´ tick´e analyzy. ´ Za tohoto stavu maj´ı vyhodu algoritmy zaloˇzen´e na strojov´em uˇcen´ı, ´ nebot’ tyto se s nekonzistencemi v datech dok´azˇ ´ı nˇejak vyrovnat. Radˇeji bychom ovˇsem dali pˇrednost konzistentnˇejˇs´ımu obrazu syntaxe a konzistentn´ım korpusovym ˚ Takov´eto rˇeˇsen´ı je ale bohuˇzel zat´ım v nedo´ datum. hlednu. 5.2.2 M´enˇe cˇ ast´e syntaktick´e jevy Druhy´ typ chyb, kterych se analyz´ator dopouˇst´ı, je zpusoben ˚ omezenou ´ dobou vyvoje pravidel. Pravidla v souˇcasn´e podobˇe pokryvaj´ ´ ´ ı vˇsechny z´asadn´ı syntaktick´e jevy v cˇ eˇstinˇe, precizn´ı pokryt´ı vˇsech fenom´enu˚ by vˇsak vyˇzadovalo mnohem delˇs´ı vyvoj, pokud je vubec ˚ v principu dosaˇziteln´e. ´ 43
5. D OSA Zˇ EN E´
´ SLEDKY A DAL Sˇ ´I V Y´ VOJ VY
ˇ rete pen´ıze, Obr´azek 5.1: Hybridn´ı vystup analyz´atoru SET pro vˇetu ,,Setˇ ´ netelefonujte, faxujte!”
ˇ rete pen´ıze, Obr´azek 5.2: Z´avislostn´ı vystup analyz´atoru SET pro vˇetu ,,Setˇ ´ netelefonujte, faxujte!”
ˇ rete pen´ıze, netelefonujte, faxujte!” Obr´azek 5.3: Reprezentace vˇety ,,Setˇ v PDT 1.0
44
5. D OSA Zˇ EN E´
´ SLEDKY A DAL Sˇ ´I V Y´ VOJ VY
ˇ sen´ı tˇechto chyb muˇ Reˇ ˚ ze byt ´ dvoj´ıho charakteru: •
Dalˇs´ı vyvoj pravidel. Vzhledem k tomu, zˇ e z´akladn´ı syntaktick´e jevy ´ jazyka jsou jiˇz pokryty, pˇrid´av´an´ı dalˇs´ıch pravidel by d´ale zvyˇsovalo pˇresnost jen velmi pomalu. Pˇr´ınosem by jistˇe byla spolupr´ace s jazykovymi odborn´ıky, nebot’ ti maj´ı o cˇ esk´em jazyce mnohem vˇetˇs´ı zna´ losti a pˇrehled, neˇz autor pr´ace.
•
Automatick´e uˇcen´ı z korpusovych ´ dat. Pro m´alo frekventovan´e jevy muˇ ˚ zeme v budoucnu vyuˇz´ıt techniky uˇcen´ı z pˇr´ıkladu˚ pro natr´enov´an´ı novych ˇ an´ı ´ pravidel z oznaˇckovanych ´ dat a automatick´e doplnov´ pravidlov´e mnoˇziny.
5.2.3 Nedostateˇcn´a lexik´aln´ı informace Tento typ chyb je zpusoben ˚ faktem, zˇ e na vstupu syntaktick´e analyzy u´ vaˇzujeme pouze informace z analyzy ´ morfologick´e. V nˇekterych ´ pˇr´ıpadech totiˇz potˇrebujeme informac´ı v´ıce. Napˇr´ıklad k tomu, abychom mohli spr´avnˇe analyzovat vˇetu ,,Sk´akal pes pˇres oves.” potˇrebujeme nˇejaky´ typ informace o tom, zˇ e ,,pes pˇres oves” je jiny´ typ fr´aze neˇz napˇr. ,,pes od sousedu” ˚ . Informaci tohoto druhu muˇ ˚ zeme v principu z´ıskat z ruzn ˚ ych zdroju: ˚ ´ lze vyuˇz´ıt napˇr. kolokaˇcn´ı statistiky z korpusu, ˚ data z valenˇcn´ıch slovn´ıku, ˚ s´emantick´e typy a vztahy zachycen´e v s´emantickych ´ s´ıt´ıch typu WordNetu cˇ i FrameNetu a dalˇs´ı. Je samozˇrejmˇe ot´azkou, jak velky´ vliv na pˇresnost analyzy ˚ zeme zde uv´est ´ bude integrace konkr´etn´ıho zdroje dat m´ıt. Nemuˇ zˇ a´ dny´ rozumny´ odhad, nebot’ nem´ame k dispozici informace o zˇ a´ dnych ´ podobnych ´ experimentech. Odpovˇed’ je tak pravdˇepodobnˇe ot´azkou budouc´ıch experimentu. ˚
5.3
ˇ Casov´ a n´aroˇcnost
Pˇri testov´an´ı syst´emu na korpusovych ´ datech byla mˇerˇena i doba analyzy. ´ Jak jiˇz bylo rˇeˇceno dˇr´ıve, efektivita programu v cˇ asov´e oblasti pro n´as nen´ı prvoˇradou prioritou, proto jen kr´atce: Asymptotick´a sloˇzitost algoritmu je O ( N R + R log R ), kde N je d´elka segmentu, R celkovy´ poˇcet pravidel. Za (rozumn´eho) pˇredpokladu, zˇ e kaˇzd´e pravidlo m´a konstantn´ı poˇcet realizac´ı, pro kaˇzd´e pravidlo proch´az´ıme cely´ segment (prvn´ı sloˇzka souˇctu). Nalezen´e realizace pot´e tˇr´ıd´ıme podle hodnot´ıc´ıch funkc´ı s konstantn´ı sloˇzitost´ı (druh´a sloˇzka souˇctu). Re´alnˇe spotˇrebovany´ cˇ as byl mˇerˇen na stroji s procesorem Intel Xeon na frekvenci 2,0 GHz a s RAM pamˇet´ı 2 GB. Pro 10 148 vˇet z testovac´ı 45
5. D OSA Zˇ EN E´
´ SLEDKY A DAL Sˇ ´I V Y´ VOJ VY
mnoˇziny PDT e-test trval vypoˇ ˚ erny´ ´ cet celkem 23 minut. To znamen´a prumˇ cˇ as analyzy 0,14 sekundy na jednu vˇetu; inverznˇe za jednu sekundu pro´ gram analyzuje v prumˇ ˚ eru 7,35 vˇety, coˇz odpov´ıd´a pˇribliˇznˇe 125 slovum. ˚
5.4
Dalˇs´ı vyvoj ´
V t´eto cˇ a´ sti kr´atce rozvedeme nˇekter´e dˇr´ıve zm´ınˇen´e myˇslenky tykaj´ ´ ıc´ı se rozˇs´ırˇen´ı programu a navrhneme tak moˇzn´e cesty dalˇs´ıho vyvoje analyz´a´ toru v bl´ızk´e budoucnosti. 5.4.1 Analyza ´ v´ıceznaˇcnych ´ morfologickych ´ vstupu˚ Aby nebylo nutn´e pˇred samotnou syntaktickou analyzou zan´asˇ et do vstu´ pu˚ chybu ve formˇe automaticky zjednoznaˇcnˇen´eho morfologick´eho oznaˇckov´an´ı, je tˇreba pˇrizpusobit ˚ analyz´ator pro pr´aci s v´ıceznaˇcnou morfologickou informac´ı. Tato uprava ´ t´ezˇ odstran´ı cˇ a´ steˇcnˇe duplicitn´ı pr´aci na syntaktick´e analyze, kterou nutnˇe prov´ad´ı desambigu´ator. ´ Technick´a uprava ´ analyz´atoru pro pr´aci s v´ıceznaˇcnymi vstupy je po´ mˇernˇe jednoduchy´ ukol. ´ Staˇc´ı pˇri hled´an´ı realizac´ı zohlednit vˇsechny moˇzn´e morfologick´e znaˇcky slov na vstupu. Pro zachov´an´ı pˇresnosti bude vˇsak patrnˇe tˇreba upravit funkce vyb´ıraj´ıc´ı nejlepˇs´ı realizace a zahrnout do nich tak´e informaci o pravdˇepodobnosti dan´e morfologick´e znaˇcky (napˇr. ve formˇe frekvence v korpusu). Podle toho, kter´e realizace budou ve vysledku vybr´any, muˇ ˚ zeme d´ale ´ zpˇetnˇe zpˇresnovat ˇ vysledky morfologick´e analyzy, podobnˇe jak je to pop´ ´ s´ano v [16] pro analyz´ator synt. Vzhledem k jednoznaˇcn´emu vystupu ana´ lyz´atoru SET muˇ ˚ zeme pravdˇepodobnˇe oˇcek´avat vyraznˇ ejˇs´ı zjednoznaˇcnˇen´ı ´ morfologick´e analyzy, neˇz je uvedeno v odkazovan´em cˇ l´anku, ovˇsem tak´e ´ o nˇeco vˇetˇs´ı chybovost. 5.4.2 Vyuˇzit´ı korpusovych ´ statistik Kolokaˇcn´ı statistiky slov z´ıskan´e z korpusu˚ mohou tvoˇrit velmi zaj´ımavy´ zdroj dat pro zpˇresnˇen´ı syntaktick´e analyzy. Z´akladn´ı myˇslenka je jedno´ duch´a: cˇ ´ım cˇ astˇeji se slova vyskytuj´ı v korpusu bl´ızko sebe, t´ım vˇetˇs´ı je pravdˇepodobnost, zˇ e maj´ı vztah i na syntaktick´e urovni. ´ Modifikace analyz´atoru by tedy spoˇc´ıvala pouze v upravˇ ´ e hodnot´ıc´ıch funkc´ı pro realizace. Bylo by ovˇsem tak´e tˇreba vyˇreˇsit moˇzny´ technicky´ probl´em s velikost´ı kolokaˇcn´ı datab´aze a efektivitou vyhled´av´an´ı v n´ı. 46
5. D OSA Zˇ EN E´
´ SLEDKY A DAL Sˇ ´I V Y´ VOJ VY
Pouˇzit´a statistika pro vyhled´av´an´ı kolokac´ı by pˇritom nemusela byt ´ kl´ıcˇ ov´a – lze vyzkouˇset jednoduch´e frekvenˇcn´ı statistiky, data z tzv. word sketch tabulek [23] nebo dokonce vyuˇz´ıt v´ıceznaˇcn´a data z prubˇ ˚ ehu analy´ zy pro z´ısk´an´ı korpusovych ´ kolokac´ı. Podstatn´e u vˇsech tˇechto moˇznost´ı je, zˇ e pouˇzity´ korpus nemus´ı byt ˚ ze tedy byt ´ syntakticky oznaˇckov´an a muˇ ´ dostateˇcnˇe velky´ na to, aby z nˇej bylo moˇzn´e extrahovat statisticky vyznamn´ e ´ vysledky. ´
47
Kapitola 6
Z´avˇer C´ılem pr´ace bylo ovˇerˇit moˇznosti vyuˇzit´ı postupn´e segmentace vˇety v syntaktick´e analyze ´ pˇrirozen´eho jazyka, konkr´etnˇe cˇ eˇstiny, a navrhnout syst´em pro syntaktickou analyzu, ktery´ tuto metodu bude vyuˇz´ıvat. ´ Pr´ace obsahuje tˇri hlavn´ı celky. Prvn´ım z nich je obecny´ pˇrehled o soucˇ asnych ´ hlavn´ıch proudech v syntaktick´e analyze ´ cˇ eˇstiny. V t´eto cˇ a´ sti jsme uvedli formalismy pouˇz´ıvan´e k zachycen´ı syntaxe cˇ eˇstiny, diskutovali jejich vyhody i nedostatky a pˇredstavili nˇekter´e analyz´atory vyv´ıjen´e na z´akladˇe ´ zm´ınˇenych ˚ ´ formalismu. Ve druh´em tematick´em celku popisujeme teoreticky´ r´amec novˇe navrhovan´e metody pro syntaktickou analyzu, pouˇceni z nedostatku˚ diskuto´ vanych ´ v cˇ a´ sti prvn´ı. V posledn´ı r´amcov´e cˇ a´ sti se zabyv´ ´ ame n´avrhem konkr´etn´ıho syst´emu pro syntaktickou analyzu cˇ eˇstiny. Popisujeme jeho celkovy´ n´avrh a imple´ mentaci, pouˇzity´ pravidlovy´ syst´em a pouˇzit´ı vysledn´ eho programu. V z´a´ vˇeru se zabyv´ ´ ame mˇerˇen´ım pˇresnosti, rozborem chyb analyzy ´ a pˇredj´ım´ame smˇery dalˇs´ıho vyvoje programu. ´ Za hlavn´ı pˇr´ınos pr´ace povaˇzujeme n´avrh a realizaci nov´eho pˇr´ıstupu k syntaktick´e analyze ´ pˇrirozen´eho jazyka. Navrhovany´ pˇr´ıstup m´a cˇ etn´e vyhody; jmenujme zde alesponˇ pˇrehledny´ a souˇcasnˇe velmi expres´ıvn´ı pra´ vidlovy´ formalismus, rozˇsiˇritelnou a pˇrehlednou implementaci a univerz´aln´ı pouˇzitelnost. Z vysledk u˚ mˇerˇen´ı t´ezˇ vyplyv´ ´ ´ a, zˇ e navrˇzeny´ analyz´ator je srovnatelny´ se souˇcasnymi analyz´atory cˇ eˇstiny a po implementaci nˇekte´ rych ˚ ze soupeˇrit o prvn´ı m´ısto mezi nimi. ´ navrhovanych ´ rozˇs´ırˇen´ı muˇ Sekund´arn´ım pˇr´ınosem pr´ace jsou obsaˇzen´e diskuse o reprezentaci syntaxe, vhodnosti jednotlivych ´ an´ı syntaxe pˇrirozenych ´ formalismu˚ pro kodov´ ´ jazyku˚ a pˇripomenut´ı obecn´eho probl´emu subjektivity syntaxe. P´ısˇ eme zejm´ena o potˇrebˇe konzistentnˇejˇs´ıho pohledu na reprezentaci syntaxe pˇrirozenych ´ jazyku˚ a ukazujeme konkr´etn´ı pˇr´ıklady, kdy souˇcasn´e pˇr´ıstupy selh´avaj´ı. Vˇerˇ´ıme, zˇ e podobn´e uvahy ´ povedou ke zkvalitnˇen´ı form´aln´ıho pˇr´ıstupu k pˇrirozenym ˚ a zˇ e n´as opˇet o kruˇ ˚ cek pˇribl´ızˇ ´ı ide´alu umˇel´e ´ jazykum inteligence. 48
Literatura [1] S. Abney. Part-of-speech tagging and partial parsing. Corpus-Based Methods in Language and Speech Processing, 2, 1997. [2] M. Collins. dep2phr – conversion between dependency and phrase structures, 1998. http://ufal.mff.cuni.cz/pdt/Utilities/dep2phr/. [3] J. Hajiˇc. Complex Corpus Annotation: The Prague Dependency Treeˇ ura, bank. Bratislava, Slovakia, 2004. Jazykovedny´ ustav ´ L’. St ´ SAV. [4] J. Hajiˇc. Building a syntactically annotated corpus: The Prague Dependency Treebank. In Issues of Valency and Meaning, pages 106–132, Prague, 1998. Karolinum. [5] J. Hajiˇc, M. Collins, L. Ramshaw, and C. Tillmann. A Statistical Parser for Czech. In Proceedings ACL’99, Maryland, USA, 1999. ˇ ep´anek, P. Pajas, [6] J. Hajiˇc, J. Panevov´a, E. Bur´anov´ ˇ a, Z. Ureˇsov´a, J. Stˇ and J. K´arn´ık. Anotace na analytick´e rovinˇe – N´avod pro anot´atory, 2005. http://ufal.mff.cuni.cz/pdt2.0/doc/manuals/cz/a-layer. [7] P. Harrison, S. Abney, E. Black, D. Flickinger, C. Gdaniec, R. Grishman, D. Hindle, R. Ingria, M. Marcus, B. Santorini, and T. Strzalkowski. Evaluating syntax performance of parser/grammars of English. In J. G. Neal and S. M. Walter, editors, Natural Language Processing Systems Evaluation Workshop: Final Technical Report RL-TR-91-362, pages 71– 77, Griffiss Air Force Base, NY, 1991. Rome Laboratory. [8] T. Holan. Tvorba z´avislostn´ıho syntaktick´eho analyz´atoru. In Sborn´ık semin´arˇe MIS 2004. Matfyzpress, Prague, Czech Republic, 2004. [9] T. Holan. Genetick´e uˇcen´ı z´avislostn´ıch analyz´atoru. ˚ In Sborn´ık seˇ min´arˇe ITAT 2005. UPJS, Koˇsice, 2005. 49
´ Eˇ R 6. Z AV ˇ [10] T. Holan and Z. Zabokrtsk y. ´ Combining Czech Dependency Parsers. In Lecture Notes in Artificial Intelligence, Proceedings of TSD 2006, pages 95–102, Brno, Czech Republic, 2006. Springer Verlag. [11] A. Hor´ak. The Normal Translation Algorithm in Transparent Intensional Logic for Czech. PhD thesis, Masaryk University, 2002. [12] A. Hor´ak. Computer Processing of Czech Syntax and Semantics. Librix.eu, Brno, Czech Republic, 2008. [13] A. Hor´ak, T. Holan, V. Kadlec, and V. Kov´arˇ. Dependency and Phrasal Parsers of the Czech Language: A Comparison. In Lecture Notes in Artificial Intelligence, Proceedings of Text, Speech and Dialogue 2007, pages 76–84, Plzen, ˇ Czech Republic, 2007. Springer-Verlag. [14] A. Hor´ak and V. Kadlec. New Meta-grammar Constructs in Czech Language Parser synt. In Lecture Notes in Artificial Intelligence, Proceedings of Text, Speech and Dialogue 2005, pages 85–92, Karlovy Vary, Czech Republic, 2005. Springer-Verlag. [15] A. Hor´ak and P. Smrˇz. Best analysis selection in inflectional languages. In Proceedings of the 19th international conference on Computational linguistics, pages 363–368, Taipei, Taiwan, 2002. Association for Computational Linguistics. [16] M. Jakub´ıcˇ ek. Extraction of syntactic structures based on the Czech parser synt. In Proceedings of Recent Advances in Slavonic Natural Language Processing 2008, pages 56–62, Brno, Czech Republlic, 2008. Masaryk University. [17] V. Kadlec. Syntactic analysis of natural languages based on contextfree grammar backbone. PhD thesis, Masaryk University, 2008. [18] V. Kov´arˇ and A. Hor´ak. Reducing the Number of Resulting Parsing Trees for the Czech Language Using the Beautified Chart Method. In Proceedings of 3rd Language and Technology Conference, pages 433– 437, Poznan, ´ 2007. Wydawnictwo Poznanskie. ´ [19] V. Kov´arˇ, A. Hor´ak, and V. Kadlec. New Methods for Pruning and Ordering of Syntax Parsing Trees. In Proceedings of Text, Speech and Dialogue 2008. In Lecture Notes in Artificial Intelligence, Proceedings of Text, Speech and Dialogue 2008, pages 125–131, Brno, Czech Republic, 2008. Springer-Verlag. 50
´ Eˇ R 6. Z AV [20] V. Kov´arˇ and M. Jakub´ıcˇ ek. Test suite for the Czech parser synt. In Proceedings of Recent Advances in Slavonic Natural Language Processing 2008, pages 63–70, Brno, Czech Republlic, 2008. Masaryk University. [21] V. Kubon, ˇ M. Lopatkov´a, M. Pl´atek, and P. Pognan. Segmentation of complex sentences. In Proceedings of the 9th International Conference, TSD 2006, number 4188 in Lecture Notes In Computer Science, pages 151–158. Springer-Verlag Berlin Heidelberg, 2006. [22] R. McDonald. Discriminative learning and spanning tree algorithms for dependency parsing. PhD thesis, University of Pennsylvania, 2006. [23] P. Rychly´ and P. Smrˇz. Manatee, Bonito and Word Sketches for Czech. In Proceedings of the Second International Conference on Corpus Linguisitcs, pages 124–132, Saint-Petersburg, 2004. Saint-Petersburg State University Press. [24] G. Sampson. A Proposal for Improving the Measurement of Parse Accuracy. International Journal of Corpus Linguistics, 5(01):53–68, 2000. [25] R. Sedl´acˇ ek. Morphemic Analyser for Czech. PhD thesis, Masaryk University, 2005. ˇ acˇ kov´a. Parci´aln´ı syntaktick´a analyza [26] E. Z´ ´ (ˇceˇstiny). PhD thesis, Masaryk University, 2002. [27] D. Zeman. Neprojektivita v Praˇzsk´em z´avislostn´ım korpusu (PDT). ´ Technical Report TR-2004-22, UFAL/CKL MFF UK, Prague, 2004.
51
Dodatek A
Pˇrı´loha A: Uk´azka spuˇstˇen´ı programu
$ set.py -g ../pdt/brief/00004 Parsing segment 0: ˇ Setˇ rete pen´ ıze , netelefonujte , faxujte ! -------------interjections ... ends ... Match found: ! ıze , netelefonujte , faxujte rete pen´ Sub-segment created: ˇ Setˇ Sub-segment created: ! Phrase created: ::: <sentence> <ends> ::: head = <sente nce> Parsing segment 0.0: ˇ Setˇ rete pen´ ıze , netelefonujte , faxujte -------------interjections ... ends ... hard delimiters ... relative clauses ... coordinations and other constructs ... Match found: pen´ ıze , netelefonujte , Rule: noun $...* comma $...* verb $...* rbound MARK 2 4 6 intr> DEP 0 HEAD 4 IMPORTANT 0 2 4 PROB 2 Match found: ˇ Setˇ rete , netelefonujte Rule: [tag k5m(IBRAP)] ... $AND ... [tag k5m(IBRAP)] MARK 2 4 HEAD 2 IMPORTANT 2 4 PROB 10000 Match found: ˇ Setˇ rete , faxujte Rule: [tag k5m(IBRAP)] ... $AND ... [tag k5m(IBRAP)] MARK 2 4 HEAD 2 IMPORTANT 2 4 PROB 10000 rete , faxujte Match found: ˇ Setˇ Rule: [tag k5m(IBRAP)] ... $AND ... [tag k5m(IBRAP)] MARK 52
<
0
0
0
´ A. P Rˇ ´I LOHA A: U K AZKA
ˇ N´I PROGRAMU SPU Sˇ T E
2 4 HEAD 2 IMPORTANT 2 4 PROB 10000 Match found: netelefonujte , faxujte Rule: [tag k5m(IBRAP)] ... $AND ... [tag k5m(IBRAP)] MARK 0 2 4 HEAD 2 IMPORTANT 2 4 PROB 10000 Match found: ˇ Setˇ rete , netelefonujte Rule: $1 $...* comma $...* $3 MARK 0 2 4 HEAD 2 AGR EE 0 4 c PROB 0 Match found: netelefonujte , faxujte Rule: $1 $...* comma $...* $3 MARK 0 2 4 HEAD 2 AGR EE 0 4 c PROB 0 Match selected: netelefonujte , faxujte :: :: netelef onujte , faxujte Match selected: ˇ Setˇ rete , netelefonujte :: :: ˇ Setˇ rete , netelefonujte Phrase created: ::: ˇ Setˇ rete , netelefonujte , faxujte ::: head = , dependencies ... ıze rete pen´ Match found: ˇ Setˇ Rule: verb_all ... noun MARK 2 DEP 0 Match found: ˇ Setˇ rete pen´ ıze Rule: verb_all noun MARK 1 DEP 0 PROB 200 ıze netelefonujte Match found: pen´ Rule: noun ... verb_all MARK 0 DEP 2 PROB 80 Match found: pen´ ıze faxujte Rule: noun ... verb_all MARK 0 DEP 2 PROB 80 Match found: ˇ Setˇ rete pen´ ıze Rule: verb_all ... [tag k(13)c4] MARK 2 DEP 0 PROB 300 Match found: pen´ ıze netelefonujte Rule: [tag k(13)c4] ... verb_all MARK 0 DEP 2 PROB 150 Match found: pen´ ıze faxujte Rule: [tag k(13)c4] ... verb_all MARK 0 DEP 2 PROB 150 Match found: pen´ ıze , Rule: [tag k.] [tag kI] MARK 1 DEP 0 PROB 20 Match found: netelefonujte , Rule: [tag k.] [tag kI] MARK 1 DEP 0 PROB 20 Match selected: ˇ Setˇ rete pen´ ıze Rule: verb_all ... [tag k(13)c4] MARK 2 DEP 0 PROB 300 segment head selection ... Head selected: ======================= 53
´ A. P Rˇ ´I LOHA A: U K AZKA
ˇ N´I PROGRAMU SPU Sˇ T E
Parsing segment 0.1: ! -------------interjections ... ends ... hard delimiters ... relative clauses ... coordinations and other constructs ... dependencies ... segment head selection ... Head selected: ! ======================= Back to segment 0: <sentence> <ends> -------------hard delimiters ... relative clauses ... coordinations and other constructs ... dependencies ... segment head selection ... Head selected: ======================= 0 ˇ Setˇ rete 6 p 1 pen´ ıze 0 d 2 , 6 p 3 netelefonujte 6 p 4 , 6 p 5 faxujte 6 p 6 7 p 7 <sentence>10 p 8 ! 9 p 9 <ends>10 p 10 -1 p
54