INF2820 Datalingvistikk V Gang Jan Tore Lønning

Like dokumenter
INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang 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 V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang 26.2 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 27.2 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 2.3 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

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

INF2820 Datalingvistikk V Gang 13.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 23.3 Jan Tore Lønning

INF2820 Datalingvistikk V gang, 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 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

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

INF 2820 V2015: Obligatorisk innleveringsoppgave 3

INF2820 Datalingvistikk V Gang 13.4 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 4.5 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 6.3 Jan Tore Lønning

INF2820 Datalingvistikk V gang, Jan Tore Lønning

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

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V gang, 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 V2012. Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

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

INF2820 V2017 Oppgavesett 5 Gruppe 21.2

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

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

INF2820 V2017 Oppgavesett 5 arbeidsoppgaver

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

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

INF 2820 V2016: Innleveringsoppgave 3 hele

INF2820 Datalingvistikk V Gang 6.4 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 6.4 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 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

INF2820 Datalingvistikk V Gang 13.3 Jan Tore Lønning

INF2820 Datalingvistikk V gang, 27.2 Jan Tore Lønning

INF2820 Datalingvistikk V2014. Forelesning 4, 6.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

UNIVERSITETET I OSLO

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

INF2820 Datalingvistikk V Gang 16.3 Jan Tore Lønning

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

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

INF 2820 V2016: Innleveringsoppgave 3 del 1

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

INF2820-V2018 Oppgavesett 10 Gruppe 18.4

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

INF3110 Programmeringsspråk

INF2820 Datalingvistikk V Gang 30.3 Jan Tore Lønning

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

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

INF2820 Datalingvistikk V2012. Jan Tore Lønning

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

INF2820 Datalingvistikk V Gang 13.4 Jan Tore Lønning

INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning

INF2820 Datalingvistikk V gang, Jan Tore Lønning

Eksamen INF2820 Datalingvistikk, H2018, Løsningsforslag

INF2820 V2017 Oppgavesett 6 Gruppe 7.3

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

Oppgave 1 (samlet 40%)

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).

INF INF1820. Arne Skjærholt. Negende les INF1820. Arne Skjærholt. Negende les

INF2820 Datalingvistikk V2015. Jan Tore Lønning

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

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V gang, Jan Tore Lønning

UNIVERSITETET I OSLO

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

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

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

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 parsing) INF5110. Stein Krogdahl Ifi, UiO

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

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 V2014. Jan Tore Lønning

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

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF5110 V2012 Kapittel 4: Parsering ovenfra-ned

Syntax/semantics INF 3110/ /8/2004 1

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

INF2820 Datalingvistikk V2016. Forelesning 4, 10.2 Jan Tore Lønning

Obligatorisk oppgave 4, INF2820, 2014

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

Transkript:

INF2820 Datalingvistikk V2018 6. Gang - 19.2 Jan Tore Lønning

I dag Kontekstfrie grammatikker og naturlige språk Grammatikker og trær i NLTK Kontekstfrie grammatikker, avledninger og trær Hva er parsing? Høyre- og venstreavledninger Recursive-Descent parser (top-down) Shift-Reduce parser (bottom-up) 15. februar 2018 2

Eksempel: grammar1 15. februar 2018 3

Context-Free Grammars Det mest sentrale verktøyet i datalingvistikk 2/15/2018 Speech and Language Processing - Jurafsky and Martin 4

CFGs for naturlige språk CFG er en generell og fleksibel formalisme Hvordan kan vi best lage CFG for å modellere naturlige språk? 1. Vanlig skille: Syntaktiske regler: Bare ikke-terminaler på høyre side (HS) Leksikalske regler: Høyresiden består av bare en terminal 2. Mange lingvistiske modeller antar at hver frase (hver HS) har et «head» (leder?) 3. En del av disse antar igjen X-bar-modellen 5

Hoder ( heads ) I en CFG-regel har alle elementer på høyresiden samme status I en NL regel har som oftest et ledd hovedrollen NP Det N PP P NP VP V NP VP VP PP a house to the house built the house built the house in a week I et PS-tre og en CFG-regel kan en frase være hodet i en annen frase I noen modeller snakker en bare om ord som hodet 6

Egenskaper ved hoder Semantisk kriterium: Hode og frase synes å være samme type ting Syntactic criteria for a relation between a head H and a dependent D in a construction C [Zwicky, Hudson]: 1. H determines the syntactic category of C; H can replace C. 2. H determines the semantic category of C; D specifies H. 3. H is obligatory; D may be optional. 4. H selects D and determines whether D is obligatory. 5. The form of D depends on H (agreement or government). 6. The linear position of D is specified with reference to H. Ikke alltid enkelt å avgjøre hva som er hodet Ulike grammatiske teorier skiller seg i detaljene (eks. Er the car en DP (the er hodet) eller NP (car er hodet)?) 7

X-bar En antagelse i flere grammatiske modeller/teorier En frase har tre nivåer: Full frase, eks. NP (= N ) Ord, eks N Midtnivå, eks. N (Called Nominal in J&M) Gjelder i prinsippet for all fraser: NP, VP, AP, PP Men ikke alle delene like hyppige for alle typer NP Det N N AP N N N PP VP V V V PP V V NP For generell form og mer informasjon, se Wikipedia 8

Eksempel: NP Det N NP=N N PP comp N PP Adju. A professor of physics from Germany Komplement: of physics Adjunct: from Germany Ikke: a professor from Germany of physics 15. februar 2018 9

Eksempel: VP VP V V V NP PP comp PP Adju. la beina på bordet på kontoret. 15. februar 2018 10

Komplementer (vs. modifikatorer) Komplement (argument): Kim gave the book to Mary Obligatorisk Eks, ugrammatisk: *Kim gave the book Kan ikke skifte med en annen preposisjon: *Kim gave the book from Mary Plasseres i X-bar-teori som Søster til X Datter til X Eks.: P P NP, eks. til skolen V V NP, eks. så Kari V V NP PP, eks. gave the book to Mary 11

Modifikatorer (vs. Komplementer) Modifikator: Kim sang in the garden Kan fjernes uten at det blir ugrammatisk Kan gjentas: sang in the garden with great joy Kan bruke annen preposisjon: sang with great joy Plasseres i X-bar-teori som Søster til X Datter til X Eks.: N N PP, eks. mannen med pistolen N AP N, eks. rød bil V V PP, eks. traff Kari på stasjonen Kan noen ganger være vanskelig å avgjøre om det er komplement eller modifikator 12

N =NP N =NOM DET A =AP N =NOM N =NOM P =PP A =AP N =NOM N P =PP 13

Ikke alle antar X-bar, f.eks ikke Penn treebank 15. februar 2018 14

I dag Kontekstfrie grammatikker og naturlige språk Grammatikker og trær i NLTK Kontekstfrie grammatikker, avledninger og trær Hva er parsing? Høyre- og venstreavledninger Recursive-Descent parser (top-down) Shift-Reduce parser (bottom-up) 15. februar 2018 15

Representasjon av grammatikk i NLTK Interaktiv innlesning >>> gram = nltk.cfg.fromstring(""" S -> NP VP VP -> V NP V NP PP PP -> P NP V -> 'saw' 'ate' 'walked' NP -> PN Det N Det N PP 'I' PN -> 'John' 'Mary' N -> 'dog' 'man' 'telescope' 'park' P -> 'in' 'by' 'on' 'with' Det -> 'a' 'an' 'the' 'my' """) >>> Les fra fil: <name>.cfg S -> NP VP VP -> V NP V NP PP PP -> P NP V -> 'saw' 'ate' 'walked' NP -> PN Det N Det N PP 'I' PN -> 'John' 'Mary' N -> 'dog' 'man' 'telescope' 'park' P -> 'in' 'by' 'on' 'with' Det -> 'a' 'an' 'the' 'my' Entering >>> gram = nltk.data.load( file:<name>.cfg ) February 15, 2018 16

Tilgang til grammatikken >>> gram <Grammar with 25 productions> >>> gram.start() S >>> for i in gram.productions(): print i S -> NP VP VP -> V NP VP -> V NP PP PP -> P NP V -> 'saw' V -> 'ate' V -> 'walked' NP -> PN Etc. >>> rule0 = gram.productions()[0] >>> rule0.lhs() S >>> rule0.rhs() (NP, VP) >>> rule5 = gram.productions()[5] >>> rule5 V -> 'ate' >>> rule5.lhs() V >>> rule5.rhs() ('ate',) >>> February 15, 2018 17

Representasjon av trær i Python En mulig implementasjon ville være å bruke et par (tuppel) Et tre kan forstås som Et par av En streng Morens kategori En liste av trær døtrene Eller en streng et blad, en terminal (S, [(NP, [(Det, ['the']), (N, ['dog'])]), (VP, [(V, ['saw']), (NP, [(Det, ['a']), (N, ['man'])]), (PP, [(P, ['in']), (NP, [(Det, ['the']), (N, ['park'])] )])])]) February 15, 2018 18

NLTKs tre-klasse Klassen Tree utvider klassen List List-en brukes til døtrene: tre[0] er første datter, osv Utvidet med: Metoden tre.label() gir mors kategori Metoder for uttegning, prøv t.print() t.pretty_print() t.draw() S VP NP NP ND TV ND barnet elsket kosedyret 15. februar 2018 19

I dag Kontekstfrie grammatikker og naturlige språk Grammatikker og trær i NLTK Kontekstfrie grammatikker, avledninger og trær Hva er parsing? Høyre- og venstreavledninger Recursive-Descent parser (top-down) Shift-Reduce parser (bottom-up) 15. februar 2018 20

Eksempel: Avledning 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 Flere avledninger av samme streng, for eksempel: S NP VP NP V NP PP NP V NP P NP NP V NP P Det N NP V NP P Det park 15. februar 2018 21

Avledning, leses: kan direkte avledes fra dersom: har formen C for en ikke-terminal C det er en regel på formen C og = 1 * m, leses: m kan avledes fra 1 dersom: det fins en sekvens 1, 2,, m der m>1, og i i+1 En kontekstfri grammatikk G generer språket L(G) = { w A* S * w} Alle sekvenser av terminaler som kan avledes fra startsymbolet 15. februar 2018 22

Hva betyr kontekstfri? Generell frasestrukturgrammatikk: venstresiden kan være en vilkårlig symbolstreng: Kontekstfri grammatikk = kontekstfri frasestrukturgrammatikk: Venstresiden består av én ikke-terminal A 2/15/2018 Speech and Language Processing - Jurafsky and Martin 23

Konvensjoner Forenkling, kan skrive A for A A A 15. februar 2018 24

Flertydighet Samme streng kan avledes på flere måter Er vi interessert i dette? Noen ganger Andre ganger ikke Interessant hvis de representerer ulike måter setningen er bygget opp på (=) ulike strukturer (trær) ulike betydninger ved flertydighet 15. februar 2018 25

Eksempel: grammar1 15. februar 2018 26

Trær Et lokalt tre: En node som ikke er et blad Alle døtrene Rekkefølgen mellom døtrene Kantene mellom mor og datter En regel B s1, s2,, sn tillater ( license ) et lokalt tre hvis og bare hvis det har formen: 15. februar 2018 27 B s1 s2.. sn

Trær En CFG G, generer et tre t hviss Toppen av t er merket med S Bladene er merket med terminaler Hvert lokalt tre er tillatt av en produksjonsregel T(G) for mengde av trær generert av G Utkomme ( yield ) av treet t er symbolene på bladene i riktig rekkefølge Forkortelse: hviss for hvis og bare hvis En streng w er avledbar fra G hviss w er utkomme til et tre i T(G). 15. februar 2018 28

Ekvivalens Definisjon To grammatikker, G1 og G2, er (svakt) ekvivalente hvis og bare hvis L(G1)=L(G2) G1 og G2 er sterkt ekvivalente hvis T(G1)=T(G2) 15. februar 2018 29

I dag Kontekstfrie grammatikker og naturlige språk Grammatikker og trær i NLTK Kontekstfrie grammatikker, avledninger og trær Hva er parsing? Høyre- og venstreavledninger Recursive-Descent parser (top-down) Shift-Reduce parser (bottom-up) 15. februar 2018 30

Parsing Gitt en grammatikk G og streng s Spm1: Er s L(G) Spørsmål om anerkjennelse ( recognition ) Spm2: Hvorfor er s L(G)? Hva er frasestrukturen til s i G? Finn alle trær i T(G) som har s som utkomme ( yield ) Parsing 15. februar 2018 31

Ulike typer parsere Back-tracking -parsere Recursive Descent Parser Strategi: Ovenifra og ned ( Top-down ) Shift-Reduce Parser Strategi: Nedenifra og opp ( Bottom-Up ) Tabellparsere CKY Chartparsere Earleys algoritme 32

I dag Kontekstfrie grammatikker og naturlige språk Grammatikker og trær i NLTK Kontekstfrie grammatikker, avledninger og trær Hva er parsing? Høyre- og venstreavledninger Recursive-Descent parser (top-down) Shift-Reduce parser (bottom-up) 15. februar 2018 33

Eksempel: Avledning 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 Flere avledninger av samme streng, for eksempel: S NP VP NP V NP PP NP V NP P NP NP V NP P Det N NP V NP P Det park 15. februar 2018 34

Høyre- og venstreavledninger Til hvert tre svarer det mange avledninger. For kontekstfrie grammatikker er forskjellene mellom avledninger som svarer til samme tre uinteressante. 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. 15. februar 2018 35

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 15. februar 2018 36

I dag Kontekstfrie grammatikker og naturlige språk Grammatikker og trær i NLTK Kontekstfrie grammatikker, avledninger og trær Hva er parsing? Høyre- og venstreavledninger Recursive-Descent parser (top-down) Shift-Reduce parser (bottom-up) 15. februar 2018 37

Recursive Descent parser Lager en venstreavledning Tilsvarer å bygge et tre: Fra toppen ( top-down ) Fra venstre mot høyre Merk Tilstrekkelig å bare se på venstreavledninger fordi de svarer til trær Streber mot tidligst mulig å sjekke mot input-data Et trinn er ikke-deterministisk: Velg en regel! Dette gir et søkerom å holde orden på 15. februar 2018 38

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 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 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 saw NP PP saw a man in the park NP PP a man in the park Det N PP a man in the park a N PP a man in the park N PP man in the park man PP man in the park PP in the park P NP in the park in NP in the park NP the park Det N the park the N the park N park park park # # 15. februar 2018 39

Algoritme ikke-deterministisk Struktur: Frontier: De symbolene det gjenstår å finne Words: Resten av input som så langt ikke er prosessert Intialisering Words:= Inputordene Frontier:= list( S ) Løkke: Hvis Frontier=Words= : stopp med suksess! Hvis first(words)=first(frontier): Words:=rest(Words), Frontier:=rest(Frontier) Hvis first(frontier) er en ikke-terminal B, velg en regel B, og la Frontier:= + rest(frontier) 15. februar 2018 40

Søkerom Recursive Descent: Deterministisk Dybde-først: Følg det alternativet du har valgt til bunns før du prøver det neste 15. februar 2018 41

Demo nltk.app.rdparser() 15. februar 2018 42

En underklasse av CFG-er I lingvistikk er det vanlig å skille mellom 1. Leksikon: ordene og deres egenskaper 2. Syntaktiske regler: relaterer syntaktiske kategorier Modelleres i CFG ved å bare ha regler av to typer 1. Høyresiden består av en terminal: Det the 2. Høyresiden inneholder bare ikke-terminaler: S NP VP De fleste CFG-grammatikker vi vil se har denne formen I mangel av et bedre navn vil vi si at en slik grammatikk er på Standardform 43

Egenskaper Til enhver CFG G1 fins en CFG G2 på standardform s.a. L(G1) = L(G2) Fremgangsmåte, gitt G1: For enhver terminal t innfør ny ikke-terminal X t og regel X t t For enhver regel A der lengden av er 2: Skift enhver terminal t i med korresponderende ikke- terminal X t Eks: Skift: NP NP and NP Med: X and and NP NP X and NP der X and er ny ikke-terminal Tilsv. for alle regler 44

En noe forbedret algoritme Med mange (f.eks. 20 000) regler på formen N cat, N dog, N man, etc. blir algoritmen svært langsom. Forbedring hvis grammatikk på standardform Ikke omskriv de leksikalske reglene X w For et ord w først i Words, se på alle regler av formen X w, for en eller annen X: (typisk max 10) Er X først i Frontier? I så fall fjern w fra Words og X fra Frontier og fortsett. 15. februar 2018 45

Algoritme grammatikk standardform Struktur: Frontier: De symbolene det gjenstår å finne Words: Resten av input som så langt ikke er prosessert Intialisering Words:= Inputordene Frontier:= list( S ) Løkke: Hvis Frontier=Words= : stopp med suksess! Hvis first(words)=w, first(frontier)=f og det fins en leksikalsk regel F w: Words:=rest(Words), Frontier:=rest(Frontier) Hvis first(frontier) er en ikke-terminal B, velg en (ikkeleksikalsk) regel B, og la Frontier:= + rest(frontier) 15. februar 2018 46

Problemer for RD-parsing 1. Venstrerekursjon: Hvordan takler parseren N AP N N N PP? 2. Dobbeltarbeid: Som en del av en overordnet gal analyse kan den finne riktige deler, men disse blir glemt 3. Prøving og feiling som er litt blind 15. februar 2018 47

I dag Kontekstfrie grammatikker og naturlige språk Grammatikker og trær i NLTK Kontekstfrie grammatikker, avledninger og trær Hva er parsing? Høyre- og venstreavledninger Recursive-Descent parser (top-down) Shift-Reduce parser (bottom-up) 15. februar 2018 48

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 15. februar 2018 49

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 15. februar 2018 50

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 15. februar 2018 51

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

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: X som merke på mora t 1,, t i, t n som døtre Push t på toppen av stacken 53

Demo nltk.app.srparser() 15. februar 2018 54

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. 15. februar 2018 55

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? 56

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 15. februar 2018 57