VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
BRNO UNIVERSITY OF TECHNOLOGYFAKULTA INFORMAČNÍCH TECHNOLOGIÍ
ÚSTAV INFORMAČNÍCH SYSTÉMŮ
FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS
MULTIGRAMATIKY A SYNTAKTICKÁ ANALÝZA
ZALOŽENÁ NA NICH
DIPLOMOVÁ PRÁCE
MASTER‘S THESISAUTOR PRÁCE
Bc. JIŘÍ KRAJÍČEK
AUTHOR
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
BRNO UNIVERSITY OF TECHNOLOGYFAKULTA INFORMAČNÍCH TECHNOLOGIÍ
ÚSTAV INFORMAČNÍCH SYSTÉMŮ
FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS
MULTIGRAMATIKY A SYNTAKTICKÁ ANALÝZA
ZALOŽENÁ NA NICH
MULTIGRAMMARS AND PARSING BASED ON THEM
DIPLOMOVÁ PRÁCE
MASTER‘S THESISAUTOR PRÁCE
Bc. JIŘÍ KRAJÍČEK
AUTHOR
VEDOUCÍ PRÁCE
Prof. ALEXANDER MEDUNA
SUPERVISOR
3
ZADÁNÍ
1. Seznamte se podrobně s multigramatikami a jejich vlastnostmi. Dle instrukcí vedoucího se se-znamte detailně s řadou metod syntaktické analýzy.
2. Navrhněte metodu syntaktické analýzy zaloţenou na multigramatikách. Porovnejte ji s vlast-nostmi jiných metod syntaktické analýzy; diskutujte přednosti a nedostatky.
3. Navrhněte a implementujte program, který bude demonstrovat navrţenou metodu v oblasti syn-taktické analýzy přirozených jazyků. Testujte výsledný program.
4
LICENČNÍ SMLOUVA
Abstrakt
Úkolem této práce je seznámení s pragmaticky orientovaným výzkumem na poli teoretické informati-ky a prezentovat návrhy aplikačních metod pro zvolené tematické oblasti. Konkrétní prostředek teore-tické informatiky je reprezentován druhem generativního systému – multigramatikou a jednotlivé aplikační oblasti jsou zde zvoleny vzhledem k moţnostem, které multigramatiky nabízí.
V návaznosti na poznatky dosaţené Thompsonem (viz [9]), Lindenmayerem (viz [26]), Mandelbrotem (viz [8]) ale i výsledky ze studií dosaţených Morneauem (viz [17]), které poukazují na souvislosti mezi přírodními zákonitostmi a matematickou disciplínou, zkoumáme aplikace multigra-matik z pohledu dvou tematických oblastí: generativních L-systémů (zahrnuje dále aplikace z fraktálové grafiky a biomatematiky) a zpracování jazyků přirozených (zahrnuje dále návrh vhodné-ho abstraktnívhodné-ho jazyka). Zmíněny jsou také otázky společné s oblastí návrhu překladačů.
Klíčová slova
Multigramatika, rozšířená multigramatika, selektor, L-systém, selektivní L-systém, fraktál, ţelví ge-ometrie, biomatematika, zpracování přirozených jazyků, syntaktická analýza, chart parser, token, lexém, morfém, stavba slov, závislostní struktura, frázová struktura, nejednoznačná gramatika, jazyky s jemným kontextem.
6
Abstract
This document deals with introduction focused on pragmatically oriented research at branch of theo-retical computer science and with presentation of designed methods for chosen application topics. At this study the theoretical subject is represented by kind of generative system – multisequential grammar and application topics are chosen according to possibilities supported by multisequential grammars.
In order to follow results published by Thompson (see [9]), Lindenmayer (see [26]), Mandel-brot (see [8]) and also studies published by Morneau (see [17]), which shows the relation between natural laws and human discipline – mathematics, we study the applications of multi-sequential grammars from two points of view: generative L-systems (which further includes applications of frac-tal geometry and biomathematics) and natural language processing (which further includes the design of proper abstract language). Some problems related to compiler construction are also mentioned.
Keywords
Multi-sequential grammar, multi-continues grammar, selector, L-system, selective L-system, fractal, turtle geometry, biomathematics, natural language processing, syntax analyse - parsing, chart parser, token, lexeme, morpheme, word syntax, dependency structure, phrase structure, ambiguity grammar, mildly context sensitive languages.
Citace
Jiří Krajíček: Multigramatiky a syntaktická analýza zaloţená na nich, diplomová práce, Brno, FIT VUT v Brně, 2007
Multigramatiky a syntaktická analýza založená na nich
Prohlášení
Prohlašuji, ţe jsem tuto diplomovou práci vypracoval samostatně pod vedením Prof. RNDr. Alexan-dra Meduny, CSc. Další informace mi poskytli Prof. Ing. Ivo Serba, CSc, Bc. Dana Lodrová, Bc. Petr Mikušek, Bc. Anh Le Hai. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal.
……… Jiří Krajíček 10. 5. 2007
Poděkování
Tímto děkuji svému vedoucímu diplomové práce panu Prof. Alexandru Medunovi, Csc. za cenné rady a obětavý přístup, který mi věnoval i v rámci této práce.
Dále děkuji za štědrou podporu poskytnutou nadací „Nadání Josefa, Marie a Zdeňky Hlávkových“.
© Jiří Krajíček, 2007.
Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních tech-nologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákon-né, s výjimkou zákonem definovaných případů.
8
Obsah
LICENČNÍ SMLOUVA ... 4 Obsah ... 8 1 Úvod... 10 2 Teorie multigramatik ... 11 2.1 Definice multigramatik ... 11 2.2 Příslušnost ke třídě jazyků ... 12 2.3 Příklady ... 133 Tematické oblasti pro aplikace multigramatik ... 15
3.1 Motivace ... 15
3.2 Výběr tematických oblastí a jejich popis ... 16
3.3 Přístup a vztah k vybraným oblastem ... 17
4 Tematická oblast nad L-systémy ... 18
4.1 Popis současných L-systémů ... 18
4.2 Návrh metod nad L-systémy v aplikaci multigramatik... 24
4.2.1 Zavedení selektivního L-systému ... 24
4.2.2 Aplikační aspekty selektivního L-systému ... 27
4.2.3 Rozšiřující aplikace selektivního L-systému ... 29
4.3 Zhodnocení, porovnání s ostatními metodami ... 30
5 Tematická oblast, zpracování přirozených jazyků ... 34
5.1 Úvod do současných prostředků... 34
5.1.1 Lexikografická rovina ... 34
5.1.2 Morfologická rovina ... 37
5.1.3 Syntaktická rovina ... 39
5.2 Návrh metod pro zpracování přirozených jazyků v aplikaci multigramatik ... 46
5.2.1 Lexikální rovina ... 47
5.2.2 Morfologická rovina ... 50
5.2.3 Syntaktická rovina ... 55
5.3 Zhodnocení, porovnání s ostatními metodami ... 70
6 Implementační aspekty pro aplikace multigramatik ... 72
6.1 Volba implementačního jazyka ... 72
6.2 Ţivotní cyklus software produktů ... 73
6.2.1 Agilní vývoj, programování řízené testy ... 74
6.2.2 Volba softwarové architektury ... 74
9
6.3 Vlastnosti softwaru selektivního L-systému ... 79
6.3.1 Souhrnné informace ... 79
6.3.2 Uţivatelské rozhraní selektivního L-systému ... 79
6.3.3 Pokročilé vlastnosti selektivního L-systému ... 81
6.4 Vlastnosti softwaru analyzátoru jazyka ... 85
6.4.1 Souhrnné informace ... 85
6.4.2 Pokročilé vlastnosti analyzátoru ... 86
Závěr ... 90
Literatura ... 91
Seznam příloh ... 93
10
1
Úvod
Teoretická informatika je prostředek k dosaţení určitého cíle, tento cíl chápeme jako aplikaci. Samot-ná aplikace můţe být prezentována v různé rovině abstrakce, od čistě abstraktní aţ po zcela konkrétní. V jednom z případů pak můţeme za aplikaci povaţovat situaci, kdy pomocí prostředků teoretické informatiky rozvíjíme teoretickou informatiku samotnou např. konstrukcí důkazů nad otevřenými problémy této disciplíny. Na druhé straně existují také konkrétnější aplikace vyjádřeny problémy reálného světa, kde klademe důraz na praktické vyuţití dosaţených výsledků.
Tato práce se celkově zabývá souvislostmi mezi aparátem teoretické informatiky a jejich spo-jením v kontextu s popisem problémů na různých rovinách abstrakce – aplikacemi. Konkrétní pro-středek teoretické informatiky je zde zastoupen specifických druhem generativního systému – multi-gramatikou a jednotlivé aplikační oblasti jsou pak zvoleny vzhledem k moţnostem, které vyuţití mul-tigramatik nabízí. Pro snazší představu bychom mohli o této práci také hovořit pod označením: „Mul-tigramatiky a jejich aplikace“. Vlastní aplikace jsou zde zastoupeny zejména dvěma základními tema-tickými oblastmi:
generativní L-systémy (zahrnuje dále aplikace z fraktálové grafiky a biomatematiky),
zpracování jazyků přirozených (zahrnuje dále návrh vhodného abstraktního jazyka).
Kaţdá tematická oblast je nejprve popsána na obecné úrovni a jsou zmíněny metody, které jsou v ní vyuţity. Následuje pak zavedení aparátu multigramatik do dané oblasti a demonstrace získaných vý-sledků. Obsahově je v 2. kapitole zmíněna teorie muligramatik a jejich příslušnost ke třídě jazyků. V následné 3. kapitole pak zmiňujeme vybrané tematické oblasti a jejich souvislosti s multigramatikami. Kapitola 4. jiţ popisuje první tematickou oblast generativních L-systémů podrobněji a zavádí nad ní aplikace multigramatik. Podobně tak postupujeme i v nadcházející kapito-le 5., kde se zabýváme zmíněnou tématickou oblastí zpracování přirozených jazyků a vyuţitím multi-gramatik zde zejména jako prostředku ve fázi syntaktické analýzy. Kaţdá z popisných kapitol pak obsahuje v závěru svá zhodnocení dosaţených výsledků a porovnání s ostatními dosud uţívanými přístupy. V poslední 6. kapitole jsou zmíněny implementační aspekty a výstupy softwarových pro-duktů, které byly navrţeny pro potřeby demonstrace dosaţených výsledků v kaţdé tematické oblasti (jedná se zejména o zpracování přirozených jazyků a vyuţití selektivních L-systémů).
V návaznosti na semestrální projekt zde došlo k rozšíření kapitol 1. – 5. o nové poznatky a 6. kapitola byla sestavena na základě vývoje a dokumentace demonstračního software pro aplikace.
11
2
Teorie multigramatik
V oblasti teoretické informatiky multigramatiky představují druh paralelního generativního systému, který byl zaveden G. Rozenbergem v první polovině osmdesátých let minulého století (viz [1]).
Cílem multigramatik je snaha o zvýšení vyjadřovací síly při zachování jednoduchého tvaru bezkontextových pravidel v paralelním přepisování. Z pohledu průběhu derivace lze tyto gramatiky povaţovat také za případ tzv. gramatiky řízených. Podrobněji princip multigramatik uvedeme v následujících definicích a posléze demonstrujeme některé příklady.
2.1
Definice multigramatik
Definice 2.1
Multigramatika G je pětice G = (V, T, P, S, K), kde V, T a S mají stejný význam jako v obecné gramatice. P je konečná mnoţina pravidel tvaru:
a → x, kde a V a x V*. K je konečná mnoţina selektorů tvaru:
X1active(Y1) X2... Xn active(Yn) Xn+1; kde n je kladné celé číslo,
pro všechna i = 1, ..., n + 1, Xi {Z*: Z V}, pro všechna j = 1, ... , n, Yj V a Yj≠ .
G provádí derivační krok ve tvaru:
u1a1u2a2 u3 ... unanun+1 u1x1u2x2 u3 ... unxnun+1 jestliţe K obsahuje selektor X1active(Y1) X2... Xn active(Yn) Xn+1 splňující: pro všechna i = 1, ..., n + 1 ui Xi
pro všechna j = 1, ... , n, aj Yja aj → xj P
Jazyk generovaný G, L(G), je definován L(G) = { w: S * w a w T *}.
Definice 2.2
Rozšířená multigramatika G je pětice G = (V, T, P, S, K), kde V, T, P a S mají stejný význam jako v multigramatice. K je konečná mnoţina selektorů tvaru:
X1active(Y1) X2... Xn active(Yn) Xn+1, kde n je kladné celé číslo,
12 pro všechna i = 1, ..., n + 1, Xi {Z*: Z V}
pro všechna j = 1, ..., n, Yj { Z+: Z V a Z ≠ }.
Pro kaţdý řetězec v V+, kde v = a1...a|v| s ai V pro i = 1, ..., |v|, definujeme jazyk
ContinuousRewriting(v) V* následující ekvivalencí pro kaţdé z V*, z ContinuousRewriting(v)
tehdy a jen tehdy ai→ xi P pro všechna i = 1, ..., |v|, a z = x1...x|v|
.
G provádí derivační krok tvaru:u1y1u2y2 u3 ... unynun+1 u1z1u2z2 u3 ... unznun+1; jestliţe K obsahuje X1active(Y1) X2... Xn active(Yn) Xn+1 takové, ţe
pro všechna i = 1, ..., n, yi Yi a zi ContinuosRewriting(yi)
pro všechna i = 1, ..., n + 1, ui Xi
.
Jazyk generovaný G, L(G), je definován L(G) = { w: S * w a w T *}.
Jak plyne z definic 2.1 a 2.2, rozšířené multigramatiky nám na rozdíl od multigramatik poskytují moţnost vyjádřit aktivní část selektoru regulární mnoţinou, tedy mnoţinou řetězců, které lze popsat regulárním výrazem. Přičemţ pro kaţdý symbol z tohoto řetězce musí existovat pravidlo, jeţ obsahu-je tento symbol na své levé straně (podmínka z jazyka ContinuousRewriting).
2.2
Příslušnost ke třídě jazyků
Lze dokázat, ţe pro kaţdý jazyk přijímaný Turingovým strojem lze sestrojit multigramatika (rozšíře-ná multigramatika), která tento jazyk generuje a naopak pro kaţdý jazyk generovaný multigramatikou (rozšířenou multigramatikou) lze sestrojit Turingův stroj, který tento jazyk přijímá. Třída jazyků ge-nerovaných multigramatikami tedy odpovídá třídě jazyků rekurzivně vyčíslitelných (třída 0) dle Chomského klasifikace jazyků.
Lemma 2.1
Pro kaţdou gramatiku frázové struktury H, existuje ekvivalentní multigramatika M, respektive rozší-řená multigramatika M‘.
Z pohledu teoretické informatiky je dále podstatná redukce sloţitosti v popisu multigramatiky při zachování síly s Turingovým strojem. Z tohoto důvodu jsou zaváděna další omezení multigramatik na počet neterminálů, počet a tvar selektorů.
13 Touto redukcí se zabýval zejména Prof. Meduna ve svých několika odborných článcích. Uveďme si jen přehledově podstatné poznatky, které z nich plynou.
1. Je dokázáno, ţe multigramatiky s 6 neterminály jsou ekvivalentní s Turingovým strojem (viz [2]).
2. Je dokázáno, ţe rozšířené multigramatiky s 6 neterminály jsou ekvivalentní s Turingovým strojem (viz [3]).
3. Je dokázáno, ţe multigramatiky se 2 homogenními selektory, kde kaţdý selektor má jen 2 aktivní části jsou ekvivalentní s Turingovým strojem (viz [4]).
4. Dále je dokázáno, ţe rozšířené multigramatiky s 5 homogenními selektory (také 5 netermi-nálů), kde kaţdý selektor má jen 2 aktivní části jsou ekvivalentní s Turingovým strojem (viz [5]).
Pozn.: homogenní selektor je takový selektor, jehoţ všechny aktivní části jsou identické (jsou popsá-ny stejnou regulární mnoţinou, respektive regulárním výrazem).
2.3
Příklady
Pozn.: namísto popisu selektoru prostřednictvím regulárních mnoţin, budeme selektory popisovat z pohledu pragmatického přístupu (parseru) skrze regulární výrazy, ostatní notace bude zachována.
Příklad 2.1
Generujme multigramatikou jazyk L = {an bn cn | n ≥ 0}, vidíme, ţe platí: L CFL, ale L CSL. Sestrojíme multigramatiku G = (V, T, P, S, K), kde
V = {a, b, c}, T = V, P = { 1: S → abc, 2: S → ε, 3: a → aa, 4: b → bb, 5: c → cc }
K = {active(S), a* active(a)b* active(b)c* active(c)}.
Ukázka paralelní derivace v G pro generování a3b3c3 :
14
Příklad 2.2
Generujme rozšířenou multigramatikou jazyk L = {an bn cn | n = 2(i - 1), kde i = počet provedených derivačních kroků}, opět vidíme, ţe platí: L CFL, ale L CSL.
Sestrojíme multigramatiku G´ = (V, T, P, S, K), kde
V = {a, b, c}, T = V, P = { 1: S → abc, 2: a → aa, 3: b → bb, 4: c → cc }
K = {active(S), active(a+) active(b+) active(c+)}.
Ukázka paralelní derivace v G´ pro i = 3, tedy a4b4c4 :
15
3
Tematické oblasti pro aplikace
multi-gramatik
3.1
Motivace
Naše okolí nás obklopuje řadou problémů, které zkoumáme a jejichţ řešení bychom rádi znali. Proto vynakládáme při dostupných znalostech značná úsilí k jejich rozřešení. Na vyšší (abstraktní) úrovni je problém zpravidla formálně popsán a v okamţiku, kdy se nám podaří (například při uţití matematic-kého aparátu) řešení nalézt a podloţit jej (dokázat), lze přistoupit k vlastní aplikaci teorie, tak aby-chom poskytli nástroj na problém původní, který stál na samém počátku našeho úsilí. Těţko si lze tedy představit svět, kde bychom při snaze řešit problém nepřistoupili také k vlastní aplikaci (potírání problémů reálného světa). Z tohoto důvodu zavádíme tzv. vlastní aplikace teorií, ve snaze zavést řešení na problémy, které nás obklopují. Teorie je zde pomocníkem, nástrojem, jehoţ prostředky chceme vyuţít. Z pohledu teorie zde však není cesta k teorii, teorie je cesta, ale není to cíl, nýbrţ jen prostředek k dosaţení cíle.
Pozn.: z filozofického hlediska lze povaţovat pojem „řešení problémů“ za skutečnost, která jiţ exis-tuje, není ji tedy třeba vynalézat, ale objevovat. Jinak řečeno, lze přepokládat, ţe odpovědi na otázky, které si v souvislosti s řešením problémů pokládáme, nás obklopují. Hranice mezi problémem a jeho řešením je tvořena jen vlastním omezením umět „pozorovat“ prostředí kolem nás. Je tedy nejprve nutné dokázat chápat okolní podměty a příčiny i důsledky všech dějů. Přičemţ proces správného po-chopení je také závislí na stavu, rozpoloţení našeho vnímání. Abychom zachovali tyto předpoklady, buďme vţdy upřímní zejména sami k sobě a skromní k ostatním („always be honest to your self and humble to the others“). Dokud nebudeme schopni „správně“ porozumět své podstatě, svému okolí (a to nejen z fyzického úhlu pohledu), lze jen těţko předpokládat, ţe se nám v komplexním kontextu dostane vhodné odpovědi.
16
3.2
Výběr tematických oblastí a jejich popis
Z obecného pohledu nachází generativní systémy uplatnění v řadě odborných oblastí. Jedná se zejmé-na o výstavbu překladačů, příbuznou oblast zpracování jazyků (v obecnějším slova smyslu), počíta-čové grafiky, biomatematiky a dalších oborů, které například vyţadují poţadavky na formální modely pro návrh, analýzu a specifikaci.
Silný vyjadřovací prostředek ze skupiny generativních systémů představují právě uvedené multigramatiky. Neformálně můţeme říci, ţe výhoda multigramatik vychází z předpokladu jednodu-chých bezkontextových pravidel doplněných o sekundární formální řídící prostředek pro průběh deri-vace a v konečném důsledku schopnost generovat jazyky přijímané Turingovým strojem. Kombinují se zde výhody tzv. řízených gramatik (viz [6]) se systémy tzv. paralelních gramatik (viz [7]). Podrobnosti k těmto otázkám jsou diskutovány také v kapitole 5.2.3 část V. Na základě zde zmíně-ných vlastností a také z důvodu omezeného rozsahu této práce byly zvoleny tyto aplikace multigra-matik:
- L-systémy (zavedení tzv. selektivních L-systémů), viz kapitola 4.
- zpracování přirozených jazyků (aplikace v syntaktické rovině), viz kapitola 5.
L-systémy mající vyuţití v řadě oblastí včetně výtvarného umění – fraktálové grafiky[1] slouţí také ke
generování biologických struktur. V případě zpracování přirozených jazyků klademe důraz na rozpo-znání syntaktické (popř. sémantické) správnosti vstupních vět (zpravidla ve formě elektronického textu) a celkový proces porozumění jazyku skrze strojové zpracování.
Rozsahově se v kapitole 4. se zabýváme popisem stávajících L-systémů a následně návrhem aplikace multigramatik - zavedení selektivních L-systémů. Podobně v kapitole 5. se zabýváme sou-časnými přístupy pro zpracování jazyků přirozených a navazujeme návrhem vlastních metod při za-měření aplikace multigramatik na rovině syntaktického zpracování.
K demonstraci selektivního L-systému a analyzátoru větného kontextu na principu multigra-matik, byly také sestrojeny demonstrační aplikace. Návrhové a implementační poznatky těchto soft-warových produktů včetně ukázek výsledných výstupů jsou zmíněny v kapitole 6.
[1]) zakladatelem fraktálové grafiky je matematik Benoît B. Mandelbrot. Současný pojem fraktál je znám
při-bliţně od roku 1975. Intuitivně řečeno, jedná se o matematické funkce pro popis obrazců vyplňujících prostor mnoţením svých elementárních sloţek. Jiţ dříve byly tyto obrazce v přírodě pozorovány, ovšem aţ s příchodem 20. století jsme byli schopni porozumět jejich matematickým zákonitostem.
17
3.3
Přístup a vztah k vybraným oblastem
V motivační části 3.1 této kapitoly jsme zmínili některé nezbytné otázky pro poznání zákonů, které nás obklopují, tak abychom byli schopni nalézt vhodná řešení k existujícím problémům a zároveň dokázat tyto poznatky aplikovat. Nyní se budeme zabývat vztahy mezi uvedenými multigramatikami a vybranými tematickými oblastmi pro jejich aplikace.
Často aţ s dlouhým odstupem času jsme schopni chápat (přiznat) hloubku například matema-tických zákonitostí, které se v přírodních jevech nacházejí, ačkoli jsou tyto zákonitosti přítomny i bez našeho zásahu, tedy bez ohledu na náš dosavadní způsob jejich chápání. Jedním z matematiků, kteří poukazovali na souvislosti mezi přírodními jevy a lidskou disciplínou - matematikou byl biolog a matematik Prof. D‟Arcy Thompson, který se tak stal zakladatelem nového oboru tzv. „biomatemati-ky“. Ve své knize „On Growth and Form“, (první vydání jiţ v roce 1917, viz [9]) dokázal například souvislosti mezi matematickými transformacemi a proměnami napříč mezitřídními ţivočišnými druhy tedy, ţe rozmanitost tvarů je moţné redukovat pouţitím transformací v různých geometriích; obr. 3.1.
Obr. 3.1 – ilustrace z Thompsonovy knihy, redukce tvarů transformace projektivní geometrie
Podobně jako Thompson, poukázal na souvislosti mezi přírodními jevy a matematickými zákony o řadu let později (1968) biolog Aristid Lindenmayer nalezením matematického formalismu (nazvané-ho Lindenmayerův systém: L-systém) pro popis progresí růstu (i degenerací) biologických struktur. Aţ později byl L-systém posouzen z pohledu teoretické informatiky a zařazen mezi gramatické sys-témy. Z tohoto pohledu jsme schopni uvaţovat o moţnostech aplikace multigramatik v L-systémech k dosaţení (rozšíření) nových prostředků pro generační vývoj například zmiňovaných bio-struktur.
V případě druhé tematické oblasti – zpracováním přirozených jazyků pak uvaţujeme o souvis-lostech mezi formálním popisem jazyka (zpravidla určitou generativní gramatikou) zejména na rovině syntaktického popisu ve snaze sestavit (posílit) prostředky pro strojový deterministický analyzátor jazyka prostřednictvím multigramatik. Zároveň tak vyuţíváme vyjadřovací síly multigramatik k postihnutí celé rodiny jazyků přirozených (abstraktního návrhu nad jazyky), která by bylo s běţnými prostředky bezkontextových gramatik nedosaţitelné.
18
4
Tematická oblast nad L-systémy
4.1
Popis současných L-systémů
V předchozí kapitole 3.2 jiţ byl nastíněn původ L-systémů. Nyní si rozšíříme některé další podstatné souvislosti. Biolog a botanik Lindenmayer se původně zabýval růstem vzorů různých druhů řas jako je například bakterie Anabaena catenula. Lindenmayerův formální systém byl tedy nejprve vyuţit k popisu prostých vícebuněčných organismů a vyjadřoval vztahy mezi sousedními rostlinnými buň-kami. Později byl systém upraven (rozšířen) a vyuţit i pro popis sloţitějších biologických struktur jako jsou například rostliny vyšších druhů a jiných větvení schopných forem.
Následně popíšeme L-systém formálně a jeho vlastnosti budeme demonstrovat na několika známých příkladech generovaní matematických struktur. V základní formě je L-systémů vyjádřen jen prostřednictvím abecedy symbolů, startovacího axiomu (řetězce) a mnoţiny pravidel, viz definice 4.1.
Definice 4.1
0L-systém je trojice H = (V, P, w), kde V je konečná abeceda symbolů, P je konečná mnoţina pravi-del tvaru: a → x, a V a x V* a w V* je startující řetězec (axiom).
Během jednoho derivačního kroku jsou v L-systému přepsány paralelně všechny symboly, které jsou totoţné se symbolem na levé straně uţitého pravidla. Jedná se tedy o druh paralelních gramatik.
Definice 4.2
Přímá derivace (): a1a2 … an x1x2 … xn, n ≥ 1, jestliţe ai→ xi P pro všechna i = 1, …, n. Deri-vace (*): reflexivní a tranzitivní uzávěr nad .
Pokud uváţíme existenci jen jednoho pravidla pro kaţdý symbol z abecedy, získáme tzv. determinis-tický L-systém (D0L).
Definice 4.3
Deterministický 0L systém (D0L): Pro kaţdé a V, existuje jedno pravidlo tvaru: a → x P.
Pokud dále uváţíme případ, kdy nepoţadujeme přítomnost axiomu v jazyce generového pomocí L-systému a chceme oddělit z abecedy symbolů mnoţinu terminálů, dostáváme tak tzv. rozšířený L-systém (E0L).
19
Definice 4.4
Rozšířený 0L systém (E0L) je čtveřice G = (V, T, P, w), kde V, P, w mají identický význam jako v případě 0L systému a T V.
Zatímco 0L systémy označujeme také jako tzv. bezkontextové L-systémy (schopnost generovat také jazyky bezkontextové), E0L mají schopnost generovat i jazyky kontextové. Formálně platí tento vztah: L(0L) L(E0L).
Zároveň L-systém je druhem gramatik, které generují jazyky vymykající se klasické Chomského hie-rarchii. Z tohoto pohledu lze uvaţovat o pokrytí tříd v této hierarchii skrze L-systémy, viz obr. 4.1.
Obr. 4.1 – jazyky L-systému v kontextu s Chomského hierarchií
Pravidla gramatiky L-systému jsou aplikovány na větné formy iterativně počínaje aplikací nad startu-jícím řetězcem. V případě kdy dochází k opakované aplikaci téhoţ pravidla, hovoříme o stupni rekur-ze (zanoření). Počet těchto zanoření je zpravidla omerekur-zen, tak abychom dosáhli potřebné přesnosti (jemnosti) ve výsledné rozgenerované struktuře. Navíc na rozdíl od běţného pojetí, kde standardně poţadujeme za konec derivace stav, kdy jsou všechny symboly větné formy zastoupeny jen terminály (tzv. „úspěšná derivace“), v případě L-systému není tento poţadavek nutný a derivaci lze povaţovat za úspěšnou, pokud jiţ větná forma (včetně tzv. neterminálů) prošla poţadovaným stupněm derivač-ních kroků (bylo dosaţeno potřebného rozgenerování).
Cílový řetězec (věta) generovaný L-systémem je zpravidla podroben sémantickému zpraco-vání, kde poţadujeme, aby ve výsledné větě existovaly právě takové symboly, které mají jistou sé-mantickou nosnost (představují akci, která se má provést při jejich výskytu ve větě).
S vyuţití například tzv. „želví geometrie“ (viz [10]) jsme schopni generovanou větu séman-ticky interpretovat dle významu jednotlivých symbolů a tím zároveň schopni získaný řetězec vyjádřit grafickým výstupem.
20
Pozn.: ţelví geometrie (známá jiţ z programovacího jazyka Logo - 1967) je zastoupena symbolickou ţelvou, která se pohybuje po ploše. Přičemţ má schopnost zanechávat za sebou ocasem stopu, nebo se jen volně posouvat. Dále je schopna natočení (zpravidla v jednom směru) o libovolný úhel.
Po potřeby ţelví geometrie v L-systému zpravidla předem definujeme jednotlivé významové symboly, které představují příkazy pro pohyb ţelvy v ploše. Například symbol „+„ můţe být dán jako příkaz „pravotočivé otočení o konstantní úhel“, nebo symbol „=„ můţe vyjadřovat vykreslení úseč-ky konstantní délúseč-ky, zatímco symbol „-„ bude znamenat vykreslení téţe úsečúseč-ky, ale s poloviční dél-kou. Dále budou uvedeny některé příklady významných struktur, které jsme schopni pomocí
L-systému generovat.
Příklad 4.1
:
Řasa –
Lindermayerův původní model růstu řasy
V = {A, B}, T = V, w = A,
P = {A → AB, B → A}
Systém produkuje po jednotlivých derivačních krocích následující řetězce: n = 0 : A
n = 1 : AB n = 2 : ABA n = 3 : ABAAB n = 4 : ABAABABA
Příklad 4.2: Fibonacciho řada
V = {A, B}, T = V, w = A,
P = {A → B, B → AB}
Systém produkuje po jednotlivých derivačních krocích následující řetězce: n = 0 : A n = 1 : B n = 2 : AB n = 3 : BAB n = 4 : ABBAB n = 5 : BABABBAB n = 6 : ABBABBABABBAB n = 7 : BABABBABABBABBABABBAB
21 Pokud si vyjádříme délku kaţdého z řetězců získaných v jednotlivých derivačních krocích, obdrţíme tzv. Fibonacciho posloupnost, čili sekvenci čísel:
1 1 2 3 5 8 13 21 34 55 89….
Příklad 4.3
.:
Cantorovo diskontinuum
V = {A, B}, T = V, w = A,
P = {A → ABA, B → BBB}
Nechť A má význam „kresli úsečku vpřed“ a B má význam „pohyb vpřed“. Interpretací na generované formě pak dostáváme obrazec známý jako tzv. Cantorova fraktálová množina, viz obr. 4.2.
Obr. 4.2 – Cantorova fraktálová mnoţina
Příklad 4.4
.:
Kochova křivka
–
varianta jen s pravými úhly
V = {F, +, −}, T = {+, −}, w = F,
P = {F → F+F−F−F+F}
Nechť F má význam „kresli úsečku vpřed“, „+„ má význam „otočení želvy o 90° levotočivě“, „−„ má význam „otočení želvy o 270° levotočivě, respektive o 90° pravotočivě“. První startující úsečka (axi-om) má počáteční úhel 0°. Systém produkuje po jednotlivých derivačních krocích následující řetězce a jejich interpretace: n = 0: F n = 1: F+F-F-F+F n = 2: F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F
22 n = 3: F+F-F+F-F-F+F-F+F+ F+F-F-F+F+F+F-F-F+F- F+F- F+F-F+F-F-F+F-F+F-F-F+F+F+F-F- F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F+ F+F-F-F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F+F+F-F-F+F
Příklad 4.5: Panroseovo pokrytí
V = {1, 6, 7, 8, 9, +, −, [, ]}, T = {+, −, [, ]}, w = [7]++[7]++[7]++[7]++[7], P = { 6 → 81++91−−−−71[−81−−−−61]++, 7 → +81−−91[−−−61−−71]+, 8 → −61++71[+++81++91]−, 9 → −−81++++61[+91++++71]−−71, 1 → }
Význam symbolů „+„ a „−„ je identický jako v příkladě 4.4, ale úhel změny je zde nastaven na kon-stantu 36°. Zatímco symbol „[„ vyjadřuje uloţení aktuální pozice (souřadnice a úhel) na zásobník, symbol „]„ pak představuje vyvolání záznamu na vrcholu zásobníku a nastavení aktuální pozice dle jeho obsahu. Systém pak produkuje po jednotlivých derivačních krocích interpretace dle obr. 4.3.
Obr. 4.3 – Panroseovo pokrytí generované L-systémem pro n=1, n=2, n=3
Následně demonstrujeme jiţ jen přehledově některé další zajímavé struktury generované současnými L-systémy, viz obr 4.4 a 4.5.
23 Obr. 4.4 – vybrané interpretace L-systému pro 2D grafické prostředí
Obr. 4.5 – vybrané interpretace L-systému pro 3D grafické prostředí
Neformálně lze povaţovat modely generované L-systémy za organicky blízké (schopnost generovat přírodní struktury z mikro i makrosvěta). Mimo jiné struktury tvořené L-systémy vykazují sobě-podobnost, coţ vedlo k jejich vyuţití v oblasti fraktálové grafiky. Při aplikaci větší hloubky rekurze (rozgenerování) jsme zároveň schopni popsat růst i struktur více komplexních. Díky těmto vlastnos-tem nalezly L-systémy vyuţití i v oblastech výtvarného umění, počítačové grafiky, modelování umě-lého ţivota a biomatematiky.
24
4.2
Návrh metod nad L-systémy v aplikaci
multi-gramatik
V této kapitole se budeme zabývat popisem metod zaloţených na aplikaci multigramatik v
L-systémech. Zaměříme se na zobecnění akcí produkovaných L-systémy, následně jejich rozšíření prostředky multigramatik a demonstrace získaných výsledků. Dále budou diskutována vyuţití získa-ných poznatků z pohledu současzíska-ných aplikací nad L-systémy.
4.2.1
Zavedení selektivního L-systému
Aplikací multigramatik v L-systémech budeme v základní formě rozumět zavedení tzv. selektivního L-systému. Nejprve si myšlenku tohoto systému popíšeme intuitivně a posléze formálně nadefinuje-me. V kapitole 4.1 jiţ byl zmíněn důleţitý poznatek o L-systémech: L-systém je („čistě“) paralelním generativním systémem. Na druhé straně je v multigramatice, jakoţto „částečně“ paralelním systému, aplikace jakéhokoli pravidla navíc podmíněna splněním kontextové podmínky selektoru, kterým lze postihnout obsah aktuální větné formy (přesněji viz příklady derivace v multigramatikách v kapitole 2.3). Neformálně lze říci, s vyuţitím paralelních přepisů (moţných jak v multigramatikách i L-systémech) a zavedením podmíněného (řízeného) derivačního kroku (podmínku představuje kontext poţadovaný selektorem multigramatiky) získáme nový generativní systém: selektivní L-systém.
Zatímco je během derivačního kroku v L-systému vybráno pravidlo, jehoţ levá strana se na-chází v 1 aţ n výskytech ve větné formě (všechny výskyty jsou paralelně nahrazeny pravou stranou pravidla v situace při rozgenerování), v případě selektivního L-systému bude navíc výběr pravidla podmíněn jeho explicitním povolením na základě selektoru podobně jako je tomu u zmiňovaných multigramatik.
Definice 4.5
Selektivní L-systém G je pětice G = (V, T, P, w, K), kde V, T, K mají stejný význam jako v multigramatice a w je počáteční řetězec (axiom – podobně jako u E0L-systému), kde w V*. P je konečná mnoţina pravidel tvaru: a → x, kde a V a x V*.
Pro derivační krok v selektivním L-systému platí totéţ co v případě multigramatiky s rozdílem zahá-jení derivace, kde na rozdíl od multigramatiky nezačínáme derivaci ze startujícího neterminálu „S“ ale z počátečního axiomu „w“.
25
Příklad 4.6
:
ukázka derivace v selektivním L-systému
V = {F, +, −, c, 4, 5, h}, T = {+, −, c, 4, 5, h},
w = Fc45hFc45Fc45hFc45Fc45hFc45Fc45hF, P = {F → F−hFc15F+F+F−hFc345FhF}, K = {.*h<F>.*}
Zde zavedené symboly vyuţívají notaci navrţenou pro implementaci selektivního L-systému v jazyce Java. Pro přehled jen zmíníme některé nezbytné souvislosti. Základním vykreslovacím elementem je zde symbol F, symboly před jeho výskytem představují vţdy parametry ovlivňující vlastnosti pro jeho vykreslení, dále pak symboly +, − mají stejný význam jako v příkladě 4.4 s výjimkou konstanty úhlu, která je nastavena na 140°. Symbol „c“ má význam „ponatočení želvy o úhel, který je dekadicky číselně vyjádřen bezprostředně za výskytem tohoto symbolu“. Symbol „h“ představuje pomocný znak pro zachycení vybraného kontextu ve větné formě. Syntaxe uţitá pro zápis selektoru odpovídá syntaxi regulárního výrazu uţité v programovacím jazyce Java (viz [11]). Aktivní část je v selektoru vyzna-čena pomocí špičatých závorek, tedy: <active_part>. Podobně jako v předchozích příkladech budeme číselně jednotlivé derivační kroky označovat kladnou celočíselnou proměnnou n. Další podrobnosti k syntaxi zápisu a významu jednotlivých symbolů jsou uvedeny v implementační kapitole 6.
Pro n = 1 je průběh derivace v selektivním L-systému následující:
Fc45hFc45Fc45hFc45Fc45hFc45Fc45hF
Fc45hF−hFc15F+F+F−hFc345FhFc45Fc45hF−hFc15F+F+F−hFc345FhF c45Fc45hF−hFc15F+F +F−hFc345FhFc45Fc45hF−hFc15F+F+F−hFc345FhF
Pozn.: paralelní nahrazení proběhlo jen v částech povolených selektorem .*h<F>.*, tedy jen v případě
takových výskytů symbolů F v axiomu, které byly bezprostředně předcházeny pomocným symbolem h. Symbol h zde jinak nepředstavuje pro grafickou interpretaci jiný význam. Na rozdíl od běţného L-systému byly tedy ve větné formě rozgerovány jen některé symboly F, zatímco jiné zůstaly v latent-ním stavu (bez přepisu). Výběr přepisovaných částí prostřednictvím selektoru označujeme obecně selekcí, odtud zavedené označení selektivní L-systém.
26 Obr. 4.6 – interpretace selektivního L-systému pro n = 3, viz příklad 4.6
(výstup z vytvořeného program pro demonstraci selektivního L-systému)
Pro srovnání uvedeme situaci provedení derivace při uţití E0L-systému, tedy bez souvislosti s mnoţinou selektorů K. Pro n = 1 je průběh derivace v E0L-systému následující (přepsány jsou nyní bez rozdílu všechny výskyty symbolů F v axiomu):
Fc45hFc45Fc45hFc45Fc45hFc45Fc45hF
F−hFc15F+F+F−hFc345FhFc45hF−hFc15F+F+F−hFc345FhFc45F−hFc15F+F+F−hFc 345FhFc45hF−hFc15F+F+F−hFc345FhFc45F−hFc15F+F+F−hFc345FhFc45hF−hFc15 F+F+F−hFc345Fh c45F−hFc15F+F+F−hFc345FhFc45hF−hFc15F+F+F−hFc345FhF Pro n=3 dostáváme interpretací věty E0L-systému grafický výstup, viz obr. 4.7.
Obr. 4.7 – srovnávací interpretace E0L-systému pro n = 3, viz příklad 4.6 (výstup z vytvořeného program pro demonstraci selektivního L-systému)
27 Porovnáním výsledku dosaţeného interpretací nad E0L-systémem (obr 4.7) a výsledku získaného interpretací nad selektivním L-systémem (obr 4.6) získáme přehled nad provedenou selekcí, které jsme zavedením selektorů z mnoţiny K chtěli dosáhnout.
Pozn.: takto provedená selekce zároveň představuje efektivní nástroj pro zanesení jistého prvku plánované nepravidelnosti (asymetrie) do původního symetrického L-systému. Tato vlastnost je zejména vhodná pro popis nesymetrických jevů, které se v přírodních jevech vyskytují.
4.2.2
Aplikační aspekty selektivního L-systému
Schopnost paralelního zpracování v selektivních L-systémech nám dovoluje uvaţovat o návrhu algo-ritmů, které by vedly na sníţení časové sloţitosti v porovnání se sekvenčním přístupem. Navíc s rozšířením HW architektur pro podporu paralelních aplikací se z budoucího vývoje ukazuje tento poţadavek na paralelní algoritmizaci úloh jako věc nezbytná.
Dále zmíníme některé další aspekty, které souvisejí s abstrakcí zavedenou nad akcemi prová-děných v selektivních L-systémech. Dosud jsme význam akce v selektivním L-systému chápali jako aplikaci pravidla nad větnou formou (derivační krok) povoleného některým selektorem. Nyní význam akce zobecníme o další operace, které mohou být provedeny nad větnou formou (nepůjde tedy jen o operaci nahrazení na základě pravidla povoleného selektorem).
Z pragmatického hlediska budeme uvaţovat následující operace:
mocnina řetězce,
konkatenace s jiným řetězcem,
reverze řetězce, na rozdíl od ostatních operací vyţaduje tato operace rozšíření selektivního L-systému na povolení přítomnosti řetězce i na levé straně pravidel, viz definice 4.6
vyjmutí vybraného řetězce z větné formy
Definice 4.6
Rozšířený selektivní L-systém G‘ je pětice G‘ = (V, T, P, w, K), kde V, T, K, w mají stejný význam jako v selektivním L-systému a P je konečná mnoţina pravidel tvaru: a → x, kde a, x V*.
Kaţdou ze zmíněných operací je moţno simulovat pomocí upraveného pravidla selektivního (popř. rozšířeného) L-systému. Demonstrace simulace zmíněných operací:
mocnina řetězce, např.: F → Fk, kde k je celočíselná kladná konstanta
konkatenace s jiným řetězcem, např.: F → F . y, kde y V* a „.„ je operace konkatenace
reverze řetězce, např.: y → reverse(y), kde y V* a operace reverse() je převrácení řetězce
28
Příklad 4.7
:
ukázka derivace v rozšířeném selektivním L-systému s vyuţitím akce:
operace
převrácení řetězce ve větné formě
. Nechť je dán následný rozšířený selektivní L-systém:
V = {F, c, 8, 5, h}, T = {c, 8, 5, h},
w = Fc85hFc85Fc85hF,
P = {1p: 85 → reverse(85)} – pravidlo pro simulaci reverse, rozšířený tvar, K = {.*<1p>h.*}, kde 1p je reference na číslo prvního pravidla
Význam uţitých symbolů je identický s významem uvedeným v příkladě 4.6. Pro n = 1 je průběh derivace v rozšířeném selektivním L-systému následující:
Fc
85
hFc
85
Fc
85
hF
Fc
58
hFc
85
Fc
58
hF
.
Jak můţeme z výsledku derivace vidět, došlo na základě akce povolené selektorem k převrácení hod-noty úhlu pro natočení ţelvy jen v krajních výskytech větné formě, zatímco prostřední hodnota úhlu zůstala zachována, coţ vede při následné grafické interpretaci ke změně tvaru v generované geomet-rické struktuře. Selektory, které povolují operaci reverzi řetězce - simulované pravidlem, označujeme jako tzv. reverzní selektory.
S vyuţitím výše zmíněných operací jsme schopni zavést modifikace nad větnou formou a vyjádřit tak poţadované deformace v generované struktuře následně reprezentované grafickým výstupem. Z pragmatického hlediska budeme však během derivace v selektivním L-systému uvaţovat kombina-ce aplikací běţných přepisovacích pravidel s pravidly pro simulakombina-ce zavedených operací. Zpravidla pak bude mít derivace následující průběh:
1. proveď aplikace běţných přepisovacích pravidel povolených selektory do poţadovaného stupně zanoření
2. na výsledné větné formě proveď dále aplikaci simulačních pravidel (pro zavedené operace) povolených selektorem
3. proveď grafickou interpretaci výsledného řetězce například pomocí ţelví geometrie
Zavedením tohoto průběhu derivace je moţné snadno definovat změny základní generované struktury v poţadovaný výsledek. Praktické výstupy jsou demonstrovány v implementační kapitole 6.
29
4.2.3
Rozšiřující aplikace selektivního L-systému
Zatímco příklady z aplikací zavedeného selektivního L-systému uvedené výše bychom mohli zařadit do oblasti výtvarné informatiky, respektive fraktálové grafiky, nyní ještě uveďme další moţné vyuţití selektivního L-systému z pohledu biomatematiky. Inspirace této aplikace vychází z poznatků Prof. D‟Arcy Thompsona, jak jiţ bylo naznačeno v kapitole 3.3.
Příklad 4.10: selektivní L-systém v aplikaci biomatematiky, nechť je dán selektivní L-systém:
V = {F, A, +, −, c, 2, 7, 0, h, [, ]}, T = {+, −, c, 2, 7, 0, h, [, ]}, w = c270F F hA,
P = {1p: A → FA[-FhA]FA[+FhA]FhA}, K = { .*h<1p>.*}
Pro počet iterací n, kde n=6 dostáváme interpretací nad výslednou větou grafický výstup na obr. 4.9 (vpravo), zatímco obr. 4.9 (vlevo) je tvořen E0L-systémem, jehoţ předpis je však totoţný s předpisem pro zde zmíněný selektivní L-systém s výjimkou absence mnoţiny selektorů K.
Obr. 4.9 – proměna květů v závoj; redukce tvarů rostlin (mezitřídní variability) zavedením selekce dle příkladu 4.10 nad původním vzorem (vlevo) generovým E0L-systém.
30
4.3
Zhodnocení, porovnání s ostatními metodami
Rozšíření L-systémů a to zejména v oblastech biologie a fraktálové grafiky vedlo k zavedení několika různých modifikací (rozšíření) z pohledu praktického pouţití. V předchozí kapitole 4.1 jiţ byly zmí-něny 0L, E0L, ET0L systémy, které představují teoretický a empiricky orientovaný základ pro apli-kace ve zkoumaných oborech. V této kapitole proto dále uvedeme některé další často vyuţívané vari-anty L-systémů z pohledu pragmatického návrhu pro dané oblasti. Následně budeme demonstrovat jejich srovnání s prostředky navrţených selektivních L-systémů. Přehledově jsou zmíněny následující současné přístupy v L-systémech:
1. stochastické 2. parametrické 3. zásobníkové
4. kontextové (levě i pravě) 5. kombinované
Stochastické L-systémy, pokud se v systému vyskytuje více pravidel s totoţnou levou stranou, pak je kaţdé takové pravidlo rozšířeno o výraz, který určuje pravděpodobnost uţití tohoto pravidla. Např. pro n-násobný výskyt symbolu F na levé straně pravidel platí: F → 1:p1, F → 2:p2, F → n:pn; kde F V, i V*, pi <0, 1> , kde pi je pravděpodobnost uţití pravidla F → i:pi při přepisu symbolu F a platí: 1
1
i n
p .
Parametrické L-systémy, pracují s tzv. parametrickými slovy. Parametrické slovo je dáno jako po-sloupnost modulů. Kaţdý modul obsahuje formální parametry, které mohou nabývat hodnot (skuteč-ných parametrů) z mnoţiny . Parametry mohou být vyjádřeny také skrze aritmetické a logické výra-zy. Formálně řečeno: parametrický L-systém Gpje čtveřice Gp = (V, , , P), kde V je abeceda sym-bolů, je mnoţina formálních parametrů, - axiom je neprázdné parametrické slovo, (V )+
a pravidlo p, p P je tvaru: pred : cond → succ, kde pred je levé strana pravidla, cond je logický výraz nabývající hodnot 0 nebo 1 a succ je pravá strana pravidla. Ukázka parametrického L-systému:
= B(2)A(3, 4)
P = {A(a, b) : b < 2 → B(a + b), A(a, b) : b > 3 → D, B(a) : a < 1 → A(a - 1), B(a) : a ≥ 1 → A(a2)}
31
Zásobníkové L-systémy, abeceda symbolů je rozšířena o tzv. zásobníkové symboly, které mají sé-mantickou nosnost provádět operace nad zásobníkem pro kreslící ţelvu. Příklad značení zásobníko-vých symbolů a jejich význam:
[ … operace push – uloţ stav ţelvy na vrchol zásobníku
] … operace pop – vyjmi stav ţelvy z vrcholu zásobníku a nastav ţelvu na tento stav
Stav ţelvy, který má být uloţen, je dán její aktuální souřadnicí v prostoru a úhlem natočení případně dalšími parametry (barva, tloušťka štětce ţelvy), coţ představuje levý kontext tedy podřetězec věty, který předchází symbol pro uloţení tohoto stavu, viz obr. 4.8.
Obr. 4.8 – grafická interpretace věty: F[+F]F v zásobníkovém L-systému, konstantní úhel natočení je roven 45°
Kontextové L-systémy, při přepisování uvaţujeme levý a pravý kontext, který se nachází v okolí pře-pisovaného symbolu. Levý i pravý kontext je dán jen posloupností symbolů z abecedy. Pravidla kon-textového systému pak mají tvar:
lexft_context <A> right_context → ; kde , lexft_context, right_context V*, A V
Význam pravidla: symbol A je přepsán, jestliţe je bezprostředně přecházen řetězcem left_context a bezprostředně následován řetězcem right_context.
Kombinované L-systémy, představují L-systém, který vyuţívá prostředků z výše uvedených modifi-kací, viz body 1. aţ 4. V obecném případě tak získáme pravidla ve tvaru:
lexft_context <A> right_context : cond → : p; kde , lexft_context, right_context V*, A V, cond má stejný význam jako v parametrickém L-systému a p jako ve stochastickém L-systému.
Modifikace L-systémů zde uvedené představují v současnosti důleţitou roli pro vyuţívané aplikační oblasti. Dále uvedeme tyto modifikace v porovnání se zavedenými selektivními L-systémy. Pokud uváţíme srovnání obecného selektivního L-systému, lze hovořit o abstraktním návrhu formálního prostředku, který je schopen postihnout i přístupy výše uvedené. Navzdory moţnostem simulovat v selektivním systému například pravděpodobnost aplikace pravidla nebo splnění aritmeticko-logické podmínky (při simulaci stochastického nebo parametrického L-systému) na základě podmíněného
32 kontextu v selektorech a predikcí následných větných forem, budeme z důvodu snazšího – přímého vyjádření uvaţovat spíše rozšíření selektivního L-systému o pravděpodobnostní výraz podobně jako v případě stochastického L-systému popřípadě o podmínkový výraz jako u parametrického L-systému. V ostatních případech budeme schopni vyjádřit simulace formou přehledného zápisu bez nutnosti zavedení dalších modifikací a to na základě regulárních výrazů v selektorech a pomocných symbolů pro zachycení poţadovaného kontextu ve větné formě. Uvaţme nyní následující demon-strační příklady 4.8 a 4.9.
Příklad 4.8: srovnání moţností v selektivních L-systémech. Nechť je dán následný kombinovaný L-systém: = aaB(3)bbB(2)ccA(3, 4)dd P = { 1p: cc<A(a, b)>dd : b < 2 → B(a + b) : 0.6, 2p: cc<A(a, b)>dd : b > 3 → D : 0.4, 3p: aa<B(a)>bb : a < 1 → A(a - 1) : 0.7, 4p: bb<B(a)>cc : a ≥ 1 → A(a2) : 0.3}
Derivačního krok má průběh: aaB(3)bbB(2)ccA(3, 4)dd aaB(3)bbA(9)ccDdd
(na základě podmínky kontextu, parametrů a pravděpodobnostního limitu byl přepsán jen druhý vý-skyt symbolu B pomocí 4. pravidla a jediný vývý-skyt symbolu A pomocí 2. pravidla).
Příklad 4.9:srovnání moţností v selektivních L-systémech. Nechť je dán následný simulačně upra-vený selektivní L-systém:
= aaB(3)bbB(2)ccA(3, 4)dd P = { 1p: A(a, b) : b < 2 → B(a + b) : 0.6, 2p: A(a, b) : b > 3 → D : 0.4, 3p: B(a) : a < 1 → A(a - 1) : 0.7, 4p: B(a) : a ≥ 1 → A(a2) : 0.3} K = {aa<3p>bb, bb<4p>cc, cc<2p>dd}
Derivačního krok má průběh: aaB(3)bbB(2)ccA(3, 4)dd aaB(3)bbA(9)ccDdd
(na základě podmínky v selektoru, parametrického výrazu a pravděpodobnostního limitu byl přepsán jen druhý výskyt symbolu B pomocí 4. pravidla a jediný výskyt symbolu A pomocí 2. pravidla).
Pozn.: srovnáním zmíněného kontextového L-systému (vyjadřuje levý a pravý kontext jen formou řetězcových konstant) jsou moţnosti selektivního L-systému širší (zejména moţností vyjádřit levý i pravý kontext prostředky regulárních výrazů).
33 Uvedli jsme přehled vlastností současných případů L-systémů a provedli porovnání se zavedenými selektivními L-systémy formou demonstračních příkladů. Obecně můţeme z tohoto pohledu prohlásit selektivní L-systém za abstraktní prostředek pro popis modifikací nad dnešními L-systémy podpořený pragmatickými aplikacemi s vlastností generovat dosud nezkoumané struktury, schopnost vnášet při-rozeně asymetrii do fraktálových obrazců. Další praktické výstupy jsou demonstrovány v implementační kapitole 6.
34
5
Tematická oblast, zpracování
přiro-zených jazyků
V této části se zaměříme zejména na zpracování jazyka prostředky analyzátoru, který je zaloţen na formálním modelu analyzovaného jazyka. Mimo tento přístup jsou dnes vyuţívané také metody sta-tisticky orientované (s aplikacemi neuronových sítí, rozhodovacích stromů), které však zpravidla vyţadují spolupráci se znalostní databází tzv. korpusem.
V oblasti zpracování přirozeného jazyka hovoříme o tzv. rovinách popisu (zpracování) jazyka. Tyto roviny jsou uspořádány zdola nahoru od roviny jednodušší (zabývající se lexikografickou částí textu) po rovinu sloţitější, rovinu významu. Kaţdá rovina má své jednotky popisu, definice vztahů na této rovině, a navazuje bezprostředně na rovinu vyšší. Zpravidla se hovoří o pěti rovinách (lexikální, morfologické, syntaktické, sémantické a pragmatické), ale často se (např. z praktického hlediska) některé roviny slučují nebo prolínají.
V následujících několika kapitolách se budeme zabývat zpracováním s vyuţitím třech základ-ních rovin popisu (lexikální, morfologické a syntaktické). V kaţdé úrovni popisu se nejprve zaměříme na obecnou formu a prostředky pro její zpracování. Následně bude diskutována podmnoţina pro hy-potetický jazyk s vyuţitím syntaktického analyzátoru při aplikaci multigramatik.
Zde zmíněná terminologie zahrnuje výrazy zejména lingvistické. Kromě české odborné termi-nologie budou také pouţity jejich ekvivalenty známé z prostředí mezinárodních publikací.
5.1
Úvod do současných prostředků
5.1.1
Lexikografická rovina
Představuje prvotní činnost analyzátoru. Hlavním cílem je separovat jednotlivé lexikální jednotky – lexémy a provedení případné filtrace textu a indexace nad rozpoznanými lexémy. V této fázi zpraco-vání se také mimo vlastí jádro (lexikální analyzátor)setkáme s doprovodnými metodami, které nám pomáhají výsledky samotného analyzátoru zpřesnit nebo doplnit.
Postupy při lexikální analýze:
1. lexikální analyzátor (scanner) – provádí se určení jednotlivých slov a sousloví ve vstupním textu, někdy se identifikace sousloví zavádí, vzhledem ke své sloţitosti, jako samostatný proces.
35 2. nevýznamová nebo nespecifikovaná slova (filter) – jedná se proces, který za pomoci
předem připraveného negativního slovníku nebo regulárních výrazů tato slova odstraňuje; někdy se tato procedura povaţuje za nedílnou součást lexikálního analyzátoru.
3. lemmatizace (stemming) – cílem je snaha získat základní tvary detekovaných slov, tj. kmen nebo kořen (opakem tohoto procesu je derivace, kdy se k základnímu tvaru slova generují jeho inflexní tvary).
4. srovnání slov (comparison) – slouţí k porovnávání kmenů nebo kořenů s výrazy řízeného slovníku (např. korpus).
5. vážení (weighting) – stanovení jednotlivých vah výrazů - nejčastěji se provádí na základě frekvenčních metod.
5.1.1.1 Lexikální analyzátor
Jednotlivé lexémy jsou v textu rozpoznávány pomocí slovních separátních znaků. Za tyto separátory nejčastěji povaţujeme mnoţinu bílých znaků, ačkoli v případě některých typů slov není tato identifi-kace zcela jednoznačná. Častějším problémem je např. určování zkratek, kde je třeba tečku odlišit od větného separátoru. Dále pak jazyky, které umoţňují zápis výrazu se spojovníkem, se potýkají s problémem, kde je nutné rozpoznat, zda se jedná o celistvý výraz nebo o dvě oddělená slova.
Samostatný problém během rozpoznávání slov představují také číslice, kde je zapotřebí určit, zda budou vyhodnoceny jako samostatné výrazy nebo části na sobě závislé (např. spojení: 2. kolo) nebo zda budou pro a další postupy zpracování vypuštěny. O mnoho sloţitější je problematika rozpo-znání sousloví, která jsou z hlediska sémantické nosnosti a selektivní síly významnější neţ samostat-ná slova. Pro rozpozsamostat-nání sousloví přirozených jazyků bylo vyvinuto několik postupů, zde uvádíme dva nejčastěji pouţívané:
statistická identifikace – v případě kdy se ve vstupním textu vyskytují často některá slova společně, můţeme předpokládat, ţe se jedná o sousloví. Vychází se přitom z četnosti výskytu daného sousloví (závisí na pořadí slov), současného výskytu slov (nezávisí na pořadí slov) nebo vzdálenosti slov v textu, kde vzdálenost je určena buď počtem slov mezi slovy myšle-ného sousloví, nebo můţe být sledován jejich současný výskyt ve větě, odstavci, bloku nebo jiné části textu. Metoda nemusí být vţdy zcela úspěšná, neboť vysoká četnost současného vý-skyt dvou slov ještě není schopna jednoznačně určit, zda jde o sousloví či nikoli.
syntaktická identifikace – vychází se z principu předešlé metody. Navíc je zde u předpoklá-daného sousloví pomocí dalších metod analyzována jejich syntaktická sloţka. K tomu nám můţe napomoci např. přítomnost korpusového slovníku.
36 Součástí rozpoznávání sousloví můţe být také normalizace jejich formy. Je zcela běţné, ţe jednotlivá sousloví se v textu mohou vyskytovat v různých syntaktických, lexikálních nebo morfologických variantách, které je vhodné pro potřeby analyzátoru sjednotit. Pouţívá se následujících metod:
normalizace formy za pomoci „slovníku variant sousloví“ - jedná se o jednoduchou metodu, která je však většinou z důvodu omezeného rozsahu slovníku vhodná pouze v rámci určitého odborného zaměření, kterého se text týká.
odstraněním slovních druhů (předloţek, spojek, částic apod.) ze sousloví a zanedbáním uspořádání ostatních částí sousloví.
syntaktická analýza sousloví v kombinaci s pouţitím kmene nebo kořene jednotlivých slov sousloví.
5.1.1.2 Filtrace nevýznamových nebo nespecifikovaných slov
Nevýznamovými slovy rozumíme funkční části textu, které nejsou nositeli význam (patří sem např. spojky, předloţky, částice, určitý/neurčitý člen apod.). Nespecifikovaná slova chápeme jako samo-statná slova či sousloví, jeţ se vyskytují ve větším případě textů. Z tohoto důvodu mají z pohledu vyhledávání minimální selektivní vliv. Oba druhy těchto útvarů je třeba s pomocí negativního slovní-ku odstranit, dochází tak k minimalizaci šumu pro následné fáze analýzy. K vytvoření negativního slovníku je moţno pouţít některé z následujících metod:
kritériem jsou slovní druhy, které nenesou význam a mají jen funkci syntaktického doplnění věty (např. spojky, předloţky, částice apod.)
kritériem jsou slova s vysokou hodnotou absolutní nebo relativní četnosti výskytu v textu; vycházíme z empirických předpokladů, kde nevýznamová nebo nespecifická slova mají mno-hem vyšší hodnotu četnosti v textu neţ významová slova. Nedostatkem této metody je, ţe se v mnoţině slov s vysokou četností se můţe vyskytnout i důleţitý významový termín
kritériem jsou krátká slova; vycházíme z předpokladu, ţe nevýznamová slova jsou tvořena kratšími řetězci neţ slova významová. Zde je ovšem nezbytné pouţití anti-negativního slov-níku, ve kterém budou tyto krátké výrazy uloţeny.
5.1.1.3 Lemmatizace
Slova a sousloví se v případě většiny přirozených jazyků vyskytují v určitém tvaru mutace od svého základu (tzv. lemmatu). Mutací zde rozumíme odlišná tvarosloví vzniklá úpravou čísla, flexí nebo jiných gramatických kategorií. Pro potřeby analýzy je vhodné extrahovat z tvaru mutace jeho předka tedy „lemma“. Tento proces nazýváme lemmatizací. Následuje přehled moţných metod:
37
slovník kmenů nebo kořenů; kladným prvkem je vysoká přesnost ovšem na úkor rozsahu takového slovníku, často se jedná jen o určitou odborně zaměřenou část z jazyka
odstranění afixů; vynecháním předpon (prefix) a přípon (sufix) lze dosáhnout tvaru, který lze povaţovat za základní. Je ale nezbytné pouţití takových metod, které nám umoţní sledovat i nepravidelnou flexi jako jsou např. hláskové změny (stolu x stůl). Odstraňování probíhá na základě známého seznamu předpon a přípon nebo s ohledem na znalost pravidel, dle kterých jsou tyto tvary vygenerovány
statisticky; na základě skupin ve slově jdoucích znaků a s pomocí četnosti jejich jednotlivých uspořádání jsme schopni detekovat konstrukci slovní stavby (předpona, kořen, přípona). Kladným prvek je nezávislost na cílovém jazyce, metoda však nelze pouţít pro zpětnou deri-vaci.
5.1.1.4 Vážení
Pro mnoţinu přirozených jazyků je typické, ţe jednotlivá slova se mohou ve větách v závislosti také na jejich obsahu vyskytovat s určitou důleţitostí – tzv. váhou. Stanovujeme tedy váhu jednotlivých termínů a vytváříme tak výsledný indexační seznam. Tato metoda se vyuţívá zejména v případě slov-ní indexace (vyhledáslov-ní termínů na základě specifikovaných slovslov-ních kritérií).
5.1.2
Morfologická rovina
Morfologická analýza je proces sestavení mnoţiny morfologických kategorií (tzv. gramatických rysů) pro rozpoznané lexikální jednotky (lexémy) a stanovení jejich hodnot.
Vzhledem ke skutečnosti, ţe morfologická analýza pracuje zpravidla s jednotlivými slovy v textu izolovaně, bez ohledu na kontext, nelze tedy jednoznačně identifikovat hodnoty všech kategorií. Kontextové zpracování často náleţí aţ rovinám vyššího řádu.
5.1.2.1 Proces morfologické analýzy
Při zpracování se zavádí tzv. mnoţina morfologických značek (morphological tagset). Kaţdá tato značka pak obsahuje hodnoty morfologických kategorií pro jeden slovní tvar.
Dle způsobu návrhu těchto značek se vychází z několika druhů odlišných notací, mezi nejroz-šířenější patří notace tzv. poziční. Zde se ke kaţdé kategorii přiřadí pozice ve značce a kaţdé hodnotě jeden znak, který je zapsán na příslušnou pozici. Například slovní druh se můţe nacházet na první pozici a jeho hodnoty jsou reprezentovány zkratkami lingvistických pojmenování, tedy např.: N (noun), A (adjektivum), atd.
Během procesu stanovení hodnot je nezbytné pro kaţdý slovní tvar specifikovat mnoţinu všech kom-binací hodnot k dané morfologické kategorii, které k danému tvaru mohou náleţet. Ačkoli se můţe tato fáze zpracování zdát poněkud nepřesnou, jedná se o velmi důleţitou část, která usnadňuje činnost
38 v dalších postupech analýzy. Pro příklad lze uvést: v českém jazyce je počet všech moţných značek přes 4400 a průměrný počet těchto značek po vhodné morfologické analýze se redukuje na hodnotu menší neţ 5 (pro jedno slovo běţného textu).
Během analýzy je třeba řešit ještě tzv. lemmatizaci (pokud nebyla jiţ provedena v rámci lexi-kální analýzy). Lemma pro kaţdý slovní tvar vyjadřuje jeho základní podobu. Tento proces nelze také povaţovat za obecně jednoznačný (opět z důvodu bezkontextového zpracování). Dále je nezbytné u některých jazyků rozlišovat mezi slovy, která se vyskytují v základním tvaru jako homonymní např. state (stav - N) a state (stát - V). Lemmatizace musí tato slova také rozlišovat a identifikovat (např. s vyuţitím indexu k základnímu tvaru tedy: state-1, state-2 apod.).
Z formálního pohledu je tedy moţné definovat morfologickou analýzu jako matematickou funkci, která posloupnosti znaků daného jazyka přiřazuje mnoţinu moţných výsledků, obsahující uspořáda-nou dvojici <lemma,tags>. Morfologická analýza ovšem při zpracování prostředky výpočetní techni-ky není realizována jen jako funkce ale jako výpočetní proces. Základní datovou strukturou tohoto procesu je morfologický slovník(korpus)specifický pro konkrétní potřeby daného jazyka. Ten je pak za pomoci vlastních metod morfologické analýzy vyuţíván (zpravidla je zadán jako jeden z parametrů vstupu morfologické roviny zpracování). Metody samotné by však měli být navrţeny jako jazykově nezávislé.
5.1.2.2 Úvod do korpusové lingvistiky
Výpočetní prostředky nám umoţňují třídit a klasifikovat, analyzovat a vyhodnocovat jazyková data v rozsahu, který by byl ruční anotací nedosaţitelný. Bez prostředků informačních technologií by tedy bylo jen sotva moţné dospět k takovému typu poznání jazyka. Lze podrobně zkoumat v podstatě li-bovolné jazykové jevy a pokoušet se o jejich opravdu přesné a adekvátní generalizace, proti nimţ byly dřívější anotační popisy jazyka jen intuitivními aproximacemi. Hromadnost a rozsah zpracová-vaných dat vede ke kvalitativním změnám v metodologii empirické vědy, jímţ dnešní lingvistika bezpochyby je.
V současnosti se korpusem rozumí rozsáhlý vnitřně strukturovaný a ucelený soubor textů daného jazyka elektronicky uloţený a zpracovávaný. Texty jsou v korpusu strukturovány a organizo-vány se zřetelem k vyuţití pro určitý cíl, vůči němuţ pak je korpus povaţován za reprezentativní. Podle účelu existují různé typy korpusů. Dle zdroje textů mohou být korpusy psaného nebo mluvené-ho jazyka, všeobecné nebo specializované na určitý styl, publicistický nebo odborný. Většina korpusů s ohledem na svou reprezentativnost obsahuje v různém poměru zástupce všech moţných kategorií textů. Podle uloţených dat mohou korpusy obsahovat pouze holé texty nebo texty různě označkované (anotované). Značkované korpusy samozřejmě poskytují více informací o jazyku, a proto je snaha korpusy značkovat. To lze provádět buď ručně, coţ je ale velice nákladné, nebo automaticky (strojo-vě), coţ můţe někdy znamenat zanesení jisté míry nepřesností do značkování. Proto se také mnoho