Tải bản đầy đủ (.doc) (97 trang)

đồ án công nghệ thông tin Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.73 MB, 97 trang )

ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
LỜI NÓI ĐẦU
Ngày nay, các thành tựu trong tin học được áp dụng rất nhiều trong
các lĩnh vực của xã hội. Thông tin đã trở thành một nhu cầu quan trọng, quan
trọng đến mức trở nên thường xuyên, cấp thiết cho bất kỳ ai muốn thành công
trong xã hội hiện đại. Trước nhu cầu trao đổi, cung cấp thông tin nói trên
hàng loạt các phương tiện truyền tải thông tin đã ra đời mà một trong những
thành quả nổi bật nhất là mạng toàn cầu Internet. Các kho dữ liệu trên
Internet là một nguồn thông tin vô cùng to lớn. Nhưng làm sao để có thể tìm
được đúng thông tin mình cần trong biển thông tin có thể nói là vô tận như
thế? Vấn đề đó đã được giải quyết với sự trợ giúp của các search engine.
Search engine là một vấn đề đã được các nhà khoa học và các công ty
nổi tiếng trên thế giới quan tâm nghiên cứu. Các search engine nổi tiếng trên
thế giới hiện nay như: Goole, Yahoo!,… vẫn đang được bổ sung và phát triển
không ngừng để có thể đáp ứng được nhu cầu tìm kiếm thông tin ngày càng
gia tăng. Tại Việt Nam, các search engine tiếng Việt cũng đã góp phần không
nhỏ cho nhu cầu tìm kiếm thông tin tiếng Việt. Để góp chút công sức cho việc
phát triển các search engine tại Việt Nam, tôi đã quyết định chọn đề tài: “Xây
dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt” làm đề tài cho đồ án tốt
nghiệp của mình.
Trước hết, tôi xin chân thành cảm ơn các thầy cô giáo trường Đại học
Bách Khoa Hà Nội đã truyền đạt kiến thức và giúp đỡ để tôi có được ngày
hôm nay.
Tôi xin bày tỏ lòng biết ơn đến thày Huỳnh Quyết Thắng, Trưởng bộ
môn Công nghệ phần mềm, khoa Công nghệ thông tin trường Đại học Bách
Khoa Hà Nội, người đã trực tiếp hướng dẫn, giúp đỡ và tạo mọi điều kiện cho
tôi thực hiện đề tài này.
Tôi xin cảm ơn GS.Nguyễn Văn Lợi, Viện phó Viện Ngôn ngữ đã giúp
đỡ và có những đánh giá để tôi ngày càng hoàn thiện phần tiếng Việt của
mình.
Tôi xin cảm ơn công ty VDC ( 292 Tây Sơn) đã giúp đỡ tôi về mặt kỹ


thuật để thử nghiệm BKSearcher trên môi trường Internet.
Hoàng Minh Sơn
1
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
Tôi xin cảm ơn công ty Multi-Tech, nơi tôi đã thực tập, tập thể công ty
đã luôn tạo mọi điều kiện để tôi hoàn thành đề tài này.
Và cuối cùng tôi xin được gửi lời cảm ơn đến gia đình và bạn bè,
những người luôn ở bên và động viên, khích lệ tôi trong thời gian vừa qua.
Hà Nội, ngày 30 tháng 4 năm 2004
Sinh viên
Hoàng Minh Sơn
Hoàng Minh Sơn
2
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
MỤC LỤC
DANH MỤC HÌNH VẼ
HÌNH 1. MÔ HÌNH KIẾN TRÚC CHUNG CỦA SEARCH ENGINE 12
Hoàng Minh Sơn
3
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
HÌNH 2: KIẾN TRÚC METACRAWLER [19] 17
HÌNH 3: TRÁNH TRÙNG LẶP BẰNG MD5 22
HÌNH 4. MƯỜI TERM CÓ TRỌNG SỐ CAO NHẤT TRONG TRỌNG TÂM CỦA NHÓM
HAI TẬP DỮ LIỆU 39
HÌNH 5. MÔ HÌNH THUẬT TOÁN 39
HÌNH 6: QUY TRÌNH XÂY DỰNG CHỈ MỤC 47
HÌNH 7: HOẠT ĐỘNG CỦA TỪ ĐIỂN 48
HÌNH 8: CẤU TRÚC BỘ ĐỆM VĂN BẢN 49
HÌNH 9: CẤU TRÚC BỘ ĐỆM GÓI 49
HÌNH 10 : MÔ TẢ CẤU TRÚC VẬT LÝ CỦA FILE TẠM 50

HÌNH 11: MÔ TẢ THÔ SƠ CỦA CẤU TRÚC LEXICON 51
HÌNH 12: CẤU TRÚC LEXION VÀ INVERTED FILE 53
HÌNH 13: ĐỊNH DẠNG CỦA REL 55
HÌNH 14: KẾT QUẢ TÍNH REL. CỦA TRUY VẤN HAI TERM VỚI MỘT VĂN BẢN 55
HÌNH 15: CẤU TRUC MỘT BLOCK CỦA LUT 60
HÌNH 16: MÔ HÌNH TÌM KIẾM SỬ DỤNG PHƯƠNG PHÁP CONCEPT INDEXING 62
HÌNH 17: CÂY ĐỎ ĐEN 68
HÌNH 18: CẤU TRÚC MỘT NODE CỦA MWBT 69
HÌNH 19: PHƯƠNG PHÁP TÌM PHẦN TỬ THAY THẾ 72
HÌNH 20: CẤU TRÚC CỦA MWBT CẢI TIẾN 73
HÌNH 21: MÔ TẢ HOẠT ĐỘNG CỦA MWBT TỐI ƯU TÌM KIẾM 76
HÌNH 22: MÔ TẢ HOẠT ĐỘNG CƠ BẢN CỦA RESPOSITORY 79
HÌNH 23: MÔ TẢ CƠ CHẾ HOẠT ĐỘNG CỦA CACHE 80
HÌNH 24: GIẢI THUẬT TÌM KIẾM BLOCK CÓ CACHE 81
HÌNH 25: CHỐNG XUNG ĐỘT THEO CHAINING 84
HÌNH 26: GIẢI THUẬT CHỐNG XUNG ĐỘT OPEN ADDRESSING 85
HÌNH 27: HOẠT ĐỘNG CƠ BẢN CỦA LEXICON VÀ INVERTED FILE 86
HÌNH 28: CẤU TRÚC VẬT LÝ CỦA LEXICON VÀ INVERTED FILE 87
HÌNH 29: CẤU TRÚC MỘT BLOCK CỦA INVERTED FILE 87
HÌNH 30: CẤU TRÚC MỘT PHẦN TỬ CỦA LEXICON 88
HÌNH 31: GIAO DIỆN BKSEARCHER LÚC BẮT ĐẦU 91
HÌNH 32: GIAO DIỆN BKSEARCHER VỚI TRUY VẤN HỘI NGHỊ KHOA HỌC 91
Hoàng Minh Sơn
4
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
PHẦN 1
ĐẶT VẤN ĐỀ
Hoàng Minh Sơn
5
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt

1.1. THÔNG TIN VÀ VẤN ĐỀ KHAI THÁC, XỬ LY THÔNG TIN
1.1.1. Sự bùng nổ thông tin
Kỷ nguyên thông tin đang tới và thế giới đang chuyển từ giai đoạn
thiếu thốn sang giai đoạn tràn ngập thông tin. Vì vậy, việc xử lý và tìm được
thông tin cần thiết sẽ là chìa khoá để thành công. Thông thường, đa số người
dùng khai thác thông tin trên mạng không biết chính xác thông tin cần tìm
nằm ở đâu trên biển thông tin mênh mông của Internet. Chính vì thế, sử dụng
những hệ thống tìm kiếm là giải pháp tốt nhất. Trên thực tế, 77% công tác tìm
kiếm được thực hiện bởi các hệ thống tìm kiếm.
Theo các nghiên cứu mới nhất, cứ mỗi giây lại có thêm 40 trang Web
mới bổ sung vào con số 6,4 tỷ trang đã có trên mạng. Có nghĩa là để tìm được
trang thông tin cần thiết, bạn phải "đãi cát tìm vàng" dù có rất nhiều công cụ
tìm kiếm. Để giúp bạn, Google, Microsoft và Yahoo! đã cải tiến công cụ tìm
kiếm của họ và hiện đang dẫn đầu xu hướng kết hợp sức mạnh của công nghệ
với trí phán xét thông minh của con người để mang lại kết quả mong muốn
cho người dùng.
Tìm kiếm thông tin không chỉ là vấn đề của toàn Internet, mà còn là của
từng website. Sẽ rất khó khăn cho độc giả của những website có hàng trăm
hay hàng ngàn trang thông tin mà không có hệ thống tìm kiếm. Do đó, ứng
dụng hệ thống tìm kiếm cho website là phương thức nâng cao khả năng
truyền thông và quảng bá thông tin của website trên Internet. Sau khi mỗi
website phải vất vả lôi kéo độc giả, thì sau đó lại phải giúp đỡ họ khỏi ngộp
thở trong biển thông tin của chính mình.
Một hệ thống tìm kiếm thông tin thực sự sẽ giúp tiết kiệm thời gian tìm
kiếm thông tin, cũng có nghĩa là tiết kiệm: tiền bạc, sức lực, cơ hội kinh
doanh Thông tin đã trở thành một nhu cầu quan trọng, quan trọng đến mức
trở nên thường xuyên, cấp thiết cho bất kì ai muốn thành công trong xã hội.
1.1.2. Khai thác và xử lý thông tin
Dựa vào những phân tích ở trên ta thấy nổi lên một vấn đề là: làm thế
nào để khai thác, tìm kiếm thông tin từ rất nhiều nguồn dữ liệu lớn khác nhau?

Hoàng Minh Sơn
6
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
Khai thác thông tin:
Khai thác thông tin được hiểu là quy trình tách, tạo ra những thông tin
mới, có ý nghĩa từ các nguồn dữ liệu bao gồm các giao dịch, các tài liệu ,các
email, trang web… và sử dụng thông tin này để đưa ra các quyết định kinh
doanh, sản xuất cụ thể.
Dữ liệu, thông tin và các tính chất của nó:
Nguyên liệu cơ bản ban đầu của quá trình khai thác thông tin là dữ liệu.
Tuy nhiên loại dữ liệu thường thấy hiện nay là các văn bản và các trang web,
những loại tài liệu phi cấu trúc. Các nhà phân tích công nghiệp ước lượng rằng
dữ liệu phi cấu trúc chiếm 80% thông tin doanh nghiệp so với 20% các dữ liệu
có cấu trúc, nó bao gồm dữ liệu dưới các dạng khác nhau như text, hình ảnh,
video và âm thanh. Trong đó, text là dữ liệu phi cấu trúc phổ biến nhất.
Với sự bùng nổ thông tin như đã nói ở trên, chỉ riêng việc quản lý khối
lượng thông tin khổng lồ đã là một khó khăn, ngay cả khi quản lý được khối
lượng thông tin đó rồi thì khó khăn mới nảy sinh là làm thế nào để có thể trích
ra được trong đó những thông tin thật sự cần. Có thể nói: khối lượng dữ liệu
khổng lồ mà người sử dụng có thể truy xuất nếu không được tổ chức lưu trữ
tốt và kèm theo một phương thức xử lý hiệu quả để có thể khai thác được
thông tin trên đó thì chúng cũng chỉ là những thông tin chết chứ không mang
lại chút ích lợi nào cả.
Hoàng Minh Sơn
7
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
1.2. MỤC ĐÍCH VÀ LÝ DO LỰA CHỌN ĐỀ TÀI
Sự phát triển vượt bậc của nền công nghệ thông tin thế giới và hiện
tượng bùng nổ thông tin trong những năm gần đây đã khẳng định tầm quan
trọng sống còn của các search engine. Nhận thức được vai trò của các search

engine trong việc tìm kiếm và khai thác thông tin trong xã hội hiện đại nói
chung và trong lĩnh vực công nghệ thông tin nói riêng, một số công ty lớn trên
thế giới đã nhanh chóng xây dựng các search engine hỗ trợ cho việc tìm kiếm
trên mạng như: yahoo.com, google.com, panvietnam.com, vinaseek.com, …
Tác dụng của những hệ thống này đối với người sử dụng để tìm kiếm thông tin
trên Internet là không thể chối cãi.
Với lượng thông tin khổng lồ trên mạng như hiện nay, search engine
thực sự là một công cụ tối cần thiết cho người dùng Internet khai thác, tìm
kiếm thông tin. Khái niệm về search engine đã có từ khá sớm và trên thế giới
đã có rất nhiều nghiên cứu về search engine và các vấn đề liên quan (đặc biệt
là Information Retrieval). Một trong những nghiên cứu đó là của trường đại
học Standford (Mỹ) và kết quả là search engine Google đứng đầu trên thế giới
hiện nay.
Để xây dựng một search engine cần phải biết rất nhiều vấn đề lý thuyết
liên quan, trong đó có các lý thuyết về ngôn ngữ, lý thuyết về information
retrieval, cấu trúc dữ liệu và giải thuật, cơ sở dữ liệu, tối ưu hóa, tính toán
song song,… Đề tài search engine là một trong nhứng đề tài mang tính lý
thuyết cũng như có tính thực tế cao.
Việt Nam cũng có hai search engine đáng kể là Vinaseek của công ty
Tinh Vân, PanVietNam của NetNam. Chúng ta không thể so sánh các search
engine này với các search engine nổi tiếng trên thế giới. Đặc điểm của các
search engine này là khả năng tìm kiếm tài liệu tiếng Việt. Tuy nhiên, người
dùng vẫn chưa thực sự hài lòng với các kết quả tìm kiếm do các search engine
này mang lại do đã khá quen thuộc với các search engine của nước ngoài với
kết quả tìm kiếm (cả tiếng Anh và tiếng Việt) khá tốt.
Ở Việt Nam, mặc dù số lượng thông tin tiếng Việt so với mỏ thông tin
khổng lồ trên Internet là rất nhỏ, nhưng dưới góc độ một con người thì lượng
Hoàng Minh Sơn
8
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt

thông tin này vẫn còn là rất lớn và quá trình tìm kiếm thông tin trên đó bằng
cách thủ công là không thể. Trong giai đoạn mà các nhu cầu tìm kiếm thông
tin trên mạng Internet cũng như tìm kiếm tài liệu tiếng Việt nói chung đang
được quan tâm, đề tài này được phát triển với mục đích chính nhằm vào việc
xây dựng một search engine tiếng Việt cho người Việt. Search engine này phải
giải quyết được các vấn đề tìm kiếm trong tiếng Việt và hỗ trợ tiếng Việt một
cách hoàn thiện, đặc biệt là vấn đề font chữ tiếng Việt. Nhận thức được tầm
quan trọng của việc tìm kiếm thông tin tiếng Việt, những khó khăn chuyên
môn cũng như các vấn đề về cú pháp và ngữ nghĩa tiếng Việt nhưng tôi cũng
xin mạnh dạn lựa chọn việc Xây dựng một search engine tiếng Việt làm đề tài
cho đồ án tốt nghiệp lần này.
Hoàng Minh Sơn
9
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
1.3. CÁC MỤC TIÊU CỤ THỂ
Trong phạm vi đồ án tốt nghiệp này, tôi tập trung vào những mục tiêu
cụ thể để xây dựng hệ thống tìm kiếm thông tin tiếng Việt mà tôi đã tiến hành
cài đặt và thử nghiệm trên thực tế tại các trang web sau:


BKSearcher là một đề tài nghiên cứu công phu, có ý nghĩa khoa học
cũng như thực tiễn cao có những đặc điểm sau:
• Phát triển độc lập trên nền .NET, không dựa trên các search engine
nguồn mở
• Xây dựng iCrawler có khả năng thu thập tốt, có chọn lọc, tránh trùng
lặp các trang web
• Cải thiện cách tính độ tương quan giữa các văn bản và truy vấn làm cho
ý nghĩa tìm kiếm cao hơn [1] (được thày Nguyễn Đức Nghĩa phản biện,
đăng trên Tạp chí Khoa học và Công nghệ 2-2004)
• Xây dựng hệ thống Lexicon và Inverted file và tối ưu theo phương

pháp tìm kiếm trên để dễ dàng cho việc tìm kiếm và cập nhật thông tin
[18] (đã được phản biện và sẽ đăng trên tạp chí Tin học và Điều khiển
số tới)
• Cân đối thuật toán phân tích tiếng Việt, giúp loại bỏ những thiếu sót về
mặt ngữ nghĩa và tăng ý nghĩa tìm kiếm với văn bản tiếng Việt (đã
được GS.Nguyễn Văn Lợi, Viện Ngôn ngữ học đánh giá)
• Được đánh giá qua cuộc thi NCKH -2003 và Giải nhì SPTin học trẻ lần
II - 2004
• Hệ thống chạy rất tốt, đã được VDC đánh giá cao và đồng ý hỗ trợ về
mọi mặt kỹ thuật
Hoàng Minh Sơn
10
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
PHẦN 2
CƠ SỞ LÝ THUYẾT VÀ THIẾT KẾ HỆ
THỐNG
Hoàng Minh Sơn
11
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
2.1. MÔ HÌNH HỆ TRÍCH CHỌN THÔNG TIN
Hình sau đây đưa ra kiến trúc mức cao của một search engine, trong đó
các thành phần của kiến trúc này đảm nhiệm các chức năng khá cụ thể:
Hình 1. Mô hình kiến trúc chung của Search Engine
Crawler là chương trình có nhiệm vụ khám phá và tải về các trang web
từ mạng Internet. Chúng dõi theo các trang web giống như người dùng duyệt
web. Crawler xuất phát với tập các URLs khởi đầu, sau khi tải các trang web
về, Crawler tách các URLs trong trang web đó ra, chuyển cho Thu thập
Control (Bộ điều khiển thu thập). Bộ điều khiển sẽ quyết định liên kết nào sẽ
được khám phá tiếp theo và trả lại cho Crawler. (Một số chức năng của bộ
điều khiển đôi khi được Crawler tự thực hiện). Crawler cũng đồng thời chuyển

các trang web đã khám phá được vào kho dữ liệu web (pages repository) và
tiếp tục khám phá web cho tới khi nào không còn gì để khám phá hoặc bị cạn
tài nguyên hay được lệnh dừng,…
Hoàng Minh Sơn
12
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
Giải thuật cơ bản này có thể được sửa chữa nhằm đạt được hiệu quả tốt
nhất theo một nghĩa nào đó. Ví dụ Crawler của một search engine nào đó được
thiết kế để khám phá càng nhiều web site càng tốt, bỏ lại các trang web bị “vùi
sâu” trong một site (đường đến các trang web này dài và phức tạp) trong khi
Crawler của một search engine khác lại được giao nhiệm vụ khám phá một
vùng (domain) nào đó. Bộ điều khiển thu thập nắm giữ vai trò điều khiển,
hướng hoạt động cho các Crawlers.
Khi search engine ít nhất một lần hoàn thành một vòng thu thập, bộ
điều khiển có thể nhận được thông báo bởi vài chỉ mục (indexes) được tạo ra
trong quá trình khám phá trước đó. Bộ điều khiển căn cứ vào chỉ mục để quyết
định xem những liên kết nào nên viếng thăm, những liên kết nào nên bỏ qua.
Bộ điều khiển đôi khi sử dụng thông tin phản hồi từ phía mô-tơ truy vấn để
điều khiển Crawler (được thể hiện qu mũi tên nối Query engine và Thu thập
control trong mô hình kiến trúc).
Indexer module (mô-đun đánh chỉ mục) tách các từ cần thiết có trong
mỗi trang web, ghi lại URL của trang web có chứa chúng. Kết quả là hình
thành nên một bảng tra cứu các URLs chỉ đến các trang web có chứa các từ
cho trước gọi là text index trên hình 1. Bảng này chỉ là kết quả dựa trên những
trang web đã được khám phá bởi Crawler. Tuy nhiên để xây dựng index cho
cả web thì sẽ gặp khó khăn lớn do kích thước và sự thay đổi của web rất đáng
kể. Hơn nữa, đánh chỉ mục web cần phải có một vài loại index đặc biệt khác
nữa. Ví dụ như Indexer có thể tạo ra một số loại index có cấu trúc (structure
index), phản ánh các liên kết giữa các trang web. Các loại index như vậy có
thể không thích hợp cho văn bản đơn thuần không có các liên kết. Collection

analysis module (mô-đun phân tích tập) đáp ứng cho việc tạo các loại index
khác.
Utility index trong hình vẽ được tạo ra bởi collection analysis module. Ví
dụ như utility index cho biết các trang web có có chiều dài, mức độ quan trọng
hay thậm chí là số lượng ảnh có trong nó cho trước. Collection analysis
module sử dụng text index và structure index để tạo ra utility index.
Trong quá trình khám phá web và đánh chỉ mục, search engine có thể sẽ
lưu trữ lại các trang web mà nó tải về từ mạng. Kho dữ liệu trang web (Page
repository) trong hình vẽ dùng để lưu trữ tập các trang web này một cách tạm
thời. Đôi khi, search engine bảo lưu cả nội dung của trang web mà nó viếng
Hoàng Minh Sơn
13
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
thăm (cache) ngoài việc đánh chỉ mục các trang web. Cache sẽ giúp ích trong
việc đưa ra các kết quả nhanh chóng và mang lại một số thuận lợi trong việc
tìm kiếm.
Query engine có nhiệm vụ nhận và thực hiện yêu cầu tìm kiếm từ phía
người dùng. Nó phụ thuộc khá nhiều vào indexes và đôi khi phụ thuộc vào cả
kho dữ liệu trang web. Kích thước của web thì lớn trong khi người dùng chỉ
gõ vào một vài từ để tìm kiếm nên số lượng kết quả tìm được cũng sẽ lớn.
Ranking module sẽ thực hiện sắp xếp các kết quả tìm kiếm sao cho các kết
quả gần với truy vấn nhất được đưa lên đầu. Query engine là phần cần được
quan tâm đặc biệt vì các kỹ thuật truyền thống trong Information Retrieval
được áp dụng vào trong tìm kiếm cần phải có sự sửa đổi cho phù hợp. Thông
thường các kỹ thuật dựa trên sự so sánh mức độ tương tự (relevancy) giữa yêu
cầu tìm kiếm (query text) và tài liệu trong “bộ sưu tập” của search engine. Một
yêu cầu tìm kiếm “nhỏ bé” so với một bộ sưu tập “cực lớn” sẽ hạn chế cách
tiếp cận dựa trên độ tương tự văn bản nói trên.
Hoàng Minh Sơn
14

ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
1.1. WEB CRAWLER iCrawler
2.1.1. Các vấn đề đặt ra với iCrawler
2.1.1.1. Lọc liên kết từ các trang web
iCrawler phải giao tiếp, tương tác với các web server trên Internet bằng giao
thức phổ biến HTTP. Để tách được URL từ trang web, iCrawler tiến hành
phân tích trang, hiểu được đặc điểm ngôn ngữ HTML, cấu trúc của URL và
đưa vào hàng đợi những địa chỉ URL dưới dạng tuyệt đối (sẽ giải thích ở phần
sau).
2.1.1.2. Chiến lược làm tươi (recrawl/refresh)
iCrawler không chỉ có nhiệm vụ tải một trang web về cơ sở dữ liệu mà còn
phải cập nhật chúng sao cho nội dung là mới nhất có thể được. Khi một trang
web nào đó được thăm và iCrawler phát hiện được sự thay đổi, nó phải cập
nhật ngay trang này trong cơ sở dữ liệu. Tốc độ thay đổi của các trang web là
khác nhau, và do vậy với mỗi trang tần số thăm viếng của iCrawler cũng khác
nhau.
2.1.1.3. Tránh sử dụng quá nhiều tài nguyên của các máy chủ web
iCrawler cũng như bất kỳ một Web Crawler nào khác, nó sử dụng các tài
nguyên của web server, và do vậy dĩ nhiên là nó sẽ làm cho máy chủ web bị
ảnh hưởng. Tiêu tốn càng ít tài nguyên của web server thì càng tốt, nếu không
iCrawler có thể bị cấm truy cập do ảnh hưởng xấu đến hiệu năng của các tổ
chức khác.
Hơn nữa, ngay trên các máy mà iCrawler chạy, nó cũng phải chiếm càng ít tài
nguyên thì càng tốt. Giới hạn chấp nhận được là 60%-70% thời gian CPU, bộ
nhớ khoảng 100 MB cho mỗi phiên làm việc. Trong phạm vi nghiên cứu,
iCrawler được giả thiết chạy trên một máy đơn.
2.1.1.4. Tốc độ
iCrawler phải có tốc độ tương đối nhanh, để đáp ứng được yêu cầu về cập nhật
và xây dựng được kho dữ liệu đạt yêu cầu. Do yêu cầu này là một trong những
yêu cầu chủ yếu, nó được ưu tiên nghiên cứu hơn cả trong công trình này cùng

với lựa chọn trang web. Để thực hiện được điều đó iCrawler lựa chọn phương
pháp thực thi song song đồng bộ. iCrawler cố gắng sử dụng truy cập đĩa một
cách hiệu quả, hạn chế nếu có thể.
2.1.1.5. Mạnh mẽ (Robustness)
Hoàng Minh Sơn
15
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
Vì phải tương tác với hàng ngàn, thậm chí hàng triệu máy chủ,
iCrawler phải có khả năng bỏ qua các lỗi HTML, lỗi URL, thậm chí bỏ qua
các lỗi hệ thống nếu có thể. Đặc biệt là khi có lỗi mạng, iCrawler cố gắng làm
sao cho việc mất mát dữ liệu là không lớn. Như thế, iCrawler sẽ phải cập nhật
trạng thái làm việc của nó ở trên đĩa một cách định kỳ. Khi hệ thống có thể
làm việc trở lại, trạng thái được giữ như khi nó bị hỏng.
2.1.1.6. Theo đúng quy ước về từ chối thu thập trang web
Có một điều rất quan trọng về chuẩn quy ước mà iCrawler phải theo, đó
là quy ước về việc từ chối Crawler. Việc từ chối này được thực hiện bằng file
robot.txt hoặc các thẻ siêu dữ liệu (meta tag). Hơn nữa là tốc độ yêu cầu trang
cũng không được quá lớn. Ví dụ 30 giây chỉ được yêu cầu 1 trang hoặc ít hơn.
Nếu không người quản trị máy chủ web có quyền khóa không cho iCrawler
truy cập các web site của họ.
2.1.1.7. Có thể quản lý và cấu hình lại
Thông qua giao diện với người dùng, iCrawler phải đảm bảo việc cấu
hình, theo dõi, quản lý nó là dễ dàng. Ví dụ, đáp ứng các thay đổi tốc độ thăm
viếng, thứ tự thăm viếng, dừng lại hoặc tiếp tục, xóa khỏi danh sách thăm
viếng, cấm thăm viếng một web site, nhận phản hồi người dùng,
2.1.2. Các nghiên cứu đã có về Web Crawler
Trên thế giới đã có nhiều công trình nghiên cứu về Web Crawler. Một
số trong chúng đã được áp dụng trong thực tế và rất thành công. Tuy triển khai
theo nhiều hướng khác nhau, nhưng nói chung các công trình đó đều phải giải
quyết những vấn đề căn bản nêu trên.

Một trong những nghiên cứu thành công là MetaCrawler của đại học
Washington sau này chuyển sang cho AOL. Kiến trúc của MetaCrawler như
sau:
Hoàng Minh Sơn
16
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
Hình 2: Kiến trúc MetaCrawler [19]
MetaCrawler đã được một số trang web sử dụng vào mục đích thương
mại như Go2Net. Mercator là một Web Crawler có kiến trúc rõ ràng. Sử dụng
những kỹ thuật như thu thập có ưu tiên, chống lỗi, hàm băm trên xâu.
Qua quá trình nghiên cứu chúng tôi thấy có nhiều cách tiếp cận để thực
hiện một Web Crawler như Agent, Multithreading, Distributed. Các công trình
nghiên cứu này tập trung chủ yếu vào các công việc như tăng hiệu năng, giảm
trùng lắp, sắp xếp liên kết.
2.1.3. iCrawler – Cơ sở lý thuyết và triển khai
2.1.3.1. Chiến lược lựa chọn trang web
Vì tài nguyên mà iCrawler được sử dụng là giới hạn, do vậy nó buộc phải lựa
chọn một số lượng hạn chế trong số những địa chỉ mà nó biết để thăm. Nếu
không, cơ sở dữ liệu sẽ bị quá tải, hơn nữa hoạt động của iCrawler sẽ không
hiệu quả.
2.1.3.1.1. Đánh giá mức độ quan trọnng (impotance metrics) của một trang
Có rất nhiều cách để xác định độ quan trọng của một trang nhưng để
đáp ứng yêu cầu về tốc độ iCrawler chỉ lựa chọn chiến lược đếm liên kết
ngược (backlink count). Ở đây ta gọi I(p) là độ quan trọng của trang p.
Giá trị của I(p) được tính bằng số lượng các liên kết đến p xuất hiện trên toàn
bộ web. Ký hiệu của I(p) sử dụng độ đo đếm liên kết ngược là IB(p). Thực tế
cho thấy các trang web được tham khảo bởi nhiều web site có mức độ quan
trọng hơn các trang web ít được tham khảo. IB(p) rất hữu ích cho việc xếp
hạng các kết quả trong tìm kiếm (ranking). IB(p) được tính dựa trên các trang
Hoàng Minh Sơn

17
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
web đã được tìm về thay vì toàn bộ web và lúc đó được ký hiệu là IB’(p). Nếu
giả sử trong trường hợp lý tưởng iCrawler duyệt được toàn bộ web, thì
IB’(p)=IB(p).
2.1.3.1.2. Phương pháp hoạt động
iCrawler được hi vọng là sẽ viếng thăm các trang web có giá trị I(p) cao.
Nhưng do hạn chế kỹ thuật, iCrawler không có kiến thức về toàn bộ web, cho
nên nó phải sử dụng I’(p) tức là giá trị tính trên kho dữ liệu mà nó có. Thường
có ba cách để thu thập web:
 Thu thập và dừng: Với mô hình này, Web Crawler C khởi đầu với
trang p0 và dừng lại sau K trang web được tìm về. K là một con số cố
định tùy thuộc vào số lượng các trang web mà C có thể tải về trong một
lần làm việc. Web Crawler lý tưởng trong trường hợp này sẽ lần lượt
viếng thăm r1, r2, …,rK, với r1 là trang web có giá trị mức độ quan
trọng cao nhất. Các trang web r1, r2,…,rK được gọi là các trang “hot”
(hot pages). Thường thì chỉ có M trang web trong số K trang ở trên có
giá trị I(r) ≥ I(rK). Giá trị PCS(C) = M/K được gọi là hiệu năng
(perforrmance) của Web Crawler C. Thực tế là không thể biết chính xác
giá trị xếp hạng của tất cả các trang web nên M sẽ được tính toán dựa
trên xếp hạng ước lượng của chúng. Web Crawler lý tưởng sẽ có hiệu
năng bằng 100%. Web Crawler dù thế nào thì cũng có xu hướng viếng
thăm toàn bộ web, đôi khi viếng thăm lại các trang web đã qua, hiệu
năng lúc này được tính bằng K/T với T là tổng số trang web trên mạng
(Mỗi trang web được viếng thăm có xác suất K/T là trang tốt, vì thế số
trang web mong đợi khi mà Web Crawler dừng lại là K2/T).
 Thu thập và dừng có ngưỡng: Vẫn giả sử rằng Web Crawler C viếng
thăm K trang web và G là một giá trị mục tiêu. Trang web nào có I(p) ≥
G được coi là trang tốt. Giả sử H là số lượng các trang tốt (H xác định
với giả thiết biết được xếp hạng của tất cả các trang). Hiệu năng của C

trong trường hợp này PST(C) được tính bằng phần trăm số trang tốt H
mà C viếng thăm trước khi kết thúc phiên làm việc. Nếu K<H, hiệu
năng của Web Crawler lý tưởng sẽ là K/H, còn nếu K≥H thì hiệu năng
của Web Crawler lý tưởng sẽ là 100%. Web Crawler ngẫu nhiên viếng
thăm lại các trang web với hy vọng sẽ viếng thăm (H/T).K trang tốt
trước khi dừng lại. Hiệu năng của nó là K/T
Hoàng Minh Sơn
18
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
 Thu thập với vùng đệm giới hạn: Giả sử Web Crawler C có thể lưu
trữ B trang web trong bộ đệm. Khi bộ đệm đầy, Web Crawler phải
quyết định bỏ ra ngoài một số trang web để nhường chỗ cho các trang
web khác. Web Crawler lý tưởng sẽ loại ra các trang có I(p) thấp nhất.
Cho phép Web Crawler tiến hành thăm toàn bộ web (T trang). Tới khi
kết thúc quá trình thăm, phần trăm các trang tốt trong bộ đệm cho ta
hiệu năng PBC(C). Để xác định một trang có phải là tốt hay không có
thể căn cứ vào giá trị G như ở trên hoặc dựa vào giá trị I(rB) với rB là
trang web có mức độ quan trọng thứ B. Hiệu năng của Web Crawler lý
tưởng và ngẫu nhiên tương tự như trường hợp trên.
2.1.3.1.3. Thứ tự thăm các URLs
iCrawler sẽ thăm các trang web theo thứ tự có ưu tiên (Priority
crawling). iCrawler tính toán độ quan trọng của một trang và định kỳ sắp xếp
lại thứ tự của chúng trong hàng đợi. Tất nhiên, những trang được coi là quan
trọng hơn sẽ được ưu tiên xử lý trước những trang ít quan trọng.
Kiến trúc của iCrawler cho phép có nhiều hàng đợi, trong đó có một hàng đợi
chính. Tại hàng đợi chính, các trang sẽ được sắp xếp lại một cách định kỳ theo
thứ tự độ quan trọng giảm dần. Và tất nhiên, các trang quan trọng sẽ được lấy
ra trước.
2.1.3.2. Tốc độ thu thập trang Web
Tăng tốc độ tải trang là một trong những khó khăn lớn nhất mà bất kỳ Web

Crawler nào cũng phải đối mặt. Nếu chỉ có một tiến trình, việc tải về một số
lượng khổng lồ các trang web là điều bất khả thi trong giới hạn thời gian. Hầu
hết các search engine đều chạy song song nhiều tiến trình Web Crawler.
BKSearcher có kiến trúc chỉ sử dụng một Web Crawler nhưng bản thân
iCrawler gồm rất nhiều tiến trình song song hoạt động. Cũng như bất kỳ một
Web Crawler nào, iCrawler phải giải quyết các vấn đề nảy sinh khi xử lý song
song:
 Tải trang trùng nhau (Overlap): Khi nhiều tiến trình thu thập chạy
cùng một lúc, sẽ xảy ra hiện tượng có nhiều hơn một tiến trình cùng
tải một trang web về tại một thời điểm. Một tiến trình không hề biết
rằng có một tiến trình khác cũng đang tải (hoặc đã tải) trang web mà
nó định tải về. Đây là một sự lãng phí tài nguyên.
 Chất lượng (Quality): Chất lượng của từng tiến trình có cao hay
Hoàng Minh Sơn
19
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
không? Như đã trình bày ở trên, web crawler có xu hướng viếng
thăm các trang web quan trọng trước nhất. Tuy nhiên, trong quá trình
xử lý song song, mỗi tiến trình không biết các kết quả thu thập của
các tiến trình khác, và càng không thể biết hết toàn bộ web. Chính vì
vậy mà những đánh giá của nó dựa trên những kết quả nghèo nàn mà
nó thu lượm được nên độ chính xác không cao.
 Băng thông (Communication bandwith): Để giải quyết hai vấn đề
nêu trên, các tiến trình phải thường xuyên giao tiếp với nhau, cùng
nhau hoạt động. Quá trình giao tiếp này tăng lên đáng kể khi số
lượng tiến trình tăng. Do vậy số lượng dữ liệu lưu chuyển nên ít nhất
có thể được.
Song song hóa quá trình thu thập là một thách thức lớn. iCrawler là một
crawler song song so với tiến trình đơn iCrawler hoạt động hiệu quả hơn rất
nhiều.

BKSearcher hướng tới kiến trúc phân tán (distributed) nhằm tăng hiệu
năng, giảm tải mạng nhưng hiện tại BKSearcher chỉ hoạt động trên một server
nên iCrawler chọn giải pháp đa tiến trình.
Để giải quyết vấn đề tải trang trùng nhau phổ biến có các phương pháp
sau:
 Độc lập (Independent): Các tiển trình thu thập một cách độc lập với
tập các URLs ban đầu khác nhau. Các tiến trình không cần phải quan
tâm đến các tiến trình khác làm gì. Như vậy có thể dẫn đến trùng
nhau nhưng do tập các URLs ban đầu của các tiến trình là các URLs
có nguồn gốc khác nhau nên hy vọng rằng hiện tượng trùng nhau là
không đáng kể. Phương pháp này làm giảm tối thiểu sự giao tiếp
giữa các tiến trình.
 Kết gán/ủy quyền động (Dynamic assignment): Là phương pháp
mà trong đó tiến trình chính chia nhỏ web thành các phần và giao
cho các tiến trình tiến hành thu thập vào bất cứ lúc nào (dynamic).
Trong quá trình đó, bộ điều phối sẽ quyết định sẽ thu thập phần nào
của web tiếp theo (gửi URLs khởi đầu cho tiến trình nào đó). Ngay
sau khi nhận được URLs khởi đầu, tiến trình sẽ thực hiện thu thập
phần tương ứng. Khi gặp một URL của phần khác thì báo lại URL
Hoàng Minh Sơn
20
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
này cho trung tâm điều phối và URL này được dùng làm URL khởi
đầu cho vùng tương ứng.
 Kết gán/ủy quyền tĩnh (Static assignment): Không giống như kết
gán động, các phần của web được giao cho các tiến trình trước khi
bắt đầu quá trình thu thập. Như vậy mỗi tiến trình biết được tiến
trình nào đáp ứng cho trang nào trong quá trình thu thập, do đó
không cần phải có bộ điều phối trung tâm.
iCrawler sử dụng phương pháp thực thi song song đồng bộ có bộ điều

phối trung tâm với phương pháp ủy quyền động. Tuy nhiên với mỗi tiến
trình lại chỉ thực hiện trên một vùng web nhất định giống như ủy quyền tĩnh.
Việc chia phần web được thực hiện theo kiểu cấu trúc cây web. Mỗi tiến trình
sẽ được gán hoạt động với .com, .net, .gov, .info, .org, .edu, Như vậy việc
chia phần web là rất rõ ràng, không lầm lẫn giữa các tiến trình.
Tuy nhiên nếu chỉ sử dụng phương pháp trên, iCrawler vẫn gặp phải vấn
đề tải trang trùng nhau, xảy ra khi một tiến trình tải hoặc các tiến trình tải
những trang có địa chỉ khác nhau nhưng nội dung giống nhau. Rõ ràng điều
này sẽ không thuận lợi cho việc lưu trữ và làm nặng nề thêm cho quy trình
đánh chỉ mục. Để giải quyết triệt để vấn đề này iCrawler sử dụng
MD5(Message Digest).
Việc kiểm tra xem nội dung có trùng lắp hay không được thực hiện bởi việc
kiểm tra “dấu vân của văn bản” (fingerprint/message digest) thông qua một
cấu trúc dữ liệu được tổ chức là một tập hợp các “dấu vân của văn bản”. Nếu
“dấu vân của văn bản” đang được kiểm tra trùng với một trong số các văn bản
đã có thì nó sẽ không được lưu trữ. Có nhiều cách tính “dấu vân của văn bản”
như thuật toán của Rabin thể hiện bởi Broder (64 bit), MD5 (128 bit),
MD4(128 bit), SHA(Secure Hash Algorithm-160 bit).
2.1.3.3. Tính dấu vân của văn bản
2.1.3.3.1. Giới thiệu MD5 và đặc trưng MD5
MD4, MD5 và SHA-1 đều là các thuật toán có chức năng của hàm băm bảo
mật. Thao tác trên một chuỗi văn bản đầu vào, và tạo ra một con số chiều dài
cố định-128 bit đối với MD4, MD5; 160 bit đối với SHA-1. Con số này là một
hash của đầu vào-chỉ cần một thay đổi rất nhỏ của đầu vào cũng sẽ tạo nên
một sự thay đổi lớn ở đầu ra. Con số này được coi như bảo mật tuyệt đối bởi
vì việc giải mã nó đòi hỏi một sức mạnh tính toán cực lớn. Nói cách khác,
Hoàng Minh Sơn
21
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
chẳng có cách nào để tìm được văn bản cũ từ con số dài 128 bit hoặc 160 bit

đó.
Điều quan trọng đối với iCrawler không phải là tính bảo mật của MD5, mà là
tính chất độc nhất của nó đối với từng văn bản. Nếu văn bản chỉ cần thay đổi
một ký tự, MD5 cũng sẽ thay đổi theo.
Ví dụ với đoạn văn bản sau:
TS.Huỳnh Quyết Thắng, Hoàng Minh Sơn, Nguyễn Xuân Tài
Sẽ có MD5 là: 877e082f9ed224af880a6d8b5be20ee5
Thay đổi từ TS thành Ts:
Ts.Huỳnh Quyết Thắng, Hoàng Minh Sơn, Nguyễn Xuân Tài
Sẽ có MD5 là: df31417881babd98a197a225f262b45c
Như chúng ta đã thấy MD5 thay đổi rất lớn sau khi chỉ thay một ký tự.
2.1.3.3.2. Tránh trùng lắp bằng MD5
iCrawler sử dụng tính chất độc nhất của MD5 đối với mỗi văn bản làm dấu
vân cho văn bản đó. Chúng ta có thể thấy qua lưu đồ sau:
Hình 3: Tránh trùng lặp bằng MD5
2.1.3.4. Làm tươi các trang web (Recrawl/ Refessh)
Sau khi các trang web mà iCrawler cho là quan trọng đã được tải về và
đánh chỉ mục. Nó có nhiệm vụ làm tươi các trang web đó một cách định kỳ để
đảm bảo sự cập nhật của chúng. Có nhiều cách thức để thực hiện điều này và
Hoàng Minh Sơn
22
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
các chiến lược sử dụng khác nhau sẽ có các kết quả khác nhau về mức độ tươi
của các trang web. Ví dụ hai chiến lược sau đây là minh chứng cho điều này:
 Làm tươi các trang với tần số như nhau: Crawler không quan tâm
đến tốc độ thay đổi khác nhau của các trang web khác nhau mà tiến
hành làm tươi các trang web mà nó có được với tần số giống nhau.
 Làm tươi với tần số khác nhau: Crawler viếng thăm lại các trang
web với tần số khác nhau, tùy thuộc vào tốc độ thay đổi của chúng.
Các trang web hay thay đổi sẽ được viếng thăm thường xuyên hơn.

Giả sử λ
i
là tần số thay đổi của trang web e
i
và f
i
là tần số mà crawler
viếng thăm trang web đó. Khi đó tỷ số λ
i
/f
i
có giá trị như nhau đối
với mọi trang web mà crawler biết. Một trang web có tốc độ thay đổi
nhanh gấp 10 lần trang khác thì tần số viếng thăm nó cũng phải lớn
gấp 10 lần tần số viếng thăm trang web kia.
2.1.3.4.1. Các hệ đo mức độ tươi (refresh metrics)
Một tập trang web được coi là tươi hơn tập khác nếu nó chứa nhiều trang web
cập nhật hơn. Giả sử có hai tập A và B cùng chứa 20 trang web. Tập A có
trung bình 10 trang web cập nhật còn tập B có 15 trang web cập nhật thì ta nói
ràng B tươi hơn A. Tương tự như vậy, khái niệm độ cũ hay tuổi (age) của một
tập trang web dùng để ám chỉ mức độ “hiện thời” (vừa mới cập nhật hay lâu
rồi không cập nhật) của một tập trang web. Hai khái niệm mức độ tươi
(freshness) và mức độ “hiện thời” (age) là hai khái niệm quan trọng trong các
chiến lược làm tươi.
Độ tươi:
Gọi S = {e
1
, e
2
, …, e

N
} là tập hợp N trang web cục bộ. Mức độ tươi của S
được định nghĩa như sau:
Định nghĩa: Mức độ tươi của trang web e
i
tại thời điểm t là:
F(e
i
;t) = 1 nếu e
i
cập nhật tại thời điểm t
F(e
i
;t) = 0 trong các trường hợp còn lại
Mức độ cập nhật của tập S là:

=
=
N
1i
i
)t,e(F
N
1
)t,S(F
Như vậy, độ tươi của tập S có giá trị trong đoạn [0;1]. Nếu F(S) = 0 có nghĩa
là tất cả các trang web của S đã không còn cập nhật, còn nếu F(S)=1 thì tất cả
các trang web của S đều cập nhật.
Age:
Hoàng Minh Sơn

23
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
Khái niệm tuổi được sử dụng để biểu thị độ cũ của trang web hay tập trang
web, được định nghĩa như sau:
Định nghĩa: Độ cũ của trang web e
i
tại thời điểm t là:
A(e
i
;t) = 0 nếu e
i
là cập nhật tại thời điểm t
A(e
i
;t) = t (khoảng thời gian e
i
được sửa chữa mà S
chưa cập nhật) trong các trường hợp khác
Độ cũ của tập S sẽ là:

=
=
N
1i
i
)t,e(A
N
1
)t,S(A
A(S, t) là giá trị trung bình về độ cũ của các trang web trong S. Ví dụ như các

trang web trên toàn thế giới được thay đổi một ngày trước đây mà S chưa
được cập nhật thì giá trị của A(S, t) với t là hôm nay sẽ là một ngày.
Rõ ràng là các giá trị F(S,t) hay A(S,t) chỉ có ý nghĩa tạm thời tại các thời
điểm xác định. F(S, t), A(S,t) có giá trị khác nhau tại những thời điểm khác
nhau. Khái niệm độ tươi, độ cũ trung bình trong một khoảng thời gian dài
được định nghĩa như sau:
Định nghĩa: Độ tươi trung bình của trang web e
i
, F(e
i
) và tập S, F(S) là:

∞→
=
t
0
i
t
i
dt)t,e(F
t
1
lim)e(F

∞→
=
t
0
t
dt)t,S(F

t
1
lim)S(F
Độ cũ trung bình có công thức:

∞→
=
t
0
i
t
i
dt)t,e(A
t
1
lim)e(A

∞→
=
t
0
t
dt)t,S(A
t
1
lim)S(A
Về mặt lý thuyết thì các giá trị trung bình này không tồn tại vì không
thể cho thời gian tiến đến vô cùng. Giá trị xấp xỉ của chúng được tính dựa trên
một khoảng thời gian dài theo dõi sự thay đổi của các trang web.
2.1.3.4.2. Chiến lược làm tươi

``iCrawler chỉ có một tài nguyên giới hạn, do vậy phải thiết lập tần số làm tươi
cho từng trang sao cho phù hợp. Với mỗi trang web tương ứng với nó có một
trị số nhằm biểu diễn tần số mà nó được làm tươi. Có một tiến trình dành riêng
để làm việc này. Đồng thời iCrawler tự động cập nhật tần số làm tươi cho từng
trang web.
2.1.3.5. Quy ước từ chối Web Crawler
Hoàng Minh Sơn
24
ĐHBK Hà Nội Xây dựng hệ thống tìm kiếm thông tin hỗ trợ tiếng Việt
2.1.3.5.1. File Robots.txt
Các Web Crawler phải kiểm tra một file đặc biệt ở thư mục gốc của
mỗi máy chủ tên là robots.txt, đây là một file văn bản thường chứ không phải
ở dạng HTML. Robots.txt thể hiện giao thức từ chối Robots/Web Crawler.
Cho phép nhà quản trị hệ thống định nghĩa phần nào của site là không được
phép truy cập đối với từng Robot/Web Crawler/Agent cụ thể. Quản trị web có
thể không cho phép truy cập cgi, các thư mục riêng và tạm thời, vì họ không
muốn những trang ở trong đó bị đánh chỉ mục.
Chỉ có duy nhất một file robots.txt với mỗi máy chủ web, và phải đặt ở thư
mục gốc, ví dụ: www.Sample.com/robots.txt. Cú pháp của file này có thể hiểu
thông qua bảng sau:
Cú pháp của file robot.txt
Nhiệm vụ Mục Chú thích
Cho phép các robot
được phép truy cập
thoải mái
User-agent: *
Disallow:
Không có gì ngăn cấm.
* có nghĩa là tất cả các
robot

Cấm các robot truy cập
một phần nào đó
User-agent: *
Disallow: /cgibin/
Disallow: /tmp/
Disallow: /private/
* có nghĩa là tất cả các
robot
Cấm một robot cụ thể User-agent: BadBot
Disallow: *
User-agent: *
Disallow: /priv/
Cấm một robot truy cập
file
User-agent: WeirdBot
Disallow: /links/listing.h
tml
User-agent: *
Disallow: /tmp/
Disallow: /private/
2.1.3.5.2. Thẻ siêu dữ liệu
Thêm vào việc điều khiển Web Crawler của server, những người tạo lập trang
web cũng có thể chỉ định một trang cụ thể nào đó sẽ không bị đánh chỉ mục
Hoàng Minh Sơn
25

×