Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

51 545 2
Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

Đ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

TRƯỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN _____________*_____________ ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN TÌM HIỂU CÁC HỆ THỐNG SEARCH ENGINE XÂY DỰNG A SIMPLE SEARCH ENGINE Sinh viên thực hiện : Tăng Ngọc Phú Lớp : 46K1-CNTT Giáo viên hướng dẫn : THS.Phan Anh Phong VINH 5-2010 Sinh viên thực hiện: Tăng Ngọc Phú Lớp 46K1 Tổ Hệ Thống Thông Tin 1 TÓM TẮT NỘI DUNG ĐỀ TÀI Một trong những yếu tố quan trọng góp phần vào sự thành công của mạng internet chính là các hệ thống search engine. Mục đích của tác giả khi làm đề tài này chính là tìm hiểu các hệ thống search engine, cấu trúc cách thức hoạt động của chúng, từ đó xây dựng lên một hệ thống search engine đơn giản mô hình lại một hệ thống search engine trên thực tế. Trong hệ thống được xây dựng tác giả áp dụng thêm giải thuật phân vùng tài liệu để góp phần đem đến cho người sử dụng hệ thống các kết quả tìm kiếm gần với mong muốn nhất. Chương một, trình bày cấu túc tổng thể về các hệ thống search engine, các thành phần, cách thức hoạt động của hệ thống. Các vấn đề trong việc xây dựng phát triển các hệ thống search engine. Ở chương hai sẽ bàn về các phương pháp tiếp cận để xây dựng lên một hệ thống search engine mô tả lại các hệ thống search engine thực: Cách thức xử lý ngôn ngữ trong hệ thống tìm kiếm, mô hình không gian vector thư viện mã nguồn mở Lucene. Trên cơ sở mô hình không gian vector, chương ba, trình bày về một phương pháp giúp người dùng tìm kiếm được các kết quả gần với mong muốn nhất. Đó chính là việc phân cụm tài liệu. Chương bốn nói tới việc xây dựng một hệ thống search engine thử nghiệm mô hình lại một hệ thống search engine trên thực tế. Các thành phần, cấu trúc dữ liệu các giải thuật liên quan. Chương cuối cùng sẽ trình bày các đánh giá về những gì đã thực hiện được của đề tài. Những kết luận về bài toán mà đề tài đã giải quyết được cũng như định hướng phát triển. Sinh viên thực hiện: Tăng Ngọc Phú Lớp 46K1 Tổ Hệ Thống Thông Tin 2 Mục lục Chương I. Tổng quan về hệ thống search engine 3 3.1 Khái niệm .16 2.3 Ứng dụng mô hình không gian vector trong các hệ thống tìm kiếm .20 Chương I. Tổng quan về hệ thống search engine 1. Giới thiệu Trong bối cành hiện nay, người ta cho rằng thông tin là một tài nguyên quan trọng cho đời sống kinh tế xã hội. Thông tin thực sự là đầu vào của nhiều ngành Sinh viên thực hiện: Tăng Ngọc Phú Lớp 46K1 Tổ Hệ Thống Thông Tin 3 kinh tế đặc biệt là những ngành công nghệ cao hoặc dịch vụ. Vì thế việc sử dụng khai thác thông tin sao cho hiệu quả nhất được đặt ra. Trong khai thác sử dụng thông tin thì hai quá trình quan trọng nhất là tìm kiếm sắp xếp. Phần lớn những thuật toán công trình tiêu biểu về công nghệ thông tin đều xoay quanh hai chủ đề này [1] . Sự ra đời của internet cũng dẫn đến hai đặc trưng cơ bản của thông tin hiện nay: • Tốc độ gia tăng nhanh • Tốc độ thay đổi nhanh Loài người thực sự đứng trước vấn đề đã được đặt ra trước đó vài thập kỷ: “ngợp thông tin”. Con người cần một công cụ có thể làm việc trên internet, tìm kiếm, tập hợp thông tin, sau đó lưu trữ , sắp xếp để sử dụng khi cần thiết. Đó chính là lí do ra đời những hệ thống tìm kiếm tổng quát (All- Purpose Search Engine-APSE). APSE đầu tiên ra đời là ALIWEB (Archie Like Indexing for the WEB ) của Martijn Koster được giới thiệu vào tháng 11/1993. Sau đó là hàng loạt những tên tuổi lớn khác: Altavista (1995), Google (1998), Yahoo! Search (2004), MSN Search (2005). Hiện nay theo số liệu của comScore Google là tên tuổi số một, chiếm khoảng 64% thị phần người dùng Internet tại Mỹ, là một trong các thương hiệu có giá trị nhất hành tinh. Số tài liệu mà các công cụ tìm kiếm này lưu trữ cũng tăng lên tỉ lệ thuận với tốc độ thay đổi transistor trên các chip điện tử theo định luật Moore: “Số lượng transistor trên mỗi đơn vị inch vuông sẽ tăng lên gấp đôi sau 18 tháng”. Năm 1998 khi mới ra đời Google quản lý số tài liệu cỡ 6 10 , mười năm sau vào năm 2008 họ thông báo rằng đang có số tài liệu lên tới 9 10 . Để có thể lưu trữ, sắp xếp, tìm kiếm trên số tài liệu khổng lồ đó những nhà phát triển không những phải tiến hành xây dựng những giải thuật hiệu quả nhất mà cấu hình phần Sinh viên thực hiện: Tăng Ngọc Phú Lớp 46K1 Tổ Hệ Thống Thông Tin 4 cứng của họ cũng không ngừng tăng lên tương ứng. Năm 2000 Google tuyên bố chuyển sang công nghệ Google 2.0 , họ tiết lộ một vài chỉ số kĩ thuật của hệ thống Google 1.0 [3] : • Cluster of PCs với hơn 6.000 bộ xử lý. • Hệ thống lưu trữ dùng RAID: có 12.000 đĩa cứng ~ 1petabyte (1triệu GB). • 2 site ở Silicon Valley, 1site ở Virginia. Mỗi site được kết nối với Internet qua OC48 (2488Mbps). Cùng với hệ điều hành (Operating System), các hệ thống tìm kiếm là những hệ thống tin học lớn nhất mà con người từng xây dựng, cũng là những hệ thống được sử dụng nhiều nhất. Có ba lĩnh vực nghiên cứu liên quan mật thiết tới các hệ thống tìm kiếm [1] : • Information retrieval. • Data mining đặc biệt là web mining. • Natural language processing. Tại Việt Nam, vào thời điểm mà tác giả viết báo cáo này, có không dưới 4 công cụ tìm kiếm Tiếng Việt đang được đầu tư, nghiên cứu xây dựng. Đó là Socbay.com, Xalo.vn, Zing.vn, Bamboo.com. Các hệ thống này đang lưu trữ cỡ 8 10 tài liệu tiếng Việt. Động lực để các nhà đầu tư bỏ hàng triệu USD để xây dựng chúng là vì ở Hàn Quốc Trung Quốc các hệ thống tìm kiếm bản địa đã chiến thắng Google với lí do chính là tập trung vào xử lý tiếng Hàn tiếng Trung tốt hơn. 2. Các thức thành phần chính của một hệ thống Search Engine Search engine có 3 bộ phận chính đó là: Web crawler, Index, Search Sinh viên thực hiện: Tăng Ngọc Phú Lớp 46K1 Tổ Hệ Thống Thông Tin 5 Cấu tạo cách thức hoạt động của 3 thành phần đó được mô tả như sau: 2.1 Web crawler Là một chương trình tự động thu thập tài nguyên trên internet. Nó được thiết kế để thu thập các tài nguyên như: trang web, hình ảnh, video, tài liệu word, PDF hay PostScrips… lấy các tài nguyên đó làm đầu vào cho máy đánh chỉ mục ngay sau đó [10] . Một Web Crawl giống như một “con bọ”. Nó bắt đầu từ một tập URL sẽ viếng thăm. Gọi là tập seeds ( tập khởi đầu). Có cách thức hoạt động như con bọ sau khi viếng thăm các url đó, nó sẽ tìm kiếm các đường link từ các trang web được lấy về đẩy chúng vào tập URLs để viếng thăm, gọi là crawl frontier ( tập biên). Các URL ở tập biên sẽ được viếng thăm đệ quy gán các chính sách crawl. 2.1.1 Các chính sách Crawl Có 3 đặc trưng rất quan trọng làm cho Web trở nên khó crawl [10] : - Số lượng trang web là rất lớn. - Tốc độ thay đổi nhanh. - Việc sản sinh các trang web động Một khối lượng lớn có nghĩa rằng một crawler chỉ có thể lấy về một số lượng trang web có hạn ở một thời điểm, việc lấy về hết toàn bộ trang web từ mạng internet tại thời điểm đó là không thể. Vì vậy nó cần xác định độ ưu tiên cho những trang nó download. Có thể hình dung việc thay đổi nhanh như trong là trong một thời điểm một crawl đang lấy về những trang cuối cùng của một web site, nhưng rất có khả năng các trang web mới khác đã được thêm vào site đó, hoặc có những trang cũ đã được cập nhật hoặc bị xóa. Sinh viên thực hiện: Tăng Ngọc Phú Lớp 46K1 Tổ Hệ Thống Thông Tin 6 Số lượng các trang web được sản sinh bởi các phần mềm trên các web server (ASP, PHP,…) làm cho việc crawl trở nên khó khăn hơn để tránh lấy các dữ liệu trùng lặp. Để giải quyết những đặc trưng ở trên, crawler cần được xây dựng dựa trên các chính sách - Crawling Policies: • Selection Policies: xác định những địa chỉ nào cần được Crawling dựa trên PageRank nếu nó đã có trên máy chủ, dựa trên Content (địa chỉ mới) … • Re-visit Policies: xác định khoảng thời gian để hệ thống Crawling địa chỉ này lần tiếp theo dựa trên PageRank, Content. • Politeness Policies: xác định những khu vực cấm Crawling: thông tin có giá trị thương mại, có bản quyền… được xây dựng dựa trên giao thức robots exclusion protocol cho phép quản trị của webserver cấu hình được khu vực nào Crawler không thể vào. • Parallelization plicies: cho phép tổ chức Crawling song song phân tán ra sao. 2.1.2 Kiến trúc của một Web crawler Sau đây là kiến trúc chung của một crawler: Sinh viên thực hiện: Tăng Ngọc Phú Lớp 46K1 Tổ Hệ Thống Thông Tin 7 Hình 1.1 : Kiến trúc chuẩn của một Web Crawl Queue: Nhận danh sách địa chỉ cần phải Crawling, lưu trữ, chuẩn hóa nó chuyển cho Scheduler. Scheduler: • Xác định một thứ tự Crawling cho các địa chỉ (ordering) • Phân bổ các địa chỉ cho hệ thống Crawler phân tán (distributing) • Xác định thời gian để Re-crawling một địa chỉ Một crawler không phải chỉ có một chiến lược crawling tốt, như ở phần trước đã bàn tới mà nó nên phải có một cấu trúc tối ưu. Shkapennyuk Suel đã nói rằng : “ trong khi rất dễ dàng để xây dựng một crawler chậm chạp có thể download một số lượng nhỏ trang web trong một quản thời gian ngắn thì để xây dựng một hệ thống hiệu năng cao có thể Sinh viên thực hiện: Tăng Ngọc Phú Lớp 46K1 Tổ Hệ Thống Thông Tin 8 download hàng trăm triệu trang web trong hàng tuần cần hàng loạt các đòi hỏi cao về thiết kế vào ra, hiệu năng mạng, tự động hóa khả năng quản lý”. [10] 2.1.3 Chứng thực của web crawler Các Web crawler sử dụng trường User-agent của HTTP request để chứng thực với các web server. Các quản trị web site có thể xem các file nhật ký của web server để xem có bao nhiêu crawler đã viếng thăm web server mức độ thường xuyên của các cuộc viếng thăm đó. Spambot các Web crawler có hại khác thường không để lại các thông tin chứng thực ở trường User-agent, hoặc chúng có thể chứng thực giống như các trình duyệt web hoặc các web crawler khác. Việc chứng thực các Web-crawler đến các quản trị web site rất quan trọng, nó giúp cho người quản trị của website có thể liên hệ với các crawler lúc cần. Một số ví dụ về crawler: - Yahoo! Slurp là tên của yahoo search crawler - MsnBot là tên của Bing crawler - Googlebot, crawler của google - Methabot là một web crawler được viết bằng C, được ra đời dưới chúng chỉ ISC 2.2 Bộ phận index Mục đích của đánh chỉ mục là nhằm tối ưu tốc độ hiệu năng khi thực hiện các truy vấn vào các file tài liệu để tìm kết quả trả về cho người dùng. Nếu không đánh chỉ mục, trong trường hợp xấu nhất một seach search engine có thể sẽ phải đọc toàn bộ các văn bản để có thể tìm ra các kết quả thích hợp. Điều này sẽ ảnh hưởng rất lớn đến hiệu năng của hệ thống. Ví dụ, trong khi đánh chỉ mục Sinh viên thực hiện: Tăng Ngọc Phú Lớp 46K1 Tổ Hệ Thống Thông Tin 9 cho 10.000 văn bản khiến cho một truy vấn chỉ cần vài mili giây để thực hiện, thì với một phép đọc liên tiếp tất cả 10.000 văn bản có thể tốn đến hàng giờ [11] . 2.2.1 Các nhân tố thiết kế bộ phận index Có rất nhiều các nhân tố ở trong một thiết kế của search engine chứa đựng: - Nhân tố hợp nhất: Làm thế nào để các bộ index có thể được đồng bộ với nhau, làm thế nào các đặc tính quan trọng có thể được thêm vào khi các bộ index giao nhau. - Công nghệ lưu trữ: Chính là việc lưu trữ các dữ liệu index, các thông tin trong quá trình đánh index có thể được nén hoặc được lọc. - Kích thước của index.: Cần bao nhiêu máy chủ lưu trữ để có thể lưu trữ dữ liệu đã được index. - Tốc độ tìm kiếm: Làm thế nào một từ khóa có thể tìm thấy tức thì ở trong inverted index. Các vấn đề tối ưu tốc độ tìm kiếm, so sánh cập nhật loại bỏ, đó là những vấn đề đang được giải quyết của ngành khoa học máy tính. - Duy trì: Làm thế nào để một chỉ mục có thể được duy trì. 2.2.2 Cấu trúc dữ liệu index Các search engine có nhiều các thiết kế dữ liệu index khác nhau để phù hợp với những nhân tố thiết kế ở trên. Một số cấu trúc chứa đựng: - Cây hậu tố: Lưu trữ dữ liệu theo dạng cây, hỗ trợ việc tìm kiếm trên từng nhánh. Lưu trữ theo dạng cây hỗ trợ việc mở rộng bản băm, đó là một vấn đề quan trọng trong việc đánh index của các search engine. Sinh viên thực hiện: Tăng Ngọc Phú Lớp 46K1 Tổ Hệ Thống Thông Tin 10

Ngày đăng: 19/12/2013, 09:59

Hình ảnh liên quan

Hình 1. 1: Kiến trúc chuẩn của một Web Crawl - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

Hình 1..

1: Kiến trúc chuẩn của một Web Crawl Xem tại trang 8 của tài liệu.
Hình 1.2 Ví dụ về cấu trúc của một cây hậu tố - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

Hình 1.2.

Ví dụ về cấu trúc của một cây hậu tố Xem tại trang 11 của tài liệu.
Hình 1.3: Bảng chỉ mục ngược - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

Hình 1.3.

Bảng chỉ mục ngược Xem tại trang 11 của tài liệu.
Hình 2.1 :Mô hình không gian vector với 2 tài liệu và 3 khái niệm - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

Hình 2.1.

Mô hình không gian vector với 2 tài liệu và 3 khái niệm Xem tại trang 17 của tài liệu.
Bảng 2.1:Ma trận tài liệu khái niệm tính theo mô hình không gian vector - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

Bảng 2.1.

Ma trận tài liệu khái niệm tính theo mô hình không gian vector Xem tại trang 21 của tài liệu.
Hình 3.1 Ma trận trọng số 3 tài liệu tính theo mô hình không gian vector - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

Hình 3.1.

Ma trận trọng số 3 tài liệu tính theo mô hình không gian vector Xem tại trang 30 của tài liệu.
Hình 3.1 Ma trậnocument - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

Hình 3.1.

Ma trậnocument Xem tại trang 30 của tài liệu.
Bảng Crawl - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

ng.

Crawl Xem tại trang 43 của tài liệu.
Bảng URL - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

ng.

URL Xem tại trang 43 của tài liệu.
Bảng Topic - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

ng.

Topic Xem tại trang 44 của tài liệu.
Hình 4.5:Crawl tiến hành thu thập thông tin - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

Hình 4.5.

Crawl tiến hành thu thập thông tin Xem tại trang 45 của tài liệu.
Hình 4.6 :Queue của crawl - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

Hình 4.6.

Queue của crawl Xem tại trang 45 của tài liệu.
Hình 4.7: Giao diện index và xác định topic cho các document. - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

Hình 4.7.

Giao diện index và xác định topic cho các document Xem tại trang 46 của tài liệu.
Hình 4.10: Giao diện cache - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

Hình 4.10.

Giao diện cache Xem tại trang 47 của tài liệu.
Hình 4.9 Giao diện search có sự kết hợp của topic - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

Hình 4.9.

Giao diện search có sự kết hợp của topic Xem tại trang 47 của tài liệu.
Danh mục các thuật ngữ tiếng anh được sử dụng trong báo cáo: - Tìm hiểu các hệ thống search engine và xây dựng a simple search engine

anh.

mục các thuật ngữ tiếng anh được sử dụng trong báo cáo: Xem tại trang 51 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan