1 / 21 Matematik för språkteknologer 3.3 Kontext-fria grammatiker (CFG) Mats Dahllöf Institutionen för lingvistik och filologi Februari 2014
2 / 21 Dagens saker Kontext-fria grammatiker (CFG). CFG kan definiera alla de språk som reguljära uttryck/ändliga automater kan definiera. CFG är mer kraftfulla än reguljära uttryck/ändliga automater. CFG har många tillämpningar både inom språkvetenskap och datavetenskap, både för naturliga och artificiella språk.
3 / 21 Kontextfri grammatik formellt En kontextfri grammatik (CFG) är en 4-tupel (V,Σ,R,), där V är en ändlig mängd. De icke-terminala symbolerna. Σ är en ändlig mängd. De terminala symbolerna. Σ och V är disjunkta. R är en ändlig relation mellan V och (V Σ). (R regler.) Relationssymbol. V är startsymbol.
4 / 21 CFG enkelt exempel G = (V,Σ,R,), där V = {} Σ = {a,b} R = { λ, ab} = Mer om denna snart.
5 / 21 CFG annat exempel G = (V,Σ,R,), där V = {JJ,NN,NP,,VB,VP}. Σ = {matematiska, studenter, texter, älskar} R = { NP NN, JJ matematiska, NP JJ NN, NN studenter, NP VP, NN texter, VP VP NP, VB älskar } =.
6 / 21 Härledning från G NP VP NN VB NP studenter älskar JJ NN matematiska texter
7 / 21 Reglerna för omskrivning Givet en CFG G = (V,Σ,R,) trängen kan härledas. Om en sträng β som innehåller åtminstone en icketerminal symbol A kan härledas och A γ ingår i R, så kan vi härleda strängen där en förekomst av A i β ersatts med γ. G definierar det språk som består av alla strängar över Σ som kan härledas. (På vägen härleder vi typiskt andra strängar över (V Σ).)
8 / 21 En härledning motsvarande trädet NP VP NN VP studenter VP studenter VB NP studenter älskar NP studenter älskar JJ NN studenter älskar matematiska NN studenter älskar matematiska texter Fångar aspekter av ordning som inte ett träd gör.
9 / 21 En annan härledning NP VP NP VB NP NP VB JJ NN NP VB JJ texter NP VB matematiska texter NP älskar matematiska texter NN älskar matematiska texter studenter älskar matematiska texter killnad?
10 / 21 Grammatik för {a n b n n 0} CFG G = (V,Σ,R,) V = {} Σ = {a,b} R = { λ, ab} = lutsats: pråket {a n b n n 0} kan definieras av en CFG. Med andra ord: Det är ett kontextfritt språk.
11 / 21 Exempelträd (4 st) a b a b a b a b a b a b λ λ λ λ {a n b n n 0} = {λ,ab,aabb,aaabbb,aaaabbbb,...}
12 / 21 Varje reguljärt språk är ett CF språk Varje reguljärt uttryck motsvarar en ekvivalent ändlig automat. (Förra gången.) Reguljärt uttryck och ändlig automater ekvivalenta. (Vi har sett halva beviset.) Nu: Varje ändlig automat motsvarar en ekvivalent CFG. edan: Men inte vice versa. Klassen CF språk är större än klassen reguljära språk.
13 / 21 Varje reguljärt språk är ett CF språk En automat A kan översättas till en CFG G så här: G s icketerminaler = A s tillstånd. G s startsymbol = A s starttillstånd. En regel s as i G för varje a-övergång från s till s i A. En regel s s i G för varje λ-övergång från s till s i A. En regel s λ i G för varje accepterande tillstånd s i A.
14 / 21 Automaten för ordformerna hos apa a start s 0 a s 1 p s 2 s 3 n s s s 4 s 5 a o s 6 s s 8 r s 7 n
15 / 21 Motsvarande CFG Grammatiken har 9 icketerminaler, s 0,...,s 8. tartsymbolen är s 0. Reglerna i grammatiken ser ut så här: s 0 as 1 s 1 ps 2 s 2 as 3 s 2 os 6 s 3 ss 4 s 3 ns 5 s 5 ss 4 s 6 rs 7 s 7 ss 4 s 7 ns 8 s 8 as 5 s 3 λ s 4 λ s 5 λ s 7 λ
16 / 21 Härledningsexempel s 0 as 1 aps 2 apos 6 apors 7 (aporλ = apor) aporns 8 apornas 5 (apornaλ = aporna) apornass 4 apornasλ = apornas Σ Σ Σ
17 / 21 Några CF språk är inte reguljära pråket {a n b n n 0} är (som vi såg) ett kontextfritt språk. pråket {a n b n n 0} kan inte definieras av en ändlig automat. Bevis via pumpning.
18 / 21 Pumplemma Om en automat accepterar en viss sträng z. och z p, där p är antalet tillstånd i automaten, så måste det finnas en cykel i automaten och vi kan dela in z i tre delar u,v,w v start u w och denna cykel kan tas flera gånger även uvvw, uvvvw, uvvvvw... måste accepteras.
19 / 21 Bevis pråket {a n b n n 0} kan inte definieras av en ändlig automat. Indirekt bevis: vi antar att det finns en ändlig automat M som accepterar {a n b n n 0}. Detta har orimliga konsekvenser. Vi kallar antalet tillstånd i M för p. Vi beaktar en sträng z = a k b k, där 2k p. Pumplemmat kan tillämpas: Om z = a k b k = uvw, så accepterar automaten även uvvw. Men uvvw {a n b n n 0}.
20 / 21 uvvw {a n b n n 0} varför? Om z = a k b k = uvw, så accepterar automaten även uvvw, enligt pumplemmat. Tre möjliga fall: Om v {a}, så innehåller uvvw fler a än b. Om v {b}, så innehåller uvvw fler b än a. Annars v = a x b y, x > 0, och y > 0, och då innehåller uvvw en sekvens b av omgiven av a. I alla tre fall: uvvw {a n b n n 0}. Överordnad slutsats: {a n b n n 0} är ett CF språk som inte kan definieras av en ändlig automat.
21 / 21 ammanfattning Ändlig-automat-språk och reguljära språk är samma klass av språk. (Förra gången.) Alla reguljära språk är också CF språk. Det finns CF språk som inte är reguljära. (CF språk är alltså en överordnad klass.) (Ingår i Chomskyhierarkin med fyra typer av språk: reguljära är typ 3 och CF typ 2. Och motsvarande fyra typer av grammatiker och fyra typer av automater.)