Thursday, November 19, 2009

Sử dụng RDF trong web ngữ nghĩa

Trước khi sử dụng các công cụ tìm kiếm ngữ nghĩa, thì các hệ thống ngữ nghĩa phải tổ chức lại những dữ liệu không có cấu trúc cụ thể trên internet. Vì những dữ liệu trên internet thường được viết bằng ngôn ngữ tự nhiên, và người dùng cũng thường tìm kiếm bằng một câu truy vấn theo ngôn ngữ tự nhiên. Việc xây dựng tự động các dữ liệu có cấu trúc thường mất một khoảng thời gian rất lớn, chi phí bỏ ra cũng nhiều.

Theo đề xuất của Zhang và Yu (xem [Zhang 2001]), một đồ thị ý niệm (Conceptual Graph – xem [Sowa 1984]) được dùng như là một công cụ cho việc hiện thực ngữ nghĩa (semantic representation), trong khi WordNet (xem [Miller 1990]) cùng với các hệ phân cấp quan hệ được xây dựng bằng cách thủ công tác động để hình thành miền ontology được dùng cho toàn bộ quá trình phân tích và khai thác ngữ nghĩa. Từ đó, những nghiên cứu khác sẽ ánh xạ và chuyển đổi một cách chính xác sang đồ thị RDF (xem [Berners-Lee 2001] và [Corby, Dieng, và Hèbert 2000]).
Ta lấy một ví dụ, trong đồ thị của tài nguyên của cửa hàng quần áo, các nút sẽ tương ứng với loại quần áo, như áo sơ mi, áo đầm, quần dài,… Và việc hiện thực nút được xem là bước đầu tiên cho quá trình “so trùng” đồ thị. Tương tự cho việc hiện thực nút cho đồ thị truy vấn của người dùng.
Sau đó, cần phải so trùng ngữ nghĩa giữa đồ thị tài nguyên và đồ thị truy vấn. Có 3 loại so trùng (xem [Poole và Campbell 1995]): so trùng từ vựng (surface similarity), so trùng cấu trúc (structure similarity), và so trùng chủ đề (thematic similarity). So trùng từ vựng là so trùng dựa trên các đối tượng (object), còn so trùng cấu trúc dựa trên các quan hệ (relations), trong khi so trùng chủ đề phụ thuộc vào sự xuất hiện từng mẫu riêng các đối tượng và các quan hệ. Và khi sử dụng mô hình đồ thị, các so trùng ngữ nghĩa được chuyển thành việc kiểm tra tương tự về các nút, các cạnh và cả đồ thị RDF.
Để kiểm tra tương tự giữa các nút, Sowa đề xuất khoảng cách ngữ nghĩa (semantic distance) giữa các nút. Theo đó, hai nút có khoảng cách (trên ontology) giữa nút cha chung gần nhất đến chính mỗi nút càng ngắn, thì hai nút đó càng giống nhau về ngữ nghĩa. Muốn làm được điều này, trước tiên người ta phải xác định độ sâu của mỗi nút trên đồ thị theo ontology. Khi tìm kiếm, một đồ thị truy vấn được phát sinh, và máy tìm kiếm sẽ tìm những nút trong đồ thị tài nguyên giống với nút cha của đồ thị truy vấn, sau đó tính khoảng cách ngữ nghĩa, và trả kết quả là các từ khóa có khoảng cách ngữ nghĩa đến câu truy vấn là ngắn nhất.
Kiểm tra tương tự giữa các cạnh đồ thị cũng gần giống với kiểm tra nút, có điều ở đây chúng ta sẽ quan tâm đến quan hệ giữa các đối tượng trong lúc xây dựng các cạnh đồ thị. Còn kiểm tra tương tự giữa đồ thị RDF cần phải kết hợp cả các nút và cạnh. Khi đó khoảng cách ngữ nghĩa của các đồ thị RDF phải được tính dựa trên khoảng cách ngữ nghĩa của các nút và các cạnh. Thông thường khoảng cách 2 đồ thị được tính đệ quy bằng cách lấy khoảng cách lớn nhất giữa các đồ thị con của chúng, nhân với khoảng cách giữa 2 nút cha và nhân với khoảng cách lớn nhất giữa từng cặp cạnh xuất phát từ 2 nút cha.
Lưu ý là việc kiểm tra tương tự này không đơn giản, và nó là một bài toán NP-đầy đủ.
Quay lại vấn đề tìm kiếm, chúng ta vừa bàn về việc so trùng ngữ nghĩa nếu có một đồ thị ngữ nghĩa. Tuy nhiên, dữ liệu của chúng ta trong CSDL không phải là đồ thị RDF mà là các tài nguyên không có cấu trúc. Đó là một vấn đề lớn mà chúng ta sẽ không đề cập nhiều ở đây.
Có rất nhiều ngôn ngữ truy vấn để lấy dữ liệu theo ngôn ngữ chuẩn RDF như SPARQL, XUL, Versa,… Và các công cụ tìm kiếm có thể chọn lấy một cái phù hợp với mục đích của mình. Dữ liệu lấy được là một tập các thẻ lệnh dạng XML, trong đó mỗi thành phần là một bộ ba (triple), và có những thẻ lồng nhau (tức thực thể này là con của một thực thể khác). Chương trình phải xây dựng được đồ thị từ những thành phần này, sau đó xác định thông số độ sâu của mỗi nút và mỗi cạnh (dùng để tính toán khoảng cách ngữ nghĩa). Việc xác định thông tin độ sâu không dễ dàng, và cần phải có một giải thuật tốt để hiện thực.
Một khó khăn nữa đó là việc xây dựng đồ thị RDF từ những câu truy vấn. Trước tiên máy phải tách một câu truy vấn thành các từ (trong tiếng Anh thì có thể lấy khoảng trắng để đánh dấu các vị trí chốt, còn trong tiếng Việt việc tìm vị trí chốt còn khó hơn, do trong một từ có thể có khoảng trắng), sau đó tìm trong kho dữ liệu các khái niệm liên quan đến các từ này, loại bỏ những từ bị thừa, xây dựng đồ thị dựa trên đồ thị có sẵn lấy từ kho dữ liệu. Cả quá trình dài này chỉ để xây dựng một đồ thị RDF từ câu truy vấn mà thôi, sau đó mới thực hiện việc tìm kiếm.

Chú thích:

[Miller 1990]: Miller, G. A. 1990. WordNet: An On-line Lexical Database. The International Journal of Lexicography 3(4): 235-244.
[Poole và Campbell 1995]: Poole, J., and Campbell, J. A. 1995. A Novel Algorithm for Matching Conceptual and Related Graphs. In Proceedings of the Third International Conference on Conceptual Structures (ICCS’95), 293-307. Santa Cruz, CA.
[Sowa 1984]: Sowa, J. F. 1984.  Conceptual Structures: Information Processing in Mind and Machine. Addison-Wesley.
[Zhang 2001]: Zhang, L., and Yu, Y. 2001. Learning to Generate CGs from Domain  Specific Sentences. In Proceedings of the 9th International Conference on Conceptual Structures (ICCS’2001).
—————
Đây là một phần trong bài báo cáo Đồ án môn học 1 làm chung với Nguyễn Viết Nghi

No comments:

Post a Comment

Biểu mẫu liên hệ

Name

Email *

Message *