Bài viết trình bày những kết quả nghiên cứu trong việc nâng cao độ chính xác của nhận dạng văn bản tiếng Việt. Kết quả của nhận dạng văn bản từ hình ảnh thường không đạt được độ chính xác tuyệt đối, nhất là đối với các tài liệu có chất lượng hình ảnh đầu vào thấp.
Nghiên cứu khoa học công nghệ MỘT CÁCH TIẾP CẬN SỬ DỤNG MƠ HÌNH N-GRAM TRONG VIỆC TỰ ĐỘNG PHÁT HIỆN VÀ SỬA LỖI NHẬN DẠNG VĂN BẢNTIẾNG VIỆT Nguyễn Chí Thành1*, Thái Trung Kiên1, Hồng Đình Thắng1, Nguyễn Thị Lan Phượng2 Tóm tắt: Trong báo này, chúng tơi trình bày kết nghiên cứu việc nâng cao độ xác nhận dạng văn tiếng Việt Kết nhận dạng văn từ hình ảnh thường khơng đạt độ xác tuyệt đối, tài liệu có chất lượng hình ảnh đầu vào thấp Do đó, việc tự động phát sửa lỗi nhận dạng văn cần thiết, giúp giảm cơng sức hiệu đính người dùng Trong nghiên cứu này, đề xuất thuật toán phát sửa lỗi nhận dạng văn tiếng Việt dựa mơ hình n-gram Kết thử nghiệm cho thấy việc áp dụng thuật toán giúp nâng cao độ xác nhận dạng Từ khóa: Nhận dạng văn bản, Mơ hình ngơn ngữ ĐẶT VẤN ĐỀ 1.1 Giới thiệu Nhận dạng văn tiếng Anh thường nhắc đến với tên nhận dạng ký tự quang học (optical character recognition) viết tắt OCR Đây lĩnh vực ứng dụng rộng rãi việc số hóa văn bản, tài liệu việc hỗ trợ nhập liệu tự động nguồn liệu in giấy hộ chiếu, giấy chứng minh thư, hóa đơn, báo cáo tài chính, danh thiếp… Các nghiên cứu nhận dạng văn tiếng Anh tiếng Việt đạt nhiều kết tốt, có độ xác cao nguồn ảnh văn rõ ràng Tuy nhiên, với văn bản, tài liệu cũ q trình bảo quản khơng tốt bị mờ chữ, chữ độ xác q trình nhận dạng văn bị giảm đáng kể Một số phần mềm có tính tự sửa lỗi nhận dạng, nhiên, chủ yếu sửa lỗi mức ký tự, sửa lỗi tả dựa vào từ điển, khơng có khả sửa lỗi mức từ, mức ngữ cảnh Do đó, gặp tài liệu có nguồn ảnh đầu vào khơng tốt cơng sức bỏ để hiệu chỉnh lại văn kết lớn, nhiều cịn tương đương với cơng đánh lại toàn văn Trong lĩnh vực nghiên cứu nhận dạng văn tiếng Anh, kĩ thuật sửa lỗi cho nhận dạng sử dụng kĩ thuật thống kê, kĩ thuật xử lý ngôn ngữ tự nhiên nghiên cứu từ lâu đưa đến kết sửa lỗi tốt, nâng cao đáng kể độ xác nhận dạng văn bản, nguồn ảnh đầu vào có chất lượng khơng tốt Tuy nhiên, với việc nhận dạng văn tiếng Việt cơng trình nghiên cứu phương pháp sửa lỗi sau nhận dạng mẻ, chưa có nghiên cứu việc sử dụng kĩ thuật xử lý ngôn ngữ tự nhiên vào việc nâng cao tính xác nhận dạng văn Bài tốn phát sửa lỗi văn khơng quan trọng trình nhận dạng văn từ hình ảnh mà cịn đóng vai trị quan trọng nhiều ứng dụng khác giao diện nhập viết tay cho phép người sử dụng viết chữ làm đầu vào cho máy tính, thiết bị tổng hợp giọng nói (text-to-speech) nhận Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 33 Cơng nghệ thơng tin dạng giọng nói (speech-to-text) Các ứng dụng khác sử dụng phát sửa lỗi văn để tăng chất lượng kết hệ thống soạn thảo văn bản, soạn thảo code, biên tập có trợ giúp máy tính, dịch máy, học ngoại ngữ, tương tác sở liệu, ứng dụng có đầu vào đầu tiếng nói 1.2 Các nghiên cứu liên quan Đã có số phương pháp đề xuất để giải toán phát sửa lỗi tả tiếng Việt Ở báo [1], tác giả sử dụng luật cấu tạo âm tiết tiếng Việt hai thành phần để phát lỗi tả Một phương pháp phát sửa lỗi tiếng Việt sử dụng mơ hình bi-gram đề xuất [2] Mơ hình n-gram sử dụng để kiểm lỗi cách dùng từ cụm từ tiếng Việt công bố [3], nhiên, nghiên cứu không đề xuất phương pháp sửa lỗi tả phát Bài báo [4] mô tả phương pháp sử dụng mơ hình n-gram xây dựng từ kho ngữ liệu có kích thước lớn để phát lỗi tả đánh máy Trong nghiên cứu phát sửa lỗi tiếng Việt, có phương pháp có liên quan tới phát sửa lỗi nhận dạng văn (OCR – optical character recognition), nghiên cứu này, việc phát lỗi tiếng Việt dựa vào xác suất unigram đếm xuất đồng thời âm tiết [5] Đối với nhận dạng văn tiếng Anh, có nhiều phương pháp đề xuất để đưa danh sách từ thay cho từ bị sai Tương ứng với từ lỗi thuật toán đưa danh sách ứng cử viên để thay cho từ Một số thuật tốn sửa lỗi dựa từ điển đề xuất Một số thuật tốn đối sánh chuỗi đánh trọng số từ văn sử dụng độ đo khoảng cách Ứng cử viên sửa lỗi với khoảng cách ngắn với từ lỗi chọn [6] Thuật toán khác sử dụng thuộc tính cú pháp ngơn ngữ mơ hình n-gram để tiến hành q trình sinh ứng cử viên sửa lỗi chọn ứng cử viên tốt [7] đề xuất phương pháp sửa lỗi sau OCR dựa học mẫu, danh sách ứng cử viên sửa lỗi sinh từ từ điển, sau ứng cử viên phù hợp lựa chọn dựa đặc tính từ vựng ngữ pháp xung quanh từ lỗi Các kĩ thuật sửa lỗi dựa từ điển hợp lý thành công Tuy nhiên, chúng sửa lỗi dựa ngữ cảnh, ví dụ sửa lỗi dựa vị trí ngữ pháp chúng câu Các kĩ thuật sửa lỗi dựa ngữ cảnh thực phát lỗi sửa lỗi dựa ngữ cảnh ngữ pháp ngữ nghĩa Nó giải vấn đề sửa lỗi từ thực câu “Học sinh tơi trường” theo ngữ cảnh mà “tơi” xuất hiện, phải động từ khơng phải danh từ Để thực sửa lỗi dựa ngữ cảnh, số giải pháp cân nhắc tới, phần lớn dựa mơ hình ngơn ngữ thống kê mơ hình dựa đặc trưng [8] mô tả hệ thống sửa lỗi từ theo ngữ cảnh dựa ánh xạ hỗn loạn, sử dụng xác xuất hỗn loạn để xác định dãy tần suất sai chuyển chúng thành chuỗi Nói cách khác, mơ hình hóa mức độ xảy chữ bị nhận nhầm thành chữ khác [9] đề xuất phân lớp Bayesian coi lỗi từ thực nhập nhằng sau tìm từ cách tính tốn mối quan hệ xác xuất từ lỗi ứng cử viên sửa lỗi Trong nghiên cứu [10], tác giả sử dụng mơ hình ngơn ngữ n-gram để phát sửa lỗi văn tiếng Anh 34 N C Thành, …, N T L Phượng, “Một cách tiếp cận sử dụng … văn tiếng Việt.” Nghiên cứu khoa học công nghệ Trong báo này, nghiên cứu phương pháp tự động sửa lỗi nhận dạng văn tiếng Việt dựa mơ hình ngơn ngữ n-gram Nghiên cứu trình bày theo thứ tự sau: Phần trình bày nội dung nghiên cứu; Phần trình bày kết thử nghiệm, đánh giá; Cuối cùng, kết luận trình bày Phần BÀI TỐN PHÁT HIỆN VÀ SỬA LỖI NHẬN DẠNG VĂN BẢN Trên thực tế, tỉ lệ lỗi hệ thống nhận dạng văn (OCR) thường cao tài liệu quét có nhiều lỗi trạng thái vật lý khơng tốt, chất lượng in kém, tài liệu phai màu, giấy cũ Khi hệ thống OCR nhận dạng ký tự tạo lỗi OCR, thường lỗi tả văn đầu Ví dụ, ký tự “B” nhận dạng sai thành số “8”, ký tự “S” nhận dạng thành số “5”, ký tự “O” nhận dạng thành số “0”, … Để nâng cao độ xác nhận dạng, cần phát sửa lỗi ngôn ngữ văn OCR đầu sau ảnh đầu vào quét xử lý Về bản, có hai loại lỗi OCR: lỗi không từ lỗi từ thực Một lỗi không từ từ nhận dạng hệ thống OCR lại khơng tương ứng với từ vựng Ví dụ, “Chào bạn” hệ thống OCR nhận dạng “Chào bụn” “bụn” xác định lỗi khơng từ “bụn” khơng có nghĩa tiếng Việt Trái lại, lỗi từ thực từ nhận dạng tương ứng với từ từ điển sai ngữ pháp câu chứa Ví dụ, “Học sinh tới trường” hệ thống OCR nhận dạng thành “Học sinh tơi trường” “tơi” coi lỗi từ thực “tơi” mặt cú pháp (có xuất tiếng Việt) việc sử dụng câu sai ngữ pháp Thông thường, lỗi không từ từ thực rơi vào ba lớp lỗi sau: xóa, thêm thay Lỗi xóa xuất nhiều ký tự bị xóa khỏi từ gốc Ví dụ nhận dạng nhầm từ “Trường” thành “Trưng”, “Trơng”, “Trươg” Lỗi thêm xảy nhiều ký tự thêm vào từ gốc Ví dụ, nhận dạng nhầm từ “Học” thành “Họcc” hay “Họoc” Lỗi thay xảy nhiều ký tự bị thay từ gốc, ví dụ thay ký tự “m” “Thêm” thành ký tự “n” thay ký tự “g” “Thống” thành “q” Để giải tốn này, cần phân tích xem lý gây nên việc nhận dạng lỗi âm tiết Qua trình khảo sát thử nghiệm với toán nhận dạng văn bản, tổng hợp số loại lỗi nhận dạng chủ yếu sau: a) Loại 1: Lỗi xóa Lỗi xuất âm tiết bị xóa ký tự Trường hợp xảy ký tự bị mờ xóa ảnh đầu vào Ví dụ: + "quan hệ đồn kết hai nước Việt Nam Lào" bị nhận dạng nhầm thành "quan hệ đoàn kết nước Việt Nam Lào" ký tự "i" âm tiết "hai" bị mờ Như vậy, âm tiết "hai" bị nhận dạng nhầm thành "ha", ký tự bị xóa ký tự "i" Lỗi mơ hình hóa sau - Lỗi xóa: Âm tiết bị xóa bớt ký tự Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 35 Công nghệ thông tin ( … )= … … Trong đó: … âm tiết ban đầu, … … âm tiết sau bị ( ) nhận dạng sai, bị xóa ký tự 1≤ ≤ b) Loại 2: Lỗi thêm Lỗi xảy âm tiết bị thêm ký tự vào có vết thêm vào ảnh nên vết bị nhận dạng nhầm thành ký tự Ví dụ: + "Thanh tra phủ" có vết gạch sau âm tiết "tra" bị nhận dạng nhầm thành "Thanh trai phủ" Ở đây, âm tiết "tra" bị nhận dạng nhầm thành âm tiết "trai", ký tự bị thêm vào ký tự "i" Lỗi mơ hình hóa sau - Lỗi thêm: Âm tiết bị thêm ký tự vào sau nhận dạng ∗, … ∗ … ế ≤ ( … )= ∗ … ế = +1 Trong đó: … âm tiết ban đầu, … ∗ … âm tiết sau bị nhận dạng sai, bị thêm vào ký tự ∗ trước ký tự (nếu ≤ ≤ ) sau ký tự = + c) Loại 3: Lỗi thay Lỗi xuất nhận dạng sai ký tự âm tiết thành ký tự khác.Trường hợp xảy thuật toán nhận dạng nhận nhầm ký tự thành ký tự khác nhận dạng sai dấu ký tự Ví dụ: + "ảnh hưởng yếu tố" bị nhận dạng nhầm thành "ánh hưởng yếu tố" Ở đây, âm tiết "ảnh" bị nhận nhầm thành âm tiết "ánh" dấu hỏi ký tự "a" bị nhận dạng nhầm thành dấu sắc Ký tự "ả" bị thay ký tự "a" + "các sở giáo dục" bị nhận dạng nhầm thành "các sở giác dục" ký tự "o" âm tiết "giáo" bị mờ phần bên phải Trong trường hợp này, âm tiết "giáo" bị nhận dạng nhầm thành âm tiết "giác", ký tự "o" bị thay ký tự "c" + "bài toán tự động phát mục tiêu" bị nhận dạng nhầm thành "bài tốn tự đơng phát mục tiêu" dấu nặng âm tiết "động" bị mờ dính sát vào chữ "ô" Trong trường hợp này, âm tiết "động" bị nhận dạng nhầm thành âm tiết "đông", ký tự "ộ" bị thay ký tự "ô" Lỗi mơ hình hóa sau: - Lỗi thay thế: nhận dạng sai ký tự âm tiết, thêm dấu vào âm tiết, bỏ dấu âm tiết ∗, ∗ ( … )= … … ∗ Trong đó: … âm tiết ban đầu, … … âm tiết sau bị nhận dạng sai, ký tự (1 ≤ ≤ ) bị thay ký tự ∗ d) Loại 4: Lỗi gộp ký tự 36 N C Thành, …, N T L Phượng, “Một cách tiếp cận sử dụng … văn tiếng Việt.” Nghiên cứu khoa học công nghệ Lỗi xuất hai ký tự âm tiết bị gộp làm ký tự khác.Trường hợp xảy ký tự cạnh có hình dạng giống với ký tự thứ ba nên bị nhận dạng sai Ví dụ: + "hội nghị thường niên" bị nhận dạng nhầm thành "hội nghị thường mên" Trong trường hợp này, âm tiết "niên" bị nhận nhầm thành âm tiết "mên", hai ký tự "ni" bị gộp lại thành ký tự "m" + "các kỹ thuật tiên tiến" bị nhận dạng nhầm thành "các kỹ thuật hên tiến" Trong trường hợp này, âm tiết "tiên" bị nhận nhầm thành âm tiết "hên", hai ký tự "ti" bị gộp lại thành ký tự "h" Lỗi mơ hình hóa sau: - Lỗi gộp ký tự: ký tự bị gộp làm ∗ ( … )= … … ∗ Trong đó: … âm tiết ban đầu, … … âm tiết sau bị (1 ≤ ≤ − 1) bị gộp lại nhận dạng thành ký tự nhận dạng sai, hai ký tự ∗ e) Loại 5: Lỗi chia tách ký tự Lỗi xuất ký tự âm tiết bị nhận dạng thành ký tự Trường hợp xảy ký tự tách đơi theo chiều dọc tạo thành hình ảnh tương tự ký tự khác Ví dụ: + "trong khoảng thời gian" bị nhận dạng nhầm thành "trong khoảng thời giaii" ký tự "n" âm tiết "gian" bị mờ phần Trong trường hợp này, âm tiết "gian" bị nhận nhầm thành "giaii", ký tự "n" bị nhận dạng tách thành ký tự "ii" Lỗi mơ hình hóa sau: - Lỗi chia tách ký tự: ký tự bị tách làm ( … )= … … Trong đó: … âm tiết ban đầu, … … âm tiết sau bị nhận dạng sai, ký tự (1 ≤ ≤ ) bị nhận dạng nhầm thành hai ký tự f) Loại 6: Lỗi gộp âm tiết Lỗi xuất âm tiết bị gộp làm âm tiết Trường hợp xảy âm tiết xuất sát gần khiến cho phần mềm OCR nhận dạng chúng âm tiết Ví dụ: + "mơ huấn luyện" bị nhận dạng nhầm thành "mô huấnluyện" hai âm tiết "huấn" "luyện" bị in sát nhau, có vết bẩn hai âm tiết Trong trường hợp này, hai âm tiết "huấn luyện" bị nhận nhầm thành "huấnluyện" Lỗi mơ hình hóa sau - Lỗi gộp âm tiết: âm tiết bị gộp làm ( , )= _ Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 37 Cơng nghệ thơng tin Trong đó: hai âm tiết ban đầu, kết nhận dạng sai, hai âm tiết bị gộp làm g) Loại 7: Lỗi chia tách âm tiết Lỗi xuất âm tiết bị tách làm âm tiết sau nhận dạng.Trường hợp xảy khoảng cách ký tự âm tiết lớn phần ký tự bị mờ làm cho âm tiết bị tách làm phần Ví dụ: + "Việc xác định" bị nhận dạng nhầm thành "V iệc xác định" chữ "V" bị mờ phần bên phải.Trong trường hợp âm tiết "Việc" bị nhận dạng nhầm thành hai âm tiết "V" "iệc" Lỗi mơ hình hóa sau - Lỗi chia tách âm tiết: âm tiết bị tách làm ( … )= … + … _ Trong đó: … âm tiết ban đầu, … … hai âm tiết sau bị nhận dạng sai (1 ≤ ≤ − 1) Lỗi nhận dạng xảy theo trường hợp tổng hợp trường hợp PHƯƠNG PHÁP PHÁT HIỆN VÀ SỬA LỖI BẰNG MƠ HÌNH N-GRAM Chúng tơi đề xuất phương pháp phát sửa lỗi nhận dạng văn tiếng Việt dựa mơ hình n-gram Trước hết, cần xây dựng mơ hình n-gram dựa tập hợp văn huấn luyện, sau với văn cần tìm lỗi, dựa vào mơ hình n-gram tính, xác định xác suất n-gram âm tiết liền văn xét Nếu xác suất nhỏ ngưỡng lỗi dãy âm tiết coi có lỗi dùng từ Để xây dựng mơ hình n-gram, cần thu thập văn tiếng Việt thành kho ngữ liệu, dùng kho để làm liệu huấn luyện Sau đó, tiến hành tính tốn giá trị unigram (1-gram), bigram (2-gram) trigram (3-gram) cách thống kê tần suất xuất áp dụng cơng thức để tính xác suất, làm trơn xác suất thấp, hiệu chỉnh xác suất tính hệ số backoff Tiếp theo cần xây dựng từ điển âm tiết có tiếng Việt để xác định lỗi tả Việc tính tốn giá trị n-gram từ điển âm tiết tiếng Việt xây dựng tương tự với tài liệu [3] Sau xây dựng mơ hình n-gram dựa tập liệu huấn luyện, phát lỗi cho kết nhận dạng văn theo bước sau Đầu tiên phát âm tiết sai sử dụng từ điển âm tiết Sau đó, duyệt tồn văn kết theo cụm âm tiết liền nhau, tính xác suất trigram cụm, giá trị nhỏ ngưỡng lỗi xác định cụm từ có lỗi dùng từ Sau xác định cụm từ có lỗi cần xác định vị trí âm tiết bị lỗi Một âm tiết thuộc hai ba cụm từ có lỗi xác định âm tiết gây lỗi Do đó, xác định xác vị trí âm tiết gây lỗi Sau xác định âm tiết có lỗi, bước xác định âm tiết để sửa lỗi Với mơ hình n-gram, dựa vào xác suất cụm âm tiết, đoán biết cho trước cụm âm tiết vị trí âm tiết lỗi âm tiết có 38 N C Thành, …, N T L Phượng, “Một cách tiếp cận sử dụng … văn tiếng Việt.” Nghiên cứu khoa học công nghệ khả thay âm tiết với xác suất cao Để xác định âm tiết để sửa lỗi, sử dụng phương pháp sinh tập ứng cử viên để từ xác định ứng cử viên có khả cao Từ phân tích chúng tơi đề xuất phương pháp xác định âm tiết để sửa lỗi cho văn sau nhận dạng sau Sau xác định âm tiết có lỗi, cần xác định âm tiết Xuất phát từ âm tiết bị lỗi, sử dụng phép biến đổi từ âm tiết bị lỗi sinh tập âm tiết ứng cử viên âm tiết âm tiết ( ) ( )∪ ( )∪ ( )∪ ( )∪ ( ) ={ ( )} ∪ _ ( )∪ _ ( ) tập ứng cử viên sinh từ âm tiết Trong đó, tập ứng cử viên ∗, ( ) lỗi qua phép biến đổi ngược theo trường hợp , nghĩa ∈ ∗, ( )= ∗ ( ) = | , ( ) = ,1 ≤ ≤ + Trong đó, n số ký tự u ký tự ∗ ký tự bảng chữ (có dấu khơng dấu) Ví dụ, với âm tiết "giác" "giá" biến đổi ngược phép thêm với = ("giác") "giác" = ký tự thêm vào ∗ "c" Nghĩa "giá" ∈ " ", ("giá") Tương tự, "gác" ngược phép thêm với = ký tự thêm ∗ ("giác") vào "i" Như vậy, "gác" ∈ ( ) tập ứng cử viên sinh từ âm tiết lỗi qua phép biến Tương tự, đổi ngược theo trường hợp ( )= | ( ) = ,1 ≤ ≤ Trong đó, n số ký tự u Ví dụ, với âm tiết "cơn" "cơng" biến đổi ngược phép xóa với ("cơn") "côn" = ("công") = Nghĩa "công" ∈ ( ) tập ứng cử viên sinh từ âm tiết lỗi qua phép biến đổi ngược theo trường hợp ∗, ∗ ( )= | , ( ) = ,1 ≤ ≤ Trong đó, n số ký tự u Ví dụ, với âm tiết "giác" "giáo" phép biến đổi ngược phép thay ("giác") với = 4, nghĩa "giáo" ∈ ( ) tập ứng cử viên sinh từ âm tiết lỗi qua phép biến đổi ngược theo trường hợp ( )= | ( ) = ,1 ≤ ≤ − ( ) tập ứng cử viên sinh từ âm tiết lỗi qua phép biến đổi ngược theo trường hợp ( )= | ( ) = ,1 ≤ ≤ Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 39 Công nghệ thông tin Tương tự, _ ( ) tập ứng cử viên sinh từ âm tiết lỗi qua phép biến ( ) tập ứng cử viên sinh từ âm đổi ngược theo trường hợp _ _ tiết lỗi qua phép biến đổi ngược theo trường hợp _ Có thể áp dụng phép biến đổi nhiều lần để tìm tập ứng cử viên ( )= ( )) ( Sau có tập ứng cử viên, loại bỏ âm tiết không chỉnh tả, âm tiết khơng có từ điển âm tiết Sau đó, từ tập ứng cử viên tính tốn xác suất n-gram âm tiết tập âm tiết ứng cử viên để tìm âm tiết Để sửa lỗi tự động đặt ngưỡng để tự động sửa lỗi, tìm âm tiết ứng cử viên có độ xác vượt ngưỡng âm tiết ứng cử viên có độ xác vượt trội so với ứng cử viên khác tự động sửa lỗi Nếu có nhiều âm tiết xác có tập âm tiết để người dùng lựa chọn sửa lỗi bán tự động Các bước thuật tốn tìm tập ứng cử viên cho âm tiết bị lỗi dựa mô hình n-gram minh họa hình Dữ liệu đầu vào cho thuật toán âm tiết bị lỗi vị trí văn Đầu thuật tốn tập ứng cử viên âm tiết ban đầu văn gốc Bắt đầu Âm tiết bị lỗi Sinh tập ứng cử viên từ phép biến đổi ngược Loại bỏ ứng cử viên khơng có từ điển âm tiết Loại bỏ ứng cử viên có xác suất n-gram thấp Kết thúc Hình Các bước tìm ứng cử viên để sửa lỗi 40 N C Thành, …, N T L Phượng, “Một cách tiếp cận sử dụng … văn tiếng Việt.” Nghiên cứu khoa học công nghệ THỬ NGHIỆM, ĐÁNH GIÁ Chương trình thử nghiệm xây dựng dựa phương pháp tìm sửa lỗi tự động trình bày Phần mềm viết ngôn ngữ C# sử dụng công cụ lập trình Microsoft Visual Studio Sau lấy kết nhận dạng phần mềm mã nguồn mở VietOCR, chương trình thử nghiệm thực phát lỗi nhận dạng tự động sửa lỗi, hỗ trợ người sử dụng sửa lỗi bán tự động cách đưa danh sách âm tiết ứng cử viên để sửa lỗi Hình minh họa bước hoạt động chương trình thử nghiệm Sau người dùng nhập đường dẫn đến file ảnh văn cần nhận dạng, phần mềm tiến hành nhận dạng văn cách gọi hàm VietOCR Sau đó, kết nhận dạng xử lý để phát lỗi nhận dạng dựa mơ hình n-gram Tiếp theo, ứng cử viên để thay cho âm tiết lỗi sinh phương pháp sửa lỗi đề xuất phần trước Chương trình hiển thị kết sửa lỗi nhận dạng lên cửa sổ hỗ trợ sửa lỗi Các âm tiết bị xác định có lỗi nhận dạng đánh dấu để người dùng dễ dàng nhận biết Những âm tiết có ứng cử viên thay tự động sửa lỗi ứng cử viên đó, với âm tiết có nhiều ứng cử viên thay âm tiết lựa chọn chương trình hiển thị danh sách ứng cử viên để người dùng lựa chọn Đọc file ảnh đầu vào Nhận dạng văn (VietOCR) Phát lỗi nhận dạng Sửa lỗi nhận dạng Hiển thị lỗi hỗ trợ sửa lỗi Hình Các bước hoạt động chương trình Để thực phát lỗi sửa lỗi nhận dạng, cần có thông tin xác suất n-gram âm tiết Các xác suất tính dựa kho ngữ liệu huấn luyện Trong chương trình thử nghiệm, mơ hình n-gram xây dựng từ trước ghi vào file liệu, kho ngữ liệu sử dụng để huấn luyện gồm 300.000 câu tiếng Việt thu thập từ nhiều lĩnh vực Các xác suất unigram, bigram, trigram âm tiết tính tốn dựa thống kê tần suất xuất âm Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 41 Công nghệ thông tin tiết kho ngữ liệu Các xác suất n-gram thấp làm trơn, sau tính tốn hệ số backoff Chương trình chạy thử nghiệm với số văn quét cho kết trình bày Bảng Văn đầu vào sử dụng phông Times New Roman, quét thành ảnh trắng đen độ phân giải 300dpi Sau sử dụng chương trình để phát sửa lỗi, độ xác kết nhận dạng tăng lên Ở đây, tính âm tiết sửa lỗi tự động, nghĩa chương trình tự động thay âm tiết lỗi âm tiết chương trình tự động xác định âm tiết Ngoài ra, âm tiết lỗi khác, chương trình sinh danh sách ứng cử viên để hỗ trợ người dùng sửa lỗi cách nhanh chóng thuận tiện Trên bảng 1, số âm tiết nhận dạng lỗi cột (2) số âm tiết lỗi sau nhận dạng phương pháp nhận dạng VietOCR, số lỗi xác định cách so sánh với văn gốc tay (sử dụng người) Độ xác cột (3) độ xác văn kết module nhận dạng VietOCR, tính số âm tiết chia cho tổng số âm tiết trang văn Cột (4) số âm tiết lỗi lại sau số âm tiết lỗi sửa lỗi lại thành âm tiết thuật toán phát tự động sửa lỗi đề xuất Bảng Kết thử nghiệm chương trình Số âm tiết Âm tiết Độ Số âm tiết Độ nhận dạng xác lỗi sau xác sau sửa lỗi tự động sửa lỗi lỗi (1) (2) (3) (4) (5) Văn 446 15 96.64% 10 97.76% Văn 706 16 97.73% 13 98.16% Văn 509 10 98.04% 98.23% Văn 447 32 92.84% 25 94.41% Văn 367 28 92.37% 22 94.01% Tổng 2475 101 95.92% 79 96.81% Kết thử nghiệm cho thấy phương pháp đề xuất có khả kiểm tra, phát hiễn lỗi tốt, giúp người dùng tự động sửa lỗi Tốc độ phát sửa lỗi cao, đưa vào sử dụng thực tế để xây dựng hệ thống số hóa văn để xây dựng thư viện điện tử KẾT LUẬN Bài báo trình bày kết nghiên cứu để tìm cách nâng cao độ xác nhận dạng văn bản, sử dụng tri thức khai thác từ kho ngữ liệu thơng qua mơ hình thống kê n-gram Chúng đề xuất phương pháp phát tự động sửa lỗi cho văn nhận dạng, đồng thời, xây dựng chương trình cài đặt thuật tốn để thực nâng cao độ xác cho nhận dạng văn Chương trình thử nghiệm cho kết tốt, tự động sửa lỗi nhận dạng hỗ trợ người dùng sửa lỗi bán tự động Kết nhận dạng nâng lên so với phương pháp truyền thống Kết áp dụng để đưa vào thực số hóa tài liệu cho thư viện điện tử 42 N C Thành, …, N T L Phượng, “Một cách tiếp cận sử dụng … văn tiếng Việt.” Nghiên cứu khoa học công nghệ Qua thực tế nghiên cứu thử nghiệm việc nhận dạng tài liệu, thấy áp dụng phương pháp sửa lỗi, khó để đạt tỉ lệ nhận dạng xác 100% Do đó, để việc tìm kiếm, quản lý kho tài liệu số hóa xác thuận tiện cần phát triển hệ thống tìm kiếm thơng minh có khả tìm văn mà khơng cần từ khóa phải xác 100% (do kết nhận dạng không đảm bảo xác 100%) Việc áp dụng kĩ thuật học máy, lý thuyết tập mờ, tập thô vào tốn tìm kiếm thơng minh cần thiết Lời cảm ơn: Tác giả cảm ơn tài trợ kinh phí đề tài: “Nghiên cứu phát triển giải pháp nâng cao độ xác nhận dạng văn sử dụng tri thức khai thác từ kho ngữ liệu tiếng Việt ứng dụng vào hệ thống số hóa tài liệu để xây dựng thư viện điện tử” TÀI LIỆU THAM KHẢO [1] Đinh Thị Phương Thu, Huỳnh Quyết Thắng, Nguyễn Văn Lợi “Sử dụng luật cấu tạo âm tiết tiếng Việt hai thành phần tốn kiểm tra tả tiếng Việt” Tạp chí Bưu Viễn thơng, Chun san Các nghiên cứu triển khai ứng dụng viễn thông Công nghệ thông tin, Số 18, tháng 10 năm 2007, trang 83-92 [2] Nguyen Hong Phuong, Ngo Duc Thuan, Phan Anh Dung, Dinh Thi Phuong Thu, Huynh Quyet Thang “Vietnamese spelling detection and correction by using a syllable Bi-gram and building a weight function combining Minimum Edit Distance and SoundEx algorithms with some heuristics” International Conference on Research, Innovation and Vision for the Future in Computing and Communication Technologies, RIVF 2008, July 13-17, 2008, pp 96 – 102 [3] Trần Ngọc Anh, Đào Thanh Tĩnh “Kỹ thuật mã hóa âm tiết tiếng Việt mơ hình n-gram ứng dụng kiểm lỗi cách dùng từ cụm từ tiếng Việt” Tạp chí Cơng nghệ thơng tin Truyền thơng, Tập V-1, Số (26), tháng năm 2011, tr.280-289 [4] Huong, Nguyen Thi Xuan, Tran-Thai Dang, and Anh-Cuong Le "Using large n-gram for Vietnamese spell checking." Knowledge and Systems Engineering Springer, Cham, 2015 617-627 [5] Vu Hoang, Cong Duy, and Ai Ti Aw "An unsupervised and data-driven approach for spell checking in Vietnamese OCR-scanned texts." Proceedings of the Workshop on Innovative Hybrid Approaches to the Processing of Textual Data Association for Computational Linguistics, 2012 [6] V.I Levenshtein, "Binary codes capable of correcting deletions, insertions, and reversals", Cybernetics and Control Theory, 10(8), 707-710, 1966 [7] H Niwa, K Kayashima, Y Shimeki, "Postprocessing for Character Recognition Using Keyword Information", IAPR Workshop on Machine Vision Applications, Dec 7-9, Tokyo, 1992 [8] D Evans, C Zhai, X Tong, N Milic-Frayling, "OCR Correction and Query Expansion for Retrieval on OCR Data", Clarit trec-5 confusion track report, volume 52, 1996 Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 43 Công nghệ thông tin [9] R.A Golding, "A Bayesian Hybrid Method for Context-Sensitive Spelling Correction", Proceedings of the Third Workshop on Very Large Corpora, Cambridge, MA 39-53, 1995 [10] Islam, Aminul, and Diana Inkpen "Real-word spelling correction using Google Web IT 3-grams." Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing: Volume 3-Volume Association for Computational Linguistics, 2009 ABSTRACT AN APPROACH FOR VIETNAMESE OCR ERROR CHECK AND CORRECTION USING N-GRAM MODEL In the paper, the result of a studying on improving Vietnamese OCR accuracy is presented OCR result rarely reach pefect accuracy, especially with documents with low quality image input Therefore, automatic OCR check and correcion can reduce user efforts in OCR post-processing In this study, a method for Vietnamese OCR error check and correction based on ngram model is proposed Experiment results show that the proposed method can improve the accuracy of OCR process Từ khóa: Optical Character Recognition, Language model Nhận ngày 16 tháng năm 2017 Hoàn thiện ngày 26 tháng 11 năm 2017 Chấp nhận đăng ngày 28 tháng 11 năm 2017 Địa chỉ: 1Viện Công nghệ Thông tin, Viện KHCNQS; Trung tâm tin học, Trường Đại học Nội vụ Hà Nội * Email: thanhnc80@gmail.com 44 N C Thành, …, N T L Phượng, “Một cách tiếp cận sử dụng … văn tiếng Việt.” ... văn (VietOCR) Phát lỗi nhận dạng Sửa lỗi nhận dạng Hiển thị lỗi hỗ trợ sửa lỗi Hình Các bước hoạt động chương trình Để thực phát lỗi sửa lỗi nhận dạng, cần có thơng tin xác suất n-gram âm tiết... Phượng, ? ?Một cách tiếp cận sử dụng … văn tiếng Việt. ” Nghiên cứu khoa học công nghệ Trong báo này, nghiên cứu phương pháp tự động sửa lỗi nhận dạng văn tiếng Việt dựa mơ hình ngơn ngữ n-gram Nghiên... thử nghiệm thực phát lỗi nhận dạng tự động sửa lỗi, hỗ trợ người sử dụng sửa lỗi bán tự động cách đưa danh sách âm tiết ứng cử viên để sửa lỗi Hình minh họa bước hoạt động chương trình thử nghiệm