Xây dựng chương trình bắt lỗi tiếng Việt nhằm phát hiện và đề nghị từ thay thế cho các lỗi thường gặp (nhóm VCL) - 3 pptx

43 271 0
Xây dựng chương trình bắt lỗi tiếng Việt nhằm phát hiện và đề nghị từ thay thế cho các lỗi thường gặp (nhóm VCL) - 3 pptx

Đ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

CHƯƠNG MƠ HÌNH 4.2 TIỀN XỬ LÝ • Thanh hỏi biểu diễn ký tự ‘3’ • Thanh ngã biểu diễn ký tự ‘4’ K H TN • Thanh nặng biểu diễn ký tự ‘5’ C N TT – Đ H Theo quy tắc trên, “hồ” biến đổi thành “2hoa”; “hịa” biến đổi thành “2hoa” Như ta coi “hịa” “hồ” tương đương so sánh dạng biến đổi “2hoa” chúng Một số ví dụ khác: “hồng” biến đổi thành “2hông”, “hoa” biến đổi thành “0hoa” Các tiếng nước ngoài, ký hiệu khơng có dấu, xem có ngang Như vậy, “USA” biến đổi thành “0USA” Do việc biến đổi làm thông tin cách bỏ dấu Ta cần phải giữ lại chữ gốc bên cạnh chữ biến đổi (“chữ chuẩn hoá”) để dùng lại sau Ta phục hồi chữ từ chữ chuẩn hoá cách phân tích cấu trúc âm tiết bỏ dấu thích hợp theo quy tắc bỏ dấu cho trước Việc giúp chuẩn hố cách bỏ dấu cho tồn văn Chuẩn hoá ‘y’ ‘i’ K H O A Ngồi việc chuẩn hố cách bỏ dấu, số chữ tiếng Việt kết thúc ‘y’ đổi thành ‘i’ Ví dụ, “quý” “quí” hợp lệ Tuy nhiên, chữ kết thúc ‘y’ chuyển thành ‘i’, ví dụ “th” “thúi” Nguyên nhân chuyển thành ‘i’, chữ kết hợp với ‘u’ tạo âm ‘ui’ thay âm ‘i’ Một số chữ kết thúc ‘i’ chuyển sang ‘y’, ví dụ “bí”, “chí” Việc cho phép viết từ hai cách làm giảm hiệu suất chương trình chương trình coi “quý” “q” hai chữ hồn tồn khác Giải pháp lập danh sách từ có âm y/i âm tiết mở, sau chuyển tất từ kết thúc ‘i’ có danh sách sang ‘y’ Trong trình 86 CHƯƠNG MƠ HÌNH 4.2 TIỀN XỬ LÝ 4.2.4 K H TN bắt lỗi tả, người dùng yêu cầu chuẩn hố ta xem việc viết ‘y’ ‘i’ sai tả Nếu khơng, ta bỏ qua khác biệt ‘y’ ‘i’ bước báo lỗi tả Gồm chữ sau (khơng xét điệu): “mi”, “ti”, “thi”, “qui”, “ki”, “hi”, “li” “si”, “vi” Chữ viết hoa 4.2.5 C N TT – Đ H Chữ viết hoa dùng để biểu diễn tên riêng, từ viết tắt dùng cho chữ đứng đầu câu Do cần phân biệt chữ đầu câu có phải chữ bắt đầu tên riêng hay khơng Ngồi ra, cần xác định tên riêng tìm chữ viết hoa bắt đầu tên riêng Các văn tiếng Việt chưa hồn tồn thống quy tắc viết hoa Ví dụ, có tài liệu dùng “Cộng hồ Xã hội Chủ nghĩa Việt Nam”, có tài liệu lại dùng “Cộng Hoà Xã Hội Chủ Nghĩa Việt Nam” Do văn đầu vào có khả bị sai tả, kèm theo không thống quy cách viết tên riêng, nên khó xác định tên riêng bước tiền xử lý Vì phần thực phần tách từ thay phần tiền xử lý Từ nước ngoài, từ viết tắt, ký hiệu K H O A Xử lý tiếng nước ngoài, ký hiệu chuyên ngành, từ viết tắt Do trình bắt lỗi khơng có kiến thức lĩnh vực chuyên ngành, thứ tiếng giới, nên việc áp dụng tri thức để phân loại điều khó khăn Giải pháp dùng xem từ nước ngoài, từ viết tắt, ký hiệu chữ bình thường (và xem lỗi tả phần bắt lỗi tả) Phần cố gắng phân loại số loại thường gặp số, ngày tháng nhằm giảm bớt lỗi sai tả khơng đáng có Các số 87 CHƯƠNG MƠ HÌNH 4.3 BẮT LỖI NON-WORD Bắt lỗi non-word 4.3.1 Tìm lỗi tả H 4.3 K H TN đánh dấu riêng mã N U M “Số” coi chữ bắt đầu số Ví dụ, “0lit”, “0.2”, “0-4” coi số Ngày tháng nhận dạng theo mẫu “ngày-tháng-năm” “ngày/tháng/năm” Nói cách khác, ngày tháng số liên tiếp, cách dấu ‘/’ ‘–’ Ngày tháng đánh nhãn N U M Lập danh sách từ đề nghị K H O A 4.3.2 C N TT – Đ Việc tìm lỗi tả đơn giản duyệt qua token, kiểm tra xem token có từ điển hay khơng Nếu token khơng có từ điển, token bị sai tả Nếu thực trên, có nhiều chữ bị cho sai tả, ví dụ số, ngày tháng Ta cần phải nhận token loại bỏ qua chúng tìm lỗi tả Do phần tiền xử lý đánh dấu token chứa số mã N U M nên thực tìm lỗi tả, ta khơng xét token loại Sau xác định chữ bị sai tả, ta cần đưa số gợi ý để người dùng chọn, thay buộc người dùng tự tìm chữ Việc lập danh sách gợi ý chủ yếu dựa vào nguyên tắc phục hồi lỗi: Dựa vào nguyên nhân phát sinh lỗi, thực thao tác ngược lại để tìm chữ Lỗi xử lý phần lỗi non-word Lỗi ngun nhân sau: • Lỗi nhập liệu sai 88 CHƯƠNG MƠ HÌNH 4.3 BẮT LỖI NON-WORD • Lỗi OCR • Lỗi phát âm sai Lỗi nhập liệu Lỗi nhập liệu bao gồm loại lỗi sau: • Lỗi gõ sót phím Đ H • Lỗi gõ dư phím K H TN • Lỗi nhận dạng tiếng nói • Lỗi gõ sai phím (gõ nhầm phím phím khác) C N TT – • Lỗi gõ sai thứ tự (gõ đảo thứ tự hai phím liên tiếp nhau) Ngồi ra, phím spacebar phát sinh ký tự khoảng trắng dùng để phân cách chữ với nhau, nên cần phải xử lý đặc biệt với phím Dựa vào loại lỗi trên, ta có thêm lỗi bổ sung: • Lỗi gõ thiếu phím spacebar, gom hai chữ thành chữ K H O A • Lỗi gõ dư phím spacebar, tách chữ thành hai chữ • Lỗi gõ sai phím spacebar, dẫn đến việc nhóm hai chữ tách chữ làm hai • Lỗi gõ sai thứ tự phím phím spacebar dẫn đến việc ký tự chữ bị đẩy sang chữ khác Giải pháp khắc phục lỗi thực ngược lại q trình tạo lỗi Đối với lỗi gõ sót phím, dư phím, ta thêm phím bớt phím để 89 CHƯƠNG MƠ HÌNH 4.3 BẮT LỖI NON-WORD K H O A C N TT – Đ H K H TN tạo chữ Với lỗi gõ sai thứ tự, ta duyệt qua chữ, hoán vị hai ký tự liên tiếp để tạo chữ Đối với lỗi gõ nhầm phím, ta dựa vào bố trí bàn phím để phát sinh lỗi Giả định sơ đồ bố trí bàn phím EN-US dùng Do thông thường gặp lỗi gõ nhầm với phím bên cạnh từ, nên chương trình lưu danh sách phím lân cận với phím, dựa bàn phím EN-US Ví dụ: A → {S, Q, W, X, Z} Với phím hai ký tự phím ‘2’ (‘2’ ‘@’) @ thêm vào tập phím lân cận với ngược lại Danh sách cụ thể nêu bảng 4.1 trang Do với phím có khoảng phím lân cận Một chữ dài trung bình ký tự phát sinh tập 85 chuỗi có khả Trong số có số chữ thật sự, quy tắc tả Tuy nhiên việc xử lý khối lượng lớn Vì chương trình giả định nhập gõ sai tối đa hai phím với chữ, nhằm giảm thiểu bùng nổ tổ hợp Với lỗi spacebar, ta xét tương tự Tuy nhiên, với lỗi có khả tách làm hai chữ, ta xét chữ thời chữ lúc, xem chữ Lỗi gõ nhầm spacebar với phím khác điều khó xảy phím spacebar tương đối lớn, dễ nhận diện gõ Với kiểu gõ VNI, TELEX Chương trình cố gắng “phục hồi” từ chữ gõ sai phát Ví dụ, “nguyê4n” tạo “nguyễn” Bộ gõ VNI, TELEX cài đặt, sau nhận chuỗi ký tự chữ xét qua gõ phục hồi dấu Bước thực sau bước trên, để gõ nhầm phím dấu kế bên phục hồi lại Bộ gõ VNI TELEX sử dụng bảng 4.2 trang 92 Nguyên tắc gõ cài đặt không cầu kỳ, yêu cầu để phục hồi lỗi Các phím dấu gõ duyệt qua chữ, từ vị trí phím dấu đầu chữ Nếu phím dấu kết hợp với ký tự 90 CHƯƠNG MƠ HÌNH Phím @ % * _ \ w t i [ } d h l ’ x b , > Phím lân cận !‘~q2@ 21!qw3# $3#er5% 54$rt6^ &6^yu8* 87&ui9( )9(op-_ -0)p[=+ |=+]} qase3#2@ rfgy6^5% ujko9(8* ]}=+-_ [{=+\| erfcxs yujnbg op;:.>,\’] H LETTERS_AND_NUMBERS [a-zA-Z0-9] LETTERS_NUMBER_AND_THEN_SOME [a-zA-Z0-9] APOSTROPHE \’ C N TT – WHITE_SPACE [ \t\n] NEWLINE [\n] INVISIBLE [^\040-\176] Đ SINGLE_CHARACTER [a-zA-Z0-9] K H O A {SENTENCE_FINAL}+{RIGHT_PAREN}* | {HYPHEN}+ | {OPEN_SINGLE_QUOTE}+ | {CLOSE_SINGLE_QUOTE}+ | {LETTERS_NUMBER_AND_THEN_SOME}+{LETTERS_AND_NUMBERS} | {LETTERS_AND_NUMBERS}+{APOSTROPHE} | {SINGLE_CHARACTER} { xuất từ } ({WHITE_SPACE}|{INVISIBLE}|{NEWLINE})+ { bỏ qua } Hình 5.1: Quy tắc tách token dùng flex 127 CHƯƠNG CÀI ĐẶT 5.3 LƯỚI TỪ K H O A C N TT – Đ H K H TN chưa hồn chỉnh, có từ dài hơn) Nếu gắn thêm tiếng vào từ, từ bị loại bỏ khỏi danh sách từ chưa hoàn chỉnh Ngoài ra, chuyển sang tiếng mới, tiếng đưa vào danh sách từ chưa hoàn chỉnh tiếng Công việc thực quét hết chiều dài câu (thuật toán 5.1 trang kế tiếp) Cấu trúc WordState dùng để lưu từ chưa hoàn chỉnh danh sách từ chưa hoàn chỉnh Cấu trúc bao gồm vị trí bắt đầu từ, mã fuzid từ, trỏ đến nút tiếng cuối thời từ từ điển Con trỏ WordState::get_next() dùng để tìm tiếng giúp hình thành nên từ Thành phần fuzid cập nhật sau thêm tiếng vào từ, cho biết tiếng xác câu, hay tiếng gần giống với tiếng câu (phát sinh nhờ so sánh mờ) Mỗi bit fuzid tượng trưng cho tiếng từ Việc tìm từ dựa lớp WordState với hai hàm WordState::get_next() WordState::collect_words() Hàm get_next() gọi tạo đối tượng WordState tương ứng với tiếng nhận, sau tự hủy collect_words thu thập tất nút có vị trí tiếng xét đưa vào lưới từ Các lớp dẫn xuất khác từ WordState có cách tìm kiếm từ khác Các lớp đề cập bên Mỗi lớp dẫn xuất WordState có lớp dẫn xuất WordStateFactory tương ứng, dùng để tạo đối tượng dẫn xuất WordState Hàm WordStateFactory::create_new() lớp dẫn xuất tạo đối tượng dẫn xuất WordState tương ứng với lớp Danh sách đối tượng WordStateFactory chuyển cho pre_construct() nhờ pre_construct() biết cần phải sử dụng lớp 128 ... việc bắt lỗi tả giống phần bắt lỗi tả non-word ( 4 .3. 1 trang 88) Lập danh sách từ đề nghị K H O A 4.4.7 Việc lập danh sách từ đề nghị tương tự lập danh sách từ đề nghị bắt lỗi non-word ( 4 .3. 2... từ cũ Giá trị cạnh (wi wj ) (wj wk ) 3- gram wi , wj wk Thuật toán 4. 13: Tạo lưới n -từ từ lưới (n − 1) -từ 99 CHƯƠNG MƠ HÌNH 4.4 .3 4.4 BẮT LỖI REAL-WORD Mở rộng lưới từ — Phục hồi lỗi C N TT Lỗi. .. tiết khơng có từ điển tiếng bị loại bỏ Thuật toán 4.10: Phục hồi lỗi phát âm (non-word) 95 CHƯƠNG MƠ HÌNH 4 .3. 3 4.4 BẮT LỖI REAL-WORD Sắp xếp danh sách từ đề nghị K H TN Như nói phần 3. 3 trang 55,

Ngày đăng: 12/08/2014, 12:21

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan