Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 51 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
51
Dung lượng
1,53 MB
Nội dung
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ÌMHIỂUCÁCHỆTHỐNGSEARCHENGINEVÀXÂYDỰNGASIMPLESEARCHENGINE 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ốngThô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áchệthốngsearch engine. Mục đích của tác giả khi làm đề tài này chính là tìmhiểucáchệthốngsearch engine, cấu trúc và cách thức hoạt động của chúng, từ đó xâydựng lên một hệthốngsearchengine đơn giản mô hình lại một hệthốngsearchengine trên thực tế. Trong hệthống được xâydự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ụnghệthốngcá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áchệthốngsearch 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âydựngvà phát triển cáchệthốngsearch engine. Ở chương hai sẽ bàn về các phương pháp tiếp cận để xâydựng lên một hệthốngsearchengine mô tả lại cáchệthốngsearchengine thực: Cách thức xử lý ngôn ngữ trong hệthốngtìm kiếm, mô hình không gian vector và 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ùngtì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âydựng một hệthốngsearchengine thử nghiệm mô hình lại một hệthốngsearchengine trên thực tế. Các thành phần, cấu trúc dữ liệu và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ốngThông Tin 2 Mục lục Chương I. Tổng quan về hệthốngsearchengine 3 3.1 Khái niệm .16 2.3 Ứng dụng mô hình không gian vector trong cáchệthốngtìm kiếm .20 Chương I. Tổng quan về hệthốngsearchengine 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ốngThô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ụngvà khai thác thông tin sao cho hiệu quả nhất được đặt ra. Trong khai thác và sử dụngthông tin thì hai quá trình quan trọng nhất là tìm kiếm và sắp xếp. Phần lớn những thuật toán và 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ốngtì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ỹ, và 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, và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âydự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ốngThô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áchệthốngtì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áchệthốngtì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 vàxây dựng. Đó là Socbay.com, Xalo.vn, Zing.vn, Bamboo.com. Cáchệ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âydựng chúng là vì ở Hàn Quốc và Trung Quốc cáchệthốngtì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 và tiếng Trung tốt hơn. 2. Các thức thành phần chính của một hệthốngSearchEngineSearchengine 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ốngThông Tin 5 Cấu tạo và 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ề 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 và 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ốngThô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âydự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âydự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 và 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ốngThô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ó và 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 và Suel đã nói rằng : “ trong khi rất dễ dàng để xâydự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âydựng một hệthốnghiệu năng cao có thể Sinh viên thực hiện: Tăng Ngọc Phú Lớp 46K1 Tổ HệThốngThô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 và 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 và mức độ thường xuyên của các cuộc viếng thăm đó. Spambot vàcác Web crawler có hại khác thường không để lại cácthô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 độ và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 searchengine 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ốngThô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 searchengine 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ácthô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 và 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ácsearchengine 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ácsearch engine. Sinh viên thực hiện: Tăng Ngọc Phú Lớp 46K1 Tổ HệThốngThông Tin 10