Chúng tôi đề ra một cách tiếp cận mới cho công cụ tìm kiếm có ngữ nghĩa trong đó khai thác các đặc điểm ontology của thực thể có tên trong tìm kiếm theo khoảng cách và sau đó phát triển
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
-o0o -
LÊ VĂN MINH TUẤN
TÌM KIẾM THEO NGỮ NGHĨA CÓ KHOẢNG CÁCH
Chuyên ngành: Khoa học máy tính
Mã số: 604801
LUẬN VĂN THẠC SĨ
Trang 2Công trình được hoàn thành tại: Trường Đại học Bách Khoa – ĐHQG-HCM
Cán bộ hướng dẫn khoa học : PGS TS Cao Hoàng Trụ
(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 1 : TS Hồ Bảo Quốc
(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 2 : TS Nguyễn Thanh Hiên
(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 06 tháng 01 năm 2012
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ) 1 .PGS TS Dương Tuấn Anh (Chủ tịch hội đồng)
2 .TS Huỳnh Tường Nguyên (Thư ký hội đồng)
3 .PGS TS Cao Hoàng Trụ (Ủy viên hội đồng)
4 .TS Hồ Bảo Quốc (Phản biện 1)
5 .TS Nguyễn Thanh Hiên (Phản biện 2)
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA KH & KT MÁY TÍNH
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: LÊ VĂN MINH TUẤN MSHV: 09070965
Ngày, tháng, năm sinh: 08/08/1986 Nơi sinh: Bình Dương
Chuyên ngành: Khoa học máy tính Mã số : 604801
I TÊN ĐỀ TÀI: Tìm kiếm theo ngữ nghĩa có khoảng cách
NHIỆM VỤ VÀ NỘI DUNG:
Nghiên cứu đề xuất giải thuật tính toán động khoảng cách giữa các từ khóa và thực thể dùng trong truy hồi tài liệu
Nghiên cứu đề xuất phương pháp lập chỉ mục theo khoảng cách động giữa các từ khóa và thực thể
Mở rộng phần mềm mã nguồn mở Lucene cho việc tìm kiếm theo ngữ nghĩa có khoảng cách
Tiến hành thực nghiệm để đánh giá ý nghĩa của khoảng cách giữa các từ khóa và thực thể trong truy vấn và tài liệu đối với việc xếp hạng các tài liệu được trả về
II NGÀY GIAO NHIỆM VỤ : 04/07/2011
III NGÀY HOÀN THÀNH NHIỆM VỤ: 06/01/2012
IV CÁN BỘ HƯỚNG DẪN: PGS TS CAO HOÀNG TRỤ
Trang 4Lời cảm ơn
Tôi xin chân thành cảm ơn thầy PGS.TS Cao Hoàng Trụ Thầy đã tận tình hướng dẫn, định hướng tôi từ cách đặt vấn đề, phương pháp nghiên cứu khoa học, đến những công việc cụ thể trong luận án này
Xin chân thành cảm ơn các bạn trong khoa Công Nghệ Thông Tin, những người
đã giúp đỡ và tạo điều kiện cho tôi rất nhiều trong quá trình thực hiện luận án
Con xin cảm ơn cha mẹ, cảm ơn anh chị và em gái, luôn động viên, khuyến khích
và giúp đỡ con trong quá trình học tập cũng như trong cuộc sống
Trang 5Tóm tắt
Có nhiều công trình nghiên cứu tập trung khai thác khoảng cách giữa các từ khóa nhằm cải thiện độ chính xác truy hồi của những tài liệu trả về đầu tiên Mặc dù các công trình này sử dụng các cách tiếp cận khác nhau nhưng tất cả đều chứng minh rằng hiệu quả truy hồi có thể được cải thiện khi tích hợp các độ đo khoảng cách vào trong một mô hình truy hồi hiện có Trong luận văn này, chúng tôi trình bày một hệ thống mã nguồn
mở phát triển cho truy hồi thông tin dựa trên ontology để trả lời các câu truy vấn có chứa thực thể có tên và các đặc điểm ontology của chúng là tên khác, lớp và định danh Chúng tôi đề ra một cách tiếp cận mới cho công cụ tìm kiếm có ngữ nghĩa trong đó khai thác các đặc điểm ontology của thực thể có tên trong tìm kiếm theo khoảng cách và sau đó phát triển giải thuật để tính toán các khoảng cách động giữa thực thể có tên và từ khóa ở trong truy vấn và trong tài liệu Một cách cụ thể, nó cho phép xử lý các truy vấn cụm từ và truy vấn theo khoảng cách trong đó các độ dài và vị trí dựa trên token của các thực thể có tên được truy vấn trong tài liệu có thể khác nhau Kết quả của luận văn là chúng tôi cung cấp một nền tảng thư viện mở cho phép hiện thực các hệ thống tìm kiếm theo ngữ nghĩa
Trang 6Abstract
There are many research works that have been looking into the term proximity to improve the retrieval precision of top returned documents Although these researches used different approaches, they showed that retrieval effectiveness could be improved by integrating proximity scores into an existing retrieval model In this thesis, we presents our developed general open source for ontology-based information retrieval to answer queries that involve named entities with their ontological features, namely, aliases, classes, and identifiers We propose a novel approach for semantic search engines that exploit the ontology features of named entities in proximity search and develop an algorithm for computing dynamic distances between named entities and keywords in queries and documents In particular, it deals with phrase and proximity queries for which the token-based lengths and positions of the queried named entities in a document may vary The result provides a platform and library for implementing semantic search engines
Trang 7Lời cam đoan
Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi rõ trong luận văn, các công việc trình bày trong luận văn này là do chính tôi thực hiện
và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác
Ngày 6 tháng 1 năm 2012
Lê Văn Minh Tuấn
Trang 8Mục lục
Lời cảm ơn 1
Tóm tắt 2
Abstract 3
Lời cam đoan 4
Mục lục 5
Danh mục hình 7
Danh mục bảng 8
Chương 1: Tổng quan 9
1.1 Phát biểu vấn đề 9
1.2 Các công trình liên quan 12
Chương 2: Cơ sở lý thuyết 15
2.1 Mô hình không gian vectơ dựa trên từ khóa 15
2.2 Mô hình không gian vectơ dựa trên thực thể có tên 17
2.3 Mô hình kết hợp thực thể có tên và từ khóa trên một không gian vectơ chung 19
2.4 Tìm kiếm theo khoảng cách dựa trên từ khóa 20
2.5 Đánh chỉ mục và tìm kiếm theo khoảng cách trong Lucene 24
2.6 Đánh chỉ mục và tìm kiếm theo thực thể có tên 29
Chương 3: Tìm kiếm theo ngữ nghĩa có khoảng cách 34
3.1 Tìm kiếm theo khoảng cách với thực thể có tên và từ khóa 34
3.2 Các giải thuật tính khoảng cách động giữa thực thể có tên và từ khóa 41
3.3 Xếp hạng tài liệu có khoảng cách 47
Chương 4: Hiện thực và các kết quả thực nghiệm 49
4.1 Đánh chỉ mục theo khoảng cách có thực thể có tên 49
4.2 Cú pháp câu truy vấn 50
4.3 Ứng dụng minh họa 52
4.4 Thực nghiệm và đánh giá 53
Trang 9Chương 5: Tổng kết 62
5.1 Đóng góp của luận án 62
5.2 Hướng phát triển 62
Các công trình của tác giả liên quan đến luận án 63
Tài liệu tham khảo 64
Phụ lục: Bài báo 68
Trang 10Danh mục hình
Hình 2-1: Dạng đường cong của hàm (Q,D) 23
Hình 2-2: Cấu trúc file chỉ mục của Lucene 26
Hình 2-3: Tìm kiếm đa từ khóa 27
Hình 2-4: Ví dụ một tài liệu HTML 29
Hình 2-5: Các thực thể có tên được nhận diện 30
Hình 2-6: Cấu trúc file chỉ mục của S-Lucene 32
Hình 3-1: Giải thuật để so trùng d với q khi slop = 0 và cập nhật tĩnh vị trí 43
Hình 3-2: Giải thuật để so trùng d với q trong khi slop > 0 và cập nhật tĩnh vị trí 44
Hình 3-3: Giải thuật để so trùng d với q khi slop = 0 và cập nhật động vị trí 45
Hình 3-4: Giải thuật để so trùng d với q khi slop > 0 và cập nhật động vị trí 46
Hình 3-5: Hàm updatePosition 47
Hình 4-1: Cấu trúc file chỉ mục mới của S-Lucene 50
Hình 4-2: Cú pháp câu truy vấn cơ bản 51
Hình 4-3: Giao diện tìm kiếm 52
Hình 4-4: Giao diện kết quả trả về 53
Hình 4-5: Độ đầy đủ và độ chính xác đối với một truy vấn 55
Hình 4-6: Đường cong P-R trung bình của một truy vấn 57
Hình 4-7: Đường P-R trung bình của các mô hình 60
Hình 4-8: Đường F-R trung bình của các mô hình 60
Trang 11Danh mục bảng
Bảng 2-1: Trường ne+kw 31
Bảng 3-1: Ví dụ về vị trí dựa trên token 35
Bảng 3-2: Cập nhật tĩnh vị trí 37
Bảng 3-3: Tài liệu ví dụ cho cập nhật động vị trí 39
Bảng 3-4: Cập nhật động vị trí ứng với câu truy vấn q 40
Bảng 4-1: Các trường dữ liệu được đánh chỉ mục 49
Bảng 4-2: Độ chính xác trung bình ở 11 điểm truy hồi chuẩn 59
Bảng 4-3: Độ F trung bình ở 11 điểm truy hồi chuẩn 59
Bảng 4-4: Độ MAP 60
Bảng 4-5: Kiểm tra ý nghĩa thống kê 61
Bảng 4-6: Thời gian chạy 61
Trang 12Tìm kiếm theo khoảng cách là cách tìm kiếm tài liệu có chứa hai hay nhiều term xuất hiện trong một khoảng cách được cho trước trong đó khoảng cách được định nghĩa
là số lượng từ (word) hay kí tự nằm giữa các term và trong một vài trường hợp có thể yêu cầu thêm thứ tự của các term được thỏa mãn (Wikipedia1) Ví dụ, trailer NEAR3 boys có nghĩa là người dùng yêu cầu không có hơn ba từ nằm giữa trailer và boys và chúng có thể
có bất kỳ thứ tự nào
Để làm tăng độ hiệu quả truy hồi tài liệu, ngoài những nghiên cứu tập trung vào
độ đo khoảng cách giữa các term còn có những nghiên cứu khác trong lĩnh vực tìm kiếm ngữ nghĩa cụ thể là các nghiên cứu xem xét khai thác các đặc tính ontology của các thực thể có tên ([4][5][6]) Thực thể có tên (Named Entity – NE) là những thực thể được đề cập đến bằng tên ví dụ như con người, tổ chức, nơi chốn và có thể được mô tả trong
1 http://en.wikipedia.org/wiki/Proximity_search_(text)
Trang 13ontology ([20]) Ontology định nghĩa các lớp thực thể, cây phân cấp của các lớp thực thể, các thuộc tính của các lớp thực thể, và các quan hệ giữa các lớp thực thể Ngoài Ontology, việc xử lý các thực thể có tên này còn cần thêm các tri thức cụ thể về thế giới đang xét Các tri thức này được chứa trong cơ sở tri thức Cơ sở tri thức sẽ chứa đựng thông tin về các thực thể có tên cụ thể thuộc về các lớp thực thể đã được định nghĩa trong Ontology Tuy nhiên, theo hiểu biết của chúng tôi, chưa có một công trình nào ở tìm kiếm theo ngữ nghĩa xem xét tới các câu truy vấn khoảng cách có chứa thực thể có tên và từ khóa
Thực tế khoảng cách giữa thực thể có tên và từ khóa đã được xem xét tới trong ([18]) Nó được thực hiện trong lĩnh vực tìm kiếm chuyên gia (expert search), tức là việc tìm kiếm những người có kĩ năng và kinh nghiệm trong một chủ đề cho trước Tuy nhiên,
nó không phải dành cho truy hồi văn bản
Các mô hình tính độ đo khoảng cách được đề cập ở trên tính khoảng cách giữa các term dựa trên token Khi được đánh chỉ mục, một tài liệu được phân tích thành các token (hay còn gọi là term) Mỗi token sẽ được gán cho một ví trí và khoảng cách giữa chúng sẽ được tính dựa trên vị trí này Xét tài liệu sau:
D: “Cultural exhibitions on Ho Chi Minh City development and integration opened in Lam Son park”
Khi đánh chỉ mục, tài liệu D được phân tích thành 15 token “cultural”,
“exhibitions”, “on”, “ho”, “chi”, “minh”, “city”, “development”, “and”, “integration”,
“opened”, “in”, “lam”, “son”, “park” có vị trí lần lượt từ 0 đến 14 Khoảng cách giữa các token có thể được tính dễ dàng dựa trên các vị trí này Ví dụ, khoảng cách giữa “on” và
“development” là 4 vì có 4 token “ho”, “chi”, “minh”, “city” nằm giữa chúng
Tuy nhiên, khi tính đến NE, khoảng cách term được tính dựa trên token không còn áp dụng được nữa Mỗi NE xuất hiện trong tài liệu thường bao phủ nhiều hơn một
token Ví dụ, trong tài liệu D ở trên, có một NE gọi là “Ho Chi Minh City” và nó bao phủ
4 token Chúng tôi gọi số token bao phủ bởi một NE là chiều dài của NE đó Một NE có thể có nhiều tên khác (alias) với nhiều chiều dài khác nhau, vì vậy nó có thể có nhiều chiều dài khác nhau trong tài liệu Ngoài ra, những NE thuộc về cùng một lớp thực thể cũng có chiều dài khác nhau trong tài liệu Hãy xem xét các câu truy vấn cụm từ sau để
có thể thấy chiều dài khác nhau của NE làm cho khoảng cách term dựa trên token không còn áp dụng được:
Trang 14Q1 : “Cultural exhibitions on Saigon City development”
Q2 : “Cultural exhibitions on city development”
Ở truy vấn Q1, các tài liệu trả về phải chứa các term “Cultural”, “exhibitions”,
“on”, “Saigon”, “City”, “development” đứng ngay sát cạnh nhau Ở Q1, “Saigon City” là
một NE có ID là city_123 và nó bao phủ 2 token Ở đây câu truy vấn yêu cầu phải có
term “on” xuất hiện ngay phía trước và term “development” xuất hiện ngay phía sau thực
thể city_123 trong tài liệu Ở tài liệu D, có một cụm từ “Cultural exhibitions on Ho Chi
Minh City development” Bởi vì “Ho Chi Minh City” là một tên khác của “Saigon City”,
cho nên một cách trực quan thì tài liệu D có thể so trùng được với Q1 Tuy nhiên, theo
khoảng cách term dựa trên token ở trên, tài liệu D không được trả về vì nó không thỏa điều kiện về khoảng cách Một cách cụ thể, thực thể city_123 có chiều dài là 2 trong truy vấn Q1 vì vậy khoảng cách giữa term “development” và “on” được yêu cầu là 2 Nhưng
trong tài liệu D, thực thể city_123 có chiều dài là 4, vì vậy khoảng cách giữa term
“development” và “on” là 4, chính sự khác biệt này làm D không thể so trùng được với
Q1 Chúng ta có thể thấy rằng lỗi này là do bởi vì cùng một NE nhưng nó có thể xuất hiện với nhiều tên khác nhau và nhiều chiều dài khác nhau trong truy vấn và tài liệu Mặc dù
NE trong truy vấn và tài liệu có thể so trùng được với nhau (như city_123 ở trên) nhưng
chiều dài của chúng có thể khác nhau và điều này làm cho khoảng cách dựa trên token bị sai lệch
Một ví dụ khác là truy vấn Q2 tìm kiếm tài liệu chứa tất cả các term “Cultural”,
“exhibitions”, “on”, “city”, “development” đứng sát nhau Ở đây “city” là một lớp thực
thể gọi là City Ở Q2, câu truy vấn không đề cập đến một thành phố cụ thể nào nhưng đề cập đến tất cả thực thể có tên thuộc về lớp City Bởi vì “Ho Chi Minh City” là một thực
thể thuộc lớp City cho nên một cách trực quan thì D có thể so trùng với câu truy vấn Q2
Thế nhưng ở Q2 khoảng cách giữa term “development” và “on” là 1 nhưng trong tài liệu
D khoảng cách giữa chúng lại là 4 Vì vậy, nếu theo cách tính khoảng cách dựa trên
token, tài liệu D không thể so trùng được với Q2 Ngoài Thành phố Hồ Chí Minh, còn có rất nhiều thực thể thành phố khác thuộc lớp City và mỗi thành phố trong số chúng có thể
có chiều dài khác nhau Những chiều dài khác nhau của chúng làm cho khoảng cách giữa các term nằm trước và sau chúng cũng khác nhau Vì vậy việc so trùng term không còn
Trang 15dễ dàng như trong trường hợp so trùng từ khóa thuần Nó phải đối mặt với các khoảng cách động và biến đổi gây ra bởi những thực thể có tên có chiều dài khác nhau
Hai ví dụ trên cho thấy rằng khoảng cách được tính dựa trên token không thể áp dụng cho các câu truy vấn và tài liệu có chứa NE Trong luận án này, chúng tôi không đề xuất một mô hình xếp hạng mới có sử dụng khoảng cách giữa các term nhưng chúng tôi xem xét các khoảng cách động giữa các từ khóa và các thực thể có tên trong truy vấn và tài liệu như đã phân tích ở các ví dụ trên Cho đến nay, theo hiểu biết của chúng tôi, chưa
có hệ thống truy hồi nào có hỗ trợ các câu truy vấn về khoảng cách giữa các từ khóa và các thực thể có tên
Mục tiêu của luận án này là khai thác các đặc tính ontology của thực thể có tên trong tìm kiếm theo khoảng cách, xem xét và phân tích các khoảng cách động giữa các từ khóa và các thực thể có tên, và sau đó phát triển một giải thuật để tính toán các khoảng cách động này Sau khi các khoảng cách được tính ra, bất cứ mô hình xếp hạng nào được
đề cập ở trên đều có thể được áp dụng để xếp hạng các tài liệu được truy hồi Trong [12], chúng tôi đã đề xuất tìm kiếm theo khoảng cách có thực thể có tên trong đó vị trí của các term được cập nhật tĩnh lúc đánh chỉ mục nhưng chưa tiến hành thực nghiệm để đánh giá hiệu quả Trong luận án này, ngoài cách tiếp cận được đề xuất trong [12], chúng tôi còn
đề xuất thêm tìm kiếm theo khoảng cách có thực thể có tên trong đó vị trí của các term được cập nhật động và tiến hành thực nghiệm để đánh giá hiệu quả của các phương pháp này trong việc cải thiện hiệu suất truy hồi dựa trên các độ đo độ chính xác, độ đầy đủ và
độ hài hòa F Dựa trên các nghiên cứu đó, chúng tôi biến đổi thư viện S-Lucene
([4][15][16]) để hiện thực các phương pháp tìm kiếm theo khoảng cách có thực thể có tên của chúng tôi Chi tiết của các phương pháp này sẽ được trình bày chi tiết trong Chương
3 và phần thực nghiệm đánh giá sẽ được chúng tôi trình bày trong Chương 4
1.2 Các công trình liên quan
Trong các mô hình truy hồi hiện tại, các tài liệu được xếp hạng chủ yếu dựa trên nhiều loại đại lượng thống kê như tần số xuất hiện của term trong tài liệu (within-
document term frequency – tf), tần số tài liệu nghịch đảo (inverse document frequency –
idf) và chiều dài của tài liệu Bên cạnh đó, một cách trực quan khoảng cách giữa các term
trong tài liệu cũng có thể được khai thác để làm tăng hiệu quả xếp hạng các tài liệu Tài
Trang 16liệu nào chứa các term được truy vấn càng gần nhau, tài liệu đó càng có khả năng được xếp hạng cao hơn Nhiều mô hình xếp hạng đã được đề ra kết hợp nội dung của tài liệu và khoảng cách để xếp hạng tài liệu Các mô hình này khác nhau ở cách chúng đo lường khoảng cách và cách chúng kết hợp độ đo khoảng cách vào trong mô hình truy hồi hiện
có
Nghiên cứu của Keen ([10]) là một trong những cố gắng đầu tiên nghiên cứu về hiệu quả của khoảng cách trong các hệ thống truy hồi, trong đó, một toán tử NEAR được giới thiệu để lượng hóa khoảng cách giữa các term truy vấn Công trình này được phát triển dựa trên mô hình truy hồi Boolean được xem là không hiệu quả bằng các mô hình truy hồi khác như mô hình truy hồi không gian vectơ (Vector Space Model – VSM)
Một vài nghiên cứu khác khai thác khoảng cách đặc biệt dựa trên mô hình truy hồi BM25 ([2][3][19][23][25]) Nghiên cứu ở ([25]) sử dụng cách tiếp cận dựa trên khoảng văn bản (span-based) tức là cách dựa trên chiều dài của một đoạn văn bản (text) chứa tất cả các term trong câu truy vấn để đo lường khoảng cách Ngoài ra, các nghiên cứu trong ([2][3][19][25]) sử dụng cách tiếp cận kết hợp khoảng cách (distance aggregation approach) để đo lường khoảng cách bằng cách kết hợp các khoảng cách của từng cặp term (pair-wise) trong truy vấn Gần đây, Ruihua Song và các đồng nghiệp đã
mở rộng cách tiếp cận dựa trên khoảng văn bản trong đó khái niệm khoảng văn bản (span)
bây giờ không còn cần thiết chứa tất cả các term trong truy vấn và họ gọi nó là khoảng
văn bản mở rộng (expanded span) ([23]) Để kết hợp độ đo khoảng cách vào trong các
mô hình xếp hạng tài liệu hiện có, cách thông thường là kết hợp tuyến tính của độ đo
khoảng cách và độ đo nội dung (ví dụ: tf, idf) ([2][3][19][25]) Một cách tiếp cận khác đề
ra bởi Ruihua Song và các đồng nghiệp là độ đo khoảng cách được gắn thẳng vào trong hàm xếp hạng một cách tự nhiên bằng cách chỉnh sửa hàm xếp hạng đã có ([23])
Một vài nghiên cứu trong lĩnh vực tìm kiếm ngữ nghĩa xem xét khai thác các đặc tính ontology của các thực thể có tên ([4][5][6]) trong truy hồi văn bản Trong [5], các tác giả hiệu chỉnh mô hình không gian vectơ truyền thống với các vectơ trên không gian các định danh của thực thể có tên của cơ sở tri thức được khảo sát Đối với mỗi tài liệu hay mỗi câu truy vấn, các tác giả áp dụng kết hợp tuyến tính của vectơ dựa trên các định danh
NE và vectơ dựa trên từ khóa với hệ số là 0.5 Trong [6], mô hình LRD (Latent Relation Discovery) được đề xuất sử dụng cả từ khóa và thực thể có tên như là các term trong một
Trang 17không gian vectơ đơn Nội dung chủ yếu của mô hình là nó làm giàu nội dung mô tả của tài liệu bởi các term không có tồn tại nhưng có liên quan đến các term có tồn tại trong tài liệu
[6] chỉ sử dụng tên của thực thể và không khai thác hết các đặc điểm ontology của thực thể có tên Trong [4], các tác giả đã khảo sát sự kết hợp giữa tất cả các đặc tính ontology của thực thể có tên và từ khóa và sự kết hợp này có thể biểu diễn một dạng ngữ nghĩa ở mức cao của tài liệu và truy vấn Ví dụ, với câu truy vấn: tìm kiếm tài liệu về vấn
đề ô nhiễm ở thành phố, những tài liệu trả về không nhất thiết phải chứa từ khóa “city” nhưng có thể chứa một vài thực thể có tên thuộc lớp City ví dụ như thành phố Sài Gòn hay thành phố Đà Nẵng Một ví dụ khác là câu truy vấn tìm kiếm tài liệu về vấn đề ô nhiễm ở thành phố Hồ Chí Minh Ở câu truy vấn này hệ thống của họ có thể trả về tài liệu
về vấn đề ô nhiễm ở thành phố Sài Gòn bởi vì thành phố Sài Gòn là một tên khác của thành phố Hồ Chí Minh Ở hai ví dụ truy vấn này, các hệ thống truy hồi dựa trên từ khóa truyền thống không thể trả lời chính xác bởi vì chúng dựa trên tìm kiếm và so trùng từ khóa đơn giản
Các công trình đã đề cập ở trên chỉ mới xét đến khoảng cách giữa các từ khóa với nhau và chưa xét đến khoảng cách giữa các thực thể có tên và từ khóa Trong thực tế đã
có công trình trong lĩnh vực tìm kiếm chuyên gia (expert search) xem xét đến khoảng cách giữa thực thể và từ khóa ([18]) nhưng mục đích của việc xem xét thêm khoảng cách
là nhằm để xếp hạng chính xác hơn các thực thể được trả về Trong khi đó, trong lĩnh vực truy hồi tài liệu, chính tài liệu là các đối tượng được xếp hạng Cho nên có thể nói nghiên cứu về khoảng cách trong ([18]) không dành cho truy hồi tài liệu
Trang 18Chương 2: Cơ sở lý thuyết
2.1 Mô hình không gian vectơ dựa trên từ khóa
Trong truy hồi thông tin theo từ khóa, tài liệu dưới góc nhìn luận lý được thể hiện thông qua một tập các từ khóa được trích ra từ nội dung của tài liệu Trong một tập các từ khóa của một tài liệu, các từ khóa có mức độ mô tả tài liệu khác nhau Xem xét một tập với hàng trăm ngàn tài liệu thì việc một từ khóa xuất hiện trong hầu hết các tài liệu này rõ ràng là không thích hợp trong việc dùng nó để mô tả một tài liệu cụ thể nào; một từ khóa như vậy không giúp xác định tài liệu nào mà người dùng thật sự mong muốn Ngược lại một từ khóa chỉ xuất hiện trong năm tài liệu thì khá thích hợp bởi vì nó thu hẹp đáng kể không gian các tài liệu cần được xác định Để định lượng, các từ khóa trong tài liệu được gán một trọng số Lấy k i là một từ khóa, d j là một tài liệu, w,jlà trọng số gán cho cặp )
,
(k i d j Trọng số này định lượng mức độ quan trọng của từ khóa trong việc mô tả nội dung ngữ nghĩa của tài liệu được định nghĩa như sau trong [1]:
Định nghĩa 2.1: Lấy t là tổng số từ khóa trong hệ thống và k là từ khóa K={ i k1 , …, k ) t
là tập tất cả các từ khóa Một trọng số weight w,j > 0 được gán cho mỗi từ khóa k của i
tài liệu d Với một từ khóa không xuất hiện trong tài liệu thì j w,j= 0 Tài liệu d được j
Trang 19vấn q = ( w 1,q , …, w t q, ) và vectơ tài liệu d = ( j w 1, j , …, w t j, ), với t là tổng số từ khóa
trong bộ lưu trữ
Độ tương tự ngữ nghĩa giữa tài liệu d j và truy vấn q được tính bằng cosin của góc
tạo bởi hai vectơ:
2 2 , ,
1 1
t
i j i q i
Trong đó tf là là hàm theo tần số xuất hiện của từ khóa trong tài liệu và idf
(inverse term frequency) là hàm theo tần số nghịch đảo của tần số xuất hiện của từ khóa trong tất cả các tài liệu được tính theo định nghĩa 2.3
Định nghĩa 2.3: Lấy N là tổng số tài liệu trong hệ thống và n là số tài liệu trong đó từ i
khóa k xuất hiện Lấy i freq,jlà tần số xuất hiện thô của từ khóa k trong tài liệu i d j
(nghĩa là số lần xuất hiện của từ khóa k trong tài liệu i d j ) Giá trị tf được tính như sau:
tf i,j = ,
,max
i j
l l j
freq freq
Nếu từ khóa k không xuất hiện trong tài liệu i d j thì tf i,j = 0
Giá trị idf được tính như sau : idf i = log
i
N n
Đối với trọng số cho từ khóa trong truy vấn, Salton và Buckley đề nghị cách tính như sau:
Trang 20Ưu điểm chính của mô hình không gian vector là: (1) đơn giản, hiệu suất truy hồi
tốt; (2) việc sử dụng phương pháp tf.idf làm tăng hiệu suất truy hồi; (3) Cho phép xấp xỉ
các điều kiện truy vấn; (4) Phương pháp tính độ tương tự theo cosin cho phép xếp hạng tài liệu theo các mức độ liên quan Về mặt lý thuyết mô hình không gian vector có nhược điểm là đã xem các từ khóa là độc lập với nhau, trọng số của từ khóa này không phụ thuộc vào trọng số của các từ khóa khác
Trong mô hình không gian vectơ, với một truy vấn cho trước, quá trình truy hồi bao gồm hai bước chính là lọc tài liệu và xếp hạng tài liệu Mục đích của bước lọc tài liệu
là giới hạn tập tài liệu cần xếp hạng bằng cách chọn những tài liệu thỏa mãn biểu thức
boolean trong câu truy vấn Ví dụ, với truy vấn k1k2 , D1 và D2 lần lượt là hai tập tài liệu
chứa k1 và k2, ta có D1D2 là tập tài liệu cần tìm Tập tài liệu này được xếp hạng theo độ tương tự với truy vấn theo các công thức trên trước khi trả về cho người dùng
2.2 Mô hình không gian vectơ dựa trên thực thể có tên
Mô hình không gian vectơ dựa trên thực thể có tên (NE VSM) đã được khảo sát trong ([13]) trong đó đưa ra định nghĩa mô hình truy hồi thông tin theo thực thể có tên như định nghĩa 2.4
Định nghĩa 2.4: Cho một bộ ba ( N , C , I ) trong đó N, C và I lần lượt là các tập của
tên, lớp và danh hiệu của thực thể có tên trong bộ lưu trữ
(1) Tài liệu dlà một tập con của (N{*})(C{*})( I {*}), trong đó „*‟ đại diện cho một tên, lớp hay danh hiệu chưa biết của một NE trong tài liệu
d
(2) d được miêu tả bởi bộ bốn vectơ (d , N d , C d NC, d ) trong đó I d , N d , C
NC
d , d lần lượt là các vectơ của tài liệu I d trên N, C, N C và I
Mỗi một vectơ trong bốn vectơ được giới thiệu trên được xem như một vectơ
trong mô hình không gian vectơ truyền thống, trong đó không gian từ khóa được thay
bằng không gian tên, lớp, tên-lớp và danh hiệu của NE
Ta gọi d , K q là một trong các vectơ tài liệu và truy vấn trên Độ tương tự ngữ K
nghĩa cho cặp vectơ d , K q là cosin giữa hai vectơ: K
Trang 21Để tính trọng số cho các thành phần của vectơ tài liệu và truy vấn trên không gian
K, ta vẫn áp dụng phương pháp tf.idf trong mô hình vectơ cổ điển, trong đó từ khóa được
thay thế bởi tên, lớp, tên-lớp và danh hiệu của các thực thể có tên Tuy nhiên, với các đặc trưng về ngữ nghĩa của NE, có hai yếu tố khác biệt quan trọng trong việc tính toán tần số xuất hiện Đó là các vấn đề về bao phủ lớp (class subsumption) và tên khác:
1 Tần số của tên NE được tính khi xuất hiện cả các tên khác của nó Nghĩa là,
nếu tài liệu chứa NE với một tên khác, ta cũng xem như tên NE xuất hiện
trong tài liệu Ví dụ, nếu tài liệu có NE thành phố Hồ Chí Minh, thì mỗi lần xuất hiện của nó cũng được tính là một lần xuất hiện của thành phố Sài
Gòn, vì Hồ Chí Minh là một tên khác của Sài Gòn, cùng đề cập đến một
NE duy nhất đó là thành phố Sài Gòn ở Việt Nam
2 Tần số của lớp NE được tính khi xuất hiện lớp con của nó Nghĩa là, nếu
tài liệu chứa một NE có lớp là lớp con của một lớp cần tìm thì ta cũng xem
như lớp cần tìm xuất hiện trong tài liệu Ví dụ, nếu tài liệu có NE thành
phố Sài Gòn, thì mỗi xuất hiện của nó cũng được tính như một lần xuất
hiện của lớp Nơi chốn (Location), bởi vì Thành phố là lớp con của lớp Nơi
chốn
Độ tương tự giữa tài liệu d và câu truy vấn q sẽ được định nghĩa như sau:
sim( d , q) = w Nsim ( d , N q ) + w N Csim ( d , C q ) + C
w NCsim ( d NC , q NC )+ w Isim ( d , I q ) I
trong đó, w N + w C + w NC + w I = 1, w K = 0 nếu không tồn tại q trong truy vấn q, với K K
lần lượt là N, C, N C và I Các trọng số w K chưa được gán giá trị xác định Tùy
thuộc vào ứng dụng cụ thể, người sử dụng lựa chọn các giá trị thích hợp nhằm nhấn mạnh vào một đặc trưng cụ thể của NE Ngoài ra, cũng lưu ý rằng việc kết hợp hai vectơ d và N
Trang 22d không thể thay thế được d NCvì vectơ d NC đề cập đến thực thể có tên với cặp tên-lớp
xác định Đồng thời việc kết hợp giữa I với N và C là không cần thiết vì tên và lớp của một NE được dẫn xuất từ một NE cụ thể xác định bởi danh hiệu của nó
Tóm lại, mô hình truy hồi thông tin theo thực thể có tên đã dựa trên mô hình không gian vectơ truyền thống, thay thế từ khóa bởi các đặc trưng của NE, lần lượt là tên, lớp, tên-lớp và danh hiệu; và sử dụng bốn vectơ trên các không gian này để đặc tả một tài liệu hay truy vấn cho quá trình truy hồi thông tin
2.3 Mô hình kết hợp thực thể có tên và từ khóa trên một không gian vectơ chung
Mô hình NE VSM truy hồi thông tin như đã đề cập ở trên chỉ khai thác các đặc trưng của NE mà bỏ qua từ khóa Tuy nhiên ngữ nghĩa của văn bản hay truy vấn không thể được thể hiện trọn vẹn chỉ thông qua NE Với câu truy vấn “ô nhiễm ở thành phố Hồ Chí Minh” thì việc bỏ qua từ khóa “ô nhiễm” mà chỉ truy vấn trên thực thể có tên “thành phố Hồ Chí Minh” đã làm mất đi thông tin quan trọng của từ khóa “ô nhiễm” Hơn nữa, câu truy vấn có thể không chứa một thực thể có tên nào [4] đã đề ra mô hình truy hồi thông tin kết hợp giữa NE và từ khóa trên một không gian vectơ chung (NE+KW) nhằm tận dụng được sức mạnh của từng mô hình riêng rẽ đồng thời bổ trợ các khiếm khuyết của nhau Trong mô hình này, [4] xem từ khóa và NE có vai trò như nhau và là một thành
phần tổng quát trong một không gian vector chung Một tài liệu d được thể hiện bởi một
vectơ trong một không gian tổng quát, trong đó các thành phần vectơ là từ khóa hoặc NE
Đối với truy vấn q, cách tiếp cận cũng hoàn toàn tương tự Độ tương tự giữa tài liệu d và truy vấn q được tính toán theo mô hình không gian vectơ truyền thống Định nghĩa 2.5 là
định nghĩa chính thức của mô hình NE+KW
Định nghĩa 2.5: Gọi t là từ khóa hoặc NE, i w i d, và w i q, lần lượt là trọng số được gán cho cặp (t , i d) và cặp (t , q ) Ta có, vectơ truy vấn i q= (w 1,q , …, w t q, ) và vectơ tài liệu d =
(w 1,d , …, w t d, ), với t là tổng số từ khóa và NE trong bộ lưu trữ
Độ tương tự ngữ nghĩa giữa tài liệu d và truy vấn q được tính bằng cosin của góc
tạo bởi hai vectơ:
Trang 232 2 , ,
1 1
t
i d i q i
Để tính trọng số cho các thành phần của vectơ tài liệu và truy vấn, ta vẫn áp dụng
phương pháp tf.idf theo mô hình vectơ cổ điển, trong đó từ khóa và NE có vai trò như
nhau Với NE, mô hình KW+NE cũng áp dụng tên khác và bao phủ lớp như trong mô hình NE VSM trong việc tính toán tần số xuất hiện
Tổng quát, mô hình KW+NE tương tự mô hình không gian vectơ theo từ khóa
truyền thống, từ cách tính độ tương tự theo cosin góc giữa hai vectơ, đến cách tính trọng
số theo tf.idf Một điểm khác ở đây là nó đã mở rộng mô hình cho NE, trong đó NE được đại diện bởi bộ ba đặc trưng <tên, lớp, danh hiệu> Với các đặc trưng này, cách tính tf.idf
có những điều chỉnh phù hợp cho NE
2.4 Tìm kiếm theo khoảng cách dựa trên từ khóa
Tìm kiếm theo khoảng cách tìm kiếm tài liệu có chứa hai hay nhiều term xuất hiện trong một khoảng cách được cho trước trong đó khoảng cách được định nghĩa là số lượng từ (word) hay kí tự nằm giữa các term Ngoài yếu tố khoảng cách, có một vài biến thể yêu cầu thỏa mãn thêm thứ tự của term, trong đó thứ tự của term xuất hiện trong tài liệu phải giống với thứ tự của chúng trong câu truy vấn (Wikipedia2)
Để khai thác khoảng cách trong truy hồi thì việc đầu tiên là cần tính toán được khoảng cách của các term truy vấn xuất hiện trong tài liệu Khi một tài liệu so trùng được với hai term trong câu truy vấn thì khoảng cách chỉ đơn giản là khoảng cách giữa hai term đó Tuy nhiên, trong trường hợp tổng quát, câu truy vấn có thể có nhiều hơn hai term và tài liệu có thể so trùng được với nhiều hơn hai term trong câu truy vấn Bên cạnh
đó, mỗi term truy vấn lại có thể xuất hiện nhiều lần trong tài liệu Vì vậy, một thách thức đặt ra là tạo được một đại lượng đo lường khoảng cách tổng quát có tính đến số lượng biến thiên của term truy vấn có chứa trong tài liệu
Để tính khoảng cách giữa các term, [25] đề ra hai loại tiếp cận Loại thứ nhất là các cách tiếp cận dựa trên khoảng văn bản (span-based) tức là cách dựa trên chiều dài của
2 http://en.wikipedia.org/wiki/Proximity_search_(text)
Trang 24một đoạn văn bản chứa tất cả các term trong câu truy vấn để đo lường khoảng cách Loại thứ hai là các cách tiếp cận dựa trên tổng hợp khoảng cách (distance aggregation approaches) tức là cách tính khoảng cách bằng cách tổng hợp từng cặp khoảng cách giữa từng hai term một (pair-wise distance) Có thể thấy rằng, loại đầu tiên có tính “toàn cục” hơn vì nó phải tính đến tất cả các term trong câu truy vấn Ngược lại, loại thứ hai có tính
“cục bộ” hơn vì nó có tính đến khoảng cách của từng cặp term một và còn phụ thuộc vào cách tổng hợp khoảng cách lại như thế nào
Phần sau sẽ trình bày một số độ đo khoảng cách theo hai loại tiếp cận trên Tài
liệu d sau đây sẽ được dùng để giải thích các định nghĩa trong phần 2.4 Các định nghĩa
này được tham khảo trong [25]
d = t1 , t2, t1, t3, t5, t4, t2, t3, t4
Một vài độ đo khoảng cách dựa trên khoảng văn bản
Định nghĩa 2.6 (Span): Span ([8]) được định nghĩa là chiều dài của một phân đoạn ngắn
nhất (segment) của tài liệu bao phủ tất cả các term truy vấn xuất hiện trong tài liệu, bao gồm cả các xuất hiện lặp lại
Ví dụ, trong tài liệu d, ta có giá trị span bằng 7 đối với câu truy vấn {t1; t2}
Định nghĩa 2.7 (Min coverage): Min coverage được định nghĩa là chiều dài của phân
đoạn ngắn nhất của tài liệu bao phủ mỗi term truy vấn ít nhất một lần trong tài liệu
Ví dụ, nếu câu truy vấn là {t1, t2}, giá trị Min coverage của nó bằng 2, nhưng nếu câu truy
vấn là {t1, t2, t4}, giá trị Min coverage của nó sẽ là 5 (chiều dài của phân đoạn từ vị trí thứ
2 cho đến vị trí thứ 6)
Một vài độ đo dựa trên tổng hợp khoảng cách
Đầu tiên các cặp term truy vấn có xuất hiện trong tài liệu sẽ được xác định và khoảng cách gần nhất của chúng trong tài liệu cũng được xác định Ví dụ, khi một truy
vấn có ba term khác nhau {t1, t2, t3} và có một tài liệu có chứa cả ba term đó, ta sẽ có
được ba cặp term truy vấn khác nhau đó là: {t1, t2}, {t1, t3}, and {t2, t3} Trong tài liệu ví
dụ d, khoảng cách gần nhất của ba cặp term này đều là 1 bởi vì chúng đều xuất hiện đứng cạnh nhau ở đâu đó trong tài liệu Đặt Dis(t1; t2; D) là khoảng cách gần nhất giữa các vị
Trang 25trí xuất hiện của term t1 và term t2 trong tài liệu D, ta có định nghĩa các độ đo dựa trên
tổng hợp khoảng cách như sau:
Định nghĩa 2.8 (Minimum pair distance (MinDist)): Minimum pair distance được định
nghĩa là giá trị khoảng cách nhỏ nhất của tất cả các cặp term duy nhất xuất hiện trong tài liệu Một cách hình thức,
MinDist = minq1,q2QD,q1q2{Dis(q1,q2;D)}
Ví dụ, giá trị MinDist của tài liệu ví dụ d đối với câu truy vấn Q = {t1, t2, t3} là 1
Định nghĩa 2.9 (Average pair distance (AveDist)): Average pair distance được định nghĩa
là giá trị khoảng cách trung bình của tất cả các cặp term duy nhất xuất hiện trong tài liệu Một cách hình thức,
AveDist = 1 , 2 , 1 2 ( 1, 2; )
)1(
2
q q D Q q
n n
trong đó n là số lượng term duy nhất có xuất hiện trong tài liệu và trong công thức tính tổng, Dis(q1, q2, D) và Dis(q2, q1; D) chỉ được tính một lần
Ví dụ, giá trị AveDist của tài liệu ví dụ d đối với câu truy vấn Q = {t1, t4, t5} là (1 + 2 + 3)/3 = 2
Định nghĩa 2.10 (Maximum pair distance (MaxDist)): Maximum pair distance được định
nghĩa là giá trị khoảng cách lớn nhất của tất cả cặp term duy nhất xuất hiện trong tài liệu Một cách hình thức,
MaxDist = maxq1,q2QD,q1q2{Dis(q1,q2;D)}
Mô hình truy hồi dựa trên khoảng cách
Cho một hàm đo khoảng cách (Q,D) được định nghĩa trên tài liệu D và truy vấn Q, hàm này có thể là một trong các độ đo đã trình bày ở trên, giá trị truy hồi (retrieval score) dùng để xếp hạng (kí hiệu bởi (Q,D)) được tính dựa trên (Q,D), nghĩa là,
Trang 26càng gần nhau trong tài liệu càng làm tăng khả năng liên quan của tài liệu đó với truy vấn Giả sử heuristic này được cụ thể hình thức như sau:
Ràng buộc (proximity heuristic): Lấy Q là một truy vấn và D là một tài liệu trong tập tài
liệu Lấy D‟ là một tài liệu tạo ra bởi việc đảo các vị trí của hai term trong D Nếu
mẽ về ngữ nghĩa giữa chúng, vì vậy (Q,D) cần đánh giá cao các trường hợp các term đứng thực sự gần nhau; tuy nhiên, khi khoảng cách lớn, các term được cho là có một sự liên hệ rất yếu về ngữ nghĩa, vì vậy hàm (Q,D) không nên quá nhạy với sự khác biệt
về khoảng cách khi khoảng cách là lớn Giả sử heuristic này được hình thức hóa như sau:
Ràng buộc (Convex curve): Lấy Q là một truy vấn và D1, D2, và D3 là ba tài liệu chỉ khác nhau về thứ tự các term và các phần còn lại đều giống nhau Có nghĩa là, chúng có cùng các term, nhưng thứ tự của các term thì khác nhau trong mỗi tài liệu Nếu (Q,D1) =
= log(exp((Q,D)))
Hình 2-1: Dạng đường cong của hàm (Q,D)
Trang 27Tất nhiên sẽ có rất nhiều hàm thỏa mãn các ràng buộc ở trên Vì vậy các nghiên cứu về khoảng cách chủ yếu khác nhau ở độ đo khoảng cách (Q,D) và hàm chuyển đổi sang giá trị truy hồi (Q,D) Sau khi đã xác định (Q,D) ta có thể dùng kết hợp tuyến tính nó với một mô hình truy hồi hiện có Ví dụ như ta có thể kết hợp với mô hình Okapi BM25 model như sau:
R(Q,D) = BM25(Q,D) + (Q,D)
2.5 Đánh chỉ mục và tìm kiếm theo khoảng cách trong Lucene
Lucene3 là một thư viện mã nguồn mở để lưu trữ, đánh chỉ mục, và tìm kiếm tài liệu ([7]) Thực sự, Lucene sử dụng mô hình không gian vectơ (Vector Space Model – VSM) với một sự chỉnh sửa nhỏ trong công thức cosine tính độ tương tự giữa truy vấn và tài liệu Trong Lucene, một term là một chuỗi các kí tự và tần số xuất hiện term được tính dựa trên việc so trùng chính xác chuỗi Phần sau sẽ lần lượt trình bày đánh chỉ mục và
tìm kiếm theo khoảng cách trong Lucene
Đánh chỉ mục trong Lucene
Đánh chỉ mục tài liệu trong Lucene bao gồm ba bước chính Bước đầu tiên, tài liệu sẽ được rút trích text Ở bước thứ hai, văn bản sẽ được phân tích thành các term là những token được phân cách bởi khoảng trắng hay bởi dấu phân cách được định nghĩa bởi người dùng Sau đó, những từ không có ý nghĩa (stop words) được loại bỏ và các từ
sẽ được chuẩn hóa thông qua tác vụ viết thường (lowercase) và đưa về từ gốc (stemming) Bước thứ ba, văn bản sẽ được đánh chỉ mục và ghi xuống tập tin lưu trữ
Ở Lucene, một tài liệu được cấu trúc thành một tập các trường (field) Mỗi trường thể hiện một phần nội dung của tài liệu hay siêu dữ liệu của nó ví dụ như tên tác giả, tựa
đề, chủ đề, và ngày chỉnh sửa Các trường được phân biệt dựa trên tên của chúng Thông thường các trường nội dung của một tài liệu chứa những token của tài liệu đó và là các trường dùng để đánh chỉ mục và tìm kiếm Các trường siêu dữ liệu thường được lưu trữ cùng với các tài liệu nhằm mục đích cung cấp thêm các thông tin về các tài liệu được trả
về Lucene cung cấp bốn kiểu trường khác nhau :
3 http://lucene.apache.org
Trang 28 Keyword: không được phân tích, nhưng được đánh chỉ mục và lưu
trong kho chỉ mục theo đúng nguyên văn Kiểu này thích hợp cho những trường mà giá trị nguyên thủy của nó cần được giữ nguyên hoàn toàn như URL, đường dẫn của file, tên người
UnIndexed: không được phân tích lẫn đánh chỉ mục, nhưng giá trị của
nó vẫn được lưu trong kho chỉ mục Kiểu này thích hợp cho những trường cần được biểu diễn với kết quả tìm kiếm (chẳng hạn như URL), nhưng giá trị của nó không được tìm kiếm một cách trực tiếp
Unstored: Ngược với UnIndexed, trường này được phân tích và đánh
chỉ mục nhưng không được lưu trong kho chỉ mục Kiểu này thích hợp cho việc đánh chỉ mục một khối lượng lớn văn bản mà không cần được truy xuất theo nguyên văn ban đầu, như phần thân của một trang Web
Text: được phân tích và đánh chỉ mục.Việc lưu trường này hay không
phụ thuộc vào nguồn của dữ liệu đầu vào Đây là trường thường được
sử dụng nhất
Để đánh chỉ mục một tập các tài liệu, Lucene sử dụng cấu trúc chỉ mục đảo Cấu trúc chỉ mục đảo bao gồm một danh sách các từ khóa (từ vựng) được sắp xếp theo thứ tự bảng chữ cái (alphabetical order) Mỗi từ khóa được liên kết với một danh sách các tài liệu (posting list) có chứa từ khóa đó Lucene lưu trữ vị trí xuất hiện của mỗi từ khóa trong tài liệu vào một bảng vị trí Việc lưu trữ các vị trí của từ khóa là nhằm để thực thi các câu truy vấn về khoảng cách
Hình 2-2 mô tả cấu trúc file chỉ mục của Lucene Trường có tên là “contents” có
một danh sách các từ khóa (hay term) được sắp xếp theo dạng thứ tự bảng chữ cái tương ứng với trường đó, ví dụ [“barack”, “obama”, ] Ở đây, trong tập tài liệu có hai tài liệu
có chứa term “obama” và IDs của hai tài liệu này lần lượt là 3 và 4 và số lần xuất hiện (raw frequencies) của term “obama” lần lượt là 10 và 2 Mỗi sự xuất hiện của một term
trong tài liệu được liên kết với vị trí xuất hiện của chúng trong một bảng vị trí như được thể hiện trong Hình 2-2
Với cách tổ chức như vậy, việc tìm kiếm các tài liệu có chứa một câu truy vấn cụm từ cụ thể sẽ được thực hiện bằng cách tìm kiếm các tài liệu có chứa tất cả term trong câu truy vấn, sau đó tham khảo đến bảng vị trí để xem xem các vị trí xuất hiện của chúng
Trang 29có liên tục với nhau hay không Số lần xuất hiện của một term trong mỗi tài liệu và số tài
liệu có chứa term đó được sử dụng để tính các độ đo dựa trên tf và idf trong vectơ thể
hiện tài liệu trong mô hình VSM để xếp hạng các tài liệu được truy hồi
Hình 2-2: Cấu trúc file chỉ mục của Lucene Tìm kiếm theo khoảng cách trong Lucene
Với cấu trúc chỉ mục như trên, Lucene hỗ trợ hiệu quả nhiều dạng tìm kiếm khác nhau như tìm kiếm đơn và đa từ khóa và tìm kiếm theo khoảng cách Lucene sử dụng mô hình Boolean và mô hình VSM trong quá trình tìm kiếm Mô hình Boolean được sử dụng
để lọc lấy ra các tài liệu là câu trả lời của một truy vấn Sau khi lọc ra các tài liệu, để xếp hạng các tài liệu này, Lucene sử dụng mô hình VSM để đo độ tương tự giữa một truy vấn
và một tài liệu Một câu truy vấn đơn từ khóa sẽ được thực thi rất nhanh bởi cấu trúc chỉ mục đảo Lucene định vị từ khóa được truy vấn trong danh sách các từ khóa được xếp theo thứ tự bảng chữ cái, sau đó lấy ra danh sách các tài liệu có chứa từ khóa đó Đối với một câu truy vấn đa từ khóa, Lucene lấy ra danh sách các tài liệu cho mỗi từ khóa được truy vấn và tiến hành trộn các danh sách này lại với nhau dựa trên các toán tử Boolean trong truy vấn Ví dụ, xem xét một câu truy vấn tìm kiếm tất cả tài liệu có chứa từ khóa
“River” và “Mountain” Lucene sẽ lấy giao danh sách tài liệu chứa từ khóa “River” và
Trang 30danh sách tài liệu chứa từ khóa “Mountain” Quá trình lấy giao sẽ diễn ra rất nhanh bởi vì các danh sách này được sắp xếp theo ID của các tài liệu (xem Hình 2-3) Lucene sử dụng
một danh sách nhảy (skipping list) để tăng tốc việc lấy giao
Hình 2-3: Tìm kiếm đa từ khóa
Lucene cũng có hỗ trợ tìm kiếm theo khoảng cách dựa trên khoảng cách term Tìm kiếm theo khoảng cách với khoảng cách bằng 0 được gọi là tìm kiếm chính xác cụm
từ Khi khoảng cách lớn hơn 0, bên cạnh sự ràng buộc về khoảng cách, tìm kiếm theo khoảng cách có thể còn yêu cầu thỏa mãn thứ tự của các term dựa trên vị trí của chúng trong truy vấn Lucene hỗ trợ tìm kiếm chính xác cụm từ và tìm kiếm với khoảng cách lớn hơn 0 nhưng không yêu cầu thỏa mãn thứ tự của các term Các câu truy vấn của hai dạng tìm kiếm này được Lucene lần lượt gọi là PhraseQuery và SloppyPhraseQuery (sử
dụng thuật ngữ slop để nói về khoảng cách) Trong Lucene, khoảng cách giữa term A và term B trong tài liệu là số bước cần thiết để di chuyển A (hay B) đến đúng vị trí của nó
như cách nó xuất hiện trong câu truy vấn
Ví dụ, cho câu truy vấn q = “A B”, có nghĩa là, B nằm ngay bên phải phía sau A
Giả sử ta có những tài liệu sau trong đó “_” thể hiện một biến ẩn có thể là bất kỳ term nào:
Trang 31Ở trên, trong tài liệu, A được giữ cố định và B được di chuyển Một cách khác, B
có thể được giữ cố định trong khi A được di chuyển như sau:
d1: “A _ _ _ B _” (tốn 3 bước di chuyển)
d2: “ B _ A _” (tốn 3 bước di chuyển)
Một cách tổng quát, cho một câu truy vấn có n terms {t1,…,t n}, trong một tài liệu,
bất kỳ term t{t1,…,t n} nào đều có thể được giữ cố định và các term còn lại được di chuyển đến đúng vị trí của chúng như cách chúng xuất hiện trong câu truy vấn Khoảng
cách di chuyển của một term t i ứng với term cố định t0 được tính theo công thức sau:
step i = (pd i - pq i ) - (pd0 - pq0) (2.1) trong đó:
pd i : vị trí của term t i trong tài liệu,
pq i : vị trí của term t i trong truy vấn,
pd0 : vị trí của term t0 trong tài liệu,
pq0 : vị trí của term t0 trong truy vấn
Ta có thể thấy rằng:
step i > 0: t i sẽ được di chuyển về phía trái,
step i < 0: t i sẽ được di chuyển về phía phải,
step i = 0: t i sẽ không được di chuyển
Với cách tính khoảng cách di chuyển như vậy, các điều kiện của Lucene để so trùng một
tài liệu d và một truy vấn khoảng cách q như sau:
slop = 0: d so trùng được với q nếu i: step i = 0
slop > 0: d so trùng được với q nếu maxstep ≤ slop,
trong đó maxstep = max 1 ≤ i ≤ n (step i)
Bởi vì có nhiều hơn một cách lựa chọn một term cố định nên giá trị maxstep có
thể khác nhau Đặt ∆i = pd i - pq i là hiệu số giữa các vị trí của term t i trong tài liệu và trong
truy vấn Lucene chọn bất kỳ term t i nào thỏa mãn ∆i = ∆0 = min(∆ i ), trong đó 1 ≤ i ≤ n để làm term cố định để tính giá trị maxstep Sau đó, giá trị step i = ∆i - ∆0 sẽ luôn luôn lớn
hơn hay bằng 0 đối với mỗi term t i , có nghĩa là nếu term t i được di chuyển, nó sẽ được di chuyển về phía trái
Trang 32Một cách tổng quát, trong Lucene, cho một câu truy vấn khoảng cách q có n terms {t1,…,t n } và slop = s, một tài liệu d so trùng được với q phải chứa ít nhất một tập {t1,…,t n}
và thỏa mãn điều kiện là tồn tại một term t i cố định sao cho bất kỳ term t k (k ≠ i) nào đều được di chuyển về phía trái step k bước để đến đúng vị trí của nó và max(step k ) ≤ s
2.6 Đánh chỉ mục và tìm kiếm theo thực thể có tên
Như đã trình bày ở trên, Lucene hỗ trợ hiệu quả việc đánh chỉ mục và tìm kiếm dựa trên từ khóa Tuy nhiên, đánh chỉ mục và tìm kiếm theo ngữ nghĩa, cụ thể là theo thực thể có tên, đòi hỏi phải mở rộng Lucene Phần này trình bày cách mà các thực thể có tên được đánh chỉ mục cùng với từ khóa để thực hiện tìm kiếm theo thực thể có tên Lucene được mở rộng được gọi là S-Lucene ([4][15][16])
Nhận diện thực thể có tên
<HTML>
<HEAD><TITLE>vn-kim-demo</TITLE></HEAD>
<BODY>Cultural exhibitions on Ho Chi Minh City development and integration
opened in Lam Son park</BODY>
<URL name=“http://vn-kim.hcmut.edu.vn/demo.html”></URL>
<DIR name=“/VNKIM/demo.html”></DIR>
</HTML>
Hình 2-4: Ví dụ một tài liệu HTML
Để tìm kiếm tài liệu dựa trên thực thể có tên, một tài liệu cần phải được chú giải
để nhận diện các thực thể có tên xuất hiện trong tài liệu ([17]) Ở bước này, một hệ thống chú giải được sử dụng để xác định tất cả các thực thể có tên xuất hiện trong tài liệu cùng với các bí danh (alias), lớp (class) và các lớp cha (super-class) của chúng Ở đây chúng tôi sử dụng KIM để làm hệ thống chú giải KIM (Knowledge & Information Management)4 là hệ thống quản lý thông tin và tri thức được phát triển bởi Ontotext Lab Trong hệ thống KIM, ontology chứa các định nghĩa của lớp thực thể, các thuộc tính và các mối quan hệ Thực thể có tên và các mối quan hệ của chúng được lưu trữ trong cơ sở tri thức
4 http://www.ontotext.com/kim
Trang 33KIM cho phép chú thích ngữ nghĩa của tài liệu, rút trích thông tin, hỗ trợ đánh chỉ mục và truy hồi Thực thể trong KIM được xác định bởi một URI duy nhất, được xem là danh hiệu của nó KIM IE được phát triển dựa trên nền mã nguồn mở GATE (General Architecture for Text Engineering)5, trong đó trung tâm là module nhận diện NE Nhận diện NE trong KIM cũng đạt được thành tựu nhất định, với độ chính xác và độ đầy đủ trung bình lần lượt là 90% và 86%6 Đối với truy hồi thông tin, KIM cung cấp cơ chế đánh chỉ mục và truy hồi theo danh hiệu của thực thể có tên, và được xây dựng trên nền
mã nguồn mở Lucene
<?xml version='1.0' encoding='utf-8'?>
<named-entities url=http://vn-kim.hcmut.edu.vn/demo.html
dir=vnkimAnno/VNKIM/demo.txt description=vn-kim-demo>
<named-entity startOffset=“24” endOffset=“39”>
<name>Ho Chi Minh City</name>
Hình 2-5: Các thực thể có tên được nhận diện
Trong Hình 2-4, tài liệu HTML đơn giản chứa nội dung “Cultural exhibitions on
Ho Chi Minh City development and integration opened in Lam Son park” với các thông
tin về TITLE, URL và đường dẫn của file cache Hình 2-5 trình bày kết quả của việc chú
5 http://gate.ac.uk/
6 http://www.ontotext.com/kim/performance.html
Trang 34giải tài liệu ví dụ, trong đó Ho Chi Minh City được nhận diện là một thực thể có tên thuộc lớp City, với ID tương ứng là city_123 Các kết quả còn bao gồm sự mở rộng tài liệu với
các bí danh của Ho Chi Minh City, và super-class Location từ cơ sở tri thức và ontology
Đánh chỉ mục dựa trên thực thể có tên và từ khóa
Các đặc tính ontology của thực thể có tên bao gồm tên, lớp cụ thể nhất, và định danh của nó nếu có tồn tại trong cơ sở tri thức được khảo sát Người dùng có thể tìm kiếm các tài liệu dựa trên một hay sự kết hợp của các đặc tính này Để tìm kiếm theo các đặc tính này, các NE term được giới thiệu ngoài các term từ khóa thông thường Cấu trúc
của mỗi NE term là bộ ba (name/class/identifier) Tên, lớp, hay định danh nếu không
được đặc tả sẽ được kí hiệu là “*”
Bảng 2-1: Trường ne+kw
ne+kw “Cultural”, “exhibitions”, “on”, “Ho”,
“Chi”, “Minh”, “City”, “development”,
“and”, “integration”, “opened”, “in”,
“Lam”, “Son”, “park”
“ho chi minh city/*/*”, “*/city/*”,
“ho chi minh city/city/*”,
chỉ mục của tài liệu không chỉ chứa các term từ khóa được phân tích từ tài liệu gốc mà còn chứa thêm các bộ ba NE Một trường gọi là ne+kw sẽ được tạo ra để chứa các term
từ khóa và các bộ ba NE Việc lưu trữ các term này vào trong trường ne+kw bao gồm hai bước Bước đầu tiên, tất cả các term keyword được thêm vào trường Ở bước thứ hai, tất
cả các bộ ba NE được thêm vào Ví dụ, ở tài liệu html được đề cập ở trên (Hình 2-3),
trường ne+kw đầu tiên được thêm vào các term từ khóa “Cultural”, “exhibitions”, “on”,
“Ho”, “Chi”, “Minh”, “City”, “development”, “and”, “integration”, “opened”, “in”,
Trang 35“Lam”, “Son”, “park” có vị trí lần lượt từ 0 đến 14 Sau đó, nó được thêm vào các bộ ba
NE của Ho Chi Minh City bao gồm “ho chi minh city/*/*”, “*/city/*”, “ho chi minh
city/city/*”, “*/*/city_123”, “saigon/*/*”, “saigon/city/*”, “*/location/*”, “ho chi minh city/location/*”, “saigon/location/*” (xem Bảng 2-1)
Hình 2-6 mô tả cấu trúc file chỉ mục của S-Lucene cho tài liệu html ví dụ ở trên
Trong hình, chỉ có hai trường là kw và ne+kw được thể hiện và tất cả các trường siêu dữ liệu đã bị ẩn đi kw là một trường thuần từ khóa chứa nội dung của tài liệu kw chỉ chứa các term từ khóa ne+kw là một trường dựa trên cả từ khóa và các thực thể có tên Nó
chứa đồng thời cả term từ khóa và term thực thể có tên được sắp xếp theo thứ tự bảng
chữ cái kw được sử dụng cho tìm kiếm thuần từ khóa khi tất cả thực thể có tên được đối
xử như từ khóa thuần
Hình 2-6: Cấu trúc file chỉ mục của S-Lucene