Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Przetwarzanie języka Wprowadzenie do informatyki Jerzy Nawrocki

Podobne prezentacje


Prezentacja na temat: "Przetwarzanie języka Wprowadzenie do informatyki Jerzy Nawrocki"— Zapis prezentacji:

1 Przetwarzanie języka Wprowadzenie do informatyki Jerzy Nawrocki

2 Komputer Człowiek Gracz A B
Test Turinga (1950) Komputer Człowiek Gracz A B Alan Turing

3 User: They’re always buggin us about something or other.
Program ELIZA (1966) User: Men are all alike. Eliza: In what way User: They’re always buggin us about something or other. Eliza: Can you think of a specific example User: My boyfriend made me come here Eliza: Your boyfriend made you come here Joseph Weizenbaum

4 Przetwarzanie języka naturalnego
Fonetyka Morfologia Składnia Semantyka Pragmatyka Discourse

5 Podejścia do analizy języka
Formalna teoria języka Modele probabilistyczne

6 Drzewo rozbioru (parse tree)
Sentence VP NP Verb NP the man took the book

7 Plan wykładu Gramatyka i wywód Język formalny Gramatyki bezkontekstowe Notacja Backusa-Naura Idea zejść rekurencyjnych

8 (reguły zastępowania) S  1 S  S 1
Produkcje i wywód 1+ = { 1, 11, 111, ... } Symbol początkowy: S Produkcje: (reguły zastępowania) S  1 S  S 1 1) 2) Wywód: 1 1: S 1 2 2 1 111: S S 1 S 1 1 1 1 1

9 Inne produkcje S  A B A  1 A  A 1 B  0 B  B 0 Wywód:    10: S
1) 2) 3) 4) 5) Wywód: 1 2 4 10: S A B 1 B 1 0 100:

10 Gramatyka S  A B A  1 A  A 1 B  0 B  B 0 Symbol początkowy Symbole nieterminalne N = {S, A, B} Symbole terminalne T = {0, 1} Produkcje

11 Domknięcie relacji wywodu
S  A B A  1 A  A 1 B  0 B  B 0 1) 2) 3) 4) 5) Wywód: S A B 1 B 1 0 1 2 4 S 1 0 + Z S można wywieść 10 stosując 1 lub więcej produkcji

12 Zbiór ciągów nad alfabetem
S  A B A  1 A  A 1 B  0 B  B 0 Alfabet = Zbiór symboli terminalnych T = {0, 1} Zbiór ciągów nad alfabetem T*: Zbiór wszystkich ciągów skończonych zbudowanych z elementów zbioru T. Jeśli T = {0, 1} to T* = {, 0, 1, 00, 01, 10, 11, 000, ...} Jeśli T = {a, b, c} to T* = {, a, b, c, aa, ab, ac, ba, bb, bc, ...}

13 Gramatyka G = <S, N, T, P>
Język formalny Gramatyka G = <S, N, T, P> S – Symbol początkowy N – Zbiór symboli nieterminalnych T – Zbiór symboli terminalnych P – Zbiór produkcji Język formalny L zdefiniowany przez gramatykę G: L(G) = {x  T*: S x + }

14 Język formalny S  A B A  1 A  A 1 B  0 B  B 0 L(G) = {x  T*: S x
1) 2) 3) 4) 5) S  A B A  1 A  A 1 B  0 B  B 0 L(G) = {x  T*: S x + } S A B 1 B 1 2 S 1 B + Czy 1B należy do L(G) ? 11  T* Czy 11 należy do L(G) ?

15 Równoważność gramatyk
Gramatyki G1 i G2 są równoważne wtedy i tylko wtedy, gdy L(G1) = L(G2) S  A B A  1 A  A 1 B  0 B  B 0 G1 S  S 0 S  A 0 A  1 A  A 1 G2 S  1 S S  1 A A  0 A  0 A G3

16 Klasyfikacja Chomsky’ego
Noam Chomsky Gramatyki klasy 0 Gramatyki kontekstowe Gramatyki bezkontekstowe Gramatyki liniowe

17 Gramatyki liniowe S  S b S  A b A  a A  A a Prawoliniowa S  a S S  a B B  b B B  b Lewoliniowa Twierdzenie. Dla każdego wyrażenia regularnego istnieje gramatyka lewoliniowa (prawoliniowa) opisująca ten sam język.

18 Gramatyka bezkontekstowa
1. W  ( W ) 2. W  1 Jeden nieterminal

19 Gramatyka bezkontekstowa
W  S W  W + S 3. S  C 4. S  S * C 5. C  L 6. C  ( W ) 7. L  1 8. L  2 9. L  3 Jeden nieterminal

20 Gramatyka kontekstowa
S  a X Y S  a S X Y a X  a b b X  b b c X  c c b Y  b c c Y  c c

21 Rozszerzona notacja Backusa-Naura
Produkcje + wyrażenia regularne <C> ::= ‘0’ | ‘1’ | ‘2’ | ‘3’ | ‘4’ | ‘5’ | ‘6’ | ‘7’ | ‘8’ | ‘9’ <L> ::= <C>+ <L> ::= <C>* <C> <S> ::= (<L> ‘*’)* <L> <W> ::= (<S> ‘+’)* <S> John Backus

22 Przejście z EBNF na gramatyki
<J> ::= <A>* <B> J  B J  A J

23 Przejście z EBNF na gramatyki
<L> ::= <C>* <C> <S> ::= (<L> ‘*’)* <L> <W> ::= (<S> ‘+’)* <S> C  ‘0’ C  ‘1’ C  ‘2’ . . . C  ‘9’

24 Przejście z EBNF na gramatyki
<L> ::= <C>* <C> <S> ::= (<L> ‘*’)* <L> <W> ::= (<S> ‘+’)* <S> <J> ::= <A>* <B> J  B J  A J L  C L  C L

25 Idea zejść rekurencyjnych - Problem
Język liczb binarnych L = {0, 1, 00, 01, 10, 11, ...}. Po liczbie jest spacja. Napisać program sprawdzania, czy x  L. N – liczba binarna (Numer binarny) C – Cyfra binarna N  C N N  C C  0 C  1 N = C+ N = {C, CC, CCC, ...} gdzie C = {0, 1}

26 Bufor wejściowy 1 ‘ ‘ Token N  C N N  C C  0 C  1 #define Bool int
‘ ‘ Token #define Bool int #define True 1 #define False 0 char Token; void Init(){ scanf("%c", &Token); return; } Bool Widzisz(char c){ return Token == c; void Nastepny(){ N  C N N  C C  0 C  1

27 Bufor wejściowy 1 Token N  C N N  C C  0 C  1 void main(){ Init();
Token void main(){ Init(); if (N()){ printf("OK\n"); }else{ printf("Error\n"); } return; N  C N N  C C  0 C  1

28 Bufor wejściowy 1 Token N  C N N  C C  0 C  1 Bool C(){
Token Bool C(){ if (Widzisz('0') || Widzisz('1')){ Nastepny(); return True; }else{ return False; } N  C N N  C C  0 C  1

29 Bufor wejściowy 1 Token N  C N N  C C  0 C  1 #define N_ogr ' '
Token #define N_ogr ' ' Bool N(){ Bool ok; ok= C(); if (ok && Widzisz(N_ogr)){ return ok; }else{ if (ok){ return N(); }else{ return False; } N  C N N  C C  0 C  1

30 Gramatyki bezkontekstowe Notacja Backusa-Naura
Podsumowanie Wreszcie! Gramatyka formalna Wywód zdania Język formalny Gramatyki bezkontekstowe Notacja Backusa-Naura Idea zejść rekurencyjnych


Pobierz ppt "Przetwarzanie języka Wprowadzenie do informatyki Jerzy Nawrocki"

Podobne prezentacje


Reklamy Google