1. Trang chủ
  2. » Luận Văn - Báo Cáo

tìm hiểu về web crawler và xây dựng website tổng hợp thông tin

61 1,4K 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 61
Dung lượng 1,96 MB

Nội dung

tìm hiểu về web crawler và xây dựng website tổng hợp thông tin

Trang 1

I

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Nguyễn Minh Phúc

TÌM HIỂU VỀ WEB CRAWLER VÀ XÂY DỰNG

WEBSITE TỔNG HỢP THÔNG TIN

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành : Công nghệ thông tin

HÀ NỘI - 2010

Trang 2

II

HÀ NỘI - 20< hai số cuối của năm bảo vệ KLTN>

(chữ hoa, 12pt, đậm, căn giữa)

LỜI CẢM ƠN

Tôi xin bày tỏ lòng biết ơn sâu sắc của mình đến thầy Hoàng Xuân Huấn, thuộc

bộ môn Khoa học máy tính, khoa Công nghệ thông tin, trường Đại học Công Nghệ, ĐHQGHN Trong quá trình thực hiện khóa luận, thầy đã nhiệt tình giúp đỡ, giải đáp các thắc mắc tạo động lực giúp tôi hoàn thành khóa luận tốt nghiệp này

Tôi cũng xin được bày tỏ lời cảm ơn tới các thầy cô trong bộ môn nói riêng và trong khoa Công nghệ thông tin nói chung đã nhiệt tình giảng dạy để giúp chúng tôi có được như ngày hôm nay

Cuối cùng là lời cảm ơn tới gia đình, bạn bè những người luôn sát cánh bên tôi những lúc khó khăn, luôn ủng hộ giúp đỡ để tôi hoàn thành khóa luận này

Trang 3

III

TÓM TẮT NỘI DUNG

Do nhu cầu thu thập thông tin của con người ngày càng tăng, lượng thông tin trên internet ngày càng phong phú nên vấn đề tổng hợp thông tin ngày càng trở nên bức thiết Với một lượng dữ liệu lớn việc thu thập bằng tay tốn rất nhiều công sức, và không đạt hiệu quả cao, chính vì thế cần một công nghệ có thể tổng hợp thông tin một cách tự động và trình thu thập web đã ra đời

Đề tài khóa luận đặt ra vấn đề tìm hiểu về trình thu thập thông tin trên web và bước đầu sẽ xây dựng một ứng dụng có khả năng tổng hợp thông tin tự động từ trang báo điện tử lớn là trang Dân trí (http://dantri.com.vn) Ứng dụng được viết bằng ngôn ngữ lập trình PHP tương tác với cơ sở dữ liệu mySQL và được xây dựng dựa trên các tiêu chí: tốc độ thu thập nhanh, cơ sở dữ liệu gọn nhẹ, đảm bảo tính toàn vẹn của tài liệu gốc

Trang 4

IV

MỤC LỤC

MỞ ĐẦU 1

CHƯƠNG 1 TÌM HIỂU VỀ TRÌNH THU THẬP WEB 3

1.1 GIỚI THIỆU VỀ TRÌNH THU THẬP WEB 3

1.2 CÁCH XÂY DỰNG MỘT HẠ TẦNG THU THẬP 4

1.2.1 Frontier 6

1.2.2 Lược sử và kho lưu trữ trang 7

1.2.3 Cách lấy trang 8

1.2.3.1 Tiêu chuẩn loại trừ robot 9

1.2.4 Bóc tách trang 10

1.2.4.1 Tiêu chuẩn trích xuất URL 11

1.2.4.2 Mô hình thẻ HTML dạng cây 12

1.2.5 Trình thu thập đa luồng 13

1.3 CÁC CHIẾN LƯỢC THU THẬP DỮ LIỆU 15

1.3.1 Chiến lược thu thập dữ liệu theo chiều sâu 16

1.3.2 Chiến lược thu thập dữ liệu theo chiều rộng 16

1.3.3 Chiến lược thu thập dữ liệu theo ngẫu nhiên 17

1.3.4 Chiến lược thu thập dữ liệu theo lựa chọn tốt nhất ngây thơ .17

1.4 ĐÁNH GIÁ CỦA TRÌNH THU THẬP 19

1.4.1 Độ quan trọng của trang web 20

1.4.2 Phân tích tổng quát 21

1.4.2.1 Thước đo độ chính xác 22

1.4.2.2 Thước đo độ hoàn chỉnh 22

Trang 5

V

CHƯƠNG 2 XÂY DỰNG WEBSITE TỔNG HỢP THÔNG TIN 25

2.1 CÁC KIẾN THỨC NỀN TẢNG 25

2.1.1 Mạng toàn cầu 25

2.1.2 Giao thức truyền tải siêu văn bản 28

2.1.3 Ngôn ngữ đánh dấu siêu văn bản 28

2.2 CÁC CÔNG NGHỆ LIÊN QUAN 30

2.2.1 Ngôn ngữ lập trình PHP 30

2.2.1.1 Biểu thức chính quy 31

2.2.1.2 Các hàm xử lý chuỗi 34

2.2.1.2.1 Tìm kiếm chuỗi trong chuỗi 34

2.2.1.2.2 Tìm vị trí của chuỗi con 34

2.2.1.2.3 Hàm so sánh chuỗi 34

2.2.1.2.4 Kiểm tra chiều dài của chuỗi 35

2.2.2 MySQL 35

2.2.3 Một số công nghệ và tiện ích khác 37

2.2.3.1 Add-ons firebug của firefox 37

2.2.3.2 Ajax 37

2.3 PHÂN TÍCH 38

2.3.1 Cấu trúc bài viết trong trang báo điện tử 38

2.3.2 Các cách thu thập bài viết 42

2.3.2.1 Cách làm truyền thống 42

2.3.2.1.1 Các bước thực hiện 42

2.3.2.1.2 Nhận xét 44

2.3.2.2 Cách làm mới 45

2.3.2.2.1 Các bước thực hiện 45

2.3.2.2.2 Nhận xét 46

Trang 6

VI

2.4 THIẾT KẾ 47

2.4.1 Cấu trúc cơ sở dữ liệu 47

2.4.1.1 Danh sách các bảng 47

2.4.1.2 Chi tiết các bảng 47

2.4.2 Phần quản trị cơ sở dữ liệu 49

2.4.3 Phần giao diện chính trang web 50

CHƯƠNG 3: KẾT LUẬN 50

3.1 CÁC KẾT QUẢ ĐÃ ĐẠT ĐƯỢC 51

3.2 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 51

TÀI LIỆU THAM KHẢO 53

Trang 7

VII

BẢNG DANH MỤC CÁC HÌNH MINH HỌA

Hình 1: Một vòng thu thập web cơ bản 5

Hình 2: Mô hinh cây tương ứng với một mã nguồn HTML 12

Hình 3: Một mô hình trình thu thập đa luồng 14

Hình 4: Hình minh họa về độ hoàn chỉnh và độ chính xác 21

Hình 5: Hình mình họa thu hồi mục tiêu 23

Hình 6: So sánh giữa thuật toán breadth-first và naive best-first 24

Hình 7: World wide web 26

Hình 8 Tương tác client và server 28

Hình 9: Add-ons firebug của trình duyệt firefox 37

Hình 10: Cấu trúc phần bài viết 39

Hình 11: Cấu trúc phần chuyên mục 40

Hình 12: Cấu trúc phần trang chủ 41

Hình 13: Giao diện phần quản trị cơ sở dữ liệu 49

Hình 14: Giao diện của trang web tổng hợp thông tin 50

Trang 8

VIII

Trang 9

Theo guồng quay của cuộc sống, thế giới internet ngày càng rộng lớn và phong phú hơn Cứ mỗi phút trôi qua có thêm hàng triệu trang web được sinh ra để làm giàu cho vốn tài nguyên tri thức của nhân loại Nhưng cũng chính vì thế mà việc chọn lọc, tìm kiếm thông tin lại trở nên khó khăn hơn Với kho dữ liệu đồ sộ như internet, vấn

đề trích xuất và tổng hợp thông tin đã trở thành vấn đề thực sự cấp thiết hiện nay Nếu giải quyết được vấn đề này chúng ta sẽ loại bỏ được một chướng ngại lớn trên con đường tổng hợp thông tin của nhân loại

Đề tài khóa luận đặt ra vấn đề tìm hiểu về trình thu thập thông tin trên web và bước đầu sẽ xây dựng một ứng dụng có khả năng tổng hợp thông tin tự động từ các trang báo điện tử lớn Đề tài nếu thành công sẽ là bước đi không nhỏ giúp cho việc tổng hợp thông tin trở nên đơn giản hơn, giảm được nhiều chi phí công sức so với việc tổng hợp thủ công, và là tiền đề để xây dựng nên một hệ thống máy tìm kiếm, giống như google, cho người Việt Nam

Nội dung của khóa luận sẽ tập trung vào các mục tiêu chính sau:

- Đưa ra được một cái nhìn tổng quát về trình thu thập web (web crawler)

- Xây dựng một ứng dụng website tổng hợp thông tin có khả năng thu thập các bản tin từ các trang báo lớn như Dân trí

Để giải quyết được các mục tiêu này, khóa luận được chia thành ba chương lớn: Chương 1: Tìm hiểu về trình thu thập web

Trong chương này, chúng ta sẽ lần lượt tìm hiểu các khái niệm cơ bản trong trình thu thập web Phần lớn nội dung trong chương này sẽ đi sâu vào việc tìm hiểu các thành phần cấu thành nên một trình thu thập, các chiến lược thu thập dữ liệu, việc đánh giá của trình thu thập đối với trang web Qua đó chúng ta sẽ có một bức tranh chung

Trang 10

2

về trình thu thập web, và có thể hiểu hơn về các giá trị thực tiễn mà nó mang lại trong đời sống của con người

Chương 2: Xây dựng ứng dụng website tổng hợp thông tin

Phần đầu chương sẽ trình bày về các kiến thức nền tảng và các công nghệ liên quan, ở phần tiếp theo là các đánh giá phân tích và các giải pháp nhằm nâng cao hiệu suất của trình thu thập, phần cuối chương là việc hiện thực hóa ứng dụng thông qua việc xây dựng hệ thống cơ sở dữ liệu và thiết kế giao diện website Cũng trong phần này tôi sẽ nêu ra hai cách thu thập thông tin Một là cách làm phổ biến hiện nay tôi gọi

là cách làm truyền thống, một là cách làm mới tôi tìm ra Cách làm mới này tối ưu hơn

và có thể giải quyết được các hạn chế trong cách làm truyền thống

Chương 3: Kết luận

Phần kết luận cũng là phần cuối của khóa luận sẽ nhìn lại những điều đã làm được trong khóa luận này, nêu lên những vấn đề còn vướng mắc, từ đó đề ra hướng phát triển tiếp theo cho đề tài

Trang 11

3

CHƯƠNG 1 TÌM HIỂU VỀ TRÌNH THU THẬP WEB

1.1 GIỚI THIỆU VỀ TRÌNH THU THẬP WEB

Trình thu thập web (Web crawler) là một chương trình khai thác cấu trúc đồ thị của web di chuyển từ trang này qua trang khác Thời kỳ đầu nó có những tên khá tượng hình như bọ web, rô-bốt, nhện và sâu, nhưng ngày nay tên gọi phổ biến nhất là vẫn là trình thu thập web [1] Mặc dù vậy cụm từ ‘thu thập’ không lột tả được hết tốc

độ của những chương trình này, vì chúng có tốc độ làm việc đáng kinh ngạc, có thể thu thập dữ liệu lên đến hàng chục ngàn trang trong vòng một vài phút

Từ thời kỳ đầu, một động lực quan trọng thúc đẩy quá trình phát triển của việc thiết kế trình thu thập web là lấy được nội dung các trang web và thêm chúng hoặc đường dẫn của chúng vào một kho lưu trữ trang – một kiểu kho lưu trữ có thể dùng để phục vụ cho các ứng dụng cụ thể trong công cụ tìm kiếm web (search engine)

Các trình thu thập thường bắt đầu bằng cách chọn một số các đường dẫn (URL) ứng với các trang web sẽ ghé thăm đầu tiên, các trang này được gọi là các trang hạt giống Khi ghé thăm một trang hạt giống, trình thu thập sẽ đọc nội dung trang web, lọc

ra tất cả các siêu liên kết (hyperlink) có trong trang web đó và đưa các URL tương ứng với chúng vào một danh sách gọi là biên giới (frontier) Dựa vào danh sách này, trình thu thập tiếp tục quá trình duyệt đệ quy để ghé thăm tất cả các URL chưa được duyệt Quá trình này chỉ dừng lại khi trình thu thập đã thu thập đủ số trang yêu cầu hoặc frontier là rỗng, tức là không còn URL để duyệt Tuy mô tả này có vẻ đơn giản nhưng đằng sau chúng là khá nhiều vấn đề hóc búa liên quan đến kết nối mạng, bẫy nhện, tiêu chuẩn trích xuất URL, chuẩn hóa các trang HTML, bóc tách nội dung trang HTML vv Ở phần sau của khóa luận tôi sẽ lần lượt trình bày đến các vấn đề này và hướng giải quyết của chúng

Sau khi đã có được một danh sách các URL dùng cho việc thu thập, ta sẽ thực hiện quá trình lấy trang Tất cả các trang được lấy một lần và được lưu vào một kho lưu trữ giống như cơ sở dữ liệu của công cụ tìm kiếm, đến đây không cần thu thập thêm Tuy nhiên web là một thực thể năng động với các không gian con liên tục phát triển và thay đổi nhanh một cách chóng mặt, vì thế thông tin phải liên tục được thu thập để giúp các ứng dụng luôn cập nhật, ví dụ như bổ sung các trang mới loại bỏ các trang đã bị xóa, di chuyển hoặc cập nhật các trang bị sửa đổi

Trang 12

4

Các trang web chủ yếu được viết bằng các ngôn ngữ đánh dấu như HTML, XHTML và được nhắm đến đối tượng sử dụng là con người chứ không phải máy tính Các trang web lại chứa đựng nhiều thông tin có ích mà con người có thể muốn thu thập và lưu trữ lại, chính vì thế mà cần phải có những kỹ thuật bóc tách và trích xuất thông tin theo một cơ chế tự động Các kỹ thuật bóc tách dữ liệu (parsing) có thể ở mức đơn giản như việc bóc tách các siêu liên kết, hoặc ở mức phức tạp hơn một chút

là bóc tách bất kỳ phần nội dung nào trong một trang web

Về bản chất, quá trình thu thập web chính là quá trình duyệt đệ quy một đồ thị Các web được xem như một đồ thị với các trang là các đỉnh (node) và các siêu liên kết

là các cạnh Quá trình lấy trang và trích xuất các liên kết bên trong nó tương tự như việc mở rộng tìm kiếm một đỉnh trong đồ thị Việc tìm kiếm này là khác nhau trong các trình thu thập sử dụng chiến lược tìm kiếm khác nhau Phần sau của khóa luận tôi

sẽ trình bày sâu hơn về các chiến lược tìm kiếm và đưa ra các số liệu thống kê để so sánh hiệu suất của các chiến lược tìm kiếm này từ đó rút ra đánh giá về hiệu suất của các trình thu thập

Trình thu thập web là thành phần đầu tiên trong toàn bộ hệ thống search engine Mục đích chung của các hệ thống search engine là số lượng trang web đầu vào đạt giá trị cao nhất có thể, trong đó trình thu thập web làm công việc chính là duy trì cơ sở dữ liệu được đánh chỉ mục, trả về giá trị của bộ thu thập và bộ lập chỉ mục cho hàng triệu truy vấn nhận được từ người dùng Các trang được đánh chỉ mục dựa trên các thuật toán ưu tiên hoặc dựa vào các phương pháp dựa trên kinh nghiệm (heuristic) Ngoài ra, chúng ta có thể sử dụng trình thu thập web để xây dựng các phần mềm tập trung thông tin, các trang web tổng hợp thông tin, dựa trên cơ chế tự động tìm và phát hiện tài nguyên

1.2 CÁCH XÂY DỰNG MỘT HẠ TẦNG THU THẬP

Hình 1 cho ta thấy một chu trình của một trình thu thập web cơ bản [1]

Trang 13

5

Hình 1 : Một vòng thu thập web cơ bản

Trình thu thập chứa một danh sách các URL chưa được thăm gọi là biên giới (frontier) Danh sách được khởi tạo bởi một số các URL hạt giống – các URL này được cung cấp bởi một người dùng hoặc một chương trình khác Mỗi vòng lặp là một quá trình gồm các bước :

- Lấy một URL tiếp theo từ frontier ra để thu thập

- Lấy trang tương ứng với URL thông qua HTTP

- Bóc tách trang vừa lấy để trích xuất ra các URL và các nội dung thông tin cụ thể

- Cuối cùng là thêm các URL chưa thăm vào frontier

Trang 14

6

Trước khi các URL được thêm vào frontier chúng có thể được đánh chỉ mục dựa trên số lượng truy cập vào trang web ứng với URL Quá trình thu thập sẽ chấm dứt ngay khi trình thu thập đạt đủ số lượng trang nhất định hoặc frontier rỗng, đây được gọi là trạng thái kết thúc (dead-end) của trình thu thập

1.2.1 Frontier

Frontier là một danh sách chứa các URL của các trang chưa thăm Trong thuật ngữ tìm kiếm đồ thị, frontier là một danh sách mở các đỉnh chưa được mở rộng Đối với một trình thu thập lớn frontier có thể chứa hàng chục ngàn đến hàng trăm ngàn trang và phải lưu trữ trong ổ cứng Tuy vậy frontier nào cũng có một miền giới hạn nhất định, miền giới hạn này lớn hay nhỏ phụ thuộc vào bộ nhớ của máy tính Khi số lượng URL thu thập được vượt quá giới hạn này chúng ta sẽ cần một cơ chế để loại bỏ các URL ứng với các trang ít quan trọng và giữ lại các URL ứng với các trang quan trọng Lưu ý rằng tốc độ thêm các URL vào frontier nhanh gần bằng tốc độ thu thập thông tin Nó có thể thêm tới 60000 URL ngay khi trình thu thập thu thập dữ liệu của

10000 trang, giả định trung bình mỗi trang có khoảng 7 liên kết

Frontier có thể coi như một hàng đợi làm việc theo cơ chế FIFO (viết tắt của First

In First Out, [6]) nghĩa là vào trước ra trước trong trường hợp chúng ta sử dụng thuật toán tìm kiếm theo chiều rộng để thu thập thông tin Trình thu thập sử dụng chiến thuật tìm kiếm này gọi là trình thu thập theo chiều rộng [5] Các URL được lấy ra thu thập được chọn từ trên xuống dưới trong danh sách và các URL mới được thêm vào đuôi của danh sách Do miền giới hạn của frontier, ta phải đảm bảo các URL chỉ được lấy một lần Để tìm kiếm xem một URL mới được trích xuất đã có trong danh sách chưa là khá phức tạp vì số lượng trang là rất lớn mỗi lần tìm kiếm là một lần chạy vòng for điều này là khá bất cập Vì vậy có một giải pháp là sử dụng một phần bộ nhớ để duy trì một hàm băm với URL là khóa [8] Hàm băm này sẽ sinh ra các giá trị băm tương ứng với mỗi URL Sở dĩ sử dụng hàm băm sẽ tìm kiếm nhanh hơn vì việc so sánh các giá trị băm nhanh hơn nhiều việc so sánh một giá trị với một khối dữ liệu lớn

Hiện nay do bộ nhớ máy tính là rất lớn nên vấn đề về bộ nhớ là không mấy quan trọng so với vấn đề về tốc độ Do vậy, cách sử dụng hàm băm được sử dụng rộng rãi vì tuy là tốn bộ nhớ hơn nhưng tốc độ tìm kiếm lại được cải thiện đáng kể

Khi frontier đạt đến miền giới hạn, thì các trình thu thập theo chiều rộng sẽ làm việc theo cơ chế sau : sau khi đưa một URL ra khỏi frontier để tiến hành quá trình thu

Trang 15

Trong trường hợp trình thu thập nhận thấy frontier là danh sách rỗng (không thể lấy ra các URL tiếp theo để thu thập) thì quá trình thu thập sẽ kết thúc Tuy vậy trường hợp rất hiếm xảy ra vì với một số URL hạt giống và miền giới hạn khá lớn frontier hiếm khi đạt trạng thái rỗng

Nhiều khi một trình thu thập có thể bắt gặp một bẫy nhện (spider trap, [3]) dẫn

nó đến một lượng lớn các URL khác nhau nhưng trỏ đến cùng một trang web Một cách để giảm bớt vấn đề này là hạn chế số lượng trang mà các trình thu thập truy cập

từ một tên miền nhất định Các mã liên kết với frontier có thể đảm bảo rằng trong một chuỗi liên tiếp các URL (khoảng 100 URL) trong frontier sẽ chỉ chứa một URL từ một tên miền máy chủ (ví dụ như www.cnn.com) Như vậy trình thu thập sẽ tốt hơn bởi không truy cập vào cùng một trang quá thường xuyên và các trang được thu thập cũng

có xu hướng đa dạng hơn

1.2.2 Lược sử và kho lưu trữ trang

Lược sử thu thập dữ liệu [1] là một danh sách đánh dấu theo thời gian các URL được lấy bởi trình thu thập Một URL được đưa vào lược sử chỉ sau khi đã trả về các URL bên trong nó Lược sử có thể sử dụng để phân tích và đánh giá thông tin Lược sử được lưu trữ nhằm cung cấp cho một tra cứu nhanh để kiểm tra xem một trang đã được thăm hay chưa Kiểm tra này là khá quan trọng nhằm tránh các trang bị thăm lại và

Trang 16

8

tránh thêm việc thu thập lại các trang này Do kích thước của frontier có hạn và bộ nhớ của máy tính hiện nay là vô cùng lớn nên việc duy trì một lược sử cần thiết nhằm nâng cao hiệu quả hoạt động của trình thu thập Một điều cần chú ý là phải chuẩn hóa URL trước khi đưa vào lược sử

Khi một trang được lấy nó phải được lưu trữ và lập chỉ mục nhằm mục đích phục

vụ cho các ứng dụng sau này (chẳng hạn như công cụ tìm kiếm) Đây là công việc mà một kho lưu trữ trang phải làm Một kho lưu trữ trang ở dạng đơn giản sẽ chứa các trang thu thập theo từng file riêng biệt Trong trường hợp đó, mỗi trang phải đặt trong một tệp tin duy nhất Một cách để làm điều này là đặt mỗi trang URL tương ứng với một chuỗi sau đó sử dụng một vài dạng của hàm băm với xác suất xung đột thấp để mã hóa Giá trị kết quả của hàm băm được sử dụng làm tên của tập tin Ví dụ ta có thể sử dụng hàm băm MD5 [8] cung cấp một mã băm 128 bit cho mỗi URL Giá trị băm 128 bit sau đó được chuyển đổi sang hệ thập lục phân (hecxa) 32 ký tự để lấy ra tên file Ví

dụ nội dung của http://coltech.vnu.edu.vn được lưu trữ trong một tập tin tên là 160766577426e1d01fcb7735091ec584 Bằng cách này chúng ta có độ dài tên tập tin luôn cố định cho dù có bao nhiều URL đi nữa Tất nhiên nếu chỉ cần lưu trữ vài nghìn trang thì ta có thể sử dụng một hàm băm đơn giản hơn Trong một số trường hợp các kho lưu trữ trang cũng có thể dùng để kiểm tra xem một URL đã được thu thập hay chưa trước khi chuyển đổi sang tên tập tin 32 ký tự Trong những trường hợp này có thể bỏ đi cấu trúc dữ liệu lược sử

1.2.3 Cách lấy trang

Để lấy một trang web, chúng ta cần một máy khách HTTP (HTTP client) gửi một yêu cầu HTTP (HTTP request) cho trang đó và đọc các phản hồi [4] Client cần có thời gian trễ để đảm bảo rằng không bị mất thời gian không cần thiết vào các máy chủ chậm hoặc đọc các trang lớn Trong thực tế chúng ta thường hạn chế vấn đề này bằng cách cho client tải về khoảng 10-20 KB đầu tiên của trang Client cần bóc tách được tiêu đề phản hồi cho các mã trạng thái và chuyển hướng Kiểm tra lỗi và xử lý ngoài luồng là rất quan trọng trong quá trình lấy trang vì chúng ta phải đối phó với hàng triệu máy chủ Trong quá trình lấy trang, trình thu thập không thể tự quyết định tài liệu nào được lập chỉ mục và tài liệu nào không, do đó nó lấy tất cả những gì có thể Thậm chí

dù xác định được tài liệu vô ích thì nó cũng đã bỏ ra một chi phí đáng kể cho hoạt động thu thập Tiêu chuẩn loại trừ robot (Robot Exclusion Protocol, [12]) ra đời

Trang 17

9

1.2.3.1 Tiêu chuẩn loại trừ robot

Tiêu chuẩn này cung cấp cho người quản trị Web (Webmaster) một cơ chế xác định các tập tin mà không cần truy cập bằng trình thu thập Để làm được điều này, trình thu thập (robot) duy trì một tập tin có tên là robot.txt [12] trong thư mục gốc của các máy chủ web (ví dụ như http://coltech.vnu.edu.vn/robot.txt) Tệp tin này chứa hoàn toàn nội dung văn bản text (không phải HTML) Robot.txt cho phép Webmaster định ra các thành phần với quyền hạn riêng biệt cho từng robot Nói cách khác thông qua tệp tin này, Webmaster sẽ giao tiếp với robot để điều khiển tác vụ của các robot này Nó gồm 2 trường là trường User-agent và trường Disallow:

- Trường User-agent: cho biết robot nào sẽ bị kiểm soát

- Trường Disallow: cho biết robot có được phép kết nối vào URL hay không

Sau đây là các ví dụ minh họa việc sử dụng file robot.txt [12]:

User-agent:*

Disallow:

Dấu (*) có nghĩa là áp dụng cho mọi robot

Nhưng vì không có tài nguyên nào bị cấm nên tất cả mọi thư mục đều được cho phép

Trang 18

10

Nhược điểm của file robot.txt :

Người ta cho rằng việc liệt kê các trang hoặc các thư mục trong file robot.txt sẽ

là nguyên nhân thu hút sự chú ý và trở thành mục tiêu cho các hacker Thực ra chuẩn loại trừ robot chỉ là dấu hiệu cảnh báo, không phải là biện pháp cấm robot cho nên việc tuân theo hay không hoàn toàn là vấn đề tự nguyện Tuy nhiên vẫn có cách khắc phục:

Tạo một thư mục chứa tất cả các file quan trọng

- Trường Disallow chỉ liệt kê tên thư mục vừa tạo

- Cấu hình server sao cho các trang không chứa đường dẫn đến thư mục này Đáng buồn trên thực tế cách này không đạt được kết quả mong đợi do một trong các nguyên nhân sau :

- Các server có robot không bị cấm có thể dẫn đường các robot bị cấm khác đến những file này

- Các file quan trọng có thể nằm trong log file (file được tự do truy xuất)

- Khi cấu hình lại server, admin có thể ‘quên‘ các thư mục này phải cấm robot!

“canhan.html” trong thư mục “tailieu”

Các robot tìm kiếm khác được dò mọi thứ trừ hai thư mục “tmp” và “private”

Trang 19

11

nội dung có thể là quá trình khai thác hyperlink/URL đơn giản hoặc nó có thể bao gồm quá trình phức tạp hơn như lọc nội dung HTML để phân tích thành mô hình thẻ HTML dạng cây (HTML tag tree) Phân tích nội dung cũng có thể bao gồm các bước chuyển đổi URL được trích xuất thành dạng tiêu chuẩn, loại bỏ những từ ở phần đầu nội dung của trang và lấy các từ còn lại ở phần thân

1.2.4.1 Tiêu chuẩn trích xuất URL

Hàm bóc tách HTML có sẵn cho nhiều ngôn ngữ khác nhau Chúng cung cấp các chức năng để dễ dàng xác định các tag HTML và cặp các giá trị thuộc tính liên quan trong một tài liệu HTML Để trích xuất siêu liên kết URL từ một Trang Web, chúng ta có thể sử dụng các hàm bóc tách để tìm thẻ anchor (thẻ <a>) và lấy các giá trị các thuộc tính href liên quan Trước tiên chúng ta phải chuyển đổi tất cả các đường dẫn URL sang đường dẫn URL tuyệt đối vì có nhiều đường dẫn URL viết không đúng quy chuẩn có thể cùng dẫn tới một trang Điều này là quan trọng để tránh lấy một trang nhiều lần Đây là một số bước điển hình được sử dụng trong thủ tục chuẩn hóa URL:

 Chuyển đổi giao thức và tên máy chủ thành dạng chữ thường

Ví dụ, HTTP://www.COLTECH.vnu.edu.vn chuyển đổi thành

http://www.coltech.vnu.edu.vn

 Loại bỏ phần ‘tham khảo’ trong URL

Ví dụ, http://myspiders.biz.uiowa.edu/faq.html#what chuyển đổi thành http://myspiders.biz.uiowa.edu/faq.html

 Thực hiện mã hóa URL cho một vài những ký tự thường sử dụng như ’~’

Điều này sẽ tránh được việc thu thập lại 1 trang

Ví dụ, http://dollar.biz.uiowa.edu/~pant/ và http://dollar.biz.uiowa.edu/

%7Epant/ là 2 URL cùng dẫn đến một trang

 Đối với một vài URL, thêm ký tự ‘/’ Ví dụ, http://dollar.biz.uiowa.edu và

http://dollar.biz.uiowa.edu/ cùng nối tới một dạng chuẩn Quyết định thêm

‘/’ sẽ cần heuristic trong nhiều trường hợp

 Sử dụng các heuristic để nhận ra các trang web mặc định Những tên file như index.html hoặc index.htm có thể được loại bỏ trong đường dẫn URL với thừa nhận rằng đó là những trang mặc định

 Loại bỏ ’ ’ và đường dẫn trước nó trong phần URL

Ví dụ, đường dẫn /%7Epant/BizIntel/Seeds/ /ODPSeeds.dat được chuyển thành

Trang 20

12

/%7Epant/BizIntel/ODPSeeds.dat

Điều quan trọng là đảm bảo tính nhất quán trong khi áp dụng các luật chuẩn hóa

Có thể hai luật khác nhau lại cho kết quả tốt như nhau miễn là ta áp dụng các luật chuẩn hóa URL một cách nhất quán Trước đây có một vấn đề hóc búa đặt ra cho các trình thu thập là bẫy nhện Kỹ thuật phổ biến của bẫy nhện là tạo ra các cấu trúc đường dẫn sau vô hạn.Ví dụ, http://foo.com/bar/foo/bar/foo/bar/foo/bar

Các URL giả tạo ra bởi bẫy nhện tăng lên cực nhanh Có một cách để ngăn chặn

là giới hạn kích thước URL cỡ 128 hoặc 256 ký tự

1.2.4.2 Mô hình thẻ HTML dạng cây

Các trình thu thập có thể lấy ra giá trị của các URL hoặc một nội dung bất kỳ trong một trang web bằng cách kiểm tra phạm vi thẻ tag HTML chứa chúng Để làm được điều này, trình thu thập có thể sử dụng mô hình thẻ HTML dạng cây và phân tích cấu trúc DOM (Document Oject Model, [8]) của mô hình này Phân tích cấu trúc DOM giúp trình thu thập có thể duyệt các node trên cây này và chỉ lấy ra phần nội dung mà nó cần Hình 2 cho ta thấy một mô hình cây tương ứng với một mã nguồn URL [1]

Hình 2: Mô hình cây tương ứng với một mã nguồn HTML

Trang 21

13

Có thể thấy thẻ <html> là gốc của cây, các thẻ bên trong nó là các node mở rộng,

và dữ liệu text là lá của cây

Trên thực tế, không phải văn bản HTML nào cũng được viết đúng quy chuẩn như

ví dụ trên HTML là ngôn ngữ không phân biệt chữ hoa hay chữ thường (hai thẻ <tr>

và <TR> đều là một) Các phần tử HTML cần có một thẻ mở và một thẻ đóng, tuy nhiên điều này không luôn luôn đúng, có nhiều phần tử không cần thẻ đóng, ví dụ các thẻ <br>, <hr> và <li> Ngoài ra khi lồng nhau, các phần tử HTML cũng không cần thiết phải lồng nhau theo đúng thứ tự (tức là thẻ nào mở trước thì phải đóng sau) Ví

1.2.5 Trình thu thập đa luồng

Mỗi vòng thu thập tuần tự chiếm một lượng lớn thời gian, trong khi đó một trong hai cái là CPU hoặc mạng lại nhàn rỗi: CPU nhàn rỗi (trong khi truy cập mạng) hoặc mạng nhàn rỗi (trong các hoạt động của CPU) Việc xử lý đa luồng với mỗi luồng là một vòng thu thập, có thể giúp cho việc tăng tốc độ hợp lý và sử dụng hiệu quả băng thông sẵn có Hình 3 chỉ ra một phiên bản đa luồng [1] của trình thu thập cơ bản trong hình 1:

Trang 22

14

Hình 3: Một mô hình trình thu thập đa luồng

Mô hình đa luồng là mô hình làm việc gồm nhiều luồng trên cùng một frontier với mỗi luồng là một vòng thu thập Chính vì thế cần một cơ chế đồng bộ để tránh việc xung đột khi các luồng cùng tiến hành quá trình thu thập trên một frontier Cơ chế này như sau:

- Luồng đầu tiên bắt đầu bằng cách khóa frontier để chọn URL tiếp theo cho quá trình thu thập dữ liệu

- Sau khi lấy ra một URL, nó sẽ mở khóa frontier cho phép các luồng tiếp theo truy cập vào frontier

- Frontier lại bị khóa lại để những URL mới được thêm vào

Các bước khóa này là cần thiết để đồng bộ hóa việc sử dụng frontier khi mà frontier bị chia sẻ bởi nhiều vòng thu thập Chú ý rằng một trình thu thập thông thường

sẽ duy trì một cấu trúc dữ liệu lược sử phục vụ cho việc tra cứu nhanh các URL đã

Trang 23

là đặt một luồng một trạng thái chờ khi frontier bị khóa Khi hết thời gian chờ nó sẽ kiểm tra lại frontier Sẽ có một bộ kiểm tra chịu trách nhiệm theo dõi số luồng đang ở trạng thái chờ tại thời điểm hiện tại Chỉ khi tất cả các luồng đều trong trạng thái chờ thì khi đó trình thu thập sẽ dừng lại

1.3 CÁC CHIẾN LƯỢC THU THẬP DỮ LIỆU

Trong phần này chúng ta sẽ thảo luận về một số chiến lược thu thập dữ liệu [5] bao gồm :

- Chiến lược thu thập dữ liệu theo chiều sâu

- Chiến lược thu thập dữ liệu theo chiều rộng

- Chiến lược thu thập dữ liệu theo ngẫu nhiên

- Chiến lược thu thập dữ liệu theo lựa chọn tốt nhất ngây thơ

Như đã nói ở phần trước về bản chất, quá trình thu thập web chính là quá trình duyệt đệ quy một đồ thị Các web được xem như một đồ thị với các trang là các đỉnh (node) và các siêu liên kết là các cạnh Chính vì thế các chiến thuật thu thập dữ liệu cũng được xây dựng dựa trên các thuật toán tìm kiếm trên đồ thị Các thuật toán tìm kiếm trên đồ thị bao gồm:

- Tìm kiếm theo chiều sâu (Depth-First Search): Là thuật toán tìm kiếm bằng cách mở rộng nút đồ thị theo chiều sâu

- Tìm kiếm theo chiều rộng (Breath-First Search): Là thuật toán tìm kiếm bằng cách mở rộng nút đồ thị theo chiều rộng

- Tìm kiếm theo lựa chọn tốt nhất (Best-First Search): Là một thuật toán tìm kiếm tối ưu bằng cách mở rộng nút hứa hẹn nhất theo một quy tắc nào đó

Trang 24

16

1.3.1 Chiến lược thu thập dữ liệu theo chiều sâu

Quá trình thực hiện:

Bước 1: Lấy URL đầu tiên trong danh sách (frontier) để thu thập

- Nếu có qua bước 2

- Nếu không qua bước 5

Bước 2: Lấy trang tương ứng với URL qua HTTP

- Nếu có qua bước 3

- Nếu không quay lại bước 1

Bước 3: Kiểm tra xem trang này đã được được thăm chưa?

- Nếu chưa qua bước 4

- Nếu rồi quay lại bước 1

Bước 4: Đánh dấu trang này đã được thăm Bóc tách trang và tìm các liên kết có trong trang này

- Nếu có, thêm các liên kết vào đầu danh sách Quay lại bước 3

- Nếu không, quay lại bước 1

Bước 5: Kết thúc

1.3.2 Chiến lược thu thập dữ liệu theo chiều rộng

Quá trình thực hiện:

Bước 1: Lấy URL đầu tiên trong danh sách để thu thập

- Nếu có qua bước 2

- Nếu không qua bước 5

Bước 2: Lấy trang tương ứng với URL qua HTTP

- Nếu có qua bước 3

- Nếu không quay lại bước 1

Bước 3: Kiểm tra xem trang này đã được được thăm chưa?

- Nếu chưa qua bước 4

- Nếu rồi quay lại bước 1

Trang 25

17

Bước 4: Đánh dấu trang này đã được thăm Bóc tách trang và tìm các liên kết có trong trang này

- Nếu có, thêm các liên kết vào cuối danh sách Quay lại bước 3

- Nếu không, quay lại bước 1

Bước 5: Kết thúc

1.3.3 Chiến lược thu thập dữ liệu theo ngẫu nhiên

Quá trình thực hiện:

Bước 1: Lấy URL ngẫu nhiên trong danh sách để thu thập

- Nếu có qua bước 2

- Nếu không qua bước 5

Bước 2: Lấy trang tương ứng với URL qua HTTP

- Nếu có qua bước 3

- Nếu không quay lại bước 1

Bước 3: Kiểm tra xem trang này đã được được thăm chưa?

- Nếu chưa qua bước 4

- Nếu rồi quay lại bước 1

Bước 4: Đánh dấu trang này đã được thăm Bóc tách trang và tìm các liên kết có trong trang này

- Nếu có, thêm các liên kết vào cuối danh sách Quay lại bước 3

- Nếu không, quay lại bước 1

Bước 5: Kết thúc

1.3.4 Chiến lược thu thập dữ liệu theo lựa chọn tốt nhất ngây thơ

Chiến lược thu thập dữ liệu theo lựa chọn tốt nhất ngây thơ (Naive Best-First, [1]) sử dụng thuật toán tìm kiếm theo lựa chọn tốt nhất theo quy tắc tính điểm số cho các URL Điểm số của một URL được tính bằng phương pháp độ tương đồng cosin (cosine similarity, [6]) của trang web tương ứng và truy vấn mà người dùng đưa ra Độ tương đồng cosin là phương pháp tính giá trị tương đồng giữa 2 vectơ n chiều bằng cách tìm cosin góc giữa chúng, phương pháp độ tương đồng cosin thường được dùng

Trang 26

vp*vq là tích vô hướng của 2 vectơ; ||v|| là giá trị độ dài Euclid của vectơ v

Nếu độ tương đồng (p,q) = -1 tức là khác nhau tuyệt đối

Nếu độ tương đồng (p,q)= 0 tức là độc lập với nhau

Nếu độ tương đồng (p,q)= 1 tức là chính xác tuyệt đối

0 < độ tương đồng (p,q) < 1 tức là trang p có liên quan đến truy vấn q

-1< độ tương đồng (p,q) < 0 tức là trang p không có liên quan đến truy vấn q Quá trình thu thập dữ liệu dùng trong trình thu thập tuần tự được thực hiện như sau :

Bước 1: Sắp xếp các URL theo thứ tự giảm dần điểm số Lấy ra URL đầu tiên trong danh sách

- Nếu có qua bước 2

- Nếu không qua bước 5

Bước 2: Lấy trang tương ứng với URL qua HTTP

- Nếu có qua bước 3

- Nếu không quay lại bước 1

Bước 3: Kiểm tra xem trang này đã được được thăm chưa?

- Nếu chưa qua bước 4

- Nếu rồi quay lại bước 1

Bước 4: Đánh dấu trang này đã được thăm Bóc tách trang và tìm các liên kết có trong trang này

- Nếu có, thêm các liên kết vào cuối danh sách Quay lại bước 3

- Nếu không, quay lại bước 1

Trang 27

19

Bước 5: Kết thúc

Ngoài ra chiến lược thu thập dữ liệu theo lựa chọn tốt nhất ngây thơ cũng có thể dùng cho trình thu thập đa luồng nhưng độ ưu tiên được tính theo N trong đó N là hàm của số lượng các luồng đang chạy đồng thời Các bước trong quá trình thu thập dữ liệu cũng giống như trên chỉ khác là URL được sắp xếp theo giá trị N giảm dần

Ngoài chiến lược thu thập dữ liệu theo lựa chọn tốt nhất ngây thơ còn có nhiều cách thu thập dữ liệu khác sử dụng thuật toán theo lựa chọn tốt nhất Chúng khác nhau

ở quy tắc tính điểm số cho URL Có thể kể đến một số trình thu thập như tìm kiếm tham ăn (Shark Search), nhện thông tin (InfoSpiders) [1]

1.4 ĐÁNH GIÁ CỦA TRÌNH THU THẬP

Theo một ý nghĩa chung, một trình thu thập có thể dựa vào các đánh giá của mình để lấy các trang ‘tốt’ Tuy nhiên, một trở ngại chính là vấn đề trong việc công nhận những trang ‘tốt’ này Trên thực tế người dùng có thể đưa ra đánh giá sự thích hợp của các trang được thu thập cho phép chúng ta xác định được việc thu thập dữ liệu

có thành công hay không Thật không may, những cuộc thử nghiệm liên quan đến người dùng thực tế để đánh giá các trang web thu thập thường cực kỳ khó thực hiện

Ví dụ quy mô cực lớn của web cho thấy rằng để có được một khái niệm hợp lý của một trình thu thập thông tin hiệu quả cần phải tiến hành một lượng lớn thu thập, nghĩa

là liên quan đến một số lượng lớn người sử dụng

Thứ hai là, thu thập những trang web ‘sống’ sẽ tốn nhiều thời gian Do đó việc thu thập các trang web có thời gian sống ngắn sẽ lãng phí thời gian cho người dùng Chúng ta có thể lựa chọn để tránh thời gian tải bằng cách chỉ trả về cho người dùng kết quả tiêu đề và phần mô tả của tất cả các thu thập nhưng điều này lại giới hạn mức độ thu thập thông tin

Biện pháp để giải quyết vấn đề này là xây dựng các tiêu chí đánh giá cho các trình thu thập Đầu tiên là phải có những tiêu chí đánh giá được độ quan trọng của một trang web Khi đã xác định được những trang web quan trọng và có giá trị, trình thu thập sẽ viếng thăm thường xuyên hơn và sâu hơn Thứ hai là phải có cơ chế phân tích tổng quát để đánh giá các mức độ chính xác và hoàn chỉnh của các trang đã thu thập với truy vấn của người dùng Nhiều khi các trang mà trình thu thập cho là quan trọng

và có giá trị lại chưa chắc mang thông tin mà người dùng cần tìm kiếm Nguyên do của điều này là việc các trang web chuyên về tiếp thị hay quảng cáo luôn luôn tìm cách

Trang 28

20

lọt vào danh sách các trang tuyển chọn của trình thu thập, và qua đó họ có thể giới thiệu sản phẩm của họ đến người dùng Ngược lại, trong đa số các trường hợp, người dùng không muốn tìm các quảng cáo tiếp thị mà chỉ muốn tìm thông tin mà họ quan tâm

1.4.1 Độ quan trọng của trang web

Độ quan trọng của trang web có thể được đánh giá theo một số tiêu chí chung như ([1],[8]):

+ Từ khóa trong tài liệu : Một trang được xem là có liên quan nếu nó chứa một

phần hoặc tất cả từ khóa trong truy vấn

+ Tần số phát sinh : được hiểu là tổng số lần xuất hiện của một chữ hay một

cụm từ của từ khoá trong nội dung một trang Web nào đó Theo sự đánh giá của các chuyên gia, thì tần số phát sinh của một trang Web càng cao sẽ chứng tỏ nội dung của trang Web đó càng liên quan hay càng đề cập nhiều đến những gì nêu trong từ khoá

Do đó, mật độ từ khóa đóng vai trò quan trọng trong việc đánh giá độ quan trọng của một trang Web

+ Thẻ meta và câu lệnh title: Trong nhiều trình thu thập, người thiết kế còn cho

rằng sự xuất hiện các chi tiết hay toàn bộ nội dung của từ khoá càng sớm trong một trang mã HTML thì điều đó chứng tỏ trang đó có thể có chủ đề liên quan càng nhiều đến từ khoá Hậu quả là một trang Web có thể được đánh giá quan trọng hơn nếu các phần hay toàn bộ từ khoá có mặt sớm hơn trong phần mã HTML Như vậy, trong một

số thẻ meta, trình thu thập sẽ đọc nội dung và đánh giá độ quan trọng Các thẻ meta

có nhiều hiệu lực cho việc đánh giá là:

<META name="description" content="(miêu tả ngắn nội dung trang Web)">

<META name="keywords" content="(danh sách từ khoá)">

Với lý do tương tự, nếu câu lệnh <title>(tựa đề của trang Web)</title> không bị

bỏ trống thì độ quan trọng của nó có thể được nâng cao hơn

+ Sự tương đồng với các trang hạt giống: Các trang tương ứng với các URL

hạt giống thường là đơn vị đo cho độ liên quan của các trang đã thu thập Các trang hạt giống được liên kết với lại thành một tài liệu duy nhất Độ quan trọng của một trang web được thu thập được đánh giá bằng độ tương đồng cosin của nó và bộ tài liệu này

Trang 29

21

+ Tính phổ biến của liên kết : Một trình thu thập có thể sử dụng kết quả xếp

hạng các liên kết của các trang như alecxa, Google Page Rank để đưa ra đánh giá về

độ quan trọng của trang Các trang web phân hạng có thể xếp hạng liên kết dựa trên rất nhiều tiêu chí Ví dụ như, alecxa là số lượng truy cập còn google là nội dung, mã nguồn, tên miền vv

+ Số lượng liên kết ngoài: Theo sự đánh giá của nhiều chuyên gia thì nếu một

trang Web được nhiều nơi khác đề cập tới hay mở liên kết tới địa chỉ của nó thì rõ ràng giá trị của trang Web này cao hơn là các trang Web cùng kiểu nhưng lại không có hay

ít được liên kết hay đề cập từ các trang khác Như vậy, các trang Web nào được nhiều trang Web khác liên kết tới (hay đề cập tới) thì chất lượng của nó có thể cao hơn và quan trọng hơn

1.4.2 Phân tích tổng quát

Sau khi đã tính toán được độ quan trọng của trang người ta sẽ dựa vào đó để phân tích xem thông tin trên những tài liệu thu thập được có thực sự hoàn chỉnh (recall) và chính xác (precision) với truy vấn người dùng yêu cầu không Hình dưới đây minh họa cho độ hoàn chỉnh và độ chính xác của thông tin thu được:

Hình 4: Hình minh họa về độ hoàn chỉnh và độ chính xác

Độ chính xác (precision, [6]) và độ hoàn chỉnh (recall, [6]) trong thu thập thông tin phụ thuộc vào kết quả của một truy vấn (hình oval) đối với các tài liệu liên quan (nửa bên trái) và các tài liệu không liên quan (nửa bên phải)

Độ chính xác được định nghĩa là tỉ lệ giữa số lượng các tài liệu liên quan trong các tài liệu thu được (phần bên trái trong hình oval) trên tổng số tài liệu thu được (hình oval) Độ chính xác ứng với mũi tên ngang

Trang 30

22

Độ hoàn chỉnh được định nghĩa là tỉ lệ giữa số lượng các tài liệu liên quan trong các tài liệu thu được (phần bên trái trong hình oval) trên tổng số tài liệu liên quan hiện tại (phần bên trái) Độ hoàn chỉnh ứng với mũi tên chéo

Càng nhiều kết quả đúng (phần phần bên trái trong hình oval càng lớn) thì kết quả càng chính xác và càng hoàn chỉnh

1.4.2.1 Thước đo độ chính xác

Chúng ta sẽ thảo luận một số thước đo độ chính xác [1] :

+ Tỉ lệ thu được : Trong trường hợp chúng ta có điểm số liên quan chúng ta có thể đo được tỉ lệ rõ ràng của những trang tốt tìm thấy Do đó, nếu có 50 trang liên quan được tìm thấy trong 500 trang được thu thập đầu tiên, chúng ta sẽ có tỉ lệ thu được hay

tỉ lệ thu hoạch là 10% của 500 trang

+ Độ liên quan trung bình: Nếu như điểm số liên quan là liên tục thì chúng có thể được tính trung bình trên các trang đã thu thập Đây là một dạng tổng quát hơn tỉ lệ thu hoạch Điểm số có thể được cung cấp thông qua độ tương đồng cosin đơn giản hoặc bộ phân loại huấn luyện Như vậy độ trung bình có thể được tính qua sự tiến bộ của thu thập dữ liệu (100 trang đầu, 200 trang đầu ) Đôi khi độ trung bình được tính trên một cửa sổ của một vài trang web (ví dụ 50 trang mới nhất từ một điểm thu thập thông tin)

1.4.2.2 Thước đo độ hoàn chỉnh

Do các thước đo độ hoàn chỉnh là rất khó tính toán cho nên tôi đã sử dụng một số cách gián tiếp để ước lượng độ hoàn chỉnh Một số cách có thể kể đến như :

+ Thu hồi mục tiêu : Một tập hợp các URL liên quan được chia thành 2 bộ là hạt giống và mục tiêu Trình thu thập bắt đầu từ các trang hạt giống và thu hồi các trang mục tiêu Việc thu hồi mục tiêu được tính như sau:

Ngày đăng: 17/02/2014, 23:13

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Gautam Pant, Padmini Srinivasan, Filippo Menczer. Crawling the Web. Web Dynamics 2004, pp 153-178 Sách, tạp chí
Tiêu đề: Crawling the Web
[2] Sriram Raghavan, Hector Garcia-Molina. Crawling the Hidden Web. Computer Science Department, Stanford University, USA 2001 Sách, tạp chí
Tiêu đề: Crawling the Hidden Web
[3] Soumen Chakrabarti. Mining the Web: Discovering knowledge from hypertext data. Elsevier Science, Morgan Kaufmann Publishers 2003 Sách, tạp chí
Tiêu đề: Mining the Web: Discovering knowledge from hypertext data
[4] Hồ Đắc Phương. Mạng máy tính. NXB Đại học Quốc gia Hà Nội 2007 Sách, tạp chí
Tiêu đề: Mạng máy tính
Nhà XB: NXB Đại học Quốc gia Hà Nội 2007
[5] Đinh mạnh Tường. Cấu trúc dữ liệu và thuật toán. Nhà xuất bản khoa học và kỹ thuật 2000 Sách, tạp chí
Tiêu đề: Cấu trúc dữ liệu và thuật toán
Nhà XB: Nhà xuất bản khoa học và kỹ thuật 2000
[7] World Wide Web Consortium (W3C), http://www.w3.org [8] Bách khoa toàn thư tiếng Việt, http://vi.wikipedia.org Link
[9] Biểu thức chính quy, http://www.phpvn.org/index.php?topic=204.0 Link
[10] Hàm xử lý chuỗi, http://www.aweb.vn/xem-thiet-ke-web/61.Ham-tim-kiem-chuoi.html Link
[12] Robot Exclusion Protocol, http://www.vietseo.net/indexability/googlebot-va-robotstxt/ Link

HÌNH ẢNH LIÊN QUAN

Hình 1: Một vịng thu thập web cơ bản - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
Hình 1 Một vịng thu thập web cơ bản (Trang 13)
- Cấu hình server sao cho các trang không chứa đường dẫn đến thư mục này. Đáng buồn trên thực tế cách này không đạt được kết quả mong đợi do một trong  các nguyên nhân sau :  - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
u hình server sao cho các trang không chứa đường dẫn đến thư mục này. Đáng buồn trên thực tế cách này không đạt được kết quả mong đợi do một trong các nguyên nhân sau : (Trang 18)
1.2.4.2. Mơ hình thẻ HTML dạng cây - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
1.2.4.2. Mơ hình thẻ HTML dạng cây (Trang 20)
Hình 3: Một mơ hình trình thu thập đa luồng - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
Hình 3 Một mơ hình trình thu thập đa luồng (Trang 22)
Hình 4: Hình minh họa về độ hồn chỉnh và độ chính xác - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
Hình 4 Hình minh họa về độ hồn chỉnh và độ chính xác (Trang 29)
Hình 5: Hình mình họa thu hồi mục tiêu - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
Hình 5 Hình mình họa thu hồi mục tiêu (Trang 31)
Hình 6 là một ví dụ về biểu đồ hiệu suất cho hai trình thu thập khác nhau. Hiệu suất  của  trình  thu  thập  được  mô  tả  như  là  một  quỹ  đạo  theo  thời  gian  (được  xấp  xỉ  bằng số lượng các trang đã thu thập ) - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
Hình 6 là một ví dụ về biểu đồ hiệu suất cho hai trình thu thập khác nhau. Hiệu suất của trình thu thập được mô tả như là một quỹ đạo theo thời gian (được xấp xỉ bằng số lượng các trang đã thu thập ) (Trang 31)
Hình 6: So sánh giữa thuật tốn breadth-first và naive best-first: (a) Theo độ - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
Hình 6 So sánh giữa thuật tốn breadth-first và naive best-first: (a) Theo độ (Trang 32)
Hình 7: World wide web - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
Hình 7 World wide web (Trang 34)
Hình 8. Tương tác client và server - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
Hình 8. Tương tác client và server (Trang 36)
Hình 9: Add-ons firebug của trình duyệt firefox 2.2.3.2. Ajax  - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
Hình 9 Add-ons firebug của trình duyệt firefox 2.2.3.2. Ajax (Trang 45)
Hình 10: Cấu trúc phần bài viết - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
Hình 10 Cấu trúc phần bài viết (Trang 47)
Hình 11: Cấu trúc phần chuyên mục - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
Hình 11 Cấu trúc phần chuyên mục (Trang 48)
Hình 12: Cấu trúc phần trang chủ - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
Hình 12 Cấu trúc phần trang chủ (Trang 49)
1 category Bảng các category - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
1 category Bảng các category (Trang 55)
3 cate_code varchar 11 Quan hệ với bảng news - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
3 cate_code varchar 11 Quan hệ với bảng news (Trang 56)
+ news_id: Số thự tự của bài viết trong bảng news, tự động tăng dần + news_title: Tiêu đề của bài viết  - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
news _id: Số thự tự của bài viết trong bảng news, tự động tăng dần + news_title: Tiêu đề của bài viết (Trang 57)
Hình 13: Giao diện phần quản trị cơ sở dữ liệu - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
Hình 13 Giao diện phần quản trị cơ sở dữ liệu (Trang 57)
Hình dưới đây mơ tả giao diện chính của trang web tổng hợp thông tin: - tìm hiểu về web crawler và xây dựng website tổng hợp thông tin
Hình d ưới đây mơ tả giao diện chính của trang web tổng hợp thông tin: (Trang 58)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w