1. Trang chủ
  2. » Thể loại khác

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 (tt)

24 195 0

Đ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

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ảnNghiê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ảnNghiê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ảnNghiê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ảnNghiê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ảnNghiê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ảnNghiê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ảnNghiê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ảnNghiê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ảnNghiê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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG HỌC CÔNG NGHỆ ĐẠI HỌCĐẠI QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆVĂN TRƯỜNG NGUYỄN THỊ LOAN NGHIÊN CỨU VÀ ỨNG DỤNG KỸ THUẬT HỌC MÁY VÀO BÀICƠNG TỐN PHÁT HIỆN MÃ(MÃ ĐỘC NGHIÊN CỨU NGHỆ TÌM KIẾM NGUỒN MỞ) LUCENE ÁP DỤNG GIẢI QUYẾT BÀI TỐN TÌM KIẾM TRONG HỆ THỐNG VĂN BẢN Ngành: Công nghệ Thông tin Chuyên ngành: Kỹ thuật phần mềm Ngành: Công nghệ Thông tin Mã số: 60480103 Chuyên ngành: Kỹ thuật phần mềm Mã số: 62.48.01.03 TĨM TẮT LUẬN VĂN THẠC SĨ NGÀNH CƠNG NGHỆ THƠNG TIN TĨM TẮT LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN Hà Nội - 2016 Hà Nội - 2017 MỤC LỤC MỞ ĐẦU CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN VỀ HỆ THỐNG TÌM KIẾM THÔNG TIN 1.1 Khái niệm hệ thống tìm kiếm thơng tin 1.2 Các phận cấu thành hệ thống tìm kiếm thơng tin 1.3 Hệ thống tìm kiếm thông tin Google 1.4 Kiến trúc hệ thống tìm kiếm thông tin CHƯƠNG 2: NGHIÊN CỨU TỔNG QUAN VỀ MÃ NGUỒN MỞ LUCENE 10 2.1 Giới thiệu thư viện Lucene 10 2.2 Quy trình đánh mục 11 2.3 Các toán tử đánh mục 11 2.4 Tối ưu hóa việc đánh mục 12 2.5 Tính đờ ng thời, an tồn tiến tình, ngăn chă ̣n các thư ̣c thi 12 2.6 Bô ̣ chuyể n đổ i câu truy vấ n của người dùng: QueryParser 12 2.7 Các biể u thức truy vấ n của QueryParser 13 2.8 Bộ phân tích – Analyzer: 13 2.9 Sử du ̣ng lớp IndexSearcher 13 2.10 Cú pháp truy vấn Lucene 14 2.11 Các máy tìm kiếm phát triển dựa Lucene 14 CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM 15 3.1 Tài mã nguồn Lucene.NET 15 3.2 Dữ liệu văn thử nghiệm 15 3.3 Mơ hình sở liệu 16 3.3.1 Lược đồ sở liệu 16 3.4 Giao diện 16 3.4.1 Giao diện trang Quản lý văn 16 3.4.2 Giao diện trang Cập nhật văn 17 3.4.3 Giao diện trang Tìm kiếm văn 17 3.4.4 Giao diện trang Xem nội dung file văn 18 3.5 Đánh giá thử nghiệm 19 3.5.1 Mơ hình kiến trúc ứng dụng thử nghiệm 19 3.5.2 Kịch kết 20 CHƯƠNG 4: KẾT LUẬN 23 4.1 Đánh giá kết nghiên cứu 23 TÀI LIỆU THAM KHẢO 24 MỞ ĐẦU Với phát triển không ngừng công nghệ thông tin, số lượng tài liệu điện tử người tạo ngày phong phú đa dạng, nhu cầu khai thác liệu kho tài liệu lớn, nhu cầu thường ngày thiết thực người sử dụng Tuy nhiên, khó khăn người gặp phải việc khai thác thông tin là: Khả tìm kiếm xác thơng tin cần tìm kho tài liệu, khả tìm kiếm nhanh với số lượng liệu lớn Nếu dùng hệ quản trị sở liệu quan hệ để tìm kiếm liệu gặp phải hạn chế như: Bị giới hạn cú pháp ngôn ngữ SQL, tốc độ tìm kiếm chậm tìm kiếm gần (dùng LIKE) sở liệu lớn…Điều thúc đẩy cho đời hệ thống tìm kiếm, điển hình cho hệ thống máy tìm kiếm Google Yahoo…Tuy nhiên, phần lớn cơng cụ tìm kiếm sản phẩm thương mại mã nguồn giữ bí mật Vì vậy, nhiều đơn vị phát triển phần mềm tự xây dựng từ đầu cơng cụ tìm kiếm cách sử dụng thư viện mã nguồn mở Trên giới có 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ố mã nguồn mở Lucene thư viện mã nguồn mở 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 tồn văn ElasticSearch Sorl hai công cụ tìm kiếm mạnh xây dựng phát triển dựa tảng Lucene,… Vì vậ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 tốn tìm kiếm hệ thống Văn bản” cố gắng giải vấn đề nêu 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 Tạo mục Tìm kiếm Luận văn tập trung nghiên cứu công nghệnguồn mở Lucene áp dụng cho toán quản lý Văn bản, đưa hướng phát triển 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 xử lý… phức tạp nên luận văn tập trung hoàn thiện chức quản lý văn áp dụng công nghệ Lucene để đánh mục, tìm kiếm văn Nội dung mà luận văn nghiên cứu bao gồm: Tìm hiểu tổng quan hệ thống tìm kiếm thơng tin Tìm hiểu tổng quan cơng nghệ tìm kiếmnguồ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ố cục luận văn sau: Chương 1: Nghiên cứu tổng quan hệ thống tìm kiếm thơng tin, thành phần nguyên lý hoạt động hệ thống tìm kiếm thơng tin Chương 2: Nghiên cứu tính hoạt động mã nguồn mở Lucene, sử dụngnguồ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 sở nghiên cứu Hệ thống tìm kiếm thơng tin mã nguồn mở Lucene, đề xuất xây dựng thử nghiệm hệ thống tìm kiếm Văn với hai thành phần là: Tạo mục Tìm kiếm Chương 4: Trình bày kết đạt được, hạn chế luận văn hướng phát triển cho hệ thống quản lý Văn ứng dụng công nghệ Lucene tương lai CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN VỀ HỆ THỐNG TÌM KIẾM THƠNG TIN Với hệ thống có số lượng lớn tài liệu việc tra cứu, tìm kiếm thơng tin thơng thường chưa đáp ứng nhu cầu tìm kiếm người dùng Hệ thống chủ yếu tìm kiếm cách xác dựa tiêu đề tài liệu, sở liệu tìm kiếm đơn giản, tốc độ tìm kiếm chậm, chưa xác chưa hỗ trợ phép tốn tìm kiếm Vậy vấn đề cần cải thiện để cải thiện cho hệ thống tra cứu tìm kiếm thơng tin 1.1 Khái niệm hệ thống tìm kiếm thơng tin Theo lý thuyết, hệ thống tìm kiếm thơng tin hệ thống thơng tin Nó sử dụng để lưu trữ, xử lý, tra cứu, tìm kiếm phổ biến 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 liệu dạng văn khơng có giới hạn yếu tố thông tin văn 1.2 Các 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 chương trình chạy tự động dùng để thu thập, lấy liệu lưu trữ nội dung từ trang web Internet Bộ phận có thành phần chính: Một thành phần để theo dõi phát URL mới, phát URL thay đổi Một thành phần dùng để đọc đệ quy nội dung tài liệu tất trang web từ tập URL có, phân tích tài liệu, trích xuất nội dung tài liệu định dạng html, pdf, excel lưu trữ sở liệu thu thập 1.2.2 Bộ lập mục Hệ thống lập mục để tối ưu hóa tốc độ hiệu suất việc tìm kiếm tài liệu có liên quan cho truy vấn tìm kiếm Nếu khơng có mục, cơng cụ tìm kiếm quét tất tài liệu thư viện, đòi hỏi thời gian sức mạnh tính tốn đáng kể Chẳng hạn, mục 10.000 tài liệu truy vấn vòng mili giây việc quét theo phần từ 10.000 tài liệu lớn hàng 1.2.3 Bộ tìm kiếm thơng tin Bộ phận chịu trách nhiệm tìm kiếm tài liệu từ yêu cầu người sử dụng, sau trả danh sách tài liệu xác với yêu cầu Do số lượng trang web lớn, thông thường người dùng đưa vào vài từ khóa câu truy vấn nên tập kết thường lớn Vì xếp hạng (ranking) có nhiệm vụ xếp tài liệu theo mức độ hợp lệ với yêu cầu tìm kiếm hiển thị kết cho người sử dụng 1.3 Hệ thống tìm kiếm thông tin Google Google công ty Internet có trụ sở Hoa Kỳ, thành lập vào năm 1998 Sản phẩm cơng ty cơng cụ tìm kiếm Google, nhiều người đánh giá cơng cụ tìm kiếm hữu ích mạnh mẽ Internet Trong khuôn khổ đề tài, tơi đề xuất nghiên cứu mơ hình tìm kiếm thơng tin Google để hiểu rõ kiến trúc Hệ thống tìm kiếm thơng tin Mơ hình kiến trúc tổng thể hệ thống tìm kiếm Google sau: URL Server Crawler Store Server Anchors URL Resolver Indexer Barrells Doc Index Links Repository Lecicon Sorter Pagerank Searcher Hình 1.3.1: Mơ hình kiến trúc hệ thống tìm kiếm Google [6]  Quy trình làm việc hệ thống chức thành phần mô tả sau: URL server gửi cho Crawler (được tổ chức phân tán, làm việc song song) tập hợp địa URLs Các tài liệu (WebPages, hay Document) Crawler tải xuống đưa vào Store Server, chúng nén lại theo chuẩn Zlib (RFC 1950) lưu trữ vào hệ thống lưu trữ tập trung Repository Tại Repository, tài liệu gán cho số number: DocID, Indexer đọc tài liệu từ Repository, giải nén phân tích chúng Tài liệu sau chuyển đổi sang tập từ khóa xuất bên gọi Hits, hits ghi gồm: từ khóa, vị trí xuất hiện, font size, chữ hoa/thường Indexer phân bổ hits vào tập kho chứa nhỏ Barrels Đồng thời phân tích tồn đường link có trang lưu trữ quan trọng vào AnchorsFile: text link, link from, link to URLresolver đọc AnchorsFile chuyển đổi đường dẫn tương đối tuyệt đối ánh xạ tương ứng đuờng dẫn tuyệt đối với DocIDs, sau thơng tin đuợc đưa vào Barrels tuơng ứng theo DocID Đổng thời sản sinh Database link (lưu cặp DocIDs có mối liên kết với nhau) Sorter xếp liệu (hits) Barrels DocID xếp lại WordID để tạo Inverted Index (index nghịch đảo) Bộ phận từ điển Lexicon lấy danh sách WordID tạo mục từ Searcher chạy WebServer sử dụng từ điển (Lexicon) thông tin index đảo (invert index) Barrels với kết tính rank (từ PageRank) để trả kết tìm kiếm 1.4 Kiến trúc hệ thống tìm kiếm thơng tin Khai thác Giao diện tìm kiếm Xử lý chuối tìm kiếm User Hiển thị kết theo thứ hạng Quản trị Đánh mục File Index File Index File Index n Dữ liệu nguồn Xử lý liệu Phân t ích từ, cụm từ Central DB Xếp thứ hạng CSDL thu thập Thu thập liệu Hình 1.4.1.1: Mơ hình kiến trúc hệ thống tìm kiếm thơng tin Dựa ý tưởng Google hệ thống tìm kiếm thơng tin khác hiểu hệ thống tìm kiếm thơng tin ln có ba thành phần sau:  Thành phần Thu thập liệu: thực thu thập toàn liệu tìm kiếm đưa nguồn tập trung để phục vụ q trình phân tích đánh mục liệu, thành phần quản lý môđun thu thập liệu  Thành phần Đánh mục liệu: thực phân tích, tiền xử lý nội dung liệu, sau tiến hành đánh mục liệu theo cách thức, chế yêu cầu máy tìm kiếm cụ thể, thực đánh mục liệu lưu vào File index  Thành phần Tìm kiếm liệu: thực phân tích câu truy vấn thực tìm kiếm tài liệu file index, sau kết hợp với thông tin xếp hạng (Rank) để trả lại kết tìm kiếm cho người dùng, thành phần có số chức như: Tiền xử lý khố tìm kiếm, thực phân tích từ khố tìm kiếm, xử lý tốn tử tìm kiếm (AND, OR, NOT, ), xử lý tìm kiếm xác, xây dựng câu truy vấn liệu Từ nghiên cứu nhận thấy hệ thống tìm kiếm thơng tin có ưu điểm vượt trội so với chức tìm kiếm sở liệu thông thường như: Hệ quản trị CSDL thông thường đánh mục cho liệu dạng file hệ thống tìm kiếm thơng tin đánh mục cho tất tập tin dạng: pdf, html, MS Word, Excel, Các câu truy vấn hệ quản trị CSDL bị giới hạn cú pháp SQL query, câu truy vấn Hệ thống tìm kiếm gần với yêu cầu tìm kiếm người dùng, dùng phép tốn tìm kiếm AND, OR, NOT, tìm kiếm xác cụm từ, cụm từ…Ngồi với liệu lớn tốc độ tìm kiếm Hệ thống tìm kiếm thơng tin nhanh nhiều so với chức tìm kiếm hệ Quản trị CSDL thơng thường CHƯƠNG 2: NGHIÊN CỨU TỔNG QUAN VỀ MÃ NGUỒN MỞ LUCENE Lucene thư viện mã nguồn mở cho phép xử lý văn đầu vào dạng văn (text) để tạo tập mục cung cấp phương thức tìm kiếm tập mục Nó cho phép người dùng kế thừa phát triển để phù hợp với nhiều ngôn ngữ khác Chúng đề xuất nghiên cứu ứng dụng Lucene để phát triển hệ thống tìm kiếm văn lưu trữ [2] 2.1 Giới thiệu thư viện Lucene Lucene phần mềm mã nguồn mở, dùng để phân tích, đánh mục tìm kiếm thơng tin với hiệu suất cao Java Lucene phát triển Doug Cutting giới thiệu vào tháng năm 2000 Tháng năm 2001 Lucene gia nhập vào tổ chức Apache Apache phát triển quản lý Lucene ứng dụngcông cụ đặc tả API cần thiết cho việc xây dựng search engine [10]  Lucene hệ thống tìm kiếm thông tin: Index document Users Analyze document Search UI Build document Index Build query Acquire content Raw Content Render results Run query Hình 2.1.1: Lucene hệ thống tìm kiếm thơng tin [5] 10 Thành phần chức Lucene bao gồm hai phần: Thành phần tạo mục thành phần tìm kiếm Đây hai thành phần quan trọng cho hệ thống tìm kiếm thơng tin o Thành phần Tạo mục: Bao gồm chức xử lý phân tích liệu để đánh mục Lucene cho phép thiết lập trường thông tin cần thiết để đánh mục phục vụ cho thành phần tìm kiếm, thư viện phục vụ đánh mục mà Lucene hỗ trợ o Thành phần Tìm kiếm: bao gồm phần chức xử lý tìm kiếm, trả kết tìm kiếm cho người dùng, thông qua biên dịch so khớp để lấy kết tốt 2.2 Quy trình đánh mục Để tiến hành đánh mục cho tài liệu, trước hết phải chuyển đổi toàn nội dung file liệu HTML, PDF, MS WORD…sang nội dung chứa liệu dạng text Lucene tiến hành phân tích xử lý liệu, loại bỏ từ khơng có nghĩa, tách từ, cụm từ,.…Sau liệu phân tích chuyển sang cho việc index Lucene chứa liệu theo cấu trúc inverted index (chỉ mục nghịch đảo) Cấu trúc có hiệu để tiết kiệm dung lượng ổ đĩa cho phép tìm kiếm nhanh từ khóa q trình tìm kiếm Ngun tắc thay phải tìm kiếm từ chứa tài liệu với cấu trúc tối ưu hóa việc tìm câu trả lời “tài liệu chứa từ khóa này” 2.3 Các tốn tử đánh mục Lucene hỗ trơ ̣ các toán tử giúp thực hiê ̣n viê ̣c đánh chỉ mu ̣c như: Thêm tài liê ̣u mới (Document) cùng các trường (Fields): Keyworks, UnIndexed, UnStored và Text Trong mỗi tài liê ̣u la ̣i có thể có chứa nhiề u Fields cùng tồ n ta ̣i và mỗi Fields la ̣i có thêm nhiề u giá tri ̣ khác Xóa tài liê ̣u khỏi chỉ mu ̣c (Remove Documents), lớp sử du ̣ng lớp IndexReader với phương thức delete() ta có thể dễ dàng xóa bỏ tài liê ̣u đươ ̣c chỉ đinh ̣ khỏi chỉ mu ̣c Lucene sẽ xem các tài liê ̣u này đươ ̣c đánh dấ u là sẽ xóa Tuy nhiên viê ̣c này chỉ có thể thực hiê ̣n go ̣i hàm close() Câ ̣p nhâ ̣t tài liê ̣u: Lucene không hỗ trơ ̣ thực hiê ̣n viê ̣c câ ̣p nhâ ̣t tài liê ̣u, thay vào đó sẽ xóa bỏ tài liê ̣u và sau đó thêm la ̣i tài liê ̣u mới thay thế Để đảm bảo tố c đô ̣ thực 11 thi thì tố t nhấ t viê ̣c xóa bỏ và thêm tài liê ̣u mới nên thực hiê ̣n theo khố i, không nên xen lẫn giữa viê ̣c xóa và thêm tài liê ̣u mới 2.4 Tối ưu hóa việc đánh mục Viê ̣c tố i ưu hóa tiế n trin ̀ h đánh chỉ mu ̣c là tiế n triǹ h trô ̣n nhiề u file chỉ mu ̣c la ̣i với để giảm thiể u thời gian đo ̣c chỉ mu ̣c quá triǹ h tim ̀ kiế m Bằ ng viê ̣c sử du ̣ng API của Lucene mà cu ̣ thể là hàm optimize() của đố i tươ ̣ng IndexWriter ta có thể dễ dàng tố i ưu điêu này Tuy nhiên viê ̣c làm này chỉ có hiê ̣u quả tăng tố c đô ̣ tìm kiế m chỉ mu ̣c đã có, mà không có tác đô ̣ng tới tố c đô ̣ đánh chỉ mu ̣c 2.5 Tính đờ ng thời, an tồn tiến tình, ngăn chă ̣n các thư ̣c thi Các luâ ̣t đồ ng thời: Lucene cung cấ p cho người dùng nhiề u toán tử liên quan tới viê ̣c đánh chỉ mu ̣c tài liê ̣u như: xóa, câ ̣p nhâ ̣t Do đó quá trình thực hiê ̣n chúng ta phải tuân theo mô ̣t số luâ ̣t cu ̣ thể để tránh viê ̣c đu ̣ng đô ̣ quá triǹ h thực thi Điề u này là cấ n thiế t mà có nhiề u thực thi diễn mô ̣t cách thường xuyên trước những yêu cầ u gởi từ web tới ứng du ̣ng của ba ̣n Sau là mô ̣t số luâ ̣t bản: Bấ t kì toán tử chỉ đo ̣c nào cũng có thể thực thi đồ ng thời, chẳ ng ̣n là nhiề u tiế n trình có thể tìm kiế m cùng mô ̣t chỉ mu ̣c ta ̣i mô ̣t thời điể m Bấ t kì toán tử chỉ đo ̣c nào cũng có thể thực thi đồ ng thời mô ̣t chỉ mu ̣c nào đó đươ ̣c câ ̣p nhâ ̣t Ví du ̣: người dùng có thể tim ̀ kiế m chỉ mu ̣c nó đươ ̣c câ ̣p nhâ ̣t, thêm tài liê ̣u mới hoă ̣c là đươ ̣c xóa khỏi chỉ mu ̣c Chỉ có nhấ t toán tử câ ̣p nhâ ̣t chỉ mu ̣c có thể thực thi ta ̣i mô ̣t thời điể m Mô ̣t chỉ mu ̣c chỉ có thể đươ ̣c mở bởi chỉ mô ̣t đố i tươ ̣ng IndexWriter hoă ̣c là IndexReader ta ̣i mô ̣t thời điể m mà 2.6 Bô ̣ chuyể n đổ i câu truy vấ n của người dùng: QueryParser Hai yêu cầ u quan tro ̣ng ứng du ̣ng tìm kiế m đòi hỏi là: chuyể n đổ i câu truy vấ n và truy xuấ t thông tin trả về Hầ u hế t các phương thức Lucene đòi hỏi đố i tươ ̣ng Query Viê ̣c chuyể n đổ i câu truy vấ n là viê ̣c biể u diễn câu truy vấ n của người dùng thành đố i tươ ̣ng Query phù hơ ̣p để sau đó truyề n vào hàm tim ̀ kiế m của lucene Lucene có thể tim ̀ kế t quả chỉ câu truy vấ n truyề n vào là đúng đinh ̣ da ̣ng của nó Để thực hiê ̣n đươ ̣c viê ̣c chuyể n đổ i câu truy vấ n của người dùng, QueryParser cầ n thêm mô ̣t đố i tươ ̣ng khác go ̣i là bô ̣ phân tić h Analyzer Tùy 12 vào viê ̣c cho ̣n lựa bô ̣ Analyzer để phân tić h chuỗi truyề n vào thì kế t quả sẽ khác 2.7 Các biể u thức truy vấ n của QueryParser QueryParser sử du ̣ng nhiề u toán tử luâ ̣n lí để thực hiê ̣n viê ̣c chuyể n đổ i câu truy vấ n như: OR, AND, NOT Mă ̣c đinh ̣ là OR Chẳ ng ̣n câu truy vấ n sau: abc xyz thì sẽ đươ ̣c phân tić h thành là abc or xyz or (abc and xyz) Để thay đổ i tham số mă ̣c đinh ̣ này, ta cầ n đă ̣t la ̣i toán tử cho đố i tươ ̣ng QueryParser 2.8 Bộ phân tích – Analyzer: Trong Lucene, phân tích (analysis) q trình chuyển đổi field văn dạng trình bày mục (term) Các terms sử dụng để xác định rõ tài liệu phù hợp với câu truy vấn q trình tìm kiếm Bộ phân tích (analyzer) cách nói tóm lược q trình phân tích Analyzer phân tích đoạn văn thành tokenizes, q trình rút trích từ, bỏ hệ thống dấu chấm câu, chuyển toàn chữ văn dạng chữ thường (lowercasing hay gọi normalizing), loại bỏ từ chung (common words hay stop words), giảm số lượng từ từ văn đưa vào (root form hay gọi stremming) Q trình gọi tokenization,chuyển đoạn văn thành nhiều khúc văn gọi token.Tokens kết hợp với field name chúng gọi terms Sau trình tạo terms, terms khối liệu dùng để tìm kiếm trực tiếp Vì chọn phân tích đắn cốt yếu quan trọng trình phát triển phần mềm tìm kiếm Ngơn ngữ yếu tố phải nghĩ đến để chọn phân tích, có đặc trưng riêng ngôn ngữ 2.9 Sử du ̣ng lớp IndexSearcher Sau ta ̣o đố i tươ ̣ng IndexSearcher, ta sẽ go ̣i phương thức search để thực hiê ̣n viê ̣c tìm kiế m Có ba phương thức chính để tìm kiế m Song ta chủ yế u sử du ̣ng phương thức search(Query), tức tham số là câu truy vấ n Query Các phương thức tìm kiế m đề u trả về là các Hits –chứa các thông tin đã tim ̀ kiế m đươ ̣c, kết đươ ̣c sắ p xế p theo thứ tự đô ̣ chiń h 13 xác Thông qua đố i tươ ̣ng này ta có thể truy xuấ t thêm nhiề u thông tin về kế t quả tìm kiế m 2.10 Cú pháp truy vấn Lucene Lucene có cú pháp truy vấn tùy chỉnh để truy vấn mục Trong hấ u hế t các ứng du ̣ng ta sử du ̣ng đố i tươ ̣ng QueryParser để chuyể n đổ i câu truy vấ n theo từng loa ̣i thić h hơ ̣p Lucene cung cấ p bố n loa ̣i Query: QueryParse, BooleanQuery, RangeQuery và TermQuery Sau ta sẽ tìm hiể u từng loa ̣i Query và lúc nào QueryParse sẽ chuyể n đổ i câu truy vấ n thành da ̣ng nào [7] 2.11 Các máy tìm kiếm phát triển dựa Lucene  Apache Solr: Solr máy chủ tìm kiếmnguồn mở phát triển dựa Apache Lucene có khả cung cấp thư viện cho việc index (đánh mục) search (tìm kiếm) liệu Solr nhập liệu dạng XML thông qua HTTP, sử dụng thư viện để nhập khối lượng lớn liệu Người dùng truy vấn liệu thông qua HTTP GET nhận kết dạng XML Solr chạy bên Java servlet container Tomcat, Jetty hay Resin  Elasticsearch: ElasticSearch máy tìm kiếm cấp doanh nghiệp (enterprise-level search engine) Mục tiêu tạo cơng cụ, tảng hay kỹ thuật tìm kiếm phân tích thời gian thực, áp dụng hay triển khai cách dễ dàng vào nguồn liệu (data sources) khác ElasticSearch phát triển Shay Banon dựa Apache Lucene, phân phối mã nguồn mở cho việc tìm kiếm liệu máy chủ 14 CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM Trên sở nghiên cứu, đề xuất xây dựng ứng dụng thử nghiệm Lucene vào hệ thống tìm kiếm Văn Trong đó, chúng tơi kế thừa mã nguồn mở Lucene.NET để xây dựng hệ thống tìm kiếm với hai thành phần là: Tạo mục Tìm kiếm Do xây dựng hệ thống tìm kiếm nhỏ với liệu văn nên hệ thống khơng có thành phần Thu thập liệu 3.1 Tài mã nguồn Lucene.NET Trước tiên, truy cập vào website https://lucenenet.apache.org/ để tải phiên Lucene Sau tải giải nén vào thư mục làm việc mà không cần cài đặt Sau giải nén, kiểm tra lại để đảm bảo thư mục vừa giải nén có chứa thư viện Lucene.net.dll Thư viện tích hợp vào cơng cụ phát triển phần mềm Microsoft Visual Studio Ứng dụng thử nghiệm xây dựng giao diện tương tác với người dùng, mã nguồn giao diện dòng lệnh gọi phương thức thư viện Lucene.NET cung cấp để phục vụ việc đánh mục tìm kiếm 3.2 Dữ liệu văn thử nghiệm Do khơng có thành phần thu thập liệu nên liệu phục vụ thử nghiệm đưa vào hệ thống thông qua chức nhập liệu văn ứng dụng Dữ liệu lưu trữ hệ quản trị CSDL SQL Server 2008 Sau có liệu, sử dụng Lucene để đánh mục văn phục vụ tìm kiếm 15 3.3 Mơ hình sở liệu 3.3.1 Lược đồ sở liệu Lược đồ mơ hình CSDL cung cấp cách tổng quan cấu trúc liệu mối quan hệ liệu bảng CSDL Mô tả chi tiết trường liệu, kiểu liệu, khóa chính, khóa phụ bảng Đây mơ hình CSDL lưu trữ Văn phục vụ việc đánh mục tìm kiếm ứng dụng thử nghiệm VB_VanBan VB_LinhVuc ID Ten MoTa ThuTu VB_LoaiVanBan ID ID IDThuMuc Ten SoHieu MoTa NgayBanHanh ThuTu NgayHieuLuc TieuDe IDLoaiVanBan IDLinhVuc IDCapVanBan VB_NguoiKy IDDoMat ID IDCoQuanBanHanh Ten IDNguoiKy ChucVu TrangThaiHieuLuc IDCoQuan TenNguoiKy VB_CoQuanBanHanh ID ParentID Ten TrichYeu MoTa NoiDung DiaChi CreateDate DienThoai EditDate CreateUser EditUser Status IsDeleted TrangThaiNhap FileVanBan LoaiFile FilePhuLuc Hình 3.3.1: Hình lược đồ sở liệu 3.4 Giao diện 3.4.1 Giao diện trang Quản lý văn Giao diện cho phép người dùng thêm mới, cập nhật xóa vănhệ thống Đây chức tạo nên Cơ sở liệu văn phục vụ việc đánh mục để tạo sở liệu Lucene Hệ thống cho phép đánh mục toàn văn lưu trữ CSDL, đánh mục văn vừa thêm mới, cập nhật xóa mà khơng cần phải đánh mục lại từ đầu 16 Hình 3.4.1: Giao diện trang Quản lý văn 3.4.2 Giao diện trang Cập nhật văn Chức cho phép người dùng thực thêm cập nhật vănhệ thống Thông tin văn bao gồm trường thông tin như: Số hiệu văn bản, ngày ban hành, ngày hiệu lực, trích yếu, nội dung văn bản… Hình 3.4.2: Giao diện trang Cập nhật văn 3.4.3 Giao diện trang Tìm kiếm văn Giao diện cho phép người dùng gõ từ khóa tìm kiếm, hệ thống thực tìm kiếm từ khóa file mục, xếp kết trả danh sách kết theo mức độ liên quan câu truy vấn 17 tài liệu sở liệu mục Chức cho phép người dùng gõ trực tiếp từ khóa kết hợp với phép toánLucene hỗ trợ (AND, OR, NOT…), tìm kiếm xác, tìm kiếm gần tìm với ký tự đại diện Hình 3.4.3: Giao diện trang Tìm kiếm văn 3.4.4 Giao diện trang Xem nội dung file văn Với văn đưa vào hệ thống, việc xem thơng tin chi tiết văn người dùng xem trực tiếp nội dung văn lưu trữ file pdf Đây nội dung toàn văn cần đưa vào hệ thống để đánh mục phục vụ chức tra cứu, tìm kiếm văn 18 Hình 3.4.5: Giao diện trang Xem nội dung file văn 3.5 Đánh giá thử nghiệm 3.5.1 Mơ hình kiến trúc ứng dụng thử nghiệm Dữ liệu văn File mục CSDL văn Tạo mục văn Ứng dụng thử nghiệm phục vụ Tìm kiếm văn Người sử dụng Hình 3.5.1: Hình Kiến trúc ứng dụng thử nghiệm 19 Hệ thống thử nghiệm có thành phần chính:  Dữ liệu văn thử nghiệm: Tất văn đưa vào hệ thống lưu trữ hệ Quản trị CSDL SQL Server 2008 gọi sở liệu Văn Với mơ thử nghiệm với số lượng khoảng 300 văn  Tạo mục văn bản: Từ liệu văn đưa vào hệ thống, xây dựng chức đánh mục cho văn bản, chức tạo file mục lưu trữ đĩa cứng máy tính, sở liệu mục hay sở liệu LuceneTìm kiếm văn bản: Người dùng truy cập vào đường dẫn phần mềm thử nghiệm gõ từ khóa tìm kiếm văn Hệ thống thực tìm kiếm sở liệu Lucene hay tìm file mục trả kết cho người dùng Từ danh sách kết tìm kiếm người dùng xếp tăng dần, giảm dần theo số hiệu văn bản, ngày ban hành, ngày hiệu lực Hoặc click vào văn để xem thông tin chi tiết 3.5.2 Kịch kết Với liệu văn đánh mục, thử nghiệm sử dụng chức tìm kiếm văn với kịch sau: Tìm kiếm theo từ khóa bất kỳ, tìm kiếm theo tốn tử, tìm kiếm chính, gần từ khóa, Hệ thống thực thành cơng máy tính cá nhân với cấu hình Intel Core i5-3210M, CPU 2.5GHz, 8GB RAM với kết sau: Bảng 3.5.2.1: Bảng Kịch tìm kiếm Hệ thống tìm kiếm thơng thường Thời gian Từ khóa tìm Số lượng Kịch tìm kiếm tìm kiếm kiếm kết (giây) Tìm kiếm theo từ khóa bất quy 67 1.25 kỳ Tìm kiếm theo từ khóa bất Ban hành 34 1.76 kỳ 20 Tìm kiếm theo phép tốn Mơi AND trường AND Tìm kiếm theo phép tốn Mơi OR trường OR Tìm kiếm xác từ khóa “quy chế” Tìm kiếm từ khóa tiếng việt khơng có dấu (tìm kiếm Quy che gần đúng) Tìm kiếm với ký tự đại diện BGD* 0.84 0.74 1.026 0.311 0.24 Bảng 3.5.2.2: Bảng Kịch tìm kiếm Hệ thống tìm kiếm thơng tin Kịch tìm kiếm Từ khóa tìm kiếm Tìm kiếm theo từ khóa bất quy kỳ Tìm kiếm theo từ khóa bất Ban hành kỳ Tìm kiếm theo phép tốn Mơi AND AND trường Tìm kiếm theo phép tốn Mơi OR trường Tìm kiếm xác từ khóa “quy chế” Tìm kiếm từ khóa tiếng việt khơng có dấu (tìm kiếm Quy che gần đúng) Tìm kiếm với ký tự đại diện BGD* 21 OR Thời gian tìm kiếm (giây) Số lượng kết 45 0.027 76 0.016 117 0.041 130 0.023 17 0.012 48 0.017 0.029 Qua kết thống kê cho thấy chức tìm kiếm hệ thống sở dư liệu thông thường không hỗ trợ tốn tử tìm kiếm, khơng hỗ trợ tìm kiếm xác dấu “” tìm kiếm tiếng việt khơng có dấu Đặc biệt tốc độ tìm kiếm hệ thống tìm kiếm thơng tin nhanh nhiều so với chức tìm kiếm hệ quản trị sở liệu thông thường Kết thử nghiệm tìm kiếm hệ thống tìm kiếm thơng tin tương đối xác hiệu quả, hỗ trợ đầy đủ phép tốn tìm kiếm với thời gian tìm kiếm nhanh Như hệ thống thử nghiệm tìm kiếm văn sử dụngnguồn mở Lucene đáp ứng mục tiêu đặt đề tài 22 CHƯƠNG 4: KẾT LUẬN Về lý thuyết, luận văn tìm hiểu thành phần hệ thống tìm kiếm thơng tin, tìm hiểu cách hệ thống tính hoạt động mã nguồn mở Lucene Thực nghiệm, từ sở lý thuyết, luận văn xây dựng cài đặt thành công ứng dụng thực nghiệm Lucene vào hệ thống tìm kiếm Văn Trong đó, ứng dụng thư thư viện mã nguồn mở Lucene.NET để xây dựng hệ thống tìm kiếm với hai thành phần là: Tạo mục Tìm kiếm văn 4.1 Đánh giá kết nghiên cứu 4.1.1 Kết đạt được: Về luận văn thực tốt nội dung đề đạt số kết định: Luận văn trình bày sở lý thuyết nguyên lý vận hành hệ thống tìm kiếm thơng tin, trình bày cách hệ thống tính hoạt động mã nguồn mở Lucene Luận văn ứng dụng thành côngnguồn mở Lucene cơng tác tìm kiếm thơng tin hệ thống Quản lý văn 4.1.2 Hạn chế: Bên cạnh kết đạt đề tài có mặt hạn chế như: Phần thực nghiệm dừng lại phạm vi nhỏ với số lượng văn hạn chế Đề tài chưa nghiên cứu thư viện mã nguồn mở khác giống thư viện Lucene, chưa nghiên cứu số tính liên quan đến tìm kiếm tiếng Việt 4.2 Hướng phát triển Hướng nghiên cứu đề tài tập trung nghiên cứu tìm hiểu mã nguồn mở khác giống thư viện mã nguồn mở Lucene, để áp dụng thử nghiệm đưa nhận xét, đánh giá so sánh hiệu với thư viện Lucene 23 TÀI LIỆU THAM KHẢO Tiếng Việt Đỗ Phúc, Đỗ Hoàng Cường, Nguyễn Tri Tuấn, Huỳnh Thụy Bảo Trân, Nguyễn Văn Khiết, Nguyễn Việt Hoàng, Nguyễn Việt Thành, Phạm Phú Hội, Dương Ngọc Long Nam, Nguyễn Phước Thanh Hải, “Phát triển Hệ thống S.E” Hỗ trợ Tìm kiếm Thơng tin, thuộc lãnh vực CNTT Internet qua từ khóa tiếng Việt”, Đại học Khoa Học Tự Nhiên, TP.HCM, 2004 Huỳnh Đức Việt, Võ Duy Thanh, Võ Trung Hùng, ”Tạp chí khoa học cơng nghệ”, Đại học Đà Nẵng, 2010 Tiếng Anh Michael McCandless, Erik Hatcher, Otis Gospodnetic, Lucene in action, 2010 Haralambos Marmanis and Dmitry Babenko, Algorithms of the Intelligent Web, 2009 Chris Manning and Pandu Nayak, Introduction to Information Retrieval http://infolab.stanford.edu/~backrub/google.html http://www.lucenetutorial.com https://www.tutorialspoint.com https://lucenenet.apache.org/ 10 https://en.wikipedia.org/wiki/Lucene 24 ... văn Nghiên cứu cơng nghệ tìm kiếm (Mã nguồn mở) Lucene áp dụng giải tốn tìm kiếm hệ thống Văn bản cố gắng giải vấn đề nêu Luận văn kế thừa thư viện mã nguồn mở Lucene để xây dựng hệ thống tìm. .. CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN VỀ HỆ THỐNG TÌM KIẾM THƠNG TIN 1.1 Khái niệm hệ thống tìm kiếm thơng tin 1.2 Các phận cấu thành hệ thống tìm kiếm thơng tin 1.3 Hệ thống tìm kiếm thơ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 sở nghiên cứu Hệ thống tìm kiếm thơng tin mã nguồn mở Lucene, đề xuất xây dựng thử nghiệm hệ thống tìm kiếm

Ngày đăng: 19/01/2018, 10:32

Xem thêm:

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w