Professional Documents
Culture Documents
Lecongthaison PDF
Lecongthaison PDF
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.
LỜI CẢM ƠN
Em xin chân thành cảm ơn thầy Phan Tấn Quốc, bộ môn Trí Tuệ Nhân Tạo, Khoa Công
nghệ thông tin đã 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 tiểu luận, giúp cho em có thể hoàn thành tốt tiểu luận này.
Sinh viên
NHẬN XÉT
(Của giảng viên hƣớng dẫn)
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
…………………………………………………………………………………………..
GVHD: Phan Tấn Quốc iii SVTH: Lê Công Thái Sơn – CNPM04
Tiểu luậ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
MỤC LỤC
Hình 2-1: K iế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-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
GVHD: Phan Tấn Quốc vii SVTH: Lê Công Thái Sơn – CNPM04
Tiểu luậ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
TREC Text Retrieval Conference Hội nghị truy xuất văn bản
GVHD: Phan Tấn Quốc viii SVTH: Lê Công Thái Sơn – CNPM04
Tiểu luậ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
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
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.
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.
Ngữ liệu
Tiền xử lý Vector hóa
huấn luyện
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.
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
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ạ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.
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ừ
14 I – Interjection Thán từ
Để 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
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 - -
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áy
Có 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ƣởng
Cho 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].
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: �. +�
=0
Đặ� �( � ) = ���� ( � .� + �. +�>0
+1,
�) = {
� �
−1, �. +�<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:
�� (sin (� �. � + �)) ≥ 1 �ớ� ∀ � ∈ 1 , �
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ụ
1
thuộc các Support Vector và nó có khoảng cách đến mặt phẳng quyết định là . Cho
||w||
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: Phan Tấn Quốc 18 SVTH: Lê Công Thái Sơn – CNPM04
Tiểu luận 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:
+1 �ế� �ℎ �ộ� �ớ� �
�� ( �) = {
−1 �ế� �ℎ �ộ� �ℎ ầ� �ò� �ạ�
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
�(�−1)
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
2
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.
�(�|��) = ∏ �(��|�� )
�=1
Trong đó:
- �(��|�) là xác suất thuộc phân lớp i khi biết trước mẫu X.
- �(��) xác suất là phân lớp 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 �(��) và �(��|�� ).
Bước 2: Phân lớp ���� = (�1, �2, … , �� ), 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:
�
�(� |� ) = |�������| + 1
�
|�����| + ��
Trong đó: �
- |�������|: 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)
- |�����|: Số văn bản của tập huấn luyện thuộc phân lớp i.
- �� : 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 �( ) = 1 − �(�).
- 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ị
�(��|��).
- 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 �(��|�� ) 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 �(�� ) và �(��|�� ).
Đầ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
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:
�����(�|�) = ∑ cos(�, � ′ )
�′ ∈ �� (�,�,�)
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:
����� (�0|�) = ��� {�����( �|�) , � ∈ � }
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.
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:
�. �
��� (�, �) = cos(�, �) =
‖ � ‖ . ‖ �‖
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áo
Văn bản A 1 1 1 1 0 0
Văn bản B 1 1 0 1 1 0
Vă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)
3
���(�, � ) = cos(�, � ) = = 0.75
√4 ∗ 4
2
��� (�, �) = cos(�, �) = = 0.5
√4 ∗ 4
Đ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:
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”.
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:
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:
F1
Tiêu chí đánh giá F1 là sự kết hợp của 2 tiêu chí đánh giá Precision và Recall
2∗ Prec∗ Rec
F1 =
Prec+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 Lần 1 Lần 2 Lần 3 Lần 4 Lần 5
n-grams TB (%)
trƣng (%) (%) (%) (%) (%)
1gram 84.50 85.00 82.83 84.00 83.83 84.03
Từ
1+2grams 82.83 85.50 81.83 83.00 83.17 83.27
vựng
1+2+3grams 83.17 83.83 82.00 81.67 82.67 82.67
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
Âm tiết
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
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
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
2∗ Prec∗ Rec
chí Recall và Precision: F1 = .
Prec+Rec
85.5 85.3
85
84.47
84.5
84.03
84
83.5 83.27
Từ vựng
83 82.7 Âm tiết
82.67
82.5
82
81.5
81
1 gram 1+2 grams 1+2+3 grams
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.
F1
100
90
80
70
60
50
40
30
20
10
0
Money
Sport
Event
Definition
Food
Human
Reason
Animal
Date
Location
Period
Manner
Substance
Color
Distance
Count
Product
Total
ABBR
Termeq
Vehicle
Plant
Description
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 39 SVTH: Nguyễn Đình Nghị – D11CNPM3
Tiểu luận 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
17 Termeq 93 83 71 85.54 76.34 80.68
85.5
85.45
85.4
85.35
85.3
85.25
85.2
85.15
â m ti ết 1+2grams â m ti ết 1+2grams + â m ti ết 1+2grams + âm ti ết 1+2grams +
nhã n từ l oại nhã n từ l oại + root nhã n từ l oại + root +
chi l d
Huấn luyện
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>
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.
PHỤ LỤC
A. Công cụ sử dụng
Bảng A-1: Các công cụ sử dụng
[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
conference on Research and development in informaion retrieval (SIGIR '03).
ACM, New York, NY, USA, pages 26-32.