Parsing: Top-down en bottom-up

Slides:



Advertisements
Verwante presentaties
Week 9: Probabilistische Grammatica's Jurafsky & Martin (ed. 1), Hoofdstuk 12: Lexicalized and Probabilistic Parsing) Taaltheorie en Taalverwerking Remko.
Advertisements

Zinsdelen.
Les 4 cursus WordPress. Wat gaan we doen (1) 1. Importeren via Word problemen 2. Alle pagina’s en berichten verwijderen, incl prullenbak leegmaken 3.
Natuurlijke-Taalinterfaces
Uitleg installatie SAM Broadcaster v3 en v4 met de MySQL database
Zomaar !.
Taaltheorie en Taalverwerking Week 4: Parseer-algoritmes.
Waar dienen al die toetsen eigenlijk voor?
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 1.
TAALPROBLEMEN ODD ONE OUT.
Hoog Leer noten lezen! Deel 1 Laag A - B - C - D - E - F - G
De beste manier om woorden aan te pakken…
Compositionaliteit, bereik en lambda’s
Jan Talmon Medische Informatica Universiteit Maastricht
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
Definite Clause Grammar
Natuurlijke Taalverwerking 3e trimester 98/99 docent: Gosse Bouma.
1. Parsing (epsilon’s, tabellen) 2. Unificatie grammatica Natuurlijke taalverwerking week 7.
Natuurlijke Taalverwerking
Categoriale Grammatica
Natuurlijke-Taalinterfaces week 5 Lambda-termen en Lambda-conversie.
Hoofdzinnen, bijzinnen, en vraagzinnen in Unificatie Grammatica
Natuurlijke taalverwerking week 4
Natuurlijke Taalverwerking
Inleidend probleem Data structuur (hiërarchie van classes)
AI91  Het Probleem  Grammatica’s  Transitie netwerken Leeswijzer: Hoofdstuk AI Kaleidoscoop College 9: Natuurlijke taal.
Ontleden nNon-deterministisch m.b.v. Parser-combinators nDeterministisch m.b.v. Stack-machine type Parser a b = [a]  [ (b, [a]) ] type Parser a b = [a]
Van doelen naar reflectie
Orientatie Alfa-informatica Computer-taalkunde Gosse Bouma
Unificatie grammatica
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 3.
ANother Tool for Language Recognition
Sorteeralgoritmen. Sorteren: aanpak 1 Hoe ga je een rij getallen sorteren met PC? Sorteren door selectie (= selection sort): Zoek de kleinste waarde Sorteer.
Taaltheorie en Taalverwerking Week 5: – Natuurlijke Taal Syntax. (Uitbreiding op CFG: Features.) – Human Parsing: Center-Embedding.
Semantische Interpretatie Jurafsky & Martin (Ed. 1): Hoofdstuk 15
Grammatica Nederlands
Taaltheorie en Taalverwerking Parsing Continued. Totnutoe: Top-Down-Parser.
Presentatie resultaten monitor INFORMATIEVAARDIGHEDEN landelijk versus lokaal maart 2014.
Vrouwen van Nederland Neem een hond!!!.
Tentamen vraag 1 Als L en M talen zijn, dan nL  M is gelijk aan { s  t | s  L, t  M } nL M is gelijk aan { s t | s  L, t  M } nL n is gelijk aan.
Parsing 1. Situering Contextvrije grammatica’s Predictive (of recursive-descent) parsing LR-parsing Parser generator: Yacc Error recovery 2.
Zomaar Prezentacio
Meervoudig samengestelde zinnen
Instructie Programmeren Task 7
Syntaxis 1. Inleiding: Combinaties Combinaties op verschillende niveaus: Lettergrepen als combinaties van fonemen. (College 3,4) Woorden als combinaties.
Hoofdstuk 1 Grammatica zinsdelen
Hoofdstuk 1 Grammatica zinsdelen
Zoeken naar Constructies Jan Odijk DRONGO Taalfestival Utrecht,
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Hoe maak ik een PowerPoint presentatie?
Woordjes leren.
Grammatica zinsdelen H1 t/m H6
GUI & classes Een Gui in een class steken en het object gebruiken.
Vraag 1: Functies Bestudeer dit stukje code: >> print (4.0/3.0)* *1**3 >> print (4.0/3.0)* *2**3 >> print (4.0/3.0)* *3**3 >> print.
Je spreekbeurt Leuk dat je jouw spreekbeurt over handicaps gaat houden! Veel mensen weten namelijk niet zo goed wat het is om met zo’n beperking te.
Sway.
Meest voorkomende vragen bij examenteksten.
Workshop TPR Storytelling
Meest voorkomende vragen bij examenteksten.
Hoofdstuk 1 Grammatica zinsdelen
Bewerkingen 5de leerjaar.
Grammatica zinsdelen Redekundig ontleden.
Zeeslag Bron: csunplugged.org / csunplugged.nl.
Natuurlijke-Taalinterfaces
Modderdorp UNPLUGGED Bron: csunplugged.org.
Implementatie Zoekboom
Hoe ontleed je een zin in zeven stappen?
Grammatica zinsdelen 2havo, periode 2a.
Quiz over [uw onderwerp]
Grammatica: werkwoorden
Transcript van de presentatie:

Parsing: Top-down en bottom-up Natuurlijke taalverwerking week 6

Natuurlijke Taalverwerking Bomen een lokale boom bestaat uit een moeder en een willekeurig aantal dochters Dochters kunnen zelf weer bomen zijn of een woord. m d1 ……... dn slaapt d11 d12 Natuurlijke Taalverwerking

Bomen boom(m,[D1,…,Dn]) woord(dn,slaapt) m d1 ……... dn slaapt d11 d12 b(m,[b(d1,[b(d11,_),b(d12,_)]),…,w(dn,slaapt)]) Natuurlijke Taalverwerking

Natuurlijke Taalverwerking DCG met bomen s(b(s,[NP,VP])) --> np(NP), vp(VP). vp(b(vp,[V])) --> v(V). np(w(np,jan)) --> [jan]. ?- s(Boom,[jan,slaapt],[]). Boom = b(s,[w(np,jan),b(vp,[w(v,slaapt)])]) Natuurlijke Taalverwerking

DCG’s en links-recursie Prolog gebruikt een top-down zoek-strategie. Deze is niet geschikt voor links-recursie. an eet en jan slaapt s --> s, [en], s. kaartje met korting n --> n, pp. Natuurlijke Taalverwerking

Links-recursie: meer voorbeelden Peter’s (broer’s) huis. np --> det, n. det --> np, [s]. een (erg) aardig kind n -> a, n. a -> int, a. int --> [erg] ; [heel] ; []. Natuurlijke Taalverwerking

Oplossing 1: aanpassen grammatica n --> n, pp is equivalent aan n --> n_wrd, pp_ster. n_wrd --> [kaartje]. pp_ster --> pp, pp_ster. pp_ster --> []. pp --> p, np. Natuurlijke Taalverwerking

Natuurlijke Taalverwerking Nadelen Oplossing 1 wel dezelfde strings, niet dezelfde bomen n n pp* n pp n pp pp* n n pp n pp Natuurlijke Taalverwerking

Parsing scheid regels (data) en parser (algoritme) Grammatica-regels: regel(s,[np,vp]). regel(np,[det,n]). woord(det,de). Dit zijn eenvoudige Prolog-feiten. Natuurlijke Taalverwerking

Top-down parser in Prolog top_down(Cat,P0,P1) :- regel(Cat,Dochters), vind_ds(Dochters,P0,P1). top_down(Cat,[Woord|Wn],Wn) :- woord(Cat,Woord). vind_ds([D1|Ds],P0,P2) :- top_down(D1,P0,P1), vind_ds(Ds,P1,P2). vind_ds([],P0,P0). Natuurlijke Taalverwerking

Natuurlijke Taalverwerking Shift-reduce parsing Bottom-up parsing! Begin bij de woorden in de input, en probeer deze samen te voegen tot zinsdelen. Probeer zinsdelen samen te voegen tot een zin. Bottom-up parsers hebben geen last van links-recursie! Natuurlijke Taalverwerking

Natuurlijke Taalverwerking bottom-up parsing de hond snurkt DET hond snurkt DET N snurkt NP snurkt NP V NP VP S Natuurlijke Taalverwerking

shift-reduce algoritme Stapel/Stack: hierop staan tussenresultaten. Shift-actie : Verwijder het meest linkse woord uit de invoer, en plaats de categorie van het woord op de stapel Reduce-actie: Vervang C1…Cn op de stapel door C0 als er een regel C0 --> C1…Cn bestaat. Natuurlijke Taalverwerking

Shift-reduce algoritme Natuurlijke Taalverwerking

Shift-reduce in Prolog sr(Invoer,Stapel) :- reduce(Stapel,NwStapel), sr(Invoer,NwStapel). shift(Invoer,RestInvoer), sr(RestInvoer,[Cat|Stapel]). sr([],[s]). Natuurlijke Taalverwerking

Natuurlijke Taalverwerking Shift in Prolog shift([Woord|Invoer],Invoer,Cat) :- woord(Woord,Cat). Natuurlijke Taalverwerking

Natuurlijke Taalverwerking Reduce in Prolog I reduce(Stapel,[M|NwStapel]) :- reduce_regel(M,Dochters), append(Dochters,NwStapel,Stapel). reduce_regel(s,[vp,np]). N.B. volgorde van de dochters is omgekeerd! Natuurlijke Taalverwerking

Natuurlijke Taalverwerking Reduce in Prolog II reduce([vp,np|Stapel],[s|Stapel]). reduce([n,det|Stapel],[np||Stapel). voordeel: geen append. nodig: automatisch omzetten van regels in reduce-predicaten. Natuurlijke Taalverwerking

Natuurlijke Taalverwerking Bottom-up voordeel: links-recursie is geen probleem, omdat je vanuit de woorden begint. Het aantal woorden is altijd eindig… nadeel: epsilon-regels (det --> e) shift(Invoer,Invoer,det). Je kunt eindeloos categorieën aan de stapel toevoegen, zonder dat de invoer korter wordt…... Natuurlijke Taalverwerking