INF2820 Datalingvistikk V Gang 27.2 Jan Tore Lønning

Like dokumenter
INF2820 Datalingvistikk V Gang 26.2 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 6.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V gang, 27.2 Jan Tore Lønning

INF2820 Datalingvistikk V2012

INF2820 Datalingvistikk V2012. Jan Tore Lønning

2/24/2012. Context-Free Grammars. I dag. Avledning. Eksempel: grammar1 PARSING. Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

2/22/2011. Høyre- og venstreavledninger. I dag. Chomsky-normalform (CNF) Chomsky-normalform (CNF) PARSING. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2012. Jan Tore Lønning

2/20/2012. I dag. Parsing. Recursive descent parser SÆRLIG TABELLPARSING. Venstre- og høyreavledning. Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

2/24/2012. Dynamic Programming. I dag. Example. Example PARSING. Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 4.5 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 13.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V Gang 19.3 del 1 Jan Tore Lønning

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

INF 2820 V2015: Obligatorisk innleveringsoppgave 3

3/1/2011. I dag. Recursive descent parser. Problem for RD-parser: Top Down Space. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V Gang Jan Tore Lønning

Oppgave 2. Eksamen INF2820, 2015, oppgave 2. La gramatikk G være:

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF5830, H2009, Obigatorisk innlevering 2. 1 Oppgave: Unære produksjoner i CKY

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

3/5/2012. Chart alternativ datastruktur. Fundamentalregelen. Chart-parsing. Bottom-up FORMELL SPRÅKTEORI. Jan Tore Lønning

3/8/2011. I dag. Dynamic Programming. Example. Example FORMELLE EGENSKAPER VED SPRÅK (KAP. 16) Jan Tore Lønning & Stephan Oepen

INF 2820 V2016: Obligatorisk innleveringsoppgave 3

Oppgave 1. La G1 være grammatikken med hovedsymbol S og følgende regler:

Eksamen INF2820 Datalingvistikk, H2018, Løsningsforslag

Oppgave 1 Vi har gitt følgende grammatikk for noe vi kan kalle speilengelsk :

INF2820 Datalingvistikk V Gang 13.3 Jan Tore Lønning

Oppgave 1 (samlet 40%)

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

Spørsmål 1.1 (10%) Lag en ikke-deterministisk endelig tilstandsautomat (NFA) som beskriver dette språket.

INF2820 Datalingvistikk V gang, Jan Tore Lønning

MAKE MAKE Arkitekter AS Maridalsveien Oslo Tlf Org.nr

INF2820 Datalingvistikk V2012. Jan Tore Lønning

Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/ Legger ut en oppgave til kap. 4 (se beskjed).

UNIVERSITETET I OSLO

INF2820-V2018 Oppgavesett 10 Gruppe 18.4

INF 2820 V2016: Innleveringsoppgave 3 hele

INF2820 V2017 Oppgavesett 5 Gruppe 21.2

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF2820 Datalingvistikk V2014. Jan Tore Lønning

INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning

INF2820 V2017 Oppgavesett 5 arbeidsoppgaver

UNIVERSITETET I OSLO

2/6/2012. Begrensninger ved regulære språk. INF2820 Datalingvistikk V2012. Formelle språk som ikke er regulære KONTEKSTFRIE GRAMMATIKKER.

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning

UNIVERSITETET I OSLO

INF3110 Programmeringsspråk

Syntaksanalyse. Skanner (repetisjon) Parsering top-down bottom-up LL(1)-parsering Recursive descent Forutsetninger. IN 211 Programmeringsspråk

INF2820 Datalingvistikk V2017 Forelesning 2, 23.1 Jan Tore Lønning

Kap. 5, del 1: Parsering nedenfra-opp (Bottom up parsing) INF5110. Stein Krogdahl Ifi, UiO

Kap.4 del I Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO

Repetisjon. 1 binærtall. INF3110 Programmeringsspråk. Sist så vi ulike notasjoner for syntaks: Jernbanediagrammer. BNF-grammatikker.

INF2820 Datalingvistikk V2012. Jan Tore Lønning

Kap.4 del 2 Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker

Syntax/semantics - I INF 3110/ /29/2005 1

INF2820 Datalingvistikk V2016. Jan Tore Lønning

Bottom up parsering (nedenfra-og-opp) Kap. 5 del 1 Intro til parsering nedenfra-og-opp samt LR(0) og SLR(1) grammatikker INF5110 v2006

INF2820 Datalingvistikk V2014. Forelesning 4, 6.2 Jan Tore Lønning

INF2820 V2017 Oppgavesett 6 Gruppe 7.3

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

Kap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) INF / Stein Krogdahl Ifi, UiO

Kap. 4 del I Top Down Parsering INF5110 v2006. Stein Krogdahl Ifi, UiO

INF5110 Kap. 5: Parsering nedenfra-og-opp (Bottom-up parsing) 21/ Stein Krogdahl Ifi, UiO. Angående Oblig 1:

INF2820 Datalingvistikk V2012. Jan Tore Lønning

1/26/2012 LITT PYTHON. INF2820 Datalingvistikk V2012. Hvorfor Pyhton. Python syntaks. Python er objektorientert. Python datatyper.

INF5110 V2012 Kapittel 4: Parsering ovenfra-ned

Oppgave 2. INF5110 oppgave 2 på eksamen v04 med teori. FirstMengder. Arne Maus Ifi. Eks. 4.9 Beregning av First-mengde. terminal

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF INF1820. Arne Skjærholt INF1820. Dagens språk: Russisk. dyes yataya l yektsiya. Arne Skjærholt. десятая лекция

Oppgave 1. Spørsmål 1.1 (10%) Gitt det regulære uttrykket: a((bcd)+(cd))*cd

Dagens Tema: Grammatikker Kap. 3 i K. C. Louden

INF2820 Datalingvistikk V Gang 5.3 Jan Tore Lønning

Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2)

INF2820 Datalingvistikk V2012. Jan Tore Lønning & Stephan Oepen

Litt om kompilering og interpretering. Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2) Syntaks og semantikk

1/31/2011 SAMMENHENGER FSA OG REGULÆRE UTTRYKK. Regulære språk. Fra FSA til RE. Fra regulært uttrykk til NFA REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2

Semantisk Analyse del I

Kap. 5, Del 3: INF5110, fra 1/3-2011

INF2820 Datalingvistikk V forelesning, 30.1 Jan Tore Lønning

Kap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) 16/ Stein Krogdahl Ifi, UiO

INF2820 Datalingvistikk V2014. Jan Tore Lønning

INF2820 Datalingvistikk V Gang 30.3 Jan Tore Lønning

Transkript:

INF2820 Datalingvistikk V2017 7. Gang 27.2 Jan Tore Lønning

I dag Fra sist: Høyre- og venstreavledninger Recursive-descent parser (top-down) Shift-reduce parser (bottom-up) Pythonimplementasjon: Shift-Reduce Recognizer Svakheter ved RD- og SR-parsing CKY-algoritmen Python-implementasjon Chomsky Normal Form (CNF) 22. februar 2017 2

Eksempel: VF og HF Venstreavledning: S NP VP Det N VP the N VP the dog VP the dog V NP PP the dog saw NP PP the dog saw Det N PP the dog saw a N PP the dog saw a man PP the dog saw a man P NP the dog saw a man in NP the dog saw a man in Det N the dog saw a man in the N the dog saw a man in the park Høyreavledning: S NP VP NP V NP PP NP V NP P NP NP V NP P Det N NP V NP P Det park NP V NP P the park NP V NP in the park NP V Det N in the park NP V Det man in the park NP V a man in the park NP saw a man in the park Det N saw a man in the park Det man saw a man in the park the dog saw a man in the park 22. februar 2017 3

Høyre- og venstreavledninger En avledning er en venstreavledning ( leftmost derivation ) hvis vi alltid ekspanderer ikke terminalen lengst til venstre. Høyreavledning defineres tilsvarende. Til ethvert tre generert av grammatikken svarer det nøyaktig en venstreavledning og nøyaktig en høyreavledning. 22. februar 2017 4

Recursive Descent parser Lager en venstreavledning Tilsvarer å bygge et tre: Fra toppen ( top-down ) Fra venstre mot høyre 22. februar 2017 5

S the dog saw a man in the park Datastruktur NP VP the dog saw a man in the park Det N VP the dog saw a man in the park the N VP the dog saw a man in the park Venstreavledning N VP dog saw a man in the park dog VP dog saw a man in the park VP saw a man in the park V NP PP saw a man in the park S saw NP PP saw a man in the park NP VP NP PP a man in the park Det N VP Det N PP a man in the park the N VP a N PP a man in the park the dog VP N PP man in the park the dog V NP PP man PP man in the park the dog saw NP PP PP in the park the dog saw Det N PP P NP in the park the dog saw a N PP in NP in the park the dog saw a man PP NP the park the dog saw a man P NP Det N the park the dog saw a man in NP the N the park the dog saw a man in Det N N park the dog saw a man in the N park park the dog saw a man in the park # # 22. februar 2017 6

I dag Fra sist: Høyre- og venstreavledninger Recursive-descent parser (top-down) Shift-reduce parser (bottom-up) Pythonimplementasjon: Shift-Reduce Recognizer Svakheter ved RD- og SR-parsing CKY-algoritmen Python-implementasjon Chomsky Normal Form (CNF) 22. februar 2017 7

Shift-Reduce Høyreavledning S NP VP NP V NP PP NP V NP P NP NP V NP P Det N NP V NP P Det park NP V NP P the park NP V NP in the park NP V Det N in the park NP V Det man in the park NP V a man in the park NP saw a man in the park Det N saw a man in the park Det man saw a man in the park the dog saw a man in the park reduce shift S # NP VP # NP V NP PP # NP V NP P NP # NP V NP P Det N # NP V NP P Det park # NP V NP P Det park NP V NP P the park NP V NP P the park NP V NP in the park NP V NP in the park NP V Det N in the park NP V Det man in the park NP V Det man in the park NP V a man in the park NP V a man in the park NP saw a man in the park NP saw a man in the park Det N saw a man in the park Det dog saw a man in the park Det dog saw a man in the park the dog saw a man in the park # the dog saw a man in the park Datastruktur: stack rest input 22. februar 2017 8

Bottom-up: Shift-Reduce parser Struktur: Words: en liste av ord (terminaler) Stack: en stack av symboler (terminaler og ikketerminaler) Vanlig notasjon: Stack Words (toppen av stacken til høyre i Stack) Start: Words:= ordene i setningen som skal analyseres Stack:= tom Løkke: Hvis Words=[] og Stack=[S]: stopp med suksess! Hvis mulig, gjør en av følgende: (Shift:) Hvis Words=/=[], La Stack:=Stack+ first(words) og Words:=rest(Words) (Reduce:) Hvis det fins,, B, en regel B og Stack= + : la Stack= + B 22. februar 2017 9

I dag Fra sist: Høyre- og venstreavledninger Recursive-descent parser (top-down) Shift-reduce parser (bottom-up) Pythonimplementasjon: Shift-Reduce Recognizer Svakheter ved RD- og SR-parsing CKY-algoritmen Python-implementasjon Chomsky Normal Form (CNF) 22. februar 2017 10

def recognize(grammar, stack, rwords, trace=0): if rwords==[] and len(stack)==1 and stack[0]==grammar.start(): return True else: for p in grammar.productions(): rhs = list(p.rhs()) n = len(rhs) if stack[ n:] == rhs: newstack = stack[0: n] newstack.append(p.lhs()) if recognize(grammar, newstack, rwords,trace): return True if not len(rwords) == 0: newstack = stack[:] newstack.append(rwords[0]) if recognize(grammar, newstack, rwords[1:], trace): return True return False 22. februar 2017 11

Fra anerkjenner til parser La stacken bestå av deltrær Shift som før Stack: 4 elements Remaininginput 12

Fra anerkjenner til parser La stacken bestå av deltrær Shift som før Reduksjon: For hver av de n øverste deltrærne t 1, t 2,, t i, t n på stacken: Ta merkelappen l i på toppnoden Hvis det finnes en regel X l 1, l 2,, l i, l n fjern t 1,, t i, t n fra toppen av stacken Lag et tre t med: Xsom merke på mora t 1,, t i, t n som døtre Push t på toppen av stacken 13

Demo nltk.app.srparser() 22. februar 2017 14

Algoritme ikke-deterministisk To plasser for valg/ikke determinisme: Skal vi flytte eller redusere? Hva skal vi velge når vi har flere valg for reduksjon? Eks: NP DET N NP N Hvis grammatikken er på standardform, kan algoritmen gjøres noe mer effektiv: Hver gang vi shifter et ord over på stacken, må vi redusere, Mao. Det eneste stedet på stacken vi tillater en terminal er på toppen. 22. februar 2017 15

I dag Fra sist: Høyre- og venstreavledninger Recursive-descent parser (top-down) Shift-reduce parser (bottom-up) Pythonimplementasjon: Shift-Reduce Recognizer Svakheter ved RD- og SR-parsing CKY-algoritmen Python-implementasjon Chomsky Normal Form (CNF) 22. februar 2017 16

Problemer spesielt for Shift-Reduce Unære produksjonsregler: Shift-Reduce kan tillate disse, men en må sjekke at det ikke er cykler av unære regler i grammatikken: A B B A Tomme produksjonsregler: NP DET N PPS PPS PP PPS PPS # Når skulle vi foreslå dem? Hvor mange? Iterasjon? 17

Problem for både RD og SR Ineffektivitet RD: Eksempel: S NP VP Noen valg under NP Noen valg under VP Vi foretar valgene for VP på nytt for hvert alternativ under NP Tilsvarende for SR For hvert valg vi foretar må vi se på alle muligheter for resten av strengen på nytt 22. februar 2017 18

I dag Fra sist: Høyre- og venstreavledninger Recursive-descent parser (top-down) Shift-reduce parser (bottom-up) Pythonimplementasjon: Shift-Reduce Recognizer Svakheter ved RD- og SR-parsing CKY-algoritmen Python-implementasjon Chomsky Normal Form (CNF) 22. februar 2017 19

Dynamisk programmering I en beregning kan det inngå delberegninger som må foretas flere ganger Med DP tar vi vare på resultatet av disse beregningene underveis slik at Vi slipper å gjøre delberegningene flere ganger Øker effektiviteten, F.eks. i noen tilfeller fra eksponentiell til polynomisk tid Kan lagre flertydige strukturer med felles deler Vi skal se på CKY-parser, nå Chartparser, senere 20

CKY-parsing CKY/CYK (Cocke Kasami Younger) algoritmen Hovedide: 1. For hvert segment [i, j] av ord i input, bestem hvilke ikke terminaler som disse ordene kan avledes fra 2. Bottom up 3. Kortere segmenter før lengre segmenter 21

Chomsky-normalform (CNF) CKY algoritmen forutsetter at grammatikken er på Chomsky normalform En grammatikk er på Chomsky normalform hvis alle reglene er på en av følgende former: A B C (ikketerminaler) A t (t en terminal) Vi skal senere se at: Enhver CFG G hvor L(G), er svakt ekvivalent til en G på CNF. Altså L(G) = L(G ) 22. februar 2017 22

CKY-parsing, forts. Hvilke kategorier har ord j, dvs segment [j-1,j]? Betrakt alle regler: A w j for en eller annen A Lagr disse A-ene i tabell[j-1, j] Se så på segmenter av to ord, [i, i + 2]: For å legge en ikke-terminal, A, i tabell[i, i+2] må det Finnes en regel A B C for en eller annen B og C B må utspenne [i, i+1] C må utspenne [i+1, i+2] 23

CKY-parsing ff. Deretter se på tre-ordsfragmenter [i, i+3]: For å legge en ikke-terminal, A, i tabell[i, i+3] må det Finnes en regel A B C for en eller annen B og C B må utspenne [i, i+1] og C må utspenne [i+1, i+3], eller B må utspenne [i, i+2] og C må utspenne [i+2, i+3] I det generelle tilfellet [i, j]: Det må finnes en regel A B C for en eller annen B og C B må utspenne [i, k] og C må utspenne [k, j], for en eller annen k, hvor i<k<j 24

CNF-grammatikk til eksempel 2/22/2017 Speech and Language Processing - Jurafsky and Martin 25

Eksempel 2/22/2017 Speech and Language Processing - Jurafsky and Martin 26

Eksempel 2/22/2017 Speech and Language Processing - Jurafsky and Martin 27

Eksempel Hvordan fylle søyle 5 2/22/2017 Speech and Language Processing - Jurafsky and Martin 28

Eksempel 2/22/2017 Speech and Language Processing - Jurafsky and Martin 29

Eksempel 2/22/2017 Speech and Language Processing - Jurafsky and Martin 30

Eksempel 2/22/2017 Speech and Language Processing - Jurafsky and Martin 31

Eksempel 2/22/2017 Speech and Language Processing - Jurafsky and Martin 32

CKY Algorithm 2/22/2017 Speech and Language Processing - Jurafsky and Martin 33

I dag Fra sist: Høyre- og venstreavledninger Recursive-descent parser (top-down) Shift-reduce parser (bottom-up) Pythonimplementasjon: Shift-Reduce Recognizer Svakheter ved RD- og SR-parsing CKY-algoritmen Python-implementasjon Chomsky Normal Form (CNF) 22. februar 2017 34

CKY-implementasjon (følger pseudok.) def cky(words, cfg): tabl = [[set([]) for j in range(len(words)+1) ] for i in range(len(words))] for j in range(len(words)): tabl[j][j+1] = set([p.lhs() for p in cfg.productions() if p.rhs() == (words[j],)]) for i in range(j 1, 1, 1): for k in range(i+1, j+1, 1): tabl[i][j+1] = tabl[i][j+1].union( [p.lhs() for p in grammar.productions() if (p.rhs()[0] in tabl[i][k] and p.rhs()[1] in tabl[k][j+1])]) return tabl 35

CKY-implementasjon (mer prosedyrell) def cky(words, cfg): tabl = [[[] for j in range(len(words)+1) ] for i in range(len(words))] for j in range(len(words)): tabl[j][j+1] = [p.lhs() for p in cfg.productions() if p.rhs() == (words[j],)] for i in range(j 1, 1, 1): for k in range(i+1, j+1, 1): for p in grammar.productions(): if (p.rhs()[0] in tabl[i][k] and p.rhs()[1] in tabl[k][j+1]): if not p.lhs() in tabl[i][j+1]: tabl[i][j+1].append(p.lhs()) return tabl 36

I dag Fra sist: Høyre- og venstreavledninger Recursive-descent parser (top-down) Shift-reduce parser (bottom-up) Pythonimplementasjon: Shift-Reduce Recognizer Svakheter ved RD- og SR-parsing CKY-algoritmen Python-implementasjon Chomsky Normal Form (CNF) 22. februar 2017 37

Chomsky-normalform (CNF) CKY algoritmen forutsetter at grammatikken er på Chomsky normalform En grammatikk er på Chomsky normalform hvis alle reglene er på en av følgende former: A B C (ikketerminaler) A t (t en terminal) Enhver CFG G hvor L(G) er svakt ekvivalent til en G på CNF, dvs L(G)=L(G ) 22. februar 2017 38

Chomsky-normalform (CNF) Enhver CFG G hvor L(G) er svakt ekvivalent til en G på CNF Oppskrift: 1. Erstatt alle regler på formen A 2. Erstatt alle regler på formen A B for B en ikke terminal 3. Erstatt alle regler A, der > 1 og inneholder en eller flere terminaler t 1,, t n 4. Erstatt alle regler A B 1 B 2 B n, der n > 2, : 22. februar 2017 39

Trinn 1: A Erstatt alle regler på formen A unntatt evt. S 1. Finn mengden E av alle ikke-terminaler A, s.a. A + 2. For hver regel B : Legg til alle regler på formen B, der fremkommer ved å stryke en eller flere ikke-terminaler fra E i. 3. Stryk alle regler på formen A 22. februar 2017 40

Trinn 2: A B for B en ikke-terminal Erstatt alle regler på formen A B for B en ikketerminal: 1. For enhver ikke terminal B: For enhver A s.a. A B eller A + B: For enhver s.a. B : Innfør A, hvis den ikke alt finnes 2. Fjern alle unære regler med ikke terminal høyreside 22. februar 2017 41

Trinn 3 Erstatt alle regler A, der > 1 og inneholder en eller flere terminaler t 1,, t n 1. Innfør nye ikke terminaler T 1,, T n. 2. Erstatt t i med T i i 3. Innfør reglene T i t i for i = 1,, n 22. februar 2017 42

Trinn 4 Erstatt alle regler A B 1 B 2 B n, der n > 2, For hver regel A B 1 B 2 B n, n > 2, : 1. Innfør nye ikke terminaler C 1,, C n 2 og regler 2. A B 1 C 1 3. C i B i+1 C i+1 for i = 1,, n 3 4. C n 2 B n 1 B n 22. februar 2017 43

Eksempel Grammatikk 1. S a A 2. A a A 3. A a Ab 4. A B 5. B ab c 6. B 22. februar 2017 44

Eksempel Grammatikk 1. S a A 2. A a A 3. A a Ab 4. A B 5. B ab c 6. B Trinn 1 E = {A, B} 1. S a A 2. A a A 3. A a Ab 4. A B 5. B a B c 6. stryk 7. S a 8. A a 9. A a b 10.B a c 22. februar 2017 45

Eksempel Grammatikk 1. S a A 2. A a A 3. A a Ab 4. A B 5. B ab c 6. B Trinn 1 E = {A, B} 1. S a A 2. A a A 3. A a Ab 4. A B 5. B a B c 6. stryk 7. S a 8. A a 9. A a b 10.B a c Trinn 2 E = {A, B} 1. S a A 2. A a A 3. A a Ab 4. stryk 5. B a B c 6. strøket 7. S a 8. A a 9. A a b 10.B a c 11.A a B c 12.A a c 22. februar 2017 46

Eksempel Grammatikk 1. S a A 2. A a A 3. A a Ab 4. A B 5. B ab c 6. B Trinn 1 E = {A, B} 1. S a A 2. A a A 3. A a Ab 4. A B 5. B a B c 6. stryk 7. S a 8. A a 9. A a b 10.B a c Trinn 2 E = {A, B} 1. S a A 2. A a A 3. A a Ab 4. strøket 5. B a B c 6. strøket 7. S a 8. A a 9. A a b 10.B a c 11.A a B c 12.A a c Trinn 3 I. S XA II. A XA III. A XA Y IV. strøket V. B XB Z VI. strøket VII. S a VIII. A a IX. A XY X. B XZ XI. A XB Z XII. A XZ XIII. X a XIV. Y b XV. Z c 22. februar 2017 47

Eksempel Grammatikk 1. S a A 2. A a A 3. A a Ab 4. A B 5. B a B c 6. B Trinn 1 E = {A, B} 1. S a A 2. A a A 3. A a Ab 4. A B 5. B a B c 6. stryk 7. S a 8. A a 9. A a b 10.B a c Trinn 2 E = {A, B} 1. S a A 2. A a A 3. A a Ab 4. stryk 5. B a B c 6. strøket 7. S a 8. A a 9. A a b 10.B a c 11.A a B c 12.A a c Trinn 3 I. S XA II. A XA III. A XA Y IV. strøket V. B XB Z VI. strøket VII. S a VIII. A a IX. A XY X. B XZ XI. A XB Z XII. A XZ XIII. X a XIV. Y b XV. Z c Trinn 4 I. S XA II. A XA III.i A XP III.ii P A Y IV. strøket V.i B XQ V.ii Q B Z VI. strøket VII. S a VIII. A a IX. A XY X. B XZ XI.i A XR X1.ii R B Z XII. A XZ XIII. X a XIV. Y b XV. Z c 22. februar 2017 48

Sample L1 Grammar 2/22/2017 Speech and Language Processing - Jurafsky and Martin 49

CNF Conversion 2/22/2017 Speech and Language Processing - Jurafsky and Martin 50

Begrensninger i CKY 1. Grammatikken må være på CNF 2. Det foreslås strukturer som holder lokalt, men ikke globalt: Løsninger baserer seg på å kombinere TD og BU Hjelp for begge problemene å innføre dotted items og chart-parsing senere i semesteret 22. februar 2017 51