Các hệ truy hồi thông tin hiện nay vẫn còn trả về kết quả không như mong muốn của người dùng và hỗ trợ tốt cho tiếng Anh; riêng với tiếng Việt thì các hệ này vẫn còn ít và không được công bố rộng rãi các mã nguồn. Bài báo trình bày cách phát triển hệ một truy hồi thông tin tiếng Việt dựa trên mã nguồn mở Lucene và cách xây dựng công cụ VietAnalyzer hỗ trợ xử lí tiếng Việt.
JOURNAL OF SCIENCE OF HNUE Interdisciplinary Science, 2013, Vol 58, No 1, pp 37-45 This paper is available online at http://stdb.hnue.edu.vn PHÁT TRIỂN HỆ TRUY HỒI THÔNG TIN TIẾNG VIỆT DỰA TRÊN MÃ NGUỒN MỞ Trần Anh Tuấn Đào Thị Thanh Loan Khoa Ngoại ngữ - Tin học, Trường Cao đẳng Sư phạm Đắk Lắk Tóm tắt Hệ truy hồi thơng tin có kết trả gần với câu truy vấn người dùng đưa vào có độ tin cậy cao Tuy nhiên, hệ truy hồi thơng tin cịn trả kết không mong muốn người dùng hỗ trợ tốt cho tiếng Anh; riêng với tiếng Việt hệ cịn khơng cơng bố rộng rãi mã nguồn Bài báo trình bày cách phát triển hệ truy hồi thông tin tiếng Việt dựa mã nguồn mở Lucene cách xây dựng cơng cụ VietAnalyzer hỗ trợ xử lí tiếng Việt Từ khóa: Hệ truy hồi thơng tin tiếng Việt, vnIR, VietAnalyzer Mở đầu 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 Các trang web phân bố hầu hết tất quốc gia, mà hầu hết trang web gần thông tin dạng văn Mỗi tài liệu, thơng tin có ngơn ngữ, văn phong, từ vựng khác phụ thuộc vào nguồn gốc quốc gia, ngơn ngữ, tác giả, 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 tìm kiếm thơng tin liên quan đến lĩnh vực cần tìm người dùng kho thơng tin khổng lồ, phong phú đa dạng cần phải có cơng cụ trợ giúp người dùng q trình tìm kiếm Cơng cụ hỗ trợ 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 q 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 độ Received March 2, 2012 Accepted May 20, 2012 Contact Tran Anh Tuan, e-mail address: tuanta@dlc.edu.vn or Dao Thi Thanh Loan, e-mail address: loandtt@dlc.edu.vn 37 Trần Tuấn Anh Đào Thị Thanh Loan bao phủ cao Tuy nhiên, máy 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ừ [1] 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, nhiều thách thức kết trả chứa nhiều tài liệu mà người dùng 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 Hơn nữa, mã nguồn máy tìm kiếm Google, Yahoo, không công bố Cũng máy tìm kiếm Google, Yahoo mã nguồn máy tìm kiếm hỗ trợ cho tiếng Việt 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 máy tìm kiếm từ đầu Để xây dựng hồn thiện máy tìm kiếm nhiều cơng sức tài Một giải pháp phù hợp sử dụng mã nguồn mở máy tìm kiếm (hoặc hệ truy hồi thơng tin - Information Retrieval) công bố Hệ truy hồi thơng tin khác với máy tìm kiếm khơng có dị tìm (web crawler) [5] Xây dựng máy tìm kiếm/hệ truy hồi thơng tin có nhiều nhóm nghiên cứu Cơng trình nhóm tác giả Đỗ Phúc cộng [2] máy tìm kiếm tiếng Việt, hỗ trợ tìm kiếm thơng tin thuộc lĩnh vực cơng nghệ thơng tin Máy tìm kiếm có hỗ trợ tìm kiếm thêm từ cụm từ gần nghĩa với câu truy vấn ban đầu dựa vào ontology thuộc lĩnh vực tin học Trong cơng trình mình, nhóm tác sử dụng Oracle text để đánh mục, ưu điểm máy Tuy nhiên, trình tạo kho ngữ liệu (corpus) phục vụ cho việc đánh mục, nhóm tác giả không loại bỏ từ danh sách stopword tiếng Việt, điều dẫn đến kho ngữ liệu đánh mục có nội dung lớn Cơng trình nhóm tác giả Huỳnh Đức Việt cộng [4] hệ thống tìm kiếm cơng văn tiếng Việt phát triển dựa mã nguồn mở Lucene Hệ tìm kiếm hỗ trợ hai ứng dụng là: ứng dụng thứ cho phép người quản trị tạo cập nhật mục máy chủ; ứng dụng thứ hai cho phép người dung tìm kiếm mơi trường LAN mơi trường Internet Hệ thống tìm kiếm cơng văn tiếng Việt hỗ trợ chức xử lí tiếng Việt giai đoạn đánh mục loại bỏ từ loại bỏ tiếng Việt, chuẩn hóa, mà khơng đề cập đến việc xử lí tiếng Việt tách câu, tách từ tiếng Việt việc đánh mục tìm kiếm Máy tìm kiếm VSearch tác giả Nhữ Đình Thuần [3] máy hỗ trợ tiếng Việt Máy sử dụng VietSpider, VSearch Crawler sàng lọc, bóc tách nội dung trang web VietSpider, VSearch Crawler điểm mạnh VSearch nên máy không cần nhiều đến kĩ thuật xếp hạng (pagerank) phức tạp Máy Vsearch sử dụng mã nguồn mở Solr máy tìm kiếm thương mại nên mã nguồn khơng cơng bố Cơng trình Sarsarn Look NECTEC [5,7] máy tìm kiếm hỗ trợ tiếng Thái Máy sử dụng mã nguồn mở Lucene phát triển Để hỗ trợ cho tiếng Thái, NECTEC xây dựng công cụ ThaiAnalyzer hỗ trợ tiền xử lí tiếng Thái Máy phát triển với nhiều phiên khác nhau, với phiên máy bổ sung thêm thành phần tìm kiếm ngữ nghĩa dựa ontology, truy vấn xuyên ngữ Thái-Anh, 38 Phát triển hệ truy hồi thông tin tiếng Việt dựa mã nguồn mở 2.1 Nội dung nghiên cứu Sơ đồ hoạt động hệ truy hồi thông tin tiếng Việt Để xây dựng hệ truy vấn thông tin tiếng Việt, chúng tơi đề xuất mơ Hình hệ thống tạm gọi vnIR Hình Mơ hình hệ truy hồi thơng tin tiếng Việt - vnIR Mơ hình thực theo giai đoạn sau: Giai đoạn 1: Đánh mục (Indexing) Ở giai đoạn này, tập tài liệu công cụ VietAnalyzer chuẩn hóa thành tập tài liệu chuẩn tiếng Việt (tập tài liệu chuẩn gồm câu dạng mã Unicode không chứa stopword tiếng Việt); tài liệu chuẩn tiếng Việt đầu vào giai đoạn đánh mục (indexing) Các tài liệu chuẩn tiếng Việt thực thuật toán chuẩn tập tin tiếng Việt Giai đoạn 2: Tìm kiếm trả kết (Searching) Dựa câu truy vấn người dùng đưa vào, công cụ VietAnalyzer thực tách từ chuyển sang dạng kí số Tiếp theo, thực tìm kiếm tài liệu liên quan đến câu truy vấn người dùng dạng kí số Câu truy vấn chuyển sang dạng kí số thực thuật tốn Chuyển câu tiếng Việt sang dạng kí số Kết giai đoạn tập tài liệu KQ vnIR đánh giá ứng với câu truy vấn 2.2 Phân tách câu từ tiếng Việt Phân tách câu: Phân tách câu dựa vào dấu báo hiệu kết thúc câu (dấu hỏi, chấm than, ) dấu chấm câu Tuy nhiên, tính nhập nhằng dấu báo hiệu kết thúc câu nên việc phân tách câu gây khơng khó khăn [1] Hiện nay, cơng trình phân tách câu sử dụng phương pháp: TBL, Maxium Entropy, 39 Trần Tuấn Anh Đào Thị Thanh Loan Đối với tiếng Việt, cơng trình phân tách câu cơng bố nhóm tác giả Nguyễn Cẩm Tú, Phân tách từ: Tiếng Việt ngôn ngữ mà khoảng trống dấu hiệu để nhận dạng từ mà mang ý nghĩa phân tách âm tiết với [1] Ví dụ : từ “đất nước” tạo từ âm tiết “đất” “nước”, âm tiết có nghĩa riêng đứng độc lập, ghép lại mang nghĩa khác Chính thế, phân tách từ tiếng Việt giai đoạn ảnh hưởng lớn đến kết toán xử lí ngơn ngữ tự nhiên khác phân loại văn bản, tóm tắt văn bản, Do vậy, tốn có nhiều nhóm nghiên cứu, cơng bố kết có độ xác ngày cao cơng trình nhóm tác giả Phan Thị Tươi, nhóm tác giả Đinh Điền, nhóm tác giả Nguyễn Cẩm Tú, Trong báo này, sử dụng cơng cụ JvnTextPro nhóm tác giả Nguyễn Cẩm Tú [9] để thực phân tách câu từ cơng cụ có hỗ trợ mã nguồn mở 2.3 Xây dựng cơng cụ hỗ trợ tiền xử lí Hệ truy hồi thơng tin có nhiệm vụ sau: mơ hình biểu diễn văn bản, thuật tốn tìm kiếm so trùng từ khóa chế lọc kết truy vấn [6,8] Lucene [10] mã nguồn mở có đầy đủ chức hệ truy hồi thông tin Do vậy, chúng tơi kế thừa tồn chức cấu trúc Lucene Tuy nhiên, Lucene khơng hỗ trợ cho tiếng Việt Do đó, cần phải có cơng cụ hỗ trợ tiền xử lí tiếng Việt, công cụ xây dựng tạm gọi VietAnalyzer Công cụ VietAnalyzer gồm chức sau: - Chức 1: Chuẩn hóa tập tin sang dạng mã Unicode - Chức 2: Phân tách tài liệu thành tập câu - Chức 3: Phân tách câu thành tập từ - Chức 4: Loại bỏ từ danh sách stopword tiếng Việt - Chức 5: Chuyển câu tiếng Việt sang câu dạng kí số - Chức 6: Chuyển câu dạng kí số sang câu tiếng Việt Các thuật tốn hỗ trợ cơng cụ VietAnalyzer gồm VnFNF, VnS2DS, DS2VnS Các thuật tốn trình bày chi tiết sau: Thuật toán VnFNF hỗ trợ chức 1, 2, cơng cụ VietAnalyzer Kết thuật tốn tập tập tin chuẩn (tập tin chuẩn gồm câu dạng mã Unicode không chứa stopword tiếng Việt) Thuật toán 1: Chuẩn tập tin tiếng Việt (Vietnamese File Normal Formalize - VnFNF) Nhập: Tập tài liệu D = {di }, i = n Xuất: Tập tài liệu D ′ = {d′i }, i = n gồm tài liệu chuẩn tiếng Việt 40 Phát triển hệ truy hồi thông tin tiếng Việt dựa mã nguồn mở Phương pháp: Với tài liệu di thuộc D, i = n Chuẩn hóa di ; Phân tách di thành tập câu {Sj }, j = m Với câu Sj thuộc di Sj′ ⇐ V nS2DS(Sj ); Lưu Sj′ vào d′i Quay lại Quay lại Return D ′ ; Thuật toán VnS2DS hỗ trợ việc chuẩn tập tin tiếng Việt Kết thuật tốn câu tiếng Việt dạng kí số Thuật tốn 2: Chuyển câu tiếng Việt sang dạng kí số (Vietnamese Sentence to Digital String - VnS2DS) Nhập: s câu tiếng Việt Xuất: s′ câu chuyển từ tiếng Việt sang dạng kí số Phương pháp: Phân tách s thành tập từ {wj }, j = m s′ ← φ; Với từ wj thực hiện: Nếu wj stopword loại bỏ; Ngược lại: chuyển wj sang dạng kí số lưu vào wj′ ; s′ ← s′ + wj′ ; Quay lại Trả s′ ; Thuật toán DS2VnS hỗ trợ chức cơng cụ VietAnalyzer Kết thuật tốn câu dạng tiếng Việt Thuật toán 3: Chuyển câu dạng kí số sang tiếng Việt (Digital String to Vietnamese Sentence - DS2VnS) Nhập: s′ câu dạng kí số Xuất: s′′ câu chuyển từ dạng kí số sang tiếng Việt Phương pháp: AA ← {b, c, f, , x, w, z}; //tập kí tự khơng dấu s′′ ← φ; i = 1; Loại bỏ dấu gạch s′ ; Trong i nhỏ chiều dài s′ : Nếu kí tự ci khơng thuộc AA khác rỗng thì: Sao chép kí tự từ vị trí thứ i lưu vào t; 41 Trần Tuấn Anh Đào Thị Thanh Loan Chuyển t sang tiếng Việt lưu vào t ; s′′ ← s′′ + t ; i+ = 3; Ngược lại: s′′ ← s′′ + ci ; i + +; 10 Quay lại 4; 11 Trả s′′ ; Trong đó: - Stopword tiếng Việt: á, à, ạ, à, a ha, a lô, ơi, - Mã quy ước chuyển từ tiếng Việt sang kí số: = a03; = a05, ả = a07, ã = a09, = a11, ă = a13, Với cách biểu diễn kí tự đặc biệt dung lượng tập tin sau mã hóa giảm nửa so với cách biểu diễn hệ Hexa kí tự Lucene biểu diễn cho ngơn ngữ Hy Lạp, Séc, Ví dụ minh họa: Thuật toán VnS2DS: - Cho câu tiếng Việt: nhớ máy tính - Kết phân tách từ gồm: bộ_nhớ; máy_tính; - Các từ dạng kí số: bo23_nho29; ma05y_ti05nh; mo29i - Câu dạng kí số: bo23_nho29 ma05y_ti05nh mo29i Thuật toán DS2VnS: - Câu dạng kí số: bo23_xu19_ly05_trung_ta25m Intel mo29i - Kết câu tiếng Việt: xử lý trung tâm Intel 2.4 Thực nghiệm Kho ngữ liệu: Kí hiệu D3 D4 D5 D6 Bảng 1: Thống kê kho ngữ liệu Nguồn tài liệu Wikipedia tiếng Việt, Thể loại: Máy tính Khoa học công nghệ (Liên hiệp hội khoa học kỹ thuật Tp Hồ Chí Minh), Mục làm bạn với máy vi tính Thơng tin cơng nghệ, Mục máy tính Tin nhanh CNTT - TT (ICT News) - Mục phần cứng Số lượng (tập tin) 92 Dung lượng (MB) 5,8 156 6,63 660 46,0 609 34,2 Hiện nay, tiếng Việt chưa có kho ngữ liệu chuẩn TREC cơng bố Do đó, chúng tơi phải xây dựng kho ngữ liệu thuộc lĩnh vực máy tính Kho liệu lấy từ trang: Wikipedia tiếng Việt, Khoa học công nghệ, Thông tin công nghệ 42 Phát triển hệ truy hồi thông tin tiếng Việt dựa mã nguồn mở Tin nhanh, Công nghệ thông tin - truyền thơng Sau bóc tách chúng từ dạng trang web (.html, htm) sang dạng tập tin văn (.txt) Kho ngữ liệu dùng để đánh mục phục vụ tìm kiếm thống kê theo số lượng dung lượng bảng Kết thực nghiệm: Kí hiệu Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16 Q17 Q18 Q19 Q20 Q21 Q22 Q23 Q24 Q25 Bảng Thống kê độ xác, độ bao phủ vnIR Độ Số tài Tổng số Số tài liệu tìm tài liệu liệu tìm Câu truy vấn xác P liên liên (%) quan quan card đồ họa 1452 2 0,14 nhớ máy tính 1478 18 18 1,22 hình tinh thể lỏng 485 1,44 card mở rộng 367 1,63 hình LCD 491 241 245 49,08 máy tính Dell 1471 3 0,20 máy chủ 46 46 706 100,00 máy tính 1470 1463 1475 99,52 xử lý 1320 124 184 9,39 nhớ 866 543 867 62,70 hình 485 464 998 95,67 CPU AMD 834 10 1,08 HDD box 115 3 2,61 mainboard Gigabyte 722 1 0,14 AMD 380 372 384 97,89 Asus 407 388 413 95,33 Samsung 1280 1277 1281 99,77 chipset 266 256 266 96,24 Intel 956 949 961 99,27 LAN 647 646 1349 99,85 mainboard 694 61 694 8,79 RAM 199 160 460 80,40 SATA 276 257 287 93,12 Seagate 42 40 42 95,24 CRT 12 12 75,00 54,63 Trung bình Độ bao phủ R (%) 100,00 100,00 77,78 85,71 98,37 100,00 6,52 99,19 67,39 62,63 46,49 90,00 100,00 100,00 96,88 93,95 99,69 96,24 98,75 47,89 8,79 34,78 89,55 95,24 75,00 78,83 Mục tiêu đặt báo phát triển hệ thống truy hồi thơng tin tiếng Việt có độ tin cậy Do vậy, giá trị độ xác (precision) độ bao phủ (recall) chọn làm tiêu chí để đánh giá phần thực nghiệm Độ xác độ bao phủ xác định sau [8]: 43 Trần Tuấn Anh Đào Thị Thanh Loan Hình Thống kê độ xác độ bao phủ theo câu truy vấn Độ xác (P) tỉ lệ số lượng tài liệu liên quan tìm so với số tài liệu tìm Độ bao phủ (R) tỉ lệ số lượng tài liệu liên quan tìm so với số tài liệu liên quan có kho ngữ liệu Tập câu truy vấn 25 câu truy vấn chọn từ http://www.pcworld.com.vn/hoidap/phan-cung/để làm thực nghiệm Kết thể Bảng Hình Trong phần thực nghiệm chúng tơi sử dụng 14 câu truy vấn tiếng Anh từ viết tắt để kiểm nghiệm độ tin cậy công cụ VietAnalyzer nên Độ tin cậy công cụ VietAnalyzer kiểm nghiệm thông qua kết thực nghiệm Một khó khăn báo kho ngữ liệu chuẩn cho tiếng Việt chưa có Do đó, độ xác độ bao phủ thực nghiệm có kết khơng cao Sở dĩ kết thực nghiệm số tài liệu liên quan đến thơng tin cần tìm cịn chưa phong phú Điều cho thấy kho ngữ liệu đóng vai trò quan trọng việc đánh giá thực nghiệm Kết luận Bài báo trình bày cách phát triển hệ truy hồi thông tin tiếng Việt sử dụng mã nguồn mở Lucene Để xây dựng hệ truy hồi vnIR cho tiếng Việt, báo sử dụng mã nguồn mở Lucene (trong việc đánh mục tìm kiếm) xây dựng công cụ VietAnalyzer hỗ trợ Lucene việc xử lí tiếng Việt Kết thực nghiệm có độ xác 54,63%, độ bao phủ 78,83% Kết thực nghiệm có độ xác chưa cao kho ngữ liệu ngữ liệu xây dựng kho ngữ liệu tĩnh chủ quan nên số mục tài liệu liên quan cịn ít, chưa phong phú Vì vậy, cơng việc xây dựng kho ngữ liệu lớn phong phú việc đánh giá thực nghiệm chẳng hạn sử 44 Phát triển hệ truy hồi thông tin tiếng Việt dựa mã nguồn mở dụng Internet kho ngữ liệu việc đánh giá thực nghiệm tiếp tục cải tiến thuật tốn nhằm cải thiện độ xác, độ bao phủ cho hệ truy hồi thông tin tiếng Việt vnIR TÀI LIỆU THAM KHẢO [1] Đinh Điền, 2006 Giáo trình Xử lí Ngơn ngữ tự nhiên Nhà xuất Đại học Quốc gia Tp Hồ Chí Minh [2] Đỗ Phúc cộng Phát triển hệ thống Search Engine hỗ trợ cho tìm kiếm thơng tin thuộc lĩnh vực CNTT Trường Đại học Khoa học Tự nhiên Tp Hồ Chí Minh [3] Nhữ Đình Thuần, 2011 Vsearch 1.0 [4] Huỳnh Đức Việt, Võ Duy Thanh Võ Trung Hùng, 2010 Nghiên cứu ứng dụng mã nguồn mở Lucene để xây dựng phần mềm tìm kiếm thơng tin văn Tạp chí Khoa học Cơng nghệ, Đại học Đà Nẵng, Số (39) 2012, trang 307-316 [5] Choochart Haruechaiyasak Information Retrieval and Search Engine Research and Development on Information, National Electronics and Computer Technology Center [6] Christopher D Manning, Prabhakar Raghavan and Hinrich Schăutze, 2008 Introduction to Information Retrieval Cambridge University Press, Chapter 9, pp 177-194 [7] NECTEC, 2010 SanSarn Look Roadmap [8] Ricardo Baeza - Yates, Berthier Ribeiro - Neto, 1999 Modern Information Retrieval ACM Press, New York [9] Nguyen Cam Tu, Phan Xuan Hieu and Nguyen Thu Trang, 2010 JVnTextPro: A tool to process Vietnamese texts version 2.0 [10] Lucene docs, http://lucene.apache.org/core/3 ABSTRACT Vietnamese language information retrieval using open source Information retrieval systems are to provide accurate information in response to users’ queries Currently, information retrieval systems exist which return good results in English but poor result in Vietnamese language Quality systems which function in Vietnamese language are few and little known The paper describes how to develop a Vietnamese language information retrieval system making use of Lucene open source material and how to build a VietAnalyzer tool in order to pre-process Vietnamese documents 45 ... truy vấn xuyên ngữ Thái-Anh, 38 Phát triển hệ truy hồi thông tin tiếng Việt dựa mã nguồn mở 2.1 Nội dung nghiên cứu Sơ đồ hoạt động hệ truy hồi thông tin tiếng Việt Để xây dựng hệ truy vấn thông. .. lấy từ trang: Wikipedia tiếng Việt, Khoa học công nghệ, Thông tin công nghệ 42 Phát triển hệ truy hồi thông tin tiếng Việt dựa mã nguồn mở Tin nhanh, Cơng nghệ thơng tin - truy? ??n thơng Sau bóc tách... 44 Phát triển hệ truy hồi thông tin tiếng Việt dựa mã nguồn mở dụng Internet kho ngữ liệu việc đánh giá thực nghiệm tiếp tục cải tiến thuật toán nhằm cải thiện độ xác, độ bao phủ cho hệ truy hồi