Vì những ưu điểm nổi trội của việc sử dụng các chương trình thông minh vào các máy tìm kiếm, giải quyết hiệu quả bài toán tìm kiếm thông tin nên tôi chọn đề tài “Nghiên cứu tác tử di độn
Trang 1MỤC LỤC
LỜI CẢM ƠN iii
LỜI CAM ĐOAN iv
DANH MỤC HÌNH ẢNH v
MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ MÁY TÌM KIẾM 3
1.1 Tổng quan về ứng dụng tìm kiếm thông tin trên Web 3
1.1.1 World Wide Web 3
1.1.2 Lịch sử phát triển máy tìm kiếm 5
1.1.3 Vai trò của việc tìm kiếm trên Web 7
1.2 Kiến trúc và nguyên tắc hoạt động của máy tìm kiếm 8
1.2.1 Giới thiệu chung 8
1.2.2 Nguyên tắc hoạt động 8
1.3 Phân loại máy tìm kiếm 10
1.3.1 Máy tìm kiếm thông thường 10
1.3.2 Máy siêu tìm kiếm- Meta Search Engine 10
1.4 Các thành phần chính của máy tìm kiếm 11
1.4.1 Bộ duyệt trang (Crawler) 11
1.4.2 Bộ lập chỉ mục Indexer 12
1.5 Các kỹ thuật tìm kiếm thông tin trong máy tìm kiếm 16
1.5.1 Tìm kiếm logic (Boolean) 17
1.5.2 Tìm kiếm theo mô hình không gian vector 17
1.5.3 Mô hình xác suất 19
1.6 Máy tìm kiếm Google 20
1.6.1 Giới thiệu 20
1.6.2 Cấu trúc máy tìm kiếm Google 20
1.6.3 Cấu trúc dữ liệu chính 22
1.6.4 Đánh chỉ mục cho web (indexing the web) 22
1.6.5 Tìm kiếm 23
1.6.6 Hệ thống xếp hạng 24
1.7 Nhược điểm cơ bản của của các máy tìm kiếm trên web truyền thống 25
CHƯƠNG 2: TÁC TỬ DI ĐỘNG VÀ ỨNG DỤNG TRONG 27
CÁC MÁY TÌM KIẾM 27
2.1 Tổng quan tác tử di động 27
2.1.1 Giới thiệu 27
2.1.2 Sự tiến hóa từ các mô hình ứng dụng phân tán 28
Trang 22.1.3 Khái niệm về tác tử di động 29
2.1.4 Các đặc tính của tác tử di động 31
2.1.5 Phân loại tác tử di động 32
2.1.6 Các lĩnh vực ứng dụng tiềm năng của tác tử di động 33
2.2 Nguyên lý hoạt động của tác tử di động 34
2.2.1 Các phương pháp thực thi code trong môi trường mạng 34
2.2.2 Vòng đời của một tác tử di động 35
2.2.3 Cơ chế di chuyển của tác tử di động 37
2.3 Tác tử di động trong máy tìm kiếm 40
2.3.1 Giới thiệu 41
2.3.2 Tác tử Web robot 42
2.3.3 Tác tử WebACE 45
2.3.4 Tác tử Web Hunter 48
CHƯƠNG 3: CÀI ĐẶT TÁC TỬ TÌM KIẾM THÔNG TIN 54
3.1 Giới thiệu bài toán tìm kiếm thông tin 54
3.2 Thiết kế web robot tìm kiếm 55
3.2.1 Lớp Catalog 58
3.2.2 Lớp Word 58
3.2.3 Lớp File 58
3.3 Cài đặt chương trình 59
3.3.1 Mô tả cơ chế hoạt động 59
3.3.2 Khởi tạo các lớp 60
3.3.3 Quá trình tách từ 60
3.4 Giao diện của chương trình 63
TÀI LIỆU THAM KHẢO 68
Trang 3LỜI CẢM ƠN
Để hoàn thành luận văn, em xin chân thành cảm ơn Trường Đại học Công nghệ Thông tin và Truyền thông, Phòng Đào tạo, các thầy, cô giáo giảng dạy lớp cao học Khoa học máy tính K12E đã quan tâm, tạo điều kiện thuận lợi, tận tình giảng dạy và giúp đỡ em trong thời gian theo học tại trường
Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc đến TS Phạm Thế Quế,
người đã dành nhiều thời gian, tâm huyết hướng dẫn em trong suốt quá trình nghiên cứu và hoàn thành luận văn
Em cũng xin cảm ơn các cán bộ, giảng viên đồng nghiệp ở Trường Đại học Hùng Vương - Phú Thọ đã tạo điều kiện về thời gian để em có thể học tập
và hoàn thành luận văn
Mặc dù đã cố gắng hết sức hoàn thiện luận văn, tuy nhiên chắc chắn vẫn còn nhiều thiếu sót, rất mong sự góp ý quý báu của qúy thầy cô và các bạn
Xin trân trọng cảm ơn
Thái Nguyên, ngày tháng năm 2015
Tác giả
Thiều Thị Tài
Trang 4LỜI CAM ĐOAN
Em xin cam đoan: Luận văn thạc sĩ Khoa học máy tính “Nghiên cứu tác tử di động và ứng dụng trong máy tìm kiếm trên web” này là công
trình nghiên cứu thực sự của cá nhân em, được thực hiện trên cơ sở nghiên cứu lý thuyết và dưới sự hướng dẫn khoa học của Tiến sĩ Phạm Thế Quế -
Giảng viên Học viện Bưu chính viễn thông - Hà Nội
Em xin chịu trách nhiệm về lời cam đoan này
Thái Nguyên, ngày tháng năm 2015
Tác giả
Thiều Thị Tài
Trang 5DANH MỤC HÌNH ẢNH
Hình 1.1: Kiến trúc tổng quan của máy tìm kiếm 9
Hình 1.2: Ví dụ về Simple Page Rank và Modified Page Rank 15
Hình 1.3: Các trang tài liệu và từ khóa đã được đánh chỉ mục 18
Hình 1.4: Tính độ tương tự giữa câu hỏi và tài liệu tìm thấy 19
Hình 1.5: Kiến trúc của máy tìm kiếm Google 20
Hình 1.6: Chỉ mục xuôi Forward barrels 43 GB 23
Hình 2.1: Sự tiến hóa của mô hình tác tử di động 29
Hình 2.2: Tác tử – phương pháp lập trình mới 30
Hình 2.3: Mô hình hoạt động tác tử di động 31
Hình 2.4: Vòng đời của một tác tử di động - Mobile Agent 36
Hình 2.5: Sơ đồ Tác tử di chuyển khỏi laptop đã disconnect 38
Hình 2.6: Di chuyển từ laptop đến laptop 38
Hình 2.7 Navigation Agent 40
Hình 2.8: Web robot và file robots.txt 43
Hình 2.9: Kiến trúc của agent WebACE 46
Hình 2.10: Tác tử hoạt động trên WebACE 47
Hình 2.11: Mô hình cài đặt Web ACE bằng JAVA 48
Hình 2.12: Các pha hoạt động của một agent tìm kiếm dạng WebHunter 50
Hình 2.13: Chu trình hoạt động của Web Hunter 52
Hình 3.1: Mô hình đối tượng 59
Hình 3.2: Cơ chế hoạt động của máy tìm kiếm web robot 59
Hình 3.3: Nội dung thư mục gốc của ứng dụng 60
Hình 3.4: Danh mục từ Catalog ( sau lần duyệt đầu tiên) 61
Hình 3.5: Biến locallink chứa các URL duyệt được 62
Hình 3.6: Giao diện chính của chương trình 64
Hình 3.7: Kết quả tìm kiếm với tìm kiếm thông thường 64
Hình 3.8: Kết quả tìm kiếm với tìm kiếm có tác tử 65
Trang 6MỞ ĐẦU
World Wide Web (gọi tắt là Web) là một kho thông tin khổng lồ của nhân loại và một môi trường truyền tải thông tin không thể thiếu được trong thời đại ngày nay Sự phổ biến và bùng nổ thông tin trên Web đã đặt ra những thách thức mới, làm thế nào để khai thác được thông tin trên Web một cách hiệu quả,
mà cụ thể là làm thế nào hỗ trợ tốt hơn việc khám phá thông tin và tìm kiếm thông tin nhanh chóng và chính xác hơn Để đáp ứng nhu cầu này, người ta sử
dụng các công cụ tìm kiếm, đó chính là các máy tìm kiếm
Máy tìm kiếm (Search Engine - viết tắt là SE) là công cụ được xây dựng
trên nền tảng web cho phép người sử dụng tìm kiếm thông tin Là nơi mà bạn tìm thấy bất kỳ thông tin nào bằng cách gõ các từ hoặc cụm từ (Key word) truy vấn Máy tìm kiếm sẽ trả về một danh sách kết quả các trang web liên quan đến cụm từ mà bạn truy vấn Hiện nay, có rất nhiều hệ thống tìm kiếm, từ những hệ thống lớn như: máy tìm kiếm Google, Yahoo, Altavista….đến các trang tìm kiếm cục bộ khác trên các website
Tuy nhiên, các máy tìm kiếm hiện nay được coi là hiệu quả, cũng mới chỉ tìm kiếm trên bề nổi của Web Trong khi ở tầng sâu của Web chứa một khối lượng thông tin khổng lồ và thường rất có giá trị thì tìm kiếm rất khó khăn Thông tin tìm kiếm không theo chủ đề mà tìm kiếm theo từ khoá đơn thuần Các hoạt động truy tìm thông tin phổ biến theo các siêu liên kết, được gọi là duyệt Web, cho phép người dùng có thể lướt các trang Web để lấy thông tin Vì vậy, độ chính xác và xác thực của thông tin không được đảm bảo Kết quả tìm kiếm phải do con người chọn lại theo chủ đề mong muốn
Những vấn đề này đã thúc đẩy sự ra đời của ý tưởng tác tử di động trong máy tìm kiếm, đáp ứng được yêu cầu tìm kiếm chính xác và thông minh Liên quan đến các khái niệm như: Agent tìm kiếm, Robot tìm kiếm, Spider… là các phần mềm thông minh được cài đặt trong máy tìm kiếm, tự động duyệt các trang web trên Internet và lấy thông tin về cho người dùng Việc cải tiến các chương
Trang 7trình thông minh này cũng là một điều rất cần thiết để máy tìm kiếm có thể đạt được hiệu quả tốt nhất
Vì những ưu điểm nổi trội của việc sử dụng các chương trình thông minh vào các máy tìm kiếm, giải quyết hiệu quả bài toán tìm kiếm thông tin nên tôi
chọn đề tài “Nghiên cứu tác tử di động và ứng dụng trong máy tìm kiếm trên Web” để làm luận án tốt nghiệp của mình Phương pháp ứng dụng tác tử di
động sẽ tạo ra một hệ thống tìm kiếm thông minh, hiệu quả, và dễ dàng hơn cho người dùng khi thực hiện tìm kiếm trên web
Luận văn gồm 3 chương
Chương 1: Tổng quan về máy tìm kiếm Nội dung của chương sẽ trình bày một cách tổng quát về máy tìm kiếm bao gồm: kiến trúc của máy tìm kiếm,
cơ chế hoạt động, các thành phần chủ yếu của một máy tìm kiếm, các kỹ thuật tìm kiếm thông tin trong máy tìm kiếm
Chương 2: Tổng quan về tác tử di động và ứng dụng trong máy tìm kiếm Nội dung của chương giới thiệu các kiến thức tổng quan về tác tử di động và phạm vi ứng dụng của nó như thế nào trong thực tế Mô tả một số kiến trúc tác
tử di động tìm kiếm được sử dụng thông dụng như web robot, web ace và web hunter Với những đặc tính thông minh, các tác tử di động đã nâng cao năng suất tìm kiếm thông tin cho các search engine, nguồn thông tin tìm thấy không bị giới hạn
Chương 3: Thử nghiệm và cài đặt một hệ thống tìm kiếm thông tin dựa trên tác tử di động, biểu diễn tài liệu theo mô hình vector Mô hình vector có nhiều ưu điểm: tìm kiếm dễ dàng, không yêu cầu người dùng phải có trình độ hiểu biết sâu, kết quả tìm được có độ chính xác cao…nâng cao năng suất tìm kiếm thông tin của máy tìm kiếm
Nhu cầu tìm kiếm thông tin là rất lớn, bởi vậy việc xây dựng được một hệ thống tìm kiếm thông tin hiệu quả, khắc phục được những những nhược điểm
mà các máy tìm kiếm hiện nay đang gặp phải có một ý nghĩa thực tiễn rất lớn, đòi hỏi hệ thống tìm kiếm cần phải thông minh hơn, đáp ứng được nhu cầu tìm kiếm của người dùng
Trang 8CHƯƠNG 1: TỔNG QUAN VỀ MÁY TÌM KIẾM 1.1 Tổng quan về ứng dụng tìm kiếm thông tin trên Web
1.1.1 World Wide Web
Word Wide Web, gọi tắt là Web hoặc WWW, là mạng thông tin toàn cầu
mà mọi người có thể truy nhập qua các máy tính kết nối với mạng Internet, đã trở thành một kho thông tin khổng lồ và không thể thiếu trong thời đại kinh tế trí thức Web được phát minh và đưa vào sử dụng vào khoảng năm 1990, 1991 bởi viện sĩ Viện Hàn lâm Anh Tim Berners - Lee và Robert Cailliau (Bỉ) tại CERN, Geneva, Switzerland
Các tài liệu trên World Wide Web được lưu trữ trong một hệ thống siêu văn bản (Hypertext) trên các Website đặt tại các máy chủ Web (WebServers) trên mạng Internet Người dùng phải sử dụng một chương trình được gọi là trình duyệt Web (Web Browser) để xem siêu văn bản thông qua hộp địa chỉ (Address) do người sử dụng yêu cầu (thông tin trong hộp địa chỉ được gọi
là tên miền - Domain Name), rồi sau đó chương trình sẽ tự động gửi thông tin đến máy chủ (Web Server) và hiển thị trên màn hình máy tính của người xem
Người dùng có thể theo các liên kết siêu văn bản (Hyperlink) trên mỗi trang Web để nối với các tài liệu khác hoặc gửi thông tin phản hồi theo máy chủ trong một quá trình tương tác Hoạt động truy tìm theo các siêu liên kết thường được gọi là duyệt Web Quá trình này cho phép người dùng có thể lướt Web để tìm kiếm và lấy thông tin Tuy nhiên độ chính xác và xác thực của thông tin không được đảm bảo, tốn thời gian và công sức
Hiện nay, Internet phát triển với tốc độ chóng mặt, lượng thông tin được chia sẻ trên nó ngày càng nhiều về số lượng, chủng loại Những thông tin đó có đặc trưng khác so với những thông tin tập trung:
Tài liệu không nằm tại local: Tài liệu không nằm tập trung tại local mà
được phân tán tại rất nhiều các host khác nhau
Trang 9 Tích hợp nhiều loại tài liệu: cùng một chủ đề nhưng số lượng thông tin,
số lượng tài liệu được chia sẻ trên Internet là rất lớn và có rất nhiều loại khác nhau: văn bản, ảnh, video,…
Tài liệu thay đổi liên tục cả nội dung và số lượng: Thông tin trên mạng
Internet không phải là thông tin tĩnh mà luôn luôn thay đổi, cập nhật liên tục hàng ngày, hàng giờ, hàng phút và có thể tính theo giây
Tài liệu có số lượng khổng lồ: hàng ngàn các server có dung lượng
khổng lồ được dùng để chứa các nguồn thông tin trên Internet Với mỗi lĩnh vực của cuộc sống, của xã hội thì lượng thông tin được đưa lên và truyền tải trên mạng là rất lớn Một khối lượng thông tin khổng lồ và thường rất có giá trị, có rất ít đường liên kết với các trang Web khác nên việc tìm kiếm là khó khăn
Có rất nhiều tài liệu gần như là sao chép nhau (30%): cùng một tài
liệu, một thông tin được lặp lại tương đối nhiều lần bởi nhiều người cùng chia
sẻ, nhiều server cùng đăng tải….dẫn đến việc sao chép tài liệu là vô cùng phổ biến Điều này có ảnh hưởng rất lớn đến hiệu quả của việc tìm kiếm thông tin của người dùng
Với các đặc trưng của thông tin trên Internet, khi một người dùng muốn tìm được thông tin mình cần không phải là điều dễ dàng Khi người dùng gõ một
từ khóa tìm kiếm thì kết quả trả về là vô cùng lớn Các tài liệu được trả về có ít nhiều liên quan đến tài liệu người dùng mong muốn Tuy nhiên để đọc hết được tất cả các tài liệu đó là điều người dùng không mong muốn vì người dùng luôn muốn thông tin trả về gần nhất, chính xác nhất với thông tin mà họ cần tìm Để giải quyết được yêu cầu này, người dùng sử dụng các máy tìm kiếm
Máy tìm kiếm (Search Engine - viết tắt là SE) là công cụ được xây dựng
trên nền tảng web cho phép người sử dụng tìm kiếm thông tin Là nơi mà bạn tìm thấy bất kỳ thông tin nào bằng cách gõ các từ hoặc cụm từ (Key word) truy vấn Máy tìm kiếm sẽ trả về một danh sách kết quả các trang web liên quan đến cụm từ mà bạn truy vấn [2]
Đa số các máy tìm kiếm trên Web truyền thống đều tìm kiếm dựa trên
Trang 10chế do các tài nguyên trên Web là các tài nguyên phi cấu trúc Vì vậy các máy tìm kiếm chỉ có thể dựa theo từ khóa để tìm kiếm thông tin và sẽ có rất nhiều kết quả không mong muốn được trả về cho người dùng Các nhà cung cấp cũng đã
đề xuất nhiều giải pháp nhằm cải thiện hiệu quả tìm kiếm như các thuật toán sắp hạng, các thuật toán tìm từ đồng nghĩa, tìm các từ khóa liên quan…Tuy nhiên, kết quả tìm kiếm vẫn chưa thỏa mãn được yêu cầu của người dùng
Các máy tìm kiếm truyền thống gặp phải hai vấn đề chính:
- Mỗi từ khóa có thể có một hay nhiều ý nghĩa tùy theo từng ngữ cảnh và bộ máy tìm kiếm không thể hiện mối quan hệ giữa các từ khóa với nhau
- Rất nhiều trang Web có liên quan đến từ khóa nhưng lại không chứa từ khóa
đó trong nội dung thì sẽ không tồn tại trong kết quả tìm
Đây là những vấn đề khác biệt giữa máy tìm kiếm dựa trên Web truyền thống (dựa trên từ khóa) và máy tìm kiếm dựa trên tác tử di động Sức mạnh của tác tử di động sẽ được thể hiện trong việc hỗ trợ các công cụ tìm kiếm Với các phần mềm thông minh, các dữ liệu trả về sẽ mang tính ngữ nghĩa nhiều hơn, gần với yêu cầu của người dùng hơn
Một thí dụ minh họa cho sự chưa hiệu quả của các máy tìm kiếm dựa trên Web hiện tại – từ khóa: Giả sử bạn là một nhân viên của một doanh nghiệp Bạn muốn có một số thông tin về một phụ nữ mà bạn đã gặp tại buổi hội thảo về “Mã
số, mã vạch” vào năm ngoái Bạn chỉ nhớ rằng, tên người phụ nữ đó là “Cúc”, là một nhân viên của một doanh nghiệp đối tác với doanh nghiệp của bạn, và con gái của bà ta đang học tại Trường Đại học Hùng Vương
Việc truy vấn theo từ khóa để tìm được thông tin như mong muốn là điều hết sức khó khăn
1.1.2 Lịch sử phát triển máy tìm kiếm
Năm 1990, công cụ đầu tiên được sử dụng cho việc tìm kiếm trên Internet,
có tên là Archie, được xây dựng bởi Alan Emtage, một sinh viên của trường đại học McGill ở Montreal, Canada Công cụ này có khả năng download các danh sách thư mục của tất cả các file được đặt trên các trang sử dụng giao thức FTP
Trang 11(File Transfer Protocol), sau đó tạo một cơ sở dữ liệu của tên các file sao cho có thể tìm kiếm trên đó Tuy nhiên, Archie không đánh chỉ mục nội dung các file
Năm 1991, Mark McCahill ở trường đại học Minnesota đã tạo ra giao thức Gopher nhằm cải tiến giao thức FTP hiện tại Sự xuất hiện của Gopher đã kéo theo sự xuất hiện của phần mềm tìm kiếm mới là Veronica (là viết tắt của Very Easy Rodent-Oriented Net-wide Index to Computerized Archives) và Jughead (Jonzy's Universal Gopher Hierarchy Excavation And Display) Hai chương trình này tìm kiếm tên các các tên file và các tiêu đề được lưu trữ trong các hệ thống chỉ mục của Gopher
Năm 1993, máy tìm kiếm đầu tiên có tên là Wandex, sử dụng web crawler Wanderer được phát triển bởi Matthew Gray ở Viện công nghệ Massachusetts (MIT) Một máy tìm kiếm khác cũng xuất hiện năm 1993 là Aliweb và vẫn còn được sử dụng cho đến ngày nay
Đầu năm 1994, JumpStation ra đời và sử dụng một crawler để tìm kiếm các trang web, nhưng việc tìm kiếm chỉ dừng lại ở tiêu đề của các trang web Cũng trong năm này, một trong những máy tìm kiếm dựa trên “full-text” crawler cũng đã ra đời và có tên là WebCrawler Không giống như các máy tìm kiếm trước đó, WebCrawler cho phép người dùng tìm kiếm bất kì từ nào trong các trang web, việc tìm kiếm này đã trở thành một chuẩn cho tất cả các máy tìm kiếm sau này Cũng trong năm 1994, trường đại học Carnegie Mellon cũng đã khởi động máy tìm kiếm Lycos với mục đích thương mại
Năm 2000, máy tìm kiếm Google đã nổi lên và chiếm ưu thế trên thị trường Google đã thu được kết quả tìm kiếm tốt hơn nhờ việc sử dụng thuật toán sắp hạng PageRank và nổi lên như một máy tìm kiếm tốt nhất lúc bấy giờ
Cũng trong năm 2000, Yahoo cũng cung cấp các dịch vụ tìm kiếm dựa trên máy tìm kiếm của Inktomi Yahoo! đã mua Inktomi năm 2002 và Overture (đang nắm giữ AlltheWeb và AltaVista) năm 2003 Đến năm 2004, họ đã đưa ra máy tìm kiếm của riêng mình nhờ tổng hợp các công nghệ đã thu được
Microsoft khởi động công cụ MSN Search (còn được gọi là Live Search)
từ mùa thu năm 1998 bằng việc sử dụng các kết quả tìm kiếm của Inktomi
Trang 12Trong năm 1999, cũng có một thời gian ngắn Microsoft sử dụng AltaVista cho trang tìm kiếm của họ Năm 2004, Microsoft đã bắt đầu chuyển sang công nghệ tìm kiếm của riêng họ bằng việc sử dụng web crawler riêng được gọi là msnbot
Đến cuối năm 2007, Google đã trở thành máy tìm kiếm được sử dụng phổ biến nhất trên toàn thế giới Trong khi đó, ở một số nước cũng có một số máy tìm kiếm riêng được dùng phổ biến nhất trong phạm vi của riêng nước đó Ví dụ
điển hình nhất là máy tìm kiếm Baidu của Trung Quốc
Hiện nay các máy tìm kiếm sử dụng 2 hệ thống tìm kiếm: một do các
chương trình máy tính tự động tạo ra (Crawler-Based Search Engines) và dạng thư mục Internet do con người quản lý (Human-Powered Directories) Hai hệ
thống tìm kiếm này tìm và lập danh mục website theo 2 cách khác nhau
1.1.3 Vai trò của việc tìm kiếm trên Web
Với sự xuất hiện của World Wide Web, lượng thông tin trên Internet ngày càng tăng lên một cách nhanh chóng Sự bùng nổ của lượng thông tin này khiến việc tìm kiếm thông tin trên Web là rất cần thiết Cũng giống như khi một sinh viên tới thư viện để tìm đọc một cuốn sách, nhưng anh ta lại chỉ nhớ một phần tên của sách Anh ta không thể tự mình đến tất cả các giá sách để tìm ra quyển sách của mình Và một giải pháp tối ưu là sử dụng phần mềm tìm kiếm trên máy tính để tìm tên sách và vị trí đặt sách tương ứng
Với thông tin trên Web cũng vậy, người dùng rất cần có những công cụ tìm kiếm giúp tìm ra được thông tin mình cần một cách nhanh chóng và chính xác Chính vì vậy, các máy tìm kiếm luôn là những ứng dụng cực kỳ quan trọng trong các dịch vụ trên Web
Các công ty công nghệ thông tin lớn nhất trên thế giới đều cố gắng tạo ra các máy tìm kiếm của riêng họ với những tính năng mới và khác biệt Qua đó có thể thấy rằng việc tìm kiếm trên Web không chỉ là một bài toán khó cần đầu tư nhiều để giải quyết mà đây còn là một thị trường kinh doanh đầy tiềm năng với những lợi nhuận khổng lồ
Trang 13Việc các công ty ra sức cạnh tranh để chiếm lĩnh thị phần cũng sẽ giúp cho người dùng có được những công cụ tìm kiếm tốt hơn, nhanh chóng và chính xác hơn nhờ việc các công ty không ngừng đưa ra các giải pháp mới
1.2 Kiến trúc và nguyên tắc hoạt động của máy tìm kiếm
1.2.1 Giới thiệu chung
Máy tìm kiếm Search Engine 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êu cầu người dùng dựa vào các thông tin mà người sử dụng cung cấp qua từ khoá tìm kiếm Máy tìm kiếm sẽ truy tìm trong cơ sở dữ liệu của nó và trả về danh mục các trang Web có chứa từ khoá mà người sử dụng đưa vào ban đầu
1.2.2 Nguyên tắc hoạt động
Máy tìm kiếm là một hệ thống phục vụ cho việc tìm kiếm thông tin trên Internet như: google, Yahoo,… Các máy tìm kiếm tuy sử dụng các phương pháp khác nhau nhưng đều có 1 kiến trúc giống nhau ( xem hình 1.1)
Nguyên tắc chung của các máy tìm kiếm là lưu trữ tất cả thông tin về các trang Web được thu thập bởi Web Crawler, là một trình duyệt Web tự động duyệt theo tất cả các đường link mà nó nhìn thấy Nội dung của mỗi một trang Web sẽ được phân tích và quyết định đánh chỉ mục hay không [2] Thông tin về các trang Web đánh chỉ mục được lưu trữ trong một cơ sở dữ liệu chỉ mục để sử dụng cho các truy vấn Một số máy tìm kiếm (chẳng hạn như Google) lưu lại tất
cả các phần của trang nguồn (lưu vào cache) trong khi đó một số khác (chẳng hạn như AltaVista) lại lưu trữ mọi từ (word) mà nó tìm thấy ở tất cả các trang Các trang được lưu trong cache rất có ích khi nội dung của trang đã được cập nhật khi mà các từ khóa tìm kiếm lại không xuất hiện ở trong nội dung của nó
Khi người dùng (client) nhập vào các từ khóa truy vấn (câu hỏi), thành phần xử lý truy vấn nhận yêu cầu và thực hiện các xử lý cần thiết, sau đó chuyển cho bộ phận crawler Bộ tìm duyệt trang web (spider, hay còn có nhiều tên gọi khác: crawler, web robot …) thực hiện duyệt các trang thuộc các website trên
Trang 14Internet tìm ra các địa chỉ URL có chứa các tài liệu liên quan Số lượng các URL thu được là rất lớn được lưu trữ trong kho, thành phần đánh chỉ mục trang (indexer) sẽ đánh chỉ số trên các trang web, sau đó bộ phận ranking thực hiện tính hạng trang và hiển thị cho người dùng theo trình tự
Người dùng
Bộ xử lý câu hỏi
Kho chứa trang web
Các loại chỉ mục nội dung (Text)
cấu trúc (Structure)
tiện ích (utility)
Bộ trình duyệt web (crawler)
Bộ đánh chỉ mục (Indexer)
Tính hạng trang (ranking)
Điều khiển trình duyệt (Crawl Conttrol )
Phản hồi (feedback)
Hình 1.1: Kiến trúc tổng quan của máy tìm kiếm
Có nhiều máy tìm kiếm sử dụng kỹ thuật thu thập phản hồi của người dùng để giúp việc tìm kiếm được thông minh và chính xác hơn Máy tìm kiếm như vậy phải giải quyết được các tham số đặc trưng sau:
- Phương pháp biểu diễn tài liệu và câu truy vấn
- Các cách thức để xử lý đối với tài liệu và câu truy vấn của người dùng
- Phương pháp tính hạng tài liệu tìm được cho yêu cầu người dùng
Tính hiệu quả của các máy tìm kiếm phụ thuộc vào độ chính xác của các kết quả trả về Trong số hàng tỷ các trang Web có chứa các từ khóa, thì rất nhiều trang Web có độ ưu tiên cao hơn những trang Web khác Hầu hết các máy tìm kiếm thực hiện phương thức sắp hạng cho các kết quả để trả về những kết quả tốt nhất Việc quyết định trang Web nào là tốt nhất, gần nhất với yêu cầu người dùng là khác nhau ở các máy tìm kiếm khác nhau
Trang 151.3 Phân loại máy tìm kiếm
Xét theo phương pháp tìm kiếm thì các máy tìm kiếm được chia làm hai loại chính: Tìm kiếm thông thường và siêu tìm kiếm
1.3.1 Máy tìm kiếm thông thường
Các máy tìm kiếm thông thường thực hiện công việc tìm kiếm theo qui
trình thu thập tài liệu, phân loại và tạo chỉ mục Chúng gồm hai loại Search Engine sử dụng thư mục chủ đề và Search Engine tạo chỉ mục tự động [2]
Các Search Engine sử dụng thư mục chủ đề: Các Search Engine loại này
phân lớp sẵn các trang trên Internet vào các thư mục chủ đề và theo các cấp chi tiết hơn của chủ đề Người dùng tìm kiếm thông tin bằng cách đi lần lượt từ chủ
đề rộng rồi đến chủ đề hẹp hơn cho đến khi tìm ra các trang Web mà mình muốn Kiểu tìm kiếm này có ưu điểm là các chủ đề chính xác hơn và cơ sở dữ liệu nhỏ hơn cơ sở dữ liệu của các Search Engine sử dụng công nghệ phân loại
tự động Nhược điểm của các Search Engine loại này là các thư mục chủ đề thường hạn chế không thể bao gồm hết mọi chủ đề mà người sử dụng muốn tìm Hơn nữa, sự phân loại mang tính chủ quan của người phân loại Điển hình của loại này là Yahoo với địa chỉ trang chủ http://www.yahoo.com
Các Search Engine phân loại và tạo chỉ mục tự động: Đây chính là các
Search Engine thuộc kiểu Crawler-Based Search Engines
1.3.2 Máy siêu tìm kiếm- Meta Search Engine
Meta Search Engine là loại máy truy tìm ảo, nó hoạt động dựa trên sự tồn tại của các Search Engine sẵn có Các Meta Search Engine không có cơ sở dữ liệu của riêng mình chúng sử dụng cơ sở dữ liệu của các Search Engine khác Khi có yêu cầu tìm kiếm máy siêu tìm kiếm sẽ gửi từ khóa đến các Search Engine khác một cách đồng loạt và nhận về tất cả các kết quả tìm được Nhiệm
vụ còn lại của máy siêu tìm kiếm là phân tích và phân hạng lại các kết quả tìm được
Trang 16Ưu điểm của loại máy này là nó sử dụng cơ sở dữ liệu của các Search Engine khác nên tìm được nhiều kết quả hơn
Nhược điểm là nó phải phụ thuộc vào cơ sở dữ liệu của các Search Engine khác
1.4 Các thành phần chính của máy tìm kiếm [2]
Các thành phần chính của máy tìm kiếm: bộ tìm duyệt web (crawler), bộ đánh chỉ mục (indexer), thành phần tính hạng trang (ranking)… mỗi thành phần thực hiện những tác vụ khác nhau, và hỗ trợ lẫn nhau để thực hiện tìm kiếm thông tin theo yêu cầu người dùng
- Bộ tìm duyệt web (crawler): tự động duyệt và tải các tài liệu, các trang
Web trên Internet
- Bộ đánh chỉ mục (indexer): Đánh chỉ mục cho các tài liệu trong CSDL
- Thành phần tính hạng trang (ranking): Thực hiện tính hạng trang và hiển thị theo thứ tự
1.4.1 Bộ duyệt trang (Crawler)
Bộ tìm duyệt Crawler thu thập các trang trên Internet rồi chuyển cho bộ đánh chỉ mục Indexer Crawler xuất phát từ tập các URL ban đầu S0 Đầu tiên
nó sắp xếp các phần tử trong tập S0 vào một hàng đợi, sau đó lấy dần các URL theo thứ tự và tải về các trang tương ứng, Crawler trích tất cả các URL có trong các trang vừa tải về rồi lại đưa vào hàng đợi Quá trình trên tiếp tục cho đến khi Crawler quyết định dừng lại Do số lượng các trang tải về rất lớn và tốc độ thay đổi nhanh chóng của Web nên xuất hiện những vấn đề cần giải quyết:
- Lựa chọn các trang để tải về: Trong hầu hết các trường hợp, Crawler không thể tải tất cả các trang trên Web, kể cả những cỗ máy tìm kiếm hoàn thiện nhất Vì vậy, việc lựa chọn kỹ các trang trước khi tải về là rất cần thiết Thứ tự sắp xếp các URL của các trang trong hàng đợi và việc lấy các trang từ hàng đợi
ra tuân theo thứ tự thời gian
- Cách cập nhật các trang: Mỗi lần duyệt Crawler tải về số lượng lớn các trang Web, và sau một thời gian nó phải thực hiện ghé thăm lại các trang này và
Trang 17cập nhật các thay đổi Crawler phải xem xét trang nào ghé thăm lại và trang nào không nên ghé thăm lại Những trang thường xuyên thay đổi thì nên ghé thăm lại và cập nhật nhiều hơn những trang ít thay đổi
- Song song hoá quá trình dò tìm trang web: Vì kích thước khổng lồ của Web nên các Crawler luôn luôn hoạt động dựa trên nhiều cỗ máy và đồng thời tải về các trang Việc này rất cần thiết để có thể tải về số lượng lớn các trang trong một khoảng thời gian chấp nhận được Các Crawler song song phải được
bố trí một cách hợp lý sao cho một Crawler không ghé thăm các trang mà một Crawler khác đã thăm
1.4.2 Bộ lập chỉ mục Indexer
Việc tìm kiếm chuỗi văn bản trong tài liệu bằng cách so khớp trực tiếp sẽ tốn rất nhiều thời gian và không thể kiểm soát khi dữ liệu lớn Vì thế các tài liệu tải về cần phải được xử lý thích hợp trước khi thực hiện việc tìm kiếm Việc sử dụng các từ khoá hay thuật ngữ để mô tả nội dung của tài liệu theo một khuôn dạng ngắn gọn hơn được gọi là tạo chỉ mục cho tài liệu
Lập chỉ mục là quá trình phân tích và xác định các từ, cụm từ thích hợp cốt lõi có khả năng đại diện cho nội dung của tài liệu [2] Như vậy các từ, cụm
từ này phải “vừa đủ”, nghĩa là không quá ngắn để có thể thể hiện được nội dung của tài liệu, và cũng phải không quá dài để giảm chi phí lưu trữ và chi phí tìm kiếm và để loại bỏ kết quả dư thừa không phù hợp Trước đây, quá trình này thường được thực hiện một cách “thủ công” nên có độ chính xác cao Nhưng hiện nay, với lượng thông tin khổng lồ của Internet thì việc lập chỉ mục tự động mang lại hiệu quả cao hơn
Modul Indexer và Collection Analysis trong hình 1.1 có chức năng tạo ra nhiều loại chỉ mục khác nhau Modul Indexer tạo ra hai loại chỉ mục chính đó là chỉ mục đó là Text Index (chỉ mục nội dung) và chỉ mục Structure Index (chỉ mục liên kết) Dựa vào hai loại chỉ mục này bộ Collection Analysis tạo ra nhiều loại chỉ mục hữu ích khác:
Trang 18Link Index: tạo chỉ mục liên kết, các đoạn web đã duyệt được biểu diễn dưới dạng đồ thị với các đỉnh và các cạnh Mỗi nút trên đồ thị là một trang web
và đường nối trực tiếp từ nút A sang nút B biểu thị đường liên kết từ trang A sang trang B Gọi tập các trang được P trỏ tới là outward links, tập hợp những trang P trỏ tới P là income links
Text Index: Mặc dù kỹ thuật đánh chỉ mục dựa vào các liên kết được sử dụng để làm tăng hiệu quả và chất lượng của kết quả tìm kiếm Phương pháp đánh chỉ mục dựa theo nội dung (text-based) vẫn là một phương pháp quan trọng để định danh các trang có liên quan đến yêu cầu tìm kiếm
Chỉ mục kết hợp: Số lượng và kiểu của các chỉ mục Utility được quy định bởi bộ Collection Analysis tuỳ thuộc vào chức năng của bộ máy truy vấn và kiểu thông tin mà modul Ranking sử dụng Ví dụ một cỗ máy truy vấn mà chỉ cho phép tìm kiếm trong một vùng hoặc trong một số trang nhất định (ví dụ www.standford.edu) Các cỗ máy tìm kiếm kiểu này dựa trên site index được tạo
ra bằng việc thực hiện ánh xạ tên miền vào các trang thuộc miền đó Một cách tương tự, việc sử dụng thông tin neightbourhood từ chỉ mục liên kết (link index), một giải thuật lặp có thể dễ dàng tính toán và lưu trữ giá trị phân hạng trang PageRank của mỗi trang trong cơ sở dữ liệu web Chỉ mục này được sử dụng trong thời gian truy vấn để hỗ trợ cho việc phân hạng kết quả tìm kiếm
1.4.3 Phân hạng trang (Page Rank)
Sergey Brin và Lawrence Page đã đưa ra một phương pháp nhằm giúp cho công việc tính toán hạng trang Phương pháp này dựa trên ý tưởng rằng: nếu
có liên kết từ trang A đến trang B thì đó là một sự tiến cử của trang A đối với trang B Nếu trang B được nhiều trang “quan trọng” hơn trỏ đến, còn trang C nào đó được ít trang “quan trọng” trỏ đến thì B cũng có độ quan trọng hơn C Giả sử ta có một tập các trang Web với các liên kết giữa chúng, khi đó ta có một
đồ thị với các đỉnh là các trang Web và các cạnh là các liên kết giữa chúng
Phương pháp PageRank thô (Simple Page Rank): được tiến hành như sau:
− Đánh số các trang Web có được từ 1,2 … đến n,
− Gọi N(i) là số liên kết từ trang i đến các trang khác,
Trang 19− Gọi B(i) là số liên kết từ các trang khác đến trang i
Giả sử rằng các trang Web tạo thành một đồ thị liên thông Khi đó ta có công thức PageRank thô:
Có thể viết các phương trình này dưới dạng r =ATr trong đó
− r là vector [r(1),…,r(n) ] trong đó ri là hạng của trang i
− A là ma trận kích thước n x n trong đó các phần tử aij = 1/Nj nếu
có liên kết từ i đến j, và =0 nếu ngược lại
Có thể thấy vector PageRank r chính là vector riêng của ma trận AT
Như đã thấy ở trên việc tính toán mức độ quan trọng hay hạng trang theo phương pháp PageRank có thể được thực hiện thông qua việc phân tích các liên kết của trang Web đó Nếu nó có những liên kết quan trọng trỏ tới thì rất có thể
nó là quan trọng
Tuy nhiên việc tính toán hạng trang lại phụ thuộc vào việc biết được hạng của các trang Web có liên kết tới nó, và như vậy muốn tính hạng trang này lại phải xem trang liên kết tới nó có hạng là bao nhiêu và có thể gây ra việc lặp vô hạn rất khó để giải quyết Điều này được thực hiện khi ta đưa về các vector hạng, ta có thể tính toán được các hạng trang thông qua việc tính toán vector riêng của ma trận AT Trong đại số tuyến tính có nhiều các phương pháp có thể tính được vector riêng của ma trận, tuy nhiên có một phương pháp đơn giản có thể được áp dụng vào việc tính toán vector PageRank là phương pháp luỹ thừa Các công việc tính toán sẽ được làm như sau:
(
i B j
j N j r i
) ( / 1
i B j
j
r
Trang 20rs phải tuân theo một chuẩn nào đó như chuẩn Euclide hay chuẩn bình phương
(4) Ngược lại thì rs, quay lại bước 2
Ví dụ:
Hình 1.2: Ví dụ về Simple Page Rank và Modified Page Rank
Trong hình 1.2a:
− Nút 2 có giá trị PageRank=0.286 và có hai liên kết xuất phát từ nút 2
− Nút 3 có giá trị PageRank=0.143 bởi vì nó chỉ có một liên kết đến từ nút 2 (nút 3 nhận 0.143 từ nút 2)
− Nút 1 nhận 0.143 từ nút 2 và 0.143/2 từ nút 5, 0.143/2 từ nút 3 (nút 1 có 3 nút trỏ tới)
− Nút 1 và 2 có cùng hạng, vì tồn tại liên kết hai chiều giữa nút 1 và nút 2
− Nút 4 nhận 0.143/2 từ nút 5 Nút 1 có hạng cao nhất vì nó có 3 nút trỏ tới Nút 2 có cùng hạng vì có liên kết hai chiều giữa nút 1 và nút 2 (bộ phận duyệt web ghé thăm nút 1 thì sẽ ghé thăm nút 2)
Phương pháp PageRank chỉ được thực hiện tốt khi đồ thị liên kết đầy đủ Trong thực tế thì các trang trên mạng không liên kết đầy đủ với nhau (có nhiều trang web hoặc là không có trang nào trỏ tới nó hoặc nó không trỏ tới trang nào) Xuất hiện hai khái niệm là Rank Sinks và Rank Leaks
Rank Sinks: Một nhóm trang không có liên kết ra ngoài, khi này các trang
ngoài nhóm đều có hạng bằng 0 Ví dụ trong đồ thị 1.4a nếu ta bỏ đường liên kết
từ nút 5 đến nút 1 thì nút 4 và nút 5 sẽ trở thành Rank Sink Lúc đó khi duyệt đồ
Trang 21thị ngẫu nhiên duyệt đến nút 4 và 5 sẽ không có lối ra, hạng của nút 1,2,3 trong trường hợp này bằng 0, hạng của nút 4, 5 bằng 0.5
Rank Leak: Một nút không trỏ tới nút nào Lúc này toàn bộ các nút sẽ có hạng bằng 0 Ví dụ trong sơ đồ 1.4a nếu ta bỏ nút 5 và tất cả các liên kết của nó thì nút 4 sẽ trở thành leak
Giải quyết hai vấn đề trên theo hai cách:
Cách 1: xoá tất cả các nút leak
Cách 2: Sử dụng “hệ số hãm d” cho Simple PageRank
Công thức tính PageRank với chỉ số d là
m d j
N j r d
i r
i B j
/)1()(/)(
*)(
từ dừng và phân tích câu truy vấn đó thành một tập các từ khóa riêng biệt
1.5 Các kỹ thuật tìm kiếm thông tin trong máy tìm kiếm
Cụm từ thu thập thông tin (IR - Information Retrieval) ra đời khá sớm, thông tin ở đây có thể là dạng văn bản, hình ảnh, âm thanh…Nhưng người ta thường dùng và hiểu thuật ngữ này là Text Retrieval , nghĩa là việc thu thập các thông tin dưới dạng văn bản Đi kèm với thuật ngữ này là có các kỹ thuật tìm kiếm hay còn gọi là các mô hình biểu diễn tài liệu (text) Có nhiều phương pháp biểu diễn thông tin khác nhau như: phương pháp cổ điển, mô hình đánh chỉ mục ngữ nghĩa, hay mô hình cấu trúc Trong phạm vi đồ án sẽ nghiên cứu các kỹ thuật tìm kiếm dựa theo mô hình biểu diễn tài liệu cổ điển được sử dụng rộng rãi trong các máy tìm kiếm trên Internet
Trang 22Mô hình cổ điển gồm có 3 phương pháp: tìm kiếm logic, tìm kiếm theo
mô hình vector và tìm kiếm theo phương pháp xác suất thống kê Với mỗi kỹ thuật tìm kiếm cần phải biễu diễn và giải quyết được các tham số:
- D (Document): tập các tài liệu
- Q (Queris): yêu cầu người dùng
- F (Framework): mối quan hệ giữa tài liệu và câu hỏi
- R (Q,D): phương pháp tính hạng, đánh giá sự chính xác giữa tài liệu tìm thấy với từ khóa truy vấn
1.5.1 Tìm kiếm logic (Boolean) [1]
Tìm kiếm logic (Boolean model) dựa trên lý thuyết tập hợp cổ điển và lý
thuyết logic Boolean Trong kỹ thuật này, các tài liệu được biểu diễn dưới dạng một tập các từ khoá, thường được lưu trong một tập tin chỉ mục đảo Tập tin chỉ mục đảo là danh sách các từ khoá và mã xác định của các tài liệu có chứa các từ khoá này Một truy vấn bao gồm tập hợp các từ khoá có kết hợp với các toán tử logic như AND, OR, NOT Quá trình tìm kiếm được thực hiện dựa trên tài liệu nào có chứa các từ truy vấn
Các tham số trong tìm kiếm logic sẽ được biểu diễn như sau:
Documents: được biểu diễn gồm toàn text hoặc là tập các từ khóa
Query: mô tả bằng các phép toán logic, các từ khóa câu hỏi (query term), hoặc biểu thức câu truy vấn (query expression)
Phương pháp tìm kiếm: sử dụng các file chỉ số ngược và thiết lập các phép toán logic trên tập tài liệu đó để xây dựng ra tập kết quả Tách tập tài liệu thu được (tập tài liệu được download về từ crawler) thành 2 phần: phần có liên quan đến câu truy vấn và phần không liên quan đến câu truy vấn
1.5.2 Tìm kiếm theo mô hình không gian vector[1]
Mô hình không gian vector (Vector Space model) là một trong những mô
hình nổi tiếng đã được nghiên cứu Mô hình này biểu diễn các tài liệu và các câu truy vấn như là các vector đặc trưng biểu diễn các từ có xuất hiện bên trong chúng Mỗi tài liệu được biểu thị đặc trưng bởi các vector trọng số hoặc các
Trang 23vector luận lý Các vector này được biểu trong không gian nhiều chiều Trong đó mỗi hướng tương ứng là một từ duy nhất xuất hiện trong tài liệu Biểu mẫu đơn giản nhất là mỗi đặc trưng nhận giá trị là 0 hoặc 1 để cho biết các từ có xuất hiện hay không xuất hiện trong tài liệu hoặc câu truy vấn Phổ biến hơn, các đặc trưng được gán các giá trị số để cho biết tần số xuất hiện của các từ
Giả sử hệ thống máy tìm kiếm có chứa gồm một tập các tài liệu D (Document)
D = {D 1 , D 2 ,D 3 ,… D n } Và tập các từ khóa (term) T = {T1, T2, …, Tt} được đánh chỉ mục từ tập D
Hình 1.3: Các trang tài liệu và từ khóa đã được đánh chỉ mục
Ma trận biểu diễn Documents-Term như sau:
Trong đó: Di: Tập các tài liệu, Tj : tập các term (từ khóa), wij : trọng số của
từ khóa trong tài liệu
Mỗi tài liệu sẽ được biểu diễn bởi một vector các số thực là giá trị trọng số của các khóa trong tài liệu đó Số lượng các từ khóa chính là chiều của vector
Ví dụ hình 1.3, ta có 3 tập tài liệu D1, D2, D3 và đánh chỉ mục thu được 8 từ
Các trang tài liệu
có liên quan
Computer XML Operating System
Trang 24khóa: Computer, XML, Operating System, Microsoft, Office, Unix, Search, Engines xếp theo thứ tự như trên Khi đó ta có 3 vector tài liệu:
D1= <0, 1, 2,0,0,0,1,1>: D1 chứa 1 từ khóa XML, 2 từ khóa Operating System, 1 từ khóa Search, 1 từ khóa Engines và không chứa các từ khóa: Computer, Microsoft, Office, Unix (phương pháp tính trọng số đơn giản nhất)
D2 = <…>, D3 =<….>
Vấn đề ở đây là phương pháp xác định trọng số từ khóa trong tài liệu, đồ
án sử dụng phương pháp đánh chỉ số TF*IDF ở trên Câu hỏi Q cũng được biểu diễn thành một vector và chúng ta tính độ tương tự giữa 2 vector
Tính độ tương tự giữa câu truy vấn Q và tài liệu: Được đo bằng giá trị cosin giữa góc tạo bởi vector truy vấn Q và vector tài liệu dj trong D
Hình 1.4: Tính độ tương tự giữa câu hỏi và tài liệu tìm thấy
1.5.3 Mô hình xác suất [1]
Các mô hình xác suất (Probabilistic model) áp dụng lý thuyết xác suất để
truy tìm thông tin Mô hình xếp hạng các tài liệu dựa trên xác suất liên quan của các tài liệu so với câu truy vấn được cho (Robertson and Jone 1976) Truy tìm thông tin dựa trên xác suất liên quan đến câu truy vấn của một tài liệu thì cao hơn là dựa trên xác suất không liên quan của một tài liệu, nghĩa là nó trội hơn giá trị ban đầu
Cho tập tài liệu D, câu truy vấn q và một giá trị ban đầu (cut-off value) α Đối với mô hình xác suất, việc đầu tiên là sẽ tính toán xác suất liên quan và không liên quan của tài liệu so với câu truy vấn Sau đó, sẽ tiến hành sắp xếp các tài liệu giảm dần theo mức độ liên quan của chúng với câu truy vấn Trong danh
i j i
t i
q i j i j
w w
w w
q d sim
1
2 , 1
2 ,
1
, ,
) , (
Trang 25sách các tài liệu được xếp hạng, các tài liệu nào có xác suất liên quan tới câu truy vấn mà trội hơn giá trị ban đầu (cutoff value) sẽ được tìm thấy
1.6 Máy tìm kiếm Google
Trong máy tìm kiếm hiện nay, Search Engine của Google là máy tìm kiếm phổ biến nhất
1.6.1 Giới thiệu
Google ra đời năm 1997 bởi hai thành viên sáng lập là Larry Page và Sergey Brin Ngày 7-9-1998 công ty Google chính thức được thành lập Trong năm 1998 Google được tạp chí PC Magazin xếp hạng top 100 trang web và công
cụ tìm kiếm hàng đầu thế giới, số lượng tìm kiếm mỗi ngày lên đến 500.000 lượt Tháng 6 năm 2000, Google ký kết thỏa thuận với Yahoo, sau đó liên kết với AOL Cho đến nay nó đã trở thành công cụ tìm kiếm hàng đầu thế giới Địa chỉ của trang Google http://www.google.com được coi là Search Engine kiểu spider tốt nhất, hỗ trợ nhiều ngôn ngữ của hàng trăm quốc gia với nhiều hình thức tìm kiếm khác nhau như tìm kiếm theo từ khoá, theo chủ đề…
1.6.2 Cấu trúc máy tìm kiếm Google[4]
Hình 1.5: Kiến trúc của máy tìm kiếm Google
Indexer
URL Server Crawler StoreServerr
Repository URL
Resolver
Anchor
Links
Doc Index
Trang 26a) Bộ tìm duyệt Crawler: Bộ Crawler của Google bao gồm nhiều Crawler
con phân bố ở một số địa điểm khác nhau Máy chủ URL (URL Server) có nhiệm vụ cung cấp các địa chỉ URL cho Crawler Các trang web tải về được chuyển vào kho dữ liệu (StoreServer) StoreServer nén các trang web này lại và chuyển vào Repository Mỗi trang web có một chỉ số ID kết hợp hay còn gọi là docID DocID được gán mỗi khi có một URL mới được tách khỏi trang web
Để làm việc được với số lượng trang web lên đến hàng trăm triệu, Google
có một hệ thống dò tìm nhanh chóng, độc lập Một URL Server đơn cung cấp được một số danh sách các URLs cho một số bộ duyệt Crawlers Mỗi Crawler giữ khoảng 300 cuộc kết nối một lúc Điều này rất cần thiết để đảm bảo tốc độ thu thập các trang web Với tốc độ cao nhất hệ thống 4 Crawlwer có thể dò tìm hơn 100 trang web trong một giây tương đương với khoảng 600KB
b) Bộ đánh chỉ mục Indexer: Bộ này có chức năng lấy các tài liệu trong
kho Repository, giải nén và phân tích chúng để tạo chỉ mục [4]
Mỗi tài liệu được chuyển thành một tập chứa các từ và các thông tin về các
từ đó như vị trí xuất hiện trong trang, cỡ chữ, chữ viết hoa hay viết thường, mỗi tập như vậy được gọi là hit Bộ Indexer phân bổ các hit vào các “Barrels”, rồi tạo ra chỉ mục xuôi được sắp xếp từng phần (partially sorted forward index) Bộ Indexer còn thực hiện một việc quan trọng khác đó là nó phân tích tất cả các đường liên kết trong mỗi trang web và lưu giữ lại những thông tin quan trọng về chúng trong một tệp neo (anchor file) Tệp này chứa đầy đủ các thông tin như các liên kết đến URL, liên kết đi từ URL, và dòng thể hiện liên kết của các URL
c) Bộ xử lý URL Resolver: Đọc nội dung tệp neo và chuyển các URL
tương đối thành các URL tuyệt đối rồi thành các chỉ mục docID Đưa dòng văn bản liên kết của URL (anchor text) và docID của tài liệu mà URL đó trỏ tới vào
chỉ mục xuôi (forward index) URL Resolver cũng tạo ra một cơ sở dữ liệu lưu
trữ các liên kết (link database) chứa từng cặp docID Cơ sở dữ liệu này được sử dụng để tính hạng (PageRank) cho tất cả các tài liệu [4]
d) Bộ Sorter: Lấy dữ liệu đã được sắp xếp theo thứ tự của docID trong
các Barrels và sắp xếp lại theo wordID để tạo ra chỉ mục ngược [4] Việc này
Trang 27được thực hiện ngay tại chỗ để tiết kiệm dung lượng nhớ tạm thời Bộ Sorter còn
có thể tạo ra một danh sách các wordID và các offsets vào trong chỉ mục ngược Chương trình Dumplexicon sử dụng danh sách này kết hợp với bảng tự vựng được tạo ra bởi bộ Indexer thành bảng từ vựng mới dùng cho bộ tìm kiếm Searcher Bộ Searcher được khởi chạy bởi Web Server và sử dụng bảng từ vựng mới trên kết hợp với chỉ mục ngược (Inverted Index) và giá trị PageRank để trả lời yêu cầu của người sử dụng
1.6.3 Cấu trúc dữ liệu chính
Cấu trúc dữ liệu của máy tìm kiếm Google được tối ưu hóa sao cho số lượng các trang được duyệt, đánh chỉ mục, và được tìm thấy là lớn nhất với chi phí thấp nhất Mặc dù trong những năm gần đây tốc độ của vi xử lý và tốc độ vào ra được cải thiện nhanh chóng nhưng một lần tìm kiếm trên đĩa vẫn mất khoảng 10ms Google được thiết kế để tránh việc tìm kiếm đĩa bất cứ khi nào có thể Và điều này có ảnh hưởng đáng kể đến việc thiết kế cấu trúc dữ liệu
Bigfiles:BigFiles là các file ảo mở rộng ra là hệ thống nhiều file và có thể
đánh địa chỉ được bằng 64 bit số nguyên Sự phân vùng giữa các hệ thống đa tệp được điều khiển tự động Gói BigFiles điều khiển việc phân vùng và xóa phân vùng của phần mô tả tệp, bởi vì hệ điều hành không đáp ứng hết được yêu cầu của người sử dụng BigFiles còn cung cấp các phương thức nén đơn giản
Repository (kho chứa dữ liệu): Kho Repository chứa đầy đủ mã HTML
của các trang web, mỗi trang đã được nén trước khi đưa vào kho Có một số kỹ thuật nén được áp dụng, tuy nhiên việc lựa chọn kỹ thuật nén phải dựa trên sự cân đối giữa tốc độ và tỷ lệ nén
1.6.4 Đánh chỉ mục cho web (indexing the web)
- Chỉ mục xuôi ( Forward index)
Chỉ mục xuôi thực được sắp xếp một phần Nó được lưu trữ trong một số Barrels (Google sử dụng 64 Barrels) Mỗi Barrel chứa một dãy WordID Nếu một tài liệu chứa các từ có ở trong một Barrel nào đó thì DocID được ghi vào trong Barrel đó, theo sau bởi một danh sách các WordID với danh sách hit tương ứng với các từ đó
Trang 28Hình 1.6: Chỉ mục xuôi Forward barrels 43 GB
- Chỉ mục ngược ( Inverted index)
Chỉ mục ngược bao gồm số Barrels bằng với số Barrels của chỉ mục xuôi Mỗi WordID hợp lệ, danh mục từ Lexicon chứa một con trỏ đến Barrel chứa WordID đó Con trỏ này trỏ tới một Doclist của DocID cùng với hit list tương ứng Danh sách Doclist này biểu diễn tất cả sự xuất hiện của từ đó trong tài liệu
1.6.5 Tìm kiếm
Mục tiêu của việc tìm kiếm là cung cấp kết quả tìm kiếm chất lượng và hiệu quả Rất nhiều máy tìm kiếm thương mại phát triển không ngừng để đạt được hiệu quả tìm kiếm Quá trình đánh giá truy vấn của Google như sau:
(1) Phân tích câu hỏi
(5) Tính hạng của tài liệu cho yêu cầu tìm kiếm
(6) Nếu duyệt đến hết các doclist trong short barrel mà vấn không thấy tài liệu thỏa mãn yêu cầu tìm kiếm thì ta chuyển sang tìm các doclist trong full barrel Rồi quay về bước 4
(7) Nếu chúng ta không ở cuối của bất kỳ một doclist nào thì chuyển sang bước 4
(8) Sắp xếp các tài liệu tìm thấy theo thứ hạng và trả về giá trị top k
DocId Wordid:24 nhits:8 hit hit hit hit
Wordid:24 nhits:8 hit hit hit hit null wordid
Wordid:24 nhits:8 hit hit hit hit DocId Wordid:24 nhits:8 hit hit hit hit
null Wordid Wordid:24 nhits:8 hit hit hit hit
Trang 29Để giới hạn thời gian trả về kết quả, mỗi lần số các tài liệu phù hợp với yêu cầu tìm kiếm được trả về, bộ tìm kiếm tự động chuyển đến bước 8 Có nghĩa
là có thể các kết quả tìm kiếm tối ưu phụ được trả về
1.6.6 Hệ thống xếp hạng
Google lưu trữ nhiều thông tin về tài liệu web hơn những máy tìm kiếm khác Ví dụ mỗi từ được tách ra từ trang web được lưu trữ thông tin về vị trí, font chữ, và sự viết hoa Mỗi trang thì có các thông tin như các URL trỏ đến trang đó, và các URL mà trang đó trỏ đến Việc xây dựng hàm xếp hạng sao cho không có bất kỳ một thông tin nào có quá nhiều ảnh hưởng
Đầu tiên xem xét trường hợp đơn giản nhất, yêu cầu tìm kiếm chỉ có một
từ đơn Để phân hạng một tài liệu theo yêu cầu trên Google tiến hành tìm từ khóa đó trong danh sách hit của tài liệu Google cân nhắc mỗi hit xem nó thuộc kiểu nào (tiêu đề, neo, URL, văn bản cỡ chữ lớn, văn bản cỡ chữ nhỏ), mỗi loại
có một trọng số type-weight riêng Type-weigh tạo ra một vector index Google đếm số hit của mỗi loại trong danh sách các hit Và sau đó chuyển con số kết quả thành chỉ số count-weight Count-weight tăng hơn so với số lượng đếm được ban đầu sau đó lại nhanh chóng giảm Nên chúng ta sử dụng một tích số của vector count-weight với vector type-weights Để tính tỷ số IR cho tài liệu Cuối cùng tỷ số IR được kết hợp với PageRank để tạo thành sự phân hạng cho tài liệu
Xét trường hợp yêu cầu tìm kiếm là cụm từ Trong trường hợp này nhiều danh sách hit được duyệt một lúc Các hits xuất hiện gần nhau trong cùng tài liệu được đánh trọng số cao hơn các hits ở các phần xa nhau
Hệ thống tìm kiếm Google là một hệ thống có khả năng mở rộng Mục tiêu chính của Search Engine này là cung cấp kết quả tìm kiếm tốt nhất, luôn đáp ứng được với tốc độ thay đổi nhanh chóng của World Wide Web Google sử dụng một số kỹ thuật như giải thuật phân hạng trang PageRank, kỹ thuật anchor text, và proximity để nâng cao chất lượng tìm kiếm Hơn nữa Google là một kiến trúc hoàn thiện để thu thập các trang web, đánh chỉ mục cho chúng, và trình diễn các yêu cầu tìm kiếm
Trang 301.7 Nhược điểm cơ bản của của các máy tìm kiếm trên web truyền thống
Đa số các máy tìm kiếm trên Web truyền thống đều tìm kiếm dựa trên việc đối sánh từ khóa, trên các trang Web phi cấu trúc Vì vậy các máy tìm kiếm chỉ dựa theo từ khóa để tìm kiếm thông tin và đương nhiên sẽ có rất nhiều kết quả không mong muốn được trả về cho người dùng
Xét trên phương diện người dùng, các máy tìm kiếm truyền thống gặp phải hai vấn đề chính:
− Mỗi từ khóa có thể có một hay nhiều ý nghĩa tùy theo từng ngữ cảnh và máy tìm kiếm không thể hiện mối quan hệ giữa các từ khóa với nhau
− Rất nhiều trang Web có liên quan đến từ khóa nhưng lại không chứa từ khóa đó trong nội dung thì sẽ không tồn tại trong kết quả tìm
Mặt khác, xét trên khía cạnh các giải pháp mạng và công nghệ lập trình, các giải pháp tìm kiếm truyền thống là các ứng dụng phân tán, được phát triển dựa trên mô hình Client/Server theo các phương thức triệu gọi từ xa Các thực thể giao tiếp với nhau thông qua cơ chế truyền thông điệp hoặc các lời gọi hàm
từ xa Vì vậy, yêu cầu các mô hình giao tiếp này phải đồng bộ Nghĩa là khi hoạt động, Client tạm ngừng hoạt động trong thời gian gửi yêu cầu cung cấp dịch vụ cho đến khi nó nhận được kết quả trả về từ Server Và trong thời gian chờ đợi, đường kết nối giữa Client và Server vẫn phải duy trì, không được ngắt kết nối và các tài nguyên khác vẫn phải được chiếm giữ Như vậy với mỗi một giao dịch, đường truyền có ít nhất một khoảng thời gian chết, tiêu tốn tài nguyên như bộ nhớ tạm, các phàn mềm tham gia xử lý Trong khi các giao dịch khác đang phải chờ đến lượt mới được thực hiện
Khi số lượng người dùng tìm kiếm tăng, cơ chế điều khiển và kiểm soát rất phức tạp Trong một hệ thống lớn có nhiều tiến trình cần xử lý đồng thời mà chỉ có một tiến trình điều phối thì sẽ dẫn tới hiện tượng thắt cổ chai, nghẽn mạch Vì vậy các phương thức tìm kiếm truyền thống không hỗ trợ cho các ứng dụng đa phương tiện, theo yêu cầu thời gian thực, trong bối cảnh lưu lượng nội dung số ngày càng bùng nổ
Trang 31Đây là những vấn đề khác biệt giữa máy tìm kiếm dựa trên Web truyền thống (dựa trên từ khóa) và máy tìm kiếm dựa trên tác tử di động Sức mạnh của tác tử di động sẽ được thể hiện trong việc hỗ trợ các công cụ tìm kiếm Với việc máy tính có thể hiểu được thông tin trên Web, các dữ liệu trả về sẽ mang tính ngữ nghĩa nhiều hơn, gần với yêu cầu của người dùng hơn
Kết luận chương
Chương 1 trình bày một cách ngắn gọn và dễ hiểu về máy tìm kiếm bao gồm: kiến trúc của máy tìm kiếm, cơ chế hoạt động, các thành phần…và mô tả chi tiết một máy tìm kiếm cụ thể là máy tìm kiếm Google
Với nhu cầu tìm kiếm thông tin của người dùng ngày càng tăng, yêu cầu chất lượng kết quả trả về ngày càng cao thì máy tìm kiếm ngày càng phải tìm các kĩ thuật mới được nghiên cứu và sử dụng nhằm cải tiến tốt nhất bài toán tìm kiếm thông tin Một trong các kĩ thuật đó là sử dụng tác tử di động để nâng cao chất lượng tìm kiếm, đáp ứng được yêu cầu của người dùng
Trang 32− Người dùng di động (Mobile users): Ngày nay người dùng thường có nhu cầu truy xuất, tìm kiếm thông tin ở mọi nơi, mọi lúc từ các thiết bị di động (Mobile devices) Vì vậy việc hỗ trợ kết nối và trên mọi thiết bị là một thách thức được đặt ra
− Nhu cầu chuyên biệt hoá: Việc khai thác thông tin, sử dụng dịch vụ đã không còn thỏa mãn với các cơ chế thụ động, mà người dùng thường có khuynh hướng muốn chuyên biệt hoá nhu cầu của mình một cách chủ động Internet là cơ sở để thực hiện mong muốn này Vì vậy, cần hỗ trợ khả năng chuyên biệt hoá các ứng dụng mạng dành cho người dùng
− Nguồn tin đa dạng, khối lượng cực lớn: Đã xuất hiện nhiều kho dữ liệu khổng
lồ trên mạng Các kho dữ liệu này lại được cung cấp từ nhiều nguồn nên thường không đồng nhất về tổ chức, cấu trúc Đây sẽ lại là một khó khăn mới đối với người dùng khi truy vấn
− Việc các mạng Intranet được xây dựng phổ biến là một điều kiện tốt để triển khai các kỹ thuật mới trong việc xây dựng các ứng dụng mạng Vì các mạng Intranet cho phép thiết lập an toàn hệ thống dễ dàng hơn trong một tập hợp mang tính cộng tác và tin cậy
− Môi trường không đồng nhất: Khi kết nối các máy tính, các mạng cục bộ vào Internet, các ứng dụng và người dùng phải đối mặt với một môi trường không đồng nhất về phần cứng, kiến trúc, hệ điều hành…Và bài toán tương thích cần phải giải quyết
Trang 33− Sự khập khiễng về đường truyền: Mặc dù ngành viễn thông đã đạt đến những tiến bộ đáng kinh ngạc, và cho ra đời các loại cáp quang với tốc độ truyền tải nhanh đáng kể Đa số người dùng vẫn bị giới hạn với các thiết bị kết nối như modem hay các đường truyền băng thông thấp với mạng không dây
Với tất cả các đặc điểm trên đây, các ứng dụng phân tán phát triển theo mô hình Client/Server truyền thống tỏ ra một số bất lợi vì đòi hỏi làm việc đồng bộ, đòi hỏi đường truyền băng thông cao, độ trễ thấp và cuối cùng là các dịch vụ thiếu linh động, khó thay đổi hay bổ sung Tác tử di động là một mô hình trong
đó các tiến trình - được gọi là tác tử (agent) có tính tự trị và khả năng di động từ máy chủ này sang máy chủ khác để hoàn tất tác vụ Ý tưởng chủ đạo của tác tử
di động là di chuyển xử lý đến gần nguồn dữ liệu, nhờ đó có thể giảm tải mạng, khắc phục tình trạng trễ, hỗ trợ xử lý không đồng bộ và tạo ra sự tương thích mạnh trên các môi trường không đồng nhất [5] Tác tử di động với các ưu điểm này hứa hẹn một giải pháp mới, hiệu quả và dễ dàng hơn trong việc phát triển ứng dụng phân tán, đặc biệt tìm kiếm thông tin mới nhất
2.1.2 Sự tiến hóa từ các mô hình ứng dụng phân tán
Theo truyền thống, các ứng dụng phân tán có cấu trúc theo mô hình Client/Server sẽ thực hiện việc giao tiếp qua các cơ chế gọi hàm từ xa Yêu cầu các mô hình giao tiếp phải đồng bộ Một kiến trúc tiến bộ hơn là Remote Evaluation (REV) do Stamos và Gifford đưa ra vào năm 1990 Trong mô hình REV, thay vì yêu cầu thực hiện các hàm từ xa thì Client chỉ việc gửi mã nguồn các hàm của nó đến Server và yêu cầu Server thực hiện rồi trả về kết quả Một
số hệ thống khác cũng đã giới thiệu khái niệm thông điệp chủ động (active messages) có thể di trú giữa các vị trí trên mạng, mang theo mã của chương
trình để thực thi tại những vị trí này Tác tử di động (Mobile Agents) là mô hình
tiến hóa tiên tiến nhất so với các mô hình trước đó Hình 2.1 dưới đây cho thấy
sự khác biệt của tác tử di động so với RPC và REV
Trang 34Hình 2.1: Sự tiến hóa của mô hình tác tử di động
2.1.3 Khái niệm về tác tử di động
Tác tử di động là giải pháp mạng di động và là công nghệ lập trình hướng tác tử, tiến hóa hơn các mô hình phát triển ứng dụng phân tán trên mạng máy tính truyền thống Tác tử di động được xây dựng dựa trên nhiều công nghệ hiện đại, không dựa vào nguyên lý Client/Server và cũng không theo các phương thức triệu gọi từ xa truyền thống Tác tử di động rất thích hợp cho bài toán tìm kiếm, khai phá, trích rút thông tin trên mạng Internet
Một tác tử di động có thể di chuyển từ một thiết bị đầu cuối lên mạng Internet và hoạt động không phụ thuộc vào môi trường và kết nối, thậm chí User tắt máy hay ngắt kết nối khỏi mạng [5]
Phát triển các ứng dụng phân tán dựa trên tác tử di động có thể “giấu các kênh truyền”, loại trừ khả năng phát hiện và quản lý hoạt động của chúng Tác
tử di động không đòi hỏi phải cài đặt lại các phần mềm ở mỗi site
Tác tử (Agent) là sự kết hợp của nhiều kỹ thuật tiên tiến về máy tính, kỹ thuật truyền tin và các lĩnh vực tin học hiện đại (như hệ thống phân tán, AI & Khoa học nhận dạng, máy học, mã di động, truy tìm thông tin, cơ sở dữ liệu và
cơ sở tri thức ) Kết hợp với phương pháp lập trình hướng đối tượng đã tạo ra một phương pháp phát triển mới Phương pháp lập trình hướng tác tử
Trang 35
Máy học nghiên cứu cách thức để mô hình hóa bài toán cho phép máy tính tự động hiểu, xử lý và học từ dữ liệu để thực thi nhiệm vụ được giao cũng như cách đánh giá giúp tăng tính hiệu quả
Có rất nhiều định nghĩa khác nhau, thậm chí khác nhau về tác tử di động, nhưng có một định nghĩa thường được sử dụng như sau:
Định nghĩa: Tác tử di động - Mobile Agent là danh từ ghép giữa Agent
(tác tử) và Mobile (di động) Là một phần mềm có khả năng di chuyển một cách
tự trị từ nút này sang nút khác trên mạng và thực hiện các giao dịch theo ủy quyền của chủ nhân để đạt được mục tiêu giao phó Có khả năng giao tiếp với nhau và hoạt động không phụ thuộc vào môi trường Khi di chuyển, tác tử di động đóng gói mã nguồn, dữ liệu và trạng thái thi hành Vì vậy nó có thể dừng việc thi hành tại nút này, tiếp tục thi hành trên nút khác
Tác tử di động là một mô hình hiệu quả cho các ứng dụng phân tán Đặc biệt thích hợp và rất hiệu quả trong trong các giải pháp tìm kiếm thông tin cập nhật mới nhất Có thể thực hiện trên các môi trường khác nhau, trên các thiết bị đầu cuối khác nhau, như các máy tính di động laptop, máy tính tại nhà và máy
di động cầm tay Các thiết bị này thường disconnect trong một khoảng thời gian dài, thường có băng thông trễ, kết nối mạng không tin cậy, và thường thay đổi địa chỉ mạng qua mỗi lần kết nối
Tác tử di động (Mobile Agent)
AI & Khoa học nhận dạng
Máy học
Hình 2.2: Tác tử – phương pháp lập trình mới
Trang 36
2.1.4 Các đặc tính của tác tử di động
Các đặc tính cơ bản của tác tử di động bao gồm [5]:
a) Tính tự trị (autonomous): là khả năng tự kiểm soát bản thân của tác tử di
động sau khi được giao việc mà không cần sự can thiệp của người dùng hoặc của tác tử khác Có hai đặc tính thường được dùng để đánh giá về sự tự trị của tác tử di động Đó là đặc tính hướng đích (goal-oriented) và tính chủ động (pro-activeness) Khả năng tự trị của tác tử di động chủ yếu được quyết định bởi tri thức trang bị cho tác tử di động
b) Tính di động (mobility): Là khả năng di chuyển từ môi trường thi hành
này sang môi trường khác của một tác tử Đồng thời giữ nguyên trạng thái và khả năng hoạt động của nó Các tác tử có đặc điểm này được gọi là Mobile Agents (tác tử di động) Việc thiết kế và cài đặt tác tử di động đặt ra các yêu cầu đặc biệt về vấn đề an ninh hệ thống
c) Tính thích ứng (reactiveness): là khả năng của tác tử có thể thực thi trên
những môi trường lạ, và cảm nhận được sự thay đổi của môi trường
d) Khả năng cộng tác (collaboration): Tác tử di động có khả năng tương tác
với người dùng hoặc các tác tử khác để thực hiện nhiệm vụ của riêng mình hoặc