Thiết kế các lớp trong Ontology

Một phần của tài liệu phương pháp xây dựng hệ thống hỏi đáp tiếng việt dựa trên ontology (Trang 47)

Tùy thuộc vào cách thiết kế đối với Ontology, có thể thiết kế các lớp một cách riêng rẽ hoặc có thể thiết kế phân cấp. Sau khi nghiên cứu và phân tích các khái niệm cụ thể liên quan tới trường Đại học Công Nghệ, chúng tôi đưa ra các khái niệm về các lớp trong Ontology (hình 4.3).

- Trường: lớp tổng quan trong Ontology.

- Bộ_môn: is-a-subclass-of trường, có các đối tượng: công_nghệ_phần_mềm, khoa_học_máy_tính, mạng_máy_tính,…

- Khoa: is-a-subclass-of trường, có các đối tượng: công_nghệ_thông_tin, điện_tử_viễn_thông,…

- Lớp: is-a-subclass-of trường, có các đối tượng: k50_khoa_học_máy_tính, k50_công_nghệ_phần_mềm,… và là lớp con của lớp ―trường‖.

- Môn: is-a-subclass-of trường, có các đối tượng: học_máy, xử_lý_ảnh, xử_lý_ngôn_ngữ_tự_nhiên, đồ_họa_máy_tính,…

- Person: is-a-subclass-of trường, lớp này mô tả các đối tượng về người, person is-a-superclass-of giảng_viên, person is-a-superclass-of sinh_viên.

- Giảng_viên: is-a-subclass-of person, có đối tượng là các giảng viên của trường. - Sinh_viên: is-a-subclass-of person, có đối tượng là sinh viên của trường, chẳng hạn: nguyễn_quốc_đại, nguyễn_quốc_đạt, nguyễn_bá_đạt,…

- Phòng_thí_nghiệm: is-a-subclass-of trường.

- which: bao gồm các khái niệm về chức vụ, học hàm, học vị,…

- Chức_vụ: is-a-subclass-of which, có các đối tượng như: hiệu_trưởng, trưởng_phòng, lớp_trưởng,…

- Học_hàm: is-a-subclass-of which, có các các đối tượng: giáo_sư, phó_giáo_sư. - Học_vị: is-a-subclass-of which, có hai đối tượng: thạc_sĩ, tiến_sĩ.

- : is-a-subclass-of which, có các đối tượng là mã của sinh viên: s0520097,… - Quê: is-a-subclass-of which, có các đối tượng: hà_nội, hải_dương, bắc_giang,…

36

Hình 4.3. Các lớp trong Ontology về trƣờng đại học 4.3.2 Thiết kế thuộc tính trong Ontology

Trong Protege, mối quan hệ giữa các đối tượng của các lớp được mô tả thông qua các thuộc tính. Các thuộc tính này được phân vào các loại như Functional (một đối tượng chỉ có thể liên kết tới một đối tượng khác qua thuộc tính này), InverseFunctional (thuộc tính này có thuộc tính đảo ngược), Transitive (thuộc tính bắc cầu), Symmetric.

Các thuộc tính được thiết kế trong Ontology bởi Protege có hai trường là ―domain‖ và ―range‖. Hai trường này dùng để mô tả các lớp trong Ontology liên quan với nhau thông qua thuộc tính đó. Mỗi thuộc tính sẽ liên kết các đối tượng trong các lớp được đặt trong trường ―domain‖ tới các đối tượng trong các lớp được đặt trong trường ―range‖. Lớp con được thừa kế thuộc tính từ các lớp cha của nó.

37

Trong quán trình phân tích và nghiên cứu các mối quan hệ liên, chúng tôi thiết kế mô tả một số quan hệ thông qua các thuộc tính (hình 4.4).

Hình 4.4. Các thuộc tính trong Ontology về trƣờng đại học

Sau khi đã thiết kế xong các lớp, các thuộc tính, cùng với các đối tượng trong mỗi lớp. Chúng tôi điền giá trị tương ứng cho liên kết đối với mỗi đối tượng dựa the o thuộc tính. Chẳng hạn:

nguyễn_quốc_đại học k50_khoa_học_máy_tính nguyễn_quốc_đại có_quê hà_nội,…

Thiết kế Ontology cần một quá trình lâu dài, nghiên cứu các khái niệm, phân tích các mối quan hệ cần chính xác. Sau đó, chúng tôi áp dụng Ontology thử nghiệm này cho hệ thống, rồi đánh giá hoạt động của hệ thống dựa vào các câu hỏi được đưa ra.

38

4.4 Ánh xạ Ontology

Ánh xạ Ontology là nền tảng trong hệ thống hỏi đáp tiếng Việt của chúng tôi. Câu hỏi đầu vào sẽ được phân tích dưới dạng bộ ba biểu diễn trung gian bởi thành phần xử lý câu hỏi [1], bộ ba biểu diễn trung gian này là đầu vào cho ánh xạ Ontology. Ánh xạ Ontology hình thành nên các bộ ba mô tả các khái niệm, đối tượng cùng với mối quan hệ tương thích với Ontology. Thành phần trích chọn câu trả lời sử dụng các bộ ba mô tả này để đưa ra câu trả lời ngữ nghĩa tốt nhất có thể tới người sử dụng.

Để tạo bộ ba mô tả các khái niệm, quan hệ và đối tượng tương ứng với Ontology, trước tiên, từ bộ ba biểu diễn trung gian thu được do [1], ánh xạ Ontology sử dụng tập từ đồng nghĩa đối với từng thành phần của bộ ba. Sau đó, các thuật ngữ đó được so khớp với các khái niệm và đối tượng bên trong Ontology. Nếu so khớp không thành công, ánh xạ Ontology sử dụng thuật toán khoảng cách xâu để tìm các khái niệm và đối tượng tương tự trong Ontology. Nếu thuật toán khoảng cách xâu trả lại nhiều hơn một kết quả, khi ấy xảy ra nhập nhằng về nghĩa của các thuật ngữ, thì hệ thống đưa ra tương tác với người dùng, yêu cầu lựa chọn khái niệm hoặc đối tượng thích hợp.

Sau khi đã tìm được các thuật ngữ chỉ khái niệm và đối tượng tương ứng trong Ontology, dựa vào chúng, ánh xạ Ontology tìm kiếm các mối quan hệ để so khớp với quan hệ đầu vào. Nếu so khớp không được, ánh xạ Ontology sử dụng thuật toán khoảng cách xâu hoặc tương tác với người sử dụng. Khi ánh xạ Ontology tìm được quan hệ tương ứng trong Ontology, hệ thống hình thành các bộ ba mô tả các khái niệm, đối tượng cùng mối quan hệ phù hợp với Ontology. Các bộ ba thu đầu vào cho thành phần trích chọn câu trả lời để đưa ra câu trả lời ngữ nghĩa nhất có thể.

Thành phần ánh xạ Ontology xử lý tùy theo từng trường hợp cụ thể, đối với từng loại câu hỏi khác nhau có cách xử lý khác nhau. Các loại câu hỏi được phân làm hai dạng, câu hỏi đơn giản và câu hỏi phức tạp. Các câu hỏi dạng đơn giản được phân loại: - ―sinh viên nào học ở lớp k50 khoa học máy tính ―→ ―NORMAL‖: (sinh viên, học, lớp k50 khoa học máy tính) → ánh xạ Ontology → (sinh_viên, học, k50_khoa_học_máy_tính).

- ―mã của Nguyễn Quốc Đại là gì‖ → ―UNKN_TERM‖: (?, mã, Nguyễn Quốc Đại) → ánh xạ Ontology → (mã, có_mã, nguyễn_quốc_đại).

39 (adsbygoogle = window.adsbygoogle || []).push({});

- ―Nguyễn Quốc Đại có địa chỉ ở đâu‖ → ―UNKN_TERM‖: (?, địa chỉ, Nguyễn Quốc Đại) → ánh xạ Ontology → (?, có_địa_chỉ, nguyễn_quốc_đại).

- ―lớp k50 khoa học máy tính có những sinh viên nào‖ → ―UNKN_REL‖: (sinh viên, ?, lớp k50 khoa học máy tính) → ánh xạ Ontology → (sinh_viên, học |

có_sinh_viên, k50_khoa_học_máy tính).

- ―Nguyễn Quốc Đại có quê ở Hà nội phải không‖ → ―AFFIRM_NEG‖: (Nguyễn Quốc Đại, có quê, Hà Nội) → ánh xạ Ontology → (nguyễn_quốc_đại, có_quê, hà_nội).

Đối với các câu hỏi phức tạp, khi chúng được phân tích bởi [1], thì thu được bộ ba biểu diễn trung gian quan hệ bậc ba, và được phân loại ―THREETERM‖. Tùy vào từng câu hỏi, bộ ba này có thể thiếu thuật ngữ đầu, hoặc thiếu quan hệ, hoặc đầy đủ bốn thành phần. Sau khi ánh xạ Ontology kết thúc, hệ thống thu được hai bộ ba mô tả tương ứng với Ontology. Chẳng hạn:

―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ệ?‖ → (sinh viên, học, lớp khoa học máy tính, trường đại học công nghệ) → ánh xạ Ontology → (sinh_viên, học, k50_khoa_học_máy_tính) và (sinh_viên, học, đại_học_công_nghệ).

Dưới đây, chúng tôi mô tả cách xử lý của thành phần ánh xạ Ontology đối với từng loại câu hỏi cụ thể. Trước hết, chúng tôi giới thiệu cách xử lý đối với câu hỏi đơn giản, để từ đó, chúng tôi mô tả hoạt động của ánh xạ Ontology đối với câu hỏi phức tạp.

4.4.1 Ánh xạ Ontology cho câu hỏi đơn giản

Các câu hỏi sau khi được phân tích bởi thành phần xử lý câu hỏi ngôn ngữ tự nhiên [1], được xếp vào các loại tương ứng. Ở đây, trong mục này, chúng tôi mô tả đối với một số loại câu hỏi như ―NORMAL‖, ―UNKN_TERM‖, ―UNKN_REL‖, ―AFFIRM_NEG‖. Các câu hỏi được biểu diễn bởi một bộ ba quan hệ bậc hai giữa hai thuật ngữ, và bộ ba biểu diễn này là đầu vào cho ánh xạ Ontology. Nhưng tùy vào từng loại câu hỏi mà ánh xạ Ontology sẽ có cách tìm kiếm thuật ngữ thích hợp trong Ontology. Ánh xạ Ontology xử lý đối với các loại câu hỏi đơn giản này được mô tả như hình 4.5.

40

Hình 4.5. Tổng quan về ánh xạ Ontology đối với câu hỏi đơn giản

Trong mô hình tổng quan này (hình 4.5), cơ sở tri thức Ontology được lưu trữ trong Sesame Server. Ánh xạ Ontology lấy tất cả các thông tin về các khái niệm (mô tả các lớp), các đối tượng, và các thuộc tính mô tả quan hệ trong Ontology. Các thông tin này được sử dụng để so khớp với bộ ba đầu vào. Nếu quá trình so khớp không thành công thì ánh xạ Ontology sử dụng thuật toán khoảng cách xâu để tìm các khái niệm (hoặc các đối tượng, các quan hệ trong Ontology) tương tự với các thành phần trong bộ ba đầu vào. Nếu thuật toán khoảng cách xâu trả lại nhiều hơn một giá trị, tức là nhập nhằng xảy ra, thì ánh xạ Ontology yêu cầu tương tác với người dùng để lựa chọn thông tin thích hợp tương ứng với Ontology.

Với một đầu vào là bộ ba biểu diễn trung gian (quan hệ bậc hai giữa hai thuật ngữ) (hình 4.5), các thành phần của bộ ba được tiền xử lý và sử dụng tập từ đồng nghĩa để so khớp với các khái niệm (các lớp), các đối tượng và các quan hệ trong Ontology. Ánh xạ Ontology trước tiên sẽ so khớp các thuật ngữ để tìm kiếm thuật ngữ tương ứng trong Ontology. Các thuật ngữ có thể mang nội dung chỉ về một khái niệm hoặc một đối tượng cụ thể nào đó.

So khớp thông tin trong Ontology Tiền xử lý & tập từ đồng nghĩa

Tiền xử lý & tập từ đồng nghĩa So khớp thông tin trong Ontology

Thuật_ngữ_1

Thuật_ngữ_2

Tập quan hệ

So khớp thông tin trong Ontology

Tiền xử lý & tập từ đồng nghĩa Quan_hệ Bộ ba biểu diễn trung gian Thuật ngữ 1 Quan hệ Thuật ngữ 2

Thuật toán khoảng cách xâu

Tƣơng tác ngƣời dùng

41

Nếu việc so khớp không thành công, ánh xạ Ontology sử dụng thuật toán khoảng cách xâu để tìm các khái niệm (hoặc các đối tượng) tương tự trong Ontology. Nếu giá trị so sánh độ tương tự giữa hai khái niệm (hoặc giữa hai đối tượng) lớn hơn ngưỡng cho trước thì thuật toán trả lại khái niệm (hoặc đối tượng) tương ứng. Hoặc nếu thuật toán khoảng cách xâu trả lại nhiều hơn một kết quả, khi đó, nhập nhằng về nghĩa của các thuật ngữ vẫn xảy ra. Ví dụ, khi thuật toán khoảng cách xâu so sánh ―lớp khoa học máy tính‖ với các đối tượng trong Ontology. Khi ấy, sự nhập nhằng xảy ra khi kết quả của thuật toán trả lại đối tượng ―k50_khoa_học_máy_tính‖ là thực thể của lớp ―lớp‖ và đối tượng ―khoa_học_máy_tính‖ là đối tượng của lớp ―bộ_môn‖ trong Ontology. Lúc này, ánh xạ Ontology đưa ra yêu cầu tương tác với người dùng để lựa chọn thuật ngữ tương ứng. Sau khi người dùng phản hồi lại, hệ thống tìm được thuật ngữ cần thiết phù hợp với Ontology. Các thuật ngữ này chính là các thuật ngữ chỉ khái niệm biểu diễn một lớp trong Ontology, hoặc là các thuật ngữ chỉ đối tượng thuộc về một lớp nào đó trong Ontology.

Dựa vào các thuật ngữ vừa tìm được, ánh xạ Ontology tìm tất cả các quan hệ giữa hai thuật ngữ này. Sau đó, ánh xạ Ontology nếu so khớp quan hệ không thành công thì sử dụng thuật toán khoảng cách xâu để tìm quan hệ tương ứng. Nếu nhập nhằng về nghĩa xảy ra do thuật toán khoảng cách xâu trả lại nhiều hơn một kết quả, thì hệ thống đưa ra yêu cầu tương tác với người sử dụng. Sau bước này, ánh xạ Ontology tìm được quan hệ thích hợp giữa hai thuật ngữ trong Ontology. Nhưng tùy thuộc vào từng loại câu hỏi, chẳng hạn như câu hỏi ―UNKN_TERM‖ (thiếu thuật ngữ đầu tiên), có trường hợp tìm được mối quan hệ thông qua thuật toán khoảng cách xâu, nhưng cũng có trường hợp chính cụm từ miêu tả quan hệ trong câu lại là thuật ngữ chỉ khái niệm mô tả một lớp nào đó trong Ontology.

Chúng tôi sẽ đưa ra ví dụ cụ thể cho từng trường hợp để xem xét cách giải quyết của thành phần ánh xạ Ontology. Như vậy, kết thúc quá trình ánh xạ Ontology, hình thành bộ ba mô tả các khái niệm, đối tượng và quan hệ phù hợp với Ontology. Bộ ba mô tả này là đầu vào cho thành phần trích chọn câu trả lời đưa ra câu trả lời ngữ nghĩa tốt nhất có thể tới người dùng. Dưới đây, để miêu tả cách xử lý của hệ thống đối với thành phần ánh xạ Ontology, chúng tôi đưa ra một số ví dụ về từng loại câu hỏi và cách xử lý đối với chúng.

42

4.4.1.1 Ánh xạ Ontology đối với loại câu hỏi NORMAL

Đầu tiên, với loại câu hỏi ―NORMAL‖ miêu tả bởi một bộ ba được tạo thành do một mối quan hệ nhị phân rõ ràng giữa hai thuật ngữ xác định. Ví dụ với câu hỏi:

―thầy giáo nào giảng dạy lớp k50 khoa học máy tính?‖ (adsbygoogle = window.adsbygoogle || []).push({});

Bộ biểu diễn trung gian là bộ ba đầu vào cho ánh xạ Ontology được cho dưới dạng (thầy giáo, giảng dạy, lớp k50 khoa học máy tính). Trước tiên, ánh xạ Ontology tiền xử lý và sử dụng tập từ đồng nghĩa đối với các thành phần của bộ ba. Sau đó, ánh xạ Ontology nhận biết được thuật ngữ ―thầy giáo‖ chính là thuật ngữ chỉ khái niệm ―giảng_viên‖ mô tả lớp ―giảng_viên‖ trong Ontology. Ánh xạ Ontology sử dụng thuật toán khoảng cách xâu đối với ―lớp k50 khoa học máy tính‖ thì nhận được thuật ngữ chỉ đối tượng ―k50_khoa_học_máy_tính‖ là thực thể trong lớp ―lớp‖ trong Ontology.

Tiếp đến, thành phần ánh xạ Ontology sẽ tìm các quan hệ liên kết giữa lớp ―giảng_viên‖ và lớp ―lớp‖ trong Ontology. Sau đó, từ tập quan hệ tìm được, so khớp với thuật ngữ ―giảng dạy‖, ánh xạ Ontology tìm được thuật ngữ chỉ quan hệ ―giảng_dạy‖ trong Ontology. Ánh xạ Ontology hình thành bộ ba mô tả là (giảng_viên, giảng_dạy, k50_khoa_học_máy_tính) tương ứng với Ontology, từ đó thành phần trích chọn câu trả lời đưa ra câu trả lời ngữ nghĩa tốt nhất có thể tới người dùng (hình 4.6).

43

4.4.1.2 Ánh xạ Ontology đối với loại câu hỏi UNKN_REL

Tiếp đến, để hiểu rõ hoạt động của thành phần ánh xạ Ontology, chúng tôi xem xét loại câu hỏi thiếu mối quan hệ trong câu và được phân loại ―UNKN_REL‖ bởi thành phần xử lý câu hỏi ngôn ngữ tự nhiên [1]. Xét câu hỏi:

―trường đại học công nghệ có học sinh nào?‖

Câu hỏi trích ra bộ ba dưới dạng (học sinh, ?, trường đại học công nghệ). Thuật ngữ ―học sinh‖ sau khi được tiền xử lý, và sử dụng tập từ vựng đồng nghĩa thì được nhận biết là ―sinh_viên‖ biểu diễn cho lớp ―sinh_viên‖ trong Ontology. Thuật ngữ ―trường đại học công nghệ‖ được nhận biết là đối tượng ―đại_học_công_nghệ‖ của lớp ―trường‖ trong Ontology bởi việc dùng thuật toán khoảng cách xâu.

Hình 4.7. Ánh xạ Ontology tƣơng tác với ngƣời dùng đối với loại câu hỏi “UNKN_REL”

Do không có mối quan hệ được nhận biết trong trường hợp này, vì vậy hệ thống xét tất cả các mối quan hệ giữa hai lớp trong Ontology là ―sinh_viên‖ và ―trường‖, và đưa ra lựa chọn tới người dùng yêu cầu về quan hệ mong muốn giữa ―sinh_viên‖ và ―đại_học_công_nghệ‖ (hình 4.7). Người dùng đưa lại phản hồi tới hệ thống mối quan hệ lựa chọn là ―học‖, hoặc ―có_sinh_viên‖, hoặc lựa chọn cả hai quan hệ. Khi đó, ánh xạ Ontology hình thành bộ ba (sinh_viên, học, đại_học_công_nghệ) hoặc (sinh_viên, có_sinh_viên, đại_học_công_nghệ). Câu trả lời được đưa ra sau khi hệ thống gọi thành phần trích chọn câu trả lời.

44

4.4.1.3 Ánh xạ Ontology đối với loại câu hỏi UNKN_TERM

Với những câu hỏi sau khi phân tích bởi [1] thì thiếu thuật ngữ đầu trong bộ ba, được phân loại ―UNKN_TERM‖. Ở đây, chúng tôi đưa ra các ví dụ để miêu tả rõ quá trình xử lý của thành phần ánh xạ Ontology đối với các câu hỏi này:

- ―mã sinh viên của Nguyễn Quốc Đại là gì?‖ - ―Nguyễn Quốc Đại có mã sinh viên là gì?‖ - ―sinh viên có địa chỉ ở đâu?‖

- ―địa chỉ của sinh viên là gì?‖

Đối với hai câu hỏi đầu tiên, thành phần xử lý câu hỏi ngôn ngữ tự nhiên phân tích [1] và đưa ra bộ ba (?, mã sinh viên, Nguyễn Quốc Đại). Sau khi bộ ba được tiền xử lý, ánh xạ Ontology nhận biết ―mã sinh viên‖ là thuật ngữ ―mã‖ dựa vào tập từ đồng nghĩa. Dựa vào thuật toán khoảng cách xâu, hệ thống nhận biết được ―nguyễn_quốc_đại‖ là thực thể trong lớp ―sinh_viên‖ của Ontology. Lúc này, ánh xạ Ontology sử dụng thuật toán khoảng cách xâu giữa ―mã‖ và các quan hệ của lớp ―sinh_viên‖ trong Ontology, và ―mã‖ được nhận biết không tương tự với bất kỳ mối quan hệ nào. Mà ánh xạ Ontology lại nhận ra đó là khái niệm ―mã‖ biểu diễn lớp ―mã‖

Một phần của tài liệu phương pháp xây dựng hệ thống hỏi đáp tiếng việt dựa trên ontology (Trang 47)