Chúng tôi đã định nghĩa một bộ biểu diễn trung gian gồm có gồm có: “Dạng cấu tạo câu hỏi” và một (hoặc nhiều) bộ biểu diễn con. Mỗi bộ biểu diễn con có dạng:
(Dạng cấu tạo bộ biểu diễn, Lớp câu hỏi, Thuật ngữ 1, Mối quan hệ, Thuật ngữ
2, Thuật ngữ 3).
Trong đó, “Dạng cấu tạo câu hỏi” là một trong các dạng đã nêu ở phần 4.4.2.1,
“Thuật ngữ 1” là một khái niệm, ―Thuật ngữ 2‖ và “Thuật ngữ 3‖ (nếu có) là các thực
thể. “Mối quan hệ” được dùng để liên kết các thuật ngữ.
Khi câu hỏi được tổng hợp từ ít nhất hai câu hỏi con. “Dạng cấu tạo bộ biểu diễn” trong mỗi bộ con chính là “Dạng cấu tạo câu hỏi” của câu hỏi con tương ứng. “Lớp câu hỏi” trong mỗi bộ con chính là lớp của câu hỏi con tương ứng.
Nếu dạng câu hỏi là AffirmNeg hoặc AffirmNeg_2Triple hoặc AffirmNeg_3Term , nghĩa là câu hỏi được phân vào lớp YesNo, thì cho phép “Thuật ngữ 1” có thể là thực thể. Nếu câu hỏi có dạng Definition thì cho phép “Thuật ngữ 2” có thể là khái niệm.
Chúng tôi có định nghĩa trước một số mẫu câu là cấu tạo của câu hỏi. Mỗi câu hỏi đầu vào mà có cấu tạo khớp với một trong các mẫu định trước sẽ được chú giải bởi kiểu Maucauhoi. Dựa trên cách nhìn nhận thông qua bộ biểu diễn thô và mẫu câu hỏi, kiểu chú giải Maucauhoi sẽ có các đặc trưng type nhận giá trị là “QU Pattern”, đặc trưng category nhận môt trong các giá trị là: “Normal”, “Unknterm”, “Unknrel”, “Definition”, “And”, “Or”, “Compare”, “ThreeTerm”, “Clause”, “Combine”, “AffirmNeg”, “AffirmNeg_3Term”, “AffirmNeg_2Triple”, và đặc trưng pattern là xâu
biểu diễn mẫu câu hỏi. Hình 4-16 sau đây mô tả một kiểu chú giải Maucauhoi khi câu hỏi đầu vào khớp đúng mẫu định trước.
72
Hình 4-16: Một ví dụ về kiểu chú giải Maucauhoi
Chúng ta sẽ cùng xem xét các câu hỏi mà có cấu tạo thuộc vào một trong các dạng Normal, UnknRel, UnknTerm, Definition, AffirmNeg trước.
Nếu một câu hỏi đầu vào được khớp với một trong các mẫu đã được định nghĩa. Quá trình so khớp mẫu sẽ lấy ra sẽ lấy ra tập chứa các từ với kiểu chú giải TokenVn,
tập chứa các cụm từ (hoặc từ) với kiểu chú giải Cumdanhtu, tập chứa các cụm từ (hoặc từ) với kiểu chú giải Danhngu, tập chứa các cụm từ (hoặc từ) với kiểu chú giải Moiquanhe, tập chứa các cụm từ (hoặc từ) với kiểu chú giải Tudehoi.
Dựa trên đặc trưng category của kiểu chú giải Tudehoi, “lớp của câu hỏi” được xác định, “dạng cấu tạo câu hỏi” và “dạng cấu tạo bộ biểu diễn” chính là giá trị
tương ứng với đặc trưng category của kiểu chú giải Maucauhoi.
Tiếp theo, module sẽ loại bỏ những sự trùng lặp. Đầu tiên, bất cứ từ nào với kiểu chú giải TokenVn nằm trong một cụm từ được chú giải bởi một trong các kiểu Cumdanhtu, Moiquanhe, Tudehoi thì sẽ bị loại bỏ khỏi tập các từ với kiểu chú giải TokenVn. Thường thì, chúng ta không cần xử lý việc lấy ra tập các chú giải TokenVn
và thực hiện loại bỏ trùng lặp đối với các câu hỏi dạng Normal, UnknRel, UnknTerm,
Definition, AffirmNeg.
Hoàn toàn tương tự, nếu một cụm từ được chú giải bởi kiểu Cumdantu nằm
trong một cụm được chú giải bởi một trong các kiểu Moiquanhe, Tudehoi, thì cụm từ
đó sẽ bị loại bỏ khỏi tập chứa các cụm có kiểu chú giải Cumdanhtu. Ví dụ: “ai là những sinh viên của lớp khoa học máy tính?”
73
Từ câu hỏi trên, tập các cụm danh từ là “những sinh viên”, “lớp khoa học máy tính”, tập chứa một từ để hỏi là “ai”, tập chứa một mối quanh hệ là “là những sinh viên của”. Vì “những sinh viên” được chú giải bởi kiểu chú giải Cumdanhtu có điểm bắt đầu
và điểm kết thúc nằm giữa điểm bắt đầu và điểm kết thúc của cụm “là những sinh viên của” được chú giải bởi kiểu Moiquanhe. Do đó, “những sinh viên” sẽ bị loại bỏ ra khỏi
tập các cụm danh từ. Câu hỏi chỉ còn lại tập chứa một mối quan hệ “là những sinh viên
của”, tập chứa một từ để hỏi “ai”, tập chứa một cụm danh từ “lớp khoa học máy tính”.
Từ mẫu câu hỏi chúng ta có thể biết được bộ biểu diễn thô của câu hỏi là gì. Trong ví dụ trên ta có bộ biểu diễn thô: (?, là những sinh viên của, lớp khoa học máy
tính, ?). Chú giải Danhngu được sử dụng để lấy ra thực thể hoặc khái niệm trong các
cụm từ được chú giải bởi kiểu Cumdanhtu hoặc Tudehoi. Những giới từ có trong ―mối
quan hệ‖ sẽ bị loại bỏ. Một biểu diễn trung gian của câu hỏi ví dụ được sinh ra giống
như hình 4-17 sau đây: (Unknterm, (QUWho, ?, là sinh viên, lớp khoa học máy tính)).
74
Chúng ta tiếp tục với những câu hỏi phức tạp hơn, ví dụ như:
“sinh viên của lớp khoa học máy tính mà có quê ở Hà Tây là ai?”.
“Dạng cấu tạo câu hỏi” là “And”, sau khi loại bỏ trùng lặp như đã trình bày ở
trên, dựa trên mẫu câu hỏi được khớp một biểu diễn trung gian gồm hai bộ con có dạng:
(Dạng cấu tạo bộ biểu diễn, Lớp câu hỏi, Thuật ngữ 1, Mối quan hệ, Thuật ngữ 2, ?)
Trong đó “Lớp câu hỏi”, “Thuật ngữ 1”, “Mối quan hệ”, “Thuật ngữ 2” hoàn toàn được xác định chính xác. Giá trị “Dạng cấu tạo bộ biểu diễn” phụ thuộc vào bộ
biểu diễn. Nếu bộ biểu diễn có đầy đủ “Thuật ngữ 1”, “Mối quan hệ”, “Thuật ngữ 2” thì “Dạng cấu tạo bộ biểu diễn” nhận giá trị là “Normal”, nếu thiếu “Thuật ngữ 1” thì giá trị của “Dạng cấu tạo bộ biểu diễn” là ―Unkterm”, nếu không có ―mối quan
hệ‖ thì giá trị của “Dạng cấu tạo bộ biểu diễn” là “Unknrel”.
75
Nhập nhằng trong phân lớp câu hỏi trên sẽ được giải quyết ở phần này. Ví dụ:
“số lượng sinh viên học lớp khoa học máy tính là 45 phải không?”
Trong phần phân lớp câu hỏi, chúng ta có thể thấy rằng câu hỏi không biết thuộc về lớp ManyClass hay là lớp YesNo. Trong quá trình phân tích mẫu của câu hỏi
(trong hình 4-19), câu hỏi này thuộc về lớp ManyClass có “Dạng cấu tạo câu hỏi” và “Dạng cấu tạo bộ biểu diễn” nhận giá trị là “AffirmNeg_3Term” hoàn toàn có thể
chấp nhận được vì nó cũng mang ý nghĩa hỏi Đúng hoặc Sai.
76
Chƣơng 5. Kết quả thực nghiệm
Chúng tôi thực hiện phương pháp của mình trên một tập dữ liệu gồm 60 câu hỏi (trong phụ lục C). Các câu hỏi có cấu tạo cú pháp khác nhau liên quan đến một số khái niệm trong miền tri thức trường đại học. Nguyên nhân chúng tôi lựa chọn các câu hỏi này là do chúng thích hợp cho hệ thống hỏi đáp tiếng Việt dựa trên Ontology do Nguyễn Quốc Đại [42] xây dựng và thử nghiệm.
Các tiêu chí sau được xác định như một độ đo để so sánh:
Tiêu chí 1: Số lượng câu hỏi mà nguyên tắc cấu tạo của nó nằm trong tập chứa các mẫu cấu tạo đã được định nghĩa. Nghĩa là, số lượng câu hỏi khi vào module so khớp mẫu sẽ được chú giải bởi kiểu Maucauhoi.
Tiêu chí 2: Số lượng câu hỏi thỏa mãn tiêu chí 1, kết quả phân tích là một bộ biểu diễn trung gian gồm có: “Dạng cấu tạo câu hỏi” và một (hoặc nhiều) bộ biểu diễn con. Mỗi bộ biểu diễn con có dạng:
(Dạng cấu tạo bộ biểu diễn, Lớp câu hỏi, Thuật ngữ 1, Mối quan hệ, Thuật ngữ 2, Thuật ngữ 3).
Trong đó “Thuật ngữ 1” là một khái niệm (ngoại trừ một số trường hợp đặc biệt-
câu hỏi thuộc lớp YesNo), ―Thuật ngữ 2‖ (ngoại trừ trường hợp cấu tạo câu hỏi
dạng Definition) và “Thuật ngữ 3‖ (nếu có) là các thực thể. “Mối quan hệ” được dùng để liên kết các thuật ngữ và luôn chứa đựng khái niệm trong nó.
Do vậy, các câu hỏi thỏa mãn tiêu chí 2 mà không thỏa mãn tiêu chí 1 là những câu hỏi bị phân tích sai.
Tiêu chí 3: Số lượng câu hỏi mà chỉ có một phần nào đó của câu hỏi có nguyên tắc cấu tạo thuộc vào tập chứa các mẫu cấu tạo đã định nghĩa. Nghĩa là, số lượng câu
77
hỏi mà chỉ có một phần nào đó được chú giải bởi kiểu Maucauhoi. Kết quả phân
tích có thể chấp nhận được, cho phép thực hiện trong phần còn lại của hệ thống. Hình 5-1 dưới đây là một ví dụ về một phần nào đó của câu hỏi khớp được với một mẫu đã định nghĩa:
Hình 5-1: Ví dụ về một phần câu hỏi đƣợc khớp mẫu
Tiêu chí 4: Giống như tiêu chí 3 nhưng kết quả phân tích thiếu thông tin để có thể thực hiện trong phần còn lại của hệ thống.
Số lượng câu hỏi thỏa mãn tiêu chí 2 được coi là kết quả đánh giá độ chính xác của
quá trình phân tích câu hỏi. Bảng 5-1 dưới đây đưa ra kết quả đánh giá:
Bảng 5-1: Kết quả đánh giá
Các câu hỏi thỏa mãn tiêu chí 1 được sắp xếp theo thứ tự từ câu hỏi số 1 48 trong phụ lục C. Trong khi đó các câu hỏi thỏa mãn tiêu chí 2 được sắp xếp theo thứ tự từ 1 45. Các câu hỏi thỏa mãn tiêu chí 3 được xắp xếp theo thứ tự từ 49 51 trong khi các câu hỏi thỏa mãn tiêu chí 4 được xắp xếp theo thứ tự từ vị trí 52 55 trong phụ lục C.
Các câu hỏi còn lại không thỏa mãn bất cứ tiêu chí nào được nêu ra. Hướng giải quyết trong thời gian tới là cập nhật thêm nguyên tắc cấu tạo của các câu hỏi này cũng như nguyên tắc cấu tạo của các câu hỏi thỏa mãn tiêu chí 4 vào tập chứa mẫu cấu tạo.
Tiêu chí 1 Tiêu chí 2 Tiêu chí 3 Tiêu chí 4
78
Câu hỏi: ―“sinh viên nào học ở lớp khoa học máy tính của trường đại học Công
Nghệ?” thỏa mãn tiêu chí 2 như hình 5-2 dưới đây:
Hình 5-2: Kết quả phân tích đúng - câu hỏi thỏa mãn tiêu chí 2
Câu hỏi: “Hãy cho biết số lượng sinh viên của lớp khoa học máy tính?”
Thỏa mãn tiêu chí 3 như hình 5-3 sau đây, kết quả đưa ra hoàn toàn có thể chấp nhận được:
79 Nhưng với câu hỏi:
“sinh viên nào học lớp khoa học máy tính của trường đại học Công Nghệ?”
thỏa mãn tiêu chí 1 nhưng không thỏa mãn tiêu chí 2, do đó kết quả phân tích là sai. Nguyên nhân là vì bộ biểu diễn chứa đựng “Mối quan hệ” nhận giá trị là “học lớp
khoa học máy tính của” không thỏa mãn yêu cầu. Hình 5-4 sau đây đưa ra kết quả
phân tích câu hỏi này:
Hình 5-4: Một ví dụ về phân tích sai – câu hỏi thỏa mãn tiêu chí 1 nhƣng không thỏa mãn tiêu chí 2
80
Chƣơng 6. Kết luận và hƣớng phát triển
Phân tích câu hỏi là một bài toán cơ bản trong xử lý ngôn ngữ tự nhiên. Đối với tiếng Việt bài toán này trở nên khó khăn hơn vì tính phức tạp của cấu trúc câu hỏi cũng như những ràng buộc ngữ nghĩa trong câu hỏi, ví dụ như: từ để hỏi có thể xuất hiện ở nhiều vị trí.
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 tiếng Việt của mình. Phương pháp của chúng tôi dựa trên các chú giải ngữ nghĩa thông qua văn phạm JAPE [45]. Với mỗi câu hỏi đầu vào, thông qua các quá trì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, hệ thống phân tích sinh ra một bộ biểu diễn trung gian gồm có: “Dạng cấu tạo câu hỏi” và một (hoặc nhiều) bộ
biểu diễn con. Mỗi bộ biểu diễn con có dạng:
(Dạng cấu tạo bộ biểu diễn, Lớp câu hỏi, Thuật ngữ 1, Mối quan hệ, Thuật ngữ 2, Thuật ngữ 3).
Trong đó, “Dạng cấu tạo câu hỏi” là nguyên tắc (mẫu) cấu tạo của câu hỏi, “Thuật ngữ 1” là một khái niệm, ―Thuật ngữ 2‖ và “Thuật ngữ 3‖ (nếu có) là các thực
thể. “Mối quan hệ” là ràng buộc ngữ nghĩa giữa các thuật ngữ và luôn chứa đựng khái niệm bên trong nó.
Khi một câu hỏi được tổng hợp từ nhiều câu hỏi con, nghĩa là có nhiều bộ biểu diễn con được sinh ra, thì “Dạng cấu tạo bộ biểu diễn” và “Lớp câu hỏi” trong mỗi
bộ biểu diễn con lần lượt là “Dạng cấu tạo câu hỏi” và lớp của câu hỏi con tương ứng. Hệ thống áp dụng phương pháp phân tích này thực hiện tốt đối với những câu hỏi có cấu tạo đơn giản. Trong khi ở những câu hỏi có cấu tạo phức tạp hơn thì khả năng phân tích bị giảm đi. Những kết quả khả quan ban đầu (phân tích được chính xác
45 / 60 câu hỏi) đã góp phần tạo nên hệ thống hỏi đáp tiếng Việt dựa trên Ontology do
81
Trong thời gian tới, chúng tôi sẽ tạo một tập chứa nhiều mẫu cấu tạo câu hỏi hơn. Song song với việc cập nhật mẫu, chúng tôi sẽ cố gắng thực hiện hướng tiếp cận nhằm giải quyết vấn đề xảy ra với các câu hỏi mà cấu tạo của các câu hỏi ấy không khớp với mẫu cấu tạo nào có sẵn. Ý tưởng của hướng tiếp cận đó là sinh ra một số câu hỏi dựa trên các chú giải ngữ nghĩa và các mẫu câu có sẵn, các câu hỏi này có ý nghĩa tương tự với câu hỏi ban đầu để cho người sử dụng lựa chọn.
82
Phụ lục A. Chƣơng trình nhúng Java vào JAPE
Phase: EditYesnoAnno
Input: TokenVn Split Options: control = appelt
Macro: YesNo
/*Macro YesNo dùng để khớp các cụm từ: phải không, đúng không, có đúng là, có phải là, có đúng, có phải, Có đúng, Có phải, Có đúng là, Có phải là*/ ( ( ({TokenVn.string == "phải"}|{TokenVn.string == "đúng"}) ? {TokenVn.string == "không"} ) | ( ({TokenVn.string == "Có"} | {TokenVn.string == "có"}) ({TokenVn.string == "đúng"} | {TokenVn.string == "phải"}) ({TokenVn.string == "là"})? ) ) Rule: editYesNoTerm Priority: 50 ( YesNo ):YesNoSet --> {
//Đưa ra một tập chứa đựng các chú giải mà LHS khớp
gate.AnnotationSet YesNoSet =
(gate.AnnotationSet)bindings.get("YesNoSet");
//Đưa ra một danh sách
List listTerm = new ArrayList(YesNoSet);
//Đưa ra một biến lặp của chú giải
Iterator termIter = (Iterator)listTerm.iterator();
//Khai báo biến
gate.Annotation yesnoAnn;
83
String string = ""; //Xâu tương ứng với cụm từ được khớp //Đưa ra ánh xạ đặc trưng while(termIter.hasNext()){ yesnoAnn = (gate.Annotation)termIter.next(); yesnoAnnFeatures = (gate.FeatureMap)yesnoAnn.getFeatures(); string += (String)yesnoAnnFeatures.get("string") + " "; } //Tạo các đặc trưng
gate.FeatureMap features = Factory.newFeatureMap(); features.put("string", string.trim());
features.put("category", "Tudehoi"); features.put("type", "YesNo");
/*Loại bỏ tất cả các chú giải TokenVn đối với từng từ trong cụm từ mà LHS của luật đã khớp*/
inputAS.removeAll(YesNoSet);
/*Đưa ra kiểu chú giải TokenVn cho các cụm từ mà LHS của luật khớp, nghĩa là cụm từ đã được xác định lại là một từ để hỏi*/
outputAS.add(YesNoSet.firstNode(), YesNoSet.lastNode(), "TokenVn", features);
}
84
Phụ lục B. Bảng nhãn từ loại tiếng Việt
Np danh từ riêng proper noun
Nc danh từ đơn thể countable noun
Ng danh từ tổng thể collective noun Nt danh từ loại thể classifier noun Nu danh từ chỉ đơn vị concrete noun Na danh từ trừu tượng abstract noun
Nn danh từ số lượng numeral
Nl danh từ vị trí locative noun
Vt động từ ngoại động transitive verb Vit động từ nội động intransitive verb Vim động từ cảm nghĩ impression verb Vo động từ chỉ hướng orientation verb
Vs động từ tồn tại state verb
Vb động từ biến hoá transformation verb
Vv động từ ý chí volotive verb
Va động từ tiếp thụ acceptation verb Vc động từ so sánh comparative verb Vm động từ chuyển động move verb
Vla động từ "là" ―là‖ verb
Vtim động từ ngoại động cảm nghĩ transitive-impression verb Vta động từ ngoại động tiếp thụ transitive-acceptation verb Vtc động từ ngoại động so sánh transitive-comparative verb Vtb động từ ngoại động biến hoá transitive-transformation verb Vto động từ ngoại động chỉ hướng transitive-orientation verb Vts động từ ngoại động tồn tại transitive-state verb Vtm động từ ngoại động chuyển động transitive-move verb Vtv động từ ngoại động ý chí transitive-volotive verb
85
Vitim động từ nội động cảm nghĩ intransitive-impression verb