Hệ thống xử lý trên server

Một phần của tài liệu LUẬN văn VN KIM SEARCH TIẾNG ANH với TRUY vấn có LIÊN từ LUẬN lý, TÍNH từ và LƯỢNG từ (Trang 50)

Khối nhận diện:

Lớp ENSearch

Bản tóm tắt các phương thức

String getAnnotation (String query, QueryBuffer output);

Kết nối vào KIM để nhận diện thực thể có tên trong câu query, chèn vào bộ đệm output. Dùng Gate để nhận diện thực thể không tên và từ quan hệ, tính từ, liên từ luận lý có trong câu query, chèn vào bộ đệm output.

String getNS (String classname);

Trả về namespace của lớp truyền vào dưới dạng chuỗi.

String runSeRQL (String query);

Kết nối vào KB của KIM, thực thi câu lệnh SeRQL để tìm các thực thể thỏa mãn truy vấn.

Bảng 5-2 Bản tóm tắt các phương thức lớp ENSearch

Khối phân tách câu truy vấn nguyên tử:

Lớp QuerytoCG

Bản tóm tắt các phương thức

void splitQueryToAtomicQuery (String fullQuery, List<ItemType> query, List<AtomicQuery> result, RelationType defaultRel);

Tách câu truy vấn có liên từ luận lý thành danh sách các câu truy vấn nguyên tử. Danh sách này trả về qua tham số “result”.

Khối xác định quan hệđỉnh:

Lớp QuerytoCG

Bản tóm tắt các phương thức

TopRelationType identifyTopRel (QueryBuffer buf);

Nhận diện quan hê đỉnh là COUNT, MAX, MIN, MOST, AVERAGE.

Bảng 5-4 Bản tóm tắt các phương thức lớp QuerytoCG (2)

Khối hiệu chỉnh tập thực thể và từ quan hệ:

Lớp ProcessingXML Bản tóm tắt các phương thức

void FindClassofAgent (QueryBuffer buffer);

Xác định lớp của “What”.

void CombineEntitys (QueryBuffer buffer);

Gom các thực thể cùng ngữ nghĩa.

void AddRealtion (QueryBuffer buffer);

Thêm từ quan hệ giữa các thực thể.

Bảng 5-5 Bản tóm tắt các phương thức lớp Processing XML

Khối xác định quan hệ ngữ nghĩa giữa thực thể và từ quan hệ:

Lớp ProcessingQuery Bản tóm tắt các phương thức

QueryTriple ProcessQuery2Triple (QueryBuffer buffer);

Sử dụng các thực thể có tên, không tên, từ quan hệ đã nhận biết được để sinh ra các bộ ba quan hệ. Giá trị trả về là các tập các bộ ba quan hệ.

TripleType CheckRE (ItemType subject, ItemType relation, ItemType object);

TripleType InterRE (ItemType subject, ItemType relation, ItemType object);

Tìm bộ ba bằng phương pháp giao.

Bảng 5-6 Bản tóm tắt các phương thức lớp ProcessingQuery

Khối xác định quan hệ ngữ nghĩa giữa tính từ và thực thể:

Lớp ProcessingQuery Bản tóm tắt các phương thức

void processQuantitativeAdjective (QueryTriple tripleset, QueryBuffer buffer);

Sử dụng các tính từ định lượng đã nhận biết được để sinh ra các bộ ba quan hệ. Tập các bộ ba quan hệ kết quả là “tripleset”.

void processQuanlitativeAdjective (QueryTriple tripleset, QueryBuffer buffer);

Sử dụng các tính từ định lượng đã nhận biết được để sinh ra các bộ ba quan hệ. Tập các bộ ba quan hệ kết quả là “tripleset.

Bảng 5-7 Bản tóm tắt các phương thức lớp ProcessingQuery (2)

Khối xây dựng đồ thị ý niệm:

Lớp QueryOutput Bản tóm tắt các phương thức

String generatelistJsCG (ListCG lsCG);

Tạo đồ thị cho toàn bộ câu truy vấn dưới dạng JavaScript.

String generateJsCG (QueryBuffer buffer, int left, int top, boolean isCoverByBox);

Tạo đồ thị con dưới dạng JavaScript.

Khối sinh câu truy vấn SeRQL

Lớp SeRQLMapping Bản tóm tắt các phương thức

String getSeRQLQuery (QueryBuffer buffer);

Sinh ra câu SeRQL cho câu truy vấn nguyên tử.

String appendWhereClauseForSQTA (String query, QueryBuffer buf, TopRelationType topRe);

Thêm các phần cần thiết vào câu SeRQL để xử lý trường hợp có tính từ định lượng so sánh nhất. Trả về câu SeRQL đã được chỉnh sửa.

String appendOrderByClause (String query, QueryBuffer buf);

Thêm các phần cần thiết vào câu SeRQL để xử lý trường hợp có tính từ định lượng ở dạng nguyên mẫu. Trả về câu SeRQL đã được chỉnh sửa.

String appendWhereClauseForCQTA (String query, QueryBuffer buf);

Thêm các phần cần thiết vào câu SeRQL để xử lý trường hợp có tính từ định lượng so sánh hơn. Trả về câu SeRQL đã được chỉnh sửa.

Bảng 5-9 Bản tóm tắt các phương thức lớp SeRQLMapping 5.2 H thng lut

Ta sẽ xây dựng tập luật theo định dạng XML.

Dạng chung của mỗi luật trong hệ thống luật như sau:

“Nếu [điều kiện] thì [hành động]”

Trong đó, vế điều kiện có những đặc điểm sau:

 Có ràng buộc về tên lớp, giá trị chuỗi ban đầu và kiểu thực thể.

Phần hành động có những đặc tính sau:

 Có thểthay đổi tên lớp, thay đổi định của danh thực thểvà xác định loại quan hệ.

 Xóa thực thể hoặc quan hệ khỏi buffer.

Phần sau trình bày cấu trúc của tập luật dùng để ánh xạ bộ ba quan hệ thành quan hệ ngữ

nghĩa.

5.2.1 Cu trúc ca h thng lut

Tập luật được biểu diễn bằng XML. Một tập luật (TranformRules) bao gồm nhiều luật (rule). Mỗi luật lại bao gồm một phần tử điều kiện (premise) cùng với một hành động (consequent)

tương ứng. Ngoài ra, một luật còn có các thuộc tính tên luật (name) và độ ưu tiên của luật (priority).

<!ELEMENT TranformRules (rule)+ > <!ELEMENT rule(premise, consequent) > <!ATTLIST rule

name CDATA #REQUIRED priority CDATA #IMPLIED>

Hình 5-1 Cấu trúc tập phần tử TransformRules và rule

5.2.2 Cu trúc thành phần điều kin ca lut

Như đã được nhắc đến ở đầu chương này, mỗi luật bao gồm hai phần: điều kiện và hành động. Phần điều kiện của luật được mô tả bằng thành phần premiselist, là con của thành phần

rule. Mỗi premiselist bao gồm một hay nhiều thành phần premise, hình dưới mô tả cấu trúc của một thành phần premise. Mỗi premise gồm có 3 thành phần con là subject, relation và object

tương ứng với một bộ ba mà ta đã thảo luận ở phần trên. Ý nghĩa của các thuộc tính trong các thành phần này được thể hiện trong hình dưới:

<!ELEMENT primise(subject, relation, object) > <!ELEMENT subject EMPTY>

<!ATTLIST subject

var CDATA #REQUIRED value CDATA #IMPLIED className CDATA #IMPLIED classType CDATA #IMPLIED> <!ELEMENT relation EMPTY>

<!ATTLIST relation

var CDATA #REQUIRED value CDATA #IMPLIED> <!ATTLIST object

value CDATA #IMPLIED className CDATA #IMPLIED classType CDATA #IMPLIED>

Hình 5-2 Cấu trúc phần tửđiều kiện luật

Thuộc tính Đặc tả

var Dùng đểđặt tên biến, nhằm phân biệt các thành phần. value Liệt kê tập các giá trịban đầu, cách nhau bằng dấu phẩy. className Thuộc tính ràng buộc tên lớp thực thể

classType Thuộc tính dùng để ràng buộc kiểu thực thểnhư UE, IE

Bảng 5-10 Các thuộc tính của phần tửđiều kiện

5.2.3 Cu trúc thành phần hành động ca lut

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 dng mt s lut đặc bit

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à hin 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 dng câu truy vn 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 NGHIM

6.1 Môi trường th nghim

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.

Một phần của tài liệu LUẬN văn VN KIM SEARCH TIẾNG ANH với TRUY vấn có LIÊN từ LUẬN lý, TÍNH từ và LƯỢNG từ (Trang 50)

Tải bản đầy đủ (PDF)

(74 trang)