Saturday, November 14, 2009

Phân tích ngữ nghĩa trang web

Trên internet, những tài nguyên, tài liệu thường đề cập về một chủ đề hoặc một khái niệm nào đó. Các khái niệm này đi kèm với định nghĩa mà con người có thể hiểu được. Dĩ nhiên, có những khái niệm, chủ đề yêu cầu người đọc phải có trình độ nhất định mới hiểu được. Vấn đề cơ sở nhất của tìm kiếm ngữ nghĩa là nằm ở đây: Máy có thể đọc và “hiểu” ý nghĩa của những khái niệm và chủ đề đó, để đưa ra kết quả theo ngữ nghĩa.

Ý tưởng của phân tích ngữ nghĩa đó là nếu các khái niệm, chủ đề trong cơ sở dữ liệu có thể “so trùng” với các khái niệm, chủ đề trong câu truy vấn, thì kết quả tìm được là tương đối tối ưu.
Theo phương án này, trước hết các tài nguyên cũng như câu truy vấn được phân tích ngữ nghĩa trước, sau đó sinh ra một tập các khái niệm. Với các tài nguyên, việc phân tích ngữ nghĩa được thực hiện ngay khi lập chỉ mục (index) rồi mới lưu vào CSDL, còn các câu truy vấn cũng phải được phân tích trong một thời gian ngắn khi người dùng gửi yêu cầu. Và việc còn lại của máy tìm kiếm là “so trùng” các khái niệm đó lại. “So trùng” ở đây được hiểu là sự so trùng về mặt từ vựng cũng như ngữ nghĩa của từ đó.
Lấy một ví dụ về việc “so trùng” này, bạn muốn tìm “sách học làm web tại thành phố Hồ Chí Minh”, máy phải hiểu có 3 điều kiện tìm kiếm là: chỉ tìm hiệu sách hoặc đầu sách, có bán tại thành phố Hồ Chí Minh, và có chủ đề là học làm web. Do đó, máy tìm kiếm sẽ tìm trong kho dữ liệu danh sách các hiệu sách tại thành phố Hồ Chí Minh, sau đó lọc lấy những hiệu sách nào có bán sách học làm web, và cuối cùng đưa ra kết quả là các hiệu sách cũng như các đầu sách học làm web tại các hiệu sách này.
Để hiện thực được trên máy tìm kiếm, yêu cầu đầu tiên phải là ngôn ngữ. Cần phải dùng một ngôn ngữ nào đó rõ ràng mà máy có thể hiểu được, và RDF được mọi người lựa chọn như là một cách tốt nhất hiện nay, giải quyết được vấn đề ngôn ngữ cho máy.
-       Thứ nhất, RDF quá đơn giản để hiện thực, chúng chỉ là các bộ ba (triple) được liên kết với nhau (Thực tế người ta thường dùng RDFS hay OWL hay một số cái khác hơn, nhưng chúng cũng từ RDF mà ra).
-       Thứ hai, cấu trúc của RDF rất dễ hiểu, cho cả người và máy. Nó gần giống phát biểu của con người, nó lại được sự hỗ trợ của hệ thống ontology mà máy có thể đọc dễ dàng. Ví dụ, “tôi học ngành máy tính” sẽ được “RDF hóa” thành {người_1, học, ngành máy tính}, và máy hiểu subject “người_1” có thuộc tính “học” là “ngành máy tính”.
-       Thứ ba, chính sức mạnh của ontology đã tăng thêm sức mạnh cho RDF. Vì, theo kỳ vọng của nhiều người, ontology là một phương thức lý luận của máy tính.
-       Thứ tư, thực tế là những câu truy vấn thường là những câu rất ngô nghê và ngắn gọn, việc “RDF hóa” là một việc dễ dàng mà không mất nhiều công sức. Ví dụ, “tôi muốn tìm món ăn” sẽ thành {ai_đó, tìm, món ăn}…
Nếu có sẵn cấu trúc RDF như vậy thì tuyệt quá rồi. Nhưng thực tế lại phũ phàng hơn nhiều, các tài nguyên trên internet hiện nay vẫn thuần túy là để cho người đọc hiểu. Sự phát triển của thế hệ Web thời kỳ đầu với những thẻ HTML chỉ dùng để canh chỉnh văn bản sao cho đẹp mắt, đã làm cản bước tiến của web có ngữ nghĩa (semantic web). HTML 1.0 không hề có cấu trúc của RDF. Do vậy, để có thể phân tích ngữ nghĩa được, các máy tìm kiếm phải thực hiện một bước chuyển từ web thuần túy sang RDF. Và đó chính là thách thức lớn nhất đối với phương pháp phân tích ngữ nghĩa.
Để máy tìm kiếm có thể hiểu được những câu truy vấn và nội dung (trước khi chuyển từ nội dung sang chuẩn RDF), trước hết người ta phải ‘dạy’ cho máy hiểu ngôn ngữ tự nhiên. Đó là một công việc khó khắn, và có một ngành chuyên nghiên cứu vấn đề này. Chúng ta sẽ không đề cập sâu, nhưng chúng ta sẽ nói một chút về vấn đề này. Các từ đồng nghĩa sẽ khác về tự vựng nhưng giống nhau về nghĩa, các từ đồng âm lại giống về từ vựng mà khác về nghĩa. Để hiểu được chính xác nội dung, máy cần phải biết những từ nào là đồng nghĩa, đồng âm, hay thậm chí là gần nghĩa. Hơn thế nữa, máy còn phải biết trong những câu truy vấn, từ nào là trọng tâm. Ví dụ nhưng người dùng gõ câu “Tôi cần thông tin về các bệnh”, máy cần phải hiểu từ khóa chính là từ “các bệnh”.
Một vấn đề rất nan giải khi ‘dạy’ cho máy hiểu là trong đa số các trường hợp, một khái niệm thường được hiểu qua nhiều định nghĩa khác nhau. Một hệ thống thông minh đòi hỏi phải rút trích những thông tin thông qua các định nghĩa đó, thậm chí có nhiều định nghĩa chỉ được hiểu theo nghĩa chuyên môn, ví dụ “ontology” trong triết học được hiểu là một ngành nghiên cứu, còn trong lĩnh vực web ngữ nghĩa lại giống như là một biểu diễn ngữ nghĩa của các khái niệm hơn. Đó là chưa kể đến việc trong các định nghĩa có trên internet, thỉnh thoảng bắt gặp một định nghĩa sai.
—————
Bài viết này là một phần của Báo cáo đồ án môn học 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 *