Parsing: Top-down en bottom-up - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Parsing: Top-down en bottom-up

Description:

Parsing: Top-down en bottom-up Natuurlijke taalverwerking week 6 Bomen Bomen DCG met bomen s(b(s,[NP,VP])) -- np(NP), vp(VP). vp(b(vp,[V])) -- v(V). np(w(np,jan ... – PowerPoint PPT presentation

Number of Views:184
Avg rating:3.0/5.0
Slides: 20
Provided by: GBo77
Category:
Tags: bottom | down | parsing | reduce | shift | top

less

Transcript and Presenter's Notes

Title: Parsing: Top-down en bottom-up


1
ParsingTop-down en bottom-up
  • Natuurlijke taalverwerking
  • week 6

2
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
3
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))
4
DCG met bomen
  • s(b(s,NP,VP)) --gt np(NP), vp(VP).
  • vp(b(vp,V)) --gt v(V).
  • np(w(np,jan)) --gt jan.
  • ?- s(Boom,jan,slaapt,).
  • Boom b(s,w(np,jan),b(vp,w(v,slaapt)))

5
DCGs en links-recursie
  • Prolog gebruikt een top-down zoek-strategie.
  • Deze is niet geschikt voor links-recursie.
  • an eet en jan slaapt
  • s --gt s, en, s.
  • kaartje met korting
  • n --gt n, pp.

6
Links-recursie meer voorbeelden
  • Peters (broers) huis.
  • np --gt det, n.
  • det --gt np, s.
  • een (erg) aardig kind
  • n -gt a, n.
  • a -gt int, a.
  • int --gt erg heel .

7
Oplossing 1 aanpassen grammatica
  • n --gt n, pp
  • is equivalent aan
  • n --gt n_wrd, pp_ster.
  • n_wrd --gt kaartje.
  • pp_ster --gt pp, pp_ster.
  • pp_ster --gt .
  • pp --gt p, np.

8
Nadelen Oplossing 1
  • wel dezelfde strings, niet dezelfde bomen

n
n
pp
n
pp
n
pp
pp
n
n
pp
n
pp
9
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.

10
Top-down parser in Prolog
  • top_down(Cat,P0,P1) -
  • regel(Cat,Dochters),
  • vind_ds(Dochters,P0,P1).
  • top_down(Cat,WoordWn,Wn) -
  • woord(Cat,Woord).
  • vind_ds(D1Ds,P0,P2) -
  • top_down(D1,P0,P1),
  • vind_ds(Ds,P1,P2).
  • vind_ds(,P0,P0).

11
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!

12
bottom-up parsing
  • de hond snurkt
  • DET hond snurkt
  • DET N snurkt
  • NP snurkt
  • NP V
  • NP VP
  • S

13
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 C1Cn op de stapel door C0
    als er een regel C0 --gt C1Cn
    bestaat.

14
Shift-reduce algoritme
15
Shift-reduce in Prolog
  • sr(Invoer,Stapel) -
  • reduce(Stapel,NwStapel),
  • sr(Invoer,NwStapel).
  • sr(Invoer,Stapel) -
  • shift(Invoer,RestInvoer),
  • sr(RestInvoer,CatStapel).
  • sr(,s).

16
Shift in Prolog
  • shift(WoordInvoer,Invoer,Cat) -
  • woord(Woord,Cat).

17
Reduce in Prolog I
  • reduce(Stapel,MNwStapel) -
  • reduce_regel(M,Dochters),
  • append(Dochters,NwStapel,Stapel).
  • reduce_regel(s,vp,np).
  • N.B. volgorde van de dochters is omgekeerd!

18
Reduce in Prolog II
  • reduce(vp,npStapel,sStapel).
  • reduce(n,detStapel,npStapel).
  • voordeel geen append.
  • nodig automatisch omzetten van regels
  • in reduce-predicaten.

19
Bottom-up
  • voordeel links-recursie is geen probleem, omdat
    je vanuit de woorden begint. Het aantal woorden
    is altijd eindig
  • nadeel epsilon-regels (det --gt e)
  • shift(Invoer,Invoer,det).
  • Je kunt eindeloos categorieën aan de stapel
    toevoegen, zonder dat de invoer korter wordt...
Write a Comment
User Comments (0)
About PowerShow.com