Bộ công cụ tìm kiếm thông tin trên mạng
Trang 1MỤ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ôngtin 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
Trang 21.4.2.3 Cây B+ - Tree 29
1.4.2.4 Cây BLink – 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
Trang 33.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
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
Trang 4DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬTNGỮ TIẾNG ANH
COLLECTION ANALYSIS MODULE Mô đun phân tích tậphợp
SIGNATURE FILESTANDFORD WEBBSE
QUERY FORMULATION PROCESS Biểu diễn truy vấn
Uniform Resource Location Địa chỉ một trạm trên
Trang 5Hình 13: Mô hình tạo nhã với mỗi khối LôgícHình 14: Cấu trúc File dạng SSF
Hình 15: Inverted File sử dụng mảng sắp xếpHình 16: Khái quát mô hình lập chỉ mụcHình 17: Mô hình bộ phân tích
Hình 18: Cấu trúc bộ đệm chỉ mục
Trang 6LỜ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ênquan 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ôngtin, các kho dữ liệu số đã được hình thành ở khắp mọi nơi và không ngừnggia 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ùnglớn Nhưng vấn đề đặt ra là làm thế nào để “khai thác, tìm kiếm” tổng hợpkho 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 nhaunhư văn bản, âm thanh, hình ảnh vv có thể nói : “khối lượng dữ liệu khổnglồ 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ếmlượ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ếmthô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ứathô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
Trang 7xá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ếmthông tin luôn được nghiên cứu và phát triển cùng với các kỹ thuật, thuậttoá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ụctiê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ếnthuật, thuật toán để tổ chức một bộ công cụ tìm kiếm tối ưu, đưa ra đáp ứngngười dùng với thời gian ngắn nhất và các kết quả có độ liên quan tới truyvấ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ẫnchỉ bảo tận tình của PGS – TS KH Vũ Đình Hòa, cùng với sự giúp đỡ củabạn bè đã tạo điều kiện thuận lợi cho em được hoàn thành nhiệm vụ Em xintrâ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
Trang 8PHẦ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 conngười là rất lớn Để đáp ứng nhu cầu đó thì con người đã đạt được nhữngtiế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ựcxử 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ânlớ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 ngaycả với những hệ tìm kiếm nổi tiếng mà chúng ta thấy thường xuyên trênmạng Internet như Gooogle, Altaarista, Yahoo, là các hệ tìm kiếm tự độngnhư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ặpcó thể được liệt kê ra như sau: Khi người sử dụng đưa ra một vấn đề truyvấ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ộidung của từng loại tài liệu để tìm kiếm thông tin mà mình quan tâm và đặcbiệ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àiliệu theo độ liên quan (Relevancy ranking) cũng là một vấn đề đang đượcquan tâm và phát triển Đặc biệt trong những năm gần đây cùng với sự giată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àiliệ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 đốivới con người và máy tính.
Trang 92 Mục đích , nhiệm vụ của luận văn2.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ềnthống và mô hình tìm kiếm thông tin trên mạng bên cạnh đó cũng tập chungnghiê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ìmkiế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ềnthố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ênmạ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ếttron 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ìnhlý 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
Trang 103 M« h×nh bé c«ng cô t×m kiÕm th«ng tin truyÒn thèng4 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Õmth«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 Web2 Lu tr÷
Trang 11PHẦ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ếmhoặ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ớiviệ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ìmkiế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ắpxế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úpngười sử dụng tìm kiếm thông tin mà họ quan tâm Các hệ thống này khônggiố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àiliệ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ãnyê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 racác tài liệu liên quan mà không đưa ra các tài liệu không liên quan Tuynhiê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
Trang 12đủ mà mức độ liên quan phụ thuộc vào quan điểm chủ quan của từng người.Hai người sử dụng có thể đưa ra cùng một truy vấn với một hệ thống tìmkiếm thông tin và sau đó sẽ có những đánh giá khác nhau về mức độ liênquan trên các tài liệu đã tìm được.
Tìm kiếm trên các thông tin nói chung giải quyết các vấn đề như biểudiễn, lưu trữ, tổ chức và truy cập đến các mục thông tin Việc tổ chức vàbiểu diễn thông tin giúp người sử dụng dễ dàng truy cập thông tin mà mìnhquan tâm Nhưng để mô tả đặc điểm thông tin yêu cầu của người sử dụngkhông phải dễ dàng Vì thế, hệ thống tìm kiếm thông tin bao gồm ba quátrình cơ bản sau: Biểu diễn nội dung các tài liệu, biểu diễn yêu cầu củangười sử dụng và so sánh hai biểu diễn này.
Error: Reference source not found
Trang 13H×nh 1: Quy tr×nh t×m kiÕm th«ng tin
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ễntruy 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ấnphù 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ênquan (relevance feedback) Việc so sánh truy vấn với tài liệu cũng được gọilà quá trình đối sánh (matching process) và cho kết quả là một danh sách cáctà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ụngkhô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 tinyê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áctừ 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ìmkiế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ínhlà 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ấttrong 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.
Trang 14Trong thực tế, người sử dụng của một hệ thống IR quan tâm nhiều đến việckhôi phục thông tin về một chủ đề hơn là việc khôi phục dữ liệu mà đáp ứngmộ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ôiphụ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ảiquyế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ácvă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 truyvấ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ápvà ngữ nghĩa thông tin từ văn bản và sử dụng thông tin này để so khớp vớithông tin người dùng Cái khó là không chỉ hiểu để trích chọn thông tin nàynhư 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ầnquan 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ấnngườ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.
Trang 15Vậ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ôngphụ 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ổitiếng hiện nay như Google, Altaavista, Yohoo, là những hệ tìm kiếm đưara danh sách các văn bản theo độ quan trọng của câu hỏi đưa vào, Để xâydự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ànhhai vấn đề: Đầu tiên là chọn các ternm truy vấn và thứ hai là lựa chọn cácphé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 taphả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 dungtruy 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 đổicao.
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
Trang 16người sử dụng đưa ra một truy vấn cụ thể là một vài từ khóa và nhận đượcmột danh sách các trang Web có liên quan, đặc biệt là các trang chứa đựngcá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ốtnhấ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ôngtin (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ủacá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ọinơ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ậpnhậ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ũngnhư những thách thức của nó Một số nghiên cứu đã ước lượng kích thướccủ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 trungbì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 trangWeb sẽ tăng lên gấp đôi trong vòng hai năm và tỷ lệ đó sẽ tiếp tục tăngtrong 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ạicũ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
M« dule Ph©n tÝch tËp hîpWW
ModuleLËp chØ môc
C«ng cô t×m kiÕm
S¾p xÕpNg êi sö dông
§iÒu
khiÓn Thu
Kho l u tr÷ trang
Trang 17Web nó còn có một đặc trưng nữa đó là mối liên kết giữa các trang Web chota 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ủacá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ảng22% 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áctrang 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).
M« dule Ph©n tÝch tËp hîpWW
ModuleLËp chØ môc
C«ng cô t×m kiÕm
S¾p xÕpNg êi sö dông
§iÒu
khiÓn Thu Håi
Kho l u tr÷ trang
B¶ng chØ môc :
TiÖn ÝchPh¶n håi
CÊu trócV¨n
Hình 2 : Bộ công cụ tìm kiếm trang Web
Trang 18Ở hình trên em đưa ra mô hình tổng quan của một bộ công cụ tìmkiếm Web Mọi bộ công cụ đều sử dụng một mô đun Crawler để thu hồi tàiliệ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ươngtrình thay mặt bộ công cụ để duyệt các trang Web, tương tự như một ngườisẽ kết nối để đi đến các trang khác, nhóm chương trình có đầu vào là mộttậ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ếtnào được thăm tiếp theo, để cung cấp thông tin này tới các Crawlers (mộtvài chức năng cuả mô đun bộ điều khiển thu hồi có thể được thực hiện bởichính các Crawler) Bộ thu hồi lưu các trang tìm kiếm được vào trong mộtkho lưu trữ trang (Page Repostory) Bộ thu hồi tiếp tục thăm các trang Webcho 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ảngchỉ 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ênkế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ồicũ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ểnthu 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ừ trongmỗ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
Trang 19trang chứa đựng từ tìm kiếm (đây chính là bảng chỉ mục văn bản – textindex).Tuy nhiên phạm vi của bảng bị giới hạn trong nội dung các trang tìmthấy trong quá trình xử lý Crawling Do kích thước rất lớn và sự thay đổinhanh chóng của các trang Web đã làm cho việc lập chỉ mục văn bản trở nênkhó khăn hơn nhiều Ngoài ra chúng ta lại có thêm những bảng chỉ mục ítphổ 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 (CollectionAnalysis 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íchtậ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 trangvớ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 rabả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ảilưu trữ các trang tìm kiếm được Kho lưu trữ trang sẽ phụ trách công việcnày Thỉnh thoảng bộ công cụ tìm kiếm phải duy trì một bộ nhớ đệm cáctrang đã thăm dựa theo thời gian xây dựng bảng chỉ mục Bộ nhớ đệm nàyhỗ trợ cho việc đưa ra các trang kết quả một cách nhanh chóng và cung cấpcá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ìmkiế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à
Trang 20thỉ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àonữa khi người sử dụng chỉ đưa vào một hoặc là hai từ khóa thì sẽ nhận đượcmộ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ựchiệ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ộidung đang được tìm kiếm hơn Môđun truy vấn được quan tâm một cách đặcbiệ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ệclọ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 đượcxử 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ểudiễ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ắctrong ngôn ngữ tự nhiên đến mức có thể Sau đây em đưa ra một mô hìnhtổng quát của hệ thống tìm kiếm thông tin truyền thống
Trang 21Tập tài liệu
Giao diện sử dụng
Ng ời sử dụngCơ Sở Dữ Liệu
Tìm KiếmTách từ
Đánh chỉ số tài liệuLoại
bỏ StopListChuẩ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ếpVăn
Chỉ số tài liệu,
Chỉ số tr ờngTà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 quanTừ truy
hồi đ ợcTập tài
liệu đã sắp xếpTập tài
liệu tìm kiếmTruy
vấnTruy vấn
Hình 3 : Mô hình bộ công cụ tìm kiếm truyền thống
Trang 22Khi xây dựng cơ sở dữ liệu, nội dung của tập tài liệu được tách thànhcá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ợ choviệ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ôngtin kết hợp với chúng (ví dụ: định danh tài liệu, định danh trường nằm trongtà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ấnbao 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ánhạ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 tinthống kê, tập thu hồi trên có thể được sắp xếp theo thứ tự có liên quan đếnnộ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ìmkiếm được và những thông tin này được sử dụng để tự động thay đổi truyvấ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ếmthông tin
Trang 231.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ịxi thuộc L sẽ tương ứng với một số h(xi) thỏa mãn:
Một trong những hàm băm được đề cập rất sớm và thường xuyêntrong các giáo trình phổ thông là hàm lấy phần dư trong đó các giá trị bămcủa khóa xi được tính theo công thức:
Với m là một số nguyên tố phù hợp, chữ phù hợp ở đây mang ý nghĩalà 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àngnhỏ (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ínhchất vì mọi xi, xj thuộc L ta có: h(xi) = h(xj) khi v à ch ỉ khi xi = xj Tính chấtnày đảm bảo không xảy ra đụng độ như đã nói ở trên, dễ thấy rằng để thỏamã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ămkhi đó 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ơnnữ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ôngphả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ộthà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ó
Trang 24hiệu quả khi thiết kế chương trình Thay vào đó, với việc sử dụng cácphương pháp giải quyết xung đột sẽ được trình bày dưới đây thì các hàmbă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àmbăm cho phép tăng tốc quá trình tìm kiếm những thông tin tương ứng vớimộ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ậpM = {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ớimọ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
Trang 25Nế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ó haihướng để giải quyết, thứ nhất là tránh xung đột bằng cách xây dựng hàmbăm hoàn hảo hoặc cũng có thể tránh xung đột bằng cách mở rộng kíchthước bảng băm Thứ hai là chấp nhận xung đột và áp dụng một số giải phápgiải quyết xung đột Như phần trên đã chứng minh, hướng thứ nhất thực hiệnrất phức tạp và có thể vẫn xảy ra xung đột, nên sang phần sau em sẽ trìnhbà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ườnglà 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áckhóa có thể so sánh được).
Hình 4: Cấu trúc bảng băm
Stop Null
Data Null
Trang 26Giải thuật tìm kiếm và chèn một bản ghi vào bảng băm được tổ chức theophương pháp Chaining:
Giải thuật tìm kiếm một khóa K cho trước trong một mảng m phần tử.Nếu k không có trong bảng, có thể xin cấp phát trong bộ nhớ và K đượcchèn vào bảng.
Trong thuật toán kí hiệu Table[i] chỉ phần tử thứ i của bảng băm (với 0 i m), và chúng có hai giá trị empty và occupied Một phần tử nhận giá trị làoccupied chứa một trường Key, một trường Link, ngoài ra còn có một số
trường khác Giải thuật sử dụng hàm băm h(K).
Hình 5: Giải thuật tìm kiếm và chèn một khóa vào bảng băm
Trang 27Ptr ptrLinkGoto C3
C5 [Insert new key] : if Table = empty Table[i] = occupyed New(Node)
Node.Key K Node.Link Null
Return successfully
* Phương pháp Open Addressing
Phương pháp này sẽ tiến hành kiểm tra nhiều phân tử của bảng băm,việc kiểm tra được thực hiện với từng phần tử một cho đến khi hoặc là khóaK cần tìm được hoặc là tìm thấy một vị trí trống trong bảng băm (void) Ýtưởng của phương pháp này là định ra một số luật, bằng các luật đó với mọikhóa K xác định được một chuỗi các vị trí trong bảng băm mà tại đó K có
thể được chèn vào hay tiến hành kiểm tra, thì được gọi là “dãy thăm dò”.
Cơ chế đơn giản nhất của Open Addressing là thăm dò tuyến tính vớidãy thăm dò được xây dựng như sau:
h(K), h(K) – 1, , 0, m-1,m-2, h(K) + 1
trong đó m là số phần tử của bảng băm.
Dưới đây chúng ta sẽ xem xét giải thuật tìm kiếm và chèn một khóa Kvà bảng băm được tổ chức với cơ chế thăm dò tuyến tính.
Giải thuật:
Giải thuật tiến hành tìm kiếm khóa K cho trước, nếu K không có trong
bảng băm và bảng băm chưa đầy thì K sẽ được chèn vào Kí hiệu Table[i]
Trang 28chỉ phần tử thứ i của bảng băm và giá trị mà nó có thể nhận là emty vàoccupied Một phần tử nhận giá trị occupied chứa một trong trường Key[i]
và có thể có thêm một số trường khác Một biến phụ N chỉ số phần tử của bảng băm có giá trị occupied, N được tăng lên 1 mỗi khi có một khóa mới
được chèn vào Giải thuật sử dụng hàm băm h(K) và sử dụng dãy thăm dò.
L1 [Hash] : I h(K)
L2.[Compare] : if Table[i] = empty goto L4Else if Key[i] = K
Return SuccessfullyL3 [Advance to next] : I:= I-1
If (I < 0 ) I = I+m Goto L2
L4 [Insert] : If (N = m-1) Hash Table full, return Else N = N+1
Table[i] = occupiedKey[i] = K
H×nh 6: Gi¶i thuËt t×m kiÕm vµ chÌn mét kho¸ vµo b¶ng b¨m
Trang 29return
Xây dựng dãy thăm dò bằng cơ chế thăm dò tuyến tính như trên có ưuđiểm là đơn giản, nhưng hiệu năng của hệ thống sẽ giảm nhanh chóng khi hệsố tải tăng, vì thế mà cơ chế thăm dò hiện nay hầu như chỉ dùng để minhhọa cho ý tưởng của phương pháp Open – Addressing, thay vào đó người tasử dụng cơ chế băm kép với việc sử dụng hai hàm băm thay vì một như ởtrên Một hàm dùng để tính địa chỉ gốc ( là địa chỉ của K nếu khe tương tựvới K trong bảng băm chưa có phần tử nào), một để tính giá trị ra tăng(khoảng cách giữa địa chỉ thật và địa chỉ gốc).
1.4.2 Cây cân bằng nhiều đường B – Tree1.4.2.1 Định nghĩa cây B- Trees
Cây B- Trees là sự mở rộng của cây nhị phân mà mỗi nút của nó chứađựng nhiều khóa Một cây B-Trees cấp m thỏa mãn những tính chất sau:
Mọi nút có ít hơn hoặc bằng m con
Mọi nút ngoại trừ gốc và các nút lá có nhiều hơn hoặc bằng m/2
Gốc có ít nhất là 2 con (trừ khi nó là nút lá) Tất cả các lá có cùng một cấp
Một nút không phải lá với k con chứa đựng k-1 khóa
Trang 30Một trang chứa đựng j khóa và j+1 con trỏ có thể được diễn tả như sau
Trong đó K1 < K2 < K3 … < Kj và P0 trỏ tới cây con chứa đựng khóa K < K1, Pj trỏ tới cây con chứa đựng khóa K > Kj, và Pi (0 < i < j ) trỏ tới cây con có các khóa K sao cho: Ki < K < Ki+1.
*Tìm kiếm trong cây B- Trees: Sau khi một trang được tìm kiếm và nạp
vào trong bộ nhớ trong, ta tiến hành tìm kiếm giữa các khóa K1, K2, Kj nếu
khóa tìm kiếm bằng với Ki thì quá trình tìm kiếm hoàn thành Ngược lại, nếu
khóa nằm giữa Ki và Ki+1 thì trang trỏ bởi Pi sẽ được tòm và nạp và quá trìnhsử lý được tiếp tục nếu khóa nhỏ hơn K1 thì sử dụng P0 còn nếu khóa lớn
hơn kj thì sử dụng pj Nếu Pi là một con trỏ rỗng, thì việc tìm kiếm khôngthành công.
Thuật toán chèn cũng rất đơn giản Trong hầu hết các trường hợp,khóa mới sẽ được chèn vào trong một nút lá tương ứng, nhưng nếu nút lá đóđầy thì phải tách ra làm hai, và khóa ở giữa của nút phải được chèn vàotrong nút cha
Việc chèn này có thể gây cho nút cha có quá nhiều khóa và cũng phảitách ra làm hai, quá trình tách này có thể lan truyền tới gốc Nếu nút gốcphải tách ra thì phải tạo ra một nút gốc mới với chỉ một giá trị khóa K[m/2],thuật toán chèn vẫn luôn giữ được các thuộc tính của cây B- Tree.
Để đảm bảo được thuộc tính của cây trong thuật toán xóa ta phải xử línhiều phép lan truyền trên cây, do không có đủ thời gian, thuật toán lại quáphức tạp mà hiện nay đã có thuật toán xóa mới trên cây B+ -Tree rất đơngiản nhưng vẫn giữ được tính chất của cây B-Tree Em xin không trình bày
P0, K1, P1, K2,………, Pj – 1, Kj, Pj
P0, K1,……, Km/2 -1 , Pm/2 -1 Pm/2 , Km/2 +1, Pm/2 + 1,……, Km , Pm
Trang 31thuật toán xóa ở đây, mà em trình bày thuật toán xóa của cây B+ - Tree ởphần sau.
1.4.2.2 Cây B* - Tree
Cây B* - Tree giống với cây B-Tree ban đầu, tuy nhiên mỗi nút chứa ítnhất 2/3 m khóa (m là số lượng khóa lớn nhất mà mỗi nút có thể chứa được).Thuộc tính của cây B*- Tree như sau:
Mọi nút có ít hơn hoặc bằng m con
Mọi nút ngoại trừ gốc và lá có nhiều hơn (2m-1)/3 Gốc có ít nhất 2 con và nhiều nhất 2[(2m-2)/3] +1 con Tất cả lá có cùng cấp bậc
Nút không phải lá với k con chứa đựng k-1 khóa
Tuy cây B* - Tree có thể làm cho chiều cao của cây giảm nhưng thuậttoán chèn vào xóa lại rất phức tạp, mỗi lần xử lý ta không chỉ chỉnh sửa nútcha của nút hiện thời mà còn phải duyệt cả nút anh của nó nữa Có nghĩa là,nếu nút cần chèn đã đầy, ta duyệt nút anh của nó, nếu không đầy thì tachuyển dữ liệu của nút sang nút anh, còn nếu cả hai nút cùng đầy thì ta phảitách cả hai nút đó ra Do tính chất phức tạp của thuật toán mà ta xin khôngtrình bày ở đây.
Trang 32Thông thường ta phải thêm một số loại dữ liệu đi cùng với khóa trongcây B-Tree, ví dụ như địa chỉ của khóa trong dữ liệu, tần xuất củakhóa vv.Cây B+- Trees là một biến thể của cây B-Trees, trong đó các khóatại nút lá sẽ được kết hợp với dữ liệu của nó,và một vài khóa được sao chéplên cấp bậc cao hơn Một nút không phải lá trong B+- Tree có dạng
Trong đó K1 là bản sao khóa đầu tiên của nút trỏ bởi P1, K2 là khóa đầutiên của nút trỏ bởi P2 vv Cây con trỏ tới bởi Pi chứa đựng tất cả các khóaK: Ki K<Ki+1 cây con trỏ tới bởi P0 chỉ chứa đựng các khóa K<K1, và câycon trỏ tới Pj chỉ chứa đựng các khóa K Kj.
Nút lá trong cây B+ - Tree được diễn tả như sauTrong đó Di là dữ liệu kết hợp với khóa Ki.
Thuật toán chèn trong cây B+- Tree tương tự như thuật toán chèn trongcây B-Tree thông thường, tuy nhiên khi một nút bị tách thành hai thì khóađầu tiên của nút sau sẽ được sao chép lên nút cha.
Giải thuật chèn trên cây B+ - Tree:
Tìm nút lá nơi khóa sẽ được chèn
chèn khóa và dữ liệu vào vị trí tương trong nút If (nút quá đầy)Then Begin
Trang 33Thuật toán xóa trong cây B+-Trees dễ hơn rất nhiều so với thuật toán xóatrên cây B-Tree Với những đánh giá và phân tích thì thuật toán chèn và xóatrên cây sẽ làm cho các nút trên cây luôn luôn chứa khoảng 68% dữ liệu tốiđa, và thậm chí các nút chỉ tự do khi chúng rỗng.
Giải thuật xóa trên cây B+- Tree
Tìm nút lá chứa khóa bị xóaXóa khóa và dữ liệu của nó từ nútIf (Nút rỗng sau khi xóa)
1.4.2.4 Cây BLink – Trees
Với định nghĩa được nêu ở trên, ta có được đầy đủ những tính chất tối ưucủa cây B+ - Tree, xong ta nhận thấy rằng các trang lá trên cây tạo thành mộtmảng sắp xếp nhưng lại là một mảng rời rạc, vì vậy mà nó gây khó khăn choquá trình tìm kiếm khi mà phạm vi tìm kiếm được nằm trên nhiều hơn haitrang, ví dụ như ta lấy 4 giá trị liền nhau trong một lần truy cập nhưng 4 giátrị này được nằm trên hai lá liền nhau của cây Để khắc phục vấn đề này emxin đưa ra cấu trúc cây BLink – Tree, trong đó mỗi trang có thêm một con trỏtrỏ tới ngay trang liền kề với nó.
Trang 341.4.2.5 Lựa chọn phương pháp lưu trữ dữ liệu tần số
Trong tài liệu các từ thường xuất hiện rất nhiều lần, vì vậy mà hệ thốnglập chỉ mục phải có khả năng lưu trữ dữ liệu tần xuất một cách hiệu quả.Dưới đây em đưa ra một số phương pháp duy trì dữ liệu này cho các khóa:* Mỗi tần xuất có thể được lưu trữ như một khóa trong bảng chỉ mục.Phương pháp này gây lãng phí không gian bộ nhớ và gây phức tạp cho thuậttoán B-Tree
* Dữ liệu tần suất có thể được lưu trữ trong nút cùng với khóa Nhưng dosự giới hạn về kích thước của nút nên chỉ có một số hữu hạn tần xuất đượclưu trong nút.
* Mỗi khóa trong bảng chỉ mục có thể chứa đựng một con trỏ tới một khốilưu trữ dữ liệu tần xuất ở bên ngoài Nó đòi hỏi thời gian truy cập đĩa khimột khóa được thêm vào hay được truy cập đến Kích thước của khối ngoạivi có thể được nhân đôi khi nó trở nên đầy, ít nhất một nửa không gian trongkhối luôn được sử dụng.
* Một vài dữ liệu tần số được lưu cùng với khóa,và khi dữ liệu đẫ được tậphợp đủ, một số trong chúng được gửi ra khối bên ngoài Kỹ thuật này đượcgọi là Pulsing
Hình 9: Cấu trúc cây B+ – Tree ( m = 4)
29 281
D÷ liÖu kÕt hîp víi kho¸
Trang 35CHƯƠNG II
CÁC CÔNG CỤ TÌM KIẾM CƠ BẢN2.1 Thu hồi trang Web
2.1.1 Bộ thu hồi Web
Các Web Crawler có nhiệm vụ thu hồi các trang Web site khác nhautrên Internet về cho bộ Indexer Web Crawler đầu tiên được thiết kế bởiMatthew Gray năm 1993 và được đặt tên là Wanderer Web Crawler có đầuvào là một tập các giá trị khởi tạo URL – S0 Đầu tiên nó đặt S0 trong mộthàng, nơi lưu trữ tất cả các giá trị URL thu được và sắp xếp chúng theo mộtthứ tự ưu tiên nào đó Từ hàng lưu trữ này, Crawler lấy một giá trị URL, tảitrang tương ứng xuống rồi trích tất cả giá trị URL nằm trong trang và đặtchúng vào hàng Quá trình xử lý này được lặp đi lặp lại cho tới khi WebCrawler quyết định dừng Các địa chỉ mới tìm thấy có thể được sử dụngngay để bộ thu hồi Web tìm ra trang Web mới hoặc chúng có thể được lưutrữ vào cơ sở dữ liệu của bộ thu hồi Web để nó lập lịch tìm kiếm sau này.Các Web Crawler xem Internet như một đồ thị với các Site là các đỉnh củađồ thị và duyệt đồ thị theo chiều rộng hoặc chiều sâu để thu thập thông tincần thiết Nó cũng cho phép người sử dụng đăng ký các trang Web của mìnhbằng cách thêm địa chỉ URL của họ vào tập S0 các URL ban đầu Nhờ vậymà các thông tin về trang Web của họ được cập nhật sớm hơn, trước khiWeb Crawler được tìm thấy, Có hai vấn đề mà Web Crawler cần phải đốiphó: Thứ nhất là các trang Web luôn thay đổi, vì thế các trang mà chỉ mụctrỏ đến có thể không còn tồn tại nữa Thứ hai là vấn đề cập nhật lại các trang
Trang 36Web khi chúng đã lỗi thời Web Crawler có thể tìm kiếm hàng triệu trangWeb mỗi ngày Để nghiên cứu một Web Crawler người ta thường tìm hiểucác vấn đề sau:
2.1.2 Chọn lựa các trang
Ở đây, Crawler luôn muốn chọn lọc các trang quan trọng, để thu thậpđược một tập dữ liệu có chất lượng cao, để xem Crawler hoạt động và gợi ýnhư thế nào để thăm các trang tốt , chúng ta đi tìm hiểu vấn đề này.
* Ma trận độ quan trọng
Cho một trang Web P, chúng ta có thể định nghĩa độ quan trọng của trangtheo một trong các cách sau.
1.Mức độ quan tâm: Mục đích đặt ra là thu được các trang liên quan tới nội
dung tìm kiếm của một hoặc là một nhóm người sử dụng Để định nghĩa
được khái niệm này là thông qua mức độ quan tâm Cho một truy vấn Q,
mức độ quan trọng của P được định nghĩa là “độ tương quan văn bản ” giữaP và Q Một cách hình thức hơn, để tính toán độ tương quan giữa các vănbản, đầu tiên chúng ta mô tả mỗi tài liệu (P hoặc Q) như là một véc tơ m
chiều w1, w2 , wm, wi trong véc tơ này diễn tả từ thứ i trong bộ từ vựng.
nếu wi không xuất hiện trong tài liệu thì wi bằng 0, còn nếu xuất hiện wi được
thiết lập để diễn tả ý nghĩa của từ Một cách phổ biến để tính mức độ quan
trọng wi đó là nhân số lần của từ thứ i xuất hiện trong văn bản với nghịch
đảo của lần suất tài liệu (inverse document frequence - IDF) của từ thứ i.IDF bằng 1 chia cho số lần từ đó xuất hiện trong toàn bộ Web Sau đó chúng
Trang 37ta định nghĩa độ tương quan giữa P và Q là tích cosine giữa các véc tơ P và
Q Giả sử truy vấn Q diễn tả sự quan tâm của người sử dụng, thì ma trận nàychỉ ra trang P liên quan tới nó như thế nào.Chúng ta sử dụng kí hiệu IS(P) đểchỉ độ quan trọng ma trận này.
Lưu ý rằng nếu chúng ta không sử dụng toán hạng IDF trong việctónh độ tương quan thì độ quan trọng của một trang có thể được tính toánvới thông tin cục bộ, ví dụ như là P và Q Còn nếu sử dụng số hạng IDF thìchúng ta cần thông tin toàn cục Trong suốt quá trình xử lý Crawling chúngta không có toàn bộ tập tài liệu vì thế chúng ta phải ước lượng thừa số IDFtừ các trang đã được Crawling, hoặc từ vài số hạng được tính toán từ trước.Chúng ta sử dụng IS (P) chỉ độ quan trọng của trang P được tính theo cáchtrên để phân biệt với độ quan trọng thông thường IS(P) (được tính toán saukhi toàn bộ trang Web đã được tải).
2 Mức độ phổ biến: Một cách để định nghĩa mức độ phổ biến là sử dụng
tổng số Backlink của một trang ( thuật ngữ backlink ở đây được định nghĩa
số các liên kết trỏ tới trang đã cho) Vì thế các Backlink của trang P là tậphợp tất cả các liên kết trên các trang trỏ tới P Khi sử dụng các giá trị
backlink như một ma trận đánh giá mức độ phổ biến thì giá trị đánh giá mức
độ quan trọng của trang P là số các liên kết tới P xuất hiện trên toàn bộ Web.Chúng ta sử dụng ký hiệu IB(P) để phân biệt cách tính này với cách tính độquan trọng khác Bằng trực giác ta thấy rằng một trang Web P được nhiềutrang Web khác liên kết tới thì sẽ quan trọng hơn các trang Web khác liênkết tới thì sẽ quan trọng hơn các trang Web ít được các trang Web khác đềcập tới Trên Web IB(P) thường được sử dụng để sắp xếp kết quả tìm kiếm
Trang 38tới người sử dụng cuối sao cho các trang đầu tiên giống với nội dung đangđược quan tâm nhất Lưu ý rằng đánh giá IB(P) đòi hỏi phải tính tổng của
các backlink trên toàn bộ Web Một Crawler có thể ước lượng giá trị này với
IB’(P) - số lượng các liên kết đã được xem xét đến trang P.
3 Theo vị trí của trang : Cách xác định vị trí quan trọng của trang P là
một hàm tính theo vị trí của nó IL(P), chứ không phải là nội dung của nó.
Nếu URL u dẫn tới trang P, thì IL (P) là một hàm của u Cho ví dụ URL kết
thúc với “.com” có thể được cho rằng phổ biến hơn các URL kết thúc ở dạngkhác, hoặc URL chứa đựng xâu “home” có thể được quan tâm URL khác.Ma trận vị trí thỉnh thoảng cũng cho rằng các URL với ít đường gạch chéosẽ thường dùng hơn các URL có nhiều đường gạch chéo Các ma trận vị trícó thể được xem xét như là một trường hợp đặc biệt của ma trận độ quantâm, xong chúng ta có thể liệt kê ra đây một cách riêng biệt bởi chúng rất dễdàng để đánh giá Cụ thể là tất cả các ma trận vị trí đề xuất ở đây mang tínhcục bộ, bởi ta có thể ước lượng một cách đơn giản trên giá trị URL u Matrận đánh giá mức độ của chúng ta có thể được kết hợp trong nhiều cáchkhác nhau Dựa vào vị trí độ quan trọng của trang Web không chỉ phụ thuộcvào nội dung trang Web mà còn thể hiện ở địa chỉ URL của chúng
Ví dụ chúng ta có thể định nghĩa ma trận:
IC(P) =k1 IS (P) + k2 IB(P) + k3 IP (P) với k1,k2,k3 là các hằng số.
* Các mô hình thu hồi
Vấn đề đặt ra ở đây là thiết kế một Crawler để có thể thăm các trang quantrọng dựa trên một ma trận đánh giá mức độ quan trọng nào đó Dựa trênnhững ước lượng mà Crawler sẽ phải gợi ý các trang quan trọng để tìm vànạp tiếp theo Dưới đây là hai mô hình phổ biến nhất của một bộ Crawler:
Trang 39+ Thu hồi và dừng: Ở mô hình này, Crawler C bắt đầu tại trang P0 vàdừng sau khi đã thăm K trang ( trong đó K là một số không đổi xác định sốlượng các trang Crawler sẽ tải trong một quá trình thu hồi) Theo định nghĩanày một Crawler hoàn hảo sẽ thăm các trang R1, R2, , Rk trong đó R1 cógiá trị quan trọng cao nhất, R2 có giá trị quan trọng cao thứ 2 Chúng ta cóthể gọi các trang R1, Rk là các trang nóng Còn đối với K trang được thămbởi Crawler thực sự sẽ chỉ chứa đựng M K trang với sự sắp xếp cao hơnhoặc bàng Rk , lưu ý rằng chúng ta cần biết sự sắp xếp chính xác của tất cảcác trang để thu được giá trị M, rõ ràng sự ước lượng này là không thể chotới khi chúng ta tải toàn bộ các trang xuống và có một bức tranh toàn cảnhvề Web.
Ta định nghĩa hiệu suất thực hiện của Crawler C là PCS(C) = (M.100)/K.Khả năng thực hiện của các Crawler lí tưởng là 100% Crawler quản lý việcthăm toàn bộ các trang một cách ngẫu nhiên và có thể thăm lại chúng, sẽ cóhiệu suất là (K 100 )/T, trong đó T là tổng số lượng các trang trên Internet,sác xuất thăm trang nóng là K/T).Vì vậy số lượng mong đợi của các trangmong muốn khi Crawler dừng là K2/ T
+ Thu hồi và dừng với ngưỡng: Giả sử rằng Crawler thăm K trang Bây
giờ chúng ta đưa ra một giá trị mục tiêu G về độ quan trọng và bát kỳ trangnào có mức độ quan trọng cao hơn G được xem là nống Giả sử rằng tổng sốcác trang nóng là H Hiệu suất Crawler, PST(C), là phần trăm của các trangnóng đã được thăm sau khi Crawler dừng Nếu K<H thì một Crawler lýtưởng sẽ có hiệu suất 100% Một Crawler ngẫu nhiên hoàn hảo khi thăm lạicác trang sẽ mong đợi thăm(H/T).K trang nóng khi nó dừng Vì thế hiệu suất
Trang 40của nó là(K.100)/T Chỉ khi Crawler ngẫu nhiên thăm tất cả T trang thì hiệusuất mong đợi là 100%
* Ma trận thứ tự
Một Crawler lưu trữ một hàng các giá trị URL mà nó đã tìm thấy trongsuốt quá trình crawl, mà phải lừa chọn từ hàng này một giá trị URL đượcthăm tiếp theo Ma trận thứ tự sẽ được Crawler sử dụng cho sự lựa chọn này,
ví dụ nó chọn URL u sao cho giá trị thứ tự của nó là cao nhất trong số tất cả
các URL trong hàng Ma trận thứ tự có thể chỉ sử dụng các thông tin đượctìm thấy bởi Crawler Ma trận thứ tự nó có cùng nghĩa với ma trận đánh giámức độ quan trọng Chẳng hạn chúng ta đang tìm kiếm các trang có IB(P)cao, thì cũng tương tự như ta chọn chúng theo thứ tự của giá trị IB’(P) (matrận PageRank).
Ma trận vị trí có thể được sử dụng một cách trực tiếp để lựa chọn thứtự, do URL của trang P cho ta ngay giá trị IL(P) Tuy nhiên, với các ma trậntương quan, nó khó hơn nhiều để đưa ra một ma trận thứ tự, khi chúng tavẫn chưa tìm thấy P.
2.2 Lưu trữ
Từ hình 3 cho chúng ta thấy kho lưu trữ các trang là một hệ thống lưutrữ mở rộng để quản lý tập hợp các trang Web Kho lưu trữ sẽ thực hiện haichức năng cơ bản Thứ nhất nó cung cấp một giao diện để Crawler lưu trữcác trang Thứ hai, nó phải cung cấp cách truy cập hiệu quả để các mô đunchỉ mục và mô đun phân tích tập hợp sử dụng cho việc tìm kiếm các trang Một kho lưu trữ và quản lý một tập rất lớn các đối tượng dữ liệu, ởđây chính là các trang Web Tuy nhiên một kho lưu trữ Web không phải