Tìm kiếm thông tin theo ngữ nghĩa dựa vào ontology

Tóm tắt. Ontology là một công cụ hữu ích trong biểu diễn thông tin và ngữ nghĩa của thông tin được mô tả một cách hình thức. Trong bài báo này, chúng tôi trình bày một mô hình tìm kiếm thông tin theo ngữ nghĩa dựa vào ontology. Việc tìm kiếm thực hiện qua các ontology miền (domain ontology) được thiết kế theo các lĩnh vực (chủ đề) từ các tài liệu thu thập được trong kho lưu trữ (không gian tìm kiếm). Truy vấn của người sử dụng được biến đổi và thực hiện trên ontology. Kết quả tìm kiếm được trên ontology sẽ được liên kết với các tài liệu trong kho dữ liệu để trả về cho người dùng. Phần thực nghiệm thực hiện trên dữ liệu thuộc lĩnh vực y tế và một số loại truy vấn đã minh họa cách tiếp cận đề xuất.

pdf9 trang | Chia sẻ: thanhle95 | Lượt xem: 558 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Tìm kiếm thông tin theo ngữ nghĩa dựa vào ontology, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
JOURNAL OF SCIENCE OF HNUE DOI: 10.18173/2354-1075.2015-0049 Educational Sci., 2015, Vol. 60, No. 7A, pp. 21-29 This paper is available online at TÌM KIẾM THÔNG TIN THEO NGỮ NGHĨA DỰA VÀO ONTOLOGY Phạm Thị Anh Lê1, Nguyễn Phước Cường2 1Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Hà Nội 2Trường Đại học Tây Nguyên Tóm tắt.Ontology là một công cụ hữu ích trong biểu diễn thông tin và ngữ nghĩa của thông tin được mô tả một cách hình thức. Trong bài báo này, chúng tôi trình bày một mô hình tìm kiếm thông tin theo ngữ nghĩa dựa vào ontology. Việc tìm kiếm thực hiện qua các ontology miền (domain ontology) được thiết kế theo các lĩnh vực (chủ đề) từ các tài liệu thu thập được trong kho lưu trữ (không gian tìm kiếm). Truy vấn của người sử dụng được biến đổi và thực hiện trên ontology. Kết quả tìm kiếm được trên ontology sẽ được liên kết với các tài liệu trong kho dữ liệu để trả về cho người dùng. Phần thực nghiệm thực hiện trên dữ liệu thuộc lĩnh vực y tế và một số loại truy vấn đã minh họa cách tiếp cận đề xuất. Từ khóa: Tìm kiếm thông tin, tìm kiếm theo ngữ nghĩa, thông tin ngữ nghĩa, ontology, truy vấn 1. Mở đầu Tìm kiếm luôn là vấn đề được quan tâm. Các máy tìm kiếm hiện nay đã hỗ trợ con người rất nhiều trong việc nhanh chóng tìm ra những thông tin mình muốn. Web ngữ nghĩa ra đời mở ra một hướng biểu diễn và tìm kiếm thông tin theo ngữ nghĩa. Ontology là một công cụ đáp ứng tốt yêu cầu này. Ontology mô tả tri thức bởi một tập các khái niệm và quan hệ giữa các khái niệm trong một lĩnh vực ứng dụng cụ thể, nhằm biểu diễn và chia sẻ thông tin giữa các ứng dụng và trao đổi thông tin giữa con người với máy tính. Trong các hệ thống tìm kiếm văn bản (phi cấu trúc) thực hiện tìm kiếm chủ yếu theo tần suất xuất hiện của từ khóa mà không tính đến ngữ cảnh sử dụng. Một khái niệm dùng trong các ngữ cảnh khác nhau sẽ mang các ý nghĩa khác nhau [8, 10] . Vì vậy, để đáp ứng nhu cầu tìm kiếm một cách hiệu quả thì các phương pháp tìm kiếm thông tin theo ngữ nghĩa rất được quan tâm gần đây. Trong bài báo, chúng tôi đề xuất một cách tìm kiếm thông tin dựa vào ontology. Nội dung chính tập trung vào việc xây dựng ontology miền và liên kết giữa các thành phần ontology với các tài liệu trong kho dữ liệu. Cách xử lí truy vấn và biến đổi truy vấn người dùng thành truy vấn ontology đóng vai trò quyết định chất lượng của kết quả tìm kiếm. Trong bài báo này, chúng tôi xem độc giả đã quen với các khái niệm cơ bản về ontology, ngôn ngữ biểu diễn ontology phổ biến như RDF, OWL. Các phần tiếp theo của bài báo sẽ trình bày chi tiết về mô hình tìm kiếm thông tin dựa vào ontology, ứng dụng thực nghiệm, đánh giá kết quả thực nghiệm và kết luận. Ngày nhận bài: 25/7/2015. Ngày nhận đăng: 18/11/2015. Liên hệ: Phạm Thị Anh Lê, e-mail: lepta@hnue.edu.vn 21 Phạm Thị Anh Lê, Nguyễn Phước Cường 2. Nội dung nghiên cứu 2.1. Mô hình tìm kiếm thông tin 2.1.1. Kiến trúc mô hình tìm kiếm Mô hình tìm kiếm thông tin theo ngữ nghĩa có cấu trúc tương tự máy tìm kiếm thông thường. Phần giao diện người dùng cho phép người dùng thao tác trực tiếp để đưa ra các câu truy vấn, sau đó hiển thị danh sách kết quả tìm kiếm. Kiến trúc là phần chính của hệ thống tìm kiếm, bao gồm các bộ phận lưu dữ liệu tìm kiếm và các tập tài liệu, bộ phân tích câu hỏi, tìm kiếm kết quả cho câu hỏi và sắp xếp các kết quả tìm kiếm. Quy trình tìm kiếm dựa vào ontology thực hiện như sau: Hình 1: Mô hình tìm kiếm thông tin [3] Bước 1: Câu truy vấn đưa vào từ giao diện người dùng. Câu truy vấn được biểu diễn bằng ngôn ngữ tự nhiên, có thể là một từ, cụm từ hay một câu. Sau đó, phân tích truy vấn để nhằm “hiểu” được yêu cầu của người dùng. Việc phân tích này sẽ dựa vào thông tin trong ontology đã được xây dựng. Kết quả của bước một là xác định được các từ, cụm từ có ý nghĩa quan trọng trong truy vấn. Những từ này sẽ được xác định thông qua quá trình đối sánh câu truy vấn với dữ liệu RDF. Đồng thời cần xác định loại của từ hay cụm từ đó trong ontology, chẳng hạn từ đó là một lớp trong ontology hay thuộc tính, quan hệ, thực thể, khái niệm. . . Bước 2: Chuyển yêu cầu tìm kiếm thành câu truy vấn dạng RDQL. Đây là một dạng truy vấn dữ liệu RDF. Trong bài báo này chúng tôi sử dụng ngôn ngữ truy vấn SPARQL để thay vì RDQL. Vì SPARQL là ngôn ngữ truy vấn mở rộng của RDQL, SPARQL hỗ trợ truy vấn tốt hơn và giải quyết được nhiều hạn chế của các ngôn ngữ truy vấn RDF [5]. Quá trình chuyển thành truy vấn SPARQL gồm: - Xác định các thuộc tính của một lớp, nếu lớp xuất hiện trong truy vấn. Giá trị của thuộc tính này chính là kết quả sẽ trả về cho người dùng. - Xác định các thuộc tính quan hệ của các lớp nếu có - Nếu có xuất hiện thực thể hay khái niệm thì cần xác định thực thể đó thuộc lớp nào. Mục đích tạo điều kiện lọc kết quả tìm kiếm. - Chuyển toàn bộ các phần đã xác định được và sắp xếp thành câu truy vấn SPARQL. 22 Tìm kiếm thông tin theo ngữ nghĩa dựa vào Ontology Bước 3: Máy tìm kiếm thực thi câu truy vấn ở bước 2. Để thực thi truy vấn trong bài báo này chúng tôi sử dụng sự hỗ trợ của Apache Jena [9], là một framework lập trình miễn phí bằng ngôn ngữ Java. Kết quả ở bước này là danh sách các thực thể, khái niệm phù hợp với truy vấn. Bước 4: Từ danh sách các thực thể (instances), hệ thống sẽ chỉ ra cho người dùng các tài liệu liên quan dựa vào các liên kết giữa ontology và tập tài liệu. Bước 5: Bước này thực hiện xếp hạng các tài liệu kết quả thu được. Hiện nay, có nhiều hướng tiếp cận cho việc xếp hạng tài liệu. Trong bài báo này, chúng tôi tính toán mức độ liên quan giữa tài liệu và truy vấn dựa vào phương pháp TF-IDF [3]. 2.1.2. Xây dựng ontology trong quy trình tìm kiếm Trong các hệ thống tìm kiếm dựa vào ontology, việc xây dựng ontology gắn liền với việc tạo liên kết với các tài liệu và gán trọng số cho các liên kết này. Đây là vấn đề quan trọng, cảnh hưởng đến chất lượng của kết quả tìm kiếm. Thông thường, xuất phát từ các kho tài liệu chứa các tài liệu theo chủ đề, người ta trích rút các thông tin để xây dựng các ontology miền. Các bước xây dựng ontology gồm: Xác định miền và phạm vi của ontology, Kế thừa các ontology có sẵn, Liệt kê các thuật ngữ quan trọng trong ontolog, Xây dựng lớp và cấu trúc phân cấp của các lớp, Định nghĩa các thuộc tính và quan hệ cho lớp, Định nghĩa các ràng buộc về thuộc tính và quan hệ của lớp, Tạo các thực thể cho lớp. Chi tiết về các bước có thể xem bày trong các tài liệu [7, 10, 12]. 2.1.3. Liên kết tài liệu Liên kết tài liệu là ánh xạ giữa các thành phần của ontology và nguồn tài liệu. Các liên kết sẽ không nhúng vào các tài liệu mà sẽ được lưu trữ trong ontology. Để lưu trữ các thông tin này, chúng tôi tạo thêm một lớp “Liên kết”gồm hai thuộc tính quan hệ là “thực thể” và “tài liệu”. Liên kết này được tạo bởi các chuyên gia lĩnh vực. Mục đích của các liên kết là để tham chiếu đến các tài liệu khi truy vấn thực hiện trên ontology. Để đánh giá mức độ liên quan giữa các tài liệu và truy vấn, chúng tôi sẽ tiến hành đánh trọng số cho các liên kết. Kĩ thuật đánh trọng số sử dụng mô hình không gian vector cổ điển. Trong mô hình không gian vector, mỗi từ khóa trong một tài liệu sẽ được gán trọng số. Trọng số sẽ được xác định dựa vào các từ khóa khác trong tài liệu và các tài liệu khác. Tương tự, hệ thống của chúng tôi, những ghi chú được gán một trọng số để xác định được ý nghĩa của tài liệu. Những trọng số được tính toán tự động bởi thuật toán TF-IDF [2, 9]. Dựa vào tần suất xuất hiện của thực thể trong mỗi tài liệu. Trọng số của thực thể trong tài liệu được tính như sau: w(i, j) = freqi,j maxk freqk,j × log N ni Trong đó, freqi,j : Tần suất xuất hiện của từ thứ i là Ik trong tài liệu Dj . maxk freqk,j : Tần số xuất hiện của từ thứ k, Ik trong tài liệu với từ k là xuất hiện nhiều nhất. N là tổng số tài liệu trong không gian tìm kiếm ni : Số tài liệu chứa “từ” Ii. Số lần xuất hiện của một thực thể trong một tài liệu chủ yếu được định nghĩa là số lần nhãn của thực thể đó xuất hiện trong văn bản tài liệu, nếu tài liệu đã được ghi chú trọng số với thực thể, và khác không. Tuy nhiên, xác định trọng số dựa vào phương pháp vừa nêu kết quả mang lại chưa thật sự tốt. Một số từ xuất hiện rất nhiều trong văn bản, nhưng những từ đó lại không mang ý nghĩa của văn bản. Từ này được gọi là “từ dừng” (Stop word), chẳng hạn: “và”, “thì”, “là” “một”, “nếu, “nhưng”, “vì”. . . Các từ này thường xuất hiện ở nhiều văn bản tài liệu khác nhau. Để giải quyết 23 Phạm Thị Anh Lê, Nguyễn Phước Cường vấn đề này chúng ta có hai hướng như sau: - Loại bỏ các “từ dừng” trước khi thực hiện tính toán trọng số. - Phương pháp thứ hai, sử dụng công thức tính kết hợp với công thức tính tần số nghịch đảo của một từ trong văn bản (IDF-Inverse Document Frequency). Cách này chỉ áp dụng tính toán trên một tập dữ liệu lớn. Mục đích nhằm giảm giá trị của các “từ dừng” phổ biến. Vì những từ xuất hiện nhiều ở văn bản này, mà ít xuất hiện trong các văn bản khác, hoặc chỉ xuất hiện nhiều trong một số văn bản nhất định. Nghĩa là từ đó quan trọng, có thể mang ý nghĩa đối với tài liệu đang xét. Ngược lại, những từ xuất hiện nhiều ở hầu hết các văn bản thậm chỉ ở một văn bản xuất hiệu rất nhiều lần. Thường thì những từ này ít mang ý nghĩa của tài liệu. Công thức tính tần suất nghịch đảo IDF như sau: idf(t, d) = log |D| |{d ∈ D : t ∈ d}| Trong đó |D| : Tổng số văn bản trong tập dữ liệu |{d ∈ D : t ∈ d}|: số văn bản chứa từ t với điều kiện là f(t, d) 6= 0 2.1.4. Xử lí truy vấn Xử lí truy vấn là quá trình phân tích yêu cầu tìm kiếm của người dùng. Mục đích chuyển các yêu cầu thành các câu truy vấn như SPARQL [5], để máy tính có thể hiểu và xử lí được. Truy vấn có thể là từ, hoặc cụm từ khóa, một câu truy vấn dưới dạng ngôn ngữ tự nhiên. Ngoài ra, câu truy vấn có thể được lấy từ giao diện tìm kiếm dựa theo khuôn mẫu. Tìm kiếm theo khuôn mẫu cho phép người dùng chọn lựa các mong muốn tìm kiếm, việc lựa chọn dựa vào các lớp của ontology miền đang xây dựng. Sau đó, người dùng nhập các thông tin cần tìm phù hợp với lớp đó để tìm kiếm. Hệ thống phân tích các truy vấn theo các dạng vừa nêu trên. Kết quả của quá trình xử lí là hệ thống hiểu được mong muốn của người dùng và tạo ra câu truy vấn SPARQL để có thể thực thi và trả về tài liệu phù hợp. Ví dụ với câu truy vấn: “Bác sĩ thuộc khoa chấn thương chỉnh hình”, kết quả tìm kiếm của các máy tìm kiếm như Google, Yahoo, . . . chủ yếu là thông tin về “khoa chấn thương chỉnh hình”. Kết quả này chưa đáp ứng được yêu cầu của người dùng. Người dùng cần tìm những “bác sĩ” thuộc chuyên khoa “chấn thương chỉnh hình”. Thông tin người dùng đang muốn tìm là thông tin của các bác sĩ gồm tên, tuổi, địa chỉ, số điện thoại, học vị, nơi công tác. . . Đây là kết quả mong muốn của hệ thống tìm kiếm dựa vào ngữ nghĩa. Tức là, hệ thống sẽ phải hiểu được người dùng đang muốn tìm thông tin của các “bác sĩ” với điều kiện các bác sĩ thuộc khoa chấn thương chỉnh hình. Chúng tôi đề xuất chia thành ba bước sau: Bước 1. Tách từ, cụm từ từ truy vấn Thực hiện kiểm tra trong câu truy vấn, nếu xuất hiện lớp, thuộc tính, quan hệ, khái niệm. . . có trong ontology, thì rút trích từ hay cụm từ đó. Đồng thời các xác định loại của từ hay cụm từ đó. Chẳng hạn, với truy vấn “Bác sĩ thuộc khoa chấn thương chỉnh hình” có thể xác định các lớp: “Bác sĩ”, “Khoa” và thực thể “khoa chấn thương chỉnh hình”. Bước 2. Xác định mối quan hệ và điều kiện lọc dữ liệu. Mục đích của bước này là rút ra các lớp ẩn, các thực thể, và quan hệ giữa các lớp. . . Lớp ẩn là những lớp không xuất hiện trong truy vấn, nhưng có liên quan đến truy vấn. Phương pháp tiến hành như sau: Kiểm tra số lớp (class) xuất hiện trong câu truy vấn, sẽ có ba trường hợp như sau: Trường hợp 1: Không xuất hiện lớp trong câu truy vấn - Nếu không xuất hiện thực thể thì thông báo không tìm thấy kết quả phù hợp. 24 Tìm kiếm thông tin theo ngữ nghĩa dựa vào Ontology - Nếu xuất hiện thực thể: kiểm tra thực thể này thuộc lớp nào. Sau đó, chuyển sang bước 3. Ví dụ, truy vấn “chấn thương chỉnh hình”. Trong truy vấn không xuất hiện lớp, chỉ có một thực thể là “chấn thương chỉnh hình”. Với sự hỗ trợ của Jena rút ra được thực thể này thuộc lớp “khoa”. Lớp “khoa” được gọi là lớp ẩn trong truy vấn. Tiếp theo, chúng tôi thực hiện chuyển kết quả gồm lớp “khoa” và thực thể “chấn thương chỉnh hình” qua bước 3. Trường hợp 2: Xuất hiện một lớp, tiếp tục tiến hành loại bỏ lớp này ra khỏi câu truy vấn. - Nếu phần còn lại của truy vấn bằng rỗng thì xác nhận chỉ tồn tại duy nhất một lớp và chuyển đến bước 3. - Nếu phần còn lại có chứa thực thể, tương tự như trường hợp 1, tiến hành kiểm tra xem thực thể này thuộc lớp nào. Nếu đây là thực thể của lớp chúng ta đang có thì chuyển kết quả sang bước 3. Ngược lại, nếu xác định được thực thể này thuộc một lớp khác thì cần phải xác định thêm lớp mới tìm thấy và lớp chúng ta đang xét có quan hệ gì không. Sau đó, chuyển tất cả các lớp, thực thể và quan hệ nếu có qua bước 3. Trường hợp 3: Xuất hiện nhiều lớp, thì cần xác định mối quan hệ giữa các lớp này. Sau đó, thực hiện tương tự trường hợp 2. Ví dụ áp dụng bước 2 cho truy vấn “bác sĩ thuộc khoa chấn thương chỉnh hình”, kết quả thu được: lớp “Bác sĩ” có quan hệ “Thuộc chuyên khoa” với lớp “Khoa” và lớp “Khoa” có quan hệ “Có bác sĩ” với lớp “Bác sĩ”. Giả sử kí hiệu “Bác sĩ” là lớp 1, “Khoa” là lớp 2. Bước 3. Tạo câu truy vấn dựa vào từ, cụm từ, mối quan hệ và thực thể Nếu xuất hiện lớp thì câu truy vấn SPARQL như sau: SELECT ?lớp WHERE { ?lớp rdf:type ns:lớp .} Trong đó: ?lớp là biến, ns là định dạng của URI. Nếu xuất hiện thực thể thuộc lớp đã có thì chèn thêm đoạn truy vấn sau vào mệnh đề WHERE. FILTER (?lớp = ns:thực_thể) Khi đó, truy vấn SPARQL thu được như sau: SELECT ?tlớp WHERE { ?lớp rdf:type ns:lớp . FILTER (?lớp = ns:thực_thể)} Nếu trường hợp có 2 lớp trở lên thì tạo 2 câu truy vấn SPARQL như trên. Nếu tồn tại mối quan hệ giữa hai lớp và một trong hai lớp này có thực thể thì đưa ra được truy vấn SPARQL bổ sung như sau (giả sử thực thể xác định được là của lớp 1 và lớp 2 có quan hệ 2 với lớp 1): SELECT ?lớp_1 WHERE { ?lớp_1 rdf:type ns:lớp_1 . FILTER (?lớp_1 = ns:thực_thể_1)} SELECT ?lớp_2 WHERE { ?lớp_2 rdf:type ns:lớp_2 . ?lớp_2 ns:quan_hệ_2 ?lớp_1 . FILTER (?lớp_1 = ns:thực_thể_1)} Ngược lại, nếu tồn tại thực thể lớp 1 mà không tồn tại quan hệ của lớp 2 với lớp 1, hoặc tồn tại quan hệ lớp 2 với lớp 1 mà không tồn tại thực thể lớp 1 thì không thêm quan hệ. Thực thể “Chấn thương chỉnh hình” thuộc lớp 1. 25 Phạm Thị Anh Lê, Nguyễn Phước Cường Áp dụng bước 3 vào trường hợp này ta được 2 câu truy vấn như sau: Truy vấn 1: SELECT?khoa WHERE { ?khoa rdf:type ns:khoa . FILTER (?khoa = ns:khoa_chan_thuong_chinh_hinh) } Truy vấn này không thêm quan hệ “Có bác sĩ”, vì không tồn tại thực thể của “Bác sĩ”. Truy vấn 2: SELECT?bac_sy WHERE { ?bac_sy rdf:type ns:bac_sy . ?bac_sy ns:thuoc_chuyen_khoa ?khoa . FILTER (?khoa = ns:khoa_chan_thuong_chinh_hinh) } Quan hệ “thuộc chuyên khoa” được thêm vào vì có tồn tại một thực thể của lớp “khoa” là “chấn thương chỉnh hình”. Kết quả thực hiện truy vấn là danh sách các thực thể và bao gồm cả các thuộc tính, quan hệ và các tài liệu đã được liên kết với thực thể tương ứng. Trong trường hợp xuất hiện hai câu truy vấn như trên, hệ thống sẽ tương tác phản hồi với người dùng để chọn ra câu truy vấn phù hợp với yêu cầu người dùng nhất. Nếu người dùng đồng ý với kết quả trên thì kết thúc tìm kiếm. Ngược lại, nếu người dùng không đồng ý thì yêu cầu người dùng chọn một số hướng tìm kiếm khác. Với ví dụ này có thể đưa ra một số đề xuất như: “Bạn muốn tìm bác sĩ?” hay “Bạn muốn tìm chuyên khoa”. . . Ngoài ra, có thể thay đổi một số từ, cụm từ trong câu truy vấn cho phù hợp với miền ontology. Ví dụ, từ “bác sĩ” hay “bác sĩ”, “khoa” hay “chuyên khoa’ . . . Số lượng kết quả tìm kiếm thực tế tương đối lớn. Vì vậy, cần có giảm các tài liệu trong danh sách kết quả bằng các phương pháp phân hạng tài liệu. Việc phân hạng này sẽ giúp lọc ra danh sách các tài liệu có mức độ liên quan nhất với yêu cầu người dùng. 2.2. Ứng dụng thực nghiệm Để minh họa mô hình tìm kiếm theo ngữ nghĩa, chúng tôi tiến hành xây dựng hệ thống thực nghiệm với ontology trong lĩnh vực y tế. Lĩnh vực y tế là một trong lĩnh vực luôn được quan tâm, việc tìm kiếm thông tin cụ thể và chuyên sâu của lĩnh vực này là rất cần thiết. Trong phạm vi bài báo, chúng tôi thu thập khoảng trên 500 tập tin thuộc các lĩnh vực khác nhau từ các trang web. Các loại định dạng của tập tin là doc, docx, pdf. Dựa vào nguồn dữ liệu, chúng tôi xây dựng ontology gồm: 30 lớp, 61 thuộc tính, 25 quan hệ và khoảng 400 thực thể. Việc soạn thảo ontology và tạo liên kết sử dụng công cụ Protégé [12]. Chúng tôi đã thực hiện một số loại truy vấn chính như truy vấn theo lớp, truy vấn theo thực thể, truy vấn trên quan hệ và truy vấn trên quan hệ ẩn. Để minh họa, chúng tôi trình bày một ví dụ về truy vấn theo quan hệ. Khi câu truy vấn của người dùng có xuất hiện một lớp và lớp này có quan hệ với lớp khác đã mô tả trong ontology. Kết quả tìm kiếm của loại truy vấn này là danh sách thực thể của một trong các lớp trên. Việc tìm kiếm cần xác định lớp nào là yêu cầu của người dùng. Điều này phụ thuộc vào thông tin đi theo lớp trong truy vấn, chẳng hạn, truy vấn có chứa thực thể thuộc lớp nào? truy vấn chứa tên quan hệ của lớp nào? Mặt khác, hệ thống đưa ra các gợi ý tìm theo lớp để người dùng chọn. Ví dụ, tìm kiếm “các bác sĩ thuộc khoa chấn thương chỉnh hình”. Trường hợp này trong câu truy vấn xuất hiện 2 lớp: “Bác sĩ” và “Khoa”. Hệ thống kiểm tra các mối quan hệ của hai lớp và xác định quan hệ “Thuộc chuyên khoa”. Vì trong câu truy vấn tồn tại một thực thể của lớp khoa là 26 Tìm kiếm thông tin theo ngữ nghĩa dựa vào Ontology “khoa chấn thương chỉnh hình”. Câu truy vấn SPARQL và kết quả thu được là danh sách các bác sĩ thuộc khoa chấn thương chỉnh hình như hình 2: Hình 2: Kết quả truy vấn “bác sĩ thuộc khoa chấn thương chỉnh hình” Hình 3: Kết quả khi người dùng tìm theo khoa Hơn nữa, câu truy vấn này xuất nhiều hơn một lớp nên hệ thống thực hiện phản hồi với người dùng xem kết quả trên đã đáp ứng yêu cầu hay chưa. Hệ thống gợi ý các hướng tìm kiếm tiếp dựa vào hai lớp “bác sĩ” và “khoa” như hình 3. Câu truy vấn SPARQL thứ 2 được đưa ra là tìm các khoa với điều kiện “khoa chấn thương chỉnh hình”. Nội dung câu truy vấn 2 như sau (cho kết quả như hình 3): Kết quả của các truy vấn là danh sách các thực thể. Trong trường hợp người dùng muốn xem chi tiết về các thực thể thì chọn nhấn vào tên thực thể (ví dụ hình 4). Ngoài ra, có thể chọn xem các thực thể được liên kết đến thực thể đang chọn. Ví dụ, hình 5 chỉ ra ba liên kết là “thuốc paracetamol”, “thuốc Ibuprofen” và “loại bệnh da liễu”. Hình 4: Kết quả khi chọn thực thể Hình 5: Một phần thông tin chi tiết thực thể 2.3. Đánh giá thực nghiệm Với các câu truy vấn thuộc các loại đã trình bày trong phần 3, hệ thống luôn trả về danh sách các thực thể phù hợp. Các kết quả này phụ thuộc nhiều vào các liên kết giữa các thành phần 27 Phạm Thị Anh Lê, Nguyễn Phước Cường ontology và tài liệu. Thực nghiệm cho thấy, hệ thống có thể đáp ứng tốt các nhu cầu tìm kiếm của người dùng về lĩnh vực y tế, chẳng hạn, tìm kiếm thông tin về bệnh, phương pháp điều trị, biện pháp phòng chống, nơi điều trị và bác sĩ điều trị. Hơn nữa, quá trình tìm kiếm không phụ thuộc vào nguồn dữ liệu mà phụ thuộc vào ontology đã xây dựng nên tốc độ tìm kiếm rất nhanh. Hệ thống thực nghiệm cũng tồn tại một số hạn chế. Các câu truy vấn có chứa các thực thể không đầy đủ thường trả về các kết quả có độ chính xác kém hơn (có các tài liệu không liên quan). Ví dụ, câu truy vấn “Bác sĩ Khoa”, hệ thống xác định từ “Khoa” thuộc hai loại, hoặc là thực thể của lớp “Bác sĩ”, hoặc là lớp “Khoa”. Do đó, hệ thống không xác định được yêu cầu chính xác của người dùng để có thể đưa ra truy vấn SPARQL. Đối với truy vấn có quá nhiều mối quan hệ, hệ thống chưa xử lí tốt được kết quả. Hướng giải quyết là t
Tài liệu liên quan