4. Nội dung luận văn
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 ớt nhấ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ật
toỏ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ỳt cha 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ỡ ta chuyể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ải tỏ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ụng trỡnh bày ở đõy. 1.4.2.3 Cõy B+ - Tree – Tree ( m = 4) 29 281 6 12 19 99 132 170 308 322 351 369 31 32 35 99 100 132 141 147 154 170 216 272 Dữ liệu kết hợp
Thụng thường ta phải thờm một số loại dữ liệu đi cựng với khúa trong cõy B-Tree, vớ dụ như địa chỉ của khúa trong dữ liệu, tần xuất của khúa...vv.Cõy B+- Trees là một biến thể của cõy B-Trees, trong đú cỏc khúa tạ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ộp lờ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 đầu tiờ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úa K: 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õy con 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ư sau Trong đú 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 trong cõ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
Tỏch nỳt thành hai
Chốn khúa đầu tiờn của nỳt sau lờn cha End
P0, K1, P1, K2,………,Pj – 1, Kj, Pj
Thuậ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úa trờ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úa trờ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úa Xúa khúa và dữ liệu của nú từ nỳt If (Nỳt rỗng sau khi xúa)
Then begin
Giải phúng nỳt
Xúa cặp(Ki, Pi ) cho nỳt này trong nỳt cha End
Với những tớnh chất của mỡnh cõy B+ - trees đó trở thành một cấu trỳc tối ưu trong cỏc ứng dụng cơ sở dữ liệu. Điều khiển cõy B+ -Tree cũng dễ dàng hơn rất nhiều so với cõy B-Tree, và nú cũng rất dễ dàng làm cho cỏc nỳt cú cựng một cấp bậc.
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 ưu củ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ột mả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 cho quỏ trỡnh tỡm kiếm khi mà phạm vi tỡm kiếm được nằm trờn nhiều hơn hai trang, 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 em xin đư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ú.
1.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ống lậ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ật toỏ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 do sự 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 được lư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ối lưu trữ dữ liệu tần xuất ở bờn ngoài. Nú đũi hỏi thời gian truy cập đĩa khi một khúa được thờm vào hay được truy cập đến. Kớch thước của khối ngoại vi cú thể được nhõn đụi khi nú trở nờn đầy, ớt nhất một nửa khụng gian trong khố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ập hợp đủ, một số trong chỳng được gửi ra khối bờn ngoài. Kỹ thuật này được gọi là Pulsing.
Hỡnh 9: Cấu trỳc cõy B+ – Tree ( m = 4)
29 281
6 12 19 99 132 170 308 322 351 369
31 32 35 99 100 132 141 147 154 170 216 272
Dữ liệu kết hợp với khoá
CHƯƠNG II
CÁC CễNG CỤ TèM KIẾM CƠ BẢN 2.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 nhau trờn Internet về cho bộ Indexer. Web Crawler đầu tiờn được thiết kế bởi Matthew Gray năm 1993 và được đặt tờn là Wanderer. Web Crawler cú đầu vào là một tập cỏc giỏ trị khởi tạo URL – S0. Đầu tiờn nú đặt S0 trong một hà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ột thứ tự ưu tiờn nào đú. Từ hàng lưu trữ này, Crawler lấy một giỏ trị URL, tải trang tương ứng xuống rồi trớch tất cả giỏ trị URL nằm trong trang và đặt chỳng vào hàng. Quỏ trỡnh xử lý này được lặp đi lặp lại cho tới khi Web Crawler quyết định dừng. Cỏc địa chỉ mới tỡm thấy cú thể được sử dụng ngay để bộ thu hồi Web tỡm ra trang Web mới hoặc chỳng cú thể được lưu trữ 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 tin cần thiết. Nú cũng cho phộp người sử dụng đăng ký cỏc trang Web của mỡnh bằng cỏch thờm địa chỉ URL của họ vào tập S0 cỏc URL ban đầu. Nhờ vậy mà cỏc thụng tin về trang Web của họ được cập nhật sớm hơn, trước khi Web Crawler được tỡm thấy, Cú hai vấn đề mà Web Crawler cần phải đối phú: Thứ nhất là cỏc trang Web luụn thay đổi, vỡ thế cỏc trang mà chỉ mục trỏ đế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
Web khi chỳng đó lỗi thời. Web Crawler cú thể tỡm kiếm hàng triệu trang Web mỗi ngày. Để nghiờn cứu một Web Crawler người ta thường tỡm hiểu cỏ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 trang theo 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ữa P và Q. Một cỏch hỡnh thức hơn, để tớnh toỏn độ tương quan giữa cỏc văn bả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
ta đị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ày chỉ 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ệc
túnh độ tương quan thỡ độ quan trọng của một trang cú thể được tớnh toỏn vớ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ỳng ta 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ố IDF từ 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ỏch trờn để phõn biệt với độ quan trọng thụng thường IS(P) (được tớnh toỏn sau khi 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ập hợ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ều trang Web khỏc liờn kết tới thỡ sẽ quan trọng hơn cỏc trang Web khỏc liờn kế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
tớ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ạng khỏ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ộo sẽ 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 độ quan tõ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ớnh cục bộ, bởi ta cú thể ước lượng một cỏch đơn giản trờn giỏ trị URL u. Ma trận đỏnh giỏ mức độ của chỳng ta cú thể được kết hợp trong nhiều cỏch khỏc nhau. Dựa vào vị trớ độ quan trọng của trang Web khụng chỉ phụ thuộc và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 quan trọng dựa trờn một ma trận đỏnh giỏ mức độ quan trọng nào đú. Dựa trờn nhữ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:
+ 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ĩa nà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ăm
bởi Crawler thực sự sẽ chỉ chứa đựng M≤K trang với sự sắp xếp cao hơn
hoặ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ể cho tớ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ảnh về 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ệc thă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 trang mong 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ỳ trang nà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 trang nú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ại cỏc trang sẽ mong đợi thăm(H/T).K trang núng khi nú dừng. Vỡ thế hiệu suất
của nú là(K.100)/T. Chỉ khi Crawler ngẫu nhiờn thăm tất cả T trang thỡ hiệu suấ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 trong suốt quỏ trỡnh crawl, mà phải lừa chọn từ hàng này một giỏ trị URL được thă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 được tỡm thấy bởi Crawler. Ma trận thứ tự nú cú cựng nghĩa với ma trận đỏnh giỏ