Computerlinguistik II: Phrasenstrukturgrammatiken
Die Grammatik - als Phrasenstrukturgrammatik
Startsymbol: S
Nichtterminale Symbole: S, NPN, NPA, VP,NN,NA,ARTN,ARTA,VI,VT
Terminale Symbole: weint, lacht, entdeckt, der, den, astronom, planeten
Regeln
S -> NPN VP
NPN -> ARTN NN
NPA -> ARTA NA
VP -> VI
VP -> VT NPA
Lexikonregeln
VI -> weint
VI -> lacht
VT -> entdeckt
ARTN -> der
ARTA -> den
NN -> astronom
NA -> planeten
Eine erste Grammatik - In Prolog
%Regeln
s(SL) :- npn(NPL), vp(VPL), append(NPL,VPL,SL).
npn(NPL) :- artn(ARTNL), nn(NNL), append(ARTNL,NNL,NPL).
npa(NPL) :- arta(ARTAL), na(NAL), append(ARTAL,NAL,NPL).
vp(VPL) :- vi(VPL).
vp(VPL) :- vt(VIL), npa(NPAL), append(VIL,NPAL,VPL).
%lexikonregeln
vi([weint]).
vi([lacht]).
vt([entdeckt]).
artn([der]).
arta([den]).
nn([astronom]).
na([planeten]).
Möglichkeiten zur Effizienzsteigerung
- append am Anfang der Regel
- Differenzlisten
Differenzlistengrammatik
%Regeln
s(SL,R) :- npn(SL,R1), vp(R1,R).
npn(NPL,R) :- artn(NPL,R1), nn(R1,R).
npa(NPL,R) :- arta(NPL,R1), na(R1,R).
vp(VPL,R) :- vi(VPL.R).
vp(VPL,R) :- vt(VPL,R1), npa(R1,R).
%lexikonregeln
vi([weint|R],R).
vi([lacht|R],R).
vt([entdeckt|R],R).
artn([der|R],R).
arta([den|R],R).
nn([astronom|R],R).
na([planeten|R],R).
Differenzlistengrammatik - als DCG
%Regeln
s --> npn, vp.
npn --> artn, nn.
npa --> arta, na.
vp --> vi.
vp --> vt, npa(.
%lexikonregeln
vi --> [weint].
vi --> [lacht].
vt --> [entdeckt].
artn --> [der].
arta --> [den].
nn --> [astronom].
na --> [planeten].
Kurs-Startseite