MỤC LỤC
LỜI MỞ ĐẦU................................................................................................4
PHẦN I: MỞ ĐẦU........................................................................................6
1. Tính cấp thiết của luận văn.....................................................................6
2. Mục đích, nhiệm vụ của luận văn...........................................................7
2.1 Mục đích của luận văn............................................................................7
2.2 Nhiệm vụ của luận văn............................................................................7
3. Phạm vi nghiên cứu..................................................................................7
4. Nội dung luận văn....................................................................................8
PHẦN II: NỘI DUNG..................................................................................9
CHƯƠNG I: GIỚI THIỆU BỘ CÔNG CỤ TÌM KIẾM THÔNG TIN.......9
1.1 Khái niệm bộ công cụ tìm kiếm thông tin............................................9
1.2 Bộ công cụ tìm kiếm thông tin trên mạng..........................................13
1.3 Mô hình bộ công cụ tìm kiếm thông tin truyền thống......................18
1.4 cấu trúc dữ liệu trong tổ chức và tìm kiếm thông tin.......................20
1.4.1 Bảng băm.............................................................................................20
1.4.1.1 Khái niệm hàm băm........................................................................20
1.4.1.2 Khái niệm bảng băm......................................................................22
1.4.1.3 Giải quyết xung đột........................................................................23
1.4.2 Cây cân bằng nhiều đường B - Tree..................................................27
1.4.2.1 Định nghĩa cây B - Trees................................................................27
1.4.2.2 Cây B* - Tree.................................................................................29
1.4.2.3 Cây B
+
- Tree..................................................................................29
1
1.4.2.4 Cây B
Link
– Trees.............................................................................31
1.4.2.5 Lựa chọn phương pháp dữ liệu tần số.............................................32
CHƯƠNG II: CÁC CÔNG CỤ TÌM KIẾM CƠ BẢN.............33
2.1 Thu hồi trang Web................................................................................33
2.1.1 Web Crawler.......................................................................................33
2.1.2 Chọn lựa các trang.............................................................................34
2.2 Lưu trữ...............................................................................................38
2.2.1 Sự phân tán trang theo các nút............................................................39
2.2.2 Các phương pháp tổ chức trang vật lý.................................................40
2.2.3 Các chiến thuật cập nhật......................................................................40
2.3 Lập chỉ mục........................................................................................43
2.1.1 Cấu trúc của bảng chỉ mục.................................................................45
2.1.2 Một số thách thức................................................................................46
2.3.3 Chia bảng chỉ mục................................................................................46
2.4 Sắp xếp và phân tích liên kết............................................................48
2.4.1 Phương pháp PageRank.......................................................................49
2.4.2 Phương pháp HIST..............................................................................54
CHƯƠNG III: THIẾT KẾ CÁC CÔNG CỤ TÌM KIẾM THÔNG TIN
TRÊN MẠNG...............................................................................................61
3.1 Mô đun lập chỉ mục..............................................................................62
3.1.1 Khái niệm chỉ mục................................................................................62
3.1.1 Các cấu trúc lưu chỉ mục....................................................................62
3.1.2 Các bước xây dựng chỉ mục theo phương pháp Inverted files............68
3.1.4 Lập chỉ mục với nguồn dữ liệu đầu vào...............................................76
3.2 Mô đun tìm kiếm..................................................................................77
2
3.2.1 Các dạng truy vấn...............................................................................80
3.2.2 Phân tích cú pháp truy vấn.................................................................81
3.2.3 Các phương pháp giải quyết vấn đề....................................................83
3.3 Mô đun sắp xếp....................................................................................82
Các mô hình sắp xếp và đánh giá........................................................82
1. Mô hình Boolean.................................................................................83
2. Mô hình không gian vector.................................................................84
PHẦN III: KẾT LUẬN...............................................................................90
1. Kết quả đạt được trong luận văn.......................................................90
2. Hướng phát triển trong tương lai......................................................91
TÀI LIỆU THAM KHẢO..........................................................................94
PHỤ LỤC.....................................................................................................98
3
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ
TIẾNG ANH
Thuật ngữ tiếng anh Tiếng Việt Viết tắt
CONTENT INDEX Chỉ mục nội dung
CRAWLER Bộ thu hồi
COLLECTION ANALYSIS MODULE Mô đun phân tích tập
hợp
MATCHING PROCESS Quá trình đối sánh
FULL - TEXT INDEX Chỉ mục toàn văn bản
HASHING SCHEME Sơ đồ băm
REVLEVANCE Mức độ liên quan
INDEX Bảng chỉ mục
INVERTED FILE Tập tin đảo
INVERTED INDEX Chỉ mục ngược
INFORMATION RETRIEVAL Hệ thống tìm kiếm IR
PAGERANK
STRUCTURE INDEX Cấu trúc bảng chỉ mục
S EARCH ENGINE Hệ tìm kiếm
SIGNATURE FILE
STANDFORD WEBBSE
QUERY FORMULATION PROCESS Biểu diễn truy vấn
QUERY ENGINE Công cụ truy vấn
Uniform Resource Location
Địa chỉ một trạm trên
Internet
URL
USER Người sử dụng
UTILYTI INDEX Bảng chỉ mục tiện ích
WEB CRAWLER Bộ thu hồi
DANH MỤC CÁC HÌNH VẼ
4
Hình 1: Quy trình tìm kiếm thông tin
Hình 2: Bộ công cụ tìm kiếm trang Wed
Hình 3: Mô hình bộ công cụ tìm kiếm truyền thống
Hình 4: Cấu trúc bảng băm
Hình 5: Giải thuật tìm kiếm và chèn một khóa vào bảng băm
Hình 6: Cấu trúc cây B- tree
Hình 7: Cấu trúc cây B
+
- Tree
Hình 9: Kiến trúc cây lưu trữ
Hình 10: Mô hình lập chỉ mục Web
Hình 11: Minh họa các giá trị PageRank
Hình 12: Thuật toán HITS
Hình 13: Mô hình tạo nhã với mỗi khối Lôgíc
Hình 14: Cấu trúc File dạng SSF
Hình 15: Inverted File sử dụng mảng sắp xếp
Hình 16: Khái quát mô hình lập chỉ mục
Hình 17: Mô hình bộ phân tích
Hình 18: Cấu trúc bộ đệm chỉ mục
5
LỜI MỞ ĐẦU
Trong xã hội phát triển thông tin thực sự trở thành nguồn tài nguyên
quan trọng, nguồn của cải to lớn của xã hội. Các mối quan hệ, tính trật tự
của tổ chức là những thuộc tính căn bản của mọi hệ thống kinh tế - xã hội.
Hệ thống càng phát triển tức là càng có nhiều yếu tố tạo thành mối quan hệ
giữa chúng càng phức tạp do đó lượng thông tin càng phong phú. Chính vì
vậy mà ngày nay cùng với sự phát triển của Công nghệ Thông tin cũng như
sự phát triển nhanh chóng của mạng máy tính toàn cầu và sự bùng nổ thông
tin, các kho dữ liệu số đã được hình thành ở khắp mọi nơi và không ngừng
gia tăng về dung lượng, nhưng thông tin thì vẫn luôn là cần thiết thậm chí
thiếu với họ. Các kho dữ liệu này ẩn chứa một hàm lượng thông tin vô cùng
lớn. Nhưng vấn đề đặt ra là làm thế nào để “khai thác, tìm kiếm” tổng hợp
kho thông tin đó để cho nó trở nên hiệu quả và có giá trị đối với người dùng.
Những thông tin này được lưu trữ và biểu diễn ở rất nhiều dạng khác nhau
như văn bản, âm thanh, hình ảnh vv... có thể nói : “khối lượng dữ liệu khổng
lồ mà người sử dụng có thể truy xuất nếu không được tổ chức lưu trữ tốt và
kèm theo một phương thức xử lý hiệu quả để có thể khai thác và tìm kiếm
lượng thông tin trong đó thì chúng cũng chỉ là những thông tin chết chứ
không mang lại chút lợi ích nào cả ”.
Để giải quyết vấn đề này, người ta đã xây dựng các hệ thống tìm kiếm
thông tin. Nó giúp con người tìm kiếm và chọn lọc ra những tài liệu có chứa
thông tin cần thiết. Do người sử dụng luôn yêu cầu kết quả tìm kiếm chính
6
xác, đầy đủ và với các vận tốc tìm kiếm nhanh nên các hệ thống tìm kiếm
thông tin luôn được nghiên cứu và phát triển cùng với các kỹ thuật, thuật
toán tìm kiếm hiệu quả và tối ưu nhất.
Luận văn “Bộ công cụ tìm kiếm thông tin trên mạng ” không đặt mục
tiêu chính là xây dựng một hệ thống hoàn chỉnh, mà trình bày phần lý thuyết
để đảm bảo cho một hệ thống tìm kiếm. Với hy vọng là tìm hiểu các chiến
thuật, thuật toán để tổ chức một bộ công cụ tìm kiếm tối ưu, đưa ra đáp ứng
người dùng với thời gian ngắn nhất và các kết quả có độ liên quan tới truy
vấn cao nhất và có nhiều lựa chọn để người dùng có thể can thiệp vào hệ
thống.
Để xây dựng được luận văn này em đã được sự quan tâm hướng dẫn
chỉ bảo tận tình của PGS – TS KH Vũ Đình Hòa, cùng với sự giúp đỡ của
bạn bè đã tạo điều kiện thuận lợi cho em được hoàn thành nhiệm vụ. Em xin
trân thành cảm ơn sự giúp đỡ quý báu này.
Hà Nội, ngày tháng năm 2006
Người thực hiện
Bùi Thị Minh Tuyết
7
PHẦN I : MỞ ĐẦU
1.Tính cấp thiết của luận văn:
Ngày nay, do nhu cầu học tập, giải trí, trao đổi thông tin của con
người là rất lớn. Để đáp ứng nhu cầu đó thì con người đã đạt được những
tiến bộ công nghệ cùng với sự phát triển của những lý thuyết trong lĩnh vực
xử lý thông tin đã giải quyết được phần nào các vấn đề đặt ra.
Chẳng hạn, như các bài toán trong xử lý văn bản như tìm kiếm, phân
lớp, phân cụm văn bản, vv... Information retrieval (IR) là một trong vấn đề
quan tâm hiện nay. Nghiên cứu về vấn đề IR có rất nhiều khó khăn, bởi ngay
cả với những hệ tìm kiếm nổi tiếng mà chúng ta thấy thường xuyên trên
mạng Internet như Gooogle, Altaarista, Yahoo,... là các hệ tìm kiếm tự động
nhưng vai trò của người dùng rất hạn chế, các hạn chế tiêu biểu thường gặp
có thể được liệt kê ra như sau: Khi người sử dụng đưa ra một vấn đề truy
vấn, thì hệ thống sẽ trả ra kết quả thường là hàng nghìn tài liệu hoặc thậm trí
là lớn hơn rất nhiều, khi đó người sử dụng sẽ phải mất thời gian đọc nội
dung của từng loại tài liệu để tìm kiếm thông tin mà mình quan tâm và đặc
biệt người sử dụng không thể can thiệp để có thể tìm kiếm tài liệu theo ý
muốn của mình.
Một bài toán khác trong tìm kiếm thông tin - Vấn đề sắp xếp các tài
liệu theo độ liên quan (Relevancy ranking) cũng là một vấn đề đang được
quan tâm và phát triển. Đặc biệt trong những năm gần đây cùng với sự gia
tăng của các nguồn thông tin điện tử sẵn dùng đã dẫn đến việc tìm kiếm tài
liệu phù hợp nhất trong tập tài liệu nguồn ngày càng trở nên khó khăn đối
với con người và máy tính.
8
2. Mục đích , nhiệm vụ của luận văn
2.1. Mục đích của luận văn:
Luận văn tập chung nghiên cứu các mô hình tìm kiếm thông tin truyền
thống và mô hình tìm kiếm thông tin trên mạng bên cạnh đó cũng tập chung
nghiên cứu và phân tích các đặc tính cấu trúc chung của một mô hình tìm
kiếm thông tin dựa trên cơ sở lý thuyết.
2.2. Nhiệm vụ của luận văn:
Luận văn phải thực hiện được các nhiệm vụ sau:
2.2.1.Nghiên cứu về bộ công cụ tìm kiếm thông tin .
2.2.2.Nghiên cứu các mô hình bộ công cụ tìm kiếm thông tin truyền
thống.
2.2.3.Nghiên cứu các mô hình bộ công cụ tìm kiếm thông tin trên
mạng.
3. Phạm vi nghiên cứu
Kết quả đề tài là bước đầu nghiên cứu, tổng hợp các vấn đề lý thuyết
tron bài toán “Bộ công cụ tìm kiếm thông tin trên mạng”. Dựa vào mô hình
lý thuyết để tiến hành cài đặt một số chức năng hỗ trợ cho việc thiết kế bộ
công cụ tìm kiếm trên mạng.
4. Nội dung luận văn :
Luận văn gồm 3 chương
CHƯƠNG 1: GIỚI THIỆU BỘ CÔNG CỤ TÌM KIẾM THÔNG TIN
Gồm các nội dung sau :
1. Kh¸i niÖm bé c«ng cô t×m kiÕm th«ng tin
9
3. M« h×nh bé c«ng cô t×m kiÕm th«ng tin truyÒn thèng
4. M« h×nh bé c«ng cô t×m kiÕm th«ng tin trªn m¹ng
5. CÊu tróc d÷ liÖu trong tæ chøc lu tr÷ vµ t×m kiÕm th«ng tin
CHƯƠNG 2: CÁC CÔNG CỤ CƠ BẢN
Gồm các nội dung sau :
1. Thu håi trang Web
2. Lu tr÷
3. LËp chØ môc
4. S¾p xÕp vµ ph©n tÝch liªn kÕt
CHƯƠNG 3 :THIẾT KẾ CÁC CÔNG CỤ HỖ TRỢ TÌM KIẾM THÔNG
TIN TRÊN MẠNG
Gồm các nội dung sau :
1. M«®ul t×m kiÕm
2. M«®un s¾p xÕp
3. M«®ul lËp chØ môc
10
PHẦN II: NỘI DUNG
CHƯƠNG I
GIỚI THIỆU BỘ CÔNG CỤ TÌM KIẾM THÔNG TIN
1.1 Khái niệm bộ công cụ tìm kiếm thông tin
Thuật ngữ tìm kiếm thông tin xuất hiện từ khá sớm, các thông tin thể
hiện ở nhiều dạng khác nhau, có thể là dạng văn bản, âm thanh hoặc hình
ảnh,vv... Mà phổ biến nhất là tìm kiếm văn bản (bao gồm việc tìm kiếm hoặc
sắp xếp văn bản), đặc biệt là trong các công cụ tìm kiếm. Nhiều lúc, thuật
ngữ này được dùng như là toàn bộ quá trình từ việc xử lý văn bản tới việc
phân lớp và tìm kiếm văn bản. Với đề tài này, em sử dụng thuật ngữ tìm
kiếm văn bản theo nghĩa bao gồm việc lập chỉ mục tài liệu, tìm kiếm và sắp
xếp các văn bản tìm kiếm theo thứ tự liên quan đến yêu cầu người sử dụng
(văn bản ở đây có thể là một File hoặc là một trang Web) .
Một hệ thống tìm kiếm thông tin là một chương trình phần mềm dùng
để lưu trữ và quản lý thông tin nằm trong các tài liệu. Hệ thống này giúp
người sử dụng tìm kiếm thông tin mà họ quan tâm. Các hệ thống này không
giống như các hệ thống trả lời câu hỏi, nó chỉ ra sự tồn tại và vị trí các tài
liệu có chứa thông tin cần thiết. Một số tài liệu “tìm kiếm được” thỏa mãn
yêu cầu của người sử dụng gọi là các tài liệu phù hợp hay tài liệu liên quan
(relevanl document). Một hệ thống tìm kiếm hoàn hảo sẽ chỉ tìm và đưa ra
các tài liệu liên quan mà không đưa ra các tài liệu không liên quan. Tuy
nhiên các hệ thống này không tồn tại bởi các thể hiện tìm kiếm là không đầy
đủ mà mức độ liên quan phụ thuộc vào quan điểm chủ quan của từng người.
11
Hai ngi s dng cú th a ra cựng mt truy vn vi mt h thng tỡm
kim thụng tin v sau ú s cú nhng ỏnh giỏ khỏc nhau v mc liờn
quan trờn cỏc ti liu ó tỡm c.
Tỡm kim trờn cỏc thụng tin núi chung gii quyt cỏc vn nh biu
din, lu tr, t chc v truy cp n cỏc mc thụng tin. Vic t chc v
biu din thụng tin giỳp ngi s dng d dng truy cp thụng tin m mỡnh
quan tõm. Nhng mụ t c im thụng tin yờu cu ca ngi s dng
khụng phi d dng. Vỡ th, h thng tỡm kim thụng tin bao gm ba quỏ
trỡnh c bn sau: Biu din ni dung cỏc ti liu, biu din yờu cu ca
ngi s dng v so sỏnh hai biu din ny.
Error: Reference source not found
Hình 1: Quy trình tìm kiếm thông tin
12
Bài toán thông tin
Văn bản
Biểu diễn
Truy vấn Văn bản đã chỉ số hoá
So sánh
Biểu diễn
Các văn bản được
tìm kiếm
Phản hồi
Quá trình biểu diễn tài liệu được gọi là quá trình chỉ số hóa
(indexing). Quá trình này có thể lưu trữ thực sự các tài liệu trong hệ thống,
thông thường chỉ lưu trữ một phần tài liệu, chẳng hạn như phần tiêu đề và
tóm tắt. Quá trình biểu diễn yêu cầu người sử dụng gọi là quá trình biểu diễn
truy vấn (query formulation process). Truy vấn biểu thị sự tương tác giữa hệ
thống và người sử dụng, do đó quá trình này không chỉ đưa ra một truy vấn
phù hợp mà còn phải thể hiện được sự hiểu biết về yêu cầu của người sử
dụng. Sự thiết lập tự động các truy vấn liên tiếp được gọi là phản hồi độ liên
quan (relevance feedback). Việc so sánh truy vấn với tài liệu cũng được gọi
là quá trình đối sánh (matching process) và cho kết quả là một danh sách các
tài liệu được sắp xếp theo mức độ liên quan tới truy vấn.
Vậy, để mô tả thông tin một cách rõ ràng đầy đủ, người sử dụng
không thể trực tiếp yêu cầu thông tin sử dụng các giao diện hiện thời của hệ
thống tìm kiếm. Thay vì người sử dụng đầu tiên phải chuyển đổi thông tin
yêu cầu này thành một truy vấn mà có thể được xử lý bởi hệ thống tìm kiếm
(hoặc hệ thống IR). Thường thì phép chuyển đổi này tạo ra một tập hợp các
từ khóa (hoặc các term chỉ số) mô tả khái quát yêu cầu của người sử dụng.
cho một truy vấn người dùng, mục đích chính của một hệ thống IR là tìm
kiếm thông tin mà có thể trở thành hữu ích hoặc phù hợp với người sử dụng.
Điều quan trọng nhất ở đây là việc phục hồi thông tin trái với phục hồi dữ
liệu.
Trong ngữ cảnh của hệ thống IR, nhiệm vụ của phục hồi dữ liệu chính
là việc xác định các tài liệu chứa các từ khóa xuất hiện thường xuyên nhất
trong truy vấn người dùng mà không cần thỏa mãn yêu cầu của người dùng.
Trong thực tế, người sử dụng của một hệ thống IR quan tâm nhiều đến việc
13
khôi phục thông tin về một chủ đề hơn là việc khôi phục dữ liệu mà đáp ứng
một truy vấn đưa ra. Một ngôn ngữ phục hồi dữ liệu hướng vào việc khôi
phục dữ liệu mà đáp ứng một truy vấn đưa ra. Một ngôn ngữ phục hồi dữ
liệu hướng vào việc khôi phục tất cả các đối tượng thỏa mãn các điều kiện
đã được xác định rõ ràng như một biểu thức chính tắc hoặc biểu thức đại số
quan hệ. Do vậy, với một hệ thống khôi phục dữ liệu, một đối tượng đơn lẻ
bị lỗi trong số hàng nghìn đối tượng được tìm kiếm là không thực hiện được.
Tuy nhiên, với một hệ thống khôi phục thông tin, các đối tượng tìm kiếm có
thể không chính xác và cho phép các lỗi nhỏ. Nguyên nhân chính của sự
khác nhau này là việc khôi phục thông tin luôn xử lý với văn bản ngôn ngữ
tự nhiên thường không có cấu trúc và không thể rõ nghĩa. Nói cách khác, hệ
thống khôi phục dữ liệu (như một cơ sở dữ liệu quan hệ ) xử lý dữ liệu có
cấu trúc và ngữ nghĩa đã được xác định. Việc khôi phục dữ liệu không giải
quyết vấn đề trong khôi phục thông tin về một chủ đề hoặc một lĩnh vực cụ
thể. Để đạt được hiệu quả đáp ứng thông tin yêu cầu của người dùng, hệ
thống IR phải bằng cách nào “hiểu” được các nội dung của thông tin (các
văn bản) trong một tập hợp và sắp xếp chúng theo mức độ phù hợp với truy
vấn. Sự “hiểu biết” về nội dung văn bản này bao gồm sự trích chọn cú pháp
và ngữ nghĩa thông tin từ văn bản và sử dụng thông tin này để so khớp với
thông tin người dùng. Cái khó là không chỉ hiểu để trích chọn thông tin này
như thế nào mà còn là hiểu cách sử dụng nó để quyết định mối liên quan như
thế nào. Do vậy khái niệm mức độ liên quan (revlevance) cũng là một phần
quan trọng trong tìm kiếm tất cả các tài liệu liên quan với một truy vấn
người dùng mặc dù việc tìm kiếm có thể đưa ra một tài liệu không thích hợp.
14
Vậy, khôi phục thông tin là một quá trình nhận dạng, xác định và chỉ
ra các tài liệu liên quan dựa trên mô tả yêu cầu thông tin của người sử dụng.
Việc tìm kiếm các tài liệu dựa trên nội dung thực sự của văn bản mà không
phụ thuộc vào các từ khóa gắn với văn bản đó. Các công cụ văn bản nổi
tiếng hiện nay như Google, Altaavista, Yohoo,... là những hệ tìm kiếm đưa
ra danh sách các văn bản theo độ quan trọng của câu hỏi đưa vào, Để xây
dựng một hệ tìm kiếm văn bản có hiệu quả cao, trước hết các văn bản và
truy vấn ở dạng ngôn ngữ tự nhiên phải được tiền xử lý và chuẩn hóa.
Một mô hình của quá trình thiết lập truy vấn được chuẩn hóa thành
hai vấn đề: Đầu tiên là chọn các ternm truy vấn và thứ hai là lựa chọn các
phép toán truy vấn. Dưới đây em đưa ra hai mô hình chi tiết cho bộ công cụ
tìm kiếm thông tin truyền thống và bộ công cụ tìm kiếm thông tin trên mạng.
1.2 Bộ công cụ tìm kiếm thông tin trên mạng
Do các trang Web phân tán trên mọi nơi nên việc đầu tiên là chúng ta
phải thu thập tất cả các dữ liệu Web có liên quan tới truy vấn, lập chỉ mục,
sau đó thực hiện tìm kiếm để đưa ra tập kết quả có liên quan tới nội dung
truy vấn, trước khi được đưa tới người sử dụng cuối tập kết quả này phải
được sắp xếp theo thứ tự độ liên quan. Trong phần này em đưa ra một mô
hình tìm kiếm thông tin trên Web, một kho dữ liệu rất lớn với tỷ lệ thay đổi
cao.
Word – Wide – Web là kho thông tin khổng lồ của nó được quảng bá
tới hàng triệu người. Ta cũng có một vài trình duyệt Web đơn giản như
Yahoo! Nhưng có rất nhiều người tìm kiếm thông tin lại thích sử dụng bộ
công cụ tìm kiếm để bắt đầu trang Web của họ. Trong trường hợp này người
15
sử dụng đưa ra một truy vấn cụ thể là một vài từ khóa và nhận được một
danh sách các trang Web có liên quan, đặc biệt là các trang chứa đựng các từ
khóa đó. Ở phần này em sẽ trình bày một số phương pháp thiết kế tốt nhất
cho bộ công cụ tìm kiếm và diễn tả một vài kỹ thuật phổ biến.
Có nhiều công cụ sử dụng các thuật toán và các kỹ thuật thu hồi thông
tin (information Retrieval - IR) truyền thống. Tuy nhiên các thuật toán IR
được phát triển cho tập tài liệu nhỏ và không liên kết, ví dụ như tiêu đề của
các bài báo, cuốn sách trong thư viện, trong khi đó Web lại là một khối dữ
liệu cực kỳ lớn, thay đổi thường xuyên cộng với khả năng phân tán ở mọi
nơi, điều đó đòi hỏi phải có một kỹ thuật mới hoặc là sự mở rộng của các kỹ
thuật cũ để sao cho cấu trúc bảng chỉ mục (Index) của ta có thể thay đổi, cập
nhật một cách dễ dàng tận dụng triệt để mối liên kết giữa các trang Web để
xác định một cách dễ nhất các trang liên quan.
Không có một câu trả lời chính xác về độ lớn của các trang Web cũng
như những thách thức của nó. Một số nghiên cứu đã ước lượng kích thước
của cơ sở dữ liệu Web, trong khi đưa ra các số lượng khác nhau nhưng tất cả
đều đồng ý rằng các trang Web có hiệu lực hiện nay, với kích thước trung
bình của mỗi trang khoảng 5Kb tới 10Kb thì ta cũng có ít nhất là 10Tb dữ
liệu, các tỷ lệ của các trang Web còn kinh khủng hơn, kích thước của trang
Web sẽ tăng lên gấp đôi trong vòng hai năm và tỷ lệ đó sẽ tiếp tục tăng
trong hai năm tiếp theo.
Xong bên cạnh các trang vừa được tạo ra thì các trang đang tồn tại
cũng luôn luôn được cập nhật, chẳng hạn, theo dõi hơn nửa triệu trang trong
các miền như “.com” thì phải có đến 40% các trang được thay đổi hàng
ngày. Cộng với kích thước rất lớn và tỷ lệ thay đổi liên tục của các trang
16
M« dule
Ph©n
tÝch tËp
hîp
WW
W
Module
LËp chØ
môc
C«ng cô
t×m
kiÕm
S¾p xÕp
Ngêi sö dông
§iÒu khiÓn
Thu Håi
Kho lu tr÷ trang
Thu håi
Truy vÊn KÕt qu¶
B¶ng chØ môc :
TiÖn
Ých
Ph¶n håi
CÊu
tróc
V¨n
B¶n
Web nó còn có một đặc trưng nữa đó là mối liên kết giữa các trang Web cho
ta các tập tài liệu từ rất nhiều tập tài liệu khác. Một số nghiên cứu nhằm mục
đích cho chúng ta hiểu liên kết giữa các trang Web được xây dựng như thế
nào. Cho ví dụ, một nghiên cứu gần đây đã gợi ý rằng cấu trúc liên kết của
các trang Web trong giống như một nơ con bướm. Có nghĩa là khoảng 28%
các trang hình thành một lõi liên kết mạnh (tâm của nơ con bướm). Khoảng
22% hình thành nên một trong các vòng lặp của nơ, đó là các trang có thể
được đi từ lõi nhưng không thể ngược lại. Vòng lặp khác bao gồm 22% các
trang có thể đi tới từ lõi nhưng không thể được đi tới từ nó (còn lại một số
nút không thể đi tới lõi mà cũng không thể được đi tới từ lõi).
17
M« dule
Ph©n
tÝch tËp
hîp
WW
W
Module
LËp chØ
môc
C«ng cô
t×m
kiÕm
S¾p xÕp
Ngêi sö dông
§iÒu khiÓn
Thu Håi
Kho lu tr÷ trang
Thu håi
Truy vÊn KÕt qu¶
B¶ng chØ môc :
TiÖn
Ých
Ph¶n håi
CÊu
tróc
V¨n
B¶n
Hình 2 : Bộ công cụ tìm kiếm trang Web
Ở hình trên em đưa ra mô hình tổng quan của một bộ công cụ tìm
kiếm Web. Mọi bộ công cụ đều sử dụng một mô đun Crawler để thu hồi tài
liệu cung cấp cho các hoạt động của nó. Bộ thu hồi là một nhóm các chương
trình thay mặt bộ công cụ để duyệt các trang Web, tương tự như một người
sẽ kết nối để đi đến các trang khác, nhóm chương trình có đầu vào là một
tập các giá trị khởi đầu URL mà các trang của nó sẽ được tìm kiếm từ Web.
Bộ thu hồi trích các giá trị URL xuất hiện trong mỗi trang Web tìm kiếm
được và gửi tới mô đun bộ điều khiển thu hồi. Mô đun này xác định liên kết
nào được thăm tiếp theo, để cung cấp thông tin này tới các Crawlers (một
vài chức năng cuả mô đun bộ điều khiển thu hồi có thể được thực hiện bởi
chính các Crawler). Bộ thu hồi lưu các trang tìm kiếm được vào trong một
kho lưu trữ trang (Page Repostory). Bộ thu hồi tiếp tục thăm các trang Web
cho tới khi nguồn tài nguyên cục bộ bị cạn kiệt.
Khi bộ công cụ tìm kiếm đã trải qua ít nhất một chu kỳ thu hồi
(Crawling) thì mô đun bộ điều khiển thu hồi có thể được hỗ trợ bởi các bảng
chỉ mục được tạo ra trong quá trình bộ thu hồi trước.
Ví dụ: Mô đun bộ điều khiển thu hồi có thể sử dụng đồ thị liên kết
(bảng chỉ mục liên kết – Structure Index) của Craw trước để quyết định liên
kết nào sẽ được sử dụng và liên kết nào sẽ bỏ qua. Bộ điều khiển thu hồi
cũng có thể sử dụng các thông tin phản hồi để điều khiển quá trình xử lý
Crawling (được nối kết giữa công cụ truy vấn và mô đun của bộ điều khiển
thu hồi). Ở chương này em sẽ trình bày kỹ hơn về các hoạt động thu hồi.
Trong môđun của bộ tạo chỉ mục (Indexer) trích tất cả các từ trong
mỗi trang Web đồng thời ghi nhận giá trị URL nơi mỗi từ xuất hiện. Kết quả
là thu được một “Bảng tìm kiếm” rất lớn cung cấp các giá trị URL trỏ tới các
18
trang chứa đựng từ tìm kiếm (đây chính là bảng chỉ mục văn bản – text
index).Tuy nhiên phạm vi của bảng bị giới hạn trong nội dung các trang tìm
thấy trong quá trình xử lý Crawling. Do kích thước rất lớn và sự thay đổi
nhanh chóng của các trang Web đã làm cho việc lập chỉ mục văn bản trở nên
khó khăn hơn nhiều. Ngoài ra chúng ta lại có thêm những bảng chỉ mục ít
phổ biến, ví dụ như bảng chỉ mục cấu trúc (structure index) dùng để phản
ánh mối liên kết giữa các trang. Mô đun phân tích tập hợp (Collection
Analysis Module) sẽ tạo ra các bảng chỉ mục tiện ích khác hỗ trợ cho quá
trình thu hồi thông tin.
Bảng chỉ mục tiện ích (Utilyti index) được tạo ra bởi môđun phân tích
tập hợp. Bảng chỉ mục tiện ích có thể cho phép việc truy cập tới các trang
với độ dài cho trước, hoặc là các trang có mức độ quan trọng nào đó, hoặc là
các trang với một số các hình ảnh trong chúng. Môđun phân tích tập hợp có
thể sử dụng các bảng chỉ mục văn bản hoặc bản chỉ mục cấu trúc để tạo ra
bản chỉ mục tiện ích.
Trong suốt quá trình Crawling và Indexing, bộ công cụ tìm kiếm phải
lưu trữ các trang tìm kiếm được. Kho lưu trữ trang sẽ phụ trách công việc
này. Thỉnh thoảng bộ công cụ tìm kiếm phải duy trì một bộ nhớ đệm các
trang đã thăm dựa theo thời gian xây dựng bảng chỉ mục. Bộ nhớ đệm này
hỗ trợ cho việc đưa ra các trang kết quả một cách nhanh chóng và cung cấp
các tiện ích tìm kiếm cơ bản. Một vài hệ thống, giống như Internet Archive
đã duy trì một số lượng rất lớn các trang và lưu trữ chúng lâu dài. Vấn đề lưu
trữ cũng phải được xem xét một cách cẩn thận.
Mô đun “công cụ truy vấn” (Query Engine) có nhiệm vụ nhận và tìm
kiếm các yêu cầu từ người sử dụng. Bộ công cụ sẽ dựa vào bảng chỉ mục và
19
thỉnh thoảng là các kho lưu trữ trang. Bởi kích thước lớn của Web thêm vào
nữa khi người sử dụng chỉ đưa vào một hoặc là hai từ khóa thì sẽ nhận được
một tập rất lớn các trang kết quả. Do vậy phải có một môđun Ranking thực
hiện việc sắp xếp kết quả sao cho các kết quả ở gần đầu sẽ giống với nội
dung đang được tìm kiếm hơn. Môđun truy vấn được quan tâm một cách đặc
biệt, bởi vì: Với các kỹ thuật truyền thống ta chỉ dựa vào sự đo lường về độ
tương quan giữa văn bản trong tập tài liệu. Trong khi đó, đối với bộ công cụ
tìm kiếm Web, các truy vấn thì rất nhỏ còn tập dữ liệu thì lại rất lớn, nó đã
ngăn chặn sự đánh giá về độ tương quan dựa trên phép tính gần đúng từ việc
lọc số lượng các trang không liên quan ra khỏi kết quả tìm kiếm.
1.3 Mô hình bộ công cụ tìm kiếm thông tin truyền thống
Vào những năm 70, khi các mô hình tìm kiếm thông tin chủ yếu được
xử lý với các truy vấn không có cấu trúc thì các hệ thống truy vấn tự động đã
mở thành một sự kiện. Nguyên tắc hoạt động của các hệ thống truy vấn tự
động là chỉ số hóa và thiết lập công thức truy vấn, kết quả đưa ra là một biểu
diễn có ý nghĩa gần với thực của văn bản, loại bỏ các từ không theo quy tắc
trong ngôn ngữ tự nhiên đến mức có thể. Sau đây em đưa ra một mô hình
tổng quát của hệ thống tìm kiếm thông tin truyền thống.
20
21
Tập tài liệu
Giao diện sử dụng
Người sử dụng
Cơ Sở Dữ Liệu Tìm
Kiếm
Tách từ
Đánh chỉ
số tài
liệu
Loại
bỏ
StopLis
t
Chuẩn
hóa từ
Chuẩn
hóa từ
Phân tích
cú pháp
truy vấn
Hoạt động
Boolean
Đánh
trọng
số
Phản hồi độ
liên quan
Sắp xếp
Văn bản
Từ
Chỉ số tài liệu,
Chỉ số trường
Tài liệu
Từ không nằm
trong StopList
Từ đã
chuẩn hoá
Từ, trọng
số
Tập tài liệu
liên quan
Từ truy vấn Tập tài liệu
thu hồi đư
ợc
Tập tài liệu
đã sắp xếp
Tập tài liệu
tìm kiếm
Truy
vấn
Truy vấn
Hình 3 : Mô hình bộ công cụ tìm kiếm truyền thống
Khi xây dựng cơ sở dữ liệu, nội dung của tập tài liệu được tách thành
các từ. Các từ này được so sánh với Stoplist - một danh sách các từ không
được lập chỉ mục (nó không có giá trị nội dung trong nhận dạng văn bản, ví
dụ a, an, the, about....). Các từ không nằm trong Stoplist sẽ được chiết lọc để
lấy gốc (stemming). Các từ có thể thống kê tần suất xuất hiện để hỗ trợ cho
việc sắp xếp các tài liệu thu hồi được. Cuối cùng các từ cùng với các thông
tin kết hợp với chúng (ví dụ: định danh tài liệu, định danh trường nằm trong
tài liệu và các giá trị thống kê...vv) được dặt vào kho cơ sở dữ liệu. Kho cơ
sở dữ liệu có thể bao gồm các cặp giá trị định danh tài liệu và các từ khóa.
Cấu trúc này được gọi là tập tin đảo (Inverted File).
Để tìm kiếm trong cơ sở dữ liệu, người sử dụng đưa vào một truy vấn
bao gồm một tập các từ khóa được nối kết với nhau bởi các toán hạng logic
(And, Or, Not). Truy vấn được phân tách thành các từ liên tiếp và các toán
hạng lôgic của chúng. Các từ này được tìm kiếm trong tập tin đảo, sau đó
được kết hợp với nhau dựa theo các toán hạng logic. Dựa vào thông tin
thống kê, tập thu hồi trên có thể được sắp xếp theo thứ tự có liên quan đến
nội dung. Kết quả này được đưa đến người sử dụng. Trong một số hệ thống,
người sử dụng có thể đưa ra một số đánh giá về độ liên quan của tài liệu tìm
kiếm được và những thông tin này được sử dụng để tự động thay đổi truy
vấn bằng cách thêm vào các từ từ những tài liệu liên quan và xóa đi các từ từ
những tài liệu không liên quan.
1.4 Cấu trúc dữ liệu trong tổ chức lưu trữ và tìm kiếm
thông tin
22
1.4.1 Bảng băm
1.4.1.1 Khái niệm hàm băm (Hash function)
Hàm băm h là một ánh xạ từ tập L đến tập các giá trị M nào đó. Thông
thường M là một tập các số nguyên giả sử từ 0 tới m, khi đó với mỗi giá trị
x
i
thuộc L sẽ tương ứng với một số h(x
i
) thỏa mãn:
( )
mxh
i
≤≤
0
Một trong những hàm băm được đề cập rất sớm và thường xuyên
trong các giáo trình phổ thông là hàm lấy phần dư trong đó các giá trị băm
của khóa x
i
được tính theo công thức:
( )
mxxH
ii
mod
=
Với m là một số nguyên tố phù hợp, chữ phù hợp ở đây mang ý nghĩa
là một số nguyên tố lớn.
Hệ số
α
= n/m được gọi là hệ số tải với n là số khóa trong tập L. Giá trị
này càng nhỏ thì khả năng hai khóa khác nhau có cùng một giá trị băm càng
nhỏ (hiện tượng này được gọi là xung đột).
Hàm băm h được gọi là một hàm băm hoàn hảo nếu nó thỏa mãn tính
chất vì mọi x
i
, x
j
thuộc L ta có: h(x
i
) = h(x
j
) khi v à ch ỉ khi x
i
= x
j
. Tính chất
này đảm bảo không xảy ra đụng độ như đã nói ở trên, dễ thấy rằng để thỏa
mãn điều kiện này thì trước hết phải có
α
≤ 1. Khi
α
=1 (tức là với mỗi giá
trị khóa tương ứng duy nhất một giá trị băm và ngược lại) ta nói hàm băm
khi đó có tính chất tối ưu.
Việc thiết kế một hàm băm hoàn hảo tối ưu là tương đối phức tạp, hơn
nữa hàm băm này chỉ là tối ưu hoàn hảo đối với tập dữ liệu này chứ không
phải là tối ưu hoàn hảo với tập dữ liệu khác nên mặc dù việc sử dụng một
hàm băm dạng này tương đối thuận lợi nhưng nó không phải là giải pháp có
23
hiệu quả khi thiết kế chương trình. Thay vào đó, với việc sử dụng các
phương pháp giải quyết xung đột sẽ được trình bày dưới đây thì các hàm
băm thông thường tỏ ra có ưu thế hơn cả về thời gian thực hiện lẫn mức độ
đơn giản trong cài đ
1.4.1.2 Khái niệm bảng băm
Bảng băm là một mảng các phần tử trong đó có sử dụng một cơ cấu hàm
băm cho phép tăng tốc quá trình tìm kiếm những thông tin tương ứng với
một phần tử nào đó của mảng. Giả sử ta có một tập rất lớn các khóa như là
một tập số nguyên không âm N và tồn tại một hàm h ánh xạ từ tập N tới tập
M = {0,1..............,m} với m >1. T là một tập với m phần tử được đánh số từ
0 đến m-1, với các phần tử của T hoặc là chứa một bản ghi hoặc có giá trị
Void (giá trị Void chỉ ra rằng phần tử đó không chứa một bản ghi nào cả).
Ta có thể biểu diễn một tập bản ghi A bằng cách đặt
T[h(a)] = r
Trong đó a = key(r) là khóa của bản ghi r, với mọi r ∈ A.
Ví dụ với m = 12, A = {22,39,46,54,79,198} và h(i) =i mod 13 với
mọi i ∈ N xem như các bản ghi ở đây chính là khóa của nó). Khi đó :
h(22) = 22 mod 13 = 9 => T [9] = 22
h(39) = 39 mod 13 = 0 => T [0] = 39
h(46) = 46 mod 13 = 7 => T [7] = 46
h(54) = 54 mod 13 = 2 => T [2] = 54
h(79) = 79 mod 13 = 1 => T [1] = 79
h(198) = 198 mod 13 = 3 => T [3] = 198
Ta gọi h là hàm băm (hash function), T là bảng băm (hash table) và
h(i) là giá trị băm của i
24
Nếu tập A có thêm phần tử {14} thì ta có
h(14) = 14 mod 13 = 1⇒ T[1] =14
Như vậy 79 và 14 sẽ chiếm cùng một phần tử T[1]. Từ đây ta có hai
hướng để giải quyết, thứ nhất là tránh xung đột bằng cách xây dựng hàm
băm hoàn hảo hoặc cũng có thể tránh xung đột bằng cách mở rộng kích
thước bảng băm. Thứ hai là chấp nhận xung đột và áp dụng một số giải pháp
giải quyết xung đột. Như phần trên đã chứng minh, hướng thứ nhất thực hiện
rất phức tạp và có thể vẫn xảy ra xung đột, nên sang phần sau em sẽ trình
bày hướng giải quyết thứ hai.
1.4.1.3 Giải quyết xung đột
* Phương pháp Chaining: Phương pháp này cho ta thấy khá đơn giản, mỗi
phần tử của bảng băm được gắn với một danh sách liên kết, các bản ghi có
cùng giá trị băm của khóa được đặt vào danh sách liên kết đó. Chaining dễ
dàng trong việc cài đặt, mặt khác danh sách liên kết trong bảng băm thường
là ngắn, nên việc tìm kiếm, chèn xóa được thực hiện một cách nhanh chóng.
Thông thường để thuận tiện trong việc tìm kiếm cũng như xóa, bổ
xung, danh sách được sắp xếp theo thứ tự tăng dần của các khóa ( nếu các
khóa có thể so sánh được).
Null
Null
Null
25
Hình 4: Cấu trúc bảng băm
Computer
Science Null
Stop Null
Data Null