1. Trang chủ
  2. » Giáo Dục - Đào Tạo

phân tích cú pháp theo phương pháp Earley

18 2,6K 11
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phân Tích Cú Pháp Theo Phương Pháp Earley
Tác giả Vươ ng Thị Tuyến, Lưu Thị Thảnh, Nguyễn Huy Linh
Người hướng dẫn TS. Hà Chí Trung
Trường học Viện Kỹ Thuật Quân Sự
Chuyên ngành Tin Học
Thể loại Đồ án
Năm xuất bản 2013
Thành phố Hà Nội
Định dạng
Số trang 18
Dung lượng 4,73 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đặt vấn đềMục đích của việc giải bài toán được giao Lý thuyết Các lý thuyết liên quan tới bài toán Sơ đồ thuật toán Thuật toán làm việc của bài toán Chương trình Các giao diện chính của

Trang 1

Gi¸o viªn h ướ ng dÉn: TS Hµ ChÝ Trung

Nhãm th c hi n: ự ệ

1/ V ươ ng Th Tuy n ị ế 2/ L u Th Th nh ư ị ả

NHãM 6 TIN HäC 9A –

- O 0 O

ÁN M¤N H C:

AUTOMATA Vµ NG¤N NG÷ H×NH THøC

Ngµy hoµn thµnh: 11/01/2013

Trang 2

Đặt vấn đề

Mục đích của việc giải bài toán được giao

Lý thuyết

Các lý thuyết liên quan tới bài toán

Sơ đồ thuật toán

Thuật toán làm việc của bài toán

Chương trình

Các giao diện chính của chương trình

1

2

5

3

4

Cấu trúc chương trình

Cấu trúc chương trình

Ví dụ

Ví dụ minh họa

6

Kết luận

Các nhận xét 7

Đồ án: PHÂN TÍCH CÚ PHÁP THEO PHƯƠNG PHÁP EARLEY

Tài liệu tham khảo

Tài liệu tham khảo trong quá trình làm đồ án

8

Trang 3

Giải thuật Earley là một giải thuật cơ bản, được sử dụng tương đối rộng rãi trong các hệ thống phân tích cú pháp

Tuy nhiên, giải thuật này vẫn còn hạn chế như sinh ra quá nhiều luật dư thừa trong quá trình phân tích

Trong bài này, chúng em xin phép được đề xuất ra phương pháp phân tích cú pháp theo giải thuật Earley

Mục đích của việc giải bài toán được giao

Trang 4

Giải thuật Earley là một trong những giải thuật được sử dụng phổ biến trong việc xây dựng các hệ thống phân tích cú pháp

Giải thuật này sử dụng chiến lược phân tích kiểu trên-xuống (top-down), bắt đầu với một ký hiệu không kết thúc đại diện cho câu và sử dụng các luật khai triển cho đến khi thu được câu vào

Hạn chế của cách tiếp cận này là không chú trọng nhiều đến các từ đầu vào Vì vậy, trong quá trình phân tích, giải thuật Earley sản sinh ra rất nhiều luật dư thừa

Mục đích của việc giải bài toán được giao

Đồ án: PHÂN TÍCH CÚ PHÁP THEO PHƯƠNG PHÁP EARLEY

Trang 5

Ngoài ra, giải thuật Earley được xây dựng cho tiếng Anh nên khi áp dụng cho tiếng Việt sẽ có hạn chế:

Mỗi câu vào tiếng Anh chỉ có một cách tách từ, trong khi với tiếng Việt, mỗi câu vào

có thể có nhiều cách tách từ khác nhau.

Với đặc điểm đầu vào của giải thuật Earley chỉ là một câu với một cách tách, bộ phân tích cú pháp sẽ phải thực hiện lặp đi lặp lại giải thuật này cho từng trường hợp tách

từ đối với tiếng Việt

Mục đích của việc giải bài toán được giao

Trang 6

Để giải quyết vấn đề này, khi xem xét các tài liệu, chúng em nhận thấy trong các cách tách từ Việt tồn tại các cặp cách tách giống nhau ở danh sách các

từ loại đầu tiên và chỉ khác nhau ở phần đuôi của chúng.

Mục đích của việc giải bài toán được giao

Đồ án: PHÂN TÍCH CÚ PHÁP THEO PHƯƠNG PHÁP EARLEY

Trang 7

Giải thuật Earley cơ bản được phát biểu như sau:

Đầu vào: Văn phạm G = (N, T, S, P), trong đó:

N: tập kí hiệu không kết thúc

T: tập kí hiệu kết thúc

S: kí hiệu không kết thúc bắt đầu

P: tập luật cú pháp

Xâu vào w = a1a2 an

Đầu ra: Phân tích đối với w hoặc "sai"

Lý thuyết về giải thuật Earley

Trang 8

Kí hiệu:

 α, β, γ biểu diễn xâu chứa các kí hiệu kết thúc, không kết thúc hoặc rỗng.

 X, Y, Z biểu diễn các kí hiệu không kết thúc đơn.

 a biểu diễn kí hiệu kết thúc.

Đồ án: PHÂN TÍCH CÚ PHÁP THEO PHƯƠNG PHÁP EARLEY

Lý thuyết về giải thuật Earley

Trang 9

Earley sử dụng cách biểu diễn luật thông qua dấu chấm “•”

X→ α • β có nghĩa là:

Trong P có một luật sản xuất X→ α β.

α đã được phân tích.

β đang được chờ phân tích.

Khi dấu chấm “•” được chuyển ra sau β có nghĩa rằng đây là một luật hoàn thiện Thành phần X đã được phân tích

đầy đủ, ngược lại nó là một luật chưa hoàn thiện.

Đối với mỗi từ thứ j của xâu đầu vào, bộ phân tích khởi tạo một bộ có thứ tự các trạng thái S(j).

Mỗi bộ tương ứng với một cột trong bảng phân tích Mỗi trạng thái có dạng (X → α • β, i), thành phần sau dấu

phẩy xác định rằng luật này được phát sinh từ cột thứ i.

Lý thuyết về giải thuật Earley

Trang 10

Các hàm trong chương trình:

Đồ án: PHÂN TÍCH CÚ PHÁP THEO PHƯƠNG PHÁP EARLEY

3/8 Cấu trúc chương trình

1) void nhapDanhTu(map<string, unsigned int> &TL)

2) void nhapNoiDongTu(map<string, unsigned int> &TL)

3) void nhapNgoaiDongTu(map<string, unsigned int> &TL)

4) void nhapTinhTu(map<string, unsigned int> &TL)

5) void nhapGioiTu(map<string, unsigned int> &TL)

6) void nhapMaoTu(map<string, unsigned int> &TL)

7) void nhapDaiTu(map<string, unsigned int> &TL)

8) void nhapTroDongTu(map<string, unsigned int> &TL)

9) void nhapDanhSachLuat(vector<int> Luat[], int &iNumRule)

10) void nhapCauInput(vector<string> &Cau)

11) void thuatToan(vector<string> Cau, vector<int> Luat[], map<string, unsigned int> &TuLoai, int

iNumRule, vector<vector<int> > Table[])

12) void testTableOutput(vector<vector<int> > Table[], int iNumWord)

Trang 11

Đối với mỗi bộ S(j), thuật toán phân tích thực hiện 3 bước:

(1) Dự đoán (Predictor):

Với mọi trạng thái trong S(j): (X → α • Y β, i), ta thêm trạng thái (Y → • γ, j) vào S(j) nếu có luật sản xuất Y →

γ trong P.

(2) Duyệt (Scanner):

Nếu a là kí hiệu kết thúc tiếp theo Với mọi trạng thái trong S(j): (X → α • a β, i), ta thêm trạng thái (X → α a •

β, i) vào S(j+1).

(3) Hoàn thiện (Completer):

Với mọi trạng thái trong S(j): (X → γ• , i), ta tìm trong S(i) trạng thái (Y → α • X β, k), sau đó thêm (Y → α X •

β, k) vào S(j).

Ở mỗi bộ S(j) phải kiểm tra xem trạng thái đã có chưa trước khi thêm vào để tránh trùng lặp.

Thuật toán làm việc của bài toán

4/8

1

2

3

Trang 12

Đồ án: PHÂN TÍCH CÚ PHÁP THEO PHƯƠNG PHÁP EARLEY

Ví dụ minh họa

Phân tích câu “học sinh học sinh học” với tập luật cú pháp như sau:

S → N VP

S → P VP

S → N AP

S → VP AP

VP → V N

VP → V NP

NP → N N

NP → N A

AP → R A

N → học sinh

N → sinh học

V → học

V → sinh

Trong đó:

S – câu

VP – cụm động từ

NP – cụm danh từ

AP – cụm tính từ

P – đại từ

N – danh từ

V – động từ

A – tính từ

R – phụ từ

Trang 13

Do câu trên có nhiều cách tách từ, trong khi đầu vào của giải thuật Earley chỉ là một câu với một cách tách từ nên em minh họa giải thuật Earley với cách tách từ trong trường hợp

câu được phân tích là: học sinh, học, sinh học.

Phân tích câu “học sinh học sinh học”:

Ví dụ minh họa

Trang 14

Đồ án: PHÂN TÍCH CÚ PHÁP THEO PHƯƠNG PHÁP EARLEY

Bảng phân tích cho cách tách này như sau:

N •học sinh, 0

N •sinh học, 0

V •học, 0

Phân tích câu “học sinh học sinh học”:

Ví dụ minh họa

Trang 15

Giao diện ch ương trình:

Các giao diện chính của chương trình

Kết quả:

Trang 16

Người ta gọi giải thuật Earley là thuật toán tổng hợp hay thuật toán vạn năng vì chúng

có thể phân tích ngữ pháp cho một văn phạm bất kỳ Tuy nhiên do tính vạn năng của chúng cho nên nói chung là phương pháp này không hiệu quả với một văn phạm cụ thể nào,vì lý do trên ,người ta ít sử dụng chúng để viết các chương trình dịch (complier)

Trong bài em chưa thực hiện viết được trên giao diện winform để trình bày cho dễ hiểu, chúng em sẽ cố gắng thực hiện trong thời gian tới

Đồ án: PHÂN TÍCH CÚ PHÁP THEO PHƯƠNG PHÁP EARLEY Các nhận xét

Trang 17

Tài liệu tham khảo trong quá trình làm đồ án

 http://Wikipedia.com

 Ngôn ngữ hệ thống và chương trình dịch

(Học viện KTQS)

 Đồ án automata khóa 8

Trang 18

KÍNH CHÚC THẦY, CÔ GIÁO SỨC KHỎE, HẠNH PHÚC!

ĐẾN ĐÂY KẾT THÚC

Đồ án: PHÂN TÍCH CÚ PHÁP THEO PHƯƠNG PHÁP EARLEY

Ngày đăng: 13/05/2014, 20:51

HÌNH ẢNH LIÊN QUAN

Sơ đồ thuật toán - phân tích cú pháp theo phương pháp Earley
Sơ đồ thu ật toán (Trang 2)
Bảng phân tích cho cách tách này như sau: - phân tích cú pháp theo phương pháp Earley
Bảng ph ân tích cho cách tách này như sau: (Trang 14)

TỪ KHÓA LIÊN QUAN

w