Luận văn Nghiên cứu công nghệ tìm kiếm (Mã nguồn mở) Lucene áp dụng giải quyết bài toán tìm kiếm trong hệ thống Văn bản
Bạn đang xem 30 trang mẫu của tài liệu "Luận văn Nghiên cứu công nghệ tìm kiếm (Mã nguồn mở) Lucene áp dụng giải quyết bài toán tìm kiếm trong hệ thống Văn bản", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
luan_van_nghien_cuu_cong_nghe_tim_kiem_ma_nguon_mo_lucene_ap.pdf
Nội dung tài liệu: Luận văn Nghiên cứu công nghệ tìm kiếm (Mã nguồn mở) Lucene áp dụng giải quyết bài toán tìm kiếm trong hệ thống Văn bản
- LỜI CẢM ƠN Trước tiên, tôi xin cảm ơn gia đình tôi đã luôn cổ vũ, động viên, giúp đỡ tôi trong quá trình hoàn thiện luận văn này. Dưới sự chỉ bảo của TS.Nguyễn Văn Vinh trường Đại học Công nghệ - Đại học Quốc Gia, tôi đã hoàn thiện các nhiệm vụ đề ra của luận văn. Tôi xin gửi lời cảm ơn sâu sắc nhất tới TS.Nguyễn Văn Vinh đã tận tình hướng dẫn cho tôi những định hướng và những ý kiến rất quý báu trong suốt quá trình thực hiện luận văn này. Tôi xin chân thành cảm ơn các thầy, cô giáo trong Bộ môn Công nghệ phần mềm, Khoa Công nghệ thông tin, Phòng Đào tạo Sau đại học - Nghiên cứu Khoa học, Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội đã tạo mọi điều kiện tốt nhất để tôi hoàn thành khóa học này. Tôi cũng xin cảm ơn bạn bè, những người luôn khuyến khích và giúp đỡ tôi trong mọi hoàn cảnh khó khăn. Tôi xin cảm ơn cơ quan và các đồng nghiệp đã hết sức tạo điều kiện cho tôi trong suốt quá trình học tập và làm luận văn này. Hà Nội, ngày 22 tháng 05 năm 2017 Tác giả luận văn Nguyễn Thị Loan 1
- LỜI CAM ĐOAN Tôi xin cam đoan bản luận văn “Nghiên cứu công nghệ tìm kiếm (Mã nguồn mở) Lucene áp dụng giải quyết bài toán tìm kiếm trong hệ thống Văn bản” là công trình nghiên cứu của tôi dưới sự hướng dẫn khoa học của TS.Nguyễn Văn Vinh, tham khảo các nguồn tài liệu đã chỉ rõ trong trích dẫn và danh mục tài liệu tham khảo. Các nội dung công bố và kết quả trình bày trong luận văn này là trung thực và chưa từng được ai công bố trong bất cứ công trình nào. Hà Nội, ngày 22 tháng 05 năm 2017 Tác giả luận văn Nguyễn Thị Loan 2
- MỤC LỤC DANH MỤC CÁC CHỮ VIẾT TẮT ................................................................ 5 DANH MỤC CÁC BẢNG .................................................................................. 6 DANH MỤC CÁC HÌNH VẼ ............................................................................ 6 MỞ ĐẦU .............................................................................................................. 8 CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN VỀ HỆ THỐNG TÌM KIẾM THÔNG TIN ...................................................................................................... 10 1.1. Khái niệm về hệ thống tìm kiếm thông tin ......................................................... 10 1.2. Các bộ phận cấu thành hệ thống tìm kiếm thông tin ........................................ 10 1.3. Hệ thống tìm kiếm thông tin của Google ............................................................ 12 1.4. Kiến trúc của hệ thống tìm kiếm thông tin ........................................................ 14 CHƯƠNG 2: NGHIÊN CỨU TỔNG QUAN VỀ MÃ NGUỒN MỞ LUCENE ............................................................................................................ 20 2.1. Giới thiệu về thư viện Lucene .............................................................................. 20 2.2. Quy trình đánh chỉ mục ....................................................................................... 23 2.3. Các toán tử đánh chỉ mục cơ bản ........................................................................ 23 2.4. Tối ưu hóa việc đánh chỉ mục .............................................................................. 24 2.5. Tính đồng thời, an toàn tiến tình,ngăn chăṇ cá c thưc̣ thi ................................. 24 2.6. Bô ̣chuyển đổi câu truy vấ n củ a người dùng: QueryParser ............................. 25 2.7. Cá c biểu thứ c truy vấ n củ a QueryParser........................................................... 25 2.8. Bộ phân tích – Analyzer: ..................................................................................... 26 2.9. Sử duṇ g lớ p IndexSearcher ................................................................................ 26 2.10. Cú pháp truy vấn Lucene .................................................................................. 27 2.11. Các máy tìm kiếm phát triển dựa trên Lucene ................................................ 28 CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM ............................ 29 3.1. Tài mã nguồn Lucene.NET .................................................................................. 29 3.2. Dữ liệu văn bản thử nghiệm ................................................................................ 30 3.3. Mô hình cơ sở dữ liệu ........................................................................................... 30 3
- 3.3.1. Lược đồ cơ sở dữ liệu ........................................................................................ 30 3.3.2. Danh sách bảng .................................................................................................. 31 3.3.3. Mô tả bảng .......................................................................................................... 31 3.4. Giao diện chính ..................................................................................................... 34 3.4.1. Giao diện trang Quản lý lĩnh vực ..................................................................... 34 3.4.2. Giao diện trang Quản lý văn bản ..................................................................... 35 3.4.3. Giao diện trang Cập nhật văn bản ................................................................... 35 3.4.4. Giao diện trang Tìm kiếm văn bản .................................................................. 36 3.4.5. Giao diện trang Tìm kiếm nâng cao văn bản .................................................. 37 3.4.6. Giao diện trang Xem chi tiết văn bản .............................................................. 38 3.4.7. Giao diện trang Xem nội dung file văn bản .................................................... 38 3.5. Đánh giá và thử nghiệm ....................................................................................... 40 3.5.1. Mô hình kiến trúc ứng dụng thử nghiệm ........................................................ 40 3.5.2. Kịch bản và kết quả ........................................................................................... 41 CHƯƠNG 4: KẾT LUẬN ................................................................................ 44 4.1. Đánh giá kết quả nghiên cứu ............................................................................... 44 TÀI LIỆU THAM KHẢO ................................................................................ 46 4
- DANH MỤC CÁC CHỮ VIẾT TẮT Từ viết tắt Nghĩa tiếng Việt CSDL Cơ sở dữ liệu Hệ quản trị cơ sở dữ liệu (Database Management DBMS Systems) Search Engine Máy tìm kiếm Index Chỉ mục Crawl Thu thập dữ liệu API Application Programming Interface Rank Hạng Là những từ xuất hiện nhiều nhưng không mang nhiều ý Stop word nghĩa (và, vẫn, vậy, nhưng, nếu, đáng lẽ, đang, thì, thế ) 5
- DANH MỤC CÁC BẢNG Bảng Tên Bảng Bảng 1.2.2.1 Bảng chỉ mục nghịch đảo Bảng 2.7.1 Bảng các biểu thức truy vấn của QueryParser Bảng 2.7.2 Bảng các toán tử tìm kiếm Bảng 3.3.1 Bảng danh sách các bảng trong CSDL Bảng 3.3.3.1 Bảng Lĩnh vực Bảng 3.3.3.2 Bảng Người ký Bảng 3.3.3.3 Bảng Văn bản Bảng 3.3.3.4 Bảng Loại văn bản Bảng 3.3.3.5 Bảng Cơ quan ban hành Bảng Kịch bản tìm kiếm của Hệ thống tìm kiếm thông Bảng 3.6.2.1 thường Bảng 3.6.2.2 Bảng Kịch bản tìm kiếm của Hệ thống tìm kiếm thông tin DANH MỤC CÁC HÌNH VẼ Hình vẽ Tên hình Hình 1.3.1 Mô hình kiến trúc của hệ thống tìm kiếm Google Hình 1.4.1.1 Mô hình kiến trúc hệ thống tìm kiếm thông tin Hình 1.4.1.2 Quy trình thu thập dữ liệu Hình 1.4.1.3 Quy trình đánh chỉ mục Hình 2.1.1 Lucene trong hệ thống tìm kiếm thông tin 6
- Hình 2.2.1 Quy trình đánh chỉ mục Lucene Hình 2.7.1 Hình các biểu thức truy vấn Hình 2.7.2 Hình các từ viết tắt thay thế cho các toán tử Hình 3.1.1 Hình tích hợp thư viện mã nguồn mở Lucene.net Hình 3.2.1 Hình Các tập tin kết xuất sau khi lập chỉ mục Hình 3.3.1 Hình lược đồ cơ sở dữ liệu Hình 3.4.1 Giao diện trang Quản lý lĩnh vực Hình 3.4.2 Giao diện trang Quản lý văn bản Hình 3.4.3 Giao diện trang Cập nhật văn bản Hình 3.4.4 Giao diện trang Tìm kiếm văn bản Hình 3.4.5 Giao diện trang Tìm kiếm nâng cao văn bản Hình 3.4.6 Giao diện trang Xem chi tiết văn bản Hình 3.4.7 Giao diện trang Xem nội dung file văn bản Hình 3.5.1 Hình Kiến trúc ứng dụng thử nghiệm 7
- MỞ ĐẦU Với sự phát triển không ngừng của công nghệ thông tin, số lượng các tài liệu điện tử do con người tạo ra ngày càng phong phú và đa dạng, nhu cầu khai thác dữ liệu trong kho tài liệu là rất lớn, đây là một trong những nhu cầu thường ngày và thiết thực của người sử dụng. Tuy nhiên, một trong những khó khăn con người gặp phải trong việc khai thác thông tin là: Khả năng tìm kiếm chính xác thông tin cần tìm trong kho tài liệu, khả năng tìm kiếm nhanh với số lượng dữ liệu lớn. Nếu dùng các hệ quản trị cơ sở dữ liệu quan hệ để tìm kiếm dữ liệu thì sẽ gặp phải các hạn chế như: Bị giới hạn ở cú pháp của ngôn ngữ SQL, tốc độ tìm kiếm chậm khi tìm kiếm gần đúng (dùng LIKE) trong cơ sở dữ liệu lớn Điều này đã thúc đẩy cho sự ra đời của các hệ thống tìm kiếm, điển hình nhất cho các hệ thống này là các máy tìm kiếm như Google và Yahoo Tuy nhiên, phần lớn các công cụ tìm kiếm này đều là những sản phẩm thương mại và mã nguồn được giữ bí mật. Vì vậy, nhiều đơn vị phát triển phần mềm đã tự mình xây dựng từ đầu một công cụ tìm kiếm bằng cách sử dụng các thư viện mã nguồn mở. Trên thế giới hiện nay có một số thư viện mã nguồn mở hỗ trợ xây dựng hệ thống tìm kiếm thông tin như: Lucene, Egothor, Xapian, MG4J, Sphinx Trong số các mã nguồn mở này thì Lucene là thư viện mã nguồn mở được nhiều tổ chức, cá nhân sử dụng nhất, cụ thể: CNET sử dụng Lucene để tìm kiếm danh sách thể loại sản phẩm, Wikipedia dùng lucene để tìm kiếm nội dung toàn văn bản. ElasticSearch và Sorl là hai một công cụ tìm kiếm rất mạnh cũng được xây dựng và phát triển dựa trên nền tảng Lucene, Vì vậy, trong đề tài này tôi đã lựa chọn Lucene để xây dựng thử nghiệm hệ thống tìm kiếm thông tin. Đề tài luận văn “Nghiên cứu công nghệ tìm kiếm (Mã nguồn mở) Lucene áp dụng giải quyết bài toán tìm kiếm trong hệ thống Văn bản” sẽ cố gắng giải quyết các vấn đề nêu trên. Luận văn kế thừa thư viện mã nguồn mở Lucene để xây dựng hệ thống tìm kiếm với hai thành phần chính là Tạo chỉ mục và Tìm kiếm. Luận văn tập trung nghiên cứu công nghệ mã nguồn mở Lucene áp dụng cho bài toán quản lý Văn bản, đưa ra các hướng phát triển trong tương lai. Do thời gian có hạn, việc xử lý văn bản, theo dõi tiến độ xử lý, đánh giá kết quả xử lý là phức tạp nên luận văn chỉ tập trung hoàn thiện các chức năng về quản lý văn bản và áp dụng công nghệ Lucene để đánh chỉ mục, tìm kiếm văn bản. 8
- Nội dung mà luận văn nghiên cứu bao gồm: Tìm hiểu tổng quan về các hệ thống tìm kiếm thông tin. Tìm hiểu tổng quan về công nghệ tìm kiếm mã nguồn mở Lucene. Phân tích, thiết kế, xây dựng ứng dụng thử nghiệm Quản lý Văn bản. Bố cục của luận văn như sau: Chương 1: Nghiên cứu tổng quan về hệ thống tìm kiếm thông tin, các thành phần và nguyên lý hoạt động của hệ thống tìm kiếm thông tin. Chương 2: Nghiên cứu các tính năng và hoạt động của mã nguồn mở Lucene, sử dụng mã nguồn mở Lucene.NET để xây dựng thử nghiệm hệ thống tìm kiếm thông tin. Chương 3: Trên cơ sở nghiên cứu về Hệ thống tìm kiếm thông tin và mã nguồn mở Lucene, chúng tôi đề xuất xây dựng thử nghiệm hệ thống tìm kiếm Văn bản với hai thành phần chính là: Tạo chỉ mục và Tìm kiếm. Chương 4: Trình bày các kết quả đạt được, những hạn chế của luận văn và hướng phát triển cho hệ thống quản lý Văn bản ứng dụng công nghệ Lucene trong tương lai. 9
- CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN VỀ HỆ THỐNG TÌM KIẾM THÔNG TIN Với những hệ thống có số lượng lớn các tài liệu thì việc tra cứu, tìm kiếm thông tin thông thường chưa đáp ứng được nhu cầu tìm kiếm của người dùng. Hệ thống chủ yếu tìm kiếm một cách chính xác dựa trên tiêu đề của tài liệu, cơ sở dữ liệu tìm kiếm đơn giản, tốc độ tìm kiếm chậm, chưa chính xác và chưa hỗ trợ các phép toán tìm kiếm. Vậy đây chính là các vấn đề cần cải thiện để cải thiện cho các hệ thống tra cứu tìm kiếm thông tin. 1.1. Khái niệm về hệ thống tìm kiếm thông tin Theo lý thuyết, hệ thống tìm kiếm thông tin là một hệ thống thông tin. Nó được sử dụng để lưu trữ, xử lý, tra cứu, tìm kiếm và phổ biến các yếu tố thông tin đến người sử dụng. Hệ thống tìm kiếm thông tin thường thao tác với các dữ liệu dạng văn bản và không có sự giới hạn về các yếu tố thông tin trong văn bản. Hệ thống thông tin bao gồm một tập hợp các yếu tố thông tin, một tập các yêu cầu và một vài cơ chế tìm kiếm để quyết định yếu tố thông tin nào liên quan đến các yêu cầu. Theo nguyên tắc, mối quan hệ giữa các câu truy vấn và tài liệu có được từ sự so sánh trực tiếp. Nhưng trên thực tế, sự liên quan giữa các câu truy vấn và tài liệu xác định không phải được quyết định trực tiếp mà gián tiếp bằng cách: các tài liệu, yếu tố thông tin phải chuyển sang ngôn ngữ chỉ mục trước khi xác định mức độ liên quan. Người sử dụng có thể đưa vào những câu hỏi, những yêu cầu và hệ thống sẽ tìm trong các tập chỉ mục để tìm ra các tài liệu liên quan, sau đó sắp xếp các tài liệu theo mức độ liên quan giảm dần và trả về cho người sử dụng. 1.2. Các bộ phận cấu thành hệ thống tìm kiếm thông tin 1.2.1. Bộ thu thập thông tin Bộ phận thu thập thông tin là một chương trình chạy tự động dùng để đi thu thập, lấy dữ liệu và lưu trữ các nội dung từ các trang web trên Internet. Bộ phận này có các thành phần chính: Một thành phần để theo dõi và phát hiện các URL mới, phát hiện các URL thay đổi. Một thành phần dùng để đọc đệ quy nội dung tài liệu của tất cả các trang web từ một tập các URL đã có, phân tích tài liệu, trích xuất nội dung tài liệu dưới các định dạng như html, pdf, excel...và lưu trữ về cơ sở dữ liệu thu thập. 10