Với sự phát triển nhanh chóng của Internet, đặc biệt là world wide web, giúp cho người dùng chia sẻ các thông tin với nhau dễ dàng hơn. Ngày trước để tìm kiếm một thứ gì đó thì mọi người phải vào thư viện và tìm kiếm rất lâu mới ra được nội dung cần tìm. Ngày nay, chỉ cần một cú click chuột thì mọi thứ thông tin của tất cả mọi nơi trên thế giới đều có hết. Vì thế, có thể nói, thông tin trong thế giới world wide web là rất phong phú và đa dạng. Chính sự phát triển mạnh mẽ và đa dạng này đã gây khó khăn cho người dùng trong việc tìm kiếm thông tin liên quan đến lĩnh vực cần tìm. Để đáp ứng được nhu cầu thì cần phải có một công cụ trợ giúp người dùng trong quá trình tìm kiếm và đó chính là bộ máy tìm kiếm.
1 TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN XÂY DỰNG BỘ MÁY TIẾNG VIỆT DỰA TRÊN MÃ NGUỒN MỞ LUCENE Người hướng dẫn: Ts Nguyễn Thanh Hiên Ths Nguyễn Hồng Vũ Người thực hiện: NGUYỄN KHÁNH PHƯƠNG - 51103110 VÕ VĂN TRUNG - 51103156 Lớp : 11050302 Khố : 15 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2014 TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN XÂY DỰNG BỘ MÁY TIẾNG VIỆT DỰA TRÊN MÃ NGUỒN MỞ LUCENE Người hướng dẫn: Ts Nguyễn Thanh Hiên Ths Nguyễn Hồng Vũ Người thực hiện: NGUYỄN KHÁNH PHƯƠNG - 51103110 VÕ VĂN TRUNG - 51103156 Lớp : 11050302 Khố : 15 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2014 LỜI CẢM ƠN Trước tiên chúng em xin gửi lời cảm ơn chân thành tới thầy cô giáo khoa Công nghệ thông tin - Trường đại học Tơn Đức Thắng tận tình giúp đỡ giảng dạy cho chúng em học kì Đặc biệt, chúng em xin gửi lời cảm ơn chân thành tới thầy TS Nguyễn Thanh Hiên Nguyễn Hồng Vũ tận tình hướng dẫn, giúp đỡ chúng em hoàn thành đề tài nghiên cứu khoa học Trong thời gian vừa qua chúng em cố gắng nhiều để hoàn thành tốt đề tài nghiên cứu khoa học Song chắn kết nghiên cứu khơng tránh khỏi thiếu sót, kính mong nhận bảo góp ý q thầy Chúng em xin chân thành cám ơn! Ký tên Phương Nguyễn Khánh Phương Trung Võ Văn Trung ĐỒ ÁN ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC TƠN ĐỨC THẮNG Tơi xin cam đoan sản phẩm đồ án riêng hướng dẫn TS Nguyễn Thanh Hiên Nguyễn Hồng Vũ Các nội dung nghiên cứu, kết đề tài trung thực chưa cơng bố hình thức trước Những số liệu bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Ngoài ra, đồ án sử dụng số nhận xét, đánh số liệu tác giả khác, quan tổ chức khác có trích dẫn thích nguồn gốc Nếu phát có gian lận tơi xin hồn tồn chịu trách nhiệm nội dung đờ án Trường đại học Tôn Đức Thắng không liên quan đến vi phạm tác quyền, quyền gây q trình thực (nếu có) TP Hồ Chí Minh, ngày 30 tháng 12 năm 2014 Tác giả (ký tên ghi rõ họ tên) Nguyễn Khánh Phương Võ Văn TrungPHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN Phần xác nhận GV hướng dẫn _ Tp Hồ Chí Minh, ngày tháng 05 năm 2014 (kí ghi họ tên) Phần đánh giá GV chấm _ Tp Hồ Chí Minh, ngày 30 tháng 12 năm 2014 (kí ghi họ tên) TĨM TẮT Với phát triển nhanh chóng Internet, đặc biệt world wide web, giúp cho người dùng chia sẻ thông tin với dễ dàng Ngày trước để tìm kiếm thứ người phải vào thư viện tìm kiếm lâu nội dung cần tìm Ngày nay, cần cú click chuột thứ thơng tin tất nơi giới có hết Vì thế, nói, thơng tin giới world wide web phong phú đa dạng Chính phát triển mạnh mẽ đa dạng gây khó khăn cho người dùng việc tìm kiếm thơng tin liên quan đến lĩnh vực cần tìm Để đáp ứng nhu cầu cần phải có cơng cụ trợ giúp người dùng q trình tìm kiếm máy tìm kiếm (search engine) Hiện nay, máy tìm kiếm phát triển nhằm hỗ trợ người dùng trình tìm kiếm thơng tin Google, Yahoo, Các máy tìm kiếm hỗ trợ đắc lực việc tìm kiếm thơng tin người dùng quan tâm kết có độ xác độ bao phủ cao Tuy nhiên, hỗ trợ tốt cho ngôn ngữ mà khoảng trống dấu hiệu để nhận dạng từ (Tiếng Việt ngôn ngữ mà khoảng trống dấu hiệu để nhận dạng từ) Chính điều làm ảnh hưởng lớn đến độ xác độ bao phủ tài liệu liên quan Mặc dù, máy tìm kiếm hỗ trợ cho Tiếng Việt việc tìm kiếm thơng tin, cịn nhiều thách thức kết trả chứa nhiều tài liệu mà người dung khơng quan tâm Do đó, người dùng phải tốn nhiều thời gian q trình chọn lọc thơng tin liên quan Các máy tìm kiếm hỗ trợ tiếng Việt Google, Yahoo mã nguồn khơng cơng bố Do vậy, tổ chức muốn sử dụng chức tìm kiếm phục vụ cho mục đích riêng phải tự xây dựng phát triển từ đầu Trong đồ án chúng em giới thiệu nghiên cứu mã nguồn mở Lucene cách thức ứng dụng hệ thống tìm kiếm Lucene dự án mã nguồn mở cung cấp quản lý tổ chức Apache Software Foundation, công cụ lập mục cho văn bản, sử dụng hệ thống tìm kiếm Lucene 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 Do đó, chúng em đề xuất mơ hình ứng dụng Lucene để phát triển hệ thống tìm kiếm văn lưu trữ word, excel, powerpoint Trong mơ hình này, mã nguồn Lucene xây dựng dựa ngôn ngữ tiếng Việt Đầu tiên, chúng em tiến hành tách nội dung loại văn bản, sau thực số xử lý cho tiếng Việt lập mục cho văn bản, cuối chúng em dùng Luke tìm tới tập mục để truy vấn lấy tài liệu liên quan Mục lục DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT CÁC CHỮ VIẾT TẮT API IR SQL PDF HTML TF IDF Application Programming Interface Information Retrieval Structured Query Language Portable Document Format HyperText Markup Language Term Frequency Inverse Document Frequency 10 DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ DANH MỤC HÌNH DANH MỤC BẢNG Bảng 1.1 : Bảng hướng dẫn nhanh cách sử dụng search engine phổ biến giới……………………………………………………………………… CHƯƠNG 1: TỞNG QUAN VỀ BỢ MÁY TÌM KIẾM 1.1 Lịch sử vai trị máy tìm kiếm Với phát triển nhanh chóng Internet, đặc biệt world wide web, giúp cho người dùng chia sẻ thông tin với dễ dàng Ngày trước để tìm kiếm thứ người phải vào thư viện tìm kiếm lâu nội dung cần tìm Ngày nay, cần cú click chuột thứ thơng tin tất nơi giới có hết Vì thế, nói, thơng tin giới world wide web phong phú đa dạng Chính phát triển mạnh mẽ đa dạng gây khó khăn cho người dùng việc tìm kiếm thơng tin liên quan đến lĩnh vực cần tìm Để đáp ứng nhu cầu cần phải có cơng cụ trợ giúp người dùng q trình tìm kiếm máy tìm kiếm 39 tách câu hỏi thành mục từ có nghĩa Thuật tốn tách mục từ thuật tốn dùng lập mục nhằm đảm bảo tương thích tập mục từ câu truy vấn sở liệu mục Ứng dụng dựa vào file nghịch đảo lấy danh sách tài liệu tương ứng với mục từ Một lần lọc lại danh sách tuỳ theo phép toán chọn Sắp xếp kết thu trả cho người dùng Có nhiều cách đo lường khác cho việc đánh giá mức độ xử lý trả kết hệ thống tìm kiếm thơng tin Các cách đo lường đòi hỏi tập tài liệu câu truy vấn tập tài liệu đó, giả sử tài liệu liên quan không liên quan đến câu truy vấn [4] Độ xác (Precision): đo tỉ lệ tài liệu trả xác tổng tài liệu nhận Độ xác = Độ bao phủ (Recall): đo tỉ lệ tài liệu trả xác tổng tài liệu có liên quan Độ bao phủ = Kết sai (Fall-out): đo tỉ lệ tài liệu khơng có liên quan tả tổng tài liệu không liên quan Kết sai = Ví dụ tập 1000 tài liệu sử dụng cho tìm kiếm với 200 tài liệu liên quan đến thông tin “tin học”, hệ thống tìm kiếm thơng tin “tin học” trả 150 tài liệu, có 130 tài liệu xác Khi đó: 40 Độ xác = =~87% Độ bao phủ = =~65% Kết sai = =~ 5% Các mơ hình tìm kiếm thơng tin thường sử dụng: - Mơ hình so khớp (Boolean retrieval model): mơ hình mà xem câu truy vấn biểu thức logic mục từ, gồm mục từ kết hợp với toán tử logic (AND, OR, NOT) Mơ hình xem tài liệu tập hợp mục từ Mỗi mục từ chứa danh sách tài liệu có chứa nó, danh sách gọi posting, việc so khớp duyệt qua danh sách posting để kiểm tra tài liệu có chứa mục từ hay khơng - Phương pháp tính điểm: Mơ hình so khớp trả giá trị chân lý có khơng có tài liệu tìm kiếm, kết trả khơng có thứ hạng Điều dẫn đến kết tìm kiếm khơng mong muốn người dùng Để cải tiến mô hình này, người ta áp dụng cách tính điểm cho kết trả về, dựa trọng số mục từ tài liệu Score (q, d) = tf (t,d) * [fdt( t,d)]2 * fieldNorm (4.1) 41 Công thức 4.1 với : tf (t,d): tần số xuất mục từ t tài liệu d fdt (t,d): tần số nghịch đảo từ t tài liệu d fileNorm: yếu tố sử dụng để làm cho trọng số truy vấn tương đương, nghịch đảo bậc từ có tài liệu d Ví dụ với tài liệu có tài liệu chứa mục từ “phương” tài liệu d có lần xuất mục từ “phương” tài liệu d có tất từ, điểm số câu truy vấn q = phương tài liệu d là: Score (q, d) = tf (t,d) * [fdt( t,d)]2 * fieldNorm = * (1+log() )2 * = 1.4142 * * 0.5 = 0.7071 Mơ hình khơng gian vec-tơ (The vector space model): Mơ hình so khớp phương pháp tính điểm số chưa xét vai trò mục từ câu truy vấn Ví dụ hai tài liệu chứa câu “Mary is quicker than John” “John is quicker than Mary”, số lượng mục từ vai trị khác hồn tồn Để giải vấn đề người ta đưa mơ hình khơng gian vec-tơ, mơ hình biểu diễn tài liệu vec-tơ tần suất mục từ Ví dụ với hai tài liệu có mục từ giống nhau, biểu diễn vec-tơ chúng lại khác nhau, tính mức tương quan hai tài liệu 4.2 Các lớp thực Searching Lucene: Giao diện tìm kiểm cở mà Lucene cung cấp dễ hiểu việc đánh mục (indexing) Chúng ta cần quan tâm đến lớp sau: − IndexSearcher − Term 42 − Query − TermQuery − Hits • IndexSearcher IndexSearcher để thực việc tìm kiếm mà IndexWriter đánh mục (indexing) IndexSearcher class mà mở file index trạng thái đọc Nó cung cấp số phương thức để tìm kiếm Nó cần nhận đối tượng thuộc lớp Query sau trả cho ta đối tượng Hits đối tượng chứa tập Document tìm thấy • Term Một Term đơn vị q trình tìm kiếm (Searching) Tương tự Field, chứa phần: phần tên field, phần lại giá trị Field, ý đối tượng Term có sử dụng trình đánh mục (indexing) Trong trình tìm kiếm bạn tạo đối tượng Term sử dụng chúng với TermQuery • Query Query lớp Abstract, ta dùng toán tử New để tạo đối tượng Query Để tạo đối tượng thuộc lớp Query, phải sử dụng lớp Sau danh sách lớp lớp Query: BooleanQuery TermQuery PrefixQuery WildcardQuery FuzzyQuery Chúng ta tìm hiểu chi tiết lớp sau Bây tìm hiểu lớp TermQuery trước, đơn giản 43 • TermQuery TermQuery lớp lớp Query Nó cịn loại Query ngun thủy Nó sử dụng để tìm document chứa field với giá trị xác định Một cách sơ đẳng để tìm kiếm Index dựa vào Term • Hits Hits class đóng vai trị thùng chứa, chứa Document tìm thấy Vì lý hiệu suất Hits khơng load từ Index tồn Document tìm thấy, mà load phần nhỏ thời điểm 4.3 Sử dụng Luke tìm kiếm: Luke (Lucene Index Toolbox)- Một chương trình giao diện desktop với tiện ích hay Andrzej Bialecki tạo Luke, download địa http: //www.getopt.org/luke/ Luke trực quan người sử dụng cho index browser Luke dần trở thành công cụ chuẩn cho phát triển Lucene, giúp user sử dụng browsing thử nghiệm nhanh 44 Hình 4.3.1: Giao diện Luke Để sử dụng Luke trước hết phải tạo file Index cách dùng Lucene Sau mở file luke.jar download hình 4.3.1 Bấm nút Browse trỏ tới folder chứa file index ta giao diện hình 4.3.2 45 Hình 4.3.2: Giao diện mở thành cơng Luke Có tab trực quan Luke : Overview, Documents, Search, File, Plugins Các chức phân chia rõ ràng tường minh cho người dùng dễ dàng sử dụng Ví dụ tab Overview sử dụng cần điều chỉnh lại đường dẫn file index file chọn để thực index Khi Search lựa chọn OR AND kết mong muốn 46 CHƯƠNG 5: KẾT QUẢ ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết quả thực nghiệm: Hình 5.1.1: Dữ liệu file cần index Ở có file gồm file doc, file ppt file xls Trong file 1.doc ghi nội dung là: khánh phương khánh phương Trong file 2.ppt ghi nội dung là: văn trung văn trung Trong file 3.xls ghi nội dung là: khánh phương, văn trung 47 Hình 5.1 2: Giao diện chạy file Index thành cơng Hình 5.1.3: Các file Index lưu trữ lại 48 Hình 5.1.4: Giao diện chay file Luke thành cơng Hình 5.1.5 Giao diện tìm thành cơng từ Luke 49 Hình 5.1.6 Giao diện chọn QueryParser AND Hình 5.1.7 Giao diện chọn QueryParser OR 50 5.2 Đánh giá hướng phát triển: • Ưu điểm: − Đồ án trình bày sở lý thuyết nguyên lý vận hành hệ thống search engine − Tìm hiểu vấn đề đặc trưng hệ thống search engine Tiếng Việt − Tìm hiểu hoạt động, thống kê số đặc trưng cách sử dụng số search engine thông dụng giới Việt Nam − Xây dựng máy tìm kiếm Tiếng Việt dựa mã nguồn mở Lucene • Khuyết điểm − Chỉ tìm kiếm file word, excel, power point • Hướng phát triển: − Mở rộng index file pdf, html, url… − Tăng tính hiệu quả, tăng tốc độ tìm kiếm, tăng tính ổn định tính bảo mật chương trình 51 TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt Đỗ Đạt Đa (2008) Tìm hiểu Lucene Gate trường đại học kĩ thuật công nghệ TPHCM Lương Chi Mai, Hồ Tú Bảo (2007-2009) Nghiên cứu phát triển xử lý tiếng nói văn tiếng Việt Lê Thuý Ngọc Đỗ Mỹ Nhung (2004) Tìm hiểu Search Engine xây dựng ứng dụng minh hoạ cho Search Engine tiếng Việt Tạp chí khoa học công nghệ, đại học Đà Nẵng– SỐ (39) Năm 2010 Huỳnh Thụy Bảo Trân Luận án thạc sĩ khoa học Nghiên cứu số mô hình xây dựng thử nghiệm search engine Tiếng Việt Tài liệu tiếng Anh Christopher D Manning, Prabhakar Raghavan and Hinrich Schutze: “Introduction to Information Retrieval”, Cambridge University Press, 2008 C.J van Rijsbergen , Department of Computing Science University of Glasgow, Information Retrieval Dong Thi Bich Thuy, Ho Bao Quoc, Marie-France Bruandet, Jean-Pierre Chevallet, An approach to Vietnamese Information Retrival Erik Hatcher, Michael McCandless, Otis Gospodnetic: “Lucene in Action”, Apache Jakarta Project Management Committee, 2008 10 Gerard Salton, Michael J.McGill, Introduction to Modern Information Retrieval 11 The Apache Software Foundation: “Apache Lucene.Net Class Library API”, http://lucene.apache.org/lucene.net/docs/ ... VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN XÂY DỰNG BỘ MÁY TIẾNG VIỆT DỰA TRÊN MÃ NGUỒN MỞ LUCENE Người hướng dẫn: Ts Nguyễn Thanh Hiên Ths Nguyễn Hồng Vũ Người... kết tìm kiếm 2.2 Sự phát triển Lucene? Có thể nói bạn biết lợi ích mà Lucene mang lại bạn muốn dùng Lucene vào project khơng sai có nhiều tổ chức tiểng giới sử dụng Lucene Ví dụ cơng ty FedEX- tập... hành phân tích, tìm sở liệu mục trả tài liệu thoả yêu cầu 16 CHƯƠNG 2: TÌM HIỂU VỀ LUCENE 2.1 Lucene gì?[1] Lucene dự án mã nguồn mở thực ngôn ngữ JAVA thành viên dòng họ Apache Jakarta tiếng