Kỹ thuật tạo chỉ mục cho tài liệu và tìm kiếm dựa trên chỉ mục.. Khái quát ý tưởng Ứng dụng thực hiện được 3 chức năng lớn sau: Cho phép người dùng tại các điểm nút khi tham gia vào
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
NGÀNH CÔNG NGHỆ THÔNG TIN
======
ISO 9001:2000 BÁO CÁO ĐỒ ÁN TỐT NGHIỆP
Tên đề tài: Xây dựng ứng dụng dựa trên mạng ngang hàng
Giáo viên hướng dẫn: TS Phạm Hồng Thái
CN Lương Việt Nguyên
Sinh viên thực hiện : Nguyễn Thị Hoa
Trang 2NỘI DUNG CHÍNH
I Mục đích của đề tài
II Kỹ thuật tạo chỉ mục cho tài liệu và tìm
kiếm dựa trên chỉ mục
III Giải pháp xây dựng ứng dụng
IV Cài đặt chương trình
V Kết luận và hướng phát triển
1
Trang 4II KỸ THUẬT TẠO CHỈ MỤC CHO TÀI LIỆU
VÀ TÌM KIẾM DỰA TRÊN CHỈ MỤC
1 Tổ chức chỉ mục tìm kiếm
Tìm kiếm một cách hiệu quả trên file văn bản
Xâu truy vấn bao gồm một tập hợp các từ hoặc
cụm từ
Nhiệm vụ của thao tác tìm kiếm là trả về danh sách
các file mà nội dung của chúng có chứa các từ,
cụm từ trong xâu truy vấn
3
Trang 5 Phương pháp thực hiện quét một lần trên các file
văn bản và lưu lại danh sách các thành tố có trong file, các thông tin đi kèm với mỗi thành tố
Các thông tin này sẽ được tổ chức theo một cấu
trúc dữ liệu riêng và được gọi là chỉ mục
2 Tạo chỉ mục
Có ba phương pháp chủ yếu để tạo chỉ mục dựa
trên việc sử dụng các cấu trúc: file đảo ngược, mảng hậu tố và file chữ ký
File đảo ngược là một cấu trúc dùng để tạo chỉ mục
bằng phương pháp hướng từ
4
Trang 6 Cấu trúc file đảo ngược bao gồm hai thành phần
cơ bản: bảng từ vựng và bảng vị trí
Hình 1: Tạo chỉ mục theo cấu trúc file đảo ngược
5
Trang 7 Để giảm kích thước lưu trữ bảng vị trí ta dùng kỹ thuật đánh địa chỉ khối
Hình 2: Tạo chỉ mục theo cấu trúc file đảo ngược
sử dụng kỹ thuật đánh địa chỉ khối
Trang 83 Tìm kiếm dựa trên chỉ mục
Thuật toán tìm kiếm chia làm 3 bước:
Tìm kiếm trên bảng từ vựng
Thu thập danh sách thông tin vị trí của từ, cụm
từ tìm được sau bước 1 thông qua bảng vị trí
Xử lý các thông tin thu thập được và tạo ra danh
sách kết quả tìm kiếm
7
Trang 94 Xếp hạng kết quả tìm kiếm
Tiêu chí để sắp xếp kết quả tìm kiếm chính là độ
liên quan giữa các kết quả với truy vấn tìm kiếm
do người dùng đưa ra
Bài toán xác định độ liên quan giữa một truy vấn
q với các tài liệu trong một thư viện C cho trước
Thuật toán xác định độ liên quan: Thuật toán
TF-IDF(Term Frequency – Inverse Document
Frequency)
Trang 10 Xét bài toán đơn giản: truy vấn q gồm một tập hợp các từ khóa ki Văn bản D bất kỳ thuộc thư viện C thì ta có:
R(q) = Σ R(ki) (1)
* R(q) là độ liên quan của q với D
* R(ki) là độ liên quan của từ khóa ki với D
Xét trong phạm vi văn bản D: Tần suất xuất hiện của một từ khóa trong văn bản tỉ lệ thuận với độ liên quan của nó với văn bản đó
Đại lượng tần suất xuất hiện này của từ khóa ki
được gọi là tf(i)
9
Trang 11 Xét trên pham vi toàn bộ thư viện C: từ khóa k xuất
hiện trong càng nhiều văn bản thuộc C thì độ liên quan của nó đến D phải càng nhỏ hay R(k) tỉ lệ nghịch với
số văn bản trong C có chứa từ khóa k
Tham số idf(i) được tính như sau:
idf(i) = log(N/ni) (2)
* N là số văn bản có trong C
* ni là số văn bản trong C có chứa ki
* idf(i) sẽ tăng khi ni giảm nghĩa là có ít văn bản
trong C chứa ki
Trang 12 Từ (1) và (2) R(ki) = tf(i) * idf(i) (3)
Từ (1) và (3) công thức ước lượng độ liên quan của truy vấn q với một văn bản D thuộc C như
sau:
R(q) = Σ (tf(i) * idf(i)) (4)
Sắp xếp các văn bản thuộc C theo thứ tự giảm dần của đại lượng R(q)
Nếu đặt một ngưỡng dưới đối với giá trị R(q) thì
ta sẽ lọc ra được một danh sách các tài liệu kết quả
có độ liên quan với q giảm dần
11
Trang 13III GIẢI PHÁP XÂY DỰNG ỨNG DỤNG
1 Khái quát ý tưởng
Ứng dụng thực hiện được 3 chức năng lớn sau:
Cho phép người dùng tại các điểm nút khi tham
gia vào mạng có thể tiến hành chia sẻ và dừng
chia sẻ các tài liệu nằm trên máy của mình
Cho phép người dùng có thể đưa ra những truy
vấn để tìm kiếm theo nội dung các tài liệu hiện đang được chia sẻ trên phạm vi toàn mạng
Cho phép người dùng tải về các tài liệu được
chia sẻ nằm trên một điểm nút khác
Trang 14Hình 3: Luồng thông điệp giữa các thành phần trong mạng
13
Trang 15 Trong khuôn khổ một ứng dụng chia sẻ file ngang hàng, có ba sự kiện xảy ra ở phía các điểm nút đòi hỏi phải tiến hành cập nhật hệ thống chỉ mục là:
* Chia sẻ một tài liệu
* Dừng chia sẻ một tài liệu
* Đăng xuất khỏi hệ thống
Người dùng trên một điểm nút tiến hành cập nhật lại file tài liệu mà nội dung của nó đã có sự thay
đổi tính từ lần chia sẻ đầu tiên hoặc từ lần cập nhật cuối cùng
Máy chủ tìm kiếm sẽ tiến hành cập nhật chỉ mục
Trang 16Hình 4: Hoạt động của cơ chế cập nhật chỉ mục
và tìm kiếm dựa trên chỉ mục.
15
Trang 17 Các trường thông tin liên quan đến việc tìm kiếm
nội dung của tài liệu:
* name
* content
Trang 183 Đánh giá giải pháp
* Giúp phân chia công việc cập nhật chỉ mục cho cả
hai phía – các điểm nút và máy chủ tìm kiếm – nhằm bảo đảm khai thác tốt hơn tài nguyên của mạng
* Theo dõi sự tồn tại của các tài liệu chia sẻ trên mạng
Nhược điểm: Nguy cơ quá tải với máy chủ tìm kiếm
Trang 19IV CÀI ĐẶT CHƯƠNG TRÌNH
1 Mô tả về thư viện mã nguồn mở Lucene
a Khái quát về Lucene
Hình 5: Nhiệm vụ, chức năng của thư viện Lucene [8].
Trang 20 Nhiệm vụ của Lucene:
* Tạo chỉ mục cho các tài liệu để xây dựng nên hệ
thống chỉ mục
* Tiếp nhận các xâu truy vấn của người dùng, thực hiện
tìm kiếm dựa trên hệ thống chỉ mục đã có và trả về
Trang 21c Xây dựng và khai thác chỉ mục trong Lucene
a Khối chức năng cơ bản
Bộ phận triển khai phía máy chủ tìm kiếm bao
Trang 22b Khối giao diện người dùng
Cửa sổ giao diện chính của chương trình (Lớp
MainWindow)
Hình 6: Cửa sổ giao diện chính của chương trình 21
Trang 23Hình 7: Hộp thoại chọn tài liệu chia sẻ
Trang 24 Cửa sổ tìm kiếm (Lớp SearchWindow)
Hình 8: Cửa sổ giao diện tìm kiếm
23
Trang 25b Khối giao tiếp ngang hàng
Trang 26V KẾT LUẬN VÀ CÁC HƯỚNG PHÁT TRIỂN
Kết luận
Trình bày tổng quan về mạng chia sẻ file ngang hàng
Một số phương pháp, kỹ thuật tạo chỉ mục và tìm kiếm dựa trên chỉ mục cũng đã được giới thiệu nhằm mục tiêu
áp dụng chúng để xây dựng một ứng dụng chia sẻ file
ngang hàng có khả năng tìm kiếm theo nội dung
Giải pháp để xây dựng một ứng dụng như vậy đã được đề xuất dựa trên cơ chế cộng tác trong việc quản lý, cập nhật
hệ thống chỉ mục giữa máy chủ tìm kiếm và các điểm
nút
Trang 27Các hướng phát triển:
Đưa vào các kiến thức trong lĩnh vực xử lý ngôn ngữ tự nhiên và sử dụng các phương pháp xếp hạng kết quả tìm kiếm tiên tiến nhất nhằm làm tăng chất lượng tìm kiếm, bám sát hơn nữa yêu cầu của người dùng
Tiến hành cài đặt bổ sung một số thư viện để hỗ trợ cho chương trình thử nghiệm ban đầu có thể phân tích thêm nhiều định dạng văn bản (doc, pdf, …), từ đó mở rộng
khả năng tìm kiếm trên nhiều loại văn bản khác nhau
Cải tiến theo hướng tổ chức trong mạng không chỉ có
một mà nhiều máy chủ tìm kiếm được kết nối với nhau
và trao đổi thông tin chỉ mục cũng như hỗ trợ nhau trong việc đáp ứng các truy vấn Giúp tăng khả năng mở rộng
Trang 28TÀI LIỆU THAM KHẢO
[1] Napster Home Page http://www.napster.com/
[2] Gnutella Development Home Page http://gnutella.wego.com/
[3] Freenet Home Page http://freenet.sourceforge.com/
[4] ICQ Home Page http://www.icq.com/
[5] SETI@ Home Page http://setiathome.ssl.berkely.edu/
[6] Lucene Home Page http://lucene.apache.org/
[7] Beverly Yang and Hector Garcia-Molina, “Comparing Hybrid Peer-to-
Peer Systems” Stanford University, USA
[8] Erik Hatcher and Otis Gospodnetic, “Lucene in Action”, Manning
Publications Co, 2005
[9] F.Cuenca-Acuna and T.Nguyen, “Text-based content search and
retrieval in ad hoc p2p communities”, Technical Report DCS-TR-483,
Rutgers University, 2002
27
Trang 29[10] J Heaps Information Retrieval – Computational and Theoretical
Aspects Academic Press, 1978
[11] Juan Ramos, “Using TF-IDF to Determine Word Relevance in Document
Queries ”, Department of Computer Science – Rutgers University, 2003
[12] Kian Pokorny, “Peer to Peer Networking and Filesharing”, CSI 490 Senior
Semina, 2004
[13] Ramesh Subramanian and Brian D Goodman, “Peer to Peer Computing: The
Evolution of a Disruptive Technology”, Idea Group, 2005
[14] R.A Baeza-Yates and B.A Ribeiro-Neto, “Modern Information
Retrieval.” ACM Press Series / Addision Wesley, New York, 1999
[15] Songmei Han, Bijit Hore, Ilya Issenin, Sean McCarthy and Shannon Tauro,
“HollyShare: Peer-to-Peer File Sharing Application”, Final Report,
2001
[16] Stephanos Androutsellis-Theotokis and Diomidis Spinellis, A Survey of
Peer-to-Peer Content Distribution Technologies, ACM Computing
Surveys, December 2004
[17] V.Kalogeraki, D.Gunopulos and D Zeinalipour-Yazti, “A local search
mechanism for peer-to-peer network”, In Proc Of the 11th International
Conference on Information Knowledge Managament, 2002
Trang 30Em xin chân thành cảm ơn!
29