Nếu một bộ ba nào đó thỏa mãn thành phần điều kiện, thì phần hành động consequent sẽ được áp dụng cho bộba đó. Cấu trúc của thành phần hành động được mô tảnhư dưới.
Các thuộc tính của thành phần hành động cũng giống như phần tửđiều kiện đã được mô tả
trong bảng ở phần 5.2.2. Ngoài ra, thành phần hành động còn có hai thuộc tính mới là quantifier và delete, thuộc tính quantifier dùng để gán giá trịđịnh danh cho lớp, thuộc tính delete dùng để
yêu cầu xóa thành phần đó.
<!ELEMENT consequent(subject, relation, object) > <!ELEMENT subject EMPTY>
<!ATTLIST subject
var CDATA #REQUIRED value CDATA #IMPLIED className CDATA #IMPLIED classType CDATA #IMPLIED quantifier CDATA #IMPLIED delete CDATA #IMPLIED> <!ELEMENT relation EMPTY> <!ATTLIST relation
var CDATA #REQUIRED value CDATA #IMPLIED delete CDATA #IMPLIED> <!ATTLIST object
var CDATA #REQUIRED value CDATA #IMPLIED className CDATA #IMPLIED classType CDATA #IMPLIED quantifier CDATA #IMPLIED delete CDATA #IMPLIED>
Hình sau đây là ví dụ minh họa đặc tả một luật hoàn chỉnh:
<rule name="hasCurrency" priority="70"> <premiselist>
<premise>
<subject var="a" className="Currency"/> <relation var="b" value="of,used in" /> <object var="c" /> </premise> </premiselist> <consequentlist> <consequent> <subject var="c" />
<relation var="b" value="hasCurrency" /> <object var="a" /> </consequent> </consequentlist> </rule> Hình 5-4 Một luật hoàn chỉnh 5.2.4 Xây dựng một số luật đặc biệt
Ngoài ra, ta sẽ cần một số luật đặc biệt, các luật này được dùng cho bước gom các thực thể
có cùng ngữ nghĩa trong câu truy vấn. Ví dụ câu truy vấn “Who was the president of Vichy
France?”, các từ who và president đều biểu diễn cho thực thể không tên thuộc lớp PERSON, và chúng cách nhau bởi từ quan hệ was. Do đó who và president được gom lại thành một thực thể
duy nhất. Luật đặc biệt cũng có cấu trúc như luật thường nhưng nó có độưu tiên là -1.
5.3 Lưu trữ và hiển thị đồ thị
Trước khi hiển thị kết quả ra màn hình, chương trình dùng cấu trúc dữ liệu như sau để lưu
trữđồ thị ý niệm trong bộ nhớ:
Cấu trúc dữ liệu trên sẽ gồm một mảng các phần tử. Mỗi phần tử có vùng lưu trữSub-CG
chứa đựng thông tin để xây dựng đồ thị ý niệm nguyên tử (atomic conceptual graph), là đồ thị ý niệm mà không chứa liên từ luận lý trong câu truy vấn. “Các thông tin để xây dựng đồ thị ý niệm nguyên tử bao gồm thông tin về thực thể, kiểu quan hệ giữa các thực thể và chiều của quan hệ. Dữ liệu được lưu trong vùng lưu trữ Sub-CG sau đó sẽ được dùng để biểu diễn thành một đỉnh truy vấn con.”
Mỗi phần tử có thuộc tính Next relation lưu trữ kiểu quan hệ giữa hai đỉnh truy vấn con liền nhau. Các giá trị có thể có của Next relation chính là kiểu quan hệ có thể có giữa hai đỉnh truy vấn con trong câu truy vấn có liên từ luận lý, cụ thể là UNION, INTERSECT, MINUS.
“Thêm vào đó, cấu trúc dữ liệu có một thuộc tính Top relation để lưu trữ quan hệ gộp của câu truy vấn. Đó có thể là quan hệ COUNT đối với câu truy vấn có từ để hỏi là “How many”, hoặc quan hệ MIN, MAX đối với các truy vấn có tính từ so sánh nhất.”
Từ cấu trúc dữ liệu nêu trên. Đồ thị ý niệm được hiển thị ra màn hình có dạng tổng quát như
hình sau:
Hình 5-6 Dạng tổng quát của đồ thị ý niệm
“Trong đó, mỗi đỉnh truy vấn con được xây dựng từ vùng lưu trữ Sub-CG của mỗi thành phần trong cấu trúc lưu trữ. Quan hệ giữa các đỉnh truy vấn con (UNION, INTERSECT,
xây dựng từ thuộc tính Top relation của cấu trúc lưu trữ. Đường liên kết nét đôi sẽ được nối từ
quan hệ gộp vừa tạo tới thực thể câu truy vấn về sốlượng trong trường hợp truy vấn “How many” hoặc nối tới biểu diễn tính từ nằm trong đỉnh truy vấn con tương ứng trong trường hợp câu truy vấn có chứa tính từ so sánh nhất.”
Lấy một ví dụ cho phương pháp lưu trữ và hiển thị như phân tích nêu trên: câu truy vấn “Who was biographer and Samuel Johnsons's friend?”, hệ thống sẽ kết xuất ra đồ thị ý niệm như
sau:
Hình 5-7 Tên hình
5.4 Xây dựng câu truy vấn SeRQL
Dù đồ thị ý niệm là một ngôn ngữ vừa dễ hiểu với con người, vừa khả xử lý với máy tính,
nhưng đồ thị ý niệm mới chỉ mang tính chất tham khảo, để kiểm tra sự chính xác của quá trình xử
lý câu truy vấn. Bởi vì, đồ thị ý niệm chưa được sử dụng làm ngôn ngữ truy vấn trên bất cứcơ sở
dữ liệu ngữ nghĩa nào, nên máy tính không thể trực tiếp dùng đồ thịđể tìm thực thể hay tài liệu. Vì vậy, trong chương này sẽ trình bày phương pháp dịch đồ thị sang ngôn ngữ SeRQL, là ngôn ngữ truy vấn sử dụng bởi cơ sở tri thức ngữ nghĩa.
Một phần trong quá trình sinh câu SeRQL của hệ thống sẽ sử dụng lại giải thuật trước đây
của VN-KIM Search [1], chỉ thêm vào những đoạn cần thiết để xử lý những câu truy vấn có tính từ.
Generalize the query CG
For each relation in the generalized query CG do {
Get all neighbour concepts of the current relation //process each concept sequentially
For each concept do {
if the concept is new //i.e. not processed before {
if the concept referent is “?” or “*” {
if the concept referent is “?” {
Assign to it a variable starting with “x” //e.g x1, x2, x3,... Assign to it a label variable starting with “z” //e.g z1, z2, z3,... Append these variables to the SELECT clause
Append the “rdfs:label” statement for this concept to the FROM clause }
if the concept referent is “*” {
Assign to it a variable starting with “y” //e.g y1, y2, y3,... }
Append the “rdf:type” statement for this concept to the FROM clause
Append the constrained property statements for this concept to the FROM clause Assign to the constrained properties variables starting with “p” //e.g p1, p2, p3,... Append the property constraints to the WHERE clause
} //end of “?” or “*”
if the concept referent is specific, assign to it its identifier as a dummy variable Remember this concept having been processed
}
}//end of if new
Assign to the current relation its URI
Append the statement for the current relation with its neighbour concepts to the FROM clause }
//process the disconnected concept nodes
For each concepts that has not been visited yet, process it as above
Giải thuật đềtài này thêm vào để xử lý tính từ sẽ nhận kết quả của giải thuật trên làm đầu vào, rồi thêm những bộ phận cần thiết:
Giải thuật cho tính từ bình thường (dạng nguyên mẫu): Truy vấn tất cả thực thể phù hợp và trả về theo một trật tự:
//Function: append ORDER BY clause for normal adjective to the input SeRQL Initialize new ORDER BY clause
For each semantic relation generated from normal adjective {
Append the its object’ variable to SELECT clause Identify the way of ordering //i.e DESC or ASC
Append to ORDER BY clause the variable of the relation’s object, and the way it is ordered }
Giải thuật cho tính từ so sánh nhất:
//Function: append WHERE clause for superlative adjective to the input SeRQL Initialize the WHERE, nested SELECT and nested FROM clause
//select the value of all other entities which are also qualified, then use “>= ALL” or “<= ALL” to //find the entity that has the maximum and minimum value
Identify whether “>= ALL” or “<=ALL” from the Top relation. Call this OP. Find the relation that is generated from superlative adjective
{
With its subject, create a new variable representing all others qualified entities. Call this the temporary subject. Then use the temporary subject to append all constraints on the subject to the nested FROM clause
With its object, create a new variable representing all others qualified entities’ values. Call this the temporary object. Append the temporary object to the nested SELECT clause.
Append the statement of this relation to the nested FROM clause. But use the temporary subject and temporary object as the 2 variables.
Append to WHERE clause the object’s variable and the OP identified before. }
Giải thuật cho tính từ so sánh hơn:
//Function: append WHERE clause for comparative adjective to the input SeRQL Initialize the WHERE clause
For every relation generated from comparative adjective {
Append its subject’s variable to the WHERE clause
Append comparative operator to the WHERE clause //i.e. “>” or “<”
if its object is a named entity, append its object’s variable to the WHERE clause else if its object is a constant, append its object’s quantifier to the WHERE clause }
CHƯƠNG 6
THỬ NGHIỆM
6.1 Môi trường thử nghiệm
Tập câu truy vấn dùng đểđánh giá
Đề tài tiến hành thử nghiệm trên tập các câu truy vấn lấy từ Question Answering Track của tập dữ liệu mẫu TREC 2002. Tập mẫu này có 440 câu truy vấn, bao gồm:
Phân loại theo từ để hỏi: 201 câu hỏi What, 67 câu hỏi Who, 62 câu hỏi Where, 45 câu
hỏi When, 38 câu hỏi How, 3 câu hỏi Which và 24 câu không dùng từđể hỏi.
Phân loại theo dạng câu: 16 câu có từđể hỏi How many, 6 câu có tính từ, 35 câu có tính từ so sánh nhất, 1 câu có liên từ luận lý, 382 câu còn lại không thuộc các dạng trên. Ngoài ra, do một sốđề xuất mở rộng của đề tài không có trong tập mẫu TREC 2002. Cụ thể
là các câu truy vấn có chứa tính từso sánh hơn, các câu truy vấn kết hợp lượng từ, tính từ… Do vậy, đề tài còn sử dụng thêm 5 câu truy vấn được sưu tầm bằng tay để kiểm tra các trường hợp này.
Các phần mềm, công cụ sử dụng trong thử nghiệm này
KIM platform phiên bản 3.0, cùng với Ontology và cơ sở tri thức đi kèm (được cập nhật lần cuối vào ngày 8/7/2010): dùng để nhận diện thực thể có tên.
GATE phiên bản 5.1: dùng để nhận diện thực thể không tên và các thành phần khác.
Sesame phiên bản 2.3.1: dùng để chạy câu truy vấn SeRQL tìm thực thể thỏa mãn.
Apache Tomcat phiên bản 6.0: để triển khai hệ thống.
JDK SE 1.6.0.
Đềtài đã bổ sung 65 lớp thực thể và 87 quan hệ còn thiếu vào Ontology, cũng như thêm 288 thực thể còn thiếu vào cơ sở tri thức.
6.2 Kết quả thực nghiệm
Quá trình xây dựng đồ thị ý niệm
Quá trình dịch câu truy vấn sang đồ thị ý niệm có thể phát sinh các lỗi sau:
R-Error: lỗi do không nhận diện được thực thể hoặc nhận diện không chính xác.
O-Error: lỗi do Ontology thiếu lớp, thiếu quan hệ. Các quan hệ nhiều hơn 2 ngôi,
Ontology không thể hiện được, cũng xếp vào dạng lỗi này.
Q-Error: lỗi do đồ thị ý niệm, với các mở rộng như đề xuất, vẫn chưa biểu diễn được đầy
đủ ngữ nghĩa của câu truy vấn.
M-Error: lỗi do phương pháp. Các câu không xây dựng được đồ thị ý niệm hoặc xây dựng sai, nếu không rơi vào các lỗi trên được xếp vào dạng lỗi này.
Kết quả thử nghiệm trên tập mẫu TREC 2002 trước khi làm giàu Ontology và chưa áp dụng
phương pháp xử lý các dạng câu mới được thống kê ở bảng sau:
Loại câu Số câu R-Error O-Error Q-Error M-Error Chính xác
WHAT 201 32 119 17 0 33 WHICH 3 0 1 2 0 0 WHERE 62 7 38 1 0 16 WHO 67 2 51 10 0 4 WHEN 45 5 27 12 0 1 HOW 38 1 29 5 0 3 Loại khác 24 0 23 0 0 1 Tổng cộng 440 47 288 47 0 58 (%) 100.00% 10.68% 65.45% 10.68% 0.00% 13.19%
Sau khi làm giàu Ontology bằng cách bổ sung 65 lớp thực thể, 87 quan hệ, 288 thực thể, kết quả thử nghiệm đạt được như sau:
Loại câu Số câu R-Error O-Error Q-Error M-Error Chính xác WHAT 201 0 22 1 2 176 WHICH 3 0 0 0 0 3 WHERE 62 0 1 0 0 61 WHO 67 0 12 0 0 55 WHEN 45 0 12 0 0 36 HOW 38 0 6 2 0 30 Loại khác 24 0 3 1 0 20 Tổng cộng 440 0 56 4 2 378 (%) 100.00% 0.00% 12.73% 0.91% 0.45% 85.91%
Bảng 6-2 Kết quả thực nghiệm trên TREC 2002 sau khi làm giàu Ontology
Kết quả thực nghiệm sau khi làm giàu Ontology, phân loại theo dạng câu hỏi:
Dạng câu Số câu R-Error O-Error Q-Error M-Error Chính xác How many 16 0 4 1 0 11 Tính từ 6 0 0 0 0 6 Tính từ so sánh nhất 35 0 21 0 0 14 Liên từ luận lý 1 0 0 0 0 1 Dạng khác 382 0 31 3 2 346 Tổng cộng 440 0 56 4 2 378 (%) 100.00% 0.00% 12.73% 0.91% 0.45% 85.91%
Bảng 6-3 Kết quả thực nghiệm trên TREC 2002 sau khi làm giàu Ontology phân loại theo dạng câu
64 câu truy vấn không xây dựng được đồ thị ý niệm là do các lỗi sau:
O-Error: 58 câu. Tất cả các câu truy vấn này đều có chứa quan hệ nhiều hơn 2 ngôi. Ví dụ
với câu “What is the exchange rate between England and the U.S.?”, quan hệ between… and… ở đây là quan hệ ba ngôi giữa exchange rate, England và U.S.. Như đã nói ở mục 1.2 (Mục tiêu phạm vi), đề tài này không giải quyết vấn đề quan hệ nhiều hơn 2 ngôi.
Q-Error: 4 câu. Trong đó, có 3 câu chứa trạng ngữ hoặc mệnh đề trạng ngữ, câu còn lại chứa truy vấn kiểu quan hệ. Các câu dạng này đồ thị ý niệm hiện giờchưa biểu diễn được.
Câu chứa trạng ngữ, ví dụ như “At Christmas time, what is the traditional thing to do
under the mistletoe?”, At Christmas time là trạng ngữ chỉ thời gian của câu.
Câu truy vấn kiểu quan hệ ”How was Teddy Roosevelt related to FDR?”, ởđây câu truy
vấn muốn biết quan hệ giữa hai thực thểxác định Teddy Roosevelt và FDR là gì. Phương pháp dùng trong đềtài chưa hỗ trợ kiểu truy vấn này.
M-Error: 2 câu. Cụ thể là:
“What is the name of the Michelangelo painting that shows two hands with fingers
touching?”: trong câu này, “two hands with fingers touching” chứa mô tả về bức tranh,
phương pháp hiện tại không thể nhận biết được trường hợp này.
“What was the name of the television show, staring Karl Malden, that had San Francisco
in the title?”: ở đây, “the title” và “the name” cùng chỉ về một thực thể, tuy nhiên giải thuật gom thực thểkhông xác định được trường hợp này.
Quá trình truy vấn thực thể và tìm tài liệu
Với các câu sinh ra được đồ thị ý niệm đúng, quá trình chuyển từđồ thị ý niệm sang câu truy vấn SeRQL cho kết quả chính xác 100%.
Quá trình tìm kiếm tài liệu sử dụng dịch vụ hiện có, do nhóm VN-KIM phát triển, do vậy ở đây không đánh giá vềđộ chính xác. Thử nghiệm chỉ nhằm mục đích kiểm tra sựtương thích của toàn bộ hệ thống sau khi tích hợp quá trình xử lý tiếng Anh.
CHƯƠNG 7
KẾT LUẬN
7.1 Kết quả đạt được
Đềtài đã xây dựng được một hệ thống tìm kiếm theo ngữ nghĩa cho tiếng Anh, dựa vào hệ
thống trong [1] và kết quả nghiên cứu trong [3]. Tổng kết là:
Về dạng câu truy vấn, có thể xử lý câu có: thực thể (có tên và không tên), từ quan hệ,
lượng từ, liên từ luận lý, tính từthường, tính từ so sánh nhất, tính từđịnh lượng so sánh
hơn với hằng số và thực thể có tên. Bảo toàn những ưu điểm của phương pháp dịch ít phụ thuộc cú pháp trong [2]:
- Không dựa vào văn phạm của câu truy vấn. Có thể dịch sang đồ thị ý niệm cho một câu truy vấn đầy đủ, các câu truy vấn có từđể hỏi, hoặc một đoạn câu. Thứ
tự xuất hiện các thực thể và từ quan hệ trong câu là không quan trọng. Do đó phương pháp này cũng có thể dịch sang đồ thị ý niệm cho các câu sai văn phạm. - Dễ dàng thực hiện cho ngôn ngữ khác khi có Ontology tương ứng. Phương pháp