Khóa luận Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt

ĐẠI HỌC QUỐC GIA HÀ NỘI  
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ  
--------  
Nguyễn Quốc Đạt  
PHƢƠNG PHÁP PHÂN TÍCH CÂU HỎI  
CHO HỆ THỐNG HỎI ĐÁP TIẾNG VIỆT  
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY  
Ngành: Công nghệ thông tin  
HÀ NỘI – 2009  
ĐẠI HỌC QUỐC GIA HÀ NỘI  
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ  
--------  
Nguyễn Quốc Đạt  
PHƢƠNG PHÁP PHÂN TÍCH CÂU HỎI  
CHO HỆ THỐNG HỎI ĐÁP TIẾNG VIỆT  
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY  
Ngành:  
Công nghệ thông tin  
TS. Phạm Bảo Sơn  
Giảng viên hƣớng dẫn:  
HÀ NỘI – 2009  
To My Family  
Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt  
Nguyễn Quốc Đạt  
Lời cảm ơn  
Đầu tiên, tôi xin gửi lời cảm ơn sâu sắc đến giảng viên hướng dẫn của tôi là tiến  
sĩ Phạm Bảo Sơn. Thầy đã hướng dẫn, hỗ trợ cũng như truyền đạt những kinh nghiệm  
quý báu giúp tôi hoàn thành khóa luận của mình.  
Tôi xin chân thành cảm ơn tiến sĩ Bùi Thế Duy. Thầy đã giúp đỡ và tạo điều  
kiện thuận lợi cho tôi trong quá trình thực hiện khóa luận.  
Tôi xin chân thành cảm ơn các bạn: Nguyễn Quốc Đại, Nguyễn Bá Đạt, Phạm  
Đức Đăng, Trần Bình Giang. Những người bạn cùng thực tập với tôi trong phòng thí  
nghiệm. Các bạn đã đóng góp cho tôi nhiều ý kiến bổ ích.  
Tôi xin chân thành cảm ơn hai bạn: Ngô Thị Thảo và Tạ Thị Bích Huyền đã  
giúp đỡ tôi trong lúc tôi khó khăn.  
Xin cám ơn những người bạn đã luôn ở bên cạnh đã quan tâm, động viên và  
ủng hộ tôi.  
Con cảm ơn bố mẹ đã sinh thành, nuôi dưỡng, chăm sóc và động viên con. Con  
cảm ơn bố mẹ rất nhiều.  
Hà Nội, ngày 23 tháng 5 năm 2009  
Nguyễn Quốc Đạt  
i
 
Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt  
Nguyễn Quốc Đạt  
Tóm tắt  
Thay vì trả về một danh sách các tài liệu liên quan chứa đựng các từ trong câu hỏi  
giống như các cỗ máy tìm kiếm, thì hệ thống hỏi đáp đưa ra câu trả lời chính xác đáp lại  
mong muốn của người dùng. Phân tích câu hỏi là thành phần đầu tiên của bất kỳ một hệ  
thống hỏi đáp nào. Mục tiêu của thành phần này là tạo ra một bộ biểu diễn trung gian để  
sử dụng trong phần còn lại của hệ thống. Trong khóa luận này, chúng tôi xin giới thiệu  
một phương pháp phân tích câu hỏi. Phương pháp của chúng tôi đem lại một kết quả  
khả quan, góp phần xây dựng nên một hệ thống hỏi đáp tiếng Việt.  
ii  
 
Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt  
Nguyễn Quốc Đạt  
Mục lục  
iii  
 
Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt  
Nguyễn Quốc Đạt  
iv  
Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt  
Nguyễn Quốc Đạt  
Danh sách từ viết tắt  
ANNIE  
API  
A New-Nearly Information Extraction  
Application Program Interface  
General Architecture for Text Engineering  
Information Extraction  
GATE  
IE  
JAPE  
NER  
SRW  
Java Annotations Pattern Engine  
Named Entity Recognitioin  
Sematically Related Words  
v
 
Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt  
Nguyễn Quốc Đạt  
Danh sách hình vẽ  
vi  
 
Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt  
Nguyễn Quốc Đạt  
vii  
Chương 1. Giới thiệu  
Nguyễn Quốc Đạt  
Chƣơng 1. Giới thiệu  
Những cỗ máy tìm kiếm hiện nay trả về một danh sách gồm rất nhiều các tài liệu liên  
quan tới câu hỏi của người sử dụng. Nó yêu cầu người sử dụng phải lướt qua các tài  
liệu này để tìm kiếm thông tin cần thiết. Điều này gây ra sự không hài lòng của người  
dùng khi thời gian dành cho việc tìm kiếm là không nhiều.  
Các hệ thống hỏi đáp được tạo ra để giải quyết vấn đề nêu trên. Hệ thống hỏi  
đáp đưa ra một câu trả lời chính xác đáp ứng mong muốn của người sử dụng. Thành  
phần xử lý câu hỏi là thành phần đầu tiên trong bất cứ một hệ thống hỏi đáp nào.  
Nhiệm vụ của thành phần này là tạo ra một biểu diễn trung gian của câu hỏi để dùng  
trong các thành phần còn lại của hệ thống.  
Những nghiên cứu về hệ thống hỏi đáp trên thế giới đã phát triển, được ứng  
dụng từ lâu và đem lại nhiều lợi ích. Nhưng tại Việt Nam, chưa có nhiều nghiên cứu  
về hệ thống hỏi đáp. Bởi vậy, trong khóa luận này, chúng tôi giới thiệu: “Phương  
pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt” nhằm mục đích góp phần  
tạo ra một hệ thống hỏi đáp tiếng Việt.  
Trong khóa luận của mình, chúng tôi đề xuất một phương pháp phân tích câu  
hỏi tiếng Việt dựa trên các chú giải ngữ nghĩa. Phương pháp của chúng tôi tạo ra một  
biểu diễn trung gian của mỗi câu hỏi đầu vào thông qua một loạt các quá trình xử lý  
như: tiền xử lý, phân tích cú pháp, phân tích ngữ nghĩa, phân loại câu hỏi. Mỗi bộ biểu  
diễn trung gian của câu hỏi chứa đựng: dạng (nguyên tắc) cấu tạo của câu hỏi, phân  
lớp của câu hỏi, các từ khóa có trong câu hỏi cũng như những ràng buộc ngữ nghĩa  
giữa các từ khóa đó.  
Phương pháp của chúng tôi đem lại một kết quả khả quan trong việc phân tích  
các câu hỏi ngôn ngữ tự nhiên. Ngoài phương pháp của mình, chúng tôi còn nghiên cứu  
và tìm hiểu những lý thuyết liên quan đến phân tích câu hỏi trong các hệ thống hỏi đáp.  
1
 
Chương 1. Giới thiệu  
Nguyễn Quốc Đạt  
Phần còn lại của khóa luận được trình bày như sau: tại chương 2 chúng tôi giới  
thiệu về một số phương pháp phân loại câu hỏi và các kỹ thuật phân tích câu hỏi ngôn  
ngữ tự nhiên trong một số hệ thống hỏi đáp đã có. Tiếp theo, chúng tôi giới thiệu về  
GATE (General Architecture Text Engine) [45][40] là một hệ thống chú giải ngữ  
nghĩa được ứng dụng rất nhiều trong xử lý ngôn ngữ tự nhiên chương 3. Sau đó, tại  
chương 4, chúng tôi trình bày về phương pháp của mình. Cuối cùng, chúng tôi đưa ra  
một số kết quả thực nghiệm ở chương 5 kết luận ở chương 6.  
2
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
Chƣơng 2. Phân tích câu hỏi  
trong các hệ thống hỏi đáp  
Phân tích câu hỏi là thành phần đầu tiên cho một hệ thống hỏi đáp. Nó sinh ra một biểu  
diễn của câu hỏi để dùng trong phần còn lại của hệ thống. Phân tích câu hỏi ở mức độ  
đơn giản nhất chính là phân loại câu hỏi. Sau đó, những kỹ thuật xử lý ngôn ngữ tự  
nhiên được sử dụng để nhận biết chính xác các từ khóa cũng như các ràng buộc ngữ  
nghĩa trong câu hỏi nhằm mục tiêu đưa ra câu trả lời chính xác nhất.  
2.1. Phân loại câu hỏi  
Vấn đề xử lý câu hỏi ngôn ngữ tự nhiên trong hệ thống hỏi đáp có thể trở nên dễ dàng  
hơn bằng cách thực hiện phân loại [30]. Điều này có nghĩa là, quá trình tìm ra sự khác  
nhau hoặc giống nhau giữa các câu hỏi là cơ sở cho sự tổng quát sau đó [8].  
Chúng ta định nghĩa phân loại câu hỏi là nhiệm vụ ánh xmt câu hi cho  
trước vào mt trong lớp. Nghĩa là với một câu hỏi đầu vào, quá trình phân loại sẽ  
đưa ra lớp tương ứng của câu hỏi, các lớp này cung cấp những ràng buộc ngữ nghĩa  
dựa trên câu trả lời mong muốn.  
Sự kết hợp của các từ nhằm tạo ra một câu hỏi dường như là vô tận. Phương  
pháp trả lời tất cả các câu hỏi, mà hệ thống hỏi đáp có thể bắt gặp, nằm ngoài khả năng  
tính toán hiện nay. Một hướng tiếp cận, cố gắng làm cho vấn đề này trở nên dàng hơn,  
là khái quát hóa các câu hỏi thành một số lượng hữu hạn các lớp câu hỏi. Với cách làm  
như vậy, vấn đề sẽ bớt phức tạp hơn. Tính phức tạp được giảm đi bao nhiêu còn phụ  
thuộc vào phương pháp phân loại được sử dụng để làm đơn giản hóa vấn đề. Nhưng có  
một mặt không tốt của việc phân loại câu hỏi đó là luôn luôn mất một vài thông tin  
trong câu hỏi, điều này dẫn đến một hệ thống trả lời câu hỏi có thể đưa ra câu trả lời  
sai hoặc không đưa ra bất kỳ một câu trả lời nào.  
3
   
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
2.1.1. Sự phân loại câu hỏi  
Hầu hết các cách phân loại hiện nay phân loại câu hỏi dựa trên các từ để hỏi và/hoặc  
một số từ khóa trong các câu hỏi dựa trên cơ sở tri thức hiện có. Phân loại dựa trên từ  
để hỏi chuẩn (trong tiếng Anh là: who, what, when, where, why, how) không cho biết  
bất cứ thông tin về câu hỏi ngoại trừ loại câu trả lời mong muốn. Trong khi câu hỏi  
còn cho biết nhiều thông tin liên quan đến cơ sở tri thức và các thông tin này vô cùng  
có ích để tìm câu trả lời cho câu hỏi, thì cách phân loại dựa trên từ để hỏi chuẩn không  
đưa ra bất cứ mối quan hệ ngữ nghĩa nào giữa các câu hỏi cơ sở tri thức.  
Sử dụng các từ khóa với mục đích phân loại câu hỏi làm tăng sự phức tạp cho  
hệ thống. Hầu hết các hệ thống sử dụng hướng tiếp cận này thực hiện tốt trong một  
miền mà có không nhiều sự phức tạp. Tuy nhiên, đây không phải là một phương pháp  
tồi. Trong thực tế, nhiều hệ thống đã đưa ra những kết quả tốt với cách phân loại dựa  
trên từ khóa nhưng không hệ thống nào hoàn thành việc hiểu đúng ngữ nghĩa của câu  
hỏi được hỏi.  
Hệ thống phân loại các câu hỏi cần dựa trên các kiểu thông tin trong câu hỏi  
và loại câu trả lời mong muốn. Hơn nữa, hệ thống cần thực hiện phân loại một cách  
hoàn toàn độc lập với cơ sở tri thức. Hướng phân loại dựa hoàn toàn vào cơ sở tri thức  
đáng lẽ rất quan trọng, bởi vì một câu hỏi được hỏi sẽ được phân loại theo cùng một  
cách dù tri thức mà hệ thống có gì đi chăng nữa. Điều đó không có nghĩa là một câu  
hỏi sẽ có nhiều nghĩa khác nhau, do đó có nhiều câu trả lời khác nhau phụ thuộc  
vào ngữ cảnh của câu hỏi. Tuy nhiên, chúng ta có thể thấy rằng đó chỉ là một kết quả  
của một cách mà cơ sở tri thức hiểu câu hỏi. Và những câu trả lời được đưa ra có thể  
hoàn toàn khác từ một cơ sở tri thức khác.  
Ví dụ, cùng một câu hỏi được hỏi tới hai người khác nhau, chẳng hạn như, cùng  
một câu hỏi “Can I have a shot?” được hỏi tới một ông bác sĩ và một anh bồi bàn  
trong quán rượi. Câu hỏi sẽ được hiểu theo nhiều cách khác nhau, ông bác sĩ sẽ nghĩa  
“tiêm thuốc”, còn người phục vụ sẽ nghĩ là “ly rượi”.  
Bởi vậy cùng một câu hỏi nhưng sẽ bị phân vào các lớp khác nhau giống như ví  
dụ trên.  
4
 
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
2.1.2. Phân loại câu hỏi dựa trên loại câu trả lời  
Các câu hỏi chứa đựng thông tin liên quan đến loại câu trả lời mong muốn. Thông tin  
này rất quan trọng đối với hệ thống hỏi đáp, bởi vì nó xác định hình thức của một câu  
trả lời hợp lý và sẽ có những xử lý cần thiết để đưa ra câu trả lời đó cho câu hỏi. Câu  
trả lời của câu hỏi có thể có các loại sau:  
Không đƣợc xử lý (Unprocessed)- các câu trả lời chỉ đơn thuần là tìm kiếm  
trong miền tri thức để đưa ra thông tin được hỏi.  
Số - các câu hỏi mà có câu trả lời là một con số, chúng thường yêu cầu một số  
phép tính toán để thu được câu trả lời. Ví dụ, “số lượng sinh viên của lớp k50 khoa  
học máy tính là bao nhiêu?”. Những con số này không có nhiều ý nghĩa, vì thế một hệ  
thống hỏi đáp thông minh sẽ trả về một số kiểu đơn vị kèm theo câu trả lời.  
Câu hỏi đúng sai (Boolean) - đó là dạng câu hỏi mà muốn một câu trả lời là  
Đúng hoặc Không (Sai), yêu cầu xử lý cơ sở tri thức.  
Lời chỉ dẫn (Intructions) - một câu hỏi phức tạp, ví dụ như một danh sách các  
bước để hoàn thành một nhiệm vụ hoặc là một giải thích. Ví dụ, “Làm thế nào để đi từ  
thành phố Hà Nội vào thành phố Hồ Chí Minh?”, câu trả lời sẽ phụ thuộc vào ngữ  
cảnh, nhưng nó nên là một danh sách các bước giúp chúng ta có thể đi từ thành phố Hà  
Nội vào thành phố Hồ Chí Minh.  
Các bảng tóm tắt (Summaries) – dữ liệu thô được sắp xếp để đưa ra tất cả các  
thông tin liên quan thành một chủ đề đặc biệt. Ví dụ, What does Nguyễn Quốc Đạt  
like?, câu trả lời mong muốn sẽ là bảng tóm tắt của tất cả những dữ liệu về Nguyễn  
Quốc Đạt, mà cơ sở tri thức chứa đựng, có liên quan tới ngữ cảnh của câu hỏi.  
Xác định kiểu của câu trả lời mong muốn từ một câu hỏi chỉ bằng cách tìm  
kiếm các từ để hỏi: who, what, when.. là một nhiệm vụ hết sức cơ bản, dễ dàng phân  
tích và thực thi bởi vì số lượng từ để hỏi là giới hạn.  
5
 
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
2.1.3. Giới thiệu các phƣơng pháp phân loại câu hỏi  
Định nghĩa các lớp của câu hỏi là bước đầu tiên trong việc phân loại. Bước xử lý tiếp  
theo là sửa đổi câu hỏi để tạo ra mẫu rõ ràng hơn. Ví dụ các câu hỏi dạng “Who is  
sb.?” luôn luôn hỏi về tiểu sử của một người mà không quan tâm đến tên của người  
xuất hiện trong câu hỏi. Nói cách khác, điều quan trọng ở đây là biết câu chứa đựng  
một thực thể PERSON. Chúng ta không quan tâm đến thực thể này. Vì thế chúng ta có  
thể thay đổi câu hỏi thành “Who is <PERSON>?” mà không làm mất thông tin có  
ích để xác định loại câu hỏi.  
Có nhiểu phương pháp phân loại câu hỏi như sử dụng mô hình ngôn ngữ  
[23][17], hoặc các thuật toán học máy [24] như SVM (Support Vector Machine) [37],  
hoặc nguyên lý Entropy cực đại [16][41],… Phương pháp được áp dụng trong các hệ  
thống phân loại đầu tiên, và thường được kết hợp để sử dụng trong các hệ thống phân  
loại hiện nay là phương pháp phân loại sử dụng mô hình biểu thức chính quy [17].  
2.1.4. Phân loại câu hỏi sử dụng mô hình biểu thức chính quy  
2.1.4.1. Giới thiệu về biểu thức chính quy  
Một biểu thức chính quy thường gọi một mẫu, tức là một biểu thức mà mô tả một tập  
các xâu. Chúng thường được dùng để đưa ra một biểu diễn ngắn gọn của một tập hợp  
mà không phải liệt kê các phần tử. Ví dụ mẫu [Dd][Aa]t sẽ biểu diễn một tập hợp gồm  
4 xâu: “dat”, “DAt”, “dAt”, “Dat”. Hầu hết các hệ thống hình thức đều cung cấp các  
toán tử dưới đây để tạo ra các biểu thức chính quy:  
*
Lặp 0 hoặc nhiều lần của một biểu thức chính quy cho trước. Ví dụ: ab* sẽ  
khớp với các xâu “a”, “ab”, “abb”, “abbb”, …  
+
Lặp ít nhất 1 lần của một biểu thức chính quy cho trước. Ví dụ biểu thức chính  
quy ab+ sẽ khớp với ký tự „a‟ được theo sau ít nhất một ký tự „b‟, nghĩa là  
biểu thức này sẽ khớp với các xâu: “ab”, “abb”, “abbb”, … mà không khớp  
với xâu “a”.  
?
Lặp 0 hoặc 1 lần. Biểu thức chính quy: ab? Chỉ khớp với “a” hoặc “ab”.  
6
     
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
*?, +? Định tính của "*" “+” là tham lam, có nghĩa chúng khớp với nhiều chữ nhất  
có thể có. Trong một số trường hợp, hoạt động như vậy là không mong muốn.  
Ví dụ, biểu thức chính quy <.*> sẽ khớp với cả xâu “<H1>title</H1>” mà  
không phải là “<H1>. Thêm dấu ? vào đằng sau các toán tử: *, + chúng sẽ  
thực hiện khớp mẫu tối thiểu, có nghĩa là khớp với số lượng ít chữ nhất có thể.  
Khi sử dụng biểu thức <.*?> để khớp trên xâu “<H1>title</H1>” thì biểu  
thức sẽ khớp với “<H1>” mà không phải là cả xâu.  
{m} Cho phép lặp lại đúng m lần của biểu thức chính quy cho trước. Ví dụ, a{6} sẽ  
khớp với đúng 6 ký tự ‗a‘ là “aaaaaa”.  
{m,n} Lặp từ m đến n lần của biểu thức chính quy cho trước. Ví dụ a{3,5} sẽ khớp  
với xâu có từ 3 đến 5 ký tự „a‟. Thiếu m thì sẽ lặp từ 0 đến n lần, còn nếu thiếu  
n thì sẽ lặp ít nhất là m lần.  
|
A | B là một biểu thức chính quy, với A và B là hai biểu thức chính quy bất kỳ.  
Biểu thức này là một biểu thức chính quy chỉ khớp với A hoặc B.  
"." (dấu chấm) Khớp với tất cả các ký tự trừ ký tự xuống dòng \n‟.  
^
$
\
(dấu mũ) Khớp từ ký tự đầu một xâu.  
Khớp đến cuối xâu.  
Đây là một ký tự đặc biệt cho phép khớp các ký tự như „*‟, „?‟,…bằng cách  
thêm ký tự này vào đằng trước, \* sẽ khớp với „*‟.  
[]  
Được sử dụng để xác định một tập các ký tự. Các ký tự có thể được liệt kê  
riêng lẻ hoặc một dãy các ký tự có thể được nhận biết bằng cách cho hai ký tự  
và phân chia chúng bởi ‗-‘. Ví dụ, [bac] sẽ khớp với ba ký tự ‗a‟, „b‟, „c‟; [a-z]  
sẽ khớp với tất cả ký tự viết thường từ a đến z. Nếu ký tự ^ là ký tự đầu tiên  
trong tập các ký tự thì biểu thức sẽ khớp với bất cứ ký tự nào không nằm trong  
tập các ký tự đó. Ví dụ, [^5] sẽ khớp với bất cứ ký tự nào ngoại trừ „5‟ [^^]  
sẽ khớp với bất cứ ký tự nào ngoại trừ „^‟.  
(biểu_thức) Khớp với bất cứ biểu thức chính quy nào bên trong hai dấu ngoặc đơn.  
Một số ký tự đặc biệt:  
7
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
\d  
Khớp với chữ số số bất kỳ, \d chính là [0-9].  
\D  
\w  
Khớp với ký tự bất kỳ mà không phải là chữ số.  
\w chính là [a-zA-Z0-9] khớp với các ký tự viết thường, viết hoa và chữ số.  
\W \W chính là [^a-zA-Z0-9].  
\s  
\S  
Khoảng trắng (space)  
Ký tự bất kỳ không phải là khoảng trắng, \S chính là [^\s].  
Ví dụ áp dụng: biểu thức chính quy <a[^>]*>.*?</a> sẽ khớp với các siêu liên kết.  
8
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
2.1.4.2. Phân loại câu hỏi sử dụng biểu thức chính quy  
Ý tưởng cơ bản của hệ thống phân loại áp dụng mô hình biểu thức chính quy [17] là  
xác định lớp của câu hỏi dựa trên mẫu câu, bao gồm các từ để hỏi, dãy các từ nào đó  
và một số từ thể hiện lớp của các câu hỏi đặc biệt. Những mẫu đó được định nghĩa bởi  
biểu thức chính quy.  
Ví dụ, một câu hỏi bắt đầu với từ “where” là một câu hỏi về vị trí. Đối với từ  
“what ” chúng ta có thể tìm một số từ khóa để đưa ra xác định của chúng ta, chẳng  
hạn như trong câu hỏi “what” mà có các từ “agency”, “company” “university” thì  
các câu hỏi đó liên quan đến một lớp tổ chức. Sau đây là một số biểu thức chính quy  
sử dụng cho các lớp nào đó của các câu hỏi:  
Các câu hỏi bắt đầu với từ “what” và hỏi về một thực thể con người:  
(actor | actresse? | attorne(y | ie) | teacher | …. senator)s?  
Các câu hỏi mà bắt đầu với từ “how” và hỏi về một thực thể đo lường:  
long | short | wide | far | close | big.* (diameter | radius)  
Hướng tiếp cận này rất hiệu quả và hữu ích trên một số các mẫu câu hỏi. Nhưng  
có nhiều trường hợp khó khăn khi sử dụng mẫu. Chẳng hạn như, câu trả lời cho câu  
hỏi “who” có thể là một người, một tổ chức, thậm chí là một địa điểm nào đó. Ví dụ:  
“Who is the largest producer of laptop computers in the world?”, chúng ta dễ dàng  
nhận thấy đây là một câu hỏi về một tổ chức nhưng hệ thống của chúng ta không xác  
định được chính xác khi chỉ dựa trên mẫu câu hỏi.  
Từ ví dụ trên, chúng ta cần thêm các thông tin ngữ nghĩa trong câu hỏi. Hiện  
nay, thông tin ngữ nghĩa có thể được xác định bởi biểu thức chính quy thông qua văn  
phạm JAPE trong GATE [45]. Chúng ta sẽ tìm hiểu về GATE sâu hơn ở chương 3 và  
áp dụng thực tế được trình bày trong chương 4. Tuy nhiên, trong mô hình biểu thức  
chính quy hiện tại, các thông tin ngữ nghĩa lại không xuất hiện trong mô hình biểu  
thức chính quy. Có một cách để giải quyết vấn đề này là xây dựng một tập mẫu đầy đủ  
và chính xác hơn nhưng cách này tốn rất nhiều công sức của con người. Thay vì xây  
đựng một mô hình mẫu câu hỏi ngày càng lớn chúng ta hướng tới một phương pháp  
linh hoạt và tự động hơn: sử dụng mô hình ngôn ngữ [23][17].  
9
 
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
2.1.5. Phân loại câu hỏi sử dụng mô hình ngôn ngữ  
Mô hình ngôn ngữ [23][17]phân bố xác suất trên tập dữ liệu huấn luyn. Chúng ta  
xây dng mt mô hình ngôn ngcho mi lp ca các câu hi mu (chúng ta đã xác  
định các lp trong bước đầu tiên khi thc hin phân loi). Khi có mt câu hi mi ,  
chúng ta stính xác sut  
ca là thỏa mãn:  
, nghĩa là tính xác suất để thuc vào lp . Và lp  
Vì  
đã được xác định, nên chúng ta chỉ cần xác định tính xác suất  
. Chúng ta có:  
.
Gii thiết rng mt truy vn bao gm từ:  
Thông thường, mô hình n-gram được tạo ra để đơn giản hóa phép tính:  
Công thức trên có nghĩa là xác suất xuất hiện của một từ  
thuc vào từ đằng trước.  
trong lp chphụ  
Mô hình ngôn ngữ hơn mô hình biểu thức chính quy ở tính linh hoạt. Biểu thức  
chính quy được soạn thảo theo các luật cứng (hard-coded), nó cần phải sửa đổi để giải  
quyết những trường hợp mới. Trong khi đó, mô hình ngôn ngữ có thể tự động sửa đổi.  
Với một tập hợp dữ liệu huấn luyện lớn, sự thực thi của mô hình ngôn ngữ sẽ được cải  
thiện.  
Mô hình n-gram [23] là mô hình ngôn ngtrong xlý ngôn ngtnhiên da  
trên thng kê, n-gram là mt dãy con gm phần tử liên tiếp nhau của một dãy các  
phần từ cho trước. Ví dụ với đầu vào : ―Ba học sinh đi đá bóng‖  
“Ba”, “học”, “sinh”, “đi”, “đá”, “bóng” gọi là các 1-gram hay unigram.  
“Ba học”, “học sinh”, “sinh đi”, “đi đá”, “đá bóng” gọi là các 2-gram hay bigram.  
10  
 
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
2.1.5.1. Phân lớp câu hỏi sử dụng mô hình unigram  
Áp dụng mô hình unigram ta có:  
Chúng ta cần ước lượng xác sut ca mt tw xut hin trong lp là  
.
Gi  
là số lần xuất hiện của dãy  
trong  
lớp C. Chúng ta có thể thấy rằng:  
Vy, làm thế nào gii quyết trường hp tn ti các tmà không bao gixut  
hin trong lp . Chúng ta không muốn chúng có xác suất là 0, vì thế các xác suất  
bằng 0 của một số từ phải được gán giá trị khác 0 và xác suất của những từ khác sẽ  
được điều chỉnh phù hợp.  
Có rt nhiều cách để gii quyết vấn đề này. Đơn giản nhất đó là sử dng mt  
hng snhỏ để gán cho các xác sut ca tt ccác tkhông xut hin trong lp C,  
trong khi xác sut ca các tkhác thì bgiảm đi phù hợp. Gi  
là số lượng  
các từ không xut hin trong lp và là mức độ làm mịn. Chúng ta có công thức  
làm mịn để loại bỏ xác suất bằng 0 như sau:  
Còn một cách khá phổ biến đó là sử dụng phương pháp làm mịn Good-Turing  
[13]. Phương pháp làm mịn Good-Turing ước lượng xác sut cho các tmà sln xut  
hin nhhoc không xut hiện, theo ước lượng Good-Turing,  
được tính theo  
công thức sau đây:  
11  
 
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
Gi là cỡ của tập dữ liệu chuẩn,  
là số lượng các tmà xut hiện đúng  
ln trong .Ta có , , được tính theo các công thức dước đây:  
M là số lớn nhất thỏa mãn:  
trong đó  
Và:  
12  
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
2.1.5.2. Phân lớp câu hỏi sử dụng mô hình bigram  
Áp dụng mô hình bigram ta có công thức:  
Chúng ta cần xác định xác suất có điều kin  
.
Gi  
là số lượng các từ không bao giờ xuất hiện đằng sau  
trong lớp C, và S là mức độ làm mịn. Khi đó, công thức làm mịn để loại bỏ xác suất 0  
được chỉ ra trong 2 trường hợp dưới đây.  
Xét trường hp 1:  
, khi đó xác suất cho tất cả ẩn là S. Vì thế  
Xét trường hp 2:  
, khi đó tất cả các  
n. Vì thế  
là giống nhau cho mọi  
:
Sử dụng mô hình Back-Off [22], chúng ta cũng có thể loại bỏ các xác suất 0.  
Mô hình Back-Off được phát triển để dùng trong mô hình bigram thay cho ước lượng  
Good-Turing. Ý tưởng của mô hình Back-Off là chỉ cho phép  
tlthun  
vi  
khi sự xuất hiện của  
trong lp C lớn hơn một số nào đó.  
Mt khác chúng ta sdng  
để ước lượng  
. Ta có công thức:  
13  
 
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
α là một sự trừ hao để trừ những xác suất của các bigram xuất hiện nhiều lần và  
chúng ta giảm tương tự như trong Good-Turing.  
β được lựa chọn để thỏa mãn công thức sau:  
hàm của  
, đây là một  
.
K nên là một số nhỏ và chúng ta nhận thấy rằng K = 0 đưa ra sự thực hiện tốt  
nhất cho dữ liệu.  
2.1.5.3. Kết hợp hai mô hình unigram bigram  
Để có thể đánh giá chính xác hơn, chúng ta kết hp 2 mô hình unigram bigram vi  
nhau. Công thc tính xác sut  
như sau:  
Các giá trị khác nhau cho λ sẽ được kiểm tra, giá trị nào tốt nhất sẽ được chọn.  
14  
 
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
2.1.6. Kết hợp mô hình ngôn ngữ với mô hình biểu thức chính quy  
Mặc dù mô hình ngôn ngữ [23][17] có vẻ hấp hơn nhưng nó vẫn có tồn tại những mặt  
không tốt. Một trong những mặt đó là tính không ổn định.Ví dụ, chúng ta ko có sự thu  
hẹp nào trong kết quả phân loại của mô hình ngôn ngữ, hệ thống có thể phân loại câu  
hỏi bắt đầu với từ “how many” như câu hỏi về người. Trong khi đó, mẫu câu này rất  
dễ dàng được phân loại chính xác bởi mô hình biểu thức chính quy.Vì thế chúng ta cố  
gắng kết hợp chúng để cải thiện sự thực thi. Mô hình ngôn ngữ được thay đổi để sinh  
ra một danh sách được xếp hạng của các lớp dựa trên độ tin cậy và mô hình biểu thức  
chính quy đưa ra tất cả các lớp phù hợp với mẫu câu hỏi. Sự kết hợp như vậy sinh ra  
lớp với thứ hạng cao nhất được chấp nhận bởi mô hình biểu thức chính quy chính là  
kết quả cuối cùng. Theo cách như vậy chúng ta có thể tránh được sai lầm.  
15  
 
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
2.1.7. Phân loại câu hỏi sử dụng các thuật toán học máy  
Sử dụng các thuật toán học máy [24] như SVM (Support Vector Machine) [37], hoặc  
nguyên lý Entropy cực đại [16][41],… thuận lợi hơn các phương pháp thủ công vì  
nhiều nguyên nhân. Xây dưng bộ phân loại thủ công cho các câu hỏi là một nhiệm vụ  
thiếu hấp dẫn vì yêu cầu phân tích một số lượng rất lớn các câu hỏi. Hơn nữa ánh xạ  
các câu hỏi tới các lớp yêu cầu sử dụng các phần tử từ vựng (các từ đặc biệt) vì thế  
một mô hình hóa của ánh xạ có thể sẽ rất lớn.  
Trong khi đó, phương pháp sử dụng các thuật toán học có thể chỉ cần một số  
lượng nhỏ các loại đặc trưng sau đó được mở rộng theo phương pháp hướng dữ liệu để  
có khả năng thực hiện trên một lượng lớn các đặc trưng. Ngoài ra, một hệ thống phân  
lớp sử dụng thuật toán học máy thì mềm dẻo dễ tái sử dụng lại hơn một bộ phân lớp  
thủ công bởi vì nó có thể được huấn luyện theo một nguyên tắc phân loại mới chỉ  
trong thời gian ngắn.  
Sự khó khăn trong một bộ phân lớp thủ công là xem xét các biểu diễn khác  
nhau của cùng một câu hỏi. Ví dụ:  
Ai là sinh viên của lớp khoa học máy tính?  
Lớp khoa học máy tính có những sinh viên nào?  
Những sinh viên của lớp khoa học máy tính là ai?  
Ai học lớp khoa học máy tính?  
Các từ khác nhau, các cấu trúc cú pháp khác nhau có thể tạo khó khăn cho một  
bộ phân lớp thủ công dựa trên một tập nhỏ các luật để sinh ra tất cả các ánh xạ cho  
cùng một loại câu trả lời.  
Mặc dù cần dữ liệu huấn luyện và cách chọn đặc trưng, nhưng với các thuật  
toán học tốt và các đặc trưng thích hợp, có thể không bị ảnh hưởng bởi số lượng lớn  
các đặc trưng ẩn, sẽ phân lớp chính xác các ví dụ nêu trên.  
Các đặc trưng thường được sử dụng trong các hệ thống phân lớp câu hỏi như:  
16  
 
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
Các đặc trưng từ vựng biểu diễn các từ của một câu hỏi được xem như là một đặc  
trưng. Các đặc trưng từ vựng bao gồm: các từ thô, các từ viết thường, các từ gốc  
(trong tiến Anh là các từ được loại bỏ hậu tố) và từ được bổ ngữ.  
Sử dụng n-gram bên trong một đặc trưng.  
Hai từ đầu tiên hoặc cụm danh từ đầu tiên của câu hỏi được biểu diễn như là một  
đặc trưng.  
Các đặc trưng cú pháp biểu diễn các khía cạnh cú pháp của một câu hỏi gồm có:  
các nhãn từ loại, hoặc cấu trúc cụm cú pháp không đệ quy (non-recursive  
grammatical phrase structure).  
Các thực thể có tên (Named Entity).  
Danh sách các từ liên quan đến nhau về mặt ngữ nghĩa (Sematically Related Words  
hay SRW) [18][19].  
Hệ thống phân loại áp dụng thuật toán học sử dụng (một hoặc nhiều trong) các  
đặc trưng nêu trên để tạo ra một mô hình phân loại dựa trên các câu hỏi mẫu dùng để  
huấn luyện. Sau đó, sử dụng mô hình phân loại để đưa ra lớp tương ứng của một câu  
hỏi mới.  
17  
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
2.2. Phân tích câu hỏi trong các hệ thống hỏi đáp sử dụng cơ sở dữ  
liệu  
Một giao diện ngôn ngữ tự nhiên tới cơ sở dữ liệu (Natural Language Interface to  
Database hay NLIDB) là một hệ thống cho phép người sử dụng truy cập thông tin  
được lưu bên trong một cơ sở dữ liệu bằng cách cho một yêu cầu được biểu diễn dưới  
dạng ngôn ngữ tự nhiên.  
Phương pháp phân tích câu hỏi được áp dụng trong các hệ thống NLIDB đầu  
tiên là sử dụng kỹ thuật so khớp mẫu, sau đó là các kỹ thuật phân tích cú pháp và hiện  
nay là các kỹ thuật phân tích ngữ nghĩa.  
2.2.1. Các hệ thống so khớp mẫu  
Một số hệ thống NLIDB đầu tiên dựa vào kỹ thuật so khớp mẫu để trả lời câu hỏi của  
người sử dụng. Để minh họa một cách tiếp cận so khớp mẫu đơn giản, chúng ta xét  
một bảng cơ sở dữ liệu chứa đựng thông tin về các quốc gia sau đây:  
Countries table  
Country  
France  
Italy  
Capital  
Paris  
Rome  
Language  
French  
Italian  
Một hệ thống so khớp mẫu nguyên thủy có thể sử dụng luật sau:  
Mẫu:  
… “capital” … <country>  
Hành động:  
Mẫu:  
Trả về Capital của hàng mà Country = <country>  
. . . “capital” . . . “country”  
Hành động:  
Trả về Capital Country của mỗi hàng  
18  
   
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp  
Nguyễn Quốc Đạt  
Luật đầu tiên có nghĩa là: nếu câu hỏi của người sử dụng chứa đựng từ  
“capital” được theo sau bởi tên của một quốc gia (một cái tên xuất hiện trong cột  
Country) thì hệ thống xác định vị trí cột chứa đựng tên quốc gia đó và đưa ra tên thủ  
đô tương ứng.  
Cho ví dụ, với câu hỏi: “What is the capital of Italy?”, hệ thống sẽ sử dụng luật  
đầu tiên và trả về kết quả là “Rome. Một luật có thể cho phép hệ thống xử lý nhiều  
câu hỏi như: “Print the capital of Italy”, “Could you please tell me what is the capital  
of Italy?”, … Trong tất cả các trường hợp đó, câu trả lời được sinh ra là như nhau.  
Theo luật thứ hai, bất kỳ câu hỏi của người sử dụng chứa đựng từ “capital”  
được theo sau bởi từ “country” hệ thống sẽ trả về tên thủ đô của tất cả các quốc gia có  
trong cơ sở dữ liệu.  
Ví dụ, “what is the capital of each country?”, “List the capital of every  
country?”, “Captial and country please.”, … sẽ được xử lý bởi luật thứ hai.  
Lợi thế chính của hướng tiếp cận so khớp mẫu là tính đơn giản của nó và hệ  
thống có thể dễ dàng thực thi. Ngoài ra, một số hệ thống so khớp mẫu thường thành  
công trong việc đưa ra một câu trả lời hợp lý. Các hệ thống so khớp mẫu không nhất  
thiết phải dựa trên các kỹ thuật đơn giản như được trình bày phía trên. Một số hệ  
thống so khớp mẫu có khả năng thực hiện tốt trong những ứng dụng nhất định. Tuy  
nhiên tính chất không sâu của phương pháp so khớp mẫu thường dẫn tới những kết  
quả sai.  
19  

Tải về để xem bản đầy đủ

pdf 104 trang yennguyen 26/04/2025 30
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_phuong_phap_phan_tich_cau_hoi_cho_he_thong_hoi_dap.pdf