nguyen dinhnghi do-an

83
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ THÔNG TIN 1 ------------ ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: “Các đặc trưng ngôn ngữ cho bài toán phân loại câu hỏi tiếng Việt” Giảng viên hướng dẫn : TS. NGÔ XUÂN BÁCH Sinh viên thực hiện : NGUYỄN ĐÌNH NGHỊ Lớp : D11CNPM3

Upload: phantuanvu1994

Post on 15-Apr-2017

64 views

Category:

Engineering


6 download

TRANSCRIPT

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNGKHOA CÔNG NGHỆ THÔNG TIN 1

------------

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Đề tài: “Các đặc trưng ngôn ngữ cho bài toán phân loại câu hỏi tiếng Việt”

Giảng viên hướng dẫn : TS. NGÔ XUÂN BÁCHSinh viên thực hiện : NGUYỄN ĐÌNH NGHỊLớp : D11CNPM3Khóa: : 2011 – 2016Hệ đào tạo : ĐẠI HỌC CHÍNH QUY

Hà Nội 12/2015

ĐỒ ÁN TỐT NGHIỆP

TÓM TẮT

Trong thời đại bùng nổ Công nghệ thông tin hiện nay, phương thức sử dụng giấy tờ trong giao dịch đã dần được số hóa chuyển sang các dạng văn bản lưu trữ trên máy tính hoặc truyền tải trên mạng. Bởi nhiều tính năng ưu việt của tài liệu số như: cách lưu trữ gọn nhẹ, thời gian lưu trữ lâu dài, tiện dụng trong trao đổi, đặc biệt là qua Internet, nên ngày nay, số lượng văn bản số tăng lên một cách chóng mặt, đặc biệt là trên World Wide Web. Cùng với sự gia tăng về số lượng văn bản, nhu cầu tìm kiếm văn bản cũng tăng theo. Với số lượng văn bản đồ sộ thì yêu cầu cần có những hệ thống khai thác thông tin hiệu quả. Các công cụ tìm kiếm hiện thời chỉ trả về cho người dùng một tập các tài liệu liên quan có chứa từ khóa trong câu truy vấn của người dùng. Tuy nhiên, người dùng mong muốn một câu trả lời chính xác và cụ thể hơn, dẫn đến yêu cầu cần phải có một hệ thống hỏi đáp tự động.

Trong những năm gần đây, hệ thống hỏi đáp tự động đã nhận được sự quan tâm đặc biệt của các nhà nghiên cứu, các công ty (Yahoo, Google, Mcrosoft, IBM, v.v.), các hội nghị lớn về trích chọn thông tin, xử lý ngôn ngữ tự nhiên (TREC, CLEF, ACL, v.v.) và đã đạt được những kết quả nhất định. Tuy nhiên các nghiên cứu về hệ thống hỏi đáp cho tiếng Việt vẫn còn rất hạn chế. Điều này một phần là do thiếu các công cụ đủ tốt để xử lý tiếng Việt như nhận dạng thực thể tên, phân tích cú pháp, v.v.

Đồ án “Các đặc trưng ngôn ngữ cho bài toán phân loại câu hỏi tiếng Việt” tập trung nghiên cứu về vấn đề phân loại câu hỏi cho tiếng Việt, đây là pha đầu tiên trong một hệ thống hỏi đáp tiếng Việt, có ý nghĩa đặc biệt quan trọng với hoạt động của cả hệ thống. Khi một câu hỏi được phân loại sẽ giúp chúng ta thu hẹp được không gian tìm kiếm câu trả lời cho câu hỏi và từ đó giúp hệ thống hỏi đáp có thể đưa ra được các câu trả lời ngắn gọn và chính xác hơn.

Trên cơ sở các nghiên cứu đã có và điều kiện thực tế của các công cụ xử lý ngôn ngữ tiếng Việt, chúng tôi tiến hành thực nghiệm việc phân loại câu hỏi tiếng Việt trên hai bộ dữ liệu: bộ dữ liệu một gồm 3000 câu hỏi tiếng Việt, bộ dữ liệu hai gồm 3000 câu hỏi tiếng Việt và đi kèm với mỗi câu hỏi là 5 câu truy vấn từ Google. Chúng tôi sử dụng một số phương pháp học máy thống kê như Máy véc tơ hỗ trợ (SVM), Naïve Bayes (NB), K-láng giềng gần nhất và tiến hành thực nghiệm trên các đặc trưng ngôn ngữ tiếng Việt như đặc trưng từ vựng, đặc trưng âm tiết, n-grams, đặc trưng nhãn từ loại và đặc trưng cú pháp của câu. Các kết quả ban đầu đạt được khá khả quan. Bộ phân lớp câu hỏi đạt được kết quả tốt nhất là 85.53% khi sử dụng thuật toán SVM cho đặc trưng âm tiết 1+2 grams kết hợp với đặc trưng nhãn từ loại và đặc trưng cú pháp.

Từ khóa: Hệ thống hỏi đáp, phân loại câu hỏi, Máy véc tơ hỗ trợ, K-láng giềng gần nhất, Naïve Bayes, cây cú pháp, n-grams.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

LỜI CẢM ƠN

Em xin chân thành cảm ơn TS. Ngô Xuân Bách, bộ môn Khoa học máy tính, Khoa Công nghệ thông tin 1 đã tận tình chỉ dạy và hướng dẫn cho em trong việc lựa chọn đề tài, thực hiện đề tài và viết báo cáo đồ án, giúp cho em có thể hoàn thành tốt đồ án này.

Em xin cảm ơn các thầy cô giáo Học viện Công nghệ Bưu chính Viễn thông, đặc biệt các thầy cô trong khoa Công nghệ thông tin 1 đã tận tình dạy dỗ và chỉ bảo em trong suốt 4 năm học.

Cuối cùng em xin cảm ơn gia đình, bạn bè, đồng nghiệp, những người đã luôn bên cạnh động viên em những lúc khó khăn, và giúp đỡ em trong suốt thời gian học tập và làm đồ án, tạo mọi điều kiện tốt nhất cho em để có thể hoàn thành tốt đồ án của mình.

Em xin chân thành cảm ơn!

Hà Nội, 12/2015

Sinh viên

Nguyễn Đình Nghị

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

NHẬN XÉT(Của giảng viên phản biện)

…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..

Hà Nội, 12/2015Giảng viên phản biện

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

NHẬN XÉT(Của giảng viên hướng dẫn)

…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..…………………………………………………………………………………………..

Hà Nội, 12/2015Giảng viên hướng dẫn

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

MỤC LỤC

TÓM TẮT...................................................................................................................................i

LỜI CẢM ƠN...........................................................................................................................ii

DANH MỤC HÌNH VẼ..........................................................................................................vii

DANH MỤC BẢNG BIỂU....................................................................................................viii

BẢNG THUẬT NGỮ TIẾNG ANH.......................................................................................ix

LỜI NÓI ĐẦU...........................................................................................................................1

CHƯƠNG 1: GIỚI THIỆU HỆ THỐNG HỎI ĐÁP VÀ BÀI TOÁN PHÂN LOẠI CÂU HỎI.............................................................................................................................................3

1.1 Giới thiệu hệ thống hỏi đáp tự động.............................................................................3

1.2 Bài toán phân loại câu hỏi............................................................................................6

1.3 Các nghiên cứu liên quan.............................................................................................7

1.4 Đóng góp của đồ án......................................................................................................8

CHƯƠNG 2: HỆ THỐNG PHÂN LOẠI CÂU HỎI TIẾNG VIỆT.....................................9

2.1 Vấn đề phân loại câu hỏi cho tiếng Việt......................................................................9

2.2 Trích chọn đặc trưng..................................................................................................10

2.2.1 Từ vựng...............................................................................................................10

2.2.2 Âm tiết................................................................................................................11

2.2.3 N-grams...............................................................................................................11

2.2.4 Nhãn từ loại.........................................................................................................12

2.2.5 Cây cú pháp.........................................................................................................14

2.3 Các thuật toán học máy..............................................................................................17

2.3.1 Máy véc tơ hỗ trợ (Support Vector Machine).....................................................17

2.3.2 Naïve Bayes........................................................................................................20

2.3.3 K láng giềng gần nhất (K-nearest neighbors).....................................................22

CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ.................................................................26

3.1 Dữ liệu thực nghiệm...................................................................................................26

3.1.1 Chuẩn bị dữ liệu..................................................................................................26

3.1.2 Tiền xử lý dữ liệu................................................................................................27

3.2 Thiết lập thực nghiệm................................................................................................32

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

3.2.1 Thực nghiệm với 3000 câu hỏi...........................................................................32

3.2.2 Thực nghiệm bổ sung câu truy vấn.....................................................................42

KẾT LUẬN..............................................................................................................................45

PHỤ LỤC.................................................................................................................................46

TÀI LIỆU THAM KHẢO......................................................................................................49

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

DANH MỤC HÌNH VẼ

Hình 1-1: Kiến trúc hệ thống hỏi đáp [12]..................................................................................5

Hình 1-2: Mô hình giai đoạn huấn luyện [14]............................................................................6

Hình 1-3: Mô hình giai đoạn phân lớp [14]................................................................................7

Hình 2-1: Kiến trúc hệ thống phân loại câu hỏi tiếng Việt.........................................................9

Hình 2-2: Phân tích phụ thuộc của một câu tiếng Việt [2].......................................................16

Hình 2-3: Siêu phẳng phân chia dữ liệu học thành 2 lớp + và – với khoảng cách biên lớn nhất [17]............................................................................................................................................17

Hình 2-4: Minh họa bài toán phân 2 lớp bằng phương pháp SVM [17]...................................18

Hình 3-1: File questions.txt.......................................................................................................26

Hình 3-2: File labels.txt............................................................................................................27

Hình 3-3: File questions.tok......................................................................................................28

Hình 3-4: File questions.tagger.................................................................................................29

Hình 3-5: File questions.pos.....................................................................................................30

Hình 3-6: File questions.DEP.CONLL.....................................................................................31

Hình 3-7: File questions.root....................................................................................................31

Hình 3-8: File questions.child...................................................................................................32

Hình 3-9: File từ điển................................................................................................................32

Hình 3-10: Định dạng dữ liệu cho libsvm................................................................................33

Hình 3-11: Giao diện màn hình chính của Weka......................................................................35

Hình 3-12: Định dạng dữ liệu file arrff.....................................................................................36

Hình 3-13: So sánh độ chính xác giữa đặc trưng âm tiết và đặc trưng từ vựng.......................39

Hình 3-14: Độ chính xác cho mỗi nhãn (âm tiết 1+2 grams)...................................................39

Hình 3-15: So sánh độ chính xác giữa các đặc trưng................................................................41

Hình 3-16: Phương pháp thực nghiệm bổ sung câu truy vấn...................................................42

Hình 3-17: File question_and_query.txt...................................................................................43

Hình B-1: Giao diện nhập câu hỏi bằng tay..............................................................................47

Hình B-2: Giao diện nhập câu hỏi bằng file.............................................................................47

Hình B-3: Giao diện chạy chương trình....................................................................................48

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

DANH MỤC BẢNG BIỂU

Bảng 2-1: Tập nhãn từ loại [20]................................................................................................13

Bảng 2-2: Nhãn thành phần cú pháp [13].................................................................................14

Bảng 2-3: Nhãn chức năng cú pháp [13]..................................................................................15

Bảng 3-1: Số lượng câu hỏi của mỗi nhãn................................................................................26

Bảng 3-2: Các tệp sau khi chuyển đổi......................................................................................33

Bảng 3-3: Kết quả thực nghiệm SVM sử dụng n-grams, âm tiết và từ vựng...........................37

Bảng 3-4: Kết quả phân lớp cho mỗi nhãn (âm tiết 1+2grams)................................................37

Bảng 3-5: Kết quả thực nghiệm khi bổ sung thêm các đặc trưng.............................................40

Bảng 3-6: Kết quả phân lớp cho mỗi nhãn (âm tiết 1+2grams + nhãn từ loại + root)..............40

Bảng 3-7: Kết quả thực nghiệm của các thuật toán khác nhau.................................................41

Bảng 3-8: Kết quả thực nghiệm bổ sung câu truy vấn..............................................................43

Bảng A-1: Các công cụ sử dụng...............................................................................................46

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

BẢNG THUẬT NGỮ TIẾNG ANH

Viết tắt Từ tiếng Anh Giải nghĩa

ACLAssociation for Computational Linguistics

Hiệp hội ngôn ngữ học tính toán

CLEF The Cross-Language Evaluation Forum

Diễn đàn đánh giá ngôn ngữ chéo

KNN K-Nearest NeighborsThuật toán K láng giềng gần nhất

MEM Maximum Entropy Model Mô hình Entropy cực đại

NB Naïve Bayes Phương pháp Bayes đơn giản

POS Part Of Speech Nhãn từ loại

QA Question Answering Hệ thống hỏi đáp

SVM Support Vector Machine Máy véc tơ hỗ trợ

TREC Text Retrieval Conference Hội nghị truy xuất văn bản

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

LỜI NÓI ĐẦU

Nghiên cứu về hệ thống hỏi đáp tự động (Q&A) [15] đã được quan tâm từ rất lâu trên thế giới. Ngay từ những năm 1960, các hệ thống hỏi đáp đầu tiên sử dụng cơ sở dữ liệu đã được ra đời. Đến những năm 1970-1980, rất nhiều dự án lớn hướng đến việc “hiểu văn bản” và xây dựng hệ thống hỏi đáp dựa trên các mô hình ngôn ngữ thống kê. Cuối những năm 1990, World Wide Web ra đời và phát triển nhanh chóng trở thành một kho ngữ liệu khổng lồ. Các nhà nghiên cứu về hệ thống hỏi đáp cũng bắt đầu khai thác web như là một nguồn dữ liệu cho việc tìm kiếm câu trả lời. Các kĩ thuật mới đòi hỏi tốc độ cao, khả năng xử lý lượng dữ liệu web lớn đang rất được quan tâm. Tuy nhiên các nghiên cứu về xây dựng hệ thống hỏi đáp cho tiếng Việt vẫn còn rất nhiều hạn chế. Một trong những lý do chính là chúng ta còn thiếu các công cụ xử lý tiếng Việt, các tài nguyên ngôn ngữ học.

Phân loại câu hỏi [15] là pha đầu tiên trong kiến trúc chung của một hệ thống hỏi đáp, có nhiệm vụ tìm ra các thông tin cần thiết làm đầu vào cho quá trình xử lý của các pha sau (trích chọn tài liệu, trích xuất câu trả lời, v.v.). Vì vậy phân loại câu hỏi có vai trò hết sức quan trọng, ảnh hưởng trực tiếp đến hoạt động của toàn bộ hệ thống. Phân loại câu hỏi là việc gán các nhãn phân loại cho một câu hỏi dựa trên mức độ tương tự của câu hỏi đó so với các câu hỏi đã được gán nhãn trong tập huấn luyện. Phân loại câu hỏi nhận đầu vào là câu hỏi của người dùng dưới dạng ngôn ngữ tự nhiên, và đầu ra là nhãn phân loại của câu hỏi. Khi một câu hỏi được phân loại đúng thì việc tìm câu trả lời cho câu hỏi đó sẽ được chính xác hơn. Ví vụ với câu hỏi “Thành phố nào có diện tích lớn nhất Việt Nam?”, nếu chúng ta biết được kiểu câu trả lời là thành phố thì nó có thể giúp chúng ta giới hạn được các câu trả lời, thay vì việc phải đi kiểm tra các danh từ trong các tài liệu cung cấp câu trả lời.

Đồ án “Các đặc trưng ngôn ngữ cho bài toán phân loại câu hỏi tiếng Việt” thực hiện khảo sát, nghiên cứu các phương pháp xây dựng hệ thống hỏi đáp và phân loại câu hỏi đang được quan tâm hiện nay, từ đó đưa ra phương pháp phân loại câu hỏi phù hợp nhất cho hệ thống hỏi đáp tiếng Việt. Những nghiên cứu trong đồ án có thể coi là tiền đề cho các nghiên cứu tiếp theo để xây dựng một hệ thống hỏi đáp hoàn thiện cho tiếng Việt.

Hiện nay có nhiều phương pháp khác nhau để tiếp cận với bài toán phân loại câu hỏi, trong phạm vi đồ án này, chúng tôi thực hiện phân loại câu hỏi sử dụng cách tiếp cận học máy thống kê, cụ thể là sử dụng 3 thuật toán: Máy véc tơ hỗ trợ (SVM), Naïve Bayes (NB) và K-láng giềng gần nhất (KNN). Với thuật toán SVM, chúng tôi sử dụng công cụ libsvm [21] để tiến hành làm thực nghiệm, với các thuật toán còn lại, chúng tôi sử dụng công cụ Weka [22] để làm thực nghiệm. Các thuật toán được áp dụng làm thực nghiệm trên các đặc trưng ngôn ngữ tiếng Việt gồm có: đặc trưng từ vựng, đặc trưng âm tiết, n-grams, đặc trưng nhãn từ loại, và đặc trưng về cú pháp phụ thuộc của tiếng Việt. Các đặc trưng này sẽ được biểu diễn dưới dạng các vector đặc trưng, làm đầu vào cho các thuật toán. Kết quả thực nghiệm tốt nhất đạt được khi sử dụng thuật

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

toán SVM trên đặc trưng âm tiết 1+2 grams kết hợp với đặc trưng nhãn từ loại và đặc trưng cú pháp là 85.53%, với các thuật toán Naïve Bayes, K-láng giềng gần nhất, kết quả tốt nhất lần lượt là: 77.56%, 70.83%.

Đồ án được trình bày thành 3 chương như sau:CHƯƠNG 1: GIỚI THIỆU HỆ THỐNG HỎI ĐÁP VÀ BÀI TOÁN PHÂN

LOẠI CÂU HỎI

Nội dung của chương này giới thiệu tổng quan về hệ thống hỏi đáp tự động, bài toán phân loại câu hỏi và trình bày những đóng góp chính của đồ án.

CHƯƠNG 2: HỆ THỐNG PHÂN LOẠI CÂU HỎI TIẾNG VIỆT

Chương 2 trình bày một số phương pháp lấy đặc trưng ngôn ngữ tiếng Việt cho bài toán phân loại câu hỏi tiếng Việt và các thuật toán học máy thống kê được sử dụng để tiến hành thực nghiệm trên các đặc trưng đó.

CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ

Trong chương 3, đồ án trình bày chi tiết về quá trình làm thực nghiệm gồm có cách thu thập dữ liệu, cách xử lý dữ liệu, chi tiết từng bước làm thực nghiệm, đánh giá kết quả thực nghiệm.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 1: Giới thiệu

CHƯƠNG 1: GIỚI THIỆU HỆ THỐNG HỎI ĐÁP VÀ BÀI TOÁN PHÂN LOẠI CÂU HỎI

Trong chương 1, đồ án trình bày cái nhìn tổng quan về hệ thống hỏi đáp tự động, bao gồm các khái niệm cơ bản liên quan tới hệ thống hỏi đáp, phân loại hệ thống hỏi đáp và kiến trúc chung của một hệ thống hỏi đáp. Ngoài ra, chương 1 cũng giới thiệu về bài toán phân loại câu hỏi, các cách tiếp cận với bài toán phân loại câu hỏi và mô hình của các giai đoạn phân loại câu hỏi, các nghiên cứu liên quan và những đóng góp mà đồ án đã thực hiện được.

1.1 Giới thiệu hệ thống hỏi đáp tự động

Với nhu cầu trao đổi thông tin của con người ngày càng cao, thông tin tràn ngập trên mọi phương tiện truyền thông, đặc biệt là sự phát triển rộng rãi của mạng toàn cầu Internet, hằng ngày con người phải xử lý một lượng thông tin khổng lồ. Những thắc mắc của người dùng dưới dạng truy vấn sẽ được tìm kiếm và trả về một cách ngắn gọn, súc tích, chính xác nhất những gì mà họ mong muốn. Đó chính là mục tiêu của hệ thống hỏi đáp tự động. Rất nhiều hệ thống hỏi đáp thông tin qua mạng ra đời nhằm đáp ứng nhu cầu này.

Nghiên cứu về hệ thống hỏi đáp tự động [15] hiện đang thu hút sự quan tâm của rất nhiều các nhà nghiên cứu từ các trường đại học, các viện nghiên cứu và cả các doanh nghiệp lớn trong ngành công nghệ thông tin, có ý nghĩa khoa học lẫn ý nghĩa thực tế. Rất nhiều các hội nghị thường niên về khai phá dữ liệu, trích chọn thông tin dành một chủ đề riêng cho các nghiên cứu về hệ thống hỏi đáp như TREC [24], CLEF [25], v.v. Ngoài ra còn có các phần mềm thương mại liên quan đến QA cũng được phát triển như Yahoo Answers [26] của Yahoo, Google Question [27] của Google, Live QnA của Microsoft, v.v. và đặc biệt có hai phần mềm là Answers.com của Answer Corp đạt được 9.5 triệu đô la và Ask của InterActive Corp đạt được 227 triệu đô la mỗi năm [8].

Hệ thống hỏi đáp tự động (Question Answering - QA) là một hệ thống được xây dựng để thực hiện việc tìm kiếm câu trả lời cho một câu hỏi của người dùng từ một tập lớn các tài liệu một cách chính xác và ngắn gọn. Hệ thống hỏi đáp tự động liên quan đến 3 lĩnh vực lớn là xử lý ngôn ngữ tự nhiên (Natuaral Language Processing), tìm kiếm thông tin (Information Retrieval) và rút trích thông tin (Information Extraction). Hệ thống hỏi đáp nhận đầu vào là câu hỏi dưới dạng ngôn ngữ tự nhiên của người dùng và trả lại các đoạn văn bản ngắn chứa câu trả lời trực tiếp cho câu hỏi.

Bài toán xây dựng hệ thống hỏi đáp [15] là một bài toán khó thuộc lĩnh vực xử lý ngôn ngữ tự nhiên. Ngôn ngữ tự nhiên vốn nhập nhằng, đa nghĩa, việc xác định được ngữ nghĩa của câu hỏi cũng như phát hiện ra câu trả lời là một thách thức không nhỏ. Không những vậy, giữa câu hỏi và câu trả lời còn tồn tại các quan hệ “ngầm” hay phụ thuộc vào ngữ cảnh.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 1: Giới thiệu

Ví dụ câu hỏi: “Ai là tác giả Nhật ký trong tù?”

Câu trả lời mong đợi: “Hồ Chí Minh”.

Tuy nhiên hiện nay, đa phần các hệ thống hỏi đáp chỉ trả lời ở mức đưa ra các đoạn trích dẫn có chứa thông tin về câu trả lời như sau:

- “Hồ Chí Minh viết Nhật ký trong tù trong thời gian Người bị chính quyền Tưởng Giới Thạch bắt giam và giải đi khắp các nhà giam ở Quảng Tây, Trung Quốc.”

- “Nhật ký trong tù, dịch tiếng Hán – Ngục trung nhật ký là một tập thơ của Hồ Chí Minh,…”.

Hay câu hỏi “Mozart sinh năm nào?” và câu trả lời “…Mozart(1751 - 1791)…”

Để tìm được câu trả lời trên cho câu hỏi, hệ thống cần có cơ chế để biết được rằng “tác giả của một tập thơ là người viết tập thơ đó” hoặc cần học được các mẫu thường gặp của câu trả lời (các mẫu về ngày tháng năm sinh, về thời gian, địa chỉ v.v.) tương ứng với từng loại câu hỏi. Các hệ thống QA trên thế giới hiện nay sử dụng rất nhiều các công cụ xử lý ngôn ngữ như: Bộ gán nhãn từ loại (POS Tagger), bộ nhận dạng tên thực thể (Named Entity Recognizer), bộ phân tích ngữ pháp (Parser) v.v. và các tài nguyên ngôn ngữ như Wordnet, ontology để phân tích câu hỏi và trích xuất câu trả lời [15].

Có 2 loại hệ thống hỏi đáp:

- Hệ thống hỏi đáp lĩnh vực hẹp (Closed-domain Question Answering): hệ thống này liên quan đến các câu hỏi trong một lĩnh vực cụ thể, chẳng hạn như lĩnh vực y học, du lịch, kinh tế, thể thao, v.v.

- Hệ thống hỏi đáp lĩnh vực rộng (Open-domain Question Answering): hệ thống này liên quan đến các câu hỏi gần như là về tất cả mọi thứ.

Có nhiều phương pháp được đề xuất để xây dựng hệ thống hỏi đáp. Năm 1997, hệ thống trực tuyến START sử dụng một cơ sở dữ liệu để phân tích câu hỏi và đưa ra câu trả lời [4]. Hầu hết các hệ thống QA hiện đại sử dụng kĩ thuật trích xuất mối quan hệ ngữ nghĩa. Ví dụ, năm 2002 Ravichandran và Hovy đề xuất trích mối quan hệ ngữ nghĩa sử dụng máy tìm kiếm [5]. Năm 2009, Fahmi tăng độ bao phủ của các mối quan hệ bằng cách sử dụng học nửa giám sát để tự động tạo ra các mối quan hệ từ một tập lớn dữ liệu [1].

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 1: Giới thiệu

Kiến trúc hệ thống hỏi đáp:

Hình 1-1: Kiến trúc hệ thống hỏi đáp [12].

- Giao diện người dùng: cung cấp giao diện cho phép người dùng nhập câu hỏi vào. Các câu hỏi sau đó được gửi đi, hệ thống sẽ xử lý và trả về cho người dùng một câu trả lời dưới định dạng tương tự.

- Phân tích câu hỏi: câu hỏi được phân tích và xử lý để trích lọc càng nhiều thông tin càng tốt mà có thể được sử dụng sau này trong giai đoạn tìm kiếm dữ liệu.

- Tìm kiếm dữ liệu: một số thông tin đã được trích xuất trong giai đoạn phân tích câu hỏi sẽ được sử dụng để tìm kiếm thông tin trong cơ sở tri thức.

- Rút trích câu trả lời: rút trích câu trả lời thuộc lĩnh vực rút trích thông tin. Thông tin đã được trả về trong giai đoạn này có thể là các tài liệu hoặc các văn bản từ việc truy vấn cơ sở dữ liệu.

- Xếp hạng: nếu các kết quả của giai đoạn rút trích câu trả lời có nhiều hơn một câu trả lời thì các câu trả lời sẽ được xếp hạng dựa trên mức độ liên quan về mặt ngôn ngữ với câu hỏi của người dùng.

- Xác minh câu trả lời: một số hệ thống QA cải thiện tính chính xác bằng cách phân tích các câu trả lời thu được, qua việc sử dụng phương pháp xử lý ngôn ngữ tự nhiên bằng cách phân tích sâu hơn để xác minh lại câu hỏi. Các câu hỏi và câu trả lời được phân tích cú pháp và chuyển đổi sang cùng một hình

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 1: Giới thiệu

thức logic. Các câu hỏi và câu trả lời sau đó được so sánh với nhau để xác minh tính hợp lý của câu trả lời.

1.2 Bài toán phân loại câu hỏi

Phân loại câu hỏi đóng một vai trò quan trọng trong hệ thống trả lời câu hỏi. Trước khi tìm ra được câu trả lời cho câu hỏi, hệ thống cần phải xác định được câu hỏi đó thuộc loại nào, hỏi về cái gì. Ví dụ câu hỏi “Dân số Việt Nam là bao nhiêu?” là câu hỏi về “số lượng”, hay câu “Ai là tổng thống Mỹ?” là câu hỏi về “người”. Xác định được loại câu hỏi sẽ giúp thu hẹp được không gian tìm kiếm câu trả lời.

Bài toán phân loại câu hỏi thực chất có thể xem là bài toán phân lớp. Phân loại câu hỏi là việc gán các nhãn phân loại cho các câu hỏi dựa trên mức độ tương tự của câu hỏi đó so với các câu hỏi đã được gán nhãn trong tập huấn luyện. Nó ánh xạ một câu hỏi vào một chủ đề đã biết trong một tập hữu hạn các chủ đề dựa trên các đặc trưng của câu hỏi. Phân loại câu hỏi [15] nhận đầu vào là câu hỏi dưới dạng ngôn ngữ tự nhiên của người dùng, đưa ra nhãn phân loại cho câu hỏi đó, xem câu hỏi đó thuộc loại nào. Các câu hỏi có thể được phân vào các loại như địa điểm, số lượng, người, mô tả, khoảng cách, v.v. Ví dụ câu hỏi “Hồ Chí Minh là ai?” là câu hỏi thuộc loại Người, hay câu hỏi “Trường Học viện Công nghệ Bưu chính Viễn thông nằm ở đâu?” là câu hỏi thuộc loại Địa điểm.

Nhiều kĩ thuật máy học và khai phá dữ liệu đã được áp dụng vào bài toán phân loại câu hỏi như: cây quyết định (decision tree), NaiveBayes, K-láng giềng gần nhất (KNN), mạng nơron (neural network), v.v. Phân loại câu hỏi [14] thường gồm 2 giai đoạn: giai đoạn huấn luyện và giai đoạn phân lớp:

Giai đoạn huấn luyện:

Hình 1-2: Mô hình giai đoạn huấn luyện [14].

Giai đoạn huấn luyện nhận đầu vào là tập ngữ liệu huấn luyện gồm các câu hỏi đã được gán nhãn, sau khi xử lý tập ngữ liệu và áp dụng các thuật toán huấn luyện sẽ cho ra đầu ra là một mô hình phân loại.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

Ngữ liệu huấn luyện Tiền xử lý Vector hóa

Trích chọn đặc trưng

Thuật toán huấn luyện

Mô hình phân loại

ĐỒ ÁN TỐT NGHIỆP Chương 1: Giới thiệu

Giai đoạn phân lớp:

Hình 1-3: Mô hình giai đoạn phân lớp [14].

Giai đoạn phân lớp nhận đầu vào là câu hỏi của người dùng dưới dạng ngôn ngữ tự nhiên, sau quá trình xử lý và áp dụng mô hình phân loại sẽ cho ra nhãn phân loại của câu hỏi đầu vào.

1.3 Các nghiên cứu liên quan

Hiện nay đã có một số nghiên cứu về bài toán phân loại câu hỏi, đặc biệt là tiếng Anh như nghiên cứu của Zhiheng Huang và các cộng sự [3]. Nghiên cứu này sử dụng 5 đặc trưng gồm wh-word, head word, wordnet semantic, n-grams, word shape và sử dụng hai cách tiếp cận là Máy vector hỗ trợ (SVM) và Mô hình entropy cực đại (MEM) với kết quả đạt được lần lượt là 89.2% và 89.0%. Nghiên cứu của Dell Zhang và Wee Sun Lee [9] sử dụng hai đặc trưng là bag-of-word và n-grams. Nghiên cứu đã tiến hành thực nghiệm với 5 thuật toán gồm: Support Vector Machine (SVM), K-nearest neighbors (KNN), Naïve Bayes (NB), Decision Tree (DT), Sparse Network of Winnows (SNoW), và các thực nghiệm được thực hiện với các kích thước dữ liệu khác nhau. Với bộ dữ liệu 1000 câu hỏi, sử dụng đặc trưng từ vựng, độ chính xác của các thuật toán lần lượt là: KNN đạt được 70%, NB đạt 53.8%, DT đạt 78.8%, SnoW đạt 71.8% và SVM đạt 76.8%. Với bộ dữ liệu 3000 câu hỏi, độ chính xác của các thuật toán lần lượt là: KNN đạt 74.8%, NB đạt 74.2%, DT đạt 82%, SnoW đạt 74.2% và SVM đạt 87.4%. Khi áp dụng trên đặc trưng n-grams, với bộ dữ liệu 1000 câu hỏi, KNN đạt được độ chính xác 72%, NB đạt 73%, DT đạt 73.8%, SnoW đạt 59.8% và SVM đạt 77.6%. Với bộ dữ liệu 3000 câu hỏi, độ chính xác của KNN, NB, DT, SnoW và SVM lần lượt là: 79.8%, 80%, 83%, 80.6%, 84%. Hầu hết các thực nghiệm đều cho thấy kết quả phân loại sử dụng thuật toán SVM đạt được độ chính xác cao nhất.

Một số nghiên cứu về phân loại câu hỏi trong tiếng Việt như nghiên cứu của Trần Vũ Mai và các cộng sự [8], nghiên cứu này đã kết hợp hệ thống SnowBall và phương pháp trích xuất mối quan hệ ngữ nghĩa sử dụng máy tìm kiếm cho tập văn bản tiếng Việt. Thực nghiệm ban đầu của mô hình cho thấy hệ thống có thể trả lời chính xác được 89.1% câu hỏi của người dùng đưa vào và khả năng đưa ra câu trả lời là 91.4%. Nghiên cứu của Trần Hải Đăng và các cộng sự [7] đã sử dụng công cụ Weka để chạy các thuật toán học máy Cây quyết định (DT), Naïve Bayes (NB), Máy véc tơ hỗ trợ (SVM) với các đặc trưng được sử dụng là từ vựng và từ khóa. Với 6 lớp phân loại,

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

Câu hỏi Tiền xử lý Vector hóa

Trích chọn đặc trưng

Sử dụng mô hình phân lớp

Nhãn cho câu hỏi

ĐỒ ÁN TỐT NGHIỆP Chương 1: Giới thiệu

phương pháp cây quyết định đạt được độ chính xác là 86.2%, phương pháp Naïve Bayes đạt được độ chính xác là 87.4%, và độ chính xác của phương pháp SVM là 94.1%. Với 50 lớp phân loại, độ chính xác của phương pháp cây quyết định là 80.3%, phương pháp Naïve Bayes là 81.1%, và phương pháp SVM là 94%.

1.4 Đóng góp của đồ án

Đồ án có một số đóng góp cơ bản sau:

- Nghiên cứu về hệ thống hỏi đáp và bài toán phân loại câu hỏi với các đặc trưng từ vựng, âm tiết, n-grams, nhãn từ loại và cây cú pháp.

- Thực nghiệm đánh giá với một số phương pháp học máy gồm có Máy véc tơ hỗ trợ, Naïve Bayes và K-láng giềng gần nhất.

- Đồ án cung cấp dữ liệu về nhãn từ loại và cây cú pháp của 3000 câu hỏi tiếng Việt.

- Ngoài ra đồ án còn cung cấp bộ dữ liệu các câu truy vấn tiếng Việt được thu thập từ trang web google.com. Các câu truy vấn này được bổ sung vào 3000 câu hỏi tiếng Việt.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

CHƯƠNG 2: HỆ THỐNG PHÂN LOẠI CÂU HỎI TIẾNG VIỆT

1

2

Trong chương 2, đồ án trình bày một số phương pháp lấy đặc trưng cho phân loại câu hỏi tiếng Việt gồm có đặc trưng từ vựng, đặc trưng âm tiết, n-grams, đặc trưng nhãn từ loại, đặc trưng cú pháp. Ngoài ra, đồ án còn trình bày các thuật toán được sử dụng khi làm thực nghiệm gồm có Máy véc tơ hỗ trợ, Naïve Bayes và K-láng giềng gần nhất.

2.1 Vấn đề phân loại câu hỏi cho tiếng Việt

Chúng ta có một tập câu hỏi tiếng Việt, mục đích của chúng ta là phân loại cho các câu hỏi đó, xác định xem câu hỏi đó thuộc lĩnh vực nào như: số lượng, địa điểm, mô tả, v.v.

Đầu vào: câu hỏi tiếng Việt của người dùng

Đầu ra: nhãn phân loại cho câu hỏi của người dùng

Ví dụ: câu hỏi “Cầu thủ nào giành quả bóng vàng năm 2014?” sẽ có nhãn phân loại là Người. Hay câu “Sân vận động Bernabeu nằm ở đâu?” sẽ có nhãn phân loại là Địa điểm.

Chúng ta có mô hình phân loại câu hỏi:

Câu hỏi tiếng - Từ vựng - SVM Kiểu câu hỏi Việt - Âm tiết - NB

- n-grams - KNN - Nhãn từ loại - Cú pháp

Hình 2-1: Kiến trúc hệ thống phân loại câu hỏi tiếng Việt.

Hệ thống phân loại câu hỏi cho tiếng Việt gồm có 2 thành phần chính:

- Bộ trích chọn đặc trưng: trích xuất ra các đặc trưng từ câu hỏi của người dùng như đặc trưng từ vựng, đặc trưng âm tiết, n-grams, đặc trưng nhãn từ loại và đặc trưng cú pháp của câu hỏi, các đặc trưng này sẽ là đầu vào cho bộ phân loại câu hỏi.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

Đầu vào Trích chọn đặc trưng

Thuật toán học máy Đầu ra

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

- Bộ phân loại: có thể sử dụng các thuật toán khác nhau, trong phạm vi đồ án chúng tôi sử dụng 3 thuật toán học máy gồm: Máy véc tơ hỗ trợ (SVM), Naïve Bayes (NB) và K-láng giềng gần nhất (KNN).

2.2 Trích chọn đặc trưng

Trích chọn đặc trưng có ý nghĩa quan trọng, ảnh hưởng trực tiếp đến kết quả phân lớp. Các loại đặc trưng chính thường được sử dụng là tập từ (bag-of-word) và tập các từ/nhãn từ loại (bag-of-word/POS tag). Ngoài ra, trong phạm vi đồ án, chúng tôi còn sử dụng thêm các đặc trưng khác như n-grams, đặc trưng âm tiết (bag-of-syllable), đặc trưng về cú pháp phụ thuộc của câu (dependency feature).

2.2.1 Từ vựng

Với đặc trưng từ vựng, một câu sẽ được biểu diễn dưới dạng một tập các từ riêng biệt, không quan tâm tới ngữ pháp hay thứ tự của các từ trong câu, chỉ giữ lại số lần xuất hiện của từ trong câu.

Không giống như tiếng Anh, mỗi một âm tiết là một từ và được viết cách nhau bởi một khoảng trắng. Với tiếng Việt, một từ có thể được viết bởi một hoặc nhiều âm tiết, do đó không thể dùng khoảng trắng làm ranh giới phân cách các từ. Ví dụ trong tiếng anh chúng ta có từ mobile, khi dịch ra tiếng Việt mobile có nghĩa là điện thoại, được tạo thành từ 2 âm tiết là điện và thoại. Vì vậy để xác định được các từ tiếng Việt, chúng ta phải sử dụng một công cụ tách từ hiệu quả cho tiếng Việt, và trong đồ án chúng tôi sử dụng công cụ tách từ vnTokenizer [19].

Ví dụ với 2 câu:

Câu 1: Trong hai thành phố Hà Nội và Bắc Ninh, thành phố nào có diện tích lớn hơn?

Câu 2: Hà Nội là thành phố có diện tích lớn nhất Việt Nam phải không?

Khi tách từ chúng ta có:

Câu 1: Trong hai thành_phố Hà_Nội và Bắc_Ninh, thành_phố nào có diện_ tích lớn hơn ?

Câu 2: Hà_Nội là thành_phố có diện_tích lớn nhất Việt_ Nam phải không ?

Biểu diễn đặc trưng:

- Xây dựng từ điển: {

1 : Trong, 2 : hai, 3 : thành_phố, 4 : Hà_Nội, 5 : và, 6 : Bắc_Ninh, 7 : nào, 8 : có, 9 : diện_tích, 10 : lớn, 11 : hơn, 12 : là, 13 : nhất, 14 : Việt_Nam, 15 : phải, 16 : không

}

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

- Biểu diễn 2 câu trên dưới dạng vector đặc trưng, mỗi phần tử của vector có dạng: <vị trí của từ trong từ điển> : <số lần xuất hiện của từ trong câu>, dựa vào chỉ số trong từ điển ta có 2 vector:

Câu 1: [1:1, 2:1, 3:2, 4:1, 5:1, 6:1, 7:1, 8:1, 9:1, 10:1, 11:1, 12:0, 13:0, 14:0, 15:0, 16:0]Câu 2: [1:0, 2:0, 3:1, 4:1, 5:0, 6:0, 7:0, 8:1, 9:1, 10:1, 11:0, 12:1, 13:1, 14:1, 15:1, 16:1]

Trong câu 1, từ “Trong” xuất hiện một lần trong câu, và nó có vị trí thứ 1 trong từ điển nên được biểu diễn là “1:1”, từ “thành_phố” xuất hiện 2 lần trong câu, và có vị trí thứ 3 trong từ điển nên được biểu diễn là “3:2”, các từ khác cũng được biểu diễn tương tự theo cách như vậy. Vector biểu diễn các từ không theo trật tự xuất hiện của từ trong câu, mà theo trật tự từ điển.

2.2.2 Âm tiết

Âm tiết là đơn vị cấu tạo nên từ, ví dụ từ thành phố được tạo ra bằng cách kết hợp hai âm tiết thành và phố. Trong tiếng Việt, hai âm tiết được viết cách nhau bởi một khoảng cách, nên việc thu thập đặc trưng âm tiết được thực hiện bằng một chương trình Java, phân tách các âm tiết theo khoảng trắng. Các âm tiết được thu thập không cần quan tâm đến thứ tự âm tiết trong câu và ràng buộc ngữ pháp, chúng ta chỉ quan tâm tới số lần xuất hiện của mỗi âm tiết trong một câu hỏi.

Ví dụ với câu hỏi: Trong hai thành phố Hà Nội và Bắc Ninh, thành phố nào có diện tích lớn hơn?

Các âm tiết xuất hiện trong câu là: {“Trong”, “hai”, “thành”, “phố”, “Hà”, “Nội”, “và”, “Bắc”, “Ninh”, “nào” , “có”, “diện”, “tích”, “lớn”, “hơn”}

Biểu diễn đặc trưng âm tiết tương tự với cách biểu diễn từ vựng:

- Từ điển: {

1 : Trong, 2 : hai, 3 : thành, 4 : phố, 5 : Hà, 6 : Nội, 7 : và, 8 : Bắc, 9 : Ninh, 10 : nào, 11 : có, 12 : diện, 13 : tích, 14 : lớn, 15 : hơn

}

- Biểu diễn câu hỏi dưới dạng vector đặc trưng: [1 : 1, 2 : 1, 3 : 2, 4 : 2, 5 : 1, 6 : 1, 7 : 1, 8 : 1, 9 : 1, 10 : 1, 11 : 1, 12 : 1, 13 : 1, 14 : 1, 15 : 1]

Do âm tiết “thành” và âm tiết “phố” có vị trí trong từ điển lần lượt là 3 và 4, và chúng đều xuất hiện hai lần trong câu, nên biểu diễn của hai âm tiết đó lần lượt là: 3:2 và 4:2, các âm tiết khác cũng được biểu diễn theo cách tương tự.

2.2.3 N-grams

Một cụm n-grams là một dãy con gồm n-yếu tố liên tiếp nhau của một dãy các yếu tố cho trước. Yếu tố ở đây có thể là âm tiết, chữ cái hoặc từ vựng v.v. Nhãn từ loại

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

và các n-grams thường được thu thập từ một văn bản hoặc lời nói. Số phần tử trong một n-grams được gọi là bậc của n-grams, thông thường n-grams có bậc từ 1 tới 4. N-gram bậc 1 được gọi là unigram, bậc 2 được gọi là bigram, bậc 3 được gọi là trigram, bậc 4 được gọi là quadrigram,v.v. N-grams được dùng để ước lượng xác suất xuất hiện của một yếu tố dựa vào các yếu tố xung quanh nó trong câu. Do đó, n-grams có thể áp dụng cho các hệ thống tách từ, gán nhãn từ loại, phát hiện lỗi chú giải từ loại, v.v.

Ví dụ:

n-grams với âm tiết:

Câu: Trong hai thành phố Hà Nội và Bắc Ninh, thành phố nào có diện tích lớn hơn?

- 1 gram: trong, hai, thành, phố, Hà, Nội, và, Bắc, Ninh, thành, phố, nào, có, diện, tích, lớn, hơn.

- 2 grams: trong hai, hai thành, thành phố, phố Hà, Hà Nội, Nội và, và Bắc, Bắc Ninh, Ninh thành, thành phố, phố nào, nào có, có diện, diện tích, tích lớn, lớn hơn.

- 3 grams: trong hai thành, hai thành phố, thành phố Hà, phố Hà Nội, Hà Nội và, Nội và Bắc, và Bắc Ninh, Bắc Ninh thành, Ninh thành phố, thành phố nào, phố nào có, nào có diện, có diện tích, diện tích lớn, tích lớn hơn.

n-grams với từ vựng:

Câu: Trong hai thành_phố Hà_Nội và Bắc_Ninh, thành_phố nào có diện_ tích lớn hơn ?

- 1 gram: trong, hai, thành_phố, Hà_Nội, và, Bắc_Ninh, thành_phố, nào, có, diện_tích, lớn hơn.

- 2 grams: trong hai, hai thành_phố, thành_phố Hà_Nội, Hà_Nội và, và Bắc_Ninh, Bắc_Ninh thành_phố, thành_phố nào, nào có, có diện_tích, diện_tích lớn, lớn hơn.

- 3 grams: trong hai thành_phố, hai thành_phố Hà_Nội, thành_phố Hà_Nội và, Hà_Nội và Bắc_Ninh, và Bắc_Ninh thành_phố, Bắc_Ninh thành_phố nào, thành_phố nào có, nào có diện_tích, có diện_tích lớn, diện_tích lớn hơn.

2.2.4 Nhãn từ loạiNhãn từ loại là một loại đặc trưng cú pháp, nó xác định một từ là từ loại gì. Các

từ có cùng nhãn sẽ có hành vi tương tự nhau về mặt cú pháp, chúng đóng vai trò tương tự nhau trong cấu trúc ngữ pháp của câu.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

Tập nhãn từ loại gồm 18 nhãn:

Bảng 2-1: Tập nhãn từ loại [20]

STT Tên Chú thích

1 N – Common noun Danh từ

2 Np – Proper noun Danh từ riêng

3 Nc – Classifier Danh từ chỉ loại

4 Nu – Unit noun Danh từ đơn vị

5 V – Verb Động từ

6 A – Adjective Tính từ

7 R – Adverb Trạng từ

8 P – Pronoun Đại từ

9 L – Determiner Định từ

10 M – Numeral Số từ

11 E – Preposition Giới từ

12 C – Subordinating conjunction Liên từ tương hợp

13 CC – Coordinating conjunction Liên từ kết hợp

14 I – Interjection Thán từ

15 T – Auxiliary, modal words Trợ từ, tiều từ, từ hính thái

16 Z – Bound morphemes Hình vị ràng buộc

17 Y – Abbreviation Từ viết tắt

18 X - Unknown Các từ không phân loại được

Để có được nhãn từ loại, chúng tôi sử dụng công vụ gán nhãn từ loại vnTagger [20].

Ví dụ: Trong hai thành phố Hà Nội và Bắc Ninh, thành phố nào có diện tích lớn hơn?

Khi gán nhãn từ loại ta được:

Trong/E hai/M thành_phố/N Hà_Nội/Np và/CC Bắc_Ninh/Np ,/, thành_phố/N nào/P có/V diện_tích/N lớn/A hơn/R

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

Từ đó ta có được tập nhãn từ loại: {E, M, N, Np, CC, Np, N, P, V, N, A, R}

Sau khi có được nhãn từ loại của tất cả các từ trong câu hỏi, chúng ta cũng biểu diễn đặc trưng nhãn từ loại theo cách tương tự như biểu diễn từ vựng. Đầu tiên xây dựng từ điển gồm tập tất cả các nhãn từ loại xuất hiện trong câu, sau đó biểu diễn các nhãn từ loại dưới dạng vector đặc trưng. Cách tiếp cận này đã đạt được kết quả khá tốt khi áp dụng cho tiếng Anh.

2.2.5 Cây cú pháp

Phân tích cú pháp [2] là bước xử lý quan trọng trong các bài toán hiểu ngôn ngữ tự nhiên. Nó cung cấp một nền tảng vững chắc cho việc xử lý văn bản thông minh như các hệ thống hỏi đáp, khai phá văn bản và dịch máy.

Trong bài toán phân loại câu hỏi, việc phân tích cú pháp là rất quan trọng, do một câu hỏi thường tương đối ngắn và chứa ít thông tin dựa trên từ vựng. Ngoài ra, một câu hỏi ngắn sẽ cần phải phân tích sâu hơn để có thể tìm ra được ngữ nghĩa ẩn của nó. Và việc phân loại câu hỏi sẽ đạt độ chính xác cao hơn nếu ý nghĩa của câu hỏi được xác định.

Một câu hỏi có thể được biểu diễn cú pháp theo hai kiểu [2]: cấu trúc thành phần và cấu trúc phụ thuộc. Trong khi cấu trúc cú pháp thành phần trình bày một tập các thành phần đa từ thì cấu trúc phụ thuộc cú pháp cho thấy sự hiện diện của một từ phụ thuộc vào từ cha của nó. Trong phân tích cú pháp phụ thuộc, nhãn cú pháp sẽ được thêm vào các phụ thuộc để đánh dấu mối quan hệ ngữ pháp của chúng, việc này rất hữu ích trong việc phân tích sự phụ thuộc ngữ nghĩa.

Tập nhãn cú pháp [13] gồm 2 loại: Nhãn thành phần cú pháp và nhãn chức năng cú pháp. Nhãn thành phần cú pháp mô tả các thành phần cú pháp cơ bản là cụm từ và mệnh đề. Nhãn thành phần cú pháp là thông tin cơ bản nhất trên cây cú pháp, nó tạo thành xương sống của cây cú pháp. Nhãn chức năng của một thành phần cú pháp cho biết vai trò của nó trong thành phần cú pháp mức cao hơn. Nhãn chức năng cú pháp được gán cho các thành phần chính trong câu như chủ ngữ, vị ngữ, tân ngữ. Nhờ thông tin do nhãn chức năng cung cấp ta có thể xác định các loại quan hệ ngữ pháp cơ bản như: chủ-vị, bổ ngữ, phụ ngữ, sự kết hợp, đề-thuyết.

Bảng 2-2: Nhãn thành phần cú pháp [13]

STT Tên Chú thích

1 NP Cụm danh từ

2 VP Cụm động từ

3 AP Cụm tính từ

4 RP Cụm phụ từ

5 PP Cụm giới từ

6 QP Cụm từ chỉ số lượng

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

7 MDP Cụm từ tình thái

8 WHNP Cụm danh từ nghi vấn (ai, cái gì, con gì, v.v.)

9 WHAP Cụm tính từ nghi vấn (lạnh thế nào, đẹp ra sao, v.v.)

10 WHRP Cụm từ nghi vấn dùng khi hỏi về thời gian, nơi chốn, v.v.

11 WHPP Cụm giới từ nghi vấn (với ai, bằng cách nào, v.v.)

12 S Câu trần thuật (khẳng định hoặc phủ định)

13 SQ Câu hỏi

14 SBAR Mệnh đề phụ (bổ nghĩa cho danh từ, động từ, và tính từ)

Bảng 2-3: Nhãn chức năng cú pháp [13]

STT Tên Chú thích

1 SUB Nhãn chức năng chủ ngữ

2 DOB Nhãn chức năng tân ngữ trực tiếp

3 IOB Nhãn chức năng tân ngữ gián tiếp

4 TPC Nhãn chức năng chủ đề

5 PRD Nhãn chức năng vị ngữ không phải cụm động từ

6 LGS Nhãn chức năng chủ ngữ logic của câu ở thể bị động

7 EXT Nhãn chức năng bổ ngữ chỉ phạm vi hay tần suất của hành động

8 H Nhãn phần tử trung tâm (của cụm từ hoặc mệnh đề)

9 – 12 TC, CMD, EXC, SPL

Nhãn phân loại câu: đề thuyết, mệnh lệnh, cảm thán, đặc biệt

13 TTL Tít báo hay tiêu đề

14 VOC Thành phần hô cách

15 TMP Nhãn chức năng trạng ngữ chỉ thời gian

16 LOC Nhãn chức năng trạng ngữ chỉ nơi chốn

17 DIR Nhãn chức năng trạng ngữ chỉ hướng

18 MNR Nhãn chức năng trạng ngữ chỉ cách thức

19 PRP Nhãn chức năng trạng ngữ chỉ mục đích hay lí do

20 ADV Nhãn chức năng trạng ngữ nói chung

Ví dụ phân tích phụ thuộc một câu tiếng Việt:

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

Hình 2-2: Phân tích phụ thuộc của một câu tiếng Việt [2].

Trong đồ án, chúng tôi sử dụng công cụ VnDP [23] (A Vietnamese dependency parsing toolkit) để chuyển định dạng các câu hỏi về dạng cây cú pháp phụ thuộc.

Ví dụ chúng ta có 2 câu:

Câu 1: Trong hai thành phố Hà Nội và Bắc Ninh, thành phố nào có diện tích lớn hơn?

Câu 2: Hà Nội là thành phố có diện tích lớn nhất Việt Nam phải không?

Biểu diễn cây cú pháp:

1 Trong Trong E E - 10 loc - -2 hai hai M M - 3 det - -3 thành_phố thành_phố N N - 1 pob - -4 Hà_Nội Hà_Nội N N - 3 nmod - -5 và và C C - 4 coord - -6 Bắc_Ninh Bắc_Ninh N N - 5 conj - -7 , , , , - 6 punct - -8 thành_phố thành_phố N N - 10 sub - -9 nào nào P P - 8 nmod - -10 có có V V - 0 root - -11 diện_tích diện_tích N N - 10 dob - -12 lớn lớn A A - 11 nmod - -13 hơn hơn A A - 12 amod - -

1 Hà_Nội Hà_Nội N N - 2 sub - -2 là là V V - 0 root - -3 thành_phố thành_phố N N - 2 dob - -4 có có V V - 2 vmod - -5 diện_tích diện_tích N N - 4 dob - -6 lớn lớn A A - 5 nmod - -7 nhất nhất R R - 6 amod - -8 Việt_Nam Việt_Nam N N - 9 sub - -9 phải phải A A - 2 dep - -10 không không R R - 9 amod - -

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

Sau khi có biểu diễn cây cú pháp, chúng ta trích rút đặc trưng root và child, mỗi một câu chỉ có một root duy nhất, và mỗi root có thể có nhiều child:

Câu 1: root = “có”child = “trong” child = “thành phố” child = “diện tích”

Câu 2: root = “là”child = “Hà_Nội” child = “thành_phố” child = “có” child = “đẹp”

Từ tập đặc trưng của cây cú pháp, chúng ta cũng xây dựng tập từ điển chứa các đặc trưng đó và biểu diễn các đặc trưng dưới dạng vector đặc trưng tương tự như các loại đặc trưng khác.

2.3 Các thuật toán học máyCó nhiều thuật toán khác nhau cho phân lớp như Naïve Bayes, K-láng giềng gần

nhất, cây quyết định (Decision Tree), Máy véc tơ hỗ trợ (Support Vector Machine), Mạng lọc thưa (Sparse Network of Winnows - SNoW), Mô hình Entropy cực đại, v.v. Tuy nhiên phần tiếp theo của đồ án, chúng tôi chỉ trình bày 3 thuật toán là Máy véc tơ hỗ trợ, Naïve Bayes và K-láng giềng gần nhất, đây là các thuật toán được sử dụng nhiều trong phân loại câu hỏi và cũng sẽ được sử dụng trong phần thực nghiệm ở chương 3.

2.3.1 Máy véc tơ hỗ trợ (Support Vector Machine)Support Vector Machine [17] viết tắt là SVM, là một phương pháp trong thống

kê và khoa học máy tính cho một tập hợp các phương pháp học có giám sát liên quan đến nhau để phân loại và phân tích hồi quy. SVM dạng chuẩn nhận dữ liệu vào và phân loại chúng vào 2 lớp khác nhau.

a) Ý tưởngCho trước một tập huấn luyện, được biểu diễn trong không gian vector, trong đó

mỗi tài liệu là một điểm, phương pháp này tìm ra một siêu phẳng quyết định tốt nhất có thể chia các điểm trên không gian này thành hai lớp riêng biệt tương ứng là lớp + và lớp -. Chất lượng của siêu phẳng này được quyết định bởi khoảng cách (gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khi đó, khoảng cách biên càng lớn thì mặt phẳng quyết định càng tốt, đồng thời việc phân loại càng chính xác.

Mục đích của phương pháp SVM là tìm được khoảng cách biên lớn nhất, điều này được minh họa như sau:

Hình 2-3: Siêu phẳng phân chia dữ liệu học thành 2 lớp + và – với khoảng cách biên lớn nhất [17].

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

b) Cơ sở lý thuyết

SVM thực chất là một bài toán tối ưu, mục tiêu của thuật toán này là tìm được một không gian F và siêu phẳng quyết định f trên F sao cho sai số phân loại là thấp nhất.

Cho tập mẫu (x1, y1), (x2, y2), … (xf, yf)} với xi ∈ Rn, thuộc vào hai lớp nhãn: yi ∈ {-1,1} là nhãn lớp tương ứng của các xi (-1 biểu thị lớp I, 1 biểu thị lớp II).

Ta có, phương trình siêu phẳng chứa vectơ x⃑ i trong không gian: x⃗ i . w⃗+b=0

Đặt f ( X⃗ i )=sign ( x⃗ i . w⃗+b )={+1 , x⃗ i . w⃗+b>0−1 , x⃗ i . w⃗+b<0

Như vậy, f(Xi) biểu diễn sự phân lớp của Xi vào hai lớp như đã nêu. Ta nói yi = +1 nếu Xi thuộc lớp I và yi = -1 nếu Xi thuộc lớp II. Khi đó, để có siêu phẳng f ta sẽ phải giải bài toán sau: Tìm min w với W thỏa mãn điều kiện sau:

y i (sin ( x⃗ i . w⃗+b ))≥ 1 với∀ i∈ 1⃗, n

Bài toán SVM có thể giải bằng kỹ thuật sử dụng toán tử Lagrange để biến đổi về thành dạng đẳng thức. Một đặc điểm thú vị của SVM là mặt phẳng quyết định chỉ phụ

thuộc các Support Vector và nó có khoảng cách đến mặt phẳng quyết định là 1¿∨w∨¿ .

Cho dù các điểm khác bị xóa đi thì thuật toán vẫn cho kết quả giống như ban đầu. Đây chính là điểm nổi bật của phương pháp SVM so với các phương pháp khác vì tất cả các dữ liệu trong tập huấn luyện đều được dùng để tối ưu hóa kết quả.

Bài toán phân 2 lớp với SVM

Bài toán đặt ra là: Xác định hàm phân lớp để phân lớp các mẫu trong tương lai, nghĩa là với một mẫu dữ liệu mới xi thì cần phải xác định xi được phân vào lớp +1 hay lớp -1

Hình 2-4: Minh họa bài toán phân 2 lớp bằng phương pháp SVM [17].

Để xác định hàm phân lớp dựa trên phương pháp SVM, ta sẽ tiến hành tìm hai siêu phẳng song song sao cho khoảng cách y giữa chúng là lớn nhất có thể để phân

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

tách hai lớp này ra làm hai phía. Hàm phân tách tương ứng với phương trình siêu phẳng nằm giữa hai siêu phẳng tìm được.

Các điểm mà nằm trên hai siêu phẳng phân tách được gọi là các Support Vector. Các điểm này sẽ quyết định đến hàm phân tách dữ liệu.

Bài toán nhiều phân lớp với SVM

Để phân nhiều lớp thì kỹ thuật SVM nguyên thủy sẽ chia không gian dữ liệu thành 2 phần và quá trình này lặp lại nhiều lần. Khi đó hàm quyết định phân dữ liệu vào lớp thứ i của tập n, 2-lớp sẽ là:

f i ( x )=wii x+b i

Những phần tử x là support vector sẽ thỏa điều kiện:

f i ( x )={ +1 nếu thuộc lớpi−1 nếu thuộc phần còn lại

Như vậy, bài toán phân nhiều lớp sử dụng phương pháp SVM hoàn toàn có thể thực hiện giống như bài toán 2 lớp. Bằng cách sử dụng cách thức “một - đối - một”.

Giả sử bài toán cần phân loại có k lớp (k > 2), chiến lược "một-đối-một”sẽ tiến

hành k (k−1)2

lần phân lớp nhị phân sử dụng phương pháp SVM. Mỗi lớp sẽ tiến hành

phân tách với k-1 lớp còn lại để xác định k-1 hàm phân tách dựa vào bài toán phân hai lớp bằng phương pháp SVM.

c) Các bước chính của phương pháp SVM

Phương pháp SVM yêu cầu dữ liệu được biểu diễn như các vector của các số thực. Như vậy nếu đầu vào chưa phải là số thì ta cần phải tìm cách chuyển chúng về dạng số của SVM.

Tiền xử lý dữ liệu: Thực hiện biến đổi dữ liệu phù hợp cho quá trình tính toán, tránh các số quá lớn mô tả các thuộc tính. Thường nên co giãn (scaling) dữ liệu để chuyển về đoạn [-1, 1] hoặc [0, 1].

Chọn hàm hạt nhân: Lựa chọn hàm hạt nhân phù hợp tương ứng cho từng bài toán cụ thể để đạt được độ chính xác cao trong quá trình phân lớp.

Thực hiện việc kiểm tra chéo để xác định các tham số cho ứng đụng. Điều này cũng quyết định đến tính chính xác của quá trình phân lớp.

Sử dụng các tham số cho việc huấn luyện với tập mẫu. Trong quá trình huấn luyện sẽ sử dụng thuật toán tối ưu hóa khoảng cách giữa các siêu phẳng trong quá trình phân lớp, xác định hàm phân lớp trong không gian đặc trưng nhờ việc ánh xạ dữ liệu vào không gian đặc trưng bằng cách mô tả hạt nhân, giải quyết cho cả hai trường hợp dữ liệu là phân tách và không phân tách tuyến tính trong không gian đặc trưng.

Kiểm thử tập dữ liệu Test.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

2.3.2 Naïve Bayes

a) Giới thiệu

Naïve Bayes (NB) [17] là phương pháp phân loại có giám sát dựa vào xác suất được sử dụng rộng rãi trong lĩnh vực máy học [Mitchell, 1996] [Joachims, 1997] [Jason, 2001], được sử dụng lần đầu tiên trong lĩnh vực phân loại bởi Maron vào năm 1961 [Maron, 1961] sau đó trở nên phổ biến dùng trong nhiều lĩnh vực như trong các công cụ tìm kiếm [Rijsbergen et al, 1970], các bộ lọc email [Sahami et al, 1998] v.v.

b) Cơ sở lý thuyếtThuật toán Naïve Bayes dựa trên định lý Bayes được phát biểu như sau:

P (Y|X )= P( XY )P( X)

=P (X∨Y ) P(Y )

P( X)

Áp dụng trong bài toán phân loại, các dữ kiện gồm có:

- D: tập dữ liệu huấn luyện đã được vector hóa dưới dạng x⃗=(x1 , x2, …, xn).

- Ci: phân lớp i, với i = {1,2,…,m}.

- Các thuộc tính độc lập điều kiện đôi một với nhau.

Theo định lý Bayes:

P (Ci|X )=P(X∨Ci)P(Ci)

P(X )

Theo tính chất độc lập điều kiện:

P ( X|C i )=∏k=1

n

P ( xk|C i )

Trong đó:

- P(C i∨X ) là xác suất thuộc phân lớp i khi biết trước mẫu X.

- P(C i) xác suất là phân lớp i.

- P(xk∨C i) xác suất thuộc tính thứ k mang giá trị xk khi đã biết X thuộc phân lớp i.

Các bước thực hiện thuật toán Naïve Bayes:

Bước 1: Huấn luyện Naïve Bayes (dựa vào tập dữ liệu), tính P(C i) và P(xk∨C i).

Bước 2: Phân lớp X new=(x1 , x2 , …, xn), ta cần tính xác suất thuộc từng phân lớp khi đã biết trước Xnew. Xnew được gán vào lớp có xác suất lớn nhất theo công thức:

maxC i∈C (P(C i)∏

k=1

n

P ( xk|Ci ))

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

c) Áp dụng cho bài toán phân loại câu hỏi

Ý tưởng: Ý tưởng cơ bản của cách tiếp cận Naïve Bayes là sử dụng xác suất có điều kiện

giữa từ và chủ đề để dự đoán xác suất chủ đề của một câu hỏi cần phân loại. Điểm quan trọng của phương pháp này chính là ở chỗ giả định rằng sự xuất hiện của tất cả các từ trong câu hỏi đều độc lập với nhau. Giả định đó làm cho việc tính toán NB hiệu quả và nhanh chóng hơn các phương pháp khác vì không sử dụng việc kết hợp các từ để đưa ra phán đoán chủ đề. Kết quả dự đoán bị ảnh hưởng bởi kích thước tập dữ liệu, chất lượng của không gian đặc trưng.

Hướng dẫn cài đặt:Mô tả vector đặc trưng của văn bản: là vector có số chiều là số đặc trưng trong

toàn tập dữ liệu, các đặc trưng này đôi một khác nhau. Nếu văn bản có chứa đặc trưng đó sẽ có giá trị 1, ngược lại là 0.

Thuật toán gồm 2 giai đoạn huấn luyện và phân lớp:

Huấn luyện: tính P(C i) và P(xk∨C i)

Đầu vào:

- Các vector đặc trưng của văn bản trong tập huấn luyện (Ma trận MxN, với M là số vector đặc trưng trong tập huấn luyện, N là số đặc trưng của vector).

- Tập nhãn/lớp cho từng vector đặc trưng của tập huấn luyện.

Đầu ra:

- Các giá trị xác suất P(C i) và P(xk∨C i).

Công thức tính P(C i) đã làm trơn Laplace:

P (Ci )=|docsi|+1

|totaldocs|+m

Trong đó:

- |docsi|: số văn bản của tập huấn luyện thuộc phân lớp i.

- |total docs|: số văn bản trong tập huấn luyện.

- M: số phân lớp

Cài đặt:- Khởi tạo mảng A, B có kích thước m.

- Duyệt qua các văn bản trong tập dữ liệu, đếm số văn bản trong mỗi phân lớp lưu vào A.

- Tính xác suất cho từng phân lớp theo công thức trên và lưu vào mảng B.

Công thức tính P(xk∨C i) đã làm trơn Laplace:

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

P ( xk|Ci )=|docsx k i|+1

|docs i|+dk

Trong đó:- |docs xk i|: Số văn bản trong trong phân lớp i có đặc trưng thứ k mang giá trị xk.

(hay số văn bản trong lớp i, có xuất hiện/không xuất hiện đặc trưng k)

- |docs i|: Số văn bản của tập huấn luyện thuộc phân lớp i.

- dk : Số giá trị có thể có của đặc trưng thứ k

Cài đặt:- Với vector đặc trưng như mô tả bên trên, dk ở đây mang giá trị là 2, tương ứng

với xuất hiện và không xuất hiện. Do chỉ có 2 giá trị, ta có thể tính nhanh xác suất không xuất hiện theo công thức P ( x )=1−P ( x ).

- Khởi tạo mảng 3 chiều C, chiều 1 có kích thước là m (số phân lớp), chiều 2 có kích thước là N (số đặc trưng), chiều 3 có kích là 2 (dk) để lưu các giá trị P(xk∨C i).

- Duyệt qua các văn bản trong tập dữ liệu, tiến hành thống kê các chỉ số cần thiết để tính xác suất P ( xk|Ci ) theo công thức trên và lưu vào mảng C.

Phân lớp

Đầu vào:

- Vector đặc trưng của văn bản cần phân lớp

- Các giá trị xác suất tính P(C i) và P(xk∨C i).

Đầu ra:

- Giá trị xác suất thuộc phân lớp I khi biết trước mẫu X

Dựa vào vector đặc trưng của văn bản cần phân lớp, áp dụng công thức trên tính xác suất thuộc từng phân lớp cho văn bản, và chọn ra lớp có xác suất cao nhất.

2.3.3 K láng giềng gần nhất (K-nearest neighbors)

a) Giới thiệu

K-Nearest Neighbors (KNN) [17] được sử dụng rất phổ biến trong lĩnh vực Data Mining. KNN là phương pháp để phân lớp các đối tượng dựa vào khoảng cách gần nhất giữa đối tượng cần xếp lớp với tất cả các đối tượng trong Training Data.

Một đối tượng được phân lớp dựa vào k láng giềng của nó. K là số nguyên dương được xác định trước khi thực hiện thuật toán. Người ta thường dùng khoảng cách Euclide để tính khoảng cách giữa các đối tượng.

b) Cơ sở lý thuyết

Bộ phân lớp dựa trên thuật toán K người láng giềng gần nhất là một bộ phân lớp dựa trên bộ nhớ, đơn giản vì nó được xây dựng bằng cách lưu trữ tất cả các đối tượng

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

trong tập huấn luyện. Để phân lớp cho một điểm dữ liệu mới x, trước hết bộ phân lớp sẽ tính khoảng cách từ điểm dữ liệu trong tập huấn luyện. Qua đó tìm được tập N(x, D, k) gồm k điểm dữ liệu mẫu có khoảng cách đến x là gần nhất.

Ví dụ nếu các dữ liệu mẫu được biểu diễn bởi không gian vector thì chúng ta có thể sử dụng khoảng cách Euclide để tính khoảng cách giữa các điểm dữ liệu với nhau. Sau khi xác định được tập N(x, D, k), bộ phân lớp sẽ gán nhãn cho điểm dữ liệu x bằng lớp chiếm đại đa số trong tập N(x, D, k). Mặc dù rất đơn giản, nhưng thuật toán K người láng giềng gần nhất đã cho kết quả tốt trong nhiều ứng dụng thực tế.

Để áp dụng thuật toán K người láng giềng vào tài liệu văn bản, chúng ta sử dụng hàm tính trọng số cho mỗi lớp theo biểu thức:

Score (c|x )= ∑x '∈Nc (x , D, k)

cos (x , x ')

Trong đó Nc(x, D, k) là tập con chỉ chứa các đối tượng thuộc lớp c của tập N(x, D, k).

Khi đó tài liệu x sẽ được phân vào lớp c0 nếu:

score (c0|x )=Max {score (c∨x ) , c∈C }

Phương pháp K người láng giềng gần nhất là một phương pháp đơn giản. Tuy nhiên, thuật toán này ổn định và sai sót thấp khi số văn bản trong tập văn bản láng giềng phải lớn.

c) Mô tả thuật toán

- Xác định giá trị tham số K (số láng giềng gần nhất).

- Tính khoảng cách giữa đối tượng cần phân lớp với tất cả các đối tượng trong training data (thường sử dụng khoảng cách Euclide, Cosine…).

- Sắp xếp khoảng cách theo thứ tự tăng dần và xác định k láng giềng gần nhất với đối tượng cần phần lớp.

- Lấy tất cả các lớp của k láng giềng gần nhất đã xác định.

Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp cho đối tượng

d) Áp dụng cho bài toán phân loại câu hỏi

Ý tưởng:

Khi cần phân loại một câu hỏi mới, thuật toán sẽ tính khoảng cách (khoảng cách Euclide, Cosine…) của tất cả các câu hỏi trong tập huấn luyện đến câu hỏi này để tìm ra k câu hỏi gần nhất (gọi là k “láng giềng”), sau đó dùng các khoảng cách này đánh trọng số cho tất cả chủ đề. Trọng số của một chủ đề chính là tổng tất cả các câu hỏi trong k láng giềng có cùng chủ đề, chủ đề nào không xuất hiện trong k láng giềng sẽ có trọng số bằng 0. Sau đó các chủ đề sẽ được sắp xếp theo mức độ giảm dần và các chủ đề có trọng số cao sẽ được chọn là chủ đề của câu hỏi cần phân loại.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

Khoảng cách giữa 2 văn bản chính là độ tương tự giữa 2 văn bản đó, 2 văn bản có giá trị độ tương tự càng lớn thì khoảng cách càng gần nhau.

Ví dụ: Dùng công thức Cosine để tính độ tương tự giữa 2 văn bản:¿ ( x⃗ , y⃗ )=cos ( x⃗ , y⃗ )= x⃗ . y⃗

‖x⃗‖.‖ y⃗‖Văn bản A: Tôi là học sinh.

Văn Bản B: Tôi là sinh viên.

Văn bản C: Tôi là giáo viên.

Biểu diễn văn bản theo vector:

Tôi là học sinh viên giáoVăn bản A 1 1 1 1 0 0Văn bản B 1 1 0 1 1 0Văn bản C 1 1 0 0 1 1

Vector A = (1,1,1,1,0,0)

Vector B = (1,1,0,1,1,0)

Vector C = (1,1,0,0,1,1)

¿ ( A⃗ , B⃗ )=cos ( A⃗ , B⃗ )= 3√4∗4

=0.75

¿ ( A⃗ , C⃗ )=cos ( A⃗ ,C⃗ )= 2√4∗4

=0.5

Điều đó cho thấy văn bản A tương tự văn bản B hơn so với C.

Hướng dẫn cài đặt:

Thông thường các thuật toán sẽ gồm 2 giai đoạn huấn luyện và phân lớp, riêng đối với thuật toán KNN do thuật toán này không cần tạo ra mô hình khi làm trên tập huấn luyện các văn bản đã có nhãn/lớp sẵn, nên không cần giai đoạn huấn luyện (giai đoạn huấn luyện của KNN là gán nhãn cho các văn bản trong tập huấn luyện bằng cách gom nhóm các văn bản có vector đặc trưng giống nhau thành cùng 1 nhóm).

Mô tả vector đặc trưng của văn bản: là vector có số chiều là số đặc trưng trong toàn tập dữ liệu, các đặc trưng này đôi một khác nhau. Nếu văn bản có chứa đặc trưng đó sẽ có giá trị 1, ngược lại là 0.

Đầu vào:

- Vector đặc trưng của văn bản cần phân lớp.

- Các vector đặc trưng của văn bản trong tập huấn luyện (Ma trận MxN, với M là số vector đặc trưng trong tập huấn luyện, N là số đặc trưng của vector).

- Tập nhãn/lớp cho từng vector đặc trưng của tập huấn luyện.

Đầu ra:

- Nhãn/lớp của văn bản cần phân loại.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt

Quá trình phân lớp gồm các bước sau:

- Xác định giá trị tham số K (số láng giềng gần nhất). Tùy vào mỗi tập huấn luyện (số lượng mẫu trong tập huấn luyện, không gian tập mẫu có phủ hết các trường hợp…) mà việc chọn số K sẽ ảnh hưởng đến kết quả phân lớp.

- Lần lượt duyệt qua các văn bản (được đại diện bằng vector đặc trưng của văn bản) trong tập huấn luyện và tính độ tương tự của văn bản đó với văn bản cần phân lớp.

- Sau khi đã có mảng các giá trị lưu độ tương tự của văn bản cần phân lớp với các văn bản trong tập huấn luyện, ta sắp xếp độ tương tự các văn bản theo thứ tự giảm dần (lưu ý đây là độ tương tự, độ tương tự càng lớn tức là khoảng cách càng gần) và lấy ra k văn bản đầu tiên trong mảng (tức là k văn bản gần với văn bản cần phân lớp nhất).

- Khởi tạo mảng A có độ dài bằng số phân lớp để lưu số văn bản của mỗi lớp. Duyệt qua k văn bản, đếm số văn bản trong từng phân lớp và lưu vào mảng.

- Duyệt qua mảng A, tìm lớp có số văn bản nhiều nhất và chọn là lớp cho văn bản mới.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ

1

2

3

Sau khi tìm hiểu các phương pháp giải quyết bài toán, trong chương 3, đồ án trình bày chi tiết thực nghiệm gồm có quá trình thu thập và xử lý dữ liệu, các phương pháp làm thực nghiệm, kết quả và đánh giá.

3.1 Dữ liệu thực nghiệm

3.1.1 Chuẩn bị dữ liệu

Dữ liệu chuẩn bị cho thực nghiệm gồm 3000 câu hỏi tiếng Việt thuộc 22 loại khác nhau được thu thập từ địa chỉ web: http://cogcomp.cs.illinois.edu/Data/QA/QC/. Mỗi câu hỏi có dạng: <(nhãn)> <câu hỏi>. 3000 câu hỏi được lưu vào file có tên “questions.txt”.

Hình 3-1: File questions.txt.

Bảng 3-1: Số lượng câu hỏi của mỗi nhãn.

STT Nhãn tiếng Anh Nhãn tiếng Việt Số câu hỏi

1 Location Địa điểm 420

2 Count Số lượng 265

3 Manner Cách thức 266

4 Description Mô tả 266

5 Reason Lý do 190

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

6 Food Món ăn 103

7 Sport Thể thao 62

8 Definition Định nghĩa 266

9 Animal Động vật 112

10 Human Người 268

11 Money Tiền bạc 71

12 Event Sự kiện 56

13 Date Ngày tháng 218

14 Period Giai đoạn 75

15 Vehicle Xe cộ 27

16 Product Sản phẩm 42

17 Termeq Thuật ngữ 93

18 Substance Vật chất 41

19 ABBR Viết tắt 72

20 Color Màu sắc 40

21 Distance Khoảng cách 34

22 Plant Cây cối 13

*** Total 3000

3.1.2 Tiền xử lý dữ liệu

Trước khi xử lý dữ liệu ta thực hiện tách riêng nhãn phân loại của 3000 câu hỏi và lưu vào tệp labels.txt, và tệp questions.txt lúc này chỉ còn chứa 3000 câu hỏi mà không chứa nhãn phân loại.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

Hình 3-2: File labels.txt.

a) Tách từ

Trong đồ án, chúng tôi sử dụng công cụ tách từ tiếng Việt là vnTokenizer [19]. Chương trình chạy dưới dạng dòng lệnh:

- vnTokenizer.sh nếu chạy trên các hệ điều hành Linux/Unix/Mac OS

- vnTokenizer.bat nếu chạy trên các hệ điều hành MS Windows

Yêu cầu máy cần cài JRE (Java Runtime Enviroment) phiên bản 1.6

Câu lệnh tách từ cho một tệp trên hệ điều hành MS Windows như sau:

vnTokenizer.bat -i <tệp-input> -o <tệp-output> [<các-tùy-chọn>]

Hai tùy chọn -i và -o là bắt buộc. Ngoài ra, người dùng có thể cung cấp các tùy chọn không bắt buộc sau đây:

+) -xo: dùng định dạng XML để biểu diễn kết quả thay vì định dạng mặc định là văn bản thô.

+) -nu: không sử dụng dấu gạch dưới khi ghi kết quả. Nếu tùy chọn này được sử dụng thì trong kết quả, các âm tiết không được nối với nhau bằng ký tự gạch dưới, mà bằng ký tự trắng.

+) -sd: sử dụng mô-đun tách câu trước khi thực hiện tách từ. Nếu tùy chọn này được sử dụng thì trước tiên vnTokenizer thực hiện tách văn bản input thành một tập các câu, sau đó thực hiện tách từ từng câu một.

Các tùy chọn này có thể được phối hợp đồng thời với nhau để cho ra kết quả mong muốn. Khi thực nghiệm, chúng tôi chỉ sử dụng hai tùy chọn -i và –o và kết quả tách từ được lưu vào tệp “questions.tok” như sau:

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

Hình 3-3: File questions.tok.

b) Gán nhãn từ

Để thực hiện việc gán nhãn từ loại, chúng tôi sử dụng công cụ gán nhãn từ tiếng Việt là vnTagger [20]. Chương trình chạy dưới dạng dòng lệnh:

- vnTagger.sh nếu chạy trên các hệ điều hành Linux/Unix/Mac OS

- vnTagger.bat nếu chạy trên các hệ điều hành MS Windows

Yêu cầu máy cần cài JRE (Java Runtime Enviroment) phiên bản 1.6

Câu lệnh gán nhãn từ cho một tệp trên hệ điều hành MS Windows như sau:

vnTagger.bat -i <tệp-input> -o <tệp-output> [<các-tùy-chọn>]

Hai tùy chọn -i và -o là bắt buộc. Ngoài ra, người dùng có thể cung cấp các tùy chọn không bắt buộc sau đây:

+) –u: thêm gạch dưới giữa các âm tiết của một từ

+) –p: không dùng định dạng XML để biểu diễn kết quả

Các tùy chọn này có thể được phối hợp đồng thời với nhau để cho ra kết quả mong muốn. Khi thực nghiệm, ngoài sử dụng hai tùy chọn -i và –o, chúng tôi còn sử dụng cả hai tùy chọn –u và –p và kết quả gán nhãn từ được lưu vào tệp “questions.tagger” như sau:

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

Hình 3-4: File questions.tagger.

Sau khi gán nhãn từ loại, chúng tôi thực hiện trích rút nhãn từ loại và lưu vào tệp “questions.pos”.

Hình 3-5: File questions.pos.

c) Biểu diễn cây cú pháp

Để xây dựng cây cú pháp cho câu hỏi, chúng tôi sử dụng công cụ VnDP toolkit [23]. VnDP toolkit là bộ công cụ phân tích cú pháp phụ thuộc tiếng Việt, tích hợp bộ phân tích cú pháp MSTParser và bộ gán nhãn từ RDRPOSTagger. Công cụ được viết bằng ngôn ngữ java:

Đầu vào: tệp dữ liệu đã được tách từ

Đầu ra: - Tệp .TAGGED biểu diễn kết quả gán nhãn từ

- Tệp .DEP.CONLL biểu diễn các câu dưới dạng cây cú pháp

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

Hình 3-6: File questions.DEP.CONLL.

Sau khi đã biểu diễn các câu dưới dạng cây cú pháp, chúng tôi thực hiện trích rút cây cú pháp, lấy các từ gốc là các từ có nhãn là root, lưu vào tệp “questions.root” với định dạng: root=”<từ>” và các từ con của từ gốc, lưu vào tệp “questions.child” với định dạng: child=”<từ>”

Hình 3-7: File questions.root.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

Hình 3-8: File questions.child.

3.2 Thiết lập thực nghiệm

3.2.1 Thực nghiệm với 3000 câu hỏi

a. SVM

Trong thực nghiệm với thuật toán SVM, chúng tôi sử dụng công cụ libsvm để phân loại câu hỏi cho thuật toán với các đặc trưng từ vựng, âm tiết, n-gram, nhãn từ loại và cây cú pháp.

Bước 1: Xây dựng từ điển

Sử dụng tệp “questions.txt” xây dựng ba bộ từ điển chứa các đặc trưng âm tiết được biểu diễn theo 1 gram, 1+2 grams và 1+2+3 grams. Sử dụng tệp “questions.tok” xây dựng ba bộ từ điển chứa các đặc trưng từ vựng được biểu diễn theo 1 gram, 1+2 grams và 1+2+3 grams. Các từ điển có định dạng: <chỉ số> : <âm tiết hoặc từ vựng>

Hình 3-9: File từ điển.

Bước 2: Chuyển đồi định dạng libsvm

Dựa vào sáu bộ từ điển đã xây dựng, chuyển đổi định dạng hai tệp “questions.txt” và “questions.tok” về đúng định dạng của libsvm:

<label> <index1>:<value1> <index2>:<value2> ...

Trong đó:

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

- <label> là nhãn phân loại, giá trị đích của tập huấn luyện. Đối với việc phân lớp, nó là một số nguyên xác định một lớp. Đối với hồi qui, nó là một số thực bất kỳ.

- <index> là một số nguyên bắt đầu từ 1, trong trường hợp này nó là vị trí của âm tiết hoặc từ vựng trong từ điển.

- <value> là số lần xuất hiện của âm tiết hoặc từ vựng trong câu.

Mỗi tệp được chuyển về định dạng của libsvm theo 3 kiểu: 1 gram, 1+2 grams, và 1+2+3 grams.

Hình 3-10: Định dạng dữ liệu cho libsvm.

Như vậy, sau khi chuyển đổi định dạng sẽ có 6 tệp:

Bảng 3-2: Các tệp sau khi chuyển đổi

Dữ liệu gốc Tệp chuyển đổi

questions.txt (âm tiết)

Âm tiết 1 gram

Âm tiết 1+2 grams

Âm tiết 1+2+3 grams

questions.tok(từ vựng)

Từ vựng 1 gram

Từ vựng 1+2 grams

Từ vựng 1+2+3 grams

Bước 3: Tạo các bộ dữ liệu thực nghiệm

Chia ngẫu nhiên mỗi tệp làm 5 phần, mỗi phần gồm 600 câu, gọi 5 phần đó lần lượt là set1, set2, set3, set4, set5. Sử dụng 4 phần (2400 câu) để tiến hành huấn luyện, và 1 phần còn lại (600 câu) để kiểm tra và việc này sẽ được thực hiện 5 lần. Sau tiến hành 5 lần như trên kết quả cuối cùng sẽ được tính bằng trung bình cộng của 5 kết quả của 5 lần tương ứng.

- Lần 1: tập train gồm phần 2+3+4+5 còn tập test sẽ là phần 1.

- Lần 2: tập train gồm phần 1+3+4+5 còn tập test sẽ là phần 2.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

- Lần 3: tập train gồm phần 1+2+4+5 còn tập test sẽ là phần 3.

- Lần 4: tập train gồm phần 1+2+3+5 còn tập test sẽ là phần 4.

- Lần 5: tập train gồm phần 1+2+3+4 còn tập test sẽ là phần 5.

Như vậy, mỗi tệp sẽ có 5 thực nghiệm khác nhau, do có 6 tệp nên tổng cộng số thực nghiệm cần phải thực hiện là 30 thực nghiệm.

Bước 4: Chạy thực nghiệm với công cụ libsvm

Một tập thực nghiệm sẽ có hai tệp, một tệp train và một tệp test, tên của chúng là trainN.txt và testN.txt (N=1,2,3,4,5). Mở command window để gõ lệnh, chuyển đường dẫn lệnh về thư mục chứa svm-scale.exe:

- Scale tệp train: svm-scale –l 0 –u 1 –s rangeN trainN.txt > trainN.scale.

- Scale tệp test: svm-scale –r rangeN testN.txt > testN.scale.

- Chọn tham số C và gamma: thay đổi đường dẫn lệnh về thư mục chứa grid.py, gõ lệnh python grid.py trainN.scale.

- Thay đổi đường dẫn lệnh về thư mục chứa svm-train.exe và svm-predict.exe.

- Huấn luyện dữ liệu: svm-train –c <giá trị C> –g <giá trị gamma> -b 1 trainN.scale.

- Dự đoán: svm-predict –b 1 testN.scale trainN.scale.model testN.predict .

Bước 5: Bổ sung đặc trưng nhãn từ loại và cây cú pháp

Sau khi có được kết quả của tất cả các trường hợp, tính giá trị trung bình của 5 thực nghiệm cho mỗi tệp. Lựa chọn bộ dữ liệu thực nghiệm mà cho kết quả dự đoán tốt nhất để bổ sung thêm các đặc trưng nhãn từ loại và cây cú pháp. Sau đó tiến hành chạy lại thực nghiệm với công cụ libsvm.

b. Các thuật toán khác

Sau khi sử dụng libsvm tiến hành thực nghiệm với các đặc trưng khác nhau, chúng tôi sử dụng bộ dữ liệu đạt được kết quả tốt nhất để áp dụng các thuật toán Naïve Bayes, K-láng giềng gần nhất bằng cách sử dụng công cụ Weka [22].

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

Hình 3-11: Giao diện màn hình chính của Weka.

Để có thể sử dụng công cụ Weka, chúng ta cần chuyển đổi định dạng dữ liệu về đúng dạng ARFF, CSV, C4.5, hoặc binary. Trong đồ án, chúng tôi chuyển định dạng dữ liệu về dạng file ARFF.

Định dạng dữ liệu (ARFF):

- Phần khai báo

@ralation <tên dữ liệu >

@attribute <tên thuộc tính 1> <kiểu dữ liệu>

@attribute <tên thuộc tính 2> <kiểu dữ liệu>

- Các kiểu dữ liệu:

Numeric: dữ liệu dạng số Ví dụ: @ATTRIBUTE name numeric

Nominal: dữ liệu rời rạc Ví dụ: @ATTRIBUTE class {sport, count}

String: dữ liệu chuỗi Ví dụ: @ATTRIBUTE name string Date

Date: dữ liệu kiểu ngày Ví dụ: @ATTRIBUTE discovered date

- Phần dữ liệu:

Mỗi mẫu dữ liệu được đặt trên một dòng, giá trị của các thuộc tính được liệt kê theo thứ tự từ trái qua phải và ngăn cách bởi dấu phẩy.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

Hình 3-12: Định dạng dữ liệu file arrff.

Sau khi chuyển đổi định dạng dữ liệu, chúng tôi tiến hành làm thực nghiệm sử dụng Weka với các thuật toán Naïve Bayes và K-láng giềng gần nhất.

c. Cách thức đánh giá

Sau khi đã thực nghiệm xong, việc tiếp theo là cần phải đánh giá xem kết quả thực nghiệm có tốt không. Để đánh giá kết quả phân loại câu hỏi, ta sử dụng một số chỉ số đánh giá:

Recall: độ chính xác của dự đoán cho từng nhãn

Recall = Số câu hỏi được dự đoán đúngSố câuhỏithực tế

Precision: độ chính xác của mỗi lần dự đoán

Precision = Số câu hỏi được dự đoán đúngSố câuhỏi được dự đoán

Từ thực nghiệm chúng ta có 3 giá trị: Human, Model, Match

Trong đó:

- Human: Số câu hỏi thực tế

- Model: Số câu hỏi mà máy dự đoán

- Match: Số câu hỏi được máy dự đoán đúng

Chúng ta có công thức:

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

Rec = ¿ Human ∩ Model∨ ¿¿ Human∨¿¿

¿ =¿ Match∨ ¿

¿ Human∨¿¿¿

Prec = ¿ Human ∩ Model∨ ¿¿ Model∨¿¿

¿ =¿ Match∨ ¿

¿ Model∨¿¿¿

F1

Tiêu chí đánh giá F1 là sự kết hợp của 2 tiêu chí đánh giá Precision và Recall

F1 = 2∗¿∗Rec¿+Rec

F1 là một giá trị trung bình điều hòa của các tiêu chí Precision và Recall

- F1 có xu hướng lấy giá trị gần với giá trị nào nhỏ hơn giữa 2 giá trị Precision và Recall

- F1 có giá trị lớn nếu cả 2 giá trị Precision và Recall đều lớn

d. Kết quả

Kết quả chạy SVM cho đặc trưng từ vựng, âm tiết và n-grams:

Bảng 3-3: Kết quả thực nghiệm SVM sử dụng n-grams, âm tiết và từ vựng

Đặc trưng n-grams Lần 1

(%)Lần 2 (%)

Lần 3 (%)

Lần 4 (%)

Lần 5 (%) TB (%)

Từ vựng

1gram 84.50 85.00 82.83 84.00 83.83 84.03

1+2grams 82.83 85.50 81.83 83.00 83.17 83.27

1+2+3grams 83.17 83.83 82.00 81.67 82.67 82.67

Âm tiết

1gram 83.00 83.83 83.33 81.83 81.50 82.70

1+2grams 84.83 87.67 84.67 84.00 85.33 85.30

1+2+3grams 84.17 87.00 83.83 82.50 84.83 84.47

Bảng 3-4: Kết quả phân lớp cho mỗi nhãn (âm tiết 1+2grams)

STT Nhãn Human

Model

Match

Precision (%)

Recall (%)

F1(%)

1 Location 420 434 370 85.25 88.10 86.65

2 Count 265 281 251 89.32 94.72 91.94

3 Manner 266 285 259 90.88 97.37 94.01

4 Description

266 297 219 73.74 82.33 77.80

5 Reason 190 183 176 96.17 92.63 94.37

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

6 Food 103 90 74 82.22 71.84 76.68

7 Sport 62 58 48 82.76 77.42 80.00

8 Definition 266 289 241 83.39 90.60 86.85

9 Animal 112 99 95 95.96 84.82 90.05

10 Human 268 278 218 78.42 81.34 79.85

11 Money 71 64 58 90.63 81.69 85.93

12 Event 56 51 29 56.86 51.79 54.21

13 Date 218 211 195 92.42 89.45 90.91

14 Period 75 67 64 95.52 85.33 90.14

15 Vehicle 27 21 13 61.90 48.15 54.17

16 Product 42 42 29 69.05 69.05 69.05

17 Termeq 93 83 71 85.54 76.34 80.68

18 Substance 41 31 30 96.77 73.17 83.33

19 ABBR 72 62 52 83.87 72.22 77.61

20 Color 40 36 34 94.44 85.00 89.47

21 Distance 34 28 25 89.29 73.53 80.65

22 Plant 13 10 8 80.00 61.54 69.57

*** Total 3000 3000 2559 84.29 78.56 81.09

Recall là tiêu chí đánh giá dựa trên số lần mỗi nhãn được đoán đúng. Tuy nhiên, mỗi một nhãn sẽ được dự đoán một số lần nào đó, và số lượng này có thể lớn hơn hoặc nhỏ hơn số lượng thực tế. Nếu như một nhãn được dự đoán nhiều lần hơn số lượng thực tế thì số lần dự đoán đúng cũng sẽ tăng lên. Vì vậy nếu số câu hỏi được dự đoán đúng tăng lên mà số lần dự đoán cũng tăng lên thì hiệu suất của thuật toán không thực sự tốt. Cho nên chúng tôi sử dụng thêm tiêu chí Precision. Tiêu chí này ngoài việc quan tâm tới số lần dự đoán đúng, nó còn quan tâm tới số lần mà mỗi nhãn được dự đoán. Tuy nhiên cả hai tiêu chí này vẫn chưa thể hiện được hiệu suất dự đoán. Để giải quyết vấn đề đó, chúng tôi sử dụng tiêu chí F1 là một sự kết hợp hài hòa của hai tiêu

chí Recall và Precision: F1 = 2∗¿∗Rec¿+Rec .

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

1 gram 1+2 grams 1+2+3 grams81

81.5

82

82.5

83

83.5

84

84.5

85

85.5

86

84.03

83.27

82.6782.7

85.3

84.47

Từ vựngÂm tiết

Hình 3-13: So sánh độ chính xác giữa đặc trưng âm tiết và đặc trưng từ vựng.

Kết quả thực nghiệm cho thấy việc sử dụng đặc trưng âm tiết đạt hiệu quả cao hơn đặc trưng từ vựng. Nguyên nhân có thể là do trong một câu thì số lượng âm tiết sẽ nhiều hơn số lượng từ vựng, do đó số đặc trưng âm tiết nhiều hơn sẽ giúp việc dự đoán được tốt hơn. Kết quả cao nhất đạt được là 85.30% khi sử dụng đặc trưng âm tiết 1+2 grams. Vì vậy, bộ dữ liệu đặc trưng âm tiết 1+2grams sẽ được sử dụng để bổ sung thêm các đặc trưng khác.

Location

Count

Manner

Descrip

tion

Reason

Food

Sport

Definition

Animal

HumanMoney

Event

DatePeri

odVeh

icle

Product

Termeq

Substa

nceABBR

Color

Distance

PlantTo

tal0

102030405060708090

100

F1

Hình 3-14: Độ chính xác cho mỗi nhãn (âm tiết 1+2 grams).

Dựa vào bảng 3-4 và hình 3-14 ta thấy có 11 nhãn đạt được độ chính xác khá tốt, cao hơn độ chính xác trung bình đó là các nhãn Location, Count, Manner, Reason, Definition, Animal, Money, Date, Period, Substance và Color. Các nhãn này có giá trị

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

F1, precision và recall đều cao hơn giá trị trung bình của tất cả các nhãn và sự chênh lệch giữa precision và recall là không lớn. Trong khi ở các nhãn có giá trị F1 nhỏ hơn giá trị trung bình thì các giá trị precision và recall thường có chênh lệch khá lớn.

Kết quả thực nghiệm SVM khi bổ sung các đặc trưng:

Bảng 3-5: Kết quả thực nghiệm khi bổ sung thêm các đặc trưng

Bảng 3-6: Kết quả phân lớp cho mỗi nhãn (âm tiết 1+2grams + nhãn từ loại + root)

STT Nhãn Human

Model

Match

Precision (%)

Recall (%)

F1(%)

1 Location 420 423 365 86.29 86.90 86.59

2 Count 265 279 253 90.68 95.47 93.01

3 Manner 266 281 258 91.81 96.99 94.33

4 Description

266 303 220 72.61 82.71 77.33

5 Reason 190 184 175 95.11 92.11 93.59

6 Food 103 91 71 78.02 68.93 73.19

7 Sport 62 58 48 82.76 77.42 80.00

8 Definition 266 288 245 85.07 92.11 88.45

9 Animal 112 101 94 93.07 83.93 88.26

10 Human 268 279 222 79.57 82.84 81.17

11 Money 71 66 61 92.42 85.92 89.05

12 Event 56 50 30 60.00 53.57 56.60

13 Date 218 210 194 92.38 88.99 90.65

14 Period 75 67 65 97.01 86.67 91.55

15 Vehicle 27 19 12 63.16 44.44 52.17

16 Product 42 46 30 65.22 71.43 68.18

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

Các đặc trưng Độ chính xác

Âm tiết 1+2 grams 85.30%

Âm tiết 1+2 grams + nhãn từ loại 85.37% (+0.07%)

Âm tiết 1+2 grams + nhãn từ loại + root 85.53% (+0.23%)

Âm tiết 1+2 grams + nhãn từ loại + root + child 85.40% (+0.10%)

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

17 Termeq 93 83 71 85.54 76.34 80.68

18 Substance 41 31 29 93.55 70.73 80.56

19 ABBR 72 65 55 84.62 76.39 80.29

20 Color 40 37 35 94.59 87.50 90.91

21 Distance 34 29 25 86.21 73.53 79.37

22 Plant 13 10 8 80.00 61.54 69.57

*** Total 3000 3000 2566 84.08 78.93 81.16

âm tiết 1+2grams âm tiết 1+2grams + nhãn từ loại

âm tiết 1+2grams + nhãn từ loại + root

âm tiết 1+2grams + nhãn từ loại + root +

child

85.15

85.2

85.25

85.3

85.35

85.4

85.45

85.5

85.55

Độ chính xác giữa các đặc trưng

Hình 3-15: So sánh độ chính xác giữa các đặc trưng.

Kết quả tốt nhất của tất cả các thực nghiệm là 85.53% khi sử dụng thuật toán SVM kết hợp các đặc trưng âm tiết 1+2grams, nhãn từ loại và đặc trưng root của cây cú pháp. Độ chính xác giữa các thực nghiệm là không quá lớn, sự chênh lệch lớn nhất là 85.53% – 85.3% = 0.23%. Do đó, độ chênh lệch chỉ số F1 cũng không quá lớn: 81.16% – 81.09% = 0.07%.

Kết quả thực nghiệm với các thuật toán khác

Bảng 3-7: Kết quả thực nghiệm của các thuật toán khác nhau

Thuật toán Độ chính xác

SVM 85.53%

Naïve Bayes 77.56%

K láng giềng gần nhất (k=1) 70.83%

K láng giềng gần nhất (k=5) 66.60%

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

Kết quả thực nghiệm cho thấy thuật toán SVM là lựa chọn tốt nhất cho bài toán phân loại câu hỏi. Độ chính xác có sự chênh lệch khá lớn giữa thuật toán SVM và các thuật toán khác. Chênh lệch lớn nhất là giữa thuật toán SVM và thuật toán K-láng giềng gần nhất (k=5), độ chênh lệch là 85.53% - 66.60% = 18.93%.

3.2.2 Thực nghiệm bổ sung câu truy vấn

a. Phương pháp thực nghiệm

Hình 3-16: Phương pháp thực nghiệm bổ sung câu truy vấn

Trong thực nghiệm bổ sung câu truy vấn, các câu hỏi trong bộ dữ liệu ban đầu sẽ được đưa vào các hệ thống máy tìm kiếm và lấy ra các kết quả truy vấn. Sau đó các câu truy vấn sẽ được bổ sung vào tập các câu hỏi ban đầu với mục đích tăng kích thước dữ liệu huấn luyện. Khi kích thước dữ liệu huấn luyện tăng lên, chúng tôi hi vọng sẽ có thêm nhiều thông tin cho quá trình huấn luyện, từ đó sẽ xây dựng được một mô hình huấn luyện tốt hơn, góp phần cải thiện kết quả phân loại. Sau khi bổ sung các kết quả truy vấn, chúng tôi tiến hành trích xuất các đặc trưng và áp dụng các thuật toán học máy thống kê để tiến hành làm thực nghiệm.

b. Dữ liệu thực nghiệm

Với bộ dữ liệu 3000 câu hỏi ban đầu, chúng tôi đưa từng câu hỏi vào máy tìm kiếm Google, tiến hành thu thập 5 kết quả đầu tiên được máy tìm kiếm trả về, lưu kết quả vào tệp “question_and_query.txt”, mỗi dòng trong tệp có dạng:

<(nhãn)> <câu hỏi> tab<câu truy vấn 1> tab <câu truy vấn 2>…<câu truy vấn 5>

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

Question Máy tìm kiếm Kết quả truy vấn

Huấn luyện

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

Hình 3-17: File question_and_query.txt.

c. Thiết lập thực nghiệm

Trong thực nghiệm bổ cung các câu truy vấn, chúng tôi chỉ tiến hành thực nghiệm sử dụng thuật toán SVM với bộ dữ liệu có kết quả tốt nhất của thực nghiệm 3000 câu hỏi trên các đặc trưng từ vựng, âm tiết và n-grasm. Do thực nghiệm với âm tiết 1+2grams đạt kết quả tốt nhất nên các câu truy vấn sẽ được bổ sung vào bộ dữ liệu âm tiết 1+2grams.

- Các âm tiết trong các câu truy vấn sẽ được bổ sung vào từ điển 1+2grams, mỗi âm tiết được viết thêm kí tự “q_” vào phía trước để phân biệt với các âm tiết trong câu hỏi.

- Chuyển đổi định dạng các câu truy vấn về định dạng libsvm.

- Bổ sung các câu truy vấn đã được chuyển đổi định dạng vào các tệp train và test của bộ dữ liệu âm tiết 1+2grams sao cho đúng thứ tự câu.

- Chạy thực nghiệm với công cụ libsvm cho bộ dữ liệu.

d. Kết quả thực nghiệm

Bảng 3-8: Kết quả thực nghiệm bổ sung câu truy vấn

Đặc trưng Lần 1 (%)

Lần 2 (%)

Lần 3 (%)

Lần 4 (%)

Lần 5 (%) TB (%)

Âm tiết 1+2grams 84.83 87.67 84.67 84.00 85.33 85.30

Âm tiết 1+2grams + câu truy vấn 80.67 82.50 81.83 79.50 81.33 81.17 (-4.13)

Như vậy thực nghiệm với việc bổ sung các câu truy vấn không cho kết quả tốt hơn với việc chỉ sử dụng câu hỏi. Điều này cho thấy việc sử dụng thêm các câu truy vấn từ máy tìm kiếm google không phù hợp với bài toán phân loại câu hỏi. Các câu truy vấn đã tạo ra nhiễu, làm cho mô hình huấn luyện không đạt được kết quả tốt nhất.

Ví dụ câu hỏi: Con vật nào được đặt chân đầu tiên vào không gian?

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP Chương 3: Thực nghiệm và đánh giá

5 kết quả tìm kiếm từ google: Chạy đua vào không gian – Wikipedia tiếng Việt Người đầu tiên đặt chân lên mặt trăng - Các bài viết - KhoaHoc.TV Động vật đầu tiên bay vào không gian - Các bài viết Ký ức của người đầu tiên đi bộ ngoài không gian - VnExpress Chân Không Vật Chất - Nơi Vật Chất Tạo Nên Không Gian (Michel ...

Câu hỏi có nhãn là Động vật, nhưng trong 5 kết quả tìm kiếm được trả về từ máy tìm kiếm google lại cho ra 4 kết quả không liên quan tới động vật, mà chỉ có một kết quả liên quan tới động vật là câu: Động vật đầu tiên bay vào không gian. Điều này đã tạo ra nhiễu cho mô hình huấn luyện, làm cho việc huấn luyện không chính xác, và do đó kết quả phân loại sẽ không được tốt. Yêu cầu đặt ra cần phải có thêm các nghiên cứu với các phương pháp khác để có thể cải thiện tốt hơn độ chính xác trong việc phân loại câu hỏi.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

KẾT LUẬN

Phân loại câu hỏi tiếng Việt vẫn là một vấn đề còn khá mới, nhưng nó có ý nghĩa vô cùng quan trọng. Từ việc giải quyết bài toán phân loại câu hỏi tiếng Việt, giúp cho chúng ta tiến gần hơn việc có thể xây dựng được một hệ thống hỏi đáp dành riêng cho tiếng Việt, góp phần đem lại sự thuận tiện hơn cho người dùng trong việc thu thập và tìm kiếm thông tin tiếng Việt. Ngoài ra, chúng ta có thể dựa vào nghiên cứu này để phát triển trí tuệ nhân tạo cho robot, giúp chúng có thể hiểu và trả lời các câu hỏi tiếng Việt, từ đó có thể giải quyết được các công việc của con người, có thể làm việc dựa trên mệnh lệnh mà con người đưa ra.

Nhìn chung, đồ án đã đạt được một số thành tựu như:- Trình bày một cách khái quát nhất về hệ thống hỏi đáp tự động và nêu lên ý

nghĩa, vai trò của bài toán phân loại câu hỏi tiếng Việt.- Khảo sát, nghiên cứu 5 loại đặc trưng tiếng Việt khác nhau cho bài toán phân

loại câu hỏi tiếng Việt.- Nghiên cứu và làm thực nghiệm với 3 thuật toán học máy khác nhau.- So sánh và phân tích các kết quả thực nghiệm và chúng tôi đã tìm ra được

trường hợp cho kết quả tốt nhất.- Từ kết quả thực nghiệm, chúng tôi xây dựng thành công một ứng dụng demo

giúp phân loại câu hỏi dựa trên các đặc trưng khác nhau.Đồ án vẫn còn một số hạn chế như:- Nghiên cứu vẫn còn đơn giản.- Kết quả thực nghiệm đạt được vẫn chưa thực sự tốt so với những nghiên cứu

trước đây. Đặc biệt với việc bổ sung các câu truy vấn đã làm cho kết quả thực nghiệm không những không tăng lên mà còn giảm đi.

- Phần mềm demo vẫn còn hạn chế, tốc độ xử lý vẫn còn chậm, đặc biệt là khi dự đoán với đặc trưng nhãn từ loại và cây cú pháp.

Về hướng phát triển tương lai, chúng tôi sẽ tiến hành phát triển một tập dữ liệu tiếng Việt lớn hơn và nghiên cứu sử dụng thêm nhiều đặc trưng tiếng Việt khác, góp phần cải thiện tốt hơn khả năng phân loại. Ngoài ra chúng tôi cũng sẽ nghiên cứu và thử nghiệm với một số thuật toán khác để tìm ra thuật toán phù hợp nhất với bài toán phân loại câu hỏi tiếng Việt.

-

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

PHỤ LỤC

A. Công cụ sử dụng

Bảng A-1: Các công cụ sử dụng

Công cụ Trang chủ

Java SE JDK 7u21 http://www.java.sun.com

Netbean 8.0.1 https://netbeans.org/

Notepad++ http://notepad-plus-plus.org/

vnTokenizer http://mim.hus.vnu.edu.vn/phuonglh/softwares/vnTokenizer

vnTagger http://mim.hus.vnu.edu.vn/phuonglh/softwares/vnTagger

VnDP: A Vietnamese dependency parsing toolkit

http://vndp.sourceforge.net/

libSVM https://www.csie.ntu.edu.tw/~cjlin/libsvm/

Weka http://www.cs.waikato.ac.nz/ml/weka/

B. Chương trình demoPhần này trình bày hệ thống phân loại câu hỏi của chúng tôi. Hệ thống nhận đầu

vào là câu hỏi của người dùng dưới dạng ngôn ngữ tự nhiên và trả về nhãn phân loại cho từng câu hỏi của người dùng.

Người dùng có thể nhập câu hỏi theo 2 cách:- Cách 1: Nhập bằng tay, người dùng tự gõ câu hỏi vào ô question- Cách 2: Nhập bằng file, người dùng tự gõ đường dẫn file hoặc duyệt đến file

chứa câu hỏi và click nút import để nhập tất cả câu hỏi trong file vào ô question.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

Hình B-1: Giao diện nhập câu hỏi bằng tay.

Hình B-2: Giao diện nhập câu hỏi bằng file.

Sau khi nhập câu hỏi, người dùng có thể lựa chọn một trong ba tùy chọn trích xuất đặc trưng:

- Syllables: chỉ sử dụng âm tiết của câu hỏi- Syllables and pos: sử dụng âm tiết của câu hỏi và nhãn từ loại- Syllables and pos and dependency: sử dụng âm tiết của câu hỏi, nhãn từ loại

và đặc trưng cú pháp của câu.Bước tiếp theo người dùng click vào nút predict và chờ đợi, hệ thống sẽ xử lý câu

hỏi, trích xuất đặc trưng và đưa ra nhãn dự đoán cho câu hỏi đó trong ô Label.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

Sau khi chương trình thực hiện xong, người dùng có thể click vào nút Clear để xóa dữ liệu trong hai ô Question và ô Label và tiếp tục chương trình với các câu hỏi mới.

Hình B-3: Giao diện chạy chương trình.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

TÀI LIỆU THAM KHẢO

Tài liệu tiếng Anh

1.2.3.[1] I. Fahmi (2009). Automatic term and relation extraction for medical question

answering system. PhD Thesis, the University of Groningen, The Netherlands.

[2] Phuong Le-Hong, Xuan-Hieu Pham and Tien-Dung Nguyen, Using dependency analysis to improve question classification, Knowledge and Systems Enginneering, Springer International Publishing, 2015, pages 653-655.

[3] Zhiheng Huang, Marcus Thint and Zengchang Qin, Question Classification using Head Words and their Hypernyms, Proceedings of the 2008 Conference on Empirical Methods in Natural Languae Processing, pages 927-936, Honolulu, October 2008.

[4] Boris Katz. Annotating the World Wide Web Using Natural Language. Proceedings of the 5th RIAO Conference on Computer Assisted Information Searching on the Internet (RIAO '97), 1997, pages 136-139.

[5] Deepak Ravichandran, Abraham Ittycheriah, and Salim Roukos. 2003. Automatic derivation of surface text patterns for a maximum entropy based question answering system. In Proceedings of the 2003 Conference of the North American Chapter of the Association for Computational Linguistics on Human Language Technology: companion volume of the Proceedings of HLT-NAACL 2003--short papers - Volume 2 (NAACL-Short '03), Vol. 2. Association for Computational Linguistics, Stroudsburg, PA, USA, 85-87.

[6] Hakan Sundblad, Question Classification in Question Answering Systems, Linkuping Studies in Science and Technology, June 2007, ISBN 978-91-85831-55-5.

[7] Dang Hai Tran, Cuong Xuan Chu, Son Bao Pham and Minh Le Nguyen, Learning Based Approaches for Vietnamese Question Classification Using Keywords Extraction from the Web, International Joint Conference on Natural Language Processing, pages 740-746, Nagoya, Japan, 14-18 October 2013.

[8] Vu Mai Tran, Vinh Duc Nguyen, Oanh Thi Tran, Uyen Thu Thi Pham and Thuy-Quang Ha. An Experimental Study of Vietnamese Question Answering System. International Conference on Asian Language Processing, {IALP} 2009, Singapore, December 7-9, 2009, pages 152-155.

[9] Dell Zhang and Wee Sun Lee. 2003. Question classification using support vector machines. In Proceedings of the 26th annual international ACM SIGIR

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

conference on Research and development in informaion retrieval (SIGIR '03). ACM, New York, NY, USA, pages 26-32.

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

Tài liệu tiếng Việt

[10] Trần Cao Đệ, Phạm Nguyên Khang, Phân loại văn bản với máy học vector hỗ trợ và cây quyết định, Tạp chí Khoa học 2012:21a 52-63, Trường Đại học Cần Thơ.

[11] Đỗ Bá Lâm, Lê Thanh Hương, Xây dựng hệ thống phân tích cú pháp tiếng Việt sử dụng văn phạm HPSG, Đại học Bách Khoa Hà Nội, 2008. ICT08-VLSP-SP85-2.

[12] Hà Thị Minh Lộc, Xây dựng mô hình hệ thống hỏi đáp tự động hỗ trợ đào tạo trực tuyến, Luận văn thạc sĩ, Học viện Công nghệ Bưu chính Viễn thông, 2013.

[13] Nguyễn Phương Thái, Vũ Xuân Lương, Nguyễn Thị Minh Huyền, Xây dựng treebank tiếng Việt, Viện Khoa học và Công nghệ Tiên tiến Nhật Bản, 07/2008.

[14] Nguyễn Minh Thành, Phân loại văn bản, Đồ án môn học Xử lý ngôn ngữ tự nhiên, Đại học quốc gia Thành phố Hồ Chí Minh, 01/2011.

[15] Nguyễn Đức Vinh, Phân tích câu hỏi trong hệ thống hỏi đáp tiếng Việt, Khóa luận tốt nghiệp đại học, Đại học quốc gia Hà Nội, 2009.

Danh mục các Website tham khảo:

1.2.3.4.5.6.7.[16] Google : https://www.google.com

[17] Wikipedia: http://www.wikipedia.org

[18] Natural Language Processing: http://viet.jnlp.org/

[19] Lê Hồng Phương, vnTokenizer - Vietnamese words segmentation , http://mim.hus.vnu.edu.vn/phuonglh/softwares/vnTokenizer, 2010.

[20] Lê Hồng Phương, vnTagger - Vietnamese words segmentation , http://mim.hus.vnu.edu.vn/phuonglh/softwares/vnT agger , 2010.

[21] http://www.csie.ntu.edu.tw/~cjlin/libsvm/

[22] http://www.cs.waikato.ac.nz/~ml/weka/

[23] http://vndp.sourceforge.net/

[24] http://trec.nist.gov/

[25] http://clef.isti.cnr.it/

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3

ĐỒ ÁN TỐT NGHIỆP

[26] https://answers.yahoo.com/

[27] https://www.question.com/topic/google/

GVHD: TS. Ngô Xuân Bách SVTH: Nguyễn Đình Nghị – D11CNPM3