Top Banner
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KHOA HỌC MÁY TÍNH BÁO CÁO ĐỒ ÁN XỬ LÝ NGÔN NGỮ TỰ NHIÊN VIẾT CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ Giảng viên hướng dẫn: TS. NGUYỄN TUẤN ĐĂNG Sinh viên thực hiện: NGUYỄN HOÀNG NGHĨA 11520603 Lớp: KHTN2011 Lớp môn học: CS221.E21.KHTN Khoá: 2011 TP. Hồ Chí Minh, Ngày 28 tháng 06 năm 2014
19

CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

Dec 06, 2015

Download

Documents

nghiapickup1

CHƯƠNG TRÌNH VẼ CÂY AND/OR
PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KHOA HỌC MÁY TÍNH

BÁO CÁO ĐỒ ÁN

XỬ LÝ NGÔN NGỮ TỰ NHIÊN

VIẾT CHƯƠNG TRÌNH VẼ CÂY AND/OR

PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

Giảng viên hướng dẫn: TS. NGUYỄN TUẤN ĐĂNG

Sinh viên thực hiện:

NGUYỄN HOÀNG NGHĨA 11520603

Lớp: KHTN2011

Lớp môn học: CS221.E21.KHTN

Khoá: 2011

TP. Hồ Chí Minh, Ngày 28 tháng 06 năm 2014

Page 2: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KHOA HỌC MÁY TÍNH

BÁO CÁO ĐỒ ÁN

XỬ LÝ NGÔN NGỮ TỰ NHIÊN

VIẾT CHƯƠNG TRÌNH VẼ CÂY AND/OR

PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

Giảng viên hướng dẫn: TS. NGUYỄN TUẤN ĐĂNG

Sinh viên thực hiện:

NGUYỄN HOÀNG NGHĨA 11520603

Lớp: KHTN2011

Lớp môn học: CS221.E21.KHTN

Khoá: 2011

TP. Hồ Chí Minh, Ngày 28 tháng 06 năm 2014

Page 3: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

LỜI CẢM ƠN

Lời đầu tiên chúng em xin được bày tỏ lòng biết ơn sâu sắc nhất

tới TS. Nguyễn Tuấn Đăng, Khoa Khoa học máy tính, Đại học Công nghệ

thông tin ĐHQG-HCM, người đã tận tình hướng dẫn kiến thức căn bản

và thiết yếu để hoàn thành đồ án.

Tiếp đến, xin cám ơn các bạn lớp CS221.E21.KHTN đã cùng trao

đổi và bổ sung kiến thức hỗ trợ cho việc hoàn thiện đồ án.

TP. Hồ Chí Minh, Ngày 28 tháng 06 năm 2014

Nguyễn Hoàng Nghĩa

Page 4: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

NHẬN XÉT CỦA GIẢNG VIÊN

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

···································································································

Page 5: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

MỤC LỤC I. Tổng quan .................................................................................................................................................. 2

1. Thông tin chung .................................................................................................................................... 2

2. Nội dung thực hiện ............................................................................................................................... 2

3. Công cụ hỗ trợ ...................................................................................................................................... 2

II. Xây dựng chương trình vẽ cây AND/OR phân tích câu ........................................................................... 3

1. Ý tưởng ................................................................................................................................................. 3

2. Xây dựng class Node ........................................................................................................................ 3

2.1. Các thuộc tính được khai báo: ...................................................................................................... 3

2.2. Các hàm được xây dựng: .............................................................................................................. 5

3. Xây dựng chương trình chính .............................................................................................................. 6

3.1. Các biến được khai báo: ............................................................................................................... 6

3.2. Các hàm được xây dựng: .............................................................................................................. 6

4. Xây dựng giao diện và hoàn thiện chương trình ................................................................................ 7

4.1. Xây dựng giao diện ........................................................................................................................ 7

4.2. Chương trình hoàn chỉnh .............................................................................................................. 8

5. Kiểm tra: ............................................................................................................................................. 10

5.1. Một số văn phạm đơn giản: ........................................................................................................ 10

5.2. Câu mặc định: .............................................................................................................................. 12

III. Xây dựng văn phạm phân tích câu ....................................................................................................... 14

Văn phạm xây dựng: ............................................................................................................................... 14

Page 6: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

BÁO CÁO ĐỒ ÁN XỬ LÝ NGÔN NGỮ TỰ NHIÊN GVHD: TS. NGUYỄN TUẤN ĐĂNG

2

I. Tổng quan

1. Thông tin chung

* Tên đồ án:

Viết chương trình vẽ cây AND/OR phân tích cú pháp câu và phân tích thơ.

* Giảng viên hướng dẫn: TS. Nguyễn Tuấn Đăng.

* Sinh viên thực hiện: Nguyễn Hoàng Nghĩa.

* Khoá học: Khoá 2011 (Ngày nhập học: Tháng 09/2011).

* Thông tin liên lạc của sinh viên:

STT Tên MSSV Email

1 Nguyễn Hoàng Nghĩa 11520603 [email protected]

2. Nội dung thực hiện

Đồ án thực hiện 2 nội dung:

Viết chương trình xây dựng cây AND/OR mô phỏng quá trình phân tích câu từ văn

phạm dạng cú pháp của Prolog.

Viết cú pháp DCG phân tích 4 câu thơ:

Em không nghe rừng thu,

Lá thu kêu xào xạc,

Con nai vàng ngơ ngác

Đạp trên lá vàng khô?

(Tiếng thu - Lưu Trọng Lư)

3. Công cụ hỗ trợ

Chương trình vẽ cây AND/OR:

IDE lập trình: Microsoft Visual Studio 2010.

Môi trường lập trình: Visual C#: Windows Forms Application.

Ứng dụng hỗ trợ: Devcomponents DotNetBar version 10.0.0.0.

Chương trình hỗ trợ kiểm tra văn phạm:

SWI-Prolog (Multi-threaded, 32 bits, Version 6.3.4).

Page 7: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

BÁO CÁO ĐỒ ÁN XỬ LÝ NGÔN NGỮ TỰ NHIÊN GVHD: TS. NGUYỄN TUẤN ĐĂNG

3

II. Xây dựng chương trình vẽ cây AND/OR phân tích câu

1. Ý tưởng

Mục tiêu:

Hoàn thiện chương trình xây dựng cây AND/OR mô phỏng quá trình phân tích câu từ văn

phạm dạng cú pháp của Prolog. Chương trình sử dụng 2 câu mặc định:

"Em không nghe rừng thu

Lá thu kêu xào xạc"

(Tiếng thu - Lưu Trọng Lư)

Ý tưởng:

Ta nhận thấy chương trình gồm 2 bước chính cần giải quyết:

Bước 1: Từ văn phạm đầu vào ta cần phân tích câu trên mô phỏng theo cách Prolog

thực hiện.

Bước 2: Từ kết quả bước trên ta sẽ vẽ cây AND/OR mô phỏng lại quá trình phân

tích.

Vậy kết quả đầu ra của bước 1 và đầu vào bước 2 phải thống nhất hoặc có thể hiểu được

nhau. Từ đó, đồ án sẽ xây dựng cấu trúc dữ liệu chính của chương trình: class Node lưu

dạng cây lưu trữ các thông tin và kết quả truy vấn văn phạm và các thuộc tính dùng để vẽ.

class Node được khai báo đệ quy để có thể lưu được các node (các thao tác) trong quá

trình truy vấn đồng thời có thể lưu được cấu trúc cây.

2. Xây dựng class Node

class Node được định nghĩa đệ quy gồm mô tả 1 Node trong quá trình truy vấn và các con

của nó. Đồng thời, lưu trữ các thuộc tính dùng để vẽ.

2.1. Các thuộc tính được khai báo:

Khai báo Chức năng

Các thuộc tính truy vấn

string

name,nameL,nameR,unionNameL,unionName

R

Tên luật được áp dụng; tên các biến trái,

phải; tên các biến trước quá trình hợp nhất

(unified)

Page 8: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

BÁO CÁO ĐỒ ÁN XỬ LÝ NGÔN NGỮ TỰ NHIÊN GVHD: TS. NGUYỄN TUẤN ĐĂNG

4

string[] tagNodeLeft;

string[] tagNodeRight; Lưu trữ danh sách các từ trong câu thuộc

thành phần truy vấn (Node) trái, phải hiện

tại.

int numsRule; Thứ tự luật được áp dụng tại Node.

bool flag; Cờ đánh dấu giá trị của truy vấn tại Node

hiện tại: true – Truy vấn dúng; false – truy

vấn sai.

Node[] chilList; Danh sách các Node con (các kết quả truy

vấn tại Node hiện tại).

Node parent; Node hiện tại là thành phần truy vấn của

panrent.

Các thuộc tính dùng để vẽ

bool isSpecialNode = false; Node đặc biệt, tên hiển thị bị thay đổi

trong quá trình truy vấn.

string draw; Nội dung sẽ dược viết (vẽ) ra của Node.

float primeDistance = 100; Khoảng các cơ bản (Pixel) giữa 2 Node

cạnh nhau (theo nghĩa hiển thị trên màn

hình). Giá trị mặc định: 100.

SizeF sizeNode; Độ rộng của Node khi vẽ. Được tính như

sau:

- Độ rộng cơ bản môt Node bằng độ rộng

của string draw; khi vẽ ra.

- Độ rộng của Node khác Node lá bằng

Max( Độ rộng cơ bản Node đó; tổng độ

rộng Node con + khoảng cách giữa các

Node).

float primeHeight; Chiều cao cơ bản giữa 2 Node bậc kề

nhau.

int numsChild; Số Node con cần vẽ ra

PointF location; Vị trí (toạ độ) của Node.

Brush brushValue=Brushes.DarkOrange;

Brush

brushUniValue=Brushes.OliveDrab;

Brush brushTree =

Brushes.DarkSlateGray;

Các giá trị Brush của các thành phần cơ

bản được vẽ.

static float sizeFont = 20;

static float lineWidth = 2.0f; Size chữ và độ dày của đường kẻ.

Page 9: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

BÁO CÁO ĐỒ ÁN XỬ LÝ NGÔN NGỮ TỰ NHIÊN GVHD: TS. NGUYỄN TUẤN ĐĂNG

5

Font font = new Font("Calibri",

sizeFont, FontStyle.Bold,

GraphicsUnit.Pixel);

Font uniFont = new Font("Tahoma",

sizeFont * (float)0.618,

FontStyle.Bold, GraphicsUnit.Pixel);

Giá trị font chữ của các thành phần dạng

text.

2.2. Các hàm được xây dựng:

Khai báo Chức năng

Phương thức khởi tạo

public Node() Khởi tạo 1 Node cơ bản.

public Node(Node a) Khởi tạo, sao chép 1 Node (không sao chép

thành phần Node[] chilList;

Các hàm hỗ trợ tính toán

public void CalcDistance(Graphics g) Tính các chỉ số SizeF sizeNode; và int

numsChild;

private PointF calcLineConnect(PointF

p1, PointF p2,float k) Tính toạ độ của điểm cách p1 khoảng cách

k pixel theo chiều của 𝑝1𝑝2⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ public bool isList(string s) Kiểm tra chuỗi s có phải dạng danh sách

các từ.

public string[] expandList(string s) Triển khai danh sách các từ s mảng vào

chuỗi (mỗi phần từ chứ 1 từ).

public string reduceDraw(string s) Rút gọn chuỗi s có dạng danh sách các từ

để vẽ ra màn hình.

private bool canTurnBack(Node a) Kiểm tra xem Node a có quay lui khi truy

vấn không.

Các hàm vẽ

public SizeF DrawNode(Graphics g) Vẽ một Node ra màn hình dựa trên các

thông số của nó (Không vẽ các thành phần

con)

public void DrawTree(Graphics g) Vẽ một Node hoàn chỉnh (Dạng cây) dựa

trên các thông số và các thành phần đệ quy

của nó.

Page 10: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

BÁO CÁO ĐỒ ÁN XỬ LÝ NGÔN NGỮ TỰ NHIÊN GVHD: TS. NGUYỄN TUẤN ĐĂNG

6

3. Xây dựng chương trình chính

3.1. Các biến được khai báo:

Khai báo Chức năng

string[] dcg,normalDcg,normalQuery; Lưu trữ văn phạm hiện tại, văn phạm mặc

định, câu truy vấn mặc định.

Node[] rule; Lưu các luật áp dụng

Node treeAO; Cây AND/OR truy vấn.

Graphics g;

Bitmap bitmap;

Color backColor;

Các thành phần đồ hoạ; Thành phần đồ hoạ

được xử lý toàn bộ trên bitmap trước khi

xuất ra màn hình; màu nền chung.

3.2. Các hàm được xây dựng:

Khai báo Chức năng

Hàm khởi tạo

public Form1() Khởi tạo các thông số cơ bản

của giao diện, các thành

phần đồ hoạ.

Các phương thức xử lý và truy vấn

private void analysis(string s,int count) Xử lý, tổng hợp dữ liệu đầu

vào: Các luật, câu truy vấn.

private void UnionRule(Node a, Node b) Hợp nhất (unified) Node a

và Node b.

private void startQuery()

private bool query(Node a, ref string match) Hàm chính khởi tạo truy vấn

và truy vấn.

private bool lprocess() Hàm gọi lệnh truy vấn.

private void drawANDOR() Khởi tạo và gọi thao tác vẽ

trực tiếp lên màn hình.

Các sự kiện

private void Form1_Load(object sender, EventArgs

e) Sự kiện khởi tạo lúc Form

Load

private void buttonRun_Click(object sender,

EventArgs e)

private void buttonReset_Click(object sender,

EventArgs e)

Sự kiện click của các button

Page 11: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

BÁO CÁO ĐỒ ÁN XỬ LÝ NGÔN NGỮ TỰ NHIÊN GVHD: TS. NGUYỄN TUẤN ĐĂNG

7

private void buttonExit_Click(object sender,

EventArgs e)

private void buttonClear_Click(object sender,

EventArgs e)

private void buttonEdit_Click(object sender,

EventArgs e)

private void buttonHow_Click(object sender,

EventArgs e)

private void pictureBoxHow_Click(object sender,

EventArgs e)

private void

expandablePanel1_ExpandedChanged(object sender,

DevComponents.DotNetBar.ExpandedChangeEventArgs

e)

Xử lý form trợ giúp và hộp

điều khiển.

4. Xây dựng giao diện và hoàn thiện chương trình

4.1. Xây dựng giao diện

Giao diện cơ bản của chương trình được chia làm 2 phần, các thông số được tính theo tỉ lệ

màn hình hiển thị:

Hình 4.1.1 Tỉ lệ các thành phần chính của giao diện chương trình.

Page 12: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

BÁO CÁO ĐỒ ÁN XỬ LÝ NGÔN NGỮ TỰ NHIÊN GVHD: TS. NGUYỄN TUẤN ĐĂNG

8

Phần (I): Bảng điểu khiển, chứa toàn bộ các phím chức năng, thông tin chương trình.

Bảng điều khiển sử dụng Expanable có thể thu gọn lại để màn hình vẽ (II) rộng hơn.

Phần (II): Vùng hiển thị hình vẽ, có dạng Panel dùng thanh cuộn (do một số hình

cây lớn hơn vùng hiển thị).

Hình 4.1.2 Tỉ lệ thành phần (I): Bảng điều khiển.

4.2. Chương trình hoàn chỉnh

Giao diện và các phím, nội dung chính của chương trình:

Page 13: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

BÁO CÁO ĐỒ ÁN XỬ LÝ NGÔN NGỮ TỰ NHIÊN GVHD: TS. NGUYỄN TUẤN ĐĂNG

9

Hình 4.2.1 Giao diện chính và các phím chức năng của chương trình

Ta có thể thu gọn bảng điều khiển bằng cách nhấn vào thanh tiêu đề của nó:

Hình 4.2.2 Thu gọn bảng điều khiển

Giao diện hướng dẫn:

Page 14: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

BÁO CÁO ĐỒ ÁN XỬ LÝ NGÔN NGỮ TỰ NHIÊN GVHD: TS. NGUYỄN TUẤN ĐĂNG

10

Hình 4.2.3 Giao diện hướng dẫn

5. Kiểm tra:

5.1. Một số văn phạm đơn giản:

(1)

Văn phạm Truy vấn

1) s(A,B) :- np(A,C), vp(C,B).

2) np(A,B) :- prp(A,B).

3) np(A,B):-nn(A,B).

4) vp(A,B):-vb(A,C), np(C,B).

5) prp([nó|A],A).

6) vb([học|A], A).

7) nn([bài|A], A).

s([nó, học, bài],[]).

Kết quả:

Page 15: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

BÁO CÁO ĐỒ ÁN XỬ LÝ NGÔN NGỮ TỰ NHIÊN GVHD: TS. NGUYỄN TUẤN ĐĂNG

11

(2)

Văn phạm Truy vấn

1) s(A, B) :- np(A, C), vp(C, D), pp(D, B).

2) np(A, B) :- prp(A, B).

3) np(A, B) :- nrp(A, B).

4) np(A, B) :- nn(A, C), jj(C, B).

5) vp(A, B) :- vp1(A, C), np(C, B).

6) vp1(A, B) :- rb(A, C), vb(C, B).

7) pp(A, B) :- in(A, C), np(C, B).

8) prp([nó|A],A).

9) rb([đã|A],A).

10) vb([đi|A], A).

11) nrp([paris|A],A).

12) in([vào|A],A).

13) nn([năm|A],A).

14) jj([ngoái|A],A).

s([nó,đã,đi,paris,vào,năm,ngoái],[]).

Kết quả: Do kích thước lớn nên ta cần dùng thanh cuộn để có thể xem hết hình.

Page 16: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

BÁO CÁO ĐỒ ÁN XỬ LÝ NGÔN NGỮ TỰ NHIÊN GVHD: TS. NGUYỄN TUẤN ĐĂNG

12

5.2. Câu mặc định:

Văn phạm Truy vấn

1) s(A,B) :- np(A,C), vp(C,B).

2) np(A,B) :- prp(A,B).

3) np(A,B) :- np1(A,B).

4) np(A,B) :- nn(A,C), nn(C,B).

5) np(A,B) :- np1(A,C), np2(C,B).

6) np(A,B) :- np1(A,C), vp(C,B).

7) np1(A,B) :- nn(A,C), nn(C,B).

8) np1(A,B) :- nn(A,B).

9) np1(A,B) :- nn(A,C), vb(C,B).

10) np2(A,B) :- np(A,C), vp(C,B).

11) vp(A,B) :- vp1(A,C), np(C,B).

12) vp(A,B) :- vp1(A,B).

13) vp1(A,B) :- vb(A,C), rb(C,B).

14) vp1(A,B) :- rb(A,C), vb(C,B).

15) vp1(A,B) :- vb(A,C), rb(C,B).

16) vp1(A,B) :- vb(A,C).

17) prp([em|A],A).

18) nn([rừng|A],A).

19) nn([thu|A],A).

20) nn([lá|A],A).

s([em,không,nghe,rừng,thu,lá,thu,kêu,xào,xạc],[]).

Page 17: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

BÁO CÁO ĐỒ ÁN XỬ LÝ NGÔN NGỮ TỰ NHIÊN GVHD: TS. NGUYỄN TUẤN ĐĂNG

13

21) rb([không|A],A).

22) rb([xào,xạc|A],A).

23) vb([kêu|A],A).

24) vb([nghe|A],A).

Kết quả:

(*) Một số câu truy vấn khác:

s([em ,nghe, xào xạc],[]).

s([em ,nghe, không],[]).

s([em ,kêu, không],[]).

s([rừng ,nghe, xào xạc],[]).

s([rừng ,kêu, xào xạc],[]).

s([thu ,nghe, xào xạc],[]).

s([lá ,nghe, xào xạc],[]).

s([lá ,kêu, xào xạc],[])..

s([em ,không, nghe],[]).

s([em ,không, kêu],[]).

s([rừng ,xào xạc, kêu],[]).

s([rừng ,không, kêu],[]).

s([thu ,xào xạc, nghe],[]).

s([thu ,không, nghe],[]).

s([thu ,không, kêu],[]).

s([lá ,xào xạc, nghe],[]).

s([lá ,xào xạc, kêu],[]).

s([lá ,không, nghe],[]).

Page 18: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

BÁO CÁO ĐỒ ÁN XỬ LÝ NGÔN NGỮ TỰ NHIÊN GVHD: TS. NGUYỄN TUẤN ĐĂNG

14

s([lá ,không, kêu],[]).

s([em ,nghe, rừng, kêu],[]).

s([em ,nghe, thu, ],[]).

s([em ,kêu, em, nghe],[]).

s([em ,kêu, em, nghe],[]).

s([em ,kêu, thu, ],[]).

s([rừng ,nghe, em, nghe],[]).

s([rừng ,nghe, em, nghe],[]).

s([rừng ,nghe, thu, ],[]).

s([rừng ,kêu, em, nghe],[]).

s([rừng ,kêu, thu, ],[]).

s([thu ,nghe, rừng, kêu],[]).

s([lá ,nghe, thu, ],[]).

s([em ,nghe, rừng, em, kêu, xào xạc],[]).

s([em ,nghe, rừng, em, kêu, không],[]).

s([em ,nghe, rừng, thu, kêu, xào xạc],[]).

s([em ,nghe, rừng, thu, kêu, không],[]).

s([em ,nghe, thu, rừng, kêu, xào xạc],[]).

s([em ,nghe, thu, rừng, kêu, không],[]).

s([em ,nghe, lá, rừng, kêu, xào xạc],[]).

s([em ,nghe, lá, rừng, kêu, không],[]).

s([em ,nghe, lá, thu, kêu, xào xạc],[]).

s([em ,nghe, lá, thu, kêu, không],[]).

s([em ,kêu, rừng, rừng, nghe, xào xạc],[]).

s([em ,kêu, rừng, rừng, nghe, không],[]).

s([em ,kêu, rừng, rừng, kêu, xào xạc],[]).

s([rừng ,kêu, thu, lá, nghe, xào xạc],[]).

s([rừng ,kêu, thu, lá, kêu, xào xạc],[]).

III. Xây dựng văn phạm phân tích câu

File: [NLP]NguyenHoangNghia_11520603_Do_an_2.pl

Văn phạm xây dựng:

s --> np, vp.

np --> nn.

np --> dt, np.

np --> in, np.

np --> vb, np.

np --> nn, np.

np --> nn, jjp.

np --> nn, vp.

jjp --> jjpp.

jjp --> jjpp, vp.

jjp --> jjpp, np.

jjpp --> jj.

jjpp --> jj, jj.

vp --> rb, np.

vp --> vb, rb.

vp --> vb, np.

vp --> vb.

nn --> [em].

Page 19: CHƯƠNG TRÌNH VẼ CÂY AND/OR PHÂN TÍCH CÚ PHÁP CÂU VÀ PHÂN TÍCH THƠ

BÁO CÁO ĐỒ ÁN XỬ LÝ NGÔN NGỮ TỰ NHIÊN GVHD: TS. NGUYỄN TUẤN ĐĂNG

15

nn --> [rừng].

nn --> [lá].

nn --> [nai].

rb --> [không].

rb --> [xào,xạc].

vb --> [kêu].

vb --> [nghe].

vb --> [đạp].

vb --> [ngơ,ngác].

vb --> [khô].

jj --> [thu].

jj --> [vàng].

jj --> [ngơ,ngác].

jj --> [khô].

dt --> [con].

in --> [trên].