Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 98 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
98
Dung lượng
2,63 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
──────── * ───────
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
XÂY DỰNGHỆ THỐNG
FOCUSED CRAWLER
Sinh viên thực hiện : Dương Minh Sơn
Lớp : HTTT-K49
Giáo viên hướng dẫn : PGS.TS.Trần Đình Khang
HÀ NỘI 5-2009
Sinh viên thực hiện: Dương Minh Sơn-Khoá K49-Lớp HTTT 2
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên:Dương Minh Sơn
Điện thoại liên lạc :0976738243 Email: sondm18@yahoo.com
Lớp: HTTT_B , K49 Hệ đào tạo: kỹ sư chính quy
Đồ án tốt nghiệp được thực hiện tại: Bộ môn các hệthốngthông tin
Thời gian làm ĐATN: Từ ngày 23/ 02 /2009 đến 10 / 06 /2009
2. Mục đích nội dung của ĐATN
• XâydựnghệthốngFocused Crawler.
3. Các nhiệm vụ cụ thể của ĐATN
• Tìm hiểu kiến trúc tổng thể hệthống Search Engine, Vertical Search Engine, Crawler,
Focused Crawler.
• Tìm hiểu các phương pháp xâydựnghệthốngFocused Crawler
• Phân tích ,thiết kế cài đặt một hoặc hai phương pháp xâydựnghệthống và đánh giá
kết quả
4. Lời cam đoan của sinh viên:
Tôi – Dương Minh Sơn- cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự
hướng dẫn của PGS.TS.Trần Đình Khang
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ công
trình nào khác.
Hà Nội, ngày 25 tháng 5 năm 2009
Tác giả ĐATN
Dương Minh Sơn
5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo vệ:
Hà Nội, ngày 26 tháng 5 năm 2009
Giáo viên hướng dẫn
PGS.TS.Trần Đình Khang
Sinh viên thực hiện: Dương Minh Sơn-Khoá K49-Lớp HTTT 1
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Vertical Search Engine là một hệthống Search Engine thực hiện việc tìm kiếm trên một miền
lĩnh vực hẹp. Thành phần trung tâm của nó là Focused Crawler. Nhiệm vụ của nó là tiến hành
thu thập các tài liệu trên internet liên quan hoặc thuộc về một miền lĩnh vực nào đó. Đồ án tốt
nghiệp gồm năm chương.
Chương một, trình bày một cách tổng thể về các hệthống Search Engine, Vertical Search
Engine, Crawler, Focused Crawler. Giúp ta hiểu về nguyên lý hoạt động ,các thành phần của
các hệthống trên.
Vấn đề mấu chốt của FocusedCrawler là với một tài liệu d, một lĩnh vực t, hãy ước lượng giá
trị hàm liên quan giữa d và t : R(d,t) . Để làm được điều này ,trước hết ta cần một mô hình để
biểu diễn tài liệu và lĩnh vực. Chương hai, trình bày về mô hình không gian vector ,mô hình
hay sử dụng nhất hiện nay. Ngoài ra hệthốngFocusedCrawler cũng như các hệthống
Crawler khác được xâydựng trên cơ sở các giải thuật Crawling. Phần tiếp theo của chương hai
trình bày các giải thuật Crawling nổi tiếng nhất. Phần cuối cùng của chương này giới thiệu về
thư viện mã nguồn mở Nutch mà ta sẽ sử dụng để cài đặt hệ thống.
Trên cơ sở mô hình không gian vector, chương ba, trình bày hai phương pháp ước lượng giá
trị hàm R(d,t) dựa trên hàm tương tự (Similarity Function) và phân loại Bayes (Bayes
Classification). Đánh giá độ phức tạp tính toán, các vấn đề lưu trữ và cài đặt hai phương pháp
trên.
Chương bốn, nói tới việc phân tích ,thiết kế hệthốngFocusedCrawler theo hướng cấu trúc.
Chương năm, trình bày tổng quan các phương pháp đánh giá một hệthốngFocusedCrawler
và đánh giá hệthống vừa cài đặt. Trong chương này chúng ta cũng đưa ra những kết luận cuối
cùng về bài toán mà đồ án giải quyết cũng như định hướng phát triển.
Sinh viên thực hiện: Dương Minh Sơn-Khoá K49-Lớp HTTT 2
ABSTRACT OF THESIS
Vertical Search Engine is a Search Engine which you can search for information about a
particular topic. The main component of Vertical Search Engine is Focused Crawler. Focused
Crawler is a robot, working in the Internet that retrieves the documents belonging to the topic.
Chapter one will present the architecture, principle of Search Engines, Vertical Search
Engines, Crawlers, Focused Crawlers.
The most important problem in developing a FocusedCrawler is estimates the value of a
function: R(d,t) where d is a document and t is a topic. We need a model to present documents
and topics. So, chapter two will introduce the Vector Space Model, a famous model in
Information Retrieval. In this chapter, we also discuss about crawling algorithm. The last item
in this chapter is about Nutch, a java open source library for developing Search Engine.
By using Vector Space Model, chapter three will present two methods to estimates R(d,t). The
first method is based on Similarity Function and the second method is based on Bayes
Classification .We will also discuss about the complexity, implementation problem of the two
methods.
In chapter four, we will anaylize and design the system including functions, data structure.
The last chapter will present the evaluation method to evaluate a Focused Crawler. We will
evaluate the system which we implemented. This chapter will also make conclusions of the
problem we are solving and its development in future.
Sinh viên thực hiện: Dương Minh Sơn-Khoá K49-Lớp HTTT 3
Mục lục
Mục lục 4
Lời nói đầu 6
Chương 1.Giới thiệu 8
1.1. Hệthống tìm kiếm tổng quát 8
1.1.1. Giới thiệu 8
1.1.2. Nguyên lý và kiến trúc của các hệthống tìm kiếm 9
1.1.3. Thành phần Crawler 13
1.1.4. Các vấn đề khó khăn nhất khi xâydựnghệthống tìm kiếm 15
1.2. Hệthống tìm kiếm theo chiều sâu 15
1.2.1. Tại sao phải xâydựnghệthống tìm kiếm theo chiều sâu 15
1.2.2. Nguyên lý và kiến trúc các hệthống tìm kiếm theo chiều sâu 17
1.2.3. Thành phần FocusedCrawler 17
Chương 2: Cơ sở lý thuyết 19
2.1. Các bước xử lý ngôn ngữ thông thường trong khi tìm kiếm 19
19
2.1.1. Loại bỏ các từ dừng (Stop Word) 19
2.1.2. Đưa một từ trở về từ gốc (Stemming) 19
2.2. Mô hình không gian vector 20
2.2.1. Mô hình không gian vector 20
2.2.2.Ứng dụng mô hình không gian vector trong các hệthống tìm kiếm 23
2.3. Các giải thuật Crawling 28
2.3.1. Giới thiệu 28
2.3.2. Các độ đo 30
2.3.3. Các giải thuật Crawling 32
Ở đây ta có các cấu trúc dữ liệu sau : 35
2.3.4.Đánh giá các giải thuật Crawling 36
2.4. Thư viện mã nguồn mở Nutch 37
2.4.1. Giới thiệu Nutch 37
2.4.2. Kiến trúc của một hêthống tìm kiếm dựa Nutch 38
Chương 3: XâydựnghệthốngFocusedCrawler 45
3.1.Hướng tiếp cận thứ nhất 45
3.2. Hướng tiếp cận thứ hai 46
3.2.1. XâydựngFocusedCrawler dựa trên hàm tương tự 46
Sinh viên thực hiện: Dương Minh Sơn-Khoá K49-Lớp HTTT 4
3.2.2. XâydựngFocusedCrawler dựa trên định lý Bayes 53
Chương 4: Phân tích thiết kế hệthốngFocusedCrawler 58
4.1. Phân tích hệthống 59
4.1.1. Phân tích hệthống về mặt chức năng 59
4.1.2. Phân tích hệthống về mặt dữ liệu 65
4.2. Thiết kế hệthống 67
4.2.1. Thiết kế dữ liệu 67
4.2.2. Thiết kế chương trình 72
Chương 5: Đánh giá kết quả 75
5.1. Các phương pháp đánh giá hệthốngFocusedCrawler 75
5.1.1. Đánh giá giải thuật Crawling 76
5.1.2. Đánh giá việc phân loại tài liệu 78
5.2. Đánh giá hệthống đã xâydựng được 81
5.2.1. Đánh giá giải thuật Crawling sử dụng 81
5.2.2. Đánh giá giải thuật phân loại tài liệu 82
5.3. Kết luận 88
Phụ lục 1: Danh mục các hình vẽ trong tài liệu 90
Phụ lục 2 : Danh sách các bảng trong tài liệu 92
Phụ lục 3: Danh sách các thuật ngữ tiếng Anh 93
Phụ lục 4: Một số website tìm kiếm theo chiều sâu hiện nay 94
Tài liệu tham khảo 95
Sinh viên thực hiện: Dương Minh Sơn-Khoá K49-Lớp HTTT 5
Lời nói đầu
Thông tin ngày càng có vai trò quan trọng trong cuộc sống. Đến đầu thế kỷ 21 đã xuất
hiện nền kinh tế tri thức coi tri thức, thông tin là đầu vào của nhiều công đoạn sản xuất.
Xuất hiện một bộ phận những người lao động tạo ra giá trị bằng cách phổ biến thông
tin. Đối với nhiều quốc gia, tổ chức, cá nhân, thông tin thực sự là một tài nguyên.
Từ những năm 60 của thế kỷ trước vấn đề khai thác và sử dụngthông tin hiệu quả đã
được đặt ra, và lúc này khi mạng Internet trở nên phổ biến trên toàn cầu nó càng trở
nên bức thiết hơn. Trong khai thác và sử dụngthông tin thì tìm kiếm thông tin là công
đoạn quan trọng nhất.Vì vậy một cách tất yếu con người cần có một hệthống tìm kiếm
thông tin hiệu quả ,và cũng tất nhiên nó phải làm việc tốt trên môi trường Internet.Các
công cụ như vậy được gọi là Search Engine.Đến giữa những năm 90 đã xuất hiện
những hệthống tìm kiếm đầu tiên Aliweb, sau đó là hàng lọat tên tuổi lớn Altavista
(1995) ; Google (1998) ; Yahoo! Search (2004) ; MSN Search (2005)…
Trong đồ án này em mong muốn tiếp cận và xâydựng thử nghiệm một hệthống thu
thập thông tin tập trung (Focused Crawler),hạt nhân của một hệthống tìm kiếm theo
chiều sâu (Vertical Search Engine).
Báo cáo bao gồm 5 phần :
• Chương 1: Giới thiêu: đề cập sự cần thiết và lí do ra đời của hệ thống,các
khái niệm liên quan, các hệthống đang tồn tại.
• Chương 2: Cơ sở lý thuyết: đề cập phương pháp luận ,các mục kiến thức liên
quan để xâydựnghệ thống
• Chương 3: Các phương pháp xâydựnghệthốngFocused Crawler: trình bày
hai phương pháp cơ bản xâydựnghệthống dựa trên mô hình không gian
vector
• Chương 4: Phân tích , thiết kế hệ thống: trình bày việc phân tích ,thiết kế hệ
thống theo hướng cấu trúc.
• Chương 5: Kết luận: trình bày các phương pháp đánh giá hệthốngFocused
Crawler, rồi sử dụng để đánh giá kết quả thu được
Do thời gian và kiến thức cũng như kinh nghiệm hạn chế, nên đồ án không tránh khỏi
thiếu sót .Kính mong được thầy cô góp ý, hướng dẫn thêm cho em hoàn thiện đồ án
hơn.
Sinh viên thực hiện: Dương Minh Sơn-Khoá K49-Lớp HTTT 6
Đồ án được hoàn thành dưới sự chỉ bảo và hướng dẫn tận tình của PGS.TS.Trần Đình
Khang. Với tư duy khoa học nhạy bén, và kinh nghiệm phong phú , thầy đã góp nhiều
ý kiến quý báu để chúng em lựa chọn những hướng tiếp cận và giải pháp phù hợp nhất.
Em cũng xin gửi lời cảm ơn tới các anh chị tại phòng nghiên cứu công ty cổ phần
A.N.Lab và đặc biệt là cá nhân anh Đinh Khắc Dũng ,trưởng phòng, đã tạo điều kiện
để em thực tập tốt nghiệp ,cài đặt ,và chạy thử hệthống trên môi trường của công ty.
Sinh viên thực hiện: Dương Minh Sơn-Khoá K49-Lớp HTTT 7
Chương 1.Giới thiệu
1.1. Hệthống tìm kiếm tổng quát
1.1.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 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 và 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.
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 độ ra tăng chóng mặt
• Tốc độ thay đổi chóng mặt
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 càng
nhiều thông tin càng tốt ,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 Google là tên tuổi số một ,chiếm khoảng 53% 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 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 cứng của họ
Sinh viên thực hiện: Dương Minh Sơn-Khoá K49-Lớp HTTT 8
[...]... định trước về hệthống máy chủ, lập chỉ mục, sắp xếp, rồi tiến hành tìm kiếm trên hệthống đã sắp xếp 1.2.2.2 Kiến trúc Từ khái niệm và nguyên lý xâydựng ta thấy rằng về cơ bản hệthống VSE có kiến trúc và hoạt động gần giống với APSE Khác biệt lớn nhất của VSE là hệthốngCrawlerthông thường được thay thế bởi Focused Crawler. Thay vì crawling toàn bộ hoặc bất kỳ tài liệu nào ,Focused Crawler chỉ quan... chỉ quan tâm tới các tài liệu thuộc lĩnh vực hẹp mà thôi 1.2.3 Thành phần FocusedCrawler 1.2.3.1 Khái niệm FocusedCrawler là các hệthốngCrawler thực hiện việc tìm đến, phân tích và tải về các tài liệu “liên quan” tới một lĩnh vực hẹp hoặc một vài lĩnh vực hẹp nào đó Hai cách tiếp cận chủ yếu khi xây dựnghệthống Focused Crawler: • Chỉ download những tài liệu thuộc lĩnh vực • Download toàn bộ,... Kiến trúc của FocusedCrawler theo cách tiếp cận thứ nhất Thành phần khác biệt lớn nhất của một hệthốngFocusedCrawler so với các hệthốngCrawler bình thường khác chính là bộ decision-maker Nhiệm vụ của bộ phận này là xác định xem một link theo cách tiếp cận 1 hay mộ tài liệu theo cách tiếp cận 2 có thuộc lĩnh vực hay không.Ngoài ra toàn bộ nguyên lý và cách thức hoạt động của FocusedCrawler hoàn... 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: • 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... giả gộp hệthống Sorter vào thành phần Searcher Sinh viên thực hiện: Dương Minh Sơn-Khoá K49-Lớp HTTT 9 1.1.2.1 Kiến trúc a Kiến trúc Ta sẽ nghiên cứu kiến trúc tổng thể của hệthống tìm kiếm Google,APSE tiêu biểu nhất hiện nay: Hình 1.1: Kiến trúc tổng thể hệthống tìm kiếm Google Quy trình làm việc của hệthống và chức năng của từng thành phần có thể được diễn tả như sau: URL server gửi cho Crawler. .. liệu hiện có trên internet về hệthống máy chủ, lập chỉ mục, sắp xếp, rồi tiến hành tìm kiếm trên hệthống đã sắp xếp Luôn có ba thành phần cơ bản: • Crawler (lấy các tài liệu về hệ thống lưu trữ ) • Indexer & Sorter (sắp xếp và lập chỉ mục) • Searcher (phân tích câu truy vấn và tìm tài liệu liên quan, hiển thị kết quả tìm kiếm) Ở đây ta dùng từ “cơ bản” vì với những hệthống lớn, phức tạp, còn có thêm... phục vụ cùng một lúc hàng triệu người • Khi số lượng tài liệu quản lý ngày càng ra tăng làm thế nào để phân hoạch chúng , loại bỏ những tài liệu tương tự ra khỏi hệ thống máy chủ 1.2 Hệthống tìm kiếm theo chiều sâu 1.2.1 Tại sao phải xây dựnghệthống tìm kiếm theo chiều sâu Google là một công cụ tìm kiếm tốt, chứ chưa hẳn hoàn hảo ”Tốt ” vì nó đủ “mạnh” để tập hợp một lượng thông tin khổng lồ cỡ 9 tỉ... 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: • 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âydựng Đó là Socbay.com... Socbay.com ,Xalo.vn, Zing.vn, Bamboo.com Các hệthống này đang lưu trữ cỡ 108 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á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 và tiếng Trung tốt hơn 1.1.2 Nguyên lý và kiến trúc của các hệthống tìm kiếm 1.1.2.1 Nguyên lý Nguyên lý: tìm... vực nào Crawler không thể vào • Parallelization plicies: ho phép tổ chức Crawling song song và phân tán ra sao Các vấn đề khó khăn khi xâydựng Crawler: • Số lượng khổng lồ các tài liệu cần được Crawling • Sự sản sinh một cách tự động các tài liệu HTML dựa trên các ngôn ngữ ServerPages: ASP, JSP, PHP • Tốc độ thay đổi dữ liệu trên các tài liệu 1.1.4 Các vấn đề khó khăn nhất khi xây dựnghệthống tìm . liên
quan để xây dựng hệ thống
• Chương 3: Các phương pháp xây dựng hệ thống Focused Crawler: trình bày
hai phương pháp cơ bản xây dựng hệ thống dựa trên. Crawler,
Focused Crawler.
• Tìm hiểu các phương pháp xây dựng hệ thống Focused Crawler
• Phân tích ,thiết kế cài đặt một hoặc hai phương pháp xây dựng hệ thống