xây dựng một công cụ tìm kiếm thực sự

106 561 0
xây dựng một công cụ tìm kiếm thực sự

Đ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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Hoàng Trung XÂY DỰNG SEARCH ENGINE LUẬN VĂN THẠC SĨ Hà Nội – 2009 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Hoàng Trung XÂY DỰNG SEARCH ENGINE Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ phần mềm Mã số: 60 48 10 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC TS.Nguyễn Tuệ Hà Nội – 2009 LỜI CAM ĐOAN Tôi xin cam đoan đây là công trình nghiên cứu của bản thân. Các số liệu, kết quả trình bày trong luận văn này là trung thực. Những tư liệu được sử dụng trong luận văn có nguồn gốc và trích dẫn rõ ràng, đầy đủ. Học viên Nguyễn Hoàng Trung LỜI CẢM ƠN Trước hết, tôi xin được nói lời cảm ơn đến gia đình hai bên nội ngoại đã động viên tôi rất nhiều trong suốt thời gian học tập và nghiên cứu. Tôi xin được gửi lời cảm ơn tới bộ môn Công nghệ phần mềm, khoa Công nghệ thông tin trường Đại học Công nghệ - Đại Học Quốc Gia Hà nội đã tạo điều kiện cho tôi thực hiện đề tài này. Tôi xin được cảm ơn TS. Nguyễn Tuệ, người đã trực tiếp hướng dẫn tôi hoàn thành đề tài này. Tôi cũng xin được gửi lời cảm ơn tới Công ty NAiSCorp, những người đồng đội, đồng chí đã chiến đấu cùng tôi vì một mục tiêu mang tri thức đến với người Việt. Tôi cũng xin được gửi lời cảm ơn tới bạn bè tôi, những người đã giúp đỡ tôi rất nhiều Mặc dù có nhiều cố gắng nhưng do đề tài này quá lớn nên chắc chắn luận văn này còn có nhiều thiếu sót. Tôi rất mong nhận được những ý kiến đóng góp quý báu của những độc giả quan tâm. Mọi góp ý xin gửi về trungnh@socbay.com. Tác giả Nguyễn Hoàng Trung MỤC LỤC I LỜI CẢM ƠN II MỤC LỤC III DANH MỤC HÌNH VẼ V DANH MỤC BẢNG BIỂU VI DANH MỤC CÁC TỪ VIẾT TẮT VII MỞ ĐẦU GIỚI THIỆU LUẬN VĂN 1 1. MỤC ĐÍCH 1 2. LÝ DO LỰA CHỌN ĐỀ TÀI 1 3. BỐ CỤC LUẬN VĂN 2 CHƯƠNG 1. LÝ THUYẾT CHUNG VỀ SEARCH ENGINE 5 1.1. TỔNG QUAN VỀ MẠNG INTERNET VÀ SEARCH ENGINE 5 1.2. CÁC MÔ HÌNH KIẾN TRÚC CỦA SEARCH ENGINE 6 1.2.1. Mô hình kiến trúc chung 6 1.2.2. Mô hình agent 9 1.3. PHÂN LOẠI SEARCH ENGINE 10 1.4. INFORMATION RETRIEVAL VÀ SEARCH ENGINE 10 1.4.1. Định nghĩa và khái niệm 11 1.4.2. Kiến trúc của một hệ IR 11 1.4.3. Các độ đo (metrics) 13 1.4.4. Chỉ mục ngược (inverted index) trong tìm kiếm 14 1.4.5. Các mô hình IR trong tìm kiếm và đánh giá kết quả 16 1.4.6. Từ dừng 20 1.4.7. Stemming 20 1.5. WEB CRAWLER 21 1.5.1. Giới thiệu 21 1.5.2. Các chiến lược lựa chọn trang Web trong quá trình crawl 23 1.5.3. Tăng tốc độ crawl và crawl song song 28 1.5.4. Làm tươi trang Web (pages refresh) 31 1.6. LƯU TRỮ DỮ LIỆU 32 1.6.1. Giới thiệu 32 1.6.2. Khó khăn và thách thức 33 1.6.3. Lưu trữ phân tán (distributed repository) 33 1.7. XÂY DỰNG CHỈ MỤC TỪ 36 1.7.1. Giới thiệu 36 1.7.2. Chỉ mục ngược trong Search engine 37 1.7.3. Khó khăn, thách thức 40 1.7.4. Index partitioning 40 1.8. TÌM KIẾM 41 1.9. XẾP HẠNG KẾT QUẢ TÌM KIẾM 43 1.9.1. PageRank 44 1.9.2. HITS 46 1.9.3. Một số kỹ thuật dựa liên kết khác 49 CHƯƠNG 2. KHẢO SÁT MỘT SỐ SEARCH ENGINE 50 2.1. SEARCH ENGINE MÃ MỞ LUCENE 50 2.1.1. Giới thiệu Lucene 50 2.1.2. Các phiên bản ngôn ngữ khác của Lucene 51 2.1.3. Vòng đời kiến trúc phần mềm Lucene 52 2.1.4. Sơ đồ phụ thuộc của Lucene.Net 52 2.1.5. Các lớp của Lucene.Net 53 2.2. TIẾNG VIỆT TRONG XÂY DỰNG CÔNG CỤ TÌM KIẾM 55 2.2.1. Đặc điểm của ngữ âm và âm vị 55 2.2.2. Đặc trưng về từ pháp và hình thái 55 2.2.3. Đặc trưng về ngữ pháp 56 2.2.4. Sự phức tạp trong mã hoá tiếng Việt 57 2.2.5. Unicode và chuẩn hoá cách mã hoá tiếng Việt 58 2.3. KHẢO SÁT CÁC CÔNG CỤ TÌM KIẾM TIẾNG VIỆT HIỆN NAY 59 2.3.1. Search Engine Google 59 2.3.2. Search Engine Xalo (www.Xalo.vn) 59 2.3.3. Search Engine Baamboo (www.Baamboo.com.vn) 60 2.3.4. Search Engine Socbay(www.Socbay.com) 60 2.4. ĐÁNH GIÁ VỀ CÁC CÔNG CỤ TÌM KIẾM TIẾNG VIỆT 60 CHƯƠNG 3. XÂY DỰNG CÔNG CỤ MP3 SEARCH 62 3.1. CRAWLER CHO TÌM KIẾM MP3 62 3.1.1. Các vấn đề đặt ra với crawler 62 3.1.2. Các chiến lược lựa chọn trang Mp3 trong quá trình crawl 63 3.1.3. Tăng tốc độ crawl và crawl song song 64 3.1.4. Làm tươi trang Mp3 (pages refresh) 64 3.1.5. Kho lưu trữ cho tìm kiếm MP3 64 3.1.6. Đánh chỉ mục cho tìm kiếm MP3 65 3.1.7. Chỉ mục trong từ điển âm nhạc 69 3.1.8. Chỉ mục ngược trong từ điển âm nhạc 70 3.1.9. Khó khăn, thách thức của việc đánh chỉ mục 71 3.2. TÌM KIẾM MP3 72 3.2.1. Phân tích truy vấn 72 3.2.2. Tìm kiếm 72 3.2.3. Xếp hạng cho MP3 73 3.2.4. Giao diện của MP3 74 3.2.5. Đánh giá phần mềm tìm kiếm MP3 75 PHẦN KẾT LUẬN 76 1. NHỮNG ĐÓNG GÓP CỦA LUẬN VĂN 76 2. HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 76 TÀI LIỆU THAM KHẢO 78 Tiếng Việt 78 Tiếng Anh 78 PHỤ LỤC 80 PHỤ LỤC A. KIẾN TRÚC GOOGLE 80 PHỤ LỤC B. CÁC KHÁI NIỆM VỀ SEARCH ENGINE 82 PHỤ LỤC C. THUẬT TOÁN VUN ĐỐNG HEAPSORT CHO TÌM KIẾM 87 PHỤ LỤC D. BẢNG MÃ HOÁ CHỮ CÁI TIẾNG VIỆT 90 CHỈ MỤC TỪ 96 DANH MỤC HÌNH VẼ HÌNH 1. MÔ HÌNH KIẾN TRÚC CHUNG CỦA SEARCH ENGINE[14] 7 HÌNH 2. KIẾN TRÚC AGENT CỦA SEARCH ENGINE 10 HÌNH 3. MÔ HÌNH ĐƠN GIẢN CỦA MỘT HỆ IR 12 HÌNH 4. MÔ HÌNH ĐÁNH CHỈ MỤC CỦA HỆ IR[14] 12 HÌNH 5. MÔ HÌNH TRUY VẤN CỦA HỆ IR[14] 13 HÌNH 6. MINH HỌA PRECISION/RECALL 14 HÌNH 7. VÍ DỤ CẤU TRÚC CỦA CHỈ MỤC NGƯỢC 15 HÌNH 8. GIẢI THUẬT XÂY DỰNG CHỈ MỤC NGƯỢC (1) 15 HÌNH 9. GIẢI THUẬT XÂY DỰNG CHỈ MỤC NGƯỢC ĐẦY ĐỦ (2) 16 HÌNH 10. VÍ DỤ ĐƠN GIẢN VỀ VSM 18 HÌNH 11. CHUẨN HÓA ĐỘ DÀI CỦA TÀI LIỆU 20 HÌNH 12. MÔ PHỎNG TÌM KIẾM THEO CHIỀU RỘNG 27 HÌNH 13. MÔ PHỎNG TÌM KIẾM THEO CHIỀU SÂU 28 HÌNH 14. KIẾN TRÚC CHUNG CỦA CRAWLER SONG SONG 30 HÌNH 15. TẬP GỒM HAI TRANG WEB VỚI TỐC ĐỘ THAY ĐỔI KHÁC NHAU 32 HÌNH 16. WEBBASE REPOSITORY ARCHITECTURE 35 HÌNH 17. PAGERANK ĐƠN GIẢN VÀ PAGERANK CÓ SỬA ĐỔI (D=0.8) 45 HÌNH 18. VÍ DỤ GIẢI THUẬT HITS 49 HÌNH 19. VÒNG ĐỜI CỦA LUCENE 52 HÌNH 20. SƠ ĐỒ PHỤ THUỘC CỦA LUCENE VỚI MÔI TRƯỜNG 52 HÌNH 21. BIỂU ĐỒ PHẦN TRĂM MÃ CODE CHO MODULE LUCENE 53 HÌNH 22. SƠ ĐỒ PHỤ THUỘC MODULE CỦA LUCENE 55 HÌNH 23: MÔ HÌNH TÁCH TỪ KHÓA TỪ VĂN BẢN THÔ 69 HÌNH 24. KIẾN TRÚC GOOGLE 80 DANH MỤC BẢNG BIỂU BẢNG 1. GIẢI THUẬT XỬ LÝ TRUY VẤN DẠNG AND 17 BẢNG 2. TỔNG KẾT HIỆU NĂNG CỦA CÁC PHƯƠNG PHÁP TỔ CHỨC LƯU TRỮ VẬT LÝ WEB 34 BẢNG 3 TÁCH TERM TỪ TÀI LIỆU 38 BẢNG 4. SẮP XẾP LẠI CÁC TERM 39 BẢNG 5. THÀNH LẬP TỪ ĐIỂN VÀ FILE POSTINGS 40 BẢNG 6. VÍ DỤ VỀ TÌM KIẾM AND TRONG MÔ HÌNH BOOLEAN 42 BẢNG 7. DANH SÁCH PHỤ THUỘC MODULE CỦA LUCENE 54 BẢNG 8. KẾT QUẢ TEST TỪ TRÊN CÁC CÔNG CỤ 61 BẢNG 9. CẤU TRÚC CÁC TRƯỜNG CỦA MP3 66 BẢNG 10. TÁCH TERM TỪ TÀI LIỆU 70 BẢNG 11. DANH SÁCH CÁC TERM THEO ID VĂN BẢN 70 BẢNG 12. DANH SÁCH TỪ THEO VĂN BẢN VÀ TẦN SỐ XUẤT HIỆN 71 BẢNG 13. DANH SÁCH TỪ VÀ THÔNG TIN VỀ TỪ THEO VĂN BẢN VÀ TẦN SỐ XUẤT HIỆN 71 BẢNG 14. THUẬT TOÁN MERGE 2 DANH SÁCH ĐƠN GIẢN 73 BẢNG 15. DANH SÁCH CÁC TRƯỜNG ĐƯỢC RANK 74 BẢNG 16. MÃ HOÁ CHỮ CÁI TIẾNG VIỆT BẰNG CÁC BỘ MÃ KHÁC NHAU 90 DANH MỤC CÁC TỪ VIẾT TẮT Viết tắt Cụm từ xuất phát BVSM Binary Vector Space Model CGI Common Gateway Iinterface DL Document Length DR Data Retrieval FTP File Transfer Protocol HITS Hypertext Induced Topic Search HTML Hyper Text Markup Language HTTP Hyper Text Transfer Protocol HTTPS HTTP Secure IDF Inverse Document Frequency IR Information Retrieval NNTP Network News Transport Protocol QAM Question Answer Machine REP Robot Exclution Protocol SC Similarity Coefficency SE Search Engine TCVN3 Tiêu chuẩn Việt Nam 3 TF Term Frequency URL Uniform Resource Locator UTF Unicode Transformation Format VIQR VIetnamese Quoted-Readable VISCII VIetnamese Standard Code for Information Interchange VPS Vietnamese Profestional Society VSM Vector Space Model 1 MỞ ĐẦU GIỚI THIỆU LUẬN VĂN 1. MỤC ĐÍCH Search Engine là một khái niệm dùng để chỉ chương trình tìm kiếm các tài liệu (thuộc các dạng khác nhau: text, video, MP3…) thoả mãn một số điều kiện nào đó mà ta gọi là truy vấn (query) của người dùng. Tuy nhiên, khái niệm Search Engine từ lâu đã được gắn với việc tìm kiếm tài liệu dạng text (Document Search) trên mạng Internet và trên máy tính cá nhân (Desktop Search) Trong giai đoạn mà các nhu cầu tìm kiếm thông tin trên mạng Internet cũng như tìm kiếm tài liệu tiếng Việt nói chung đang được quan tâm, đề tài này được phát triển với mục đích chính là mô tả các thành phần chung của một hệ tìm kiếm và xây dựng một Engine tìm kiếm MP3 trên Internet. Engine này phải giải quyết được các vấn đề tìm kiếm trong tiếng Việt. 2. LÝ DO LỰA CHỌN ĐỀ TÀI Cùng với sự phát triển của Internet, lượng thông tin trên mạng ngày càng nhiều. Thậm chí, người ta ước tính sự tăng trưởng ấy là theo cấp số nhân. Theo một nghiên cứu thì cứ khoảng 5 năm, trí tuệ nhân loại lại tăng lên gấp đôi. Với lượng thông tin khổng lồ trên mạng như hiện nay, Search Engine thực sự là một “công cụ” tối cần thiết cho người dùng Internet khai thác, tìm kiếm thông tin. Khái niệm về Search Engine đã có từ khá sớm và trên thế giới đã có rất nhiều nghiên cứu về Search Engine và các vấn đề liên quan, đặc biệt là lĩnh vực truy xuất thông tin, (Information Retrieval - IR) sẽ được trình bày trong tài liệu này. Một trong những nghiên cứu đó là nghiên cứu của trường đại học Standford, Mỹ về Search Engine mà kết quả của nó là Google, một trong số các Search Engine hàng đầu hiện nay. Để xây dựng một Search Engine cần phải biết rất nhiều vấn đề lý thuyết liên quan, trong đó có các lý thuyết về mạng máy tính, ngôn ngữ, lý thuyết về IR, cấu trúc dữ liệu và giải thuật, cơ sở dữ liệu, tối ưu hóa, tính toán song song, xử lý phân tán… Đề tài Search Engine là một trong những đề tài nghiên cứu mang tính lý thuyết cũng như thực tế cao. Vì thế, đã có khá nhiều nghiên cứu trong và ngoài nước về Search Engine Tình hình nghiên cứu ở nước ngoài: Có khá nhiều công ty và tổ chức nghiên cứu về Search, nổi bật nhất là 3 công ty Google, Yahoo và Micrsoft. Các sản phẩm mã nguồn mở thì nổi bật nhất là Lucene. Chất lượng của các công cụ tìm kiếm này cũng rất khác nhau. Các công cụ này luôn cố gắng xuất phát từ việc tìm kiếm tiếng Anh và sau đó mở ra đa ngôn ngữ, trong đó có tiếng Việt. Với tìm kiếm tiếng Việt thì tốt nhất chính là Google. Google có hệ thống máy chủ tốt, lượng dữ liệu khổng lồ, tốc độ cập [...]... tìm kiếm đã nêu ở Chương 1 4 Chương 3: Chúng tôi xây dựng một ứng dụng nhỏ là Mp3 Search Áp dụng những kiến thức thu được từ việc nghiên cứu từ chương 1, chúng tôi bắt tay vào xây dựng một công cụ tìm kiếm thực sự Chúng tôi mô tả từng bước của quá trình xây dựng Mp3 và so sánh công việc đó so với những việc cần làm trong việc xây dựng một công cụ tìm kiếm Web Vì trong chương 1, chúng tôi đã phân tích... tiếng Việt và sự khác nhau của tìm kiếm tiếng Việt với tìm kiếm tiếng Anh Nội dung này làm tiền đề để chúng tôi khảo sát 3 công cụ tìm kiếm tiếng Việt ở mục 3.3 Các công cụ chúng tôi lựa chọn là Google, Xalo và Socbay Chúng tôi so sánh để thấy rằng các công cụ được nêu ở trên là chưa hoàn hảo Đấy là động lực để chúng tôi tiếp tục nghiên cứu một ứng dụng tìm kiếm để minh họa cho lý thuyết tìm kiếm đã nêu... để biến công cụ này thành một Search Engine tiếng Việt NaiSCorp là công ty phát triển từ một nhóm sinh viên nghiên cứu khoa học của trường ĐH Bách khoa Hà nội và ĐH Công nghệ - ĐH Quốc Gia Hà Nội Nhóm sinh viên này đã có nhiều giải thưởng về nghiên cứu tìm kiếm tiếng Việt Tháng 7 năm 2006, công NaiSCorp được thành lập và nhanh chóng cho ra đời công cụ tìm kiếm Socbay.com Đây là một công cụ tìm kiếm tiếng... công bố Những nội dung trong Chương 1 là rất quan trọng với chúng tôi Chúng tôi tìm hiểu những công nghệ Search nói chung ở mức khá sâu để có thể sử dụng những kiến thức ấy để khảo sát một số Search Engine và xây dựng công cụ tìm kiếm Mp3 cho mình Chương 2: Khảo sát một số Search Engine Chúng tôi khảo sát một công cụ tìm kiếm tiếng Anh thuần túy, mã nguồn mở là Lucene để biết kiến trúc phần mềm của... trong chương 1, chúng tôi đã phân tích rất kỹ các thành phần và độ phức tạp trong việc xây dựng của mỗi thành phần của công cụ Search nói chung rồi, nên khi áp dụng vào bài toán này, chúng tôi không gặp nhiều khó khăn Qua việc xây dựng một công cụ nhỏ này, chúng tôi hiểu rõ hơn về sự phức tạp và khó khăn của công việc xây dựng Search Engine cho Web 5 CHƯƠNG 1 LÝ THUYẾT CHUNG VỀ SEARCH ENGINE 1.1 TỔNG QUAN... bày một nội dung, chủ đề nào đó bằng ngôn ngữ tự nhiên Term (từ ngữ, thuật ngữ): là một đơn vị có ngữ nghĩa, có thể là một từ, một cụm từ, … Trong tiếng Việt, term có thể coi là một từ đơn hay từ ghép Query (truy vấn): Là một yêu cầu tìm kiếm tài liệu liên quan đến một chủ đề nào đấy Result: Kết quả tìm kiếm (trả lời) truy vấn Revelancy: Mức độ tương tự của tài liệu và truy vấn Textual similarity: Một. .. Community: Thực chất đây là mô-đun kiểm soát giao diện tìm kiếm cho người dùng, thực hiện thao tác lấy yêu cầu tìm kiếm và trả về thông tin tìm được 10 Hình 2 Kiến trúc agent của Search engine 1.3 PHÂN LOẠI SEARCH ENGINE Tiêu chí phân loại được quan tâm ở đây là dựa trên kiến trúc của các hệ thống Như đã trình bày ở trên, Search Engine khác với Web directory Danh bạ Web là một công cụ tìm kiếm địa chỉ... tin cần tìm Từ khóa ở đây là từ ngữ thông thường có liên quan đến thông tin cần tìm Chẳng hạn muốn tìm thông tin về Search Engine có thể sử dụng từ khóa “Search”, “Search engine”, … Search Engine sẽ tiến hành phân tích yêu cầu tìm kiếm đó, thực hiện tìm theo sự hiểu biết của nó (tìm trên cơ sở dữ liệu về Web mà nó có được) và trả lại cho người dùng danh sách các URL dẫn đến các trang Web mà nó tìm được... khi người dùng chỉ gõ vào một vài từ để tìm kiếm nên số lượng kết quả tìm được cũng sẽ lớn Mô-đun xếp hạng (ranking module) sẽ thực hiện sắp xếp các kết quả tìm kiếm sao cho các kết quả gần với truy vấn nhất được đưa lên đầu Mô-đun truy vấn là phần cần được quan tâm đặc biệt vì các kỹ thuật truyền thống trong Information Retrieval được áp dụng vào trong tìm kiếm cần phải có sự sửa đổi cho phù hợp Thông... một trang Web ngẫu nhiên khác Có một vài nhân tố quyết định đến sự ngẫu nhiên trong việc lựa chọn trang Web kế tiếp và ở đây, giá trị damp d được xác định một cách trực giác để đánh giá các nhân tố này Tuy nhiên, càng về sau này, các công cụ tìm kiếm tốt như Google có sử dụng chương trình Google Analytics, Alexa có cũng có những công cụ để có thể tính toán, thống kê được một cách khá chính xác việc truy . chung của một hệ tìm kiếm và xây dựng một Engine tìm kiếm MP3 trên Internet. Engine này phải giải quyết được các vấn đề tìm kiếm trong tiếng Việt. 2. LÝ DO LỰA CHỌN ĐỀ TÀI Cùng với sự phát triển. đến tiếng Việt và sự khác nhau của tìm kiếm tiếng Việt với tìm kiếm tiếng Anh. Nội dung này làm tiền đề để chúng tôi khảo sát 3 công cụ tìm kiếm tiếng Việt ở mục 3.3. Các công cụ chúng tôi lựa. 3: Chúng tôi xây dựng một ứng dụng nhỏ là Mp3 Search. Áp dụng những kiến thức thu được từ việc nghiên cứu từ chương 1, chúng tôi bắt tay vào xây dựng một công cụ tìm kiếm thực sự. Chúng tôi mô

Ngày đăng: 02/07/2014, 21:57

Từ khóa liên quan

Mục lục

  • Tiếng Việt

  • Tiếng Anh

  • PHỤ LỤC A. KIẾN TRÚC GOOGLE

  • PHỤ LỤC B. CÁC KHÁI NIỆM VỀ SEARCH ENGINE

  • PHỤ LỤC C. THUẬT TOÁN VUN ĐỐNG HEAPSORT CHO TÌM KIẾM

  • PHỤ LỤC D. BẢNG MÃ HOÁ CHỮ CÁI TIẾNG VIỆT

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

Tài liệu liên quan