Đồ án 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. Mời các bạn cùng tham khảo.
Trang 1HỌ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”
Hà Nội 12/2015
Trang 2ĐỒ Á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 tố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), Nạ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 tố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, Nạve Bayes, cây cú pháp, n-grams
Trang 3ĐỒ Á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ị
Trang 4ĐỒ ÁN TỐT NGHIỆP
NHẬN XÉT (Của giảng viên phản biện)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Hà Nội, 12/2015 Giảng viên phản biện
Trang 5ĐỒ ÁN TỐT NGHIỆP
NHẬN XÉT (Của giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Hà Nội, 12/2015 Giảng viên hướng dẫn
Trang 6ĐỒ Á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 TỐ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 tố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 tốn học máy 17
2.3.1 Máy véc tơ hỗ trợ (Support Vector Machine) 17
2.3.2 Nạ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
3.2.1 Thực nghiệm với 3000 câu hỏi 32
Trang 7ĐỒ ÁN TỐT NGHIỆP
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
Trang 8ĐỒ Á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
Trang 9ĐỒ Á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
Trang 10ĐỒ ÁN TỐT NGHIỆP
BẢNG THUẬT NGỮ TIẾNG ANH
ACL Association for Computational
Linguistics Hiệp hội ngơn ngữ học tính tốn
MEM Maximum Entropy Model Mơ hình Entropy cực đại
NB Nạ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ợ
Trang 11ĐỒ Á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 tồ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 tố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 hồ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 tố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 tốn: Máy véc tơ hỗ trợ (SVM), Nạve Bayes (NB) và K-láng giềng gần nhất (KNN) Với thuật tố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 tố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 tố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 tốn Kết quả thực nghiệm tốt nhất đạt được khi sử dụng thuật
Trang 12ĐỒ ÁN TỐT NGHIỆP
tố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 tốn Nạ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 TỐ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 tố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 tốn phân loại câu hỏi tiếng Việt và các thuật tố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
Trang 13ĐỒ Á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
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
Trang 14ĐỒ Á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]
Trang 15ĐỒ Á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
Trang 16ĐỒ Á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
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
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
Trang 17ĐỒ Á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
Hiện nay đã cĩ một số nghiên cứu về bài tố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 tốn gồm: Support Vector Machine (SVM), K-nearest neighbors (KNN), Nạ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 tố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 tố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 tố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 tốn học máy Cây quyết định (DT), Nạ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,
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
Trang 18ĐỒ Á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 Nạ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 Nạve Bayes là 81.1%, và phương pháp SVM là 94%
Đồ á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 tố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ợ, Nạ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
- Ngồ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
Trang 19ĐỒ Á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
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 Ngồi ra, đồ án cịn trình bày các thuật tốn được sử dụng khi làm thực nghiệm gồm cĩ Máy véc tơ hỗ trợ, Nạve Bayes và K-láng giềng gần nhấ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
- Bộ phân loại: cĩ thể sử dụng các thuật tốn khác nhau, trong phạm vi đồ án
chúng tơi sử dụng 3 thuật tốn học máy gồm: Máy véc tơ hỗ trợ (SVM), Nạve Bayes (NB) và K-láng giềng gần nhất (KNN)
Đầu vào Trích chọn đặc trưng Thuật tốn
học máy Đầu ra
Trang 20ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt
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]
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
}
- 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]
Trang 21ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt
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
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:
Trang 22ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt
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
- 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
- 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ại
Nhã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
Trang 23ĐỒ Á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]
Để 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
Trang 24ĐỒ Á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
Trang 25ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt
6 QP Cụm từ chỉ số lượng
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)
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
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
Trang 26ĐỒ ÁN TỐT NGHIỆP Chương 2: Hệ thống phân loại câu hỏi tiếng Việt
Ví dụ phân tích phụ thuộc một câu 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 - -
13 hơn hơn A A - 12 amod - -
1 Hà_Nội Hà_Nội N N - 2 sub - -
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 - -
Trang 27ĐỒ Á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
Cĩ nhiều thuật tốn khác nhau cho phân lớp như Nạ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 tốn là Máy véc tơ
hỗ trợ, Nạve Bayes và K-láng giềng gần nhất, đây là các thuật tố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
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]
Trang 28ĐỒ Á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ơ ⃑⃑⃑ trong không gian: ⃑⃑⃑ ⃑⃑
( ⃑⃑⃑ ) ( ⃑⃑⃑ ⃑⃑ ) { ⃑⃑⃑ ⃑⃑
⃑⃑⃑ ⃑⃑
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:
( ( ⃑⃑⃑ ⃑⃑ )) ∈ ⃑⃑⃑⃑⃑⃑
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à 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
Trang 29ĐỒ Á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à:
( ) Những phần tử x là support vector sẽ thỏa điều kiện:
( ) {
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 ( ) 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
Trang 30ĐỒ Á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 Nạve Bayes
a) Giới thiệu
Nạ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
Áp dụng trong bài tố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 ( )
Các bước thực hiện thuật tốn Nạve Bayes:
Bước 1: Huấn luyện Nạve Bayes (dựa vào tập dữ liệu), tính ( ) và ( )
Bước 2: Phân lớp ( ), 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:
∈ ( ( ) ∏ ( )
)