Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Parsing mit DCGs Prolog Grundkurs WS 98/99 Christof Rumpf

Ähnliche Präsentationen


Präsentation zum Thema: "Parsing mit DCGs Prolog Grundkurs WS 98/99 Christof Rumpf"—  Präsentation transkript:

1 Parsing mit DCGs Prolog Grundkurs WS 98/99 Christof Rumpf

2 GK Prolog - Parsing mit DCGs2 Sprachen und Grammatiken Eine Sprache kann als eine Menge endlicher Ketten von Wörtern, Morphemen, Phonemen ect. angesehen werden. Nicht jede mögliche Kette dieser Einheiten gehört zu der Sprache. Wir unterscheiden zwischen grammatischen und ungrammatischen Ketten. Eine Grammatik ist eine Menge von Regeln, die die Teilmenge der grammatischen Ketten einer Sprache beschreiben.

3 GK Prolog - Parsing mit DCGs3 Sprachen A sei eine endliche Menge, genannt Alphabet oder Vokabular. Eine Kette über A ist eine endliche Sequenz von Elementen aus A. A* ist die Menge aller Ketten über A. Eine Sprache ist eine Menge L A*. ist die leere Kette. A = {a,b,c} = abca A* = {, a,b,c, aa,ab,ac,ba, bb,bc,...}

4 GK Prolog - Parsing mit DCGs4 Grammatiken Eine Grammatik ist ein Tupel. –V T ist eine Menge von Terminalsymbolen. –V N ist eine Menge von Nichtterminalsymbolen. –S V N wird Startsymbol genannt. –R * V N * × * ist eine endliche Menge von Ersetzungsregeln, mit = V T V N.

5 GK Prolog - Parsing mit DCGs5 Ersetzungsregeln Eine Grammatik ist ein deduktives System von Axiomen und Inferenzregeln, das die Ketten einer Sprache als Theoreme generiert. Seien,, *, dann kann durch Anwendung der Regel jedes Vorkommen der Teilkette in durch ersetzt werden. Mit der Regel AB CDA können wir z.B. aus der Kette EBABCC die Kette EBCDACC ableiten.

6 GK Prolog - Parsing mit DCGs6 Chomsky-Hierarchie Die Chomsky-Hierarchie klassifiziert vier Typen von Grammatiken gemäß der Form ihrer Regeln. –0: * V N * × * rekursiv aufzählbar –1: * V N * × * *, *- kontextsensitiv –2: V N × * kontextfrei –3: V N × V T V N V N × V T regulär ist die leere Kette.

7 GK Prolog - Parsing mit DCGs7 Sprachklassen Jedem Typ der Chomsky-Hierarchie entspricht entspricht eine Sprachklasse. –rekursiv aufzählbare Sprachen –kontextsensitive Sprachena n b n c n –kontextfreie Sprachena n b n –reguläre Sprachena*b*

8 GK Prolog - Parsing mit DCGs8 Automaten Den Grammatiktypen der Chomsky-Hierarchie entsprechen jeweils Typen von Automaten, die die Grammatiken interpretieren können: –0: Turing Maschine –1: Indexierte/linear gebundene Automaten –2: Kellerautomaten (Stack) –3: Endliche Automaten

9 GK Prolog - Parsing mit DCGs9 Parser Ein Parser ist ein Automat, der auf Basis einer Grammatik für eine Kette einen Ableitungsbaum (parse tree) erzeugt. S NP VP Det N V NP Jeder Mann liebt Det N eine Frau Grammatik & Jeder Mann liebt eine Frau

10 GK Prolog - Parsing mit DCGs10 Kontextfreie PSGs Kontextfreie Phrasenstrukturgrammatiken entsprechen den Typ-2-Grammatiken der Chomsky-Hierachie, d.h. die Regeln sind durch das Muster V N × * beschränkt: –Auf der linken Seite steht genau ein Nichtterminalsymbol. –Auf der rechten Seite steht eine beliebige Verkettung von Terminal- und Nichtterminalsymbolen.

11 GK Prolog - Parsing mit DCGs11 DCGs Definite Clause Grammars in Prolog entsprechen in ihrer Form den kontextfreien Phrasenstrukturregeln. KF-PSG DCG S NP VP s --> np, vp. VP V NP vp --> v, np. V klaut v --> [klaut]. NP paul np --> [paul]. NP bananen np --> [bananen].

12 GK Prolog - Parsing mit DCGs12 Externe vs. interne Notation DCGs werden beim Laden (consult) eines Prolog- Programms mit Differenzlisten annotiert. Editor (extern) Datenbasis (intern) s --> np, vp. s(A,C):- np(A,B), vp(B,C). vp --> v, np. vp(A,C):- v(A,B), np(B,C). v --> [klaut]. v([klaut|T],T). np --> [paul]. np([paul|T],T). np --> [bananen]. np([bananen|T],T).

13 GK Prolog - Parsing mit DCGs13

14 GK Prolog - Parsing mit DCGs14 Konkatenation von Diff-Listen append_dl((A,B),(B,C),(A,C)). ?- D1 = ([1,2,3|T1],T1), D2 = ([4,5,6|T2],T2), append_dl(D1,D2,D3). D1 = ([1,2,3,4,5,6|T2],[4,5,6|T2])(A,B) D2 = ([4,5,6|T2],T2])(B,C) D3 = ([1,2,3,4,5,6|T2],T2)(A,C) T1 = [4,5,6|T2] B T2 = _1 C

15 GK Prolog - Parsing mit DCGs15

16 GK Prolog - Parsing mit DCGs16 Übersetzen von DCGs p 1 --> p 2,...,p n. p 1 (V 1,V n ):- p 2 (V 1,V 2 ),...,p n (V n-1,V n ). p --> [AtomSeq]. p([AtomSeq|V],V).

17 GK Prolog - Parsing mit DCGs17 translate/2 translate((LHS --> RHS))


Herunterladen ppt "Parsing mit DCGs Prolog Grundkurs WS 98/99 Christof Rumpf"

Ähnliche Präsentationen


Google-Anzeigen