Tải bản đầy đủ (.pdf) (73 trang)

Nghiên cứu tác tử di động và ứng dụng trong máy tìm kiếm trên web

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 (2.13 MB, 73 trang )

i

MỤ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


ii
2.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


iii

LỜ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

Tác giả


Thiều Thị Tài

năm 2015


iv
LỜ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

Tác giả

Thiều Thị Tài

năm 2015


v
DANH 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


1
MỞ ĐẦ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


2
trì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.



3
CHƯƠ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.


4
 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
việc đối sánh với từ khóa. Các ứng dụng tìm kiếm hiện nay chứa rất nhiều hạn


5
chế 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


6
(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.


7
Trong 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ồ.


8
Việ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


9
Internet 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ự .
Kho chứa trang web
Người dùng

Câu hỏi

Bộ trình duyệt
web (crawler)

Bộ đánh
chỉ mục
(Indexer)


Điều khiển trình duyệt
(Crawl Conttrol )

Bộ xử lý
câu hỏi

kết quả

Tính hạng trang
(ranking)

Các loại
chỉ mục
nội dung cấu trúc tiện ích
(Text) (Structure) (utility)

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.


10

1.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ủ .
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.


11
Ư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à


12
cậ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:


13
Link 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,


14
− 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ô:

r (i) 

 r( j) / N ( j)

jB ( i )

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.

ri 


1/ N ( j)r

jB ( i )

j

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:
(1) S vector bất kỳ
(2) rATs
(3) Nếu r  s  e thì kết thúc, khi đó ta nhận được r là vector PageRank.


15
r  s 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ì rs, quay lại bước 2.

Ví dụ:

r1=0.286

r2=0.286

r2=0.142

2

2

1

5
r4=0.143

3 r3=0.143

r1=0.154

4
r4=0.143

1

5
r4=0.290

3 r3=0.103


4
r4=0.313

Hình 1.2b:Modified Page Rank
Hình 1.2 a: Simple Page
Rank
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 đồ


16
thị 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à
r (i )  d *

 r ( j ) /N ( j )  (1  d ) / m

jB ( i )

Trong đó m là tổng số nút trong đồ thị. Việc thêm “hệ số hãm” d (thường
chọn d=0.85) có ý nghĩa bổ sung thêm giá trị PageRank vào cho các trang không
có liên kết ra ngoài. Ta cũng nhận thấy khi d=1 thì công thức sẽ quay lại trường
hợp PageRank thô.
1.4.4 Bộ xử lý câu truy vấn
Để máy tìm kiếm thực hiện, thì cần có một bộ phận nhận và xử lý đối với
câu truy vấn. Khi người dùng đưa một câu truy vấn vào, máy tìm kiếm sẽ loại bỏ
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 .


17
Mô 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


18
vector 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 = {D1 , D2 ,D3 ,…. Dn } .Và tập các từ khóa (term) T = {T1, T2, …, Tt}
được đánh chỉ mục từ tập D.

Computer
XML
Các trang tài liệu
có liên quan

Operating
System
Microsoft

Terms

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:
T1 T2 …. Tt

D1 w11 w12 … w1t
D2 w21 w22 … w2t
:

:

:

:

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ừ


19
khó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.
dj

t

sim(d j , q) 

i, j

i 1

t

w
i 1

θ
1

w
2
i, j



 wi ,q
t

w
j 1

2
i ,q


Q
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


20
sá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 đượ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]
Crawler

URL Server

StoreServerr

Anchor

URL
Resolver

Barrels

Links
Doc
Index
PageRank

Repository

Indexer

Lexicon

Sorter
Searcher


Hình 1.5: Kiến trúc của máy tìm kiếm Google


×