Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
676,26 KB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO
TẠO
TẬP ĐOÀN BƯU CHÍNH VIỄN THÔNG
VIỆT NAM
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
NGUYỄN QUANG HUY
NGHIÊN CỨUSEARCHENGINEVÀCÁC
THUẬT TOÁNĐỐISÁNHMẪUCHOHỆTHỐNG
TÌM KIẾMTHÔNGTINTRÊNMẠNG
CHUYÊN NGÀNH:
TRUYỀN DỮ LIỆU VÀMẠNG MÁY TÍNH
MÃ SỐ: 60.48.15
TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT
HÀ NỘI - 2010
Luận văn được hoàn thành tại:
Học viện Công nghệ Bưu chính Viễn thông
Tập đoàn Bưu chính Viễn thông Việt Nam
Người hướng dẫn khoa học:
TS. PHẠM THẾ QUẾ
Phản biện 1:
Phản biện 2:
Luận văn sẽ được bảo vệ trước hội đồng chấm luận văn tại Học viện
Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện Học viện Công nghệ Bưu chính Viễn thông
ii
MỤC LỤC
MỤC LỤC ii
MỞ ĐẦU iii
CHƯƠNG 1: TỔNG QUAN VỀ SEARCHENGINE 1
1.1 Giới thiệu chung 1
1.2 Phân loại: 2
1.2.1 Máy tìmkiếmthông thường 2
1.2.2 Máy siêu tìmkiếm - Meta SearchEngine 2
1.3 Mô hình của seach engine 3
1.3.1 Bộ tìm duyệt Crawler 3
1.3.2 Kho dữ liệu Repository 7
1.3.3 Bộ lập chỉ mục Indexer 8
1.3.4 Phân hạng trang (Page Rank) 11
1.4 SearchEngine điển hình 12
1.4.1 Sự ra đời 12
1.4.2 Cấu trúc của máy tìmkiếm Google 12
1.4.3 Cấu trúc dữ liệu chính 13
1.4.4 Document Index 14
1.4.5 Danh mục từ Lexicon 14
1.4.6 Các danh sách hit 14
1.4.7 Đánh chỉ mục cho web (indexing the web) 15
1.4.8 Tìmkiếm 15
1.4.9 Hệthống xếp hạng 16
CHƯƠNG II: CÁCTHUẬTTOÁNĐỐISÁNHMẪUCHOHỆTHỐNGTÌMKIẾM
THÔNG TINTRÊNMẠNG 17
2.1 Giới thiệu một số thuậttoánđốisánhmẫu điển hình 18
2.1.1 Thuậttoán Brute Force 18
2.1.2 Thuậttoán Knuth Morris Pratt 19
2.1.3 Thuậttoán Boyer-Moore 21
2.2 So sánhcácthuậttoán 22
CHƯƠNG III: THỬ NGHIỆM XÂY DỰNG MÁY TÌMKIẾM 23
3.1 Giới thiệu 23
3.2 Xây dựng cấu trúc dữ liệu 23
3.2.1 Lớp Catalog 23
3.2.2 Lớp Word 23
3.2.3 Lớp File 24
3.3 Đặc tả chức năng của chương trình 24
3.3.1 Mô tả cơ chế hoạt động 24
3.3.2 Trang search.cs 25
3.3.3 Trang web.config 25
3.3.4 Trang Search_Crawler.aspx 25
3.3.5 Trang Search_Engine.aspx 25
KẾT LUẬN 27
KIẾN NGHỊ VÀ HƯỚNG NGHIÊNCỨU TIẾP THEO 28
iii
MỞ ĐẦU
Trong đời sống ngày nay, với sự phát triển nhanh chóng của Internet,
các tài nguyên trên World-Wide-Web hết sức phong phú và rất hữu ích đối
với cuộc sống và công việc của nhiều người trên khắp thế giới. Tuy nhiên,
để khai thác hiệu quả tài nguyên khổng lồ này searchengine là một công cụ
không thể thiếu.
Để tìmkiếm một thôngtintrênmạng chỉ cần đơn giản là truy cập
vào một trang tìmkiếm như Google và gõ vào từ khoá cần tìm rồi nhấn nút.
Sau một khoảng thời gian rất ngắn một danh sách các trang web phù hợp
với từ khóa sẽ được trả về và được sắp theo thứ tự những trang có nội dung
gần với yêu cầu của người sử dụng nhất thì sẽ hiển thị ở đầu danh sách.
Công việc còn lại của người sử dụng là mở các trang này ra và xem thông
tin. Những trang có chức năng tìmkiếm như vậy chúng ta còn gọi là các
máy tìmkiếmSearch Engine. CácSearchEngine không chỉ đơn thuần là
một trang web với các mã HTML đơn giản mà nó là cả một hệthống gồm
nhiều bộ phận, mỗi bộ phận thực hiện một chức năng như dò tìmcác trang
trên Internet, tải chúng về, phân hạng, lập chỉ mục, trả về kết quả cho người
sử dụng.
Do sự hữu ích của các công cụ tìmkiếmthôngtintrên Internet nên
tôi lựa chọn đề tài “Nghiên cứuSearchEnginevàcácthuậttoánđối
sánh mẫuchohệthốngtìmkiếmthôngtintrên mạng”, với mục đích là
nghiên cứu cấu trúc, cơ chế hoạt động của một Search Engine, và một số
thuật toánđốisánh mẫu. Tiếp đó là xây dựng một máy tìmkiếm hoạt động
theo cơ chế chung của một Search Engine.
1
CHƯƠNG 1: TỔNG QUAN VỀ SEARCHENGINE
1.1 Giới thiệu chung
Máy tìmkiếmSearchEngine nguyên thuỷ là một phần mềm
nhằm tìm ra các trang trênmạng Internet có nội dung theo yêu cầu
người dùng dựa vào cácthôngtin mà người sử dụng cung cấp qua từ
khoá tìm kiếm. Máy tìmkiế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.
Thuật ngữ “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
(Crawler-Based Search Engines) và dạng thư mục Internet do con
người quản lý (Human-Powered Directories). Hai hệthốngtìmkiếm
này tìmvà lập danh mục website theo 2 cách khác nhau.
Crawler-Based Search Engines: Các máy tìmkiếm loại này
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ìmcác trang trên mạng, rồi tự động phân
tích các trang lấy về và đưa vào cơ sở dữ liệu của nó. Khi có một yêu
cầu tìm kiếm, cácSearchEngineđối chiếu từ khóa cần tìm vào trong
bảng chỉ mục và trả về cácthôngtin lưu trữ tương ứng. Các cỗ máy
tìm kiếm loại này có cơ chế cập nhật nội dung của web định kỳ để
phát hiện sự thay đối (nếu có) của các trang web.
Human-Powered Directories: các thư mục Internet hoàn toàn
phụ thuộc vào sự quản lý của con người. Nếu người sử dụng muốn các
2
Search Enginetìm thấy trang web của mình thì họ phải đăng ký vào
thư mục bằng cách gửi bản đăng ký đến ban biên tập của Search
Engine.
Ngày nay hầu hết cáchệthốngtìmkiếm đều là sự tổng hợp
của hệthốngtìmkiếm tự động vàhệthốngtìm theo thư mục do người
dùng quản lý.
1.2 Phân loại:
Xét theo phương pháp tìmkiếm thì cácSearchEngine được
chia làm hai loại chính: Tìmkiếmthông thường và siêu tìm kiếm.
1.2.1 Máy tìmkiếmthông thường
Các máy tìmkiếmthông thường thực hiện công việc tìmkiế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, SearchEngine sử dụng thư mục chủ đề vàSearchEngine tạo
chỉ mục tự động.
Các SearchEngine sử dụng thư mục chủ đề 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ủ đề.
1.2.2 Máy siêu tìmkiếm - Meta SearchEngine
Meta SearchEngine 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ácSearchEngine sẵn có. Các Meta SearchEngine
không có cơ sở dữ liệu của riêng mình. Khi có yêu cầu tìmkiếm máy
siêu tìmkiếm sẽ gửi từ khóa đến cácSearchEngine khác một cách
đồng loạt và nhận về các kết quả tìm được. Nhiệm vụ còn lại của máy
siêu tìmkiếm là phân tích và phân hạng lại các kết quả tìm được.
3
1.3 Mô hình của seach engine
1.3.1 Bộ tìm duyệt 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 S
0
. Đầu tiên nó sắp xếp các phần tử trong tập S
0
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ề.
- Cách cập nhật các trang: Crawler phải xem xét trang nào nên
ghé thăm lại trang nào không.
- Song song hoá quá trình dò tìm trang web: Các Crawlers
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.3.1.1 Page selection (lựa chọn các trang)
Bộ tìm duyệt Crawler tải về các trang theo thứ tự trang nào
“quan trọng” sẽ tải về trước. Như vậy ta phải tìm hiểu cách mà
Crawler xác định mức độ quan trọng của các trang.
Cho một trang web P, ta định nghĩa mức độ “quan trọng” của
trang P theo các cách sau:
- Interest Driven: là phương pháp xác định mức độ quan trọng của các
trang dựa vào mức độ quan tâm của người sử dụng với các trang đó.
4
- Popularity Driven: xác định mức độ quan trọng của một trang dựa
vào mức độ phổ biến của trang. Một trong các cách để định nghĩa độ
phổ biến của trang là sử đếm số liên kết đến trang đó (số back link).
- Location Driven: xác định mức độ quan trong của trang P dựa vào
địa chỉ của nó.
1.3.1.2 Mô hình Crawler
Crawler được thiết kế để có khả năng ghé thăm các trang theo
thứ tự các trang có mức độ quan trọng cao hơn thăm trước các trang
có hạng thấp hơn thăm sau. Bộ Crawler đánh giá các trang dựa vào giá
trị phân hạng. Từ sự đánh giá này Crawler biết được các trang có mức
độ quan trọng cao hơn để lấy về trong lần kế tiếp. Để đánh giá chất
lượng của Crawler người ta có thể định nghĩa độ đo chất lượng quality
metric của nó bằng một trong hai cách sau:
- Crawl & stop: Bộ Crawler C xuất phát từ trang khởi đầu P
0
và dừng
lại sau khi ghé thăm k trang, k là số lượng trang mà Crawler có thể tải
về trong một lần duyệt. Một Crawler tốt sẽ ghé thăm các trang theo
thứ tự R
1
,….R
k
trong đó R
1
là trang có thứ hạng cao nhất, lần lượt đến
R
2
,… . Gọi R
1
, …,R
K
là các trang hot. Trong số k trang được Crawler
ghé thăm chỉ có m trang (mk) sẽ được sắp thứ hạng cao hơn hoặc
bằng trang R
k
- Crawl & Stop with Threshold: vẫn giả sử rằng bộ Crawler ghé thăm
k trang. Tuy nhiên lúc này đích quan trọng G đã được cho sẵn, và bất
cứ trang nào có độ quan trọng lớn hơn G thì đều được coi là trang
hot.
5
- Độ đo thứ hạng (Ordering Metrics): Một Crawler lưu giữ những
URLs mà nó đã ghé thăm trong quá trình dò tìm vào một hàng đợi.
Sau đó nó lựa chọn một URL trong hàng đợicho lần ghé thăm tiếp
theo. Ở mỗi lần lựa chọn thì Crawler chọn URL u có giá trị Ordering
cao nhất để ghé thăm. Độ đo thứ hạng (Ordering Metric) được thiết
lập dựa vào một trong các độ đo khác. Ví dụ nếu ta đang thực hiện tìm
những trang có giá trị IB(P) cao, thì ta sẽ lấy giá trị IB
’
(P) làm độ đo
thứ hạng, trong đó P là trang mà được trang u trỏ tới.
1.3.1.3 Page Refresh
Khi Crawler lựa chọn và tải về các trang “quan trọng”, sau một
khoảng thời gian nhất định nó phải thực hiện cập nhật các trang đó.
Có rất nhiều cách để cập nhật các trang web, vàcác cách khác nhau sẽ
cho các kết quả khác nhau. Sau đây là hai cách:
+ Uniform refresh policy: Chiến lược cập nhật đồng loạt. Crawler ghé
thăm lại tất cả các trang theo cùng một tần suất f.
+ Proportional refresh policy: Cập nhật theo tỷ lệ, một trang thường
xuyên thay đổi thì Crawler ghé thăm thường xuyên hơn. Để chính xác
hơn ta giả sử µ
i
là tần xuất thay đổi của trang e
i
, và f
i
là tần suất mà
Crawler ghé thăm lại trang e
i
.
Crawler phải ước lượng µ
i
của mỗi trang để thiết lập chiến lược
ghé thăm lại mỗi trang thích hợp. Việc ước lượng này dựa vào quá
trình thay đổi của trang trước đó mà Crawler đã ghi lại được.
Độ đo cập nhật (freshness metric):
Giả sử có hai tập các trang web A, B mỗi tập gồm 20 trang,
trong đó tập A có trung bình 10 trang được cập nhật, tập B có 15 trang
[...]... sao cho không có bất kỳ một thôngtin nào có quá nhiều ảnh hưởng Hệthốngtìmkiếm Google có khả năng mở rộng Google sử dụng một số kỹ thuật như giải thuật phân hạng trang PageRank, anchor text, và proximity để nâng cao chất lượng tìmkiếm 17 CHƯƠNG II: CÁCTHUẬTTOÁNĐỐISÁNHMẪUCHOHỆTHỐNGTÌMKIẾMTHÔNGTINTRÊNMẠNG Để một máy tìmkiếm họat động hiệu quả, ngoài kỹ thuật thu thập thôngtin và. .. đun trong SearchEngine như kỹ thuật xây dựng mô đun tìm duyệt Crawler, mô đun đánh chỉ mục Indexer, mô đun phân hạng Ranking,…Từ đó tìm hiểu SearchEngine điển hình Google - Trên cơ sở tìm hiểu về hệthốngtìm kiếm, cũng như cách thức tìmkiếmtrênmạng luận văn đã tập trung phân tích và đánh giá một số thuậttoánđỗisánhmẫu để áp dụng chohệthốngtìmkiếm - Xây dựng một SearchEnginetrên cơ sở... trình C# và công nghệ ASP.NET SearchEngine này chạy trên trình chủ localhost, và nó hoạt động dựa theo nguyên lý chung của một hệthốngtìmkiếmtrênmạng Search Engine thực hiện được chức năng dò tìmcác tệp html, phân tích các tệp mà nó tìm được thành các từ và xây dựng danh mục từ Catalog Sau đó cho phép người sử dụng gõ vào từ hoặc cụm từ cần tìmvàSearchEngine sẽ trả về kết quả tìmkiếm theo... hành tìm trong Danh mục từ Catalog và trả về kết quả là các trang có chứa từ khoá 26 Hình 3.11: Màn hình trang tìmkiếm chính Search_ engine. aspx Hình 3.13: Màn hình kết quả tìmkiếm với cụm từ khoá: SearchEngine 27 KẾT LUẬN Kết quả đạt được của luận văn: - Luận văn đã trình bày kiến trúc và nguyên tắc hoạt động chung của cáchệthốngtìmkiếmthôngtintrênmạngCác kỹ thuật trong việc xây dựng các. .. có độ dài n (m ≤ n), tập các ký tự được dùng gọi là bảng chữ cái , có số lượng là Để tăng tốc độ tìmkiếm dữ liệu thì đốisánh đa mẫu được sử dụng Trong phương pháp đốisánh đơn mẫu thì tại một thời điểm chỉ có một mẫu được đốisánh Còn trong phương pháp đốisánh đa mẫu, tại một thời điểm nhiều mẫu được đồng thời đốisánh Việc đốisánhmẫu diễn ra với nhiều lần thử trêncác đoạn khác nhau của văn... (i+1) End; Trong cách dịch thứ 2 thuậttoán Boyer Moore có thể đạt tới chi phí O(n/m) trong trường hợp chuỗi ban đầu không lớn và bộ ký tự không nhỏ 2.2 So sánh các thuậttoán Như vậy ngoài thuậttoán Brute Force tìn kiến theo kiểu vét cạn thuậttoán Knuth Morris Pratt và thuậttoán Boyer-Moore đều có ưu điển hơn Tuy nhiên còn tùy thuộc vào đặc điểm của các chỗi so sánh Nếu chỗi so sánh là các chuỗi có... phần tìmkiếm của người Việt, nên các cỗ máy tìmkiếm trong nước đang gặp rất nhiều khó khăn Nên phương hướng phát triển đề tài là phát triển cáchệthốngtìmkiếm trong nước để thu hút được đa số người sử dụng tiếng Việt Muốn vậy chúng ta cần tập trung đi sâu vào nghiên cứu phát triển các cỗ máy tìmkiếm tiếng Việt với khả năng bản địa hoá sâu sắc Các cỗ máy này phải nắm bắt được thói quen tìmkiếm thông. .. tạo chỉ mục chothông tin, chúng ta cũng cần quan tâm đến việc sử dụng các thuậttoán tối ưu để tìmkiếm dữ liệu Dữ liệu trong máy tính được lưu trữ dưới rất nhiều dạng khác nhau, nhưng phổ biến nhất vẫn là dạng chuỗi Một phép toán cơ bản trên chuỗi là đốisánhmẫu (pattern matching), bài toán yêu cầu ta tìm ra một hoặc nhiều vị trí xuất hiện của mẫutrên một văn bản Trong đó mẫu có độ dài m và văn bản... NGHỊ VÀ HƯỚNG NGHIÊNCỨU TIẾP THEO Hiện nay trênmạng Internet đã có rất nhiều công cụ tìmkiếm mạnh được hầu hết người sử dụng trên thế giới biết đến và sử dụng hàng ngày như công cụ tìmkiếm Google, Yahoo, Altavista, Và ở Việt Nam cũng đã có những công cụ tìmkiếm giành cho người Việt như Sóc bay, Xa lộ, …Tuy nhiên do sự phát triển mạnh mẽ của cỗ máy tìmkiếm lớn nhất thế giới Google với việc cho. .. là thuậttoán có tìmkiếm chuỗi rất có hiệu quả trong thực tiễn Thuậttoán Boyer-Moore kiểm tra các ký tự của mẫu từ phải sang trái và khi phát hiện sự khác nhau đầu tiên thuậttoán sẽ tiến hành dịch cửa sổ : Cách thứ 1: Dịch sao cho những phần đã so sánh trong lần trước khớp với những phần giống nó trong lần sau Cách thứ 2: Coi ký tự đầu tiên không khớp trên văn bản là b=T[j+i-1] ta sẽ dịch sao cho . MẪU CHO HỆ THỐNG TÌM KIẾM
THÔNG TIN TRÊN MẠNG 17
2.1 Giới thiệu một số thuật toán đối sánh mẫu điển hình 18
2.1.1 Thuật toán Brute Force 18
2.1.2 Thuật. toán đối
sánh mẫu cho hệ thống tìm kiếm thông tin trên mạng , với mục đích là
nghiên cứu cấu trúc, cơ chế hoạt động của một Search Engine, và một số
thuật