INF2820 Datalingvistikk V Gang 6.3 Jan Tore Lønning

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

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 27.2 Jan Tore Lønning

INF2820 Datalingvistikk V gang, 27.2 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 26.2 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 13.3 Jan Tore Lønning

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

INF2820 Datalingvistikk V2012. Jan Tore Lønning

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

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 4.5 Jan Tore Lønning

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

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

INF2820 Datalingvistikk V2012. Jan Tore Lønning

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

INF2820 Datalingvistikk V Gang 13.3 Jan Tore Lønning

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

INF2820 Datalingvistikk V2012. Jan Tore Lønning

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

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

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

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

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

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

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

INF2820-V2018 Oppgavesett 10 Gruppe 18.4

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF 2820 V2015: Obligatorisk innleveringsoppgave 3

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF 2820 V2016: Obligatorisk innleveringsoppgave 3

INF2820 Datalingvistikk V Gang 16.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

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

MAKE MAKE Arkitekter AS Maridalsveien Oslo Tlf Org.nr

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

Eksamen INF2820 Datalingvistikk, H2018, Løsningsforslag

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

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

Oppgave 1 (samlet 40%)

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

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V Gang 5.3 Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V Gang 6.4 Jan Tore Lønning

INF2820 V2017 Oppgavesett 5 Gruppe 21.2

INF 2820 V2016: Innleveringsoppgave 3 hele

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

INF2820 V2017 Oppgavesett 6 Gruppe 7.3

UNIVERSITETET I OSLO

INF2820 Datalingvistikk V Gang 6.4 Jan Tore Lønning

INF2820 Datalingvistikk V2014. Jan Tore Lønning

INF2820 V2017 Oppgavesett 5 arbeidsoppgaver

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning

UNIVERSITETET I OSLO

INF2820 Datalingvistikk V gang, Jan Tore Lønning

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

INF2820 Datalingvistikk V Gang 30.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 13.4 Jan Tore Lønning

INF 2820 V2016: Innleveringsoppgave 3 del 1

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

UNIVERSITETET I OSLO

INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning

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

INF2820 Datalingvistikk V Gang 23.3 Jan Tore Lønning

INF 2820 V2018: Innleveringsoppgave 3

INF 2820 V2016: Obligatorisk innleverinsoppgave 1

INF2820 Datalingvistikk V2015. Forelesning 4, 9.2 Jan Tore Lønning

INF2820 Datalingvistikk V2015. Jan Tore Lønning

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

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

INF2820 Datalingvistikk V gang, Jan Tore Lønning

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

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

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

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

INF2820 Datalingvistikk V2012. 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 V2016. Forelesning 4, 10.2 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 20.3 Jan Tore Lønning

Stoff som i boka står i kap 4, men som er. 10. Februar Ifi, UiO

INF2820 Datalingvistikk V Gang 20.3 Jan Tore Lønning

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

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

INF2820 Datalingvistikk V Gang 16.3 Jan Tore Lønning

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

INF2820 Datalingvistikk V2014. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning

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

Transkript:

INF2820 Datalingvistikk V2017 8. Gang 6.3 Jan Tore Lønning

I dag CKY-algoritmen fortsatt fra sist Python-implementasjon av CKY Chomsky Normal Form (CNF) Chart-parsing BU-algoritme for chart-parsing 3. mars 2017 2

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 3

Eksempel 3/3/2017 Speech and Language Processing - Jurafsky and Martin 4

Eksempel 3/3/2017 Speech and Language Processing - Jurafsky and Martin 5

Eksempel 3/3/2017 Speech and Language Processing - Jurafsky and Martin 6

CKY Algorithm k i 3/3/2017 j Speech and Language Processing - Jurafsky and Martin 7

I dag CKY-algoritmen fortsatt fra sist Python-implementasjon av CKY Chomsky Normal Form (CNF) Chart-parsing BU-algoritme for chart-parsing 3. mars 2017 8

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): 9

CKY-implementasjon (følger pseudok.) 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 10

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): 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 11

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 12

I dag CKY-algoritmen fortsatt fra sist Python-implementasjon av CKY Chomsky Normal Form (CNF) Chart-parsing BU-algoritme for chart-parsing 3. mars 2017 13

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 ) 3. mars 2017 14

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, : 3. mars 2017 15

Eksempel Grammatikk 1. S a A 2. A a A 3. A a Ab 4. A B 5. B ab c 6. B 3. mars 2017 16

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 3. mars 2017 17

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 3. mars 2017 18

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 3. mars 2017 19

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 3. mars 2017 20

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 3. mars 2017 21

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 3. mars 2017 22

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 3. mars 2017 23

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 3. mars 2017 24

Sample L1 Grammar 3/3/2017 Speech and Language Processing - Jurafsky and Martin 25

CNF Conversion 3/3/2017 Speech and Language Processing - Jurafsky and Martin 26

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 3. mars 2017 27

Problemer for tidligere parsere RD: venstrerekursjon SR: regler med tomme høyresider Både RD og SR: Ineffektivitet CKY: bare grammtikker på CNF 3. mars 2017 28

I dag CKY-algoritmen fortsatt fra sist Python-implementasjon av CKY Chomsky Normal Form (CNF) Chart-parsing BU-algoritme for chart-parsing 3. mars 2017 29

Chart-parsing: hovedideer Dotted items, aktive kanter Active chart - datastruktur Fundamentalregelen Bruk av en agenda 30

Dotted items Representerer deler av fraser VP V NP PP En del av VP Inneholder V NP Mangler PP 31

Dotted items Representerer deler av fraser VP V NP PP En del av VP Inneholder V NP Mangler PP VP VNP PP En hel VP frase med antydet struktur 32

Dotted items Representerer deler av fraser VP V NP PP En del av VP Inneholder V NP Mangler PP VP VNP PP En hel VP frase med antydet struktur VP V NP PP Predikerer starten på en VP 33

Kanter Representerer deler av fraser VP V NP PP [2, 5] En del av VP. Fra posisjon 2 til 5 VP VNP PP [2, 9] En hel VP frase med antydet struktur VP V NP PP [2, 2] Predikterer starten på en VP I posisjon 2 34

Active Chart datastruktur NP Det Nom Nom Nom PP NP Det Nom PP P NP Det Nom, N P NP, PN 0 book 1 the 2 flight 3 through 4 Houston 5 NP Det Nom Nom Nom PP PP P NP NP Det Nom Nom Nom PP PP P NP Partielt snapshot 3. mars 2017 35

Fundamentalregelen NP Det Nom Nom Nom PP 0 book 1 the 2 flight 3 through 4 Houston 5 NP Det Nom Fra (A B, [i,k] ) + (B, [k, j] ) Lag (A B, [i,j] ) 3. mars 2017 36

Active chart-parsing Kombinere 3 typer operasjoner: 1. Lese ordene i setningen inn i chartet 2. Bruke fundamentalregelen når nye kanter legges til chartet 3. Innføre aktive kanter i chartet Ulike strategier for Hvordan aktive kanter innføres Rekkefølgen oppgavene utføres Og dermed: Hvilke aktive kanter som er nødvendige March 3, 2017 37

Agenda Agenda Chart Når vi legger en kan til chartet kan det skape flere nye kanter som skal legges til chartet: Hver av de kan skape flere nye kanter: Osv. For å holde orden på dette bruker vi en ekstra datastruktur: Agenda Alle nye kanter legges i Agenda Vi flytter en og en kant fra Agenda til Chart Dette gir nye kanter. De legges i Agenda March 3, 2017 38

I dag CKY-algoritmen fortsatt fra sist Python-implementasjon av CKY Chomsky Normal Form (CNF) Chart-parsing BU-algoritme for chart-parsing 3. mars 2017 39

Active chart-algoritmen,bottom-up Gitt en sekvens av ord w 1 w 2 w n 1. For hver w i og regel på formen A w i for en eller annen A: Legg kanten (A w i, [i-1, i]) til Agenda 2. Fjern en kant e fra Agenda Hvis e ikke er i Chart: Legg e til Chart, og 2. Lag nye kanter med fundamentalregelen og legg til Agenda 3. Hvis e er inaktiv: Lag nye aktive kanter og legg til agenda Gjenta til Agenda er tom 40

2. Nye kanter med fundamentalregelen Når vi legger kanten e til chartet Hvis e er inaktiv, dvs. på formen (A, [i, k]) Finn alle kanter i chartet på formen (B A, [m, i]) for en eller annen m, B, og : Legg (B A, [m, k]) til Agenda Hvis e er aktiv, dvs. på formen (B A, [m, i]) Finn alle kanter i chartet på formen (A, [i, k]) for en eller annen k, og : Legg (B A,[m, k]) til Agenda 41

3. Nye aktive kanter Når vi legger kanten e til chartet Hvis e er inaktiv, dvs. på formen (B, [m,n]) Finn alle A, s.a. A B er en regel og Legg kanten (A B, [m, m]) til agendaen. (Straegi BU0) Det var alt 42

Eksempel Parse: gi jenta fisk S VP VP IV VP TV NP VP DTV NP NP NP N IV fisk sov TV fisk kjøp DTV gi N jenta fisk 3. mars 2017 43

Fotnote: Nye aktive kanter Vi la til aktive kanter ved (strategi BU0, NLTK): Hvis e er inaktiv, dvs. på formen (B, [m,n]) Finn alle A, s.a. A B er en regel og Legg kanten (A B, [m, m]) til agendaen. Alternativt kan en i stedet ved (strategi BU1, J&M): Hvis e er inaktiv, dvs. på formen (B, [m,n]) Finn alle A, s.a. A B er en regel og Legg kanten (A B, [m, n]) til agendaen. Begge deler virker og er fullstendige 44

BU chart-parser: egenskaper Behersker: Unære regler Mer enn to symboler på høyresiden i en regel Takler ikke: Tomme høyresider (det vil kreve endringer i algoritmen) Blandinger av ord (terminaler) og kategorisymboler (ikke-terminaler) på høyresiden i samme regel 3. mars 2017 45