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

Nghiên cứu phần mềm thu thập xử lý dữ liệu tự động trên internet

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.23 MB, 74 trang )

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP

Tìm kiếm tự động các thông tin phù hợp và có giá trị trên Web là một chủ
đề quan trọng trong đồ án của em, nhằm tìm kiếm, phân loại và xử lý các nguồn
dữ liệu. Đồ án tập trung vào hướng biểu diễn thông tin trả về bởi các máy tìm
kiếm thành từng chuyên đề cụ thể từ nhiều nguồn của các trang web khác nhau
để cho người dùng có thể dễ dàng nắm bắt được thông tin một cách súc tích,
nhanh chóng và tiết kiệm thời gian, đồng thời tìm được thông tin mà mình cần.

.

1


MỤC LỤC
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP ..................................................1
MỤC LỤC ..........................................................................................................2
LỜI CAM ĐOAN............................................... Error! Bookmark not defined.
LỜI CẢM ƠN .................................................... Error! Bookmark not defined.
MỞ ĐẦU ............................................................................................................5
CHƯƠNG 1 CÁC PHƯƠNG PHÁP TÌM KIẾM THU THẬP THÔNG TIN
TRÊN INTERNET ..............................................................................................8
1.1 Công cụ tìm kiếm.......................................................................................8
1.1.1 Tổng quan về công cụ tìm kiếm...........................................................8
1.1.2 Các bộ phận cấu thành hệ thống máy tìm kiếm search engine..............9
1.2 Xem xét Web ...........................................................................................10
1.3 Khởi đầu công cụ tìm kiếm ......................................................................11
1.3.1 Bọ tìm kiếm.......................................................................................12
1.3.2 Tách lọc nội dung ..............................................................................12
1.3.3 Tốc độ tìm kiếm ................................................................................13
1.3.4 Yếu tố quan trọng ..............................................................................13


1.3.5 Phương pháp đánh chỉ số ...................................................................13
1.4 Các thẻ Meta ............................................................................................14
1.4.1 Phân tích khai báo thẻ Meta...............................................................14
1.4.2 Thẻ Meta loại trừ Robot.....................................................................14
1.5 Xây dựng chỉ mục....................................................................................15
1.5.1 Lưu trữ dữ liệu chỉ mục tìm kiếm ......................................................15
1.5.2 Phân loại chỉ mục tìm kiếm ...............................................................15
1.5.3 Xây dựng chỉ mục tìm kiếm...............................................................16
1.6 Xây dựng truy vấn tìm kiếm.....................................................................16
1.7 Tìm kiếm trong tương lai .........................................................................17
1.8 Hoạt động của cỗ máy tìm kiếm ...............................................................18
1.8.1 Hệ thống tìm kiếm trên nền tự động...................................................18
1.8.2 Các thư mục do con người quản lý và cập nhật..................................19

2


1.8.3 Các hệ thống tìm kiếm tổng hợp ........................................................19
1.8.4 Các thành phần của một cỗ máy tìm kiếm tự động.............................19
1.8.5 Các cỗ máy tìm kiếm chính – Giống nhau nhưng cũng khác nhau .....20
1.9 Tìm hiểu về bộ tìm kiếm robots thu thập thông tin ...................................20
1.9.1 Ứng dụng của Robots ........................................................................20
1.9.2 Robot chỉ mục ...................................................................................21
1.9.3 Các chiến thuật thu thập dữ liệu.........................................................22
1.10 Máy tìm kiếm Cuil .................................................................................24
CHƯƠNG 2 ỨNG DỤNG THU THẬP LẤY TIN TỰ ĐỘNG TRÊN
INTERNET .......................................................................................................27
2.1 Định nghĩa ...............................................................................................27
2.2 Nhu cầu....................................................................................................27
2.3 Quy trình lấy tin tự động ..........................................................................28

2.4 Những khó khăn khi lấy tin tự động .........................................................31
2.5 Các dạng dữ liệu ......................................................................................32
2.5.1 Fulltext ..............................................................................................32
2.5.2 Hypertext...........................................................................................32
2.6 Kỹ thuật hỗ trợ xây dựng chương trình - Ngôn ngữ Php...........................35
2.6.1 Giới thiệu ..........................................................................................35
2.6.2.Một số cú pháp cơ bản của PHP ........................................................38
2.6.3 Kiểu...................................................................................................40
2.7 Hệ quản trị cơ sở dữ liệu MySQL.............................................................44
2.7.1 Giới thiệu về MySQL ........................................................................44
2.7.2 Các đặc trưng của MySQL ................................................................44
2.7.3 Một số thao tác cơ sở dữ liệu trong MySQL ......................................46
2.7.4 Các lệnh thao tác CSDL.....................................................................47
2.8 Các hàm PHP thao tác với CSDL MySQL ...............................................48
2.8.1 Mysql_affected_rows. .......................................................................48
2.8.2 Mysql_change_user...........................................................................49
2.8.3 Mysql_close ......................................................................................49

3


2.8.4 Mysql_connect ..................................................................................49
2.8.5 Mysql_create_db ...............................................................................50
2.8.6 Mysql_data_seek ...............................................................................50
2.8.7 Mysql_db_name ................................................................................50
2.8.8 mysql_query( ) ..................................................................................51
2.8.9 Mysql_result......................................................................................51
2.8.10 Mysql_select_db..............................................................................52
2.8.11 Mysql_tablename ............................................................................52
CHƯƠNG 3 CHƯƠNG TRÌNH THỰC NGHIỆM............................................53

3.1 Bài toán....................................................................................................53
3.2 Các khái niệm và tầm quan trọng của bài toán..........................................53
3.3 Phân tích thiêt kế cơ sở dữ liệu................................................................55
3.3.1 Ràng buộc toàn vẹn ...........................................................................55
3.3.2 Phụ thuộc hàm...................................................................................56
3.3.3 Xác định các loại thực thể và các thuộc tính ......................................56
3.3.4 Xây dựng mô hình thực thể liên kết ...................................................57
3.3.5 Xác định khoá....................................................................................58
3.3.6 Chuẩn hoá lược đồ quan hệ thành dạng chuẩn ..................................59
3.4 Chương trình thực nghiệm .......................................................................64
KẾT LUẬN.......................................................................................................68
TÀI LIỆU THAM KHẢO .................................................................................70
PHỤ LỤC..........................................................................................................72

4


MỞ ĐẦU

Trong kỷ nguyên Công nghệ thông tin, việc phát triển và ứng dụng Công
nghệ thông tin (CNTT) và Truyền thông (TT) phục vụ cho việc phát triển kinh tế
- xã hội được diễn ra hầu hết ở các quốc gia trên thế giới. Tuỳ thuộc vào trình độ
phát triển của mỗi quốc gia mà việc ứng dụng khác nhau theo từng cấp độ. Hầu
hết các quốc gia đều tồn tại các hệ thống cung cấp thông tin và tri thức tự động
phục vụ cho phát triển kinh tế. Đặc biệt, tại các nước phát triển thì việc ứng dụng
CNTT và TT được quan tâm và triển khai sớm.
Còn trong nước hiện nay, các nhà khoa học, các nhóm nghiên cứu đã và
đang tiến hành nghiên cứu về những vấn đề liên quan trực tiếp với xây dựng hệ
thống thu thập, xử lý thông tin tự động trên Internet. Năm 2001, nhóm tác giả do
Hà Quang Thuỵ chủ trì đã tiến hành nghiên cứu về lĩnh vực khai phá văn bản và

khai phá Web.
World Wide Web (WWW) là một kho chứa dữ liệu và thông tin lớn nhất
và được biết đến rộng rãi nhất của các siêu văn bản. Các tài liệu siêu văn bản
chứa đựng văn bản và thường nhúng các liên kết đến các tài liệu khác phân bố
trên Web. Ngày nay, Web bao gồm hàng tỷ tài liệu của hàng triệu tác giả được
tạo ra và phân tán qua hàng triệu máy tính được kết nối qua đường dây điện
thoại, cáp quang, sóng radio…. Web đang ngày càng được sử dụng phổ biến
trong nhiều lĩnh vực như báo trí, phát thanh, truyền hình, hệ thống bưu điện,
trường học, các tổ chức thương mại, chính phủ…. Chính vì vậy tìm kiếm tự động
các thông tin phù hợp và có giá trị trên Web là một chủ đề quan trọng trong đồ án
của em.Các phương pháp lấy tin tự động hay nói ngắn gọn là các máy tìm kiếm
trên Web thông thường trả lại một danh sách các tài liệu được phân hạng mà
người dùng sẽ phải tốn công chọn lọc trong các trang Web khác trên Internet để
có được những tài liệu phù hợp. Ngoài ra các thông tin đó thường rất phong phú,
đa dạng và liên quan đến nhiều đối tượng khác nhau. Điều này tạo nên một sự
nhập nhằng gây khó khăn cho người sử dụng trong việc lấy được thông tin cần

5


thiết. Có nhiều hướng tiếp cận khác nhau để giải quyết vấn đề này, các hướng
này thường chú ý giảm sự nhập nhằng các phương pháp chọn lọc hay thêm các
tùy chọn để cắt bớt thông tin. Do đó một vấn đề đặt ra là làm thế nào để có thể
tìm kiếm, phân loại và xử lý từ nguồn dữ liệu văn bản. Rõ ràng, chúng ta phải
hiểu rõ bản chất của dữ liệu văn bản, hiểu rõ các đặc trưng của các dữ liệu loại
này để có thể có được những phương pháp luận cần thiết và có được những công
cụ tự động hóa trợ giúp trong việc tìm kiếm, phân loại và xử lý thông tin. Đồ án
tập trung vào hướng biểu diễn thông tin trả về bởi các máy tìm kiếm thành từng
chuyên đề như thông tin chứng khoán, thời tiết, giá vàng và tỷ giá hối đoái, …từ
nhiều nguồn của các trang web khác nhau để cho người dùng có thể dễ dàng tìm

được thông tin mà mình cần.
Mục đích nghiên cứu
Trong báo cáo này, em sẽ trình bày những kiến thức cơ sở về thu thập, tìm kiếm
và lấy tin tự động trên Internet . Nội dung chính của báo cáo tập trung nghiên cứu
vào việc tìm hiểu lấy tin tự động về một số lĩnh vực phổ biến như lấy tin về
chứng khoán, thời tiết, giá vàng và tỷ giá hối đoái…
Nội dung thực hiện
 Tìm hiểu về công cụ tìm kiếm, SEO, bọ tìm kiếm spider, thu thập và lấy
tin tự động trên Internet.
 Các kỹ thuật hỗ trợ lấy tin tự động.
 Một số kết quả thực nghiệm .
 Đề xuất hướng phát triển.
Giới hạn nghiên cứu
Mặc dù đồ án còn khá mới mẻ song trước khi lựa chọn em đã xem xét tính khả
thi của bài toán trên thực tế. Mặt khác đối với một chương trình làm về lấy tin tự
động sẽ không bao giờ có đáp án cuối cùng mà vẫn còn rất nhiều yếu tố cần quan
tâm và đánh giá theo thời gian. Và đã thu được những kiến thức cơ bản về kỹ
thuật và những thử nghiệm về lấy tin tự động về một số lĩnh vực phổ biến như

6


lấy tin về chứng khoán, thời tiết, giá vàng tỷ giá hối đoái …từ các trang web khác
nhưng hứa hẹn sự phát triển và ứng dụng của phương pháp lấy tin tự động về
nhiều lĩnh vực khác trên Internet trong tương lai.
Cấu trúc của đồ án bao gồm 3 chương chính:
Chương 1: Các phương pháp tìm kiếm thu thập thông tin trên mạng Internet.
Chương 2: Ứng dụng thu thập lấy tin tự động trên Internet.
Chương 3: Chương trình thực nghiệm


7


CHƯƠNG 1 CÁC PHƯƠNG PHÁP TÌM KIẾM THU THẬP
THÔNG TIN TRÊN INTERNET

Internet và World Wide Web có đến hàng trăm triệu website có sẵn mang
các thông tin về nhiều chủ đề khác nhau. Tuy nhiên hầu hết chúng đều được đặt
tiêu đề theo ý thích của tác giả, và được đặt trên máy chủ với các tên khó hiểu.
Khi bạn cần biết về một chủ đề nào thì sẽ phải đọc các trang nào? Phần lớn mọi
người khi băn khoăn về vấn đề này họ sẽ sử dụng công cụ tìm kiếm trên Internet
(Search Engine).

1.1 Công cụ tìm kiếm
1.1.1 Tổng quan về công cụ tìm kiếm
Search Engine trên Internet hay các công cụ tìm kiếm là các site đặc biệt
trên web, được thiết kế để giúp mọi người tìm kiếm thông tin được lưu trên các
site khác nhau. Có nhiều cách khác nhau trong cách tìm kiếm này, nhưng tất cả
chúng đều thực hiện ba nhiệm vụ cơ bản:
Tìm kiếm Internet – hoặc chọn các mẩu thông tin trên Internet – dựa trên các từ
quan trọng;
Giữ một chỉ mục cho các từ tìm thấy cùng với địa chỉ tìm thấy chúng;
Cho phép người dùng tìm kiếm các từ hoặc cụm từ được tìm kiếm trong chỉ
mục đó.
Các công cụ tìm kiếm trước kia đều giữ chỉ mục của hàng trăm ngàn trang web
và tài liệu, chúng thường nhận có thể một hoặc hai nghìn yêu cầu tìm kiếm mỗi
ngày. Ngày nay, công cụ tìm kiếm hàng đầu đánh chỉ mục hàng trăm triệu trang
và đáp trả đến hàng chục triệu yêu cầu mỗi ngày. Trong bài này chúng tôi muốn
giới thiệu về các nhiệm vụ chính sẽ được thực hiện như thế nào, và cách các công


8


cụ tìm kiếm này sẽ xử lý như thế nào để cho phép bạn tìm thông tin cần thiết trên
web .

1.1.2 Các bộ phận cấu thành hệ thống máy tìm kiếm search engine
a. Bộ thu thập thông tin – Robot
Robot là một chương trình tự động duyệt qua các cấu trúc siêu liên kết để thu
thập tài liệu và một cách đệ quy nó nhận về tất cả tài liệu có liên kết với tài liệu
này.
Robots được biết đến dưới nhiều tên gọi khác nhau : spider, web wanderer hoặc
web worm,… Những tên gọi này đôi khi gây nhầm lẫn, như từ ‘spider’,
‘wanderer’ làm người ta nghĩ rằng robot tự nó di chuyển và từ ‘worm’ làm người
ta liên tưởng đến virus. Về bản chất robot chỉ là một chương trình duyệt và thu
thập thông tin từ các site theo đúng giao thức web. Những trình duyệt thông
thường không được xem là robot do thiếu tính chủ động, chúng chỉ duyệt web
khi có sự tác động của con người.
b. Bộ lập chỉ mục – Index
Hệ thống lập chỉ mục hay còn gọi là hệ thống phân tích và xử lý dữ liệu, thực
hiện việc phân tích, trích chọn những thông tin cần thiết (thường là các từ đơn ,
từ ghép , cụm từ quan trọng) từ những dữ liệu mà robot thu thập được và tổ chức
thành cơ sở dữ liệu riêng để có thể tìm kiếm trên đó một cách nhanh chóng, hiệu
quả. Hệ thống chỉ mục là danh sách các từ khoá, chỉ rõ các từ khoá nào xuất hiện
ở trang nào, địa chỉ nào.
c. Bộ tìm kiếm thông tin – Search Engine
Search engine là cụm từ dùng chỉ toàn bộ hệ thống bao gồm bộ thu thập thông
tin, bộ lập chỉ mục & bộ tìm kiếm thông tin. Các bộ này hoạt động liên tục từ lúc
khởi động hệ thống, chúng phụ thuộc lẫn nhau về mặt dữ liệu nhưng độc lập với
nhau về mặt hoạt động.

Search engine tương tác với user thông qua giao diện web, có nhiệm vụ tiếp nhận
và trả về những tài liệu thoả yêu cầu của user.

9


Nói nôm na, tìm kiếm từ là tìm kiếm các trang mà những từ trong câu truy vấn
(query) xuất hiện nhiều nhất, ngoại trừ stopword (các từ quá thông dụng như mạo
từ a, an, the,…). Một từ càng xuất hiện nhiều trong một trang thì trang đó càng
được chọn để trả về cho người dùng. Và một trang chứa tất cả các từ trong câu
truy vấn thì tốt hơn là một trang không chứa một hoặc một số từ. Ngày nay, hầu
hết các search engine đều hỗ trợ chức năng tìm cơ bản và nâng cao, tìm từ đơn,
từ ghép, cụm từ, danh từ riêng, hay giới hạn phạm vi tìm kiếm như trên đề mục,
tiêu đề, đoạn văn bản giới thiệu về trang web,…..
Ngoài chiến lược tìm chính xác theo từ khoá, các search engine còn cố gắng ‘
hiểu ‘ ý nghĩa thực sự của câu hỏi thông qua những câu chữ do người dùng cung
cấp. Điều này được thể hiện qua chức năng sửa lỗi chính tả, tìm cả những hình
thức biến đổi khác nhau của một từ. Ví dụ : search engine sẽ tìm những từ như
speaker, speaking, spoke khi người dùng nhập vào từ speak.

1.2 Xem xét Web
Khi hầu hết mọi người nói về các công cụ máy tìm kiếm Internet, họ đều
cho đó là công cụ tìm kiếm World Wide Web. Tuy nhiên trước khi Web trở
thành phần dễ thấy nhất của Internet thì thực sự đã có các công cụ tìm kiếm để
giúp mọi người có thể tìm được các thông tin trên mạng. Các chương trình với
những cái tên như “Gopher” và “Archie” đã giữ chỉ số của các file được lưu trên
máy chủ kết nối với Internet, đã giảm được một cách rõ rệt số lượng thời gian
cần thiết để tìm kiếm các chương trình và tài liệu. Vào những năm cuối thập kỷ
80, việc có được các giá trị quan trọng từ Internet có nghĩa là biết cách sử dụng
Gopher, Archie, Veronica và một số chương trình tương tự khác.

Ngày nay, hầu hết người dùng Internet chưa hiểu nhiều về cách tìm kiếm của họ
trên Web, chính vì vậy chúng tôi sẽ giới thiệu vấn đề này bằng cách tập trung vào
nội dung của các trang web.

10


1.3 Khởi đầu công cụ tìm kiếm

Hình 1 : Spider lấy nội dung của trang web và tạo các từ khóa tìm kiếm để cho
phép người dùng trực tuyến có thể tìm các trang mong muốn

11


1.3.1 Bọ tìm kiếm
Trước khi công cụ tìm kiếm có thể cho bạn biết về nơi một file hoặc tài
liệu nào đó được lưu trữ thì nó phải tìm ra được chúng. Để tìm các thông tin trên
hàng trăm triệu trang web đang tồn tại, mỗi một công cụ tìm kiếm phải sử dụng
đến các robot phần mềm đặc biệt, các robot phần mềm này được gọi là spider
(con nhện hay bọ tìm kiếm), để thành lập danh sách các từ tìm thấy trong các
website. Quá trình spider xây dựng danh sách được gọi là đánh chỉ số hoá (Web
crawling). Để tạo và duy trì một danh sách hữu dụng cho việc tìm kiếm thì spider
của công cụ tìm kiếm phải xem được nội dung của các trang web.

1.3.2 Tách lọc nội dung
Vậy cách spider thực hiện công việc của nó trên Web như thế nào? Điểm
khởi đầu là danh sách các máy chủ và trang web phổ biến. Spider sẽ bắt đầu với
một site phổ biến nào đó, đánh chỉ mục các từ trên trang của nó và theo các liên
kết tìm thấy bên trong site này. Theo cách này, hệ thống Spider sẽ nhanh chóng

thực hiện công việc của nó và trải rộng ra toàn bộ các phần được sử dụng rộng rãi
nhất của web.
Spider lấy nội dung của trang web và tạo các từ khóa tìm kiếm để cho phép
người dùng trực tuyến có thể tìm các trang mong muốn.
Google.com bắt đầu như một công cụ tìm kiếm của trường đại học. Trong bài
viết mô tả về cách hệ thống được xây dựng như thế nào, Sergey Brin và
Lawrence Page đã lấy một ví dụ về spider của họ có thể làm việc nhanh đến cỡ
nào. Họ đã xây dựng hệ thống ban đầu để có thể sử dụng nhiều spider, thường là
có đến 3 spiders hoạt động đồng thời. Mỗi Spider có thể giữ tới khoảng 300 kết
nối với các trang web mỗi thời điểm. Với hiệu suất đỉnh của nó, sử dụng đến 4
Spider, hệ thống của họ có thể tìm thêm trên 100 trang mỗi giây, tạo ra khoảng
600KB dữ liệu mỗi giây.

12


1.3.3 Tốc độ tìm kiếm
Việc giữ được tốc độ tìm kiếm nhanh cũng có nghĩa phải xây dựng hệ
thống có thể cung cấp được các thông tin cần thiết cho Spider. Hệ thống Google
trước kia có một máy chủ chuyên dụng dùng để cung cấp các URL cho Spider.
Thay cho việc phụ thuộc vào nhà cung cấp dịch vụ về DSN để dịch tên của máy
chủ thành địa chỉ, Google đã có DSN của chính họ để độ giữ chậm diễn ra chỉ
trong khoảng thời gian tối thiểu.

1.3.4 Yếu tố quan trọng
Khi bọ tìm kiếm (Spider) xem các trang HTML, nó lưu ý hai thứ:
. Các từ bên trong trang.
. Nơi tìm thấy các từ.
Các từ xuất hiện trong tiêu đề, phụ đề, các thẻ meta và các phần quan trọng khác
có liên quan được lưu ý bằng những xem xét đặc biệt cho những tìm kiếm của

người dùng sau đó. Spider của Google đã được xây dựng để có thể đánh chỉ mục
mọi từ quan trọng trên một trang và chỉ để lại các mạo từ như “a,” “an” và “the”.
Các Spider khác lại sử dụng các phương pháp khác.

1.3.5 Phương pháp đánh chỉ số
Các phương pháp khác mà bọ tìm kiếm (Spider) áp dụng thường là cố
gắng làm cho hệ thống của Spider diễn ra nhanh hơn, cho phép người dùng có
thể tìm kiếm hiệu quả hơn, hoặc cả hai. Ví dụ, một số Spider giữ liên hệ với các
từ trong tiêu đề, các heading nhỏ và liên kết, cùng với 100 từ thường được sử
dụng trên trang và các từ trong 20 dòng đầu tiên của văn bản.
Các hệ thống khác chẳng hạn như AltaVista lại tiếp cận theo một hướng khác,
đánh chỉ mục các từ đơn trên mỗi trang, gồm có cả “a,” “an,” “the” và các từ
“không quan trọng” khác. Tính đầy đủ trong phương pháp này được so khớp bởi
các hệ thống khác trong phần thẻ meta của Website.

13


1.4 Các thẻ Meta
1.4.1 Phân tích khai báo thẻ Meta
Thẻ Meta cho phép chủ sở hữu của trang có thể chỉ định các từ khóa và
khái niệm sẽ được đánh chỉ mục. Đây là một trong các thẻ rất hữu dụng, đặc biệt
trong nhiều trường hợp các từ trên trang có thể có đến hai hoặc 3 nghĩa – thẻ
Meta có thể hướng dẫn công cụ tìm kiếm trong việc chọn nghĩa nào trong số các
nghĩa có thể là đúng đối với một từ nào đó. Tuy vậy vẫn có một lo lắng trong
việc tin cậy nhiều vào thẻ Meta vì các trang kém chất lượng mà chủ sở hữu của
nó lại đưa vào thẻ này những chủ đề phổ biến nhưng không có nội dung gì về nó.
Để khắc phục hiện tượng này, Spider sẽ tương quan các thẻ Meta với nội dung
của trang, loại ra các thẻ không thỏa khớp với các từ trong trang.


1.4.2 Thẻ Meta loại trừ Robot
Tất cả vấn đề này khởi nguồn từ chủ sở hữu của trang này, họ muốn trang
web được hiển thị trong kết quả tìm kiếm của các công cụ tìm kiếm này. Nhiều
khi, chủ sở hữu không muốn trang của họ xuất hiện trên các trang kết quả của
một công cụ tìm kiếm hoặc không muốn Spider truy cập vào trang của họ. (Ví
dụ, một game xây dựng các trang active mới mỗi lần các section của trang được
hiển thị hoặc theo sau là các liên kết mới. Nếu một Spider Web có thể truy cập
vào và bắt đầu đi theo tất cả liên kết cho các trang mới thì game có thể mắc lỗi
activity cho player tốc độ cao và kéo dài sự kiểm soát). Để tránh tình trạng này,
giao thức loại trừ robot đã được phát triển. Giao thức này bổ sung vào phần thẻ
meta ở bắt đầu mỗi trang, thông báo cho Spider phải rời trang của nó – không
đánh chỉ mục các từ trên trang này hoặc cố gắng lần theo các liên kết của nó.

14


1.5 Xây dựng chỉ mục
1.5.1 Lưu trữ dữ liệu chỉ mục tìm kiếm
Khi Spider đã hoàn tất nhiệm vụ tìm thông tin trên các trang web (chúng
tôi lưu ý rằng đây là nhiệm vụ không bao giờ hoàn tất vì luôn có sự thay đổi của
các trang nên điều đó có nghĩa là Spider sẽ luôn thực hiện nhiệm vụ của nó),
công cụ tìm kiếm phải lưu các thông tin này theo một cách nào đó để có lợi nhất.
Có hai thành phần chính liên quan tới việc tạo dữ liệu đã thu thập được để có thể
truy cập với người dùng:
.Thông tin được lưu với dữ liệu;
.Phương pháp mà thông tin được đánh chỉ mục.
Trong trường hợp đơn giản nhất, một công cụ tìm kiếm có thể chỉ lưu các từ và
URL nơi mà nó tìm ra. Trong thực tế, điều này sẽ làm hạn chế rất nhiều vì sẽ
không có cách nào để nói từ đó đã được sử dụng là quan trọng hay không có giá
trị trên trang đó, hoặc từ đã được sử dụng một lần hay nhiều lần, hoặc trang đó có

chứa liên kết đến các trang khác có chứa từ hay không. Nói theo cách khác là sẽ
không có cách nào xây dựng được danh sách thứ hạng để bình chọn các trang
hữu ích nhất ở trên đầu mỗi danh sách kết quả tìm kiếm.

1.5.2 Phân loại chỉ mục tìm kiếm
Để làm cho các kết quả tìm kiếm được phù hợp nhất, hầu hết các công cụ
tìm kiếm đều lưu nhiều từ và URL. Một công cụ tìm kiếm có thể lưu số lần từ
nào đó xuất hiện trong một trang. Nó có thể gán “trọng lượng” cho mỗi một entry
nào đó, tăng dần giá trị gán cho các từ khi chúng xuất hiện gần phía trên của tài
liệu, trong các heading con, các liên kết và trong thẻ meta hoặc trong tiêu đề của
trang. Mỗi một công cụ tìm kiếm mang tính thương mại đều có một công thức
khác nhau đối với việc gán trọng lượng cho các từ trong chỉ mục của nó. Đây
chính là một trong những lý do tại sao một tìm kiếm cho những từ giống nhau
trên các công cụ tìm kiếm khác nhau lại cho ra danh sách khác nhau, các trang
được thể hiện theo thứ tự khác nhau.

15


1.5.3 Xây dựng chỉ mục tìm kiếm
Không quan tâm đến sự kết hợp nghiêm ngặt các mẩu thông tin bổ sung
được lưu bởi mỗi công cụ tìm kiếm, dữ liệu sẽ được mã hóa để lưu trữ trong các
điểm lưu trữ riêng.
Một chỉ mục chỉ có một mục đích: Nó cho phép thông tin được tìm thấy một cách
nhanh chóng. Có khá nhiều cách cho việc xây dựng chỉ mục, nhưng cách hiệu
quả nhất vẫn là xây dựng một bảng hash. Một công thức được sử dụng để gắn giá
trị bằng số cho mỗi một từ. Công thức này được thiết kế để cung cấp cho các
entry trên số lượng được xác định trước các phần chia. Phần chia bằng số này
khác với phần chia từ trong bảng alphabet và đó chính là hiệu lực chính của bảng
hash.

Trong tiếng Anh, có một số ký tự được bắt đầu nhiều hơn với các ký tự khác. Ví
dụ như bạn sẽ thấy phần “M” của từ điển sẽ dày hơn phần “X”. Sự không công
bằng này có nghĩa rằng việc tìm một từ bắt đầu với một ký tự “phổ biến” có thể
lâu hơn nhiều so với việc tìm một từ bắt đầu với một ký tự kém phổ biến hơn.
Thuật toán Hash cân bằng sự khác nhau này, và giảm thời gian trung bình để tìm
kiếm mỗi entry. Nó cũng phân biệt chỉ mục với entry thực tại. Bảng hash gồm có
các số được đánh hash cùng với một con trỏ dữ liệu, con trỏ này có thể được
phân loại theo bất cứ cách nào cho phép lưu trữ hiệu quả nhất. Sự kết hợp giữa
việc đánh chỉ mục hiệu quả và lưu trữ hiệu quả làm cho người dùng có thể thực
hiện các thao tác tìm kiếm một cách nhanh chóng thậm chí khi họ tạo một tìm
kiếm phức tạp.

1.6 Xây dựng truy vấn tìm kiếm
Việc tìm kiếm thông qua một chỉ mục cần người dùng xây dựng một truy
vấn và đệ trình nó thông qua công cụ tìm kiếm Search Engine. Truy vấn có thể
khá đơn giản như một từ chẳng hạn. Việc xây dựng một truy vấn phức tạp hơn
cần sử dụng các toán tử Boolean để cho phép bạn lọc và mở rộng dưới dạng tìm
kiếm.
Các toán tử Boolean thường được sử dụng nhất là:

16


.AND – Tất cả các mục đã được nối bằng toán tử này phải xuất hiện trong
trang hoặc các tài liệu. Một số công cụ tìm kiếm (Search Engine) thay thế toán tử
này bằng dấu “+”;
.OR – Ít nhất một trong các mục đã được nối bằng “OR” phải xuất hiện
trong .các trang hoặc tài liệu.
NOT – Mục hoặc các mục sau toán tử này không xuất hiện trong trang
hoặc tài liệu, một số công cụ tìm kiếm thay thế bằng dấu “-”;

.FOLLOWED BY – Một trong số các mục phải được theo sau trực tiếp
bởi mục khác;
.NEAR – Một trong các mục phải nằm bên trong một số các từ cụ thể;
.Dấu ngoặc kép – Các từ giữa các dấu ngoặc kép phải được coi như một
cụm từ, và cụm từ đó phải được tìm thấy trong tài liệu hoặc file.

1.7 Tìm kiếm trong tương lai
Các tìm kiếm đã được định nghĩa bởi toán tử Boolean trở nên khá bình
thường, công cụ tìm kiếm sẽ tìm kiếm các từ hoặc cụm từ chính xác khi chúng
được nhập vào. Điều này có thể phát sinh một vấn đề khi các từ được nhập có đa
nghĩa. Nếu bạn chỉ quan tâm đến một trong các nghĩa đó thì có thể không muốn
thấy xuất hiện các trang tiêu biểu cho tất cả các nghĩa của nó. Tuy bạn có thể tạo
một tìm kiếm bằng cách loại trừ ra các nghĩa không mong muốn nhưng nếu công
cụ tìm kiếm giúp được bạn việc này thì tốt biết bao.
Một trong những lĩnh vực nghiên cứu tìm kiếm là tìm kiếm dựa trên khái niệm.
Một số nghiên cứu này liên quan đến việc sử dụng phân tích thống kê về các
trang chứa từ hoặc cụm từ mà bạn tìm kiếm, để tìm ra các trang khác có thể bạn
quan tâm. Rõ ràng các thông tin được lưu trong mỗi trang thực sự rất quan trọng
cho tìm kiếm dựa trên khái niệm, và xa hơn nữa là việc xử lý được yêu cầu cho
mỗi tìm kiếm. Nhiều nhóm nghiên cứu đã và đang làm việc hết mình để cải thiện
cả kết quả và hiệu suất của các công cụ tìm kiếm này. Một số nhóm khác đã
chuyển sang một lĩnh vực nghiên cứu khác như truy vấn ngôn ngữ tự nhiên.

17


Ý tưởng ẩn đằng sau nghiên cứu truy vấn ngôn ngữ tự nhiện là bạn có thể đánh
vào đó một câu hỏi giống như cách bạn hỏi đối với người ngồi bên cạnh bạn –
khong cần đến các toán tử Boolean hoặc các cấu trúc truy vấn phức tạp. Site truy
vấn ngôn ngữ tự nhiên nhất hiện nay là AskJeeves.com, nó có khả năng phân tích

cú pháp truy vấn về các từ khóa để áp dụng cho chỉ mục của các site mà nó đã
xây dựng. Tuy nhiên site này chỉ làm việc với các truy vấn đơn giản vì việc đặt
khái niệm cho một truy vấn khá phức tạp.

1.8 Hoạt động của cỗ máy tìm kiếm
Thuật ngữ “Cỗ máy tìm kiếm – Search Engine” được dùng chung để chỉ 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 (CrawlerBased Search Engines) và dạng thư mục Internet do con người quản lý (HumanPowered 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.8.1 Hệ thống tìm kiếm trên nền tự động
Những cỗ máy tìm kiếm tự động, như Google, tạo ra những danh sách của
họ tự động. Chúng sử dụng các chương trình máy tính, được gọi là “robots“,
“spiders”, hay crawlers để lần tìm thông tin trên mạng. khi có ai đó tìm kiếm một
thông tin, các Search Engine lập tức hiển thị các thông tin lưu trữ tương ứng. Nếu
bạn thay đổi những trang web của các bạn, những cỗ máy tìm kiếm tự động dần
dần tìm thấy những sự thay đổi này, và điều đó có thể ảnh hưởng đến bạn được
liệt kê như thế nào. Những tiêu đề trang, nội dung văn bản và các phần tử khác
đều giữ một vai trò nhất định.

18


1.8.2 Các thư mục do con người quản lý và cập nhật
Các thư mục Internet – ví dụ như Dự án thư mục mở – Open Directory
Project (Dmoz.org) hoàn toàn phụ thuộc vào sự quản lý của con người. Bạn đăng
ký website của bạn vào thư mục với một vài dòng mô tả ngắn gọn hoặc các biên
tập viên của thư mục viết giúp phần mô tả cho bạn – chúng phù hợp với nội dung
và chủ đề của từng danh mục.
Việc thay đổi những trang web của các bạn không có hiệu lực trên danh mục của
các bạn. Những thứ hữu ích để cải thiện vị trí xếp hạng với một cỗ máy tìm kiếm

không có gì để làm với việc cải thiện một vị trí trong một thư mục. Ngoại lệ duy
nhất là một site tốt, với nội dung tốt, có lẽ thích hợp hơn để được xem xét so với
một website nghèo nàn.

1.8.3 Các hệ thống tìm kiếm tổng hợp
Ngày trước, mỗi cỗ máy tìm kiếm sử dụng giải thuật riêng để tạo sự khác
biệt. Đã là hệ thống tìm kiếm tự động thì không kèm theo một thư mục Internet
và ngược lại. Nhưng hiện nay, hầu hết hệ thống tìm kiếm đều là sự tổng hợp của
hệ thống tìm kiếm tự động và một thư mục do con người quản lý. Ví dụ, Yahoo
có Yahoo Directory, Google có Google directory (dựa trên thư mục Dmoz),
MSN và các hệ thống tìm kiếm khác cũng vậy.

1.8.4 Các thành phần của một cỗ máy tìm kiếm tự động
Những cỗ máy tìm kiếm tự động có ba phần tử chính. Đầu tiên là spider,
cũng được gọi là crawlers. Spider đến thăm một trang web, đọc nó, và sau đó đi
theo sau những mối liên kết tới những trang khác bên trong website. Có nghĩa là,
khi có ai đó tìm kiếm đến một trang, các spiders sẽ ghi nhớ điều đó. Nó sẽ quay
lại trang đó và theo chu kỳ 1-2 tháng. Như vậy, nếu trang web được tìm thấy
càng nhiều, thì các spiders càng năng quay trở lại hơn và như thế, kết quả tìm
kiếm của bạn cũng được cải thiện theo.
Mọi thứ spider tìm thấy đi vào trong phần thứ hai của cỗ máy tìm kiếm,
Chỉ mục (the index). Chỉ mục, đôi khi gọi là tài liệu, là một kho lưu trữ khổng lồ

19


chứa đựng một sự sao chép của mọi trang web mà spider tìm thấy. Nếu một trang
web thay đổi, thì danh sách này được cập nhật với thông tin mới.
Đôi khi, cần phải có thời gian để các spiders lập chỉ mục cho một trang
mới hay một trang được thay đổi nội dung. Như vậy, sẽ có trường hợp: một trang

đã được các spiders tìm đến, nhưng lại chưa được lập chỉ mục. Và trong khỏang
thời gian này, trang web sẽ hòan tòan không tồn tại trên Search engine.
Phần mềm tìm kiếm chính là phần tử thứ ba của một cỗ máy tìm kiếm.
Đây là một chương trình máy tính có chức năng sàng lọc thông tin từ hàng triệu
trang tương tự nhau để sắp xếp vị trí từng trang sao cho phù hợp nhất.

1.8.5 Các cỗ máy tìm kiếm chính – Giống nhau nhưng cũng khác nhau
Tất cả các cỗ máy tìm kiếm tự động có những phần cơ bản được mô tả ở
trên, nhưng có những sự khác nhau trong những phần này trong việc nó được
điều chỉnh tác động như thế nào. Đó là lý do tại sao cùng một từ khóa, khi tìm
kiếm trên những cỗ máy tìm kiếm khác nhau thường cho ra những kết quả khác
nhau. Một ví dụ cụ thể: Nếu bạn đánh một từ khóa, thì Google, Yahoo, MSN,
AOL, Ask hay Exactseek đều cho ra các kết quả khác nhau, dù có nhiều website
hơi giống nhau.

1.9 Tìm hiểu về bộ tìm kiếm robots thu thập thông tin
1.9.1 Ứng dụng của Robots
Phân tích, thống kê – Statistical Analysis
Robot đầu tiên được dùng để đếm số lượng web server, số tài liệu trung bình của
một server, tỉ lệ các dạng file khác nhau, kích thước trung bình của một trang
web, độ kết dính, …
Duy trì siêu liên kết – Maintenance
Một trong những khó khăn của việc duy trì một siêu liên kết là nó liên kết với
những trang bị hỏng (dead links) khi những trang này bị thay đổi hoặc thậm chí bị
xóa. Thật không may vẫn chưa có cơ chế nào cảnh báo các bộ duy trì về sự thay đổi
này. Trên thực tế khi các tác giả nhận ra tài liệu của mình chứa những liên kết hỏng,

20



họ sẽ thông báo cho nhau, hoặc thỉnh thoảng độc giả thông báo cho họ bằng email.
Một số robot, chẳng hạn MOMspider có thể trợ giúp tác giả phát hiện các
liên kết hỏng cũng như duy trì các cấu trúc siêu liên kết cùng nội dung của một
trang web. Chức năng này lặp lại liên tục mỗi khi một tài liệu được cập nhật, nhờ
đó mọi vấn đề xảy ra sẽ được giải quyết nhanh chóng.
Ánh xạ địa chỉ web – Mirroring
Mirroring là một kỹ thuật phổ biến trong việc duy trì các kho dữ liệu của
FPT. Một ánh xạ (mirror) sẽ sao chép toàn bộ cấu trúc cây thư mục và thường
xuyên cập nhật những file bị thay đổi. Điều này cho phép nhiều người cùng truy
xuất một nguồn dữ liệu, giảm số liên kết bị thất bại, nhanh hơn và ít chi phí hơn
so với truy cập trực tiếp vào site thực sự chứa các dữ liệu này.
Phát hiện tài nguyên – Resource Discovery
Có lẽ ứng dụng thú vị nhất của robot là dùng nó để phát hiện tài nguyên.
Con người không thể kiểm soát nổi một khối lượng thông tin khổng lồ trong môi
trường mạng. Robot sẽ giúp thu thập tài liệu, tạo và duy trì cơ sở dữ liệu, phát
hiện và xoá bỏ các liên kết hỏng nếu có, kết hợp với công cụ tìm kiếm cung cấp
thông tin cần thiết cho con người.
Kết hợp các công dụng trên- Combined uses
Một robot có thể đảm nhận nhiều chức năng. Ví dụ RBSE Spider [4] vừa
thống kê số lượng tài liệu thu được vừa tạo cơ sở dữ liệu. Tuy nhiên những ứng
dụng như thế còn khá ít ỏi.

1.9.2 Robot chỉ mục
Trong quá trình thu thập thông tin phục vụ cho bộ lập chỉ mục, ta cần giải
quyết những vấn đề sau :
Một là : Trong môi trường mạng, robot lấy thông tin từ các site. Vậy robot sẽ bắt
đầu từ site nào ? Điều này hoàn toàn phụ thuộc vào robot. Mỗi robot khác nhau
sẽ có những chiến lược khác nhau. Thường thì robot sẽ viếng thăm các site phổ
biến hoặc những site có nhiều liên kết dẫn đến nó.


21


Hai là : Ai sẽ cung cấp địa chỉ của các site này cho robot ?
Có 2 nguồn :


Robot nhận các URL ban đầu từ user.



Robot phân tích các trang web để lấy các URL mới, đến lượt các URL này
trở thành địa chỉ đầu vào cho robot. Quá trình này được lặp lại liên tục.

Ba là : Chọn dữ liệu nào trong tài liệu để lập chỉ mục ?

1.9.3 Các chiến thuật thu thập dữ liệu
Trước khi các trang web được đánh chỉ mục, tất cả các trang web phải
được lấy về máy của robot. Để lấy được tất cả các trang web, robot phải có chiến
thuật. Từ một số trang web có sẵn, robot lọc ra danh sách các liên kết, rồi từ đó
dò tìm các trang khác.
Có 3 chiến thuật tìm kiếm Heuristic sau : tìm kiếm theo chiều sâu, tìm kiếm theo
chiều rộng và tìm kiếm ngẫu nhiên.
Chiến thuật tìm kiếm theo chiều sâu
Từ một danh sách chứa các liên kết cần duyệt, thực hiện các bước sau :
1. (1) Cho danh sách = {trang đầu tiên}
2. (2) Lấy trang đầu tiên trong danh sách.
o

Nếu có qua (3)


o

Nếu không qua (5)

3. (3) Trang này đã xét tới chưa ?
o

Nếu rồi, quay lại (2)

o

Nếu chưa, qua (4)

4. (4) Đánh dấu đã tới rồi. Phân tích và tìm xem liên kết có trong trang đó
không?
(4a) Nếu có, thêm liên kết này vào đầu danh sách. Quay lại (4)
(4b) Nếu không, quay lại (2).

22


5. (5) Kết thúc.
Chiến thuật tìm kiếm theo chiều rộng
Từ một danh sách chứa các liên kết cần duyệt, thực hiện các bước sau :
1. (1) Cho danh sách = {trang đầu tiên}
2. (2) Lấy trang đầu tiên trong danh sách.
o

Nếu có qua (3)


o

Nếu không qua (5)

3. (3) Trang này đã xét tới chưa ?
o

Nếu rồi, quay lại (2)

o

Nếu chưa, qua (4)

4. (4) Đánh dấu đã tới rồi. Phân tích và tìm xem liên kết có trong trang đó
không?
o

(4a) Nếu có, thêm liên kết này vào cuối danh sách. Quay lại (4)

o

(4b) Nếu không, quay lại (2).

5. (5) Kết thúc.
Chiến thuật tìm kiếm theo ngẫu nhiên
Từ một danh sách chứa các liên kết cần duyệt, thực hiện các bước sau :
1. (1) Cho danh sách = {trang đầu tiên}
2. (2) Lấy ngẫu nhiên một trang trong danh sách.
o


Nếu có qua (3)

o

Nếu không qua (5)

3. (3) Trang này đã xét tới chưa ?
o

Nếu rồi, quay lại (2)

o

Nếu chưa, qua (4)

23


4. (4) Đánh dấu đã tới rồi. Phân tích và tìm xem liên kết có trong trang đó
không?
o

(4a) Nếu có, thêm liên kết này vào cuối danh sách. Quay lại (4)

o

(4b) Nếu không, quay lại (2).

5. (5) Kết thúc.


1.10 Máy tìm kiếm Cuil
Một máy tìm kiếm thường có 3 thành phần chính:


Thứ nhất là thành phần chuyên thu thập các trang web tồn tại trên Internet
(crawling);



Thứ hai là thành phần đánh chỉ mục (indexing) : Thành phần này rút trích
các đặc trưng của các các trang web (ví dụ tiêu đề, từ khóa tiêu biểu) và
lưu trữ vào cơ sở dữ liệu để phục vụ cho nhu cầu tìm kiếm sau này;



Thứ ba là thành phần tìm các trang web phù hợp/liên quan/thỏa mãn
(relevant) nhu cầu của người dùng (searching), thông qua quá trình tương
tác với giao diện của máy tìm kiếm, ví dụ như gõ vào các từ khóa trong ô
tìm kiếm. Để có thể biết máy tìm kiếm nào tốt hơn máy tìm kiếm nào, về
phía người dùng, chỉ có một tiêu chí duy nhất, đó là máy tìm kiếm nào cho
kết quả phù hợp (relevant) với nhu cầu của họ một cách đầy đủ nhất
(comprehensive), nhanh nhất (fastest) sẽ là máy tìm kiếm tốt nhất. Chúng
ta hãy cùng so sánh các thành phần này của Cuil với Google.

a.Kích thước chỉ mục
Cuil cho rằng hệ thống chỉ mục hiện nay của họ là lớn nhất trên thế giới, với 120
tỉ trang web được đánh chỉ mục. Thực ra con số trang web của Cuil thu thập lớn
hơn nhiều, đến 186 tỉ trang, nhưng nhiều trang đã bị loại bớt do trùng lắp và
spam.


24


b. Mức độ phù hợp với nhu cầu tìm kiếm của người dùng
Thuật toán xếp hạng của Cuil không dựa vào tính đại chúng như thuật toán
PageRank của Google, mà thay vào đó là dựa vào phân tích nội dung (content
analysis) để hiểu ngữ nghĩa của từng trang. Tuy nhiên, theo như phân tích của
chuyên gia Danny Sullivan [2,3], hiện nay, Cuil vẫn sử dụng ý tưởng về tính đại
chúng của thuật toán PageRank cho thuật toán xếp hạng trang web của họ. Một
ví dụ là khi người dùng gõ vào từ khóa “Harry Potter”, người ta có thể tự hỏi tại
sao trang web về bộ phim “Harry Potter and the Order of the Phoenix” lại được
Cuil xếp ngay trong kết quả trả về của trang đầu tiên trong khi có hàng vạn trang
khác liên quan tới Harry Potter lại xếp phía sau. Câu trả lời chỉ có thể là dùng
cách phân tích về tính đại chúng của các trang mà thôi. Do đó, một trang khi
được liên kết đến nhiều như trang web về bộ phim mới nhất về Harry Potter, sẽ
được đánh giá cao hơn các trang khác.
Mặc dù nhiều máy tìm kiếm mới như Cuil đều cho rằng họ thực hiện phân tích
ngữ nghĩa trên các trang để giúp tìm ra các trang web phù hợp với người dùng tốt
hơn so với Google, tuy nhiên thực tế cho thấy rằng, từ nói đến làm vẫn còn
khoảng cách khá xa
c. Giao diện giao tiếp với người dùng
Có lẽ điểm khác nổi bật giữa Cuil và Google là giao diện 3 cột (có thể tùy chỉnh
thành 2 cột).
Với cách bố trí này, người dùng được hỗ trợ thêm trong việc tinh chỉnh lại kết
quả tìm kiếm, ví dụ tìm sách về Harry Potter, hay trò chơi liên quan đến Harry
Potter. Những hỗ trợ này thực ra không mới vì trước đó các đối thủ khác như
Vivisimo, KartOO và Yahoo cũng đã có.

25



×