Xử lý ngôn ngữ tự nhiên là một nhánh của lĩnh vực trí tuệ nhân tạo và có thể nói đây là phần khó nhất trong lĩnh vực trí tuệ nhân tạo vì nó liên quan đến việc phải hiểu ngôn ngữ-công cụ hoàn hảo của tư duy và giao tiếp
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN Tel. (84-511) 3736 949, Fax. (84-511) 842 771 Website: itf.ud.edu.vn, E-mail: cntt@ud.edu.vn LUẬN VĂN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN MÃ NGÀNH : 05115 ĐỀ TÀI: NGHIÊN CỨU MÁY TÌM KIẾM VÀ XÂY DỰNG THỬ NGHIỆM MÔ PHỎNG MÁY TÌM KIẾM SINH VIÊN : PHAN TẤN LUẬN LỚP : 04T1 CBHD : TS.NGUYỄN THANH BÌNH ĐÀ NẴNG, 06/2009 LỜI CẢM ƠN Để hoàn thành được đồ án này, em đã nhận được sự chỉ bảo tận tình của các Thầy Cô giáo trong khoa Công nghệ Thông tin trường Đại học Bách Khoa, cùng sự giúp đỡ động viên của gia đình và bạn bè. Trước tiên em xin chân thành cảm ơn tất cả các thầy cô của trường Đại học Bách Khoa, Đại học Đà Nẵng đã dạy dỗ và truyền đạt kiến thức cho em trong thời gian học tại trường. Em xin chân thành cám ơn Tiến sĩ Nguyễn Thanh Bình, thầy đã tận tình hướng dẫn góp ý cho em trong quá trình thực hiện đồ án này. Nhờ đó mà em có thể hoàn thành theo đúng yêu cầu về nội dung của một đồ án tốt nghiệp. Em cũng xin được cám ơn những người bạn cùng ngành đã động viên giúp đỡ em trong suốt thời gian làm đồ án. Cuối cùng, con xin cảm ơn gia đình đã tạo mọi điều kiện tốt nhất để bản thân có thể hoàn thành được đồ án đúng hạn. Mặc dù đã cố gắng hết sức, nhưng vì khả năng và thời gian có hạn, đề tài nghiên cứu chắc chắn còn nhiều khiếm khuyết. Rất mong các Thầy Cô giáo chỉ bảo giúp đỡ. Rất mong sự góp ý của bạn bè, đồng nghiệp. Đà Nẵng, 06/2009 Sinh viên Phan Tấn Luận LỜI CAM ĐOAN Em xin cam đoan: 1. Những nội dung trong báo cáo này là do em thực hiện dưới sự hướng dẫn của thầy TS.Nguyễn Thanh Bình. 2. Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố. 3. Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm. Sinh viên, Phan Tấn Luận NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN . . . . . . . . . . . . . . . . . . . . . . . . NHẬN XÉT CỦA CÁN BỘ DUYỆT . . . . . . . . . . . . . . . . . . . . . . . . . MỤC LỤC TỔNG QUAN ĐỀ TÀI .1 .I GIỚI THIỆU CHUNG VỀ VẤN ĐỀ NGHIÊN CỨU .1 .I.1. Lịch sử phát triển .1 .I.2. Giới thiệu về các máy tìm kiếm thông dụng 2 .I.2.1. Thế giới 2 .I.2.2. Việt Nam 3 .II LÝ DO CHỌN ĐỀ TÀI .4 .II.1. Mục tiêu và ý nghĩa của đề tài .4 .II.2. Nhiệm vụ cần phải thực hiện .5 .II.2.1. Xây dựng chức năng 5 .II.2.2. Xây dựng ứng dụng web 6 .II.3. Hướng nghiên cứu của đề tài .6 .II.3.1. Về mặt lý thuyết 6 .II.3.2. Công cụ xây dựng đề tài 6 .II.3.3. Dự kiến kết quả đạt được .7 CƠ SỞ LÝ THUYẾT 8 .I LÝ THUYẾT LIÊN QUAN ĐẾN ĐỀ TÀI .8 .I.1. Tổng quan hệ thống máy tìm kiếm .8 .I.1.1. Giới thiệu .8 .I.1.2. Bộ thu thập tài liệu-Crawler .10 .I.1.3. Bộ lập chỉ mục-Indexer .15 .I.1.4. Ứng dụng tìm kiếm-Searcher 17 .I.2. Lucene-Mã nguồn mở cho máy tìm kiếm 18 .I.2.1. Giới thiệu chung 18 Các bước thực hiện .20 Các lớp chính .21 .II VẤN ĐỀ CẦN NGHIÊN CỨU 23 .II.1. HyperText Transfer Protocol .23 .II.1.1. Định dạng địa chỉ (Internet addressing) .23 .II.2. Lập trình đa luồng trong java 27 .II.2.1. Thread là gì? 27 .II.2.2. Thread trong ngôn ngữ Java .27 .II.3. Phân tích HTML 29 .II.3.1. Bốn thành phần cơ bản của Html 29 .II.3.2. Thành phần mà crawler phân tích 31 .II.3.3. Vấn đề cần xử lý .33 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG .36 .I PHÂN TÍCH HỆ THỐNG .36 .I.1. Gói crawler 37 .I.1.1. Use-case quản lý các liên kết 38 .I.1.2. Usecase quản lý thiết lập các tùy chọn 45 .I.2. Gói reader 46 .I.3. Gói indexer 47 .I.4. Gói searcher và ứng dụng web .48 .II THIẾT KẾ HỆ THỐNG 49 .II.1. Tổng thể chương trình .49 .II.1.1. Gói crawler 51 .II.1.2. Gói reader 52 .II.1.3. Gói indexer .54 .II.2. Xây dựng các chức năng 54 .II.2.1. Chức năng xác nhận cho phép đánh chỉ mục .54 .II.2.2. Chức năng tải tài liệu về máy 56 .II.2.3. Tạo công việc mới 57 .II.2.4. Lưu công việc dở dang .58 .II.2.5. Thực hiện các công việc cũ 58 .II.2.6. Chức năng truy xuất liên kết 58 .II.3. Tổ chức dữ liệu 61 .II.3.1. Lớp URLRootBean .61 .II.3.2. Lớp LinkBean .62 .II.3.3. Lớp ParentDirBean 63 CÀI ĐẶT VÀ TRIỂN KHAI CHƯƠNG TRÌNH .65 .I CÀI ĐẶT CHƯƠNG TRÌNH .65 .II KẾT QUẢ THỰC HIỆN 67 .II.1. Màn hình chính của chương trình .67 .II.2. Màn hình hệ thống crawler đang vận hành .67 .II.3. Màn hình xử lý các công việc cũ .68 KẾT QUẢ THỬ NGHIỆM 70 .I DỮ LIỆU THỬ NGHIỆM 70 .II KẾT QUẢ THỬ NGHIỆM 70 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .73 .I KẾT QUẢ ĐẠT ĐƯỢC 73 .I.1. Về mặt lý thuyết 73 .I.2. Về mặt thực nghiệm 73 .I.2.1. Ưu điểm 73 .I.2.2. Khuyết điểm .73 .II HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI .73 PHỤ LỤC 75 [1] Otis Gospodnetic, Erik Hatcher, Doug Cutting Luence in action ISBN 1-932394-28-1 76 [2] Jeff Heaton , Programming Spiders, Bots, and Aggregators in Java 76 [3] Trang web : http://jarkata.apache.org 76 [4] Trang web : http://www.robotstxt.org 76 [5] Trang web: http://lucene.apache.org 76 [6] Trang web: http://maven.apache.org 76 [7] Trang web: http://vi.wiktionary.org/ 76 [8] Trang web: http://en.wikipedia.org/wiki/Search_engines .76 [9] Trang web: http://www.vietseo.net/ .76 TÓM TẮT ĐỀ TÀI .77 MỤC LỤC HÌNH ẢNH HÌNH 1 GIAO DIỆN CỦA GOOGLE SEARCH ENGINE .2 HÌNH 2 GIAO DIỆN CỦA XALO.VN SEARCH ENGINE 3 HÌNH 3 SƠ ĐỒ USECASE BAN ĐẦU CỦA HỆ THỐNG 6 HÌNH 4 TỔNG QUAN HỆ THỐNG TÌM KIẾM 8 HÌNH 5 BIỂU ĐỒ TRẠNG THÁI CỦA MỘT LIÊN KẾT .13 HÌNH 6 QUÁ TRÌNH ĐÁNH CHỈ MỤC .16 HÌNH 7 CÁC BƯỚC PHÂN TÍCH TÀI LIỆU .16 HÌNH 8 VÒNG ĐỜI CỦA MỘT THREAD 28 HÌNH 9 BẢNG TRONG HTML 33 HÌNH 10 SƠ ĐỒ THÀNH PHẦN TỔNG QUAN CỦA HỆ THỐNG .36 HÌNH 11 CẤU TRÚC CỦA CRAWLER 38 HÌNH 12 SƠ ĐỒ USE-CASE CỦA GÓI CRAWLER 38 HÌNH 13 SƠ ĐỒ USECASE CỦA VIỆC QUẢN LÝ CÁC LIÊN KẾT GỐC39 HÌNH 14 SƠ ĐỒ TRẠNG THÁI THÊM MỚI CÁC LIÊN KẾT GỐC 40 HÌNH 15 SƠ ĐỒ TRẠNG THÁI CỦA TÁC VỤ CHỈNH SỬA MỘT LIÊN KẾT GỐC .41 HÌNH 16 SƠ ĐỒ TRẠNG THÁI XÓA LIÊN KẾT GỐC 42 HÌNH 17 SƠ ĐỒ USECASE CHO TÁC VỤ QUẢN LÝ CÁC LIÊN KẾT ĐÃ TẢI VỀ MÁY 43 HÌNH 18 SƠ ĐỒ USECASE QUẢN LÝ DANH SÁCH CÁC THƯ MỤC CHỨA TÀI LIỆU .45 HÌNH 19 SƠ ĐỒ TỔNG THỂ CÁC THÀNH PHẦN CỦA GÓI READER47 HÌNH 20 SƠ ĐỒ HOẠT ĐỘNG CỦA GÓI INDEXER .48 HÌNH 21 SƠ ĐỒ HOẠT ĐỘNG CỦA GÓI SEARCHER VÀ ỨNG DỤNG WEB 49 HÌNH 22 SƠ ĐÔ TUẦN TỰ CỦA HỆ THỐNG .50 HÌNH 23 SƠ ĐỒ MÔ TẢ HOẠT ĐỘNG CRAWLER 52 HÌNH 24 TRẠNG THÁI HOẠT ĐỘNG CỦA GÓI READER 53 HÌNH 25 SƠ ĐỒ TUẦN TỰ CỦA GÓI INDEXER 54 HÌNH 26 SƠ ĐỒ HOẠT ĐỘNG CỦA CHỨC NĂNG ĐỌC FILE ROBOT.TXT .55 HÌNH 27 SƠ ĐỒ HOẠT ĐỘNG CỦA CHỨC NĂNG TẢI TÀI LIỆU VỀ MÁY 56 HÌNH 28 SƠ ĐỒ HOẠT ĐỘNG CỦA CHỨC NĂNG TẠO CÔNG VIỆC MỚI .58 HÌNH 29 SƠ ĐỒ HOẠT ĐỘNG TRUY XUẤT CÁC LIÊN KẾT .60 HÌNH 30 MÀN HÌNH CRAWLER ĐANG HOẠT ĐỘNG TẢI CÁC DỮ LIỆU VỀ MÁY .67 HÌNH 31 MÀN HÌNH KHI HỆ THỐNG THỰC HIỆN CÁC CÔNG VIỆC CŨ .69 HÌNH 32 DANH SÁCH CÁC DỮ LIỆU DO CRAWLER TẢI VỀ .70 HÌNH 33 KẾT QUẢ TRẢ VỀ VỚI CÂU TRUY VẤN “JAVA TUTORIAL” .71 HÌNH 34 TRANG WEB NGUỒN CỦA KẾT QUẢ ĐẦU TIÊN .72 MỤC LỤC CÁC BẢNG BẢNG 1 BẢNG XẾP HẠNG SEARCH ENGINE NĂM 2009 .2 BẢNG 2 CÁC GÓI CHÍNH TRONG THƯ VIỆN MÃ NGUỒN MỞ LUCENE .20 BẢNG 3 CÁC GIAO THỨC THƯỜNG GẶP 23 BẢNG 4 CÁC THÀNH PHẦN CỦA MỘT URL .24 BẢNG 5 DANH MỤC CÁC BẢNG TRONG CƠ SỞ DỮ LIỆU .61 BẢNG 6 BẢNG CHỨA THÔNG TIN ĐỊA CHỈ GỐC 62 BẢNG 7 BẢNG LƯU THÔNG TIN CÁC ĐỊA CHỈ ĐƯỢC TẢI VỀ .63 BẢNG 8 BẢNG LƯU TRỮ THÔNG TIN CỦA CÁC THƯ MỤC CHỨA TÀI LIỆU TẢI VỀ .64 BẢNG 9 BẢNG MÔ TẢ CÁC LỚP CHÍNH CỦA CHƯƠNG TRÌNH .65 [...]... không tìm được trên các dữ liệu phi cấu trúc, tốc độ xử lý trên một cơ sở dữ liệu lớn sẽ rất chậm v.v…Với các lý do đó ta cần xây dựng một hệ thống tìm kiếm cho website của mình tương tự như các máy tìm kiếm Bởi vì mục đích và ý nghĩa như trên em chọn cho mình đề tài:”Nghiên cứu tìm hiểu máy tìm kiếm và xây dựng chương trình mô phỏng một máy tìm kiếm .II.2 Nhiệm vụ cần phải thực hiện II.2.1 Xây dựng. .. trên Internet, ta cần phải lập một kho chỉ mục trước khi tìm kiếm Ứng dụng web là bước cuối dùng trong xây dựng một máy tìm kiếm Nhiệm vụ của ứng dụng web là tạo giao diện giao tiếp giữa người dùng và máy tìm kiếm Nhận câu truy vấn từ người dùng, sau đó trả về kết quả truy vấn cho người dùng .1 Tìm kiếm theo từ khóa Tìm kiếm theo từ khóa là cách tìm kiếm mà dựa trên các từ được cho là quan trọng nhất trong... Việt hiện có trên các Website của Việt Nam - Tìm kiếm Tin tức: dịch vụ tổng hợp tin tức và tìm kiếm thông tin trên dữ liệu dạng tin tức được tổng hợp từ gần 70 trang tin điện tử hàng đầu của Việt Nam - Tìm kiếm Diễn đàn: dịch vụ tìm kiếm cho phép người dùng tìm kiếm thông tin từ hơn 100 diễn đàn lớn nhất của Việt Nam hiện tại - Tìm kiếm Ảnh: dịch vụ tìm kiếm hình ảnh trên số lượng hơn 20 triệu hình... Luận, Lớp: 04T1 3 Tổng quan đề tài - Tìm kiếm Blog: dịch vụ tìm kiếm cho phép người dùng tìm kiếm thông tin trên hầu hết các mạng xã hội được cung cấp bởi Việt Nam cũng như trên thế giới mà người Việt Nam hay sử dụng - Tìm kiếm Nhạc: dịch vụ tìm kiếm dữ liệu Nhạc từ các Website nghe nhạc trực tuyến lớn nhất Việt Nam hiện tại - Tìm kiếm Rao vặt: dịch vụ tổng hợp và tìm kiếm thông tin rao vặt từ hơn 20 Website... nghiên cứu tìm hiểu phần tìm kiếm thông tin, tìm hiểu những công nghệ mới để có thể xây dựng được một máy tìm kiếm toàn văn Trong thời đại công nghệ số như hiện nay, các nguồn tài liệu là vô cùng phong phú đa dạng Mỗi giây sẽ có rất nhiều, rất nhiều thông tin được đưa lên làm giàu cho nguồn tài nguyên vô tận này Nguồn tài nguyên càng nhiều thì dĩ nhiên là không thể thiếu công cụ tìm kiếm và công việc tìm. .. Để xây dựng được một hệ thống như vậy vô cùng phức tạp và nó là đề tài luôn được nghiên cứu để tìm giải pháp tối ưu nhất .I.1 Lịch sử phát triển • Năm 1990 công cụ tìm kiếm đầu tiên được ra đời là Archie-phát triển bởi Alan Emtage sinh viên đại học McGill, Montreal Archie cũng bao gồm các thành phần như các máy tìm kiếm ngày nay, đó là dò tìm tài liệu, thiết lập chỉ mục, xây dựng giao diện tìm kiếm Archie... là máy tìm kiếm thống trị thế giới hiện nay Phan Tấn Luận, Lớp: 04T1 2 Tổng quan đề tài I.2.2 Việt Nam xalo.vn Hình 2 Giao diện của xalo.vn search engine Xalo.vn là một Máy tìm kiếm (search engine) được Tinhvân Media phát triển với tham vọng Xalo.vn sẽ trở thành công cụ tìm kiếm tiếng Việt hàng đầu của Việt Nam Xalo.vn hiện tại đang cung cấp 7 dịch vụ tìm kiếm bao gồm: - Tìm kiếm Web: dịch vụ tìm kiếm. .. các từ có trọng số cao nhất trong tài liệu là các từ xuất hiện thường xuyên và có khả năng phản ảnh một phần nội dung mà tài liệu đề cập tới Ví dụ các từ khóa, cụm từ khóa hữu dụng trong chủ để máy tìm kiếm như "tìm kiếm" , "công cụ tìm kiếm" , "phương pháp tìm kiếm" , "thuật toán tìm kiếm" , "xếp hạng" "độ tương đồng", "kết quả tìm kiếm" , v.v… Những từ khóa, cụm từ khóa trên phản ảnh được nội dung của chủ... trữ tài liệu thật lớn • Breadth-first (Tìm kiếm theo chiều rộng) • Depth-first (Tìm kiếm theo chiều sâu) Tìm kiếm theo chiều rộng Tìm tất cả các liên kết ở cùng cấp trước khi đi sâu hơn tìm tất cả các liên kết ở cấp tiếp theo Cấu trúc dữ liệu cho thuật toán này là hàng đợi vào sau ra trước Tìm kiếm theo chiều sâu Tìm tất cả các liên kết trong một nhánh trước khi tìm các liên kết ở nhánh tiếp theo • Randomized... nhiên là không thể thiếu công cụ tìm kiếm và công việc tìm kiếm càng khó hơn đòi hỏi các máy tìm kiếm phải phát triển không ngừng Vì lý do đó mà có rất nhiều máy tìm kiếm ra đời, phục vụ cho nhu cầu thiết thực này Làm thế nào mà chỉ trong tích tắc các máy tìm kiếm có thể đưa về hàng nghìn kết quả tương ứng với truy vấn của người dùng Các máy tìm kiếm dùng các công nghệ Phan Tấn Luận, Lớp: 04T1 4 Tổng . XÂY DỰNG THỬ NGHIỆM MÔ PHỎNG MÁY TÌM KIẾM SINH VIÊN : PHAN TẤN LUẬN LỚP : 04T1 CBHD : TS.NGUYỄN THANH BÌNH ĐÀ NẴNG, 06/2009 LỜI CẢM ƠN Để hoàn. ngày nay. • Năm 1998 MSN Search và Open Directory ra đời. Phan Tấn Luận, Lớp 04T1 1 Tổng quan đề tài .I.2. Giới thiệu về các máy tìm kiếm thông dụng