Cài đặt Sesame

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 35)

Sesame có thể triển khai theo một vài cách. Hai phương pháp phổ biến nhất bao gồm việc triển khai như là một thư viện java, hoặc triển khai như là một máy chủ.

3.3.2.1 Cài đặt thƣ viện Sesame

Thư viện Sesame gồm tập các file: - Sesame.jar

- Rio.jar: Rio (RDF I/O) là một tập các bộ phân tích và bộ ghi cho các định dạng RDF (RDF/XML, Turtle, N-Triples).

- Openrdf-model.jar: Các lớp được sử dụng chung cho các mô hình RDF. - Openrdf-util.jar: Các lớp dịch vụ được sử dụng chung.

Những lưu trữ (nằm trong thư mục lib/) chứa các lớp Java có sẵn để sử dụng trong các ứng dụng riêng.

24

Nếu cài đặt Sesame sử dụng mô hình máy khách – máy chủ qua giao thức HTTP, thì cần thêm các thư viện: Jakarta Commons File Upload, Jakarta Commons IO. Các thư viện này có thể được tìm thấy trong thư mục ext/ của mã nguồn Sesame.

3.3.2.2 Cài đặt máy chủ Sesame

Phần mềm đƣợc yêu cầu

Máy chủ Sesame yêu cầu các phần mềm: Sesame, và Java servlet container để chạy các Sesame servlets.

Sesame sẽ có thể chạy trên bất kỳ Java servlet container để hỗ trợ các đặc điểm kỹ thuật Servlet 2.2 và JSP 1.1, hoặc mới hơn. Sesame đã được thử nghiệm với Tomcat, và trong Oracle, với OC4J.

Sesame có một số lựa chọn để lưu trữ dữ liệu RDF, Sesame có thể lưu trữ dữ liệu trong bộ nhớ, hoặc có thể lưu trữ dữ liệu trên đĩa trong một cấu trúc file chuyên dụng, hoặc nó có thể lưu trữ dữ liệu trong một cơ sở dữ liệu quan hệ.

Cài đặt Sesame trên Tomcat

Các bước mô tả quy trình cài đặt Sesame trên Tomcat: - Cài đặt Tomcat theo mặc định.

- Tới thư mục các ứng dụng web ([TOMCAT_DIR]/webapps/) và tạo một thư mục tên là sesame.

- Giải nén file sesame.war (có thể tìm được file này trong thư mục lib/) vào trong thư mục sesame vừa được tạo mới trong thư mục các ứng dụng web của Tomcat.

- Sao chép file [SESAME_DIR]/WEB-INF/system.conf.example thành

[SESAME_DIR]/WEB-INF/system.conf.

- Khởi động lài Tomcat server và Sesame sẽ bắt đầu hoạt động. Truy cập vào giao diện web Sesame tại http://localhost:8080/sesame .

25

3.3.2.3 Quản trị máy chủ

Thay đổi cấu hình hệ thống

Cấu hình của Sesame được thiết lập trong file [SESAME_DIR]/WEB- INF/system.conf. Để thay đổi file cấu hình sử dụng công cụ Configure Sesame! có sẵn trong [SESAME_DIR]/WEB-INF/bin/. Để bắt đầu thay đổi cấu hình, sử dụng

configSesame.bat (trên Windows) hoặc configSesame.sh (trên UNIX) (hình 3.5).

Nạp cấu hình hệ thống

Hình 3.5. Cấu hình Sesame

Khi bắt đầu Configure Sesame!, nạp file system.conf. Nếu muốn cấu hình Sesame server đang chạy, thì có thể nạp file trực tiếp từ server ([File] → [Load from server...]), và nhập mật khẩu quản trị là ―admin‖.

Lƣu trữ một cấu hình hệ thống

Khi thay đổi cấu hình, cấu hình có thể lưu trữ trên đĩa ([File] → [Save file as...]), hoặc có thể gửi trực tiếp tới Sesame server đang chạy ( [File] → [Send to server...]).

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

Thiết lập mật khẩu quản trị

Nếu cấu hình hệ thống không thay đổi mật khẩu quản trị từ trước, để thiết lập mật khẩu, chọn tab Server và thay thế mật khẩu quản trị.

Thêm và loại bỏ tài khoản ngƣời sử dụng

Để thêm hoặc loại bỏ tài khoản người dùng, thực hiện theo bước sau: - Mở tab Users.

- Click vào biểu tượng ―Add user‖.

- Để loại bỏ tài khoản người dùng thì click vào nút ―Remove user‖.

Cấu hình các kho dữ liệu

Cấu hình các kho dữ liệu có sẵn, hoặc thêm mới, hoặc loại bỏ kho dữ liệu bởi việc thiết lập cấu hình sử dụng Configure Sesame! (hình 3.5).

Chỉnh sửa cấu hình một kho dữ liệu có sẵn

Mở tab ―Repositories‖ và lựa chọn kho dữ liệu sẽ thay đổi cấu hình, click nút ―Repository details‖ (hình 3.6).

27

Trong cửa sổ Repository (hình 3.6) có thể chỉnh sửa một số thông số của kho dữ liệu. Phần phía trên cửa sổ hiển thị ngăn xếp SAIL, phần phía dưới hiển thị các thông số SAIL được lựa chọn trong ngăn xếp. Trong hầu hết trường hợp, cấu hình chỉ cần chỉnh sửa các thông số phía dưới SAIL trong ngăn xếp.

Cửa sổ thông tin chi tiết Repository cũng cho phép cấu hình thay đổi các quyền truy cập của người sử dụng đối với một kho dữ liệu. Để thay đổi quyền truy cập, sử dụng tab ―Access rights‖, và chỉnh sửa các quyền của người sử dụng hiện hành hoặc thêm người dùng mới.

Thêm các kho dữ liệu mới

Để thêm một kho dữ liệu mới thì cấu hình chỉ cần sinh bản sao của kho dữ liệu có sẵn. Sử dụng nút ―Clone‖ trên tab Repository để thực hiện việc này. Việc này tạo một bản sao của cấu hình kho dữ liệu hiện thời được lựa chọn, và sau đó có thể chỉnh sửa.

Loại bỏ các kho dữ liệu

Để loại bỏ một kho dữ liệu, lựa chọn tab Repository, lựa chọn một kho dữ liệu và click vào nút ―Remove‖.

3.3.3 Giao diện web của Sesame

Sesame đi kèm với một giao diện Web cho phép truy cập tới các kho dữ liệu thông qua trình duyệt Web thông thường.

3.3.3.1 Đăng nhập

Trang đầu vào của Sesame được đặt tại http://localhost:8080/sesame. Màn hiển thị cung cấp cho lựa chọn các kho dữ liệu để thao tác trên đó. Để đăng nhập vào Sesame, click liên kết ―log in‖ và cung cấp tên người dùng và mật khẩu.Sau khi đăng nhập, lựa chọn kho dữ liệu muốn thực hiện các xử lý.

Sau khi lựa chọn kho dữ liệu, màn hình hiển thị giao diện chức năng của Sesame (hình 3.7).

28

Hình 3.7. Giao diện we b của Sesame

Các công cụ trên đỉnh của màn hình hiển thị thông tin người dùng và thông tin kho dữ liệu, và cho phép lựa chọn các thao tác khác nhau trên kho dữ liệu này. Các thao tác này được phân loại trong các thao tác đọc (chẳng hạn như các truy vấn) và trong các thao tác ghi (thêm và loại bỏ dữ liệu).

3.3.3.2 Thêm dữ liệu vào một kho dữ

Giao diện web cung cấp ba lựa chọn để thêm dữ liệu vào một kho dữ liệu Sesame: Add file, Add (www) và Add (copy-paste).

Các lựa chọn Add file và Add (www) không phức tạp, lựa chọn đầu tiên cho phép lựa chọn một tài liệu RDF trên đĩa để thêm vào kho dữ liệu Sesame, và lựa chọn thứ hai cho phép thêm các tài liệu RDF qua một URL tới kho dữ liệu.

Tùy chọn Add (copy-paste) cho phép tải dữ liệu tới Sesame bằng cách gõ (hoặc sao chép và dán) trong vùng văn bản. Văn bản được gõ là tài liệu RDF/XML hợp lệ.

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

Chƣơng 4.

Hệ thống hỏi đáp tiếng Việt dựa trên Ontology

Mục 4.1 chúng tôi giới thiệu kiến trúc tổng quan về hệ thống, các thành phần của hệ thống. Mục 4.2, chúng tôi giới thiệu cách xử lý câu hỏi đầu vào của hệ thống [1]. Mục 4.3, chúng tôi đưa ra cách thiết kế Ontology, và chúng tôi thiết kế một Ontology thử nghiệm cho tổ chức, cụ thể là trường Đại học Công Nghệ. Mục 4.4 và 4.5, chúng tôi mô tả hệ thống trích rút câu trả lời bởi thành phần ánh xạ Ontology và thành phần trích chọn câu trả lời. Các câu hỏi được đưa ra trong miền ứng dụng cụ thể dựa trên Ontology đã thiết kế trong mục 4.3, từ đó chúng tôi đưa ra câu trả lời ngữ nghĩa tốt nhất có thể tới người dùng.

4.1 Kiến trúc tổng quan của hệ thống

Kiến trúc của hệ thống (hình 4.1) sẽ gồm hai thành phần chính, thành phần xử lý câu hỏi ngôn ngữ tự nhiên, và thành phần tìm kiếm câu trả lời. Trong khóa luận này, chúng tôi sẽ tập trung vào thành phần tìm kiếm câu trả lời. Thành phần xử lý câu hỏi ngôn ngữ tự nhiên mà chúng tôi sử dụng được đưa ra bởi Nguyễn Quốc Đạt [1].

Hình 4.1. Kiến trúc tổng quan của hệ thống hỏi đáp tiếng Việt dựa trên Ontology Thành phần xử lý câu hỏi ngôn ngữ tự nhiên Bộ biểu diễn trung gian Thành phần tìm kiếm câu trả lời Câu hỏi ngôn ngữ tự nhiên Câu trả lời ngữ nghĩa Sesame server ONTOLOGY OWL

30

Thành phần tìm kiếm câu trả lời được chia làm hai thành phần chính là thành phần ánh xạ Ontology và thành phần trích chọn câu trả lời. Chúng tôi sẽ giới thiệu về hai thành phần này đối với từng loại câu hỏi cụ thể trong mục 4.4, 4.5. Chúng tôi sử dụng thành phần ánh xạ Ontology để tạo bộ mô tả tương ứng với Ontology, và dùng 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ể tới người dùng.

Hình 4.2. Kiến trúc của thành phần tìm kiế m câu trả lời

Hình 4.2 mô tả kiến trúc của thành phần tìm kiếm câu trả lời. Bộ biểu diễn trung gian cho câu hỏi sau khi được tiền xử lý, là đầu vào cho ánh xạ Ontology. Ánh xạ Ontoloyg kết hợp với dữ liệu từ Ontology lưu trên Sesame server, sử dụng thuật toán khoảng cách xâu. Thuật toán khoảng cách xâu được sử dụng để tìm các thuật ngữ tương ứng thích hợp trong Ontology và ánh xạ Ontology cũng có thể tương tác với người dùng để có thuật ngữ phù hợp với Ontology. Ánh xạ Ontology hình thành bộ mô tả tương ứng với Ontology. Và thành phần trích chọn câu trả lời sử dụng bộ mô tả này để đưa ra câu trả lời ngữ nghĩa nhất tới người sử dụng.

Thuật toán khoảng cách xâu Bộ biểu diễn trung gian Câu trả lời ngữ nghĩa Ngƣời sử dụng Tƣơng tác

Sesame server ONTOLOGY

OWL

Thành phần tìm kiếm câu trả lời

Tiền xử lý Pre-processing Trích chọn câu trả lời Ánh xạ Ontology Bộ ba mô tả tƣơng ứng với Ontology

31

Câu hỏi được xử lý bởi thành phần xử lý ngôn ngữ tự nhiên được Nguyễn Quốc Đạt đưa ra [1], và hình thành nên bộ biểu diễn trung gian. Bộ biểu diễn trung gian này mô tả thông tin cho câu hỏi đầu vào. Tùy vào câu hỏi đơn giản hay phức tạp mà bộ biểu diễn trung gian được cho dưới dạng quan hệ bậc hai giữa hai thuật ngữ hoặc quan hệ bậc ba giữa ba thuật ngữ. Bộ biểu diễn trung gian quan hệ bậc hai có dạng (thuật ngữ 1, quan hệ, thuật ngữ 2). Trong đó, ―thuật ngữ 1‖ và ―thuật ngữ 2‖ là các cụm từ trong câu mang thông tin về đối tượng cũng như khái niệm muốn hỏi, và ―quan hệ‖ là cụm từ trong câu thể hiện quan hệ giữa hai thuật ngữ đó. Chẳng hạn, với câu hỏi:

―Nguyễn Quốc Đại học lớp nào?‖ → (lớp, học, Nguyễn Quốc Đại).

Trong trường hợp này bộ biểu diễn trung gian gọi là bộ ba biểu diễn quan hệ bậc hai. Tương tự như vậy, bộ biểu diễn trung gian quan hệ bậc ba có dạng (thuật ngữ 1, quan hệ, thuật ngữ 2, thuật ngữ 3), còn được gọi là bộ ba biểu diễn quan hệ bậc ba. Tùy thuộc vào từng câu hỏi cụ thể mà bộ ba biểu diễn cho câu hỏi đó có thể thiếu ―thuật ngữ 1‖ hoặc ―quan hệ‖. Ví dụ:

―học sinh của lớp khoa học máy tính của trường đại học công nghệ là ai?‖ → (?, học sinh, lớp khoa học máy tính, trường đại học công nghệ).

Ánh xạ Ontology dựa vào bộ ba biểu diễn câu hỏi này để hình thành nên các bộ mô tả các khái niệm, đối tượng và quan hệ tương ứng với Ontology. Các bộ mô tả này cũng được biểu diễn dưới dạng bộ ba quan hệ như trên, nên chúng tôi gọi là bộ ba mô tả tương ứng với Ontology. Sau đó, 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 tới người dùng. Tổng quan chi tiết về xử lý của thành phần ánh xạ Ontology và trích chọn câu trả lời đối với các câu hỏi sẽ được chúng tôi đưa ra trong 4.4 và 4.5.

Mục dưới đây, chúng tôi giới thiệu về thành phần xử lý ngôn ngữ tự nhiên [1]. Thành phần xử lý ngôn ngữ tự nhiên phân loại câu hỏi đầu vào để hình thành nên các bộ ba biểu diễn trung gian cho câu hỏi.

32

4.2 Xử lý câu hỏi ngôn ngữ tự nhiên

Thành phần xử lý ngôn ngữ tự nhiên [1], phân các câu hỏi vào các loại cụ thể. Phân loại câu hỏi cung cấp những ràng buộc ngữ nghĩa cho câu trả lời mong muốn, và cung cấp thông tin để ánh xạ Ontology dựa vào đó hình thành nên các bộ ba mô tả, cũng như để hệ thống tạo câu trả lời ngữ nghĩa tốt nhất có thể cho câu hỏi. Các câu hỏi được phân loại như sau:

NORMAL: câu hỏi có bộ ba biểu diễn trung gian là quan hệ bậc hai giữa hai khái niệm và đủ cả ba thành phần. Ví dụ:

―sinh viên nào học lớp k50 khoa học máy tính?‖ → (sinh viên, học, lớp k50 khoa học máy tính).

UNKN_TERM: câu hỏi có bộ ba biểu diễn trung gian là quan hệ bậc hai giữa hai khái niệm, nhưng thiếu thuật ngữ đầu. Ví dụ:

―mã sinh viên của Nguyễn Quốc Đại là gì?‖ → (?, mã sinh viên, Nguyễn Quốc Đại).

UNKN_REL: câu hỏi có bộ ba biểu diễn trung gian là quan hệ bậc hai nhưng thiếu quan hệ giữa hai thuật ngữ. Ví dụ: (adsbygoogle = window.adsbygoogle || []).push({});

―lớp khoa học máy tính có những sinh viên nào?‖ → (lớp khoa học máy tính, ?, sinh viên).

AFFIRM_NEG: đây là các câu hỏi dạng đúng – sai. Ví dụ:

―Nguyễn Quốc Đại có quê là Hà Nội phải không?‖ → (Nguyễn Quốc Đạt, có quê, Hà Nội)

THREETERM: đây là loại câu hỏi phức tạp, câu hỏi có biểu diễn bộ ba quan hệ bậc ba giữa ba thuật ngữ (thuật ngữ 1, quan hệ, thuật ngữ 2, thuật ngữ 3). Tùy vào từng câu hỏi, bộ ba này có thể đầy đủ thành phần, hoặc thiếu quan hệ, hoặc thiếu thuật ngữ thứ nhất.

33 Ví dụ:

―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ệ)

―trường của Nguyễn Quốc Đại của Nguyễn Quốc Đạt là gì?‖ → (?, trường, Nguyễn Quốc Đại, Nguyễn quốc Đạt).

Trên đây là các loại câu hỏi mà chúng tôi đưa ra để hỏi hệ thống này. Sau khi chúng tôi thiết kế xong Ontology (phần 4.3), chúng tôi đưa ra tổng quan về thành phần ánh xạ Ontology và trích chọn câu trả lời (mục 4.4, 4.5) dựa trên các loại câu hỏi nêu trên. Từ đó, chúng tôi đánh giá hệ thống cho các câu hỏi được hỏi.

34

4.3 Thiết kế Ontology bằng Protege

Như đã đề cập ở chương 3, trong khoa học máy tính, Ontology lưu trữ thông tin về miền ứng dụng cụ thể. Ontology là biểu diễn hình thức của một tập các khái niệm về một miền cụ thể và các mối quan hệ giữa các khái niệm. Trong Ontology, lớp là tập hợp các đối tượng, các thuộc tính là các đặc trưng mà các đối tượng (và các lớp) có thể có, còn mối quan hệ là cách mà các lớp, các đối tượng thể hiện sự liên kết tới các lớp hoặc các đối tượng khác.

Hai quan hệ phổ biến trong Ontology là is-a-superclass-ofis-a-subclass-of. Ví dụ, trường is-a-superclass-of khoa, khoa is-a-subclass-of trường. Ngoài hai quan hệ trên, Ontology được sử dụng để thể hiện các quan hệ trong miền và phân loại các quan hệ, chẳng hạn như:

- Các quan hệ giữa các lớp.

- Các quan hệ giữa các các đối tượng.

- Các quan hệ giữa các một đối tượng và một lớp.

Do vậy, việc thiết kế Ontology là cực kỳ quan trọng để thể hiện tri thức về miền ứng dụng cụ thể.

Hệ thống hỏi đáp tiếng Việt dựa trên Ontology của chúng tôi có thể áp dụng đối với nhiều miền ứng dụng. Tuy nhiên, trong khóa luận này, chúng tôi thiết kế một Ontology thử nghiệm về một tổ chức, cụ thể là trường Đại học Công Nghệ. Từ đó, dựa vào Ontology được thiết kế, chúng tôi sử dụng Sesame server để lưu trữ và căn cứ vào đó, chúng tôi sẽ mô tả chi tiết thành phần ánh xạ Ontology và trích chọn câu trả lời (trong mục 4.4 và 4.5).

Chúng tôi thiết kế thử nghiệm Ontology cho trường đại học Công Nghệ bằng công cụ Protege 3.3.1 [68]. Việc phát triển một Ontology, bao gồm các bước sau:

- Định nghĩa các lớp trong Ontology.

- Xắp xếp các lớp theo một trật tự lớp cha – lớp con.

- Định nghĩa các thuộc tính, miêu tả các giá trị cho các thuộc tính này. - Điền các giá trị vào các thuộc tính cho các đối tượng.

Dưới đây, chúng tôi trình bày cách thiết kế Ontology thử nghiệm về trường Đại

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 35)