Bài toán thiết kế bảng băm cho từ điển âm tiết tiếng Việt phải giải quyết hai vấn đề có liên quan trong sự đối lập nhau, đó là kích thước bảng băm và khả năng đụng độ. Chúng tôi đưa ra cách giải quyết bài toán này nhằm cả hai mục tiêu là khả năng dụng độ và kích thước bảng băm cùng phải nhỏ. Kết quả thử nghiệm với các điểm tối ưu trên tập Pareto với kích thước bảng băm cỡ 1,11n (n là kích thước từ điển), độ phức tạp thời gian tìm kiếm trên bảng băm là O(1). Mời các bạn tham khảo!
Kỹ thuật điện tử & Khoa học máy tính Kỹ THUậT TốI ƯU ĐA MụC TIÊU THIếT Kế BảNG BĂM Từ ĐIểN CHO KIểM LỗI TIếNG VIệT TRN NGC ANH*, TRƯƠNG QUỐC HÙNG*, PHAN TUẤN ANH*, PHẠM HỒNG SƠN**, NGUYỄN LONG* Tóm tắt: Bài tốn thiết kế bảng băm cho từ điển âm tiết tiếng Việt phải giải hai vấn đề có liên quan đối lập nhau, kích thước bảng băm khả đụng độ Chúng tơi đưa cách giải tốn nhằm hai mục tiêu khả dụng độ kích thước bảng băm phải nhỏ Kết thử nghiệm với điểm tối ưu tập Pareto với kích thước bảng băm cỡ 1,11n (n kích thước từ điển), độ phức tạp thời gian tìm kiếm bảng băm O(1), cho thấy ưu điểm thuật toán đề xuất so với số thuật tốn khác tìm kiếm nhị phân, automat hữu hạn đơn định phân tích dựa cấu trúc âm tiết tiếng Việt Từ khoá: Tối ưu đa mục tiêu; Tập Pareto; Bảng băm tối ưu ĐẶT VẤN ĐỀ Bài toán kiểm lỗi âm tiết tiếng Việt toán xử lý ngôn ngữ tự nhiên tiếng Việt[3][4] Hiện nay, có nhiều phương pháp tiếp cận khác như: Tìm kiếm nhị phân dựa theo từ điển xếp[3][4]; Dùng từ điển hàm băm dạng Soundex, Editex, Phontex hỗ trợ sửa lỗi[4]; Dùng mảng cấu trúc âm tiết tiếng Việt[3][4]; Dùng từ điển ký tự: B-Tree hay hậu tố Suffix-Tree[4]; Dùng Automat hữu hạn đơn định, Automat tối thiểu[4]; Dùng mơ hình thống kê n-grams ký tự[2][4]; Dùng bảng băm từ điển tối ưu[4] Trong đó, dùng bảng băm từ điển tối ưu hướng tiếp cận mới, sử dụng lời giải tối ưu đa mục tiêu cho thiết kế bảng băm Cụ thể: mục tiêu tối thiểu hoá đụng độ, mục tiêu tối thiểu hố kích thước bảng băm[14] Rõ ràng hai mục tiêu mâu thuẫn loại trừ lẫn Trên sở nghiên cứu mã ký tự Việt[4], bảng băm từ điển âm tiết[4], thống kê âm tiết tiếng Việt[1] phương pháp tìm lời giải tối ưu đa mục tiêu[7][10][12], để tìm tham số thiết kế tối ưu cho bảng băm từ điển Với cách tiếp cận đó, báo trình bày tiếp tục theo thứ tự sau: Tách âm tiết tiếng Việt Automat hữu hạn; Xây dựng hàm mục tiêu cho thiết kế bảng băm từ điển âm tiết; Tìm tập Pareto thiết kế bảng băm tối ưu; Thử nghiệm đánh giá; cuối phần kết luận VẤN ĐỀ TÁCH ÂM TIẾT TRONG VĂN BẢN Bước trước thực kiểm tra âm tiết tiếng Việt cần phải tách âm tiết văn Để thực tách âm tiết tiếng Việt, dùng Automat hữu hạn tiền định DFA (Deterministc Finite Automata) mô tả hình DFA có trạng thái q0 q1, trạng thái bắt đầu q0 trạng thái kết thúc Với bảng chữ chấp nhận (tiếng Việt) Ban đầu thẻ từ Token = (rỗng), trạng thái xuất phát q0, DFA đọc ký tự a để chuyển trạng thái Tại trạng thái q1, dãy ký tự đọc vào đưa vào thẻ từ Token Nếu trạng thái trở lại q0 mà thẻ từ Token xuất Token gán lại thẻ từ Token = Cứ vậy, DFA tách toàn âm tiết văn tiếng Việt Bảng chữ chấp nhận (tiếng Việt) gồm: 17 chữ phụ âm (b c d đ g h k l m n p q r s t v x) 12 chữ nguyên âm (a ă â e ê i o ô u y) Mỗi chữ nguyên âm kết hợp với (ngang, huyền, hỏi, ngã, sắc, nặng), nên số chữ nguyên âm có dấu 126 = 72 Do vậy, tổng số ký tự Việt 17+72 = 89 76 T N Anh, … , Long, "Kü tht tèi u ®a mơc tiêu kiểm lỗi tiếng Việt." Nghiên cứu khoa học công nghƯ Hình Automat hữu hạn tiền định (DFA) tách âm tiết Thuật toán minh hoạ DFA tách âm tiết: (* trạng thái bắt đầu q0 *) 1) Token ’’; 2) Repeat a) i 0; b) SizeRealBuffer ReadFile(File, Buffer); c) While (i < SizeRealBuffer) Do c1) If Buffer[i] AlphabetTable Then (* chuyển sang trạng thái q1 *) c1t) Token Token + Buffer[i] Else (* chuyển sang trạng thái q0 *) c1f) If Token ’’ Then (*Kiểm tra thẻ từ Token, ví dụ:*) c1f1) (*If SyllableCheck(Token) Then *) (* -*) c1f2) Token ’’; (*sau xử lý*) c2) i i + 1; Until SizeRealBuffer = 0; (*kết thúc tệp văn bản*) 3) If token ’’ Then (*Kiểm tra thẻ từ Token sau cùng*) (* If SyllableCheck(Token) Then *) XÂY DỰNG CÁC HÀM MỤC TIÊU THIẾT KẾ BẢNG BĂM TỪ ĐIỂN 3.1 Bảng băm hàm băm Bảng băm T (hash table) mảng có kích thước M Hàm băm h ánh xạ từ tập khoá K sang tập số i bảng băm: h: K i, i M-1 Phần tử bảng băm: T[i] (hình 2) Ở đây, tập khố từ điển âm tiết tiếng Việt Mỗi âm tiết (syllable) chuỗi ký tự Việt, ứng với khoá K Ta biết rằng, ký tự Việt tương ứng với mã (Chẳng hạn, sử dụng ký tự Việt theo bảng mã Unicode TCVN 6909:2001) Như vậy, âm tiết w tương ứng với khố K theo cách tính: Kw = m1an-1 + m2an-2 + + mna0, đó, n độ dài chuỗi âm tiết; m1, m2, , mn mã tương ứng ký tự chuỗi âm tiết; a số | | = 89 (là kích thước bảng chữ cái), a chọn khảo sát khoảng từ 89 đến 255 Từ đó, ta có hàm băm tương ứng cho âm tiết w sau: h(w) = (m1an-1 + m2an-2 + + mna0) mod M (1) T¹p chí Nghiên cứu KH&CN Quân sự, Số 30, 04 - 2014 77 Kỹ thuật điện tử & Khoa học máy tÝnh Hình Mơ tả bảng băm hàm băm 3.2 Khả đụng độ Trường hợp w1 w2 h(w1) h(w2): không xảy đụng độ Trường hợp w1 w2 h(w1) = h(w2): xảy đụng độ Trong thực tế thiết kế bảng băm, khơng tính tốn cẩn thận gặp phải nhiều đụng độ, điều làm tăng thời gian tìm kiếm Để ước lượng thời gian tìm kiếm, mô tả cấu trúc bảng băm sau: Giả sử bảng băm T sử dụng phương pháp kết nối trực tiếp hình Hình Mơ tả bảng băm T theo phương pháp kết nối trực tiếp Khi thêm phần tử vào bảng băm mà xảy đụng độ, có nghĩa danh sách kết nối tăng thêm phần tử Như vậy, tính tổng số đụng độ cho toàn bảng băm danh sách liên kết có kích thước lớn Cũng nói cách khác, đụng độ chi phí thời gian tìm kiếm từ khố bảng băm Với bảng băm T phương pháp kết nối trực tiếp (hình 3), ta gọi T[k].count kích thước danh sách liên kết phần tử thứ k bảng băm T, đó, D[k] số khả đụng độ phần tử thứ k bảng băm T, xác định: T [k ].count T [k ].count , (2) D[k ] T [k ].count khả đụng độ cực đại bảng băm T là: (3) Dmax max {D[k ]} , k M 1 tổng khả đụng độ toàn bảng băm T là: M 1 Ddic D[k ] (4) k 0 Xét văn huấn luyện thực tế, từ wi danh sách đụng độ D[k] xếp tần suất xuất fw[i] giảm dần, tương ứng với xác suất xuất pw[i] giảm dần Do vậy, tổng khả đụng độ theo thống kê âm tiết là: M 1 D [ k ] D fre i p w [i ] , (5) k i 1 78 T N Anh, … , Long, "Kỹ thuật tối ưu đa mục tiêu kiểm lỗi tiếng Việt." Nghiên cứu khoa học công nghệ M D[ k ] đó, p w [i ] (tổng toàn xác suất bảng băm) k 0 i 0 3.3 Khơng gian tốn Như vậy, toán thiết kế bảng băm tối ưu với mục tiêu (xung đột[9]) cụ thể: - Tối thiểu hố kích thước bảng băm: fM = M - Tối thiểu hố thời gian tìm kiếm: fD = Ddic (hoặc Dfreq) * Khơng gian định (hình 4a) Qua thống kê từ điển tiếng Việt[11], xác định từ điển có chứa 6950 âm tiết tiếng Việt khác Do vậy, ta có tham số sau: + Từ điển N = 6950 âm tiết + Cơ số a: 89 a 255 (mã ký tự Việt) + Giới hạn bảng băm: ta chọn kích thước bảng băm để khảo sát vùng lân cận so với kích thước từ điển Có thể khảo sát M khoảng: N M 3N(6950 M 20850) * Khơng gian mục tiêu (hình 4b): {(fD, fM)} a a) fM fD b) fM Hình Khơng gian tốn 3.4 Kiểm tra âm tiết tiếng Việt dựa vào bảng băm Với bảng băm T hàm băm h(w), ta có thuật tốn kiểm lỗi tả âm tiết sau: Function SyllableCheck(w: string): Boolean; 1) List T[h(w)]; 2) i 0; 3) Repeat i i + 1; Until (List[i] = w) or (i = List.Count); 4) Return (List[i] = w); Trong thuật toán này, List danh sách chứa âm tiết có địa băm, List.count khả đụng độ theo công thức (2) Do vậy, độ phức tạp thuật tốn O(Dmax) Tốc độ tìm kiếm khơng phụ thuộc Dmax, mà cịn phụ thuộc hệ số tải = N/M bảng băm, thường người ta chọn 0.9, tức kích thước bảng băm thường chọn lớn N/ số phần tử cần lưu trữ (Với từ điển tiếng Việt có N = 6950 âm tiết, ta chọn M Mmin = 6950/0.9 7722) TÌM TẬP PARETO THIẾT KÊ BẢNG BĂM TỐI ƯU Trong toán tối ưu đa mục tiêu, kết cần đạt tập giải pháp xấp xỉ để người định lựa chọn phương án phù hợp, tập xấp xỉ gọi tập tối ưu đa mục tiêu Tập thường lựa chọn theo phương pháp tối ưu Pareto T¹p chí Nghiên cứu KH&CN Quân sự, Số 30, 04 - 2014 79 Kỹ thuật điện tử & Khoa học máy tÝnh Hình Minh hoạ tập Pareto miền mục tiêu (f1, f2) Một tập hợp điểm gọi tập tối ưu Pareto (hình 5) di chuyển từ điểm (ví dụ điểm A) đến điểm khác (điểm B) tập, cải thiện hàm mục tiêu từ giá trị làm giá trị hàm mục tiêu khác so với giá trị tại[9] Theo định nghĩa này, điểm C điểm tối ưu Pareto Điểm C không thuộc Pareto bị trội hai điểm A điểm B Điểm A B hồn tồn khơng bị trội điểm khác, thế, chúng nằm đường cong Pareto Cùng thế, tập Pareto cịn gọi tập điểm khơng bị trội Một phương pháp giải toán tối ưu đa mục tiêu, phương pháp Contraint Theo phương pháp này, mục tiêu tối ưu mục tiêu khác chuyển hoá thành ràng buộc mục tiêu lựa chọn Khi đó, tốn tối ưu k mục tiêu (k ≥ 2) mô tả: f j ( x ) / ( x ) D (6) cho, f j (x ) ≤ với i =1, 2, , k; i j D Rn Trong phương pháp vector xác định sử dụng biên (biên trường hợp cực tiểu) cho tất mục tiêu i Để đưa vector , phương pháp tìm giải pháp tối ưu qua việc tối ưu mục tiêu j Bằng việc thay đổi đạt tập tối ưu Trong thực nghiệm áp dụng phương pháp -Contraint để thiết kế bảng băm tối ưu dựa yếu tố: tối thiểu hoá đụng độ (Ddic min, Dfreq min) tối thiểu hố kích thước nhớ (M min) Vì hai mục tiêu xung đột với nhau, vậy, dạng tốn tối ưu đa mục tiêu [9] Có thể giải cách đơn giản cách tìm tham số tối ưu theo thứ tự: Tìm tập giá trị tối ưu khả đụng độ trước, sau tìm tập giá trị tối ưu kích thước nhớ, tập Pareto [7], [13] cần tìm Trong số trường hợp, kết hợp phương pháp tương tác để định hướng vào vùng kết không gian mục tiêu [12] Phương pháp -Contraint xây dựng theo bước sau: + Bước 1: Với fM → Tìm fD → Kết quả: fM, fD + Bước 2: Sắp xếp fD, fM giảm dần theo fD, đến fM + Bước 3: Với fD giữ lại fM → Tập tối ưu Pareto Trên sở đó, với từ điển âm tiết tiếng Việt xếp theo alphabet (Ddic) hay tần suất (Dfreq), ta có thuật tốn sau: Thuật tốn 1: Tìm tập thiết kế tối ưu cho bảng băm với (Ddic, M) B1) Tìm tập Ddic theo M: For M Mmin To Mmax 1) minDmax DIC.count; 2) minDdic DIC.count; 3) For a amin To amax a) For i To M - 80 T N Anh, … , Long, "Kü thuËt tèi ưu đa mục tiêu kiểm lỗi tiếng Việt." Nghiên cứu khoa häc c«ng nghƯ a1) T[i] ; b) For i To DIC.count – b1) w DIC[i]; b2) T[h(w)] T[h(w)] {w}; c) Dmax 0; d) Ddic 0; e) For i To M – e1) If (T[i].count - > Dmax) Then e1t) Dmax T[i].count - 1; e2) If (T[i].count > 1) Then e2t) Ddic Ddic + T[i].count - 1; f) If (minDdic = Ddic) and (minDmax > Dmax) Then ft1) aopt a; ft2) minDmax Dmax; Else If (minDdic > Ddic) Then ff1) aopt a; ff2) minDmax Dmax; ff3) minDdic Ddic; 4) List[M-Mmin].Mopt M; 5) List[M-Mmin].aopt aopt; 6) List[M-Mmin].Dmax minDmax; 7) List[M-Mmin].Ddic minDdic; B2) Tìm tập M theo Ddic (tìm tập Pareto) 1) Sắp xếp List theo Ddic tăng dần; 2) Mỗi Ddic giữ lại phần tử có Mopt = min; 3) i 0; //Loại bỏ tiếp điểm bị trội 4) While (i < List.Count - 1) a) k i; b) minM = List[k].Mopt; c) For j i + To List.Count - c1) If (List[j].Mopt < minM) Then i) k j; ii) minM List[j].Mopt; d) If (k > i) Then d1) j i; d2) d i; d3) while (d < k) i) List.RemoveAt(j);//Loại bỏ phần tử ii) d d + 1; e) i i + 1; Trong thực tế, có nhiều âm tiết xuất với tần số cao [1], chúng rơi vào địa có khả đụng độ cao ảnh hưởng trực tiếp đến thời gian kiểm lỗi cho tồn văn Chính vậy, cải thiện thời gian thực thông qua việc khảo sát với văn tiếng Việt thực tế, thống kê âm tiết Từ điển freqDIC với âm tiết xếp giảm dần theo tần suất xuất chúng Thuật tốn 2: Tìm tập thiết kế tối ưu cho bảng băm với (Dfreq, M) //Từ điển FreqDIC xếp giảm dần theo tần suất B1) Tìm tập Dfreq theo M: For M Mmin To Mmax 1) minDmax freqDIC.count; 2) minDfreq freqDIC.count; 3) fmax f[0]; (*f[i]: tần suất âm tiết freqDIC[i]*) 4) For a amin To amax T¹p chí Nghiên cứu KH&CN Quân sự, Số 30, 04 - 2014 81 Kỹ thuật điện tử & Khoa học máy tÝnh a) For i To M – a1) T[i] ; b) For i To freqDIC.count – b1) w freqDIC[i]; (* chèn vào cuối T[h(w)] *) b2) T[h(w)] T[h(w)] {w,f[i]/fmax}; c) Dmax 0; d) Dfreq 0; e) For i To M – e1) If T[i].count - > Dmax Then e1t) Dmax T[i].count - 1; e2) If T[i].count > Then e2t) For k = To T[i].count – i) Dfreq Dfreq + k*T[i].Item[k].p; f) If (minDfreq = Dfreq) and (minDmax > Dmax) Then ft1) aopt a; ft2) minDmax Dmax; Else If minDfreq > Dfreq Then ff1) aopt a; ff2) minDmax Dmax; ff3) minDfreq Dfreq; 4) List[M-Mmin].Mopt M; 5) List[M-Mmin].aopt aopt; 6) List[M-Mmin].Dmax minDmax; 7) List[M-Mmin].Dfreq minDfreq; B2) Tìm tập M theo Dfreq: Tương tự B2 thuật toán (Ddic thay Dfreq phần này) Với văn thực tế đủ lớn, đủ bao trùm nhiều lĩnh vực khác tiếng Việt, qua thống kê theo âm tiết để tính tần suất xuất chúng Đối với từ xuất với tần suất cao, rơi vào danh sách đụng độ cao ảnh hưởng đến thời gian tìm kiếm Nếu từ đứng đầu danh sách đụng độ, vấn đề xem giải Do đó, từ điển xếp trước theo tần suất giảm dần thuật tốn tìm kết có ý nghĩa thực tế thuật tốn Với tập kết tìm qua thuật tốn, tập tối ưu Pareto, ta chọn số điểm để thử nghiệm khảo sát đánh giá THỬ NGHIỆM ĐÁNH GIÁ 5.1 Tập tối ưu cho thiết kế bảng băm kiểm tra âm tiết tiếng Việt Các tham số cho thuật toán (mục 4) sau: từ điển 6950 âm tiết; hệ số a: 89 a 255; khoảng khảo sát bảng băm: 6950 M 20850 Các tập tối ưu pareto tìm theo thuật tốn, biểu diễn dạng đồ thị dây a) Tập Pareto (Ddic min,M min) b) Tập Pareto (Dfreq min,M min) Hình Các tập tối ưu Pareto 82 T N Anh, … , Long, "Kỹ thuật tối ưu đa mục tiêu kiểm lỗi tiếng Việt." Nghiên cứu khoa học công nghệ a) Tp cục (Dsummin, Mmin) b) Tập cục (Dfreqmin, Mmin) Hình Các tập tối ưu cục Dmax 5.2 Thử nghiệm đánh giá bảng băm từ điển tối ưu 5.2.1 Lựa chọn thiết kế tối ưu tiêu biểu cho bảng băm Như phân tích, độ phức tạp thuật toán kiểm lỗi âm tiết bảng băm khả đụng độ O(Dmax) Theo hình 7.a 7b {Dmax} = {3 6}, tức O(Dmax) = O(1) Về toàn cục, ta phải lựa chọn Ddic/Dtext M Với kích thước từ điển n = 6950 âm tiết, ta thấy với: n M 3n O(M) = O(n) Các hình 6a 6b minh hoạ tập tối ưu Pareto Chọn điểm tối ưu cho trường hợp, gần lân cận Mmin = N/ 7722 để khảo sát (bảng 1) Bảng Chọn điểm tối ưu tiêu biểu lân cận Mmin Chọn điểm Ddic (hình 6a) Dfreq (hình 6b) Mopt 7713 7735 aopt 239 163 Dmax 4 Dopt 2177 2.528 Thực thử nghiệm kiểm lỗi âm tiết với trường hợp sau: Thử nghiệm TN1: Bảng băm tối ưu: Mopt = 7713, Dopt = 2177 (Dopt = Ddic) Xây dựng bảng băm với từ điển âm tiết xếp theo alphabet Thử nghiệm TN2: Bảng băm tối ưu: Mopt = 7713, Dopt = 2177 Xây dựng bảng băm với từ điển âm tiết xếp theo tần suất giảm dần Thử nghiệm TN3: Bảng băm tối ưu: Mop t= 7735, Dopt = 2.528 (Dopt = Dfreq) Xây dựng bảng băm với từ điển âm tiết xếp theo tần suất giảm dần Bộ chương trình kiểm lỗi âm tiết tiếng Việt file văn bản, thiết kế hàm SyllableCheck sở bảng băm hàm băm Ngồi ra, dùng thuật tốn khác như: tìm kiếm nhị phân [1], cấu trúc âm tiết [1], Automat hữu hạn [1], [9], [5] để so sánh Nếu âm tiết hợp lệ, hàm SyllableCheck trả TRUE, ngược lại FALSE Các thử nghiệm chạy Laptop Lenovo-3000-Y410, Intel Core2Duo CPU T5750 @2.0GHz (2CPU), 3GB RAM, 160GB HDD, hệ điều hành Windows XP SP2 Ngữ liệu văn tiếng Việt dùng cho thử nghiệm kho ngữ liệu VietTreeBank với gần triệu âm tiết, có kích thước cỡ 10MB Cứ kiểm 10.000 âm tiết ghi nhận thời gian lần để khảo sát Chạy 10-15 lần, lấy lần thử tốt nhất, tính trung bình để so sánh ba thử nghiệm TN1, TN2 TN3 5.2.2 Kết thử nghiệm kiểm lỗi âm tiết tiếng Việt với điểm tối ưu Kết thử nghiệm trình bày bảng Từ bảng 2, ta thấy thời gian chạy thử nghiệm: T1 < T2 < T3 Như vậy, lý luận (đã phân tích mục 3.2) lẫn thực nghiệm chứng tỏ việc thiết kế bảng băm tối ưu sử dụng từ điển xếp giảm dần theo tần suất thống kê âm tiết cho kết tốt (thời gian chạy ngắn hơn) Tức âm tiết có tần suất cao ưu tiên sinh khố trước, âm tiết có tần suất thấp sinh khoá sau Các phần tử đụng độ bảng băm chủ yếu chứa âm tiết có tần suất thấp, làm cho việc tìm kiếm thực tế trở nên nhanh hn Tạp chí Nghiên cứu KH&CN Quân sự, Số 30, 04 - 2014 83 Kü tht ®iƯn tư & Khoa häc m¸y tÝnh Bảng So sánh thời gian chạy trung bình với thử nghiệm Lần thử TB Thử nghiệm TN1 T1(giây) 4,015 4,078 4,016 4,016 4,047 4,034 Thử nghiệm TN2 T2(giây) 3,922 3,953 3,937 3,953 3,922 3,937 Thử nghiệm TN3 T3(giây) 3,719 3,766 3,750 3,812 3,787 3,766 5.2.3 So sánh thời gian thực với số thuật toán khác Thử nghiệm kiểm lỗi âm tiết tiếng Việt tìm kiếm nhị phân (TKNP)[1], cấu trúc âm tiết (CTÂT)[1] Automat hữu hạn đơn định DFA (Deterministic Finite Automat) [1], [9], [5] để so sánh thời gian chạy với bảng băm tối ưu nêu Bảng So sánh thời gian chạy thuật toán khác Lần thử TB TKNP TB (giây) 9,906 9,953 9,891 9,907 9,937 9,919 CTÂT TC (giây) 7,406 7,313 7,437 7,391 7,391 7,388 DFA TA (giây) 5,360 5,359 5,422 5,407 5,391 5,388 TN1 T1 (giây) 4,015 4,078 4,016 4,016 4,047 4,034 TN2 T2 (giây) 3,922 3,953 3,937 3,953 3,922 3,937 TN3 T3 (giây) 3,719 3,766 3,750 3,812 3,781 3,766 Kết thử nghiệm với thuật tốn (tìm kiếm nhị phân, luật cấu tạo âm tiết, Automat hữu hạn đơn định) cho thấy: bảng băm thiết kế với tham số tối ưu tập tối ưu Pareto (hình 6) trường hợp có NAT khơng có sử dụng thống kê âm tiết, cho kết thực Hình Đồ thị so sánh thời gian chạy nghiệm tốt thời gian thuật tốn khác chạy, bảng băm tối ưu theo thống kê âm tiết hiệu Các điểm tối ưu lại (ở bên phải) đường cong Pareto (hình 6a, 6b) hiển nhiên cho kết tốt thời gian chạy giây KẾT LUẬN Tối ưu đa mục tiêu hướng tiếp cận thiết kế bảng băm từ điển Qua thử nghiệm với điểm tối ưu tập Pareto với kích thước bảng băm xấp xỉ từ điển, M ≈ 1,11n (n kích thước từ điển âm tiết), độ phức tạp thời gian O(1), cho thấy, thời gian kiểm lỗi âm tiết tiếng Việt bảng băm nhanh thuật tốn khác như: tìm kiếm nhị phân, cấu tạo âm tiết, automat hữu hạn đơn định Kết nghiên cứu có ý nghĩa giá trị cho hướng nghiên cứu xử lý ngôn ngữ tiếng Việt TÀI LIỆU THAM KHẢO [1] Anh Nguyễn Lê, Lai Trần Duy, Long Phạm Thế, Xuất Nguyễn Văn, “Giáo trình Lý Thuyết Mã nén”, NXB Học Viện KTQS, 2001 [2] Anh Trần Ngọc, Tĩnh Đào Thanh, “Kỹ thuật mã hố âm tiết tiếng Việt mơ hình ngrams ứng dụng kiểm lỗi cách dùng từ cụm từ tiếng Việt”, Tạp chí CNTT & TT, Tập V-1, Số (26), 9/2011 84 T N Anh, … , Long, "Kỹ thuật tối ưu đa mục tiêu kiểm lỗi tiếng Việt." Nghiên cứu khoa học công nghệ [3] Anh Trần Ngọc, Tĩnh Đào Thanh, "Về toán kiểm lỗi tả tiếng Việt máy tính", Tạp chí Khoa học Kỹ thuật, HVKTQS, số 116, 2006, tr.29-40 [4] Anh Trần Ngọc, “Kỹ thuật mã hoá từ tiếng Việt ứng dụng kiểm lỗi tả từ - cụm từ văn bản”, Luận văn thạc sĩ CNTT, Học viện KTQS, Hà Nội, 2007 [5] Clifford A Shaffer, “A Practical Introduction to Data Structures and Algorithm Analysis”, 3rd Edition (C++ Version), Book, 2010 [6] Daciuk J Mihov S Watson B.W Watson R.E., “Incremental Construction of Minimal Acycle Finite-State Automata”, Book, 2000 [7] Eckart Zitzler, Marco Laumanns and Stefan Bleuler, “A Tutorial on Evolutionary Multiobjective Optimization”, Book, 2004 [8] Gilles Brassard, Paul Bratley, “Algorithmics: Theory and Practice”, Book, 1988 [9] Huyen N.T.M., Luong V.X., Phuong L.H (2003), "Tách từ từ điển gán nhãn từ loại xác suất", In Kỷ yếu hội thảo quốc gia ICT.RDA, 2003 [10] Lam T Bui and Sameer Alam, “Multi-Objective Optimization in Computation Intelligence: Theory and Practice”, Information Science Reference IGI Global, 5, 2008 [11] Linh Hoàng Thị Tuyền, Lương Vũ Xuân, Thuỷ Phạm Thị, Thu Đào Thị Minh, Hoà Đặng Thanh, [Phê Hoàng], “Từ điển Tiếng Việt”, Book, 2011 [12] Long Nguyen, and Lam Thu Bui, "A multi-point interactive method for multi-objective evolutionary algorithms" In Proceeding of International Conference on Knowledge Systems Engineering, IEEE Computer Society, CPS, 2012, pages 107–112 [13] Shan Y., Ang Y., and Bui L.T., “Success in Evolutionary Computation”, Studies in Computational Intelligence 2008 [14] Thomas H.C., Charles E.L., Ronald L.R., Clifford S., Introduction to Algorithms, Third Edition, The MIT Press, 2009 ABSTRACT MULTI-OBJECTIVE OPTIMIZATION TECHNIQUES TO DESIGNHASH TABLES OF DICTIONARY FOR VIETNAMESE SPELL CHECKING To design a hash table for a dictionary of Vietnamese syllables, it is neccesary to solve both issues that relate in opposition each to other: size of hash table and hash collisions In this paper the method to resolve this problem for both objectives: size of hash table and hash collisions, which should be optimality smaller, is proposed The test results with some optimal points on the Pareto set, size of hash table 1.11n (n is the size of the dictionary) and the time complexity of searching the hash table O(1) shows that the advantages of the proposed algorithms are better than that of others as binary search, deterministic finite automata, or analysis based on Vietnamese syllable structure Keywords: Multi-objects optimazation; Pareto set; Optimal hash table Nhận ngày 15 tháng 02 năm 2014 Hoàn thiện ngày 10 tháng 03 năm 2014 Chấp nhận đăng ngày 20 tháng 03 năm 2014 Địa chỉ: * Học viện Kỹ thuật Quân sự; ** Trường Sĩ quan Tng - Thit giỏp Tạp chí Nghiên cứu KH&CN Quân sù, Sè 30, 04 - 2014 85 ... hiển nhiên cho kết tốt thời gian chạy giây KẾT LUẬN Tối ưu đa mục tiêu hướng tiếp cận thiết kế bảng băm từ điển Qua thử nghiệm với điểm tối ưu tập Pareto với kích thước bảng băm xấp xỉ từ điển, M... ĐÁNH GIÁ 5.1 Tập tối ưu cho thiết kế bảng băm kiểm tra âm tiết tiếng Việt Các tham số cho thuật toán (mục 4) sau: từ điển 6950 âm tiết; hệ số a: 89 a 255; khoảng khảo sát bảng băm: 6950 M... pháp giải tốn tối ưu đa mục tiêu, phương pháp Contraint Theo phương pháp này, mục tiêu tối ưu mục tiêu khác chuyển hoá thành ràng buộc mục tiêu lựa chọn Khi đó, tốn tối ưu k mục tiêu (k ≥ 2) mô