1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu search engine và các thuật toán đối sánh mẫu cho hệ thống tìm kiếm thông tin trên mạng

33 658 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên Cứu Search Engine Và Các Thuật Toán Đối Sánh Mẫu Cho Hệ Thống Tìm Kiếm Thông Tin Trên Mạng
Tác giả Nguyễn Quang Huy
Người hướng dẫn TS. Phạm Thế Quế
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Truyền Dữ Liệu Và Mạng Máy Tính
Thể loại Luận văn thạc sĩ
Năm xuất bản 2010
Thành phố Hà Nội
Định dạng
Số trang 33
Dung lượng 676,26 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các Search Engine 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ìm các trang trên

Trang 1

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ỨU SEARCH ENGINE VÀ CÁC THUẬT TOÁN ĐỐI SÁNH MẪU CHO HỆ THỐNG

TÌM KIẾM THÔNG TIN TRÊN MẠNG

Trang 2

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

Trang 3

MỤC LỤC

MỤC LỤC ii

MỞ ĐẦU iii

CHƯƠNG 1: TỔNG QUAN VỀ SEARCH ENGINE 1

1.1 Giới thiệu chung 1

1.2 Phân loại: 2

1.2.1 Máy tìm kiếm thông thường 2

1.2.2 Máy siêu tìm kiếm - Meta Search Engine 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 Search Engine điển hình 12

1.4.1 Sự ra đời 12

1.4.2 Cấu trúc của máy tìm kiế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ìm kiếm 15

1.4.9 Hệ thống xếp hạng 16

CHƯƠNG II: CÁC THUẬT TOÁN ĐỐI SÁNH 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 Knuth Morris Pratt 19

2.1.3 Thuật toán Boyer-Moore 21

2.2 So sánh các thuật toán 22

CHƯƠNG III: THỬ NGHIỆM XÂY DỰNG MÁY TÌM KIẾ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ÊN CỨU TIẾP THEO 28

Trang 4

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 search engine là một công cụ không thể thiếu

Để tìm kiếm một thông tin trên mạng chỉ cần đơn giản là truy cập vào một trang tìm kiế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ìm kiếm như vậy chúng ta còn gọi là các máy tìm kiếm Search Engine Các Search Engine 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ìm cá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ìm kiếm thông tin trên Internet nên

tôi lựa chọn đề tài “Nghiên cứu Search Engine và các 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 toán đối sánh mẫu Tiếp đó là xây dựng một máy tìm kiếm hoạt động theo cơ chế chung của một Search Engine

Trang 6

CHƯƠNG 1: TỔNG QUAN VỀ SEARCH ENGINE

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

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ống tìm kiếm này tìm và lập danh mục website theo 2 cách khác nhau

Crawler-Based Search Engines: Các máy tìm kiế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ìm cá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ác Search Engine đối chiếu từ khóa cần tìm vào trong bảng chỉ mục và trả về các thông tin 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

Trang 7

Search Engine tì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ác 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à hệ thống tì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ìm kiếm thì các Search Engine đượ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.2.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

Các Search Engine 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ì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 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ề các kết quả tìm được Nhiệm vụ còn lại của máy siêu tìm kiếm là phân tích và phân hạng lại các kết quả tìm được

Trang 8

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 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ề

- 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 đó

Trang 9

- 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

độ 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 P0 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ự R1,….Rk trong đó R1 là trang có thứ hạng cao nhất, lần lượt đến R2,… Gọi R1, …,RK là các trang hot Trong số k trang được Crawler ghé thăm chỉ có m trang (mk) sẽ được sắp thứ hạng cao hơn hoặc bằng trang Rk

- 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

Trang 10

- Độ đ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 đợi cho 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

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

Trang 11

được cập nhật Người ta nói rằng tập B “cập nhật” hơn (“fresher”) tập

A Thêm nữa nếu tập A được cập nhật một ngày trước đây, tập B được cập nhật một năm trước đây thì ta nói tập A hiện hành hơn (“more current”) tập B, dẫn đến khái niệm tuổi “age”:

Dựa trên khái niệm trực giác này chúng ta đưa ra định nghĩa

freshness và age như sau:

+ Freshness: Đặt S={e1,…,en} là tập hợp N trang đã được

Crawler tải về Freshness được định nghĩa như sau:

freshness của trang ei tại thời điểm t là

 1 0 ) ,

i e F

+ Age: Để biết được “tuổi” của một tập chúng ta định nghĩa

khái niệm “age” như sau:

“age” của trang ei tại thời điểm t là

Chiến lược cập nhật Trong một khoảng thời gian nhất định

các Crawler chỉ có thể tải về hoặc cập nhật số lượng giới hạn các trang Tuỳ thuộc vào chiến lược cập nhật trang, nguồn download trang

sẽ được phân phối cho các trang khác nhau theo các cách khác nhau

Nếu trang ei được cập nhật tại thời điểm t Trong trường hợp ngược lại

Nếu trang ei được cập nhật tại thời điểm t (thời điểm chỉnh sửa trang ei) trong trường hợp còn lại

Trang 12

1.3.2 Kho dữ liệu Repository

Bộ phận page Repository là một hệ thống lưu trữ có khả năng mở rộng Hệ thống này quản lý một tập lớn các trang web Nó thực hiện hai chức năng chính: chức năng thứ nhất, cho phép Crawler lưu trữ các trang web Thứ hai, nó phải cung cấp API truy cập hiệu quả để bộ Indexer và bộ Collection Analysis có thể sử dụng để lấy các trang từ kho dữ liệu

1.3.2.1 Các yêu cầu đối với repository

- Một Repository quản lý một tập các đối tượng dữ liệu “data object” lớn

- Có khả năng mở rộng

- Có cách truy cập kép (dual access mode): Truy nhập ngẫu nhiên được sử dụng để nhanh chóng nhận về trang web và gán cho mỗi trang một định danh duy nhất Truy cập tuần tự được sử dụng để nhận về tập hợp hoàn chỉnh, hay vài tập hợp con lớn

- Cố thể cập nhật khối lượng lớn

- Loại bỏ những trang không còn tồn tại

- Kho dữ liệu được thiết kế phân tán (Distributed Repository)

1.3.2.2 Nguyên tắc phân tán trang

Các trang có thể được gán cho các nút dựa trên một số nguyên tắc khác nhau Như nguyên tắc phân tán đồng bộ (Uniform distribution), tất cả các nút được xử lý đồng nhất Một trang có thể được gán cho một nút bất kỳ trong hệ thống Các nút sẽ chứa các phần của tập hợp

Trang 13

các trang tuỳ theo khả năng lưu trữ của nút Ngược lại, với cách phân tán băm (hash distribution) việc định vị các trang vào các nút dựa trên định danh của trang

1.3.2.3 Phương pháp tổ chức trang vật lý

Trong một nút đơn, có 3 thao tác có thể thực hiện: thêm trang/ chèn trang (page addition/insertion), truy cập tuần tự tốc độ cao, và truy cập ngẫu nhiên Cách tổ chức các trang theo kiểu vật lý tại mỗi nút chính là việc xem xét xem mức độ hỗ trợ mỗi thao tác trên của nút

1.3.3 Bộ lập chỉ mục Indexer

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ả

Trang 14

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

Modul Indexer và Collection Analysis 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 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:

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

Text Index: Phương pháp đánh chỉ mục dựa theo nội dung

(text-based) 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

Trang 15

Thông thường việc lập chỉ mục tự động bắt đầu bằng việc khảo sát tần số xuất hiện của từng loại từ riêng rẽ trong văn bản

Đặc trưng xuất hiện của từ vựng có thể được định bởi “thứ hạng

Trọng số của mục từ: là tần số xuất hiện của mục từ trong toàn

bộ tài liệu, những từ thường xuyên xuất hiện trong tất cả các tài liệu thì “ít có ý nghĩa hơn” là những từ chỉ tập trung trong một số tài liệu

Trang 16

Ngược lại khi tần số xuất hiện của mục từ k trong tập tài liệu càng cao thì mục từ đó càng có ý nghĩa

Lập chỉ mục tự động cho tài liệu là xác định tự động mục từ chỉ mục cho các tài liệu Loại bỏ các từ stop-word vì những từ này có độ phân biệt kém và không thể sử dụng để xác định nội dung của tài liệu Bước tiếp theo là chuẩn hoá mục từ, tức là đưa mục từ về dạng nguyên gốc bằng cách loại bỏ tiền tố, hậu tố, và các biến thể khác của

từ như từ ở dạng số nhiều, quá khứ,

1.3.3.4 Cấu trúc của chỉ mục đảo

Sau khi phân tích các trang web, và thực hiện tách các từ, chuẩn hoá các từ về dạng nguyên gốc, loại bỏ các từ stop word Ta thu được một danh mục các từ mỗi từ được gắn kèm danh sách các trang chứa từ đó Danh mục này gọi là chỉ mục đảo (inverted index)

1.3.4 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

Ngày đăng: 17/02/2014, 08:47

HÌNH ẢNH LIÊN QUAN

1.4 Search Engine điển hình - Nghiên cứu search engine và các thuật toán đối sánh mẫu cho hệ thống tìm kiếm thông tin trên mạng
1.4 Search Engine điển hình (Trang 17)
Hình 3.1: Cơ chế hoạt động của máy tìm kiếm Search Engine - Nghiên cứu search engine và các thuật toán đối sánh mẫu cho hệ thống tìm kiếm thông tin trên mạng
Hình 3.1 Cơ chế hoạt động của máy tìm kiếm Search Engine (Trang 29)
Hình 3.10: Trang Search_Crawler.aspx - Nghiên cứu search engine và các thuật toán đối sánh mẫu cho hệ thống tìm kiếm thông tin trên mạng
Hình 3.10 Trang Search_Crawler.aspx (Trang 30)
Hình 3.11: Màn hình trang tìm kiếm chính Search_engine.aspx - Nghiên cứu search engine và các thuật toán đối sánh mẫu cho hệ thống tìm kiếm thông tin trên mạng
Hình 3.11 Màn hình trang tìm kiếm chính Search_engine.aspx (Trang 31)
Hình 3.13: Màn hình kết quả tìm kiếm với cụm từ khoá: Search Engine - Nghiên cứu search engine và các thuật toán đối sánh mẫu cho hệ thống tìm kiếm thông tin trên mạng
Hình 3.13 Màn hình kết quả tìm kiếm với cụm từ khoá: Search Engine (Trang 31)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w