Bộ lập chỉ mục Index Hệ thống lập chỉ mục hay còn gọi là hệ thống phân tích và xử lý dữ liệu,thực hiện việc phân tích, trích chọn những thông tin cần thiết thường là các từđơn, từ ghép,
Trang 1TRờng đại học vinh
Khoa công nghệ thông tin
=== ===
đồ án tốt nghiệp
xây dựng máy tìm kiếm ảnh
dựa trên công nghệ search engines
Giáo viên hớng dẫn: ThS lơng xuân phú
Sinh viên thực hiện: Lê Trờng giang
Trang 2Đề tài thực tập tốt nghiệp là một cách tiếp cận ở mức độ nghiên cứu cho sinh viên về công nghệ thông tin Trau dồi những kiến thức bổ ích cho bản thân Tôi thực hiện tìm hiểu vấn đề đang được sử dụng rất nhiều bây giờ đó chính là công nghệ tìm kiếm Quá trình phân tích không gặp nhiều vấn đề khó khăn vì yêu cầu rõ ràng Nhưng quá tìm hiểu và code không phải là đơn giản, mặc dù code chuẩn đã có nhưng việc tìm hiểu một chương trình mà không có bản modul cũng nhưng bản mô tả hướng dẫn cũng gặp nhiều khó khăn Việc sử dụng ngôn ngữ C# trong bộ visual 2008 không phải là đơn giản hơn nữa để hiểu được Reguler Expression và áp dụng cho chương trình cũng khá vất vả Chương trình chỉ được ứng dụng một phần nhỏ trong một hệ thống lớn Nhưng đó là tiềm năng cho việc xây dựng một hệ thống lớn
Quá trình tìm hiểu những vấn đề nêu trên dưới sự hướng dẫn của thầy Lương Xuân Phú Ngoài việc tìm hiểu các tài liệu chuyên ngành tôi có tìm hiểu thêm các thông tin trên mạng và trao đổi thông tin với bạn bè
Sau quá trình tìm hiểu tôi đã có được những kiến thức bổ ích về lập trình Net trong bộ visual 2008, sử dụng tốt hơn đối với hệ cơ sở dữ liệu SQL2005, biết cách sử dụng biểu thức chính quy (Rexguler Expression)
Thu được kết quả như vậy Tôi xin chân thành cảm ơn Khoa công nghệ thông tin đã tạo điều kiện cho tôi được tìm hiểu những lĩnh vực trên Và chân thành cảm ơn thầy Lương Xuân Phú đã nhiệt tình giúp đỡ trong thời gian qua
Vinh tháng 5 năm 2010
Sinh viên
Lê Trường Giang
MỤC LỤC
Trang
LỜI MỞ ĐẦU 1
Phần 1 TỔNG QUAN VỀ ĐỀ TÀI 4
1.1 Lý do chọn đề tài 4
1.2 Phương pháp thực hiện đề tài 4
1.3 Công cụ cài đặt 5
Trang 3Phần 2 TỔNG QUAN VỀ SEARCH ENGINES 7
2.1 Thành phần của một cỗ máy tìm kiếm tự động 8
2.1.1 Bộ thu thập thông tin (Robot) 8
2.1.2 Bộ lập chỉ mục (Index) 8
2.1.3 Bộ tìm kiếm thông tin (Search Engine) 8
2.2 Nguyên lý hoạt động của Search Engine 9
2.3 Ứng dụng của Robot 10
2.3.1 Phân tích, thống kê (Statistical Analysis) 10
2.3.2 Duy trì siêu liên kế (Maintenance) 10
2.3.3 Ánh xạ địa chỉ web (Mirroring) 11
2.3.4 Phát hiện tài nguyên (Resource Discovery) 11
2.3.5 Kết hợp các công dụng trên (Combined uses) 11
2.4 Robot chỉ mục (Robot Indexing) 11
2.5 Các chiến lược thu thập dữ liệu 12
2.5.1 Chiến lược tìm kiếm theo chiều sâu 13
2.5.2 Chiến lược tìm kiếm theo ngẫu nhiên 14
2.6 Những vấn đề cần lưu ý của web robot 14
2.6.1 Chi phí và hiểm hoạ 14
2.6.2 Quá tải mạng và server (Network resource and server load) 14
2.6.3 Sự cập nhật quá mức (Updating overhead) 15
2.6.4 Những tình huống không mong đợi (Bad implementations) 16
2.6.5 Tiêu chuẩn loại trừ robot 16
Phần 3 MÁY TRUY TÌM DỮ LIỆU 20
3.1 Các thuật ngữ liên quan 21
3.2 Hoạt động phân hạng các trang Web 21
3.2.1 Những tiêu chí quan trọng dùng trong phân hạng 22
3.2.2 Kỹ thuật nâng cao thứ hạng cho một trang Web 23
3.3 Phân loại máy truy tìm 25
Phần 4 MÁY TÌM KIẾM CRAWPHOTO 28
Trang 44.1 Đặc tả máy tìm kiếm 28
4.2 Cấu trúc craw photo 29
4.2.1 Thuật toán khởi tạo link 30
4.2.2 Thuật toán Tìm link 32
4.2.3 Thuật toán download 34
4.3 Các bảng dữ liệu 36
4.3.1 Bảng link khởi tạo cho việc tìm link ảnh (Craw_UrlStart) 36
4.3.2 Bảng quản lý các chuyên mục ảnh (Category) 36
4.3.3 Bảng link ảnh sau khi tìm (UrlPhoto) 37
4.3.4 Bảng quản lý album ảnh (Album) 38
4.3.5 Bảng quản lý ảnh (Photo) 38
4.4 Lược đồ quan hệ 39
Phần 5 MỘT SỐ GIAO DIỆN 40
5.1 Giao diện thông tin về chương trình 40
5.2 Giao diện khởi tạo link và hổ trợ người dùng 41
5.3 Giao diện Crawler link ảnh 41
5.4 Giao diện download ảnh 42
KẾT LUẬN VÀ KIẾN NGHỊ 43
TÀI LIỆU THAM KHẢO 46
Trang 5internet Do vậy tôi chọn đề tài “XÂY DỰNG MÁY TÌM KIẾM ẢNH DỰA TRÊN
CÔNG NGHỆ SEARCH ENGINES ” có thể gọi đơn giản là máy tìm kiếm ảnh.
Để tìm hiểu một phần nào đó cách thức hoạt động của các máy tìm kiếm lớnđang hoạt động như Google, Bing, Ask hay yahoo Ngoài ra máy tìm kiếm ảnhđược sử để tạo nguồn vào các server khác
Trong quá trình xây dựng phần giải trí mà đặc biệt là phục phụ nhu cầuhình ảnh về các lĩnh vực cho người dùng, tăng tích hấp dẫn và thu hút cho kháchhàng và các thành viên trong cộng đồng internet Thì nguồn ảnh phải thực sựphong phú Vì vậy việc tìm nguồn ảnh là rất cần thiết Trong khi đó nếu chỉ việctìm kiếm ảnh bằng tay có nghĩa nếu người quản trị chuyên mục sử dụng cáccông cụ tìm kiếm trên internet như google, bing, ask hay yahoo mất nhiều thờigian Do vậy việc xây dựng một chương trình tìm kiếm ảnh tự động là cần thiết.Sau đó người quản trị chỉ việc biên tập lại ảnh và post lên trên website riêng
1.2 Phương pháp thực hiện đề tài
Do bài toán có tính đặc thù riêng nên việc tiếp cận phân tích theo tiếntrình xây dựng bài toán
Tìm hiểu về công nghệ Search engines
Trang 6Tìm hiểu về cách thức hoạt động của máy tìm kiếm.
Tìm hiểu về cấu trúc máy tìm kiếm
Tìm hiểu cách thức xây dựng máy tìm kiếm
Tìm hiểu các công cụ hỗ trợ để xây dựng máy tìm kiếm
Tìm hiểu đặc trưng riêng của máy tìm kiếm ảnh về cấu trúc và việc xâydựng
Xây dựng máy tìm kiếm dựa trên những kiến thức cơ bản và các công cụphần mềm hỗ trợ đã biết và nhưng công cụ mới bổ sung phải có thời gian đầu tư
Bài toán được cài đặt trên ngôn ngữ lập trìnhc.Net với nền tảng C# và sửdụng hệ quản trị cở sở dữ liệu SQL2005 Phần quan trọng của chương trình làbiểu thức chính quy Rexguler Experssion Giúp cho việc phân tách các chuổiliên kết từ đó đưa ra được link ảnh Từ đó máy tìm kiếm có thể download ảnh vềmáy chạy robot
1.3 Công cụ cài đặt
- Bộ Visual Studio 2008
Công cụ lập trình tạo ra máy tìm kiếm ảnh Crawler Photo, Với việc tạocác đề án riêng biệt và hỗ trợ các phương thức thực hiên thao tác vào ra cở sở dữliệu và các thư viện phong phú Giúp lập trình viên giảm được nhiều thời gianhơn trong quá trình code và tăng tính cường các thao tác can thiệp vào hệ thốngđơn giản hơn
- Hệ quản trị cơ sở dữ liệu SQL2005
Hệ quản trị cơ sở dữ liệu 2005 là một hệ quản trị mới nhanh chóng thaythế các hệ quản trị khác bởi tính tiện dụng trong các thao tác dữ liệu, ít lỗi truyxuất nhanh Có tính bảo mật cao hơn và việc tạo ra các thủ tục thao tác với cơ sở
dữ liệu làm tăng tính trong suốt dữ liệu đối với người dùng và giúp tinh lượcnhiều thao tác trong quá trình tương tác với cở sở dữ liệu và có tính bảo mật cao
do dễ dàng viết các thủ tục truy xuất dữ liệu
- Biểu thức chính quy (Rexgulre Experssion.)
Trang 7Việc xây dựng máy tìm kiếm không thể thiếu biểu thức chính quy Biểuthức chính quy giúp việc lọc các link kết nối trong các trang do máy tìm kiếmduyệt qua Từ các link kết nối này máy tìm kiếm tiếp tục tìm kiếm các link cóliên quan và tìm các link ảnh Làm cở sở để thực hiện quá trình download ảnh vềserver hoặc về máy chạy dịch vụ.
Trang 8Phần 2
TỔNG QUAN VỀ SEARCH ENGINES
Crawler-Based Search Engines - Hệ thống tìm kiếm trên nền tự độngNhững cỗ máy tìm kiếm tự động, như Google, Bing hay Yahoo tạo ranhững danh sách của họ tự động Chúng sử dụng các chương trình máy tính,được gọi là “robots“, “spiders”, hay crawlers để lần tìm thông tin trên mạng khi
có ai đó tìm kiếm một thông tin, Search Engine lập tức hiển thị các thông tin lưutrữ tương ứng Nếu những trang web thay đổi, những cỗ máy tìm kiếm tự độngdần dần tìm thấy những sự thay đổi này, và điều đó có thể ảnh hưởng đến bạnđược liệt kê như thế nào Những tiêu đề trang, nội dung văn bản và các phần tửkhác đều giữ một vai trò nhất định
Human-Powered Directories - Các thư mục do con người quản lý vàcập nhật
Các thư mục Internet - ví dụ như Dự án thư mục mở - Open DirectoryProject (Dmoz.org) hòan toàn phụ thuộc vào sự quản lý của con người Bạnđăng ký website của bạn vào thư mục với một vài dòng mô tả ngắn gọn hoặc cácbiên tập viên của thư mục viết giúp phần mô tả cho bạn - chúng phù hợp với nộidung và chủ đề của từng danh mục
Việc thay đổi những trang web của các bạn không có hiệu lực trên danhmục của các bạn Những thứ hữu ích để cải thiện vị trí xếp hạng với một cỗ máytìm kiếm không có gì để làm với việc cải thiện một vị trí trong một thư mục.Ngoại lệ duy nhất là một site tốt, với nội dung tốt, có lẽ thích hợp hơn để đượcxem xét so với một website nghèo nàn
Trang 92.1 Thành phần của một cỗ máy tìm kiếm tự động
2.1.1 Bộ thu thập thông tin (Robot)
Robot là một chương trình tự động duyệt qua các cấu trúc siêu liên kết đểthu thập tài liệu & một cách đệ quy nó nhận về tất cả tài liệu có liên kết với tàiliệu này
Robot được biết đến dưới nhiều tên gọi khác nhau: spider, web wandererhoặc web worm,… Những tên gọi này đôi khi gây nhầm lẫn, như từ ‘spider’,
‘wanderer’ làm người ta nghĩ rằng robot tự nó di chuyển và từ ‘worm’ làmngười ta liên tưởng đến virus Về bản chất robot chỉ là một chương trình duyệt
và thu thậpthông tin từ các site theo đúng giao thức web Những trình duyệtthông thường không được xem là robot do thiếu tính chủ động, chúng chỉ duyệtweb khi có sự tác động của con người
2.1.2 Bộ lập chỉ mục (Index)
Hệ thống lập chỉ mục hay còn gọi là hệ thống phân tích và xử lý dữ liệu,thực hiện việc phân tích, trích chọn những thông tin cần thiết (thường là các từđơn, từ ghép, cụm từ quan trọng) từ những dữ liệu mà robot thu thập được và tổchức thành cơ sở dữ liệu riêng để có thể tìm kiếm trên đó một cách nhanhchóng, hiệu quả Hệ thống chỉ mục là danh sách các từ khoá, chỉ rõ các từ khoánào xuất hiện ở trang nào, địa chỉ nào
2.1.3 Bộ tìm kiếm thông tin (Search Engine)
Search engine là cụm từ dùng chỉ toàn bộ hệ thống bao gồm bộ thu thậpthông tin, bộ lập chỉ mục & bộ tìm kiếm thông tin Các bộ này hoạt động liên tục
từ lúc khởi động hệ thống, chúng phụ thuộc lẫn nhau về mặt dữ liệu nhưng độclập với nhau về mặt hoạt động
Search engine tương tác với user thông qua giao diện web, có nhiệm vụtiếp nhận & trả về những tài liệu thoả yêu cầu của user
Nói nôm na, tìm kiếm từ là tìm kiếm các trang mà những từ trong câu truyvấn (query) xuất hiện nhiều nhất, ngoại trừ stopword (các từ quá thông dụng như
Trang 10mạo từ a, an, the,…) Một từ càng xuất hiện nhiều trong một trang thì trang đócàng được chọn để trả về cho người dùng Và một trang chứa tất cả các từ trongcâu truy vấn thì tốt hơn là một trang không chứa một hoặc một số từ Ngày nay,hầu hết các search engine đều hỗ trợ chức năng tìm cơ bản và nâng cao, tìm từđơn, từ ghép, cụm từ, danh từ riêng, hay giới hạn phạm vi tìm kiếm như trên đềmục, tiêu đề, đoạn văn bản giới thiệu về trang web,…
Ngoài chiến lược tìm chính xác theo từ khoá, các search engine còn cốgắng “hiểu” ý nghĩa thực sự của câu hỏi thông qua những câu chữ do ngườidùng cung cấp Điều này được thể hiện qua chức năng sửa lỗi chính tả, tìm cảnhững hình thức biến đổi khác nhau của một từ Ví dụ: search engine sẽ tìmnhững từ như speaker, speaking, spoke khi người dùng nhập vào từ speak
2.2 Nguyên lý hoạt động của Search Engine
Search engine điều khiển robot đi thu thập thông tin trên mạng thông quacác siêu liên kết (hyperlink) Khi robot phát hiện ra một site mới, nó gởi tài liệu(web page) về cho server chính để tạo cơ sở dữ liệu chỉ mục phục vụ cho nhucầu tìm kiếm thông tin
Bởi vì thông tin trên mạng luôn thay đổi nên robots phải liên tục cập nhậtcác site cũ Mật độ cập nhật phụ thuộc vào từng hệ thống search engine Khisearch engine nhận câu truy vấn từ user, nó sẽ tiến hành phân tích, tìm trong cơ
sở dữ liệu chỉ mục và trả về những tài liệu thoả yêu cầu
Trang 112.3 Ứng dụng của Robot
2.3.1 Phân tích, thống kê (Statistical Analysis)
Robot đầu tiên được dùng để đếm số lượng web server, số tài liệu trungbình của một server, tỉ lệ các dạng file khác nhau, kích thước trung bình của mộttrang web, độ kết dính, …
2.3.2 Duy trì siêu liên kế (Maintenance)
Một trong những khó khăn của việc duy trì một siêu liên kết là nó liên kếtvới những trang bị hỏng (dead links) khi những trang này bị thay đổi hoặc thậmchí bị xóa Thật không may vẫn chưa có cơ chế nào cảnh báo các bộ duy trì về
sự thay đổi này Trên thực tế khi các tác giả nhận ra tài liệu của mình chứanhững liên kết hỏng, họ sẽ thông báo cho nhau, hoặc thỉnh thoảng độc giả thôngbáo cho họ bằng email
Một số robot, chẳng hạn MOM spider có thể trợ giúp tác giả phát hiện cácliên kết hỏng cũng như duy trì các cấu trúc siêu liên kết cùng nội dung của một
Trang 12trang web Chức năng này lặp lại liên tục mỗi khi một tài liệu được cập nhật,nhờ đó mọi vấn đề xảy ra sẽ được giải quyết nhanh chóng.
2.3.3 Ánh xạ địa chỉ web (Mirroring)
Mirroring là một kỹ thuật phổ biến trong việc duy trì các kho dữ liệu củaFPT Một ánh xạ (mirror) sẽ sao chép toàn bộ cấu trúc cây thư mục và thườngxuyên cập nhật những file bị thay đổi Điều này cho phép nhiều người cùng truyxuất một nguồn dữ liệu, giảm số liên kết bị thất bại, nhanh hơn và ít chi phí hơn
so với truy cập trực tiếp vào site thực sự chứa các dữ liệu này
2.3.4 Phát hiện tài nguyên (Resource Discovery)
Có lẽ ứng dụng thú vị nhất của robot là dùng nó để phát hiện tài nguyên.Con người không thể kiểm soát nổi một khối lượng thông tin khổng lồ trong môitrường mạng Robot sẽ giúp thu thập tài liệu, tạo và duy trì cơ sở dữ liệu, pháthiện và xoá bỏ các liên kết hỏng nếu có, kết hợp với công cụ tìm kiếm cung cấpthông tin cần thiết cho con người
2.3.5 Kết hợp các công dụng trên (Combined uses)
Một robot có thể đảm nhận nhiều chức năng Ví dụ RBSE Spider vừathống kê số lượng tài liệu thu được vừa tạo cơ sở dữ liệu Tuy nhiên nhữngứngdụng như thế còn khá ít ỏi
2.4 Robot chỉ mục (Robot Indexing)
Trong quá trình thu thập thông tin phục vụ cho bộ lập chỉ mục, ta cần giảiquyết những vấn đề sau:
- Một là: Trong môi trường mạng, robot lấy thông tin từ các site Vậyrobot sẽ bắt đầu từ site nào? Điều này hoàn toàn phụ thuộc vào robot Mỗi robotkhác nhau sẽ có những chiến lược khác nhau Thường thì robot sẽ viếng thămcác site phổ biến hoặc những site có nhiều liên kết dẫn đến nó
- Hai là: Ai sẽ cung cấp địa chỉ của các site này cho robot ?
Có 2 nguồn:
+ Robot nhận các URL ban đầu từ user
Trang 13+ Robot phân tích các trang web để lấy các URL mới, đến lượt các URLnày trở thành địa chỉ đầu vào cho robot Quá trình này được lặp lại liên tục.
- Ba là: Chọn dữ liệu nào trong tài liệu để lập chỉ mục ?
Quyết định chọn dữ liệu nào trong tài liệu cũng hoàn toàn phụ thuộc vàorobot, thường thì những từ được liệt kê như sau được xem là quan trọng:
+ Ở góc cao của tài liệu
+ Trong các đề mục
+ Được in đậm (inktomi)
+ Trong URL
+ Trong tiêu đề (quan trọng)
+ Trong phần miêu tả trang web (description)
+ Trong các thẻ dành cho hình ảnh (ALT graphisc)
+ Trong các thẻ chứa từ khóa
+ Trong các text liên kết
Một số robot lập chỉ mục trên tiêu đề, hoặc một số đoạn văn bản đầu tiênhoặc toàn bộ tài liệu (full text) Một số khác lại lập chỉ mục trên các thẻ META(META tags) hoặc các thẻ ẩn, nhờ vậy tác giả của trang web được quyền ấn định
từ khoá cho tài liệu của mình Tuy nhiên chức năng này bị lạm dụng quá nhiều
do đó các thẻ META không còn giữ được giá trị ban đầu của chúng nữa
2.5 Các chiến lược thu thập dữ liệu
Trước khi các trang web được đánh chỉ mục, tất cả các trang web phảiđược lấy về máy của robot Để lấy được tất cả các trang web, robot phải cóchiến thuật Từ một số trang web có sẵn, robot lọc ra danh sách các liên kết, rồi
từ đó dò tìm các trang khác
Có 3 chiến thuật tìm kiếm Heuristic sau: tìm kiếm theo chiều sâu, tìmkiếm theo chiều rộng và tìm kiếm ngẫu nhiên
Trang 142.5.1 Chiến lược tìm kiếm theo chiều sâu
Từ một danh sách chứa các liên kết cần duyệt, thực hiện các bước sau:(1) Cho danh sách = {trang đầu tiên}
1 (2) Lấy trang đầu tiên trong danh sách
o Nếu có qua (3)
o Nếu không qua (5)
2 (3) Trang này đã xét tới chưa ?
o Nếu rồi, quay lại (2)
o Nếu chưa, qua (4)
3 (4) Đánh dấu đã tới rồi Phân tích và tìm xem liên kết có trong trang đókhông?
(4a) Nếu có, thêm liên kết này vào đầu danh sách Quay lại (4)
(4b) Nếu không, quay lại (2)
4 (5) Kết thúc
Phần 1 Chiến lược tìm kiếm theo chiều rộng
Từ một danh sách chứa các liên kết cần duyệt, thực hiện các bước sau:
1 (1) Cho danh sách = {trang đầu tiên}
2 (2) Lấy trang đầu tiên trong danh sách
o Nếu có qua (3)
o Nếu không qua (5)
3 (3) Trang này đã xét tới chưa ?
o Nếu rồi, quay lại (2)
o Nếu chưa, qua (4)
4 (4) Đánh dấu đã tới rồi Phân tích và tìm xem liên kết có trong trang đókhông?
o (4a) Nếu có, thêm liên kết này vào cuối danh sách Quay lại (4)
o (4b) Nếu không, quay lại (2)
5 (5) Kết thúc
Trang 152.5.2 Chiến lược tìm kiếm theo ngẫu nhiên
Từ một danh sách chứa các liên kết cần duyệt, thực hiện các bước sau:
1 (1) Cho danh sách = {trang đầu tiên}
2 (2) Lấy ngẫu nhiên một trang trong danh sách
o Nếu có qua (3)
o Nếu không qua (5)
3 (3) Trang này đã xét tới chưa ?
o Nếu rồi, quay lại (2)
o Nếu chưa, qua (4)
4 (4) Đánh dấu đã tới rồi Phân tích và tìm xem liên kết có trong trang đókhông?
o (4a) Nếu có, thêm liên kết này vào cuối danh sách Quay lại (4)
o (4b) Nếu không, quay lại (2)
5 (5) Kết thúc
2.6 Những vấn đề cần lưu ý của web robot
2.6.1 Chi phí và hiểm hoạ
Việc sử dụng các Robot tốn khá nhiều chi phí, đặc biệt là khi chúng đượcđiều khiển từ xa trên internet Phần này chúng ta sẽ cùng thảo luận về nhữnghiểm hoạ do robot gây ra
2.6.2 Quá tải mạng và server (Network resource and server load)
Sau một khoảng thời gian dài, thường là một tháng, robot sẽ bắt đầu hoạtđộng một cách liên tục Để tăng tốc nhiều robot được phóng ra đồng thời do đócần có băng thông lớn Tài nguyên mạng bị khai thác quá mức khi robot yêu cầumột lượng lớn thông tin trong khoảng thời gian quá ngắn(rapid fire) Kết quả làthiếu băng thông cho những ứng dụng khác Server vừa phải phục vụ yêu cầucủa robot vừa cung cấp dịch vụ cho user, do đó yêu cầu của robot tăng lên baonhiêu thì dịch vụ sẽ giảm xuống bấy nhiêu
Trang 16Tác giả của một con robot đã thử nghiệm bằngcách cho thi hành 20 lượttruy cập đồng thời vào server của anh ta.Những lúc robot thu thập thông tin,server bị chậm lại Trong vòng một tuần robot đã viếng thăm site này với mộtyêu cầu kinh khủng Chỉ sau 170 lượt truy xuất liên tục, thử nghiệm thất bại doserver bị quá tải.
Rapid fire thực sự là thảm hoạ Hiệu quả truyền tải thông tin dạng nàybằng giao thức web hay HTTP sụt giảm thấy rõ Những giao thức mới đangđượcxem xét nhằm cứu vãn tình thế
2.6.3 Sự cập nhật quá mức (Updating overhead)
Người ta cho rằng các cơ sở dữ liệu do web robot tạo ra có thể được cậpnhật tự động nhưng cho đến thời điểm này vẫn chưa có cơ chế kiểm soát sự thayđổi trên web một cách hiệu quả Cập nhật thông tin rất quan trọng nhưng quáthường xuyên là điều không cần thiết
Xuất phát từ thực tế đó HTTP đưa ra kỹ thuật ‘if - Modified - Since’ giúpcác user -agent xác định được thời điểm tài liệu thay đổi Robot phát hiện điềunày chỉ khi nó lưu lại các thông tin cũ nhưng sẽ tốn nhiều bộ nhớ và cần dữ liệuphức tạp
Một trong những đặc tính phổ biến của robot là khả năng tiếp nhận các từcần tìm trong khi vẫn thu thập dữ liệu Tuy nhiên một số người cho rằng đặc tínhnày không đáng hoan nghênh bởi hai lý do:
Đầu tiên, các tác vụ tìm kiếm của người sử dụng cuối (end - user) gópphần đẩy server vào chổ quá tải
Thứ hai, không có cơ sở đảm bảo có mối quan hệ giữa các từ cần tìm,đúng chính tả và tối ưu đối với cơ sở dữ liệu Ví dụ, nếu bộ tìm kiếm không hỗtrợ các toán tử boolean, một user cần dữ liệu về xe máy muốn có được thông tinđúng thay vì nhập vào cụm từ ‘Ford and garage’ phải nhập vào từ ‘car’ Nhưngngười đó không hề ý thức được điều này
Một khía cạnh nguy hiểm nữa bắt nguồn từ sự định hướng sai lầm củaend-user Một số người sử dụng công cụ của mình rất tốt như dự đoán được
Trang 17lượng tài liệu lớn nhất có thể có, biết chính xác nơi cần tìm dữ liệu, giới hạn thờigian sử dụng robot, trong khi đó một số khác lại lạm dụng khả năng của robotmột cách vô tình hoặc cố ý Vì vậy các tác giả viết robot đề nghị chỉ nên phânphát sản phẩm của mình cho những end-user ‘hiểu’ được web robot và nhữngkhó khăn trong môi trường mạng.
2.6.4 Những tình huống không mong đợi (Bad implementations)
Thay vì kiểm tra trên máy cục bộ trước, một số tác giả lần đầu tiên viếtrobot cho thử ngay trên các server thực sự, điều này làm đau đầu không ít nhàquản trị web (web master)
Truy xuất trùng lặp có thể xảy ra khi robot không lưu lại dấu vết nhữngnơi nó đã đi qua hoặc nó không nhận diện được các URL mặc dù khác nhau vềtên nhưng lại cùng dẫn đến một địa chỉ, ví dụ địa chỉ DSN & IP
Đôi khi, robot lãng phí thời gian và tài nguyên chỉ để thu về những tài liệu
mà sau đó phải vứt đi Ví dụ hệ thống chỉ quan tâm đến file văn bản (text file)nhưng robot lại nhận cả những loại file khác như file hình ảnh, file thực thi, …
Trong môi trường mạng có những vùng gần như vô tận Vídụ, cứ mỗi lầnphân tích một trang robot nhận về cùng một URL nhưng xa hơn một cấp, ‘/cgi-bin/pit/’, và tiếp tục ‘/cgi-bin/pit/a/’,‘/cgi-bin/pit/a/a’, … Sự lặp lại không cóđiểm dừng này được gọi là các lỗ đen (black holes)
2.6.5 Tiêu chuẩn loại trừ robot
Trong quá trình xử lý robot không thể tự quyết định tài liệu nào được lậpchỉ mục, 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 độngthu thập Tiêu chuẩn loại trừ robot ra đời Các chuẩn này chẳng những chỉ raURL nào cần tránh mà còn cảnh báo robot về các lỗ đen
2.6.5.1 File robot.txt
Robot.txt là một file cấu trúc được đặt tại thư mục gốc của server, gồm 2trường User-agent và Disallow
Trang 18User-agent: cho biết robot nào sẽ bị kiểm soát.
Disallow: cho biết robot có được phép kết nối vào URL này hay không.Xét các ví dụ sau:
Bảng 1: Ví dụ về chuẩn loại trừ robot dùng file robot.txt
Robot có tên là lycra bị cấm trên tất
cả các trang của site
2.6.5.2 Thẻ META dành cho robot (Robot META tag)
META tag là sự mở rộng của chuẩn loại trừ robot, hỗ trợ cho tác giả củanhững trang web không có quyền admin
Bảng 2: Thông tin về META tag trong chuẩn loại trừ robot
Vị trí Nằm trong phần HEAD của file
HTML
Content
Cờ định hướng cho robot, các cờ này
có thể kết hợp với nhau & được phâncách bằng dấu phẩy
Sau đây là bảng các giá trị Meta Tags thường được các Webmaster sử dụng:
Bảng 3: Giá trị các cờ của thuộc tính Content trong META tag
[NO]INDEX Robot không nên lập chỉ mục cho
trang này
Trang 19trang nàyALL = INDEX, FOLLOW Robots lập chỉ mục và lấy các liên
kết từ trang này
NONE= NOINDEX, NOFOLLOW Robots không lập chỉ mục và không
lấy chỉ số từ trang này
2.6.5.3 Nhược điểm của file robot.txt
Ngườita cho rằng việc liệt kê các trang hoặc các thư mục trongfilerobot.txt sẽ là nguyên nhân thu hút sự chú ý từ các ‘vị khách không mời‘.Thực ra chuẩn loại trừ robots chỉ là dấu hiệu cảnh báo, không là biện pháp cấmrobots cho nên việc tuân theo hay không hoàn toàn là vấn đề tự nguyện Tuynhiên ta vẫn có cách khắc phục:
Một là:
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ộttrong 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ấmkhá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!Hai là: chứng thực (athorization) Đây là biện pháp hữu hiệu, được sử dụngtrong nhiều lĩnh vực, đặc biệt trong những môi trường mà sự an toàn dữ liệu trởnên rất cần thiết
Tóm tắt:
Có thể nói webrobot là con dao 2 lưỡi, sử dụng đúng sẽ giải quyết đượcnhiều vấn đề, sử dụng sai sẽ để lại những hậu quả khó đoán Sau đây là tóm tắtcho những vấn đề cần lưu ý của web robot
Trang 20Tránh lãng phí tài nguyên
Chỉ tải về những tài liệu cần thiết
Nếu hệ thống chỉ quan tâm đến các file text (.html, .htm, .xml, …),webrobot nên bỏ qua các liên kết dẫn đến những file thực thi (.exe, …),file ảnh(.gif, bmp, …)
Bỏ qua các trường dữ liệu hệ thống không dùng đến
Đừng lấy về các trang giống nhau nhiều hơn một lần
Tránh cập nhật lại các site cũ quá thường xuyên bằng cách:
Ghi nhớ những địa chỉ web robot đã duyệt qua
Dựa vào trường LastModified, trường head Nếu các trường này khác với
dữ liệu ta đã có thì đó là những thông tin cần ghi nhận
Không nên duyệt hết một site, chỉ cần duyệt đến một độ sâu (deep link)cần thiết
Tránh làm quá tải server
Duy trì một khoảng thời gian đợi giữa các lần truy xuất liên tiếp
Kết nối với server vào những thời điểm thích hợp Tham khảo ý kiến củaadmin để biết thông tin này
Kiểm tra web robot trên máy cục bộ, sửa lỗi trươc khi chạy trên serverthực sự
Tuân theo các luật loại trừ robot
Phần 3
MÁY TRUY TÌM DỮ LIỆU
Máy truy tìm hay máy tìm kiếm (tiếng Anh: search engine), hay còn
được gọi với nghĩa rộng hơn là công cụ tìm kiếm (search tool), nguyên thuỷ là
một phần mềm nhằm tìm ra các trang trên mạng Internet có nội dung theo yêucầu người dùng dựa vào các thông tin mà chúng có Trữ lượng thông tin này của
công cụ tìm kiếm thực chất là một loại cơ sở dữ liệu (database) cực lớn Việc
Trang 21tìm các tài liệu sẽ dựa trên các từ khóa (keyword) được người dùng gõ vào và trả
về một danh mục của các trang Web có chứa từ khóa mà nó tìm được
Từ khóa được hiểu như là một tổ hợp các từ của một ngôn ngữ nhất định
được sắp xếp hay quan hệ với nhau thông qua các biểu thức logic mà công cụtìm kiếm hỗ trợ Trong trường hợp một từ khoá bao gồm nhiều hơn một chữ
(hay từ) thì có thể gọi tập họp tất cả các chữ đó là bộ từ khoá (set of keywords).
Cơ sở dữ liệu mà máy truy tìm sử dụng thường được bổ sung cập nhật
định kì bằng cách quét (scan), điều chỉnh, thêm bớt nội dung và chỉ số hoá lại tất
cả các trang mà nó có thể tìm gặp trên Internet
Ngày nay, với số lượng các trang Web lên đến hàng tỉ, nên việc tìm ra sốtrang có chứa nội dụng đòi hỏi của từ khoá có thể lên đến hàng triệu trang Do
đó, việc hiển thị các trang tìm thấy theo đúng thứ tự quan trọng của các trang vàtheo mong muốn của người dùng cũng là một trở ngại lớn đòi hỏi sự chắt lọc từmáy truy tìm và sự khéo léo về cách thức đặt ra từ khoá từ người dùng máy
Một bộ máy tìm kiếm dữ liệu là một hệ thống phần mềm máy tính giúpcon người tìm kiếm thông tin được lưu trữ trên hệ thống máy tính như mạngInternet, hoặc máy tính cá nhân Máy tìm cho phép người sử dụng yêu cầu cácthông tin với những hạn chế nhất định (thường được miêu tả bởi từ hoặc cụm từ)
và nhận về một danh sách các liên kết siêu văn bản thỏa mãn các hạn chế Máytìm sử dụng hệ thống chỉ mục để có thể tìm kiếm nhanh chóng và hiệu quả.Without further qua lification, máy tìm thường được hiểu là máy tìm nhữngthông tin công khai trên mạng Ngoài ra còn có các loại máy tìm khác như máytìm doanh nghiệp tìm thông tin trên mạng nội bộ, máy tìm cá nhân tìm thông tintrên máy tính cá nhân, và máy tìm di động
Một số máy tìm còn khai thác thông tin trong các nhóm tin, các cơ sở dữliệu lớn, hay trong các hệ thống thư mục mở như DMOZ.org Khác với hệ thốngthư mục mạng được duy trì bởi con người, máy tìm hoạt động dựa vào các thuật
Trang 22toán Những trang web được gọi là máy tìm thực chất là giao diện người dùngcủa các máy tìm sở hữu bởi các công ty khác nhau.
3.1 Các thuật ngữ liên quan
Các thuật toán hay kỹ thuật mà máy truy tìm dùng để xếp hạng hay đánhgiá tầm quan trọng của một trang Web theo một từ khoá cho trước gọi là sự
phân hạng (ranking), hay đơn giản hơn là phân hạng.
Các kỹ thuật thay đổi mã nguồn HTML của một trang Web cũng như các
kỹ thuật khác ngoài việc sửa mã nguồn HTML nhằm nâng cao tối đa thứ hạngcủa trang Web đối với một số từ khóa nào đó trên các máy truy tìm gọi là kỹ
thuật tối ưu hoá cho máy tìm kiếm hay SEO (từ tiếng Anh Search Engine
Optimization).
3.2 Hoạt động phân hạng các trang Web
Ngoài việc xử lý số lượng trang tìm thấy theo yêu cầu của một từ khoátrong kho dữ liệu cập nhật của nó, các máy truy tìm dữ liệu còn phải tìm cáchchống lại sự nhiễu loạn của các trang không có nội dung phù hợp với yêu cầunhưng vẫn lọt vào danh sách tuyển chọn của máy truy tìm
Nguyên do của các nhiễu loạn này là việc các trang Web chuyên về quảngcáo hay tiếp thị luôn luôn tìm cách để lọt vào hàng đầu trong danh sách tuyểnchọn của máy truy tìm, và qua đó họ có thể giới thiệu sản phẩm của họ đếnngười dùng Ngược lại, người dùng, trong đa số các trường hợp, không muốntìm các quảng cáo tiếp thị mà chỉ muốn tìm các dữ liệu khác theo ý đã ghi trong
từ khoá
Do các đặc điểm phức tạp trên, việc phân hạng các trang Web tìm đượcbởi một bộ từ khoá cho trước của máy truy tìm sẽ dựa vào việc áp dụng thêmcác thuật toán hay biện pháp xử lý đặc biệt:
3.2.1 Những tiêu chí quan trọng dùng trong phân hạng
Trang 23Dưới đây là các tiêu chí chủ yếu mà các thuật toán của các máy tìm kiếmWeb sử dụng để phân hạng các trang Web:
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ệcphân hạng một trang Web
Thẻ meta và câu lệnh title:
Theo ngôn ngữ HTML, thì thẻ meta là các câu lệnh nằm ở phần đầu (header) của mã của một trang Web Thẻ meta có dạng:
<META (các thông số cho câu lệnh meta)>
Trong nhiều máy truy tìm, người thiết kế còn cho rằng sự xuất hiện cácchi tiết hay toàn bộ nội dung của từ khoá càng sớm trong một trang mã HTMLthì đ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 phân hạng cao hơn nếu các phần haytoà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, máy truy tìm sẽ đọc nội dung và lấy ra các yếu tố phân hạng Các thẻ
meta có nhiều hiệu lực cho việc phân hạng 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ì thứ hạng của
nó có thể được nâng cao hơn
Ngôn ngữ: Nếu một người dùng đang nối vào Internet bằng một máy tính
sử dụng tiếng Pháp thì việc hiển thị các trang Web có cùng ngôn ngữ Pháp vớimáy tính đó rõ ràng là hiệu quả hơn cho người đó Do đó, yếu tố ngôn ngữ củatrang Web cũng được chú ý trong phân hạng