1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt

76 548 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 76
Dung lượng 3,03 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tuy nhiên, với sự phát triển không ngừng của khoa học kỹ thuật về phần cứng cũng như phần mềm, các yêu cầu về mặt ứng dụng thực tế của lĩnh vực nhận dạng mẫu ngày càng tăng lên và hiện n

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN&TRUYỀN THÔNG

-

NGÔ MINH HIẾU

TÌM HIỂU PHƯƠNG PHÁP ĐÁNH GIÁ ĐỘ CHÍNH XÁC CỦA CÁC HỆ THỐNG NHẬN DẠNG CHỮ VIỆT

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Thái Nguyên 2015

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN&TRUYỀN THÔNG

===================

NGÔ MINH HIẾU

TÌM HIỂU PHƯƠNG PHÁP ĐÁNH GIÁ ĐỘ CHÍNH XÁC CỦA CÁC HỆ THỐNG NHẬN DẠNG CHỮ VIỆT

Chuyên ngành: Khoa học máy tính

Mã số: 60 48 01 01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC

TS NGUYỄN THỊ THANH TÂN

Thái Nguyên 2015

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan rằng bản luận văn này là tự thân nghiên cứu và hoàn thành dưới sự hướng dẫn khoa học của TS Nguyễn Thị Thanh Tân Nếu có gì

vi phạm tôi xin hoàn toàn chịu trách nhiệm

Thái Nguyên, ngày tháng năm 2015

Ngô Minh Hiếu

Trang 4

LỜI CẢM ƠN

Lời đầu tiên tôi xin gửi lời cảm ơn chân thành và lòng biết ơn sâu sắc tới

TS Nguyễn Thị Thanh Tân, người đã chỉ bảo và hướng dẫn tận tình cho tôi và đóng góp ý kiến quý báu trong suốt quá trình học tập, nghiên cứu và thực hiện luận văn này

Tôi xin trân trọng cảm ơn Ban giám hiệu Trường Đại học Công nghệ Thông tin và Truyền thông, Đại học Thái Nguyên, khoa CNTT đã giúp đỡ và tạo các điều kiện cho chúng tôi được học tập và làm khóa luận một cách thuận lợi

Và cuối cùng tôi xin gửi lời cảm ơn đến gia đình, người thân và bạn bè, những người luôn bên tôi và là chỗ dựa giúp cho tôi vượt qua những khó khăn nhất Họ luôn động viên tôi khuyến khích và giúp đỡ tôi trong cuộc sống và công việc cho tôi quyết tâm hoàn thành luận văn này

Tuy nhiên do thời gian có hạn, mặc dù đã nỗ lực cố gắng hết mình nhưng chắc rằng luận văn khó tránh khỏi những thiếu sót Rất mong được sự chỉ bảo, góp ý tận tình của quý Thầy Cô và các bạn

Tôi xin chân thành cảm ơn!

Thái Nguyên, ngày tháng năm 2015

Ngô Minh Hiếu

Trang 5

MỤC LỤC

LỜI CAM ĐOAN 1

LỜI CẢM ƠN 2

MỤC LỤC 3

HÌNH VẼ 5

BẢNG 6

DANH MỤC CÁC TỪ VIÊT TẮT 7

MỞ ĐẦU 8

CHƯƠNG 1 - TỔNG QUAN VỀ NHẬN DẠNG CHỮ 12

1.1.Qui trình chung của một hệ nhận dạng chữ 12

1.1.1.Phân lớp mẫu 12

1.1.2.Nhận dạng văn bản 13

1.2.Tìm hiểu một số phần mềm nhận dạng chữ 16

1.2.1.VnDOCR 16

1.2.2.FineReader 18

1.2.3.OmniPage 20

1.2.4 VietOCR 20

1.3 Những vấn đề ảnh hưởng tới chất lượng của một phần mềm nhận dạng 22

1.3.1.Chữ bị dính, nhòe 23

1.3.2.Văn bản bị đứt hoặc mất nét 24

1.3.3.Văn bản bị nhiễu 25

1.3.4.Văn bản được in với các kiểu font chữ đặc biệt 26

1.3.5.Cỡ chữ quá lớn hoặc quá nhỏ 26

1.4 Kết luận 27

CHƯƠNG 2 - PHƯƠNG PHÁP ĐÁNH GIÁ HIỆU QUẢ CỦA CÁC THUẬT TOÁN NHẬN DẠNG CHỮ VIỆT 28

2.1 Một số khái niệm 28

2.2 Bài toán hiệu chỉnh chuỗi ký tự (string editing) 29

2.3 Thuật toán Ukkonen 34

Trang 6

2.4 Đánh giá độ chính xác mức ký tự 40

2.5 Đánh giá độ chính xác mức ký tự theo lớp mẫu 45

2.6 Hiệu quả của các ký tự đánh dấu 45

2.7 Độ chính xác mức từ 47

CHƯƠNG 3 :THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 52

3.1.Phân tích, cài đặt chương trình 52

3.1.1.Quy trình thực hiện 52

3.1.2.Các cấu trúc dữ liệu 53

3.1.3.Danh sách các từ dừng trong tiếng Việt 55

3.1.4 Danh sách các ký tự đặc biệt 56

3.1.5.Module đánh giá độ chính xác mức ký tự 57

3.1.6.Module đánh giá độ chính xác mức từ 59

3.2.Đánh giá thực nghiệm 66

3.2.1Dữ liệu thực nghiệm 66

3.2.2 Kết quả thực nghiệm 69

3.3.Kết luận chương 3 71

KẾT LUẬN 72

DANH MỤC TÀI LIỆU THAM KHẢO 73

Trang 7

HÌNH VẼ

Hình 1.1: Qui trình chung của một hệ thống nhận dạng chữ 15

Hình 1.2 Màn hình làm việc của VnDOCR 17

Hình 1.3 Màn hình kết quả phân tích và nhận dạng ảnh hình 1.7 18

Hình 1.4 Màn hình làm việc của OmniPage 20

Hình 1.5 Màn hình làm việc của VietOCR 21

Hình 1.6 Trường hợp văn bản in đậm 23

Hình 1.7: Một số hình ảnh bị biến dạng của các ký tự 23

Hình 1.8 Hình ảnh các ký tự tiếng Việt bị nhập nhằng phần dấu 24

Hình 1.9 Trường hợp văn bản bị đứt và mất nét 24

Hình 1.10 Hình ảnh của ký tự bị biến dạng do lỗi đứt nét 24

Hình 1.11 Một số dạng nhiễu thường gặp trên văn bản 25

Hình 1.12 Văn bản bị các nhiễu đánh dấu 25

Hình 1.13 Văn bản bị nhiễu do bị chồng chữ ký/con dấu 26

Hình 1.14 Văn bản được in với kiểu font chữ đặc biệt 26

Hình 2.1: Đồ thị G(A,B), với A = zxy và B = xyxz 32

Hình 2.2: Các đường đi trên đồ thị G(A, B) 33

Hình 2.3: Sự tương ứng giữa chuỗi văn bản nhận dạng và văn bản mẫu 42

Hình 2.4: Độ chính xác mức từ 49

Hình 3.1 Quy trình thực hiện của chương trình 52

Hình 3.2: Kết quả đánh giá độ chính xác mức ký tự trên một văn bản tiếng Anh 62

Hình 3.3: Đánh giá độ chính xác mức từ trên 1 file văn bản tiếng Anh 66

Trang 8

BẢNG

Bảng 2.1: Giải thuật cho bài toán chỉnh sửa chuỗi 34

Bảng 2.2: Độ chính xác mức ký tự 44

Bảng 3.1 Bảng danh sách các từ dùng trong tiếng Việt 56

Bảng 3.2 Thông tin các thao tác hiệu chỉnh 58

Bảng 3.3 Thông tin về đánh giá độ chính xác mức ký tự 58

Bảng 3.4: Các tập dữ liệu tiếng Anh 67

Bảng 3.5: Các tập dữ liệu Tiếng Việt 68

Bảng 3.6: Độ chính xác mức ký tự trên tập dữ liệu tiếng Anh 69

Bảng 3.7: Độ chính xác mức ký tự trên các tập dữ liệu tiếng Việt 70

Bảng 3.8: Độ chính xác mức từ trêntập dữ liệu tiếng Anh 70

Bảng 3.9: Độ chính xác mức từ tập dữ liệu tiếng Việt 70

Trang 9

2 LCS Longest common

subsequence

Dãy chung dài nhất

3 OCR Optical Character

Recognition

Nhận dạng ký tự quang học

Trang 10

MỞ ĐẦU

1 Tính cấp thiết của luận văn

Nhận dạng mẫu là một ngành khoa học mà vai trò của nó là phân lớp các đối tượng thành một số loại hoặc một số lớp riêng biệt Tuỳ thuộc vào lĩnh vực ứng dụng, các đối tượng có thể ở dạng ảnh, dạng tín hiệu sóng hoặc một kiểu dữ liệu bất kỳ nào đó mà cần phải phân lớp Những đối tượng này được gọi bằng một thuật ngữ chung đó là “mẫu” (pattern) Nhận dạng mẫu đã được biết đến từ rất lâu, nhưng trước những năm 1960 nó hầu như chỉ là kết quả nghiên cứu về mặt lý thuyết trong lĩnh vực thống kê Tuy nhiên, với sự phát triển không ngừng của khoa học kỹ thuật về phần cứng cũng như phần mềm, các yêu cầu về mặt ứng dụng thực tế của lĩnh vực nhận dạng mẫu ngày càng tăng lên và hiện nay nhận dạng mẫu đã được sử dụng trong rất nhiều lĩnh vực như y học, tự động hoá một số qui trình sản xuất công nghiệp, dự báo thời tiết, dự báo cháy rừng,v.v Ngoài ra nhận dạng mẫu còn là thành phần quan trọng trong hầu hết các hệ thống máy tính thông minh được xây dựng để thực hiện việc ra quyết định

Cùng với sự phát triển của nhận dạng mẫu, nhận dạng chữ đã và đang ngày càng trở thành một ứng dụng không thể thiếu được trong đời sống xã hội của con người Nhận dạng chữ là quá trình chuyển đổi từ dạng hình ảnh của một hay nhiều trang ảnh chứa các thông tin văn bản thành tệp văn bản thực sự

có thể soạn thảo được trên máy tính Ngoài ứng dụng số hóa các trang văn bản, tài liệu, hiện tại nhận dạng chữ còn được ứng dụng rộng rãi trong các hoạt động giao dịch hàng ngày và qui trình tự động hóa các công việc văn phòng, chẳng hạn như nhập liệu tự động phiếu chấm thi trắc nghiệm, phiếu điều tra, nhận dạng các dòng địa chỉ trên phong bì thư, nhận dạng nhãn sản phẩm, nhận dạng thông tin cá nhân trên chứng minh nhân, hộ chiếu, card visit,v.v

Trang 11

Trên thế giới, bài toán nhận dạng chữ đã được đầu tư nghiên cứu từ những năm 50 của thế kỷ trước Những sản phẩm nhận dạng chữ hiện đã được thương mại hóa rộng rãi trên thị trường, điển hình như ABBYY FineReader

11 (có khả năng nhận dạng được 189 ngôn ngữ khác nhau, kể cả tiếng Việt) Bên cạnh đó, còn có các dòng sản phẩm được tích hợp với phần cứng của máy tính như OmniPage, Omniform, Scanshell, v.v Với lợi thế có một cộng đồng nghiên cứu rộng lớn, từ những năm 1996, Viện nghiên cứu khoa học thông tin (The Information Science Research Institute – ISRI), thuộc trường Đại học Nevada, Las Vegas đã kết hợp với các nhóm nghiên cứu tại Mỹ và Anh để xây dựng một một bộ công cụ đánh giá hiệu quả của các engine nhận dạng (OCRtk) và một cơ sở dữ liệu văn bản mẫu lớn (gồm trên 2229 trang văn bản), đa dạng về chủng loại (sách , báo, tạp chí, fax, thư tín, báo cáo tài chính của các doanh nghiệp, tài liệu khoa học kỹ thuật, văn bản luật, v.v.) và chất lượng Mỗi trang văn bản được quét với lần lượt với 3 ngưỡng độ phân giải 200, 300 và 400 dpi với các mức độ đậm, nhạt khác nhau Ngoài ra, để đánh giá hiệu quả của các thuật toán nhận dạng chữ viết tay còn có các bộ dữ liệu chuẩn như đối với nhận dạng chữ viết tay còn có các bộ dữ liệu chuẩn như MNIST, USPS, v.v

Cùng với xu thế phát triển của thế giới, bài toán nhận dạng chữ Việt cũng đã thu được những kết quả ứng dụng đáng kể, với các sản phẩm thương mại hóa điển hình như sản phẩm VnDOCR (đã được ứng dụng tại hầu hết các

cơ quan, đơn vị trên toàn quốc), sản phẩm FineReader 11 (đã được ứng dụng

để số hóa tài liệu trong các dự án chính phủ điện tử) Tuy nhiên, do mới chỉ thực sự được đầu tư nghiên cứu trong khoảng hơn chục năm trở lại đây nên các sản phẩm nhận dạng chữ Việt chưa thể đáp ứng được hết các yêu cầu của người sử dụng, chẳng hạn như độ chính xác nhận dạng không cao đối với chữ viết tay và các văn bản đầu vào kém chất lượng, chỉ làm việc với ảnh đa cấp

Trang 12

xám hoặc ảnh nhị phân có nền đồng nhất, [1] Vì những lý do nêu trên, việc đầu tư nghiên cứu để tiếp tục nâng cao độ chính xác của các thuật toán nhận dạng chữ Việt là một vấn đề thực sự cần thiết, có cả ý nghĩa khoa học lẫn thực tiễn Vấn đề lớn nhất mà hiện nay các nhóm nghiên cứu về nhận dạng chữ Việt đang phải đối mặt là chưa có được một bộ công cụ cũng như cơ sở dữ liệu mẫu chuẩn, phục vụ cho việc thử nghiệm và đánh giá các thuật toán nhận dạng

2 Mục tiêu của luận văn

Nội dung nghiên cứu của luận văn hướng tới 2 mục tiêu chính:

 Xây dựng bộ công cụ đánh giá độ chính xác của các phần mềm nhận dạng chữ Việt

 Xây dựng cơ sở dữ liệu mẫu chuẩn, phục vụ cho việc nghiên cứu, đánh giá và thử nghiệm các thuật toán nhằm nâng cao chất lượng nhận dạng

Phần thực nghiệm, luận văn sẽ tiến hành đánh giá độ chính xác của một số phần mềm nhận dạng chữ hiện đang được thương mại hóa hoặc công bố rộng rãi trên thị trường như VnDOCR, FineReader, Omnipage, VietOCR

3 Bố cục của luận văn

Các nội dung trình bày trong luận văn được chia thành 3 chương:

Chương I: Tổng quan về nhận dạng chữ

Chương này trình bày tổng quan về bài toán nhận dạng chữ, những yếu

tố ảnh hưởng tới độ chính xác của các phần mềm nhận dạng chữ

Chương II: Phương pháp đánh giá hiệu quả của các phần mềm nhận dạng chữ Việt

Chương này trình bày cơ sở lý thuyết của các độ đo và phương pháp đánh giá chất lượng (độ chính xác) của các hệ thống nhận dạng được đề xuất

Trang 13

trên cơ sở bài toán đối sánh hai chuỗi ký tự dựa trên ý tưởng quy hoạch động với họ các hàm mục tiêu được xây dựng từ các chi phí của các bước hiệu chỉnh để biến văn bản được nhận dạng thành văn bản mẫu

Chương III: Thực nghiệm và đánh giá kết quả

Trong chương III, luận văn sẽ mô tả chi tiết quá trình cài đặt chương trình thử nghiệm tự động đánh giá chất lượng (độ chính xác) của các phần mềm (thuật toán) nhận dạng chữ Chương trình được kiểm thử với các phần mềm VnDOCR, FineReader, Omnipage, VietOCR, v.v

Trang 14

CHƯƠNG 1 - TỔNG QUAN VỀ NHẬN DẠNG CHỮ

Nhận dạng chữ là lĩnh vực được nhiều nhà nghiên cứu quan tâm và cho đến nay lĩnh vực này cũng đã đạt được nhiều thành tựu cả về mặt lý thuyết lẫn ứng dụng thực tế Chương này sẽ trình bày các khía cạnh tổng quan về bài toán nhận dạng chữ Trong đó, phần đầu tiên của chương sẽ đề cập đến các thao tác xử lý cơ bản trong qui trình chung của bài toán nhận dạng chữ Phần tiếp theo là những tìm hiểu, khảo sát về các phần mềm nhận dạng chữ đang được công bố và thương mại hóa trên thị trường như phần mềm FineReader, VnDOCR, Omnipage, VietOCR Phần cuối cùng trình bày và hệ thống lại những vấn đề thường gặp trong bài toán nhận dạng cũng như các yếu tố ảnh hưởng đến chất lượng của một hệ thống nhận dạng

1.1 Qui trình chung của một hệ nhận dạng chữ

Qui trình chung của một hệ thống nhận dạng chữ thường gồm hai giai đoạn là: Phân lớp mẫu và nhận dạng văn bản

1.1.1 Phân lớp mẫu

Phân lớp (sắp lớp) mẫu là giai đoạn quyết định trong quá trình nhận dạng Hai kiểu phân lớp điển hình thường được sử dụng là: phân lớp có giám sát (học có giám sát) và phân lớp không giám sát (học không giám sát) Các vấn đề thường được đặt ra trong bước phân lớp là:

 Độ chính xác: Độ tin tưởng của một luật phân lớp được thể hiện bởi tỷ

lệ phân lớp đúng Nhìn chung, độ chính xác được đo bởi tập dữ liệu học và độ chính xác được đo bởi tập dữ liệu thử nghiệm là khác nhau Đây không phải là một điều bất thường, đặc biệt trong các ứng dụng học máy, đối với tập dữ liệu học thì có thể đúng hoàn toàn, nhưng trên tập dữ liệu thử nghiệm có khi kết quả lại rất tồi tệ Khi nói đến độ chính xác của một thuật toán phân lớp thì thường là nói đến độ chính xác trên tập dữ liệu thử nghiệm Kinh nghiệm thực tế cho thấy, độ chính xác của

Trang 15

một thuật toán phân lớp phụ thuộc khá nhiều vào tập dữ liệu học (cả về mặt số lượng lẫn chất lượng) nói một cách khác là việc trích chọn đặc trưng của các mẫu có ảnh hưởng lớn tới độ chính xác của quá trình phân lớp

 Tốc độ phân lớp: Đây là yếu tố đặc biệt quan trọng đối với các hệ

thống có tính thời gian thực, chẳng hạn như nhận dạng chữ viết tay trực tuyến (online),

 Tính dễ hiểu: Thuật toán phân lớp đơn giản, dễ cài đặt và hiệu quả

 Thời gian học: Nhất là trong một môi trường thường xuyên thay đổi,

cần phải học một luật phân lớp một cách nhanh chóng hoặc hiệu chỉnh một luật đã có trong thời gian thực Để học nhanh, nhiều khi ta chỉ cần

sử dụng một số lượng nhỏ các mẫu huấn luyện để thiết lập các luật phân lớp

1.1.2 Nhận dạng văn bản

Các bước cần thực hiện trong giai đoạn này được thể hiện cụ thể trên Hình 1.1 [1] bao gồm:

1 Thu nhận và lưu trữ ảnh: Đây là công đoạn đầu tiên trong một quá

trình nhận dạng ảnh Trong một hệ thống nhận dạng, ảnh thường được thu nhận qua scanner, sau đó được lưu trữ dưới các định dạng file (.pcx,

.bmp, .jpg, .tif, .gif, .png, ) Nhìn chung việc lựa chọn định dạng file lưu trữ sẽ tuỳ thuộc vào các văn bản đầu vào cần nhận dạng và các yêu cầu cụ thể của từng hệ thống

2 Tiền xử lý ảnh: Đây là công đoạn sử dụng các kỹ thuật xử lý ảnh để

nâng cao chất lượng ảnh đầu vào Nhìn chung, chất lượng của ảnh đầu vào sẽ ảnh hưởng nhiều đến chất lượng nhận dạng Vì vậy, tiền xử lý ảnh

là một bước không thể thiếu được trong một hệ thống nhận dạng hay xử lý

Trang 16

ảnh Các kỹ thuật thường được sử dụng trong quá trình tiền xử lý là: Phân ngưỡng, căn chỉnh độ lệch trang văn bản, lọc nhiễu, nối nét đứt trên ảnh,

3 Phân đoạn ảnh: Đây là một trong những công đoạn quan trọng nhất

trọng nhất của quá trình nhận dạng và có ảnh hưởng lớn đến kết quả nhận dạng Hai cách tiếp cận phổ biến được đề xuất trong quá trình phân đoạn ảnh là:

 Cách tiếp cận trên xuống (top-down): Toàn bộ ảnh văn bản cần phân đoạn được coi là một khối lớn, sau đó khối này được phân thành các khối nhỏ hơn, các khối nhỏ này lại tiếp tục được phân thành các khối nhỏ hơn nữa cho đến khi thu được các ký tự hoặc không thể phân nhỏ hơn được nữa Nhìn chung, với cách tiếp cận này, phương pháp thường dùng để phân đoạn ảnh là sử dụng các biểu đồ tần suất ngang và dọc Tuy nhiên, do biểu đồ tần suất bị ảnh hưởng nhiều bởi độ nghiêng trang văn bản nên trước khi xử lý phân đoạn, ta thường phải căn chỉnh độ lệch của trang văn bản

 Cách tiếp cận dưới lên (bottom-up): Quá trình phân đoạn bắt đầu bằng việc xác định những thành phần nhỏ nhất, sau đó gộp chúng lại thành những thành phần lớn hơn, cho đến khi thu được tất cả các khối trong trang văn bản

Trang 17

Hình 1.1: Qui trình chung của một hệ thống nhận dạng chữ

4 Nhận dạng: Đây chính là thao tác gán nhãn cho đối tượng dựa trên

những tri thức đã học được, nói cách khác đây là thao tác tìm kiếm một lớp mẫu phù hợp nhất với đối tượng đầu vào

5 Học mẫu mới: Do tập mẫu huấn luyện không thể bao quát được toàn bộ

các mẫu trong thực tế nên trong quá trình nhận dạng có thể sẽ gặp những mẫu mới mới mà hệ thống không thể nhận dạng chính xác được Khi đó việc học thêm những mẫu này sẽ góp phần làm tăng chất lượng của hệ thống nhận dạng

6 Hậu xử lý: Đây là một trong những công đoạn cuối cùng của quá trình

nhận dạng Trong nhận dạng chữ, có thể hiểu hậu xử lý là bước ghép nối các ký tự đã nhận dạng được thành các từ, các câu, các đoạn văn nhằm tái

Phân trang văn bản

Nhận dạng Cập nhật tri thức

(thông qua huấn

luyện mẫu mới)

Hậu xử lý Tiền xử lý

Lưu văn bản

Cơ sở tri thức Thu nhận ảnh

Trang 18

hiện lại văn bản đồng thời phát hiện ra các lỗi nhận dạng bằng cách kiểm tra chính tả dựa trên cấu trúc và ngữ nghĩa của câu, đoạn văn Việc phát hiện ra các lỗi, các sai sót trong nhận dạng ở bước này đã góp phần đáng

kể vào việc nâng cao kết quả nhận dạng Đặc biệt đối với các ảnh văn bản đầu vào không tốt (chẳng hạn: Bản in bị mờ, bị đứt nét do photo nhiều lần, ) hoặc các văn bản in chứa nhiều thông tin hỗn hợp (chẳng hạn: Trong văn bản có cả số lẫn chữ và các ký hiệu), điều này rất dễ gây nhầm lẫn trong nhận dạng Thậm chí có những trường hợp nhập nhằng chỉ có thể giải quyết được bằng ngữ cảnh bằng cách phân tích ngữ cảnh của câu, chẳng hạn như trường hợp nhập nhằng giữa từ “lO” với số “10”

7 Lưu văn bản: Sau khi văn bản cần nhận dạng đã được tái tạo về dạng

nguyên bản sẽ được lưu lại ở các định dạng file được hệ thống hỗ trợ, chẳng hạn như file dạng (.doc, rtf, xls, )

1.2 Tìm hiểu một số phần mềm nhận dạng chữ

1.2.1 VnDOCR

Phần mềm nhận dạng tiếng Việt VnDOCR là một sản phẩm của Viện Công nghệ Thông tin VnDOCR có khả năng nhận dạng ký tự tiếng Việt từ máy scan hoặc file ảnh và chuyển đổi về dạng file văn bản như: *.doc.*.txt,

*.xls, *.rtf, [18] và có thể đọc và sửa trên các phần mềm soạn thảo văn bản thông dụng như Office, Wordpad, Notepad

Trang 19

Hình 1.2: Màn hình làm việc của VnDOCR

Môi trường

+ PC với hệ điều hành Windows 9x, Windows ME, Windows 2000, Windows

XP hoặc Windows NT

Tiện ích: Bộ gõ chữ Việt và bộ phông ABC, VNI, Unicode

Thông tin đưa vào

+ Quét trực tiếp các loại sách báo, văn bản qua máy quét (scanner)

+ Đọc và xử lý hơn 30 dạng tệp tin ảnh phổ dụng nhất như PCX, BMP, TIF, GIF, JPG,

Có thể nhận dạng trực tiếp tài liệu quét qua scanner Các trang tài liệu có thể được quét và lưu trữ dưới dạng tệp tin nhiều trang

Có thể là các dạng tệp tin của Microsoft Word (.doc), tệp ký tự ASCII (.txt), Rich Text Format (.rtf), *.xls (đối với bảng biểu)

Theo công bố, độ chính xác của phần mềm có thể đạt tới 99 % trong trường hợp các file ảnh cần nhận dạng có chất lượng tốt

Trang 20

- Nhận dạng văn bản: Nhận dạng các khối văn bản đã được xác định ở bước phân trang

- Hậu xử lý: Định dạng lại trang văn bản ban đầu, chỉnh lỗi chính tả,…

Một số hạn chế của phần mềm (Tính đến phiên bản 4.0)

- VnDOCR chỉ làm việc với ảnh đen trắng

- Với ảnh có cấu trúc vật lí phức tạp thì hiệu quả phân tích trang và độ chính xác nhận dạng còn chưa cao

Trang 21

Môi trường làm việc:

PC với hệ điều hành: Windows XP, 2003, Vista, 2008, Windows 7,

Windows 8, Windows 8.1

Các tính năng cơ bản của phần mềm:

 Tiền xử lý: Căn chỉnh độ nghiêng, tăng cường chất ảnh (xóa nhiễu, làm dày nét chữ nhằm nối nét đứt, làm mỏng nét chữ,… )

 Phân tích cấu trúc trang văn bản nhằm xác định các vùng thông tin khác nhau (chẳng hạn vùng ảnh, vùng văn bản, vùng bảng, các dạng tiêu đề…)

 Hậu xử lý: Định dạng lại trang văn bản ban đầu, chỉnh lỗi chính tả,…

 Ngoài ra còn có các tính năng mở rộng như:

 Xuất ra XML và tích hợp với Microsoft Office Word

 Hỗ trợ các fiel ảnh đầu vào có định dạng file PDF

 Kết quả nhận dạng có thể được xuất ra nhiều định dạng file như: DOC, DOCX, XLS, XLSX, PPTX, RTF, PDF,PDF/A, HTML, CSV, TXT, ODT, EPUB, FB2, DjVu

 Chức năng tìm kiếm với Morphology Support

 Các tùy chọn lưu ảnh cao cấp

 Các ứng dụng thêm cho việc hoàn thành và in ấn các Form

Trang 22

1.2.3 OmniPage

OmniPage là phần mềm nhận dạng văn bản của Nuance, có khả năng nhận dạng trên 120 ngôn ngữ, độ chính xác có thể đạt tới 99% trên các file ảnh đầu vào chất lượng tốt [20]

Hình 1.4: Màn hình làm việc của OmniPage

Các tính năng cơ bản của phần mềm:

 Hỗ trợ nhiều định dạng file ảnh, bao gồm cả file pdf

 Nhận dạng chính xác tới 99% trên hơn 120 ngôn ngữ khác nhau

 Nhận dạng được các trang có nhiều loại font, kiểu font hoặc có nền

Trang 23

Hình 1.5: Màn hình làm việc của VietOCR

Các tính năng cơ bản của phần mềm:

Hạn chế của phần mềm: Độ chính xác nhận dạng không cao, các module

phân trang văn bản chưa tốt

Trang 24

1.3 Những vấn đề ảnh hưởng tới chất lượng của một phần mềm nhận dạng

Chất lượng của ảnh đầu vào là yếu tố quyết định tới độ chính xác của một hệ thống nhận dạng Hầu hết các hệ thống nhận dạng chữ hiện đang được thương mại hóa trên thị trường đều cho độ chính xác cao trên những ảnh đầu vào có chất lượng tốt Tuy nhiên, độ chính xác này thường không được đảm bảo trong trường hợp ngược lại Ngay cả khi văn bản được in thông thường,

dễ dàng nhận dạng mặt chữ và định dạng, vẫn có rất nhiều lỗi sinh ra do ảnh đầu vào có chất lượng thấp hay nói một cách khác là do những lỗi về mặt hình ảnh (imaging defect) Những lỗi này thường bao gồm các ký tự bị dính, bị nhiễu, in quá đậm, các ký tự bị mờ, đứt hoặc mất nét Ngoài ra các nhiễu vệt

và các đường baseline cong cũng là những nguyên nhân gây ảnh hưởng đến chất lượng nhận dạng Các lỗi hình ảnh thường sinh ra trong quá trình in ấn (printing process) hoặc quá trình thu nhận hình ảnh (scanning process) Các băng mực máy in quá đậm có thể tạo ra các ký tự bị nhòe hoặc có vết bẩn, trong khi các băng mực bị mòn sẽ sinh ra các bản in mờ nhạt Việc sao chụp (photocopy) các văn bản nhiều lần sẽ làm mất dần các thông tin làm cho các

ký tự trên đó bị đứt, gẫy và mất nét Ở bước thu nhận hình ảnh, các phần mềm điều khiển thiết bị quét thường cho phép người dùng hiệu chỉnh ngưỡng độ sáng thông qua chức năng điều khiển độ sáng (brightness control) Việc lựa chọn giá trị ngưỡng này ảnh hưởng trực tiếp tới độ chính xác của hệ thống OCR bởi vì nếu chọn ngưỡng thấp sẽ làm cho các ký tự bị đứt, mất nét (broken characters), nếu chọn ngưỡng cao sẽ làm cho các ký tự bị dính (touching characters) Giá trị ngưỡng này đôi khi cũng bất thường do các nhiễu nhiệt hoặc nhiễu điện, bản thân độ nhạy cảm (sensitivity) cũng có thể rất khác nhau giữa các phần tử cảm ứng của máy quét do sự không hoàn hảo

Trang 25

của qui trình sản xuất Do đó, các ký tự giống hệt nhau trên các phần khác nhau trên trang văn bản có thể có hình ảnh nhị phân khác nhau [1]

1.3.1 Chữ bị dính, nhòe

Tách ký tự (character segmentation) là quá trình xác định vị trí của các

ký tự riêng biệt trong một từ Khi các ký tự bị dính nhau hoặc bị nhòe do chữ được quá đậm, các hệ thống OCR cần phải áp dụng những kỹ thuật đặc biệt

để phân tách chúng (xem Hình 1.6)

Hình 1.6: Trường hợp văn bản in đậm

Thậm chí đối với những ký tự có thể phân tách một cách dễ dàng, việc in quá đậm cũng có thể làm biến dạng hình ảnh của chúng, làm cho việc nhận dạng chúng rất khó khăn Với kiểu in đậm, hình dạng của các ký tự hoa thường có xu hướng tương tự nhau và giống như các hình khối Điều này gây khó khăn cho việc phân tách và nhận dạng chúng (xem Hình 1.7)

Hình 1.7: Một số hình ảnh bị biến dạng của các ký tự

Ngoài ra, đối với các văn bản kém chất lượng, đã qua nhiều bước tiền xử

lý, hình ảnh của các ký tự tiếng Việt có thể bị biến dạng do phần dấu bị nhòe,

bị dính vào các thành phần khác của chữ và rất khó để phân biệt (xem Hình 1.8)

Trang 26

Hình 1.8: Hình ảnh các ký tự tiếng Việt bị nhập nhằng phần dấu

1.3.2 Văn bản bị đứt hoặc mất nét

Thực tế cho thấy là các ký tự bị đứt/mất nét gây ra nhiều lỗi hơn các ký

tự in đậm hoặc mờ Đây có thể là hệ quả của một thực tế là thông thường sẽ

có nhiều điểm trắng hơn điểm đen cho dù là trong trong các vùng văn bản của trang ảnh Như vậy, việc chuyển từ một điểm đen sang điểm trắng sẽ mất nhiều thông tin hơn là trường hợp ngược lại Các nguyên nhân điển hình gây

ra sự đứt/mất nét ký tự thường là do băng mực máy in bị mòn, các văn bản cần nhận dạng đã qua sao chụp nhiều lần hoặc ảnh được quét với độ phân giải thấp (xem Hình 1.9)

Hình 1.9: Trường hợp văn bản bị đứt và mất nét

Hình ảnh của các ký tự thu được từ các văn bản này có thể bị thiếu hoặc mất đi những đặc trưng quan trọng giúp nhận biết được ký tự (xem Hình 1.10)

Hình 1.10: Hình ảnh của ký tự bị biến dạng do lỗi đứt nét

Nhìn chung, thách thức đối với một thuật toán phân lớp ký tự hiện vẫn là trường hợp chỉ còn lại một vài điểm ảnh của một ký tự, thậm chí không đủ để

Trang 27

con người nhận biết ký tự đó một cách riêng biệt Khi có quá nhiều ký tự bị đứt nét có thể làm hỏng cả đoạn văn bản Các hệ thống nhận dạng rất khó xử

lý những trường hợp như vậy, và có thể sinh ra những kết quả sai lệch hoàn toàn Trong những trường hợp đứt nét phức tạp, việc xác định mảnh nào thuộc vào ký tự nào là một công việc rất khó đối với một hệ thống OCR

1.3.3 Văn bản bị nhiễu

Các dạng nhiễu đặc biệt là nhiễu dạng vệt rất dễ gây nhầm lẫn cho các hệ thống OCR Nhiễu thường sinh ra do chất lượng in thấp hoặc do giấy in không tốt (chẳng hạn giấy báo) Mặc dù nhiễu thường bắt nguồn từ các trang văn bản cần nhận dạng, nhưng chúng cũng có thể được sinh ra bởi các đốm bụi trên trục lăn của máy quét, bởi các vết hằn từ mặt kia của trang văn bản (xem Hình 1.11)

Hình 1.11: Một số dạng nhiễu thường gặp trên văn bản

Bên cạnh những nhiễu liên quan đến chất lượng in ấn và chất lượng máy quét, còn có rất nhiều dạng nhiễu có thể xuất hiện trên văn bản gốc cần nhận dạng Chẳng hạn như các dạng nhiễu do người đọc cố tình khoanh tròn hoặc gạch chân vào các vùng văn bản (xem Hình 1.12)

Hình 1.12: Văn bản bị các nhiễu đánh dấu

Trang 28

Đặc biệt với các văn bản ở dạng công văn, biên bản hoặc quyết định, thường xuất hiện các loại nhiễu do con dấu hoặc chữ kí bị chờm lên các vùng văn bản cần nhận dạng (xem Hình 1.13) Những nhiễu dạng này hiện vẫn là vấn đề khó đối với bài toán nhận dạng

Hình 1.13: Văn bản bị nhiễu do bị chồng chữ ký/con dấu

1.3.4 Văn bản được in với các kiểu font chữ đặc biệt

Các hệ thống nhận dạng thường được huấn luyện để nhận dạng các ký tự của các kiểu font chữ thông thường chẳng hạn đối với tiếng Việt có các font chữ Unicode thường dùng như Arial, Courier, Tahoma, Times New Roman

và Verdana Do các ký tự của font chữ VnTime không khác biệt nhiều so với các ký tự của font chữ Times, một hệ thống OCR có khả năng nhận dạng các

ký tự của font chữ VnTime một cách dễ dàng mà không cần phải được huấn luyện với font chữ này

Tuy nhiên khi văn bản được in với font chữ đặc biệt chẳng hạn như VnGothic (xem Hình 1.14) Đây là font chữ khác hẳn với các loại font chữ trên, hệ thống nhận dạng có thể sẽ bị thất bại hoàn toàn nếu nó không được huấn luyện trước với kiểu font chữ này

Hình 1.14: Văn bản được in với kiểu font chữ đặc biệt

1.3.5 Cỡ chữ quá lớn hoặc quá nhỏ

Cỡ chữ quá lớn về bản chất là không khó để nhận dạng Tuy nhiên các hệ thống OCR thường được tối ưu cho các cỡ chữ thông thường Để đối phó với

Trang 29

các các ký tự có kích cỡ quá lớn, các hệ thống OCR có thể chuẩn hóa chúng, tức là giảm kích thước của chúng tới kích thước chuẩn trước khi nhận dạng chúng Tuy nhiên, quá trình xử lý này có thể làm biến dạng hình ảnh của ký

tự Điều này có thể gây ra các lỗi nhập nhằng cho thuật toán phân lớp ký tự Ngược lại, đối với những văn bản được in với cỡ chữ quá bé, rất nhiều chi tiết quan trọng của ký tự có thể bị mất đi khi được quét với độ phân giải

30 DPI Trong trường hợp này, việc quét văn bản với độ phân giải cao hơn có thể khắc phục được vấn đề trên Tuy nhiên, điều này lại có thể gây ra hiện tượng nhòe và dính nét ký tự gây khó khăn cho các hệ thống nhận dạng trong việc phân tách các ký tự

1.4 Kết luận

Trong chương này, luận văn đã đề cập đến các bước cơ bản của một quá trình nhận dạng chữ với 6 bước cơ bản, bao gồm thu nhận ảnh, tiền xử lý, phân trang văn bản, nhận dạng, hậu xử lý, lưu văn bản Bên cạnh đó, luận văn

đã tập trung khảo sát một số phần mềm nhận dạng chữ hiện đang được công

bố và thương mại hóa trên thị trường như phần mềm VnDOCR của Viện Công nghệ Thông tin, viện Hàn Lâm Khoa Học và Công Nghệ Việt Nam, phần mềm FineReader của hãng ABBYY, phần mềm OmniPage của hãng Nuance và phần mềm VietOCR, được xây dựng từ thư viện mã nguồn mở Tesseract của Google Ngoài ra, phần cuối của chương cũng đã tìm hiểu và hệ thống lại những vấn đề ảnh hưởng tới chất lượng của một hệ thống nhận dạng

Trang 30

CHƯƠNG 2 - PHƯƠNG PHÁP ĐÁNH GIÁ HIỆU QUẢ CỦA

CÁC PHẦN MỀM NHẬN DẠNG CHỮ VIỆT

Một hệ thống nhận dạng chữ có thể được định nghĩa một cách hình thức

là một hệ thống máy tính có khả năng chuyển đổi có khả năng chuyển đổi các văn bản in trên giấy thành các văn bản điện tử có khả năng soạn thảo, hiệu chỉnh và tìm kiếm,v.v

Trong chương này, luận văn trình bày cơ sở lý thuyết của các độ đo và phương pháp đánh giá chất lượng (độ chính xác) của các hệ thống nhận dạng dựa trên ý tưởng tìm kiếm một ánh xạ (sự tương ứng) giữa các ký tự trong file văn bản được nhận dạng với các ký tự trong file văn bản mẫu

Các kết quả khảo sát từ thực tế cho thấy các lỗi chính tả trên các file văn bản được nhận dạng thường sinh ra do bị mất (không nhận dạng được) hoặc thừa ký tự (do việc phân tách ký tự bị sai) Do vậy, chúng ta không thể giả thuyết ký tự thứ i trong file văn bản được nhận dạng tương ứng với ký tự thứ i trong file văn bản mẫu Trong thực tế, có thể tìm kiếm ánh xạ giữa hai chuỗi

ký tự bằng cách xác định một chuỗi các thao tác hiệu chỉnh để biến chuỗi ký

tự này thành chuỗi ký tự kia với chi phí tối thiểu Việc tìm kiếm sự tương ứng tối ưu này được biết đến như bài toán hiệu chỉnh chuỗi ký tự

2.1 Một số khái niệm

 Tỷ lệ nhận dạng (recognition rate): Tỷ lệ phần trăm của các ký tự

được phân lớp một cách chính xác

 Tỷ lệ loại bỏ (rejection rate): Tỷ lệ phần trăm của các ký tự mà hệ

thống không có khả năng nhận dạng Trong quá trình xử lý, một hệ thống nhận dạng dạng có thể đánh dấu lại các ký tự bị loại bỏ và không cần xét đến ở các bước hiệu chỉnh sau đó

 Tỷ lệ lỗi (error rate): Tỷ lệ phần trăm của các ký tự bị phân lớp sai

Các ký tự bị phân lớp sai không được phát hiện bởi hệ thống, việc kiểm

Trang 31

tra lại văn bản đã nhận dạng là cần thiết để phát hiện và hiệu chỉnh những lỗi này

 Chuỗi ký tự: Chuỗi ký tự là một dãy các ký tự được kết thúc bằng ký

tự NULL (‘\0’) Ở đây, mỗi văn bản mẫu và mỗi văn bản được nhận

dạng sẽ được coi là một chuỗi ký tự

 Chuỗi con (subsequence): Nếu một chuỗi A bất kỳ có thể biến đổi

được thành chuỗi ký tự C bởi không hoặc nhiều thao tác xóa thì C được gọi là chuỗi con (subsequence) của A

 Chuỗi con chung (common subsequence): Một chuỗi ký tự C được

gọi là chuỗi con chung của 2 chuỗi A và B nếu và chỉ nếu C là chuỗi

con của A và C là chuỗi con của B

 Chuỗi con chung lớn nhất (longest common subsequence -LCS):

Nếu C là một chuỗi con chung của hai chuỗi A, B và không tồn tại bất

kỳ một chuỗi con nào khác của A, B mà có số ký tự nhiều hơn C thì C được gọi là chuỗi con chung lớn nhất của A và B, ký hiệu C =

LCS(A,B)

Cụ thể, giả sử LA,B là số lượng ký tự trong LCS(A,B) của A và B

Nếu A = yxzyyx và B = yyxx, thì:

- Chuỗi yzyx là một chuỗi con của A

- Chuỗi xx là một chuỗi con chung của A và B

- Chuỗi yxx và yyx là các chuỗi con chung dài nhất của A và B, LA,B =3. 2.2 Bài toán hiệu chỉnh chuỗi ký tự (string editing)

Cho = … là chuỗi gồm m ký tự và chuỗi = …gồm n ký tự trong bảng chữ cái ∑ Trong bài toán hiệu chỉnh chuỗi ký tự, 3 thao tác hiệu chỉnh có thể được áp dụng cho A:

1 Thao tác chèn (Insertion): chèn bất kì ký hiệu nào trong bảng chữ cái ∑

vào trước , sau hoặc giữa và (1 ≤i <m );

Trang 32

2 Thao tác xóa (Deletion): một ký tự có thể bị xóa (1 ≤i ≤m);

3 Thao tác thay thế (Substitution): một ký tự ai nào đó có thể bị thay thế bởi một ký tự x bất kỳ (x≠ai) (1 ≤i ≤m);

Một hàm chi phí γ= ( , , ) xác định chi phí của chèn, xóa và thay thế, tương ứng, với , , là các số thực không âm

Giả sử , , là chi phí tối thiểu để biến chuỗi A thành chuỗi B sử dụng hàm chi phí γ Khi γ là (1,1,1) hoặc (1,1,2) thì , , được gọi là

khoảng cách Levenshtein (Levenshtein distance) giữa A và B Hàm khoảng cách này còn được gọi là không gian Levenshtein (Levenshtein metric) bởi

vì nó đáp ứng được các tính chất của một metric:

1 , , >0 nếu A≠ B; , , =0;

2 , , = , , ;

3 , , ≤ , , + , , ;

Đối với một hàm chi phí tùy ý γ = (γ ,γ ,γ ), d , , được gọi là

khoảng cách hiệu chỉnh (edit distance) hoặc khoảng cách Levenshtein có trọng số (weighted Levenshtein distance) giữa A và B Hàm khoảng cách

này là một metric khi γ = γ >0 và γ >0

Từ đây chúng ta có thể đưa bài toán hiệu chỉnh chuỗi thành bài toán

tìm đường đi ngắn nhất trên một đồ thị hiệu chỉnh (edit graph) được định

nghĩa cụ thể như sau:

Giả sử = … và = … là các chuỗi ký tự, có độ

dài tương ứng m và n (m ≥ 0, n ≥ 0) Đồ thị hiệu chỉnh của A và B, ký hiệu

, là một đồ thị có hướng, không có chu trình, có (m+1)(n+1) đỉnh,

được ký hiệu , với 0 ≤ i ≤ m và 0 ≤ j ≤ n Các cạnh (cung) của đồ thị , được chia thành ba nhóm:

Trang 33

1 Cạnh ngang (horizontal arcs): các cạnh ( , , , ), với 0 ≤ i ≤

Nếu ai = bj thì cạnh chéo ( , , , ) được gọi là cạnh phù hợp

(matching arc), ngược lại thì được gọi là một cạnh không phù hợp

Một đường hiệu chỉnh (edit path) là một đường đi có hướng bất kỳ từ

đỉnh , đến , trên đồ thị , Đường đi này xác định một chuỗi các thao tác hiệu chỉnh để biến chuỗi A thành chuỗi B Một cạnh ngang ( , ,

, ) trên đường đi xác định rằng ký tự được chèn vào, trong khi đó một cạnh dọc ( , , , ) xác định rằng ký tự bị xóa Một cạnh không phù hợp ( , , , ) xác định rằng bị thay thế bởi , và một cạnh phù hợp ngầm định rằng không có thao tác hiệu chỉnh nào được thực hiện Trong thực tế, các cạnh phù hợp trên đường đi sẽ xác định một chuỗi con chung của A và B

Nếu trọng số của mỗi cung bằng với chi phí của bước hiệu chỉnh mà

nó đang biểu diễn thì một đường hiệu chỉnh có trọng số nhỏ nhất sẽ được coi là một đường đi tối ưu (đường đi ngắn nhất) trên đồ thị hiệu chỉnh ,

và tổng trọng số (độ dài) của đường đi đó được gọi là khoảng cách hiệu chỉnh giữa 2 chuỗi

Hình 2.1 thể hiện đồ thị hiệu chỉnh cho các chuỗi A = zxy và B = xyxz Mỗi cạnh biểu diễn một thao tác hiệu chỉnh đã được gán nhãn với I là

Trang 34

thao tác chèn, D là thao tác xóa, S là thao tác thay thế Các cạnh phù hợp không được gán nhãn

Hình 2.1: Đồ thị G(A,B), với A = zxy và B = xyxz

Hai đường đi trên đồ thị G(A,B) được chỉ ra trên Hình 2.2 Mỗi đường đi xác định một chuỗi các thao tác để chuyển chuỗi A thành chuỗi B Trong đó, đường đi thứ nhất (đường nét đứt) chứa 1 thao tác xóa (D) và 2 thao tác chèn (I), trong khi đường đi thứ 2 (đường nét chấm) chỉ chứa 1 thao tác chèn (I) và 2 thao tác thay thế (S)

Nếu sử dụng hàm chi phí (1,1,2) thì đường nét đứt sẽ là đường đi ngắn nhất trên đồ thị và khoảng cách chỉnh sửa được tính bằng 3 Nếu sử dụng hàm chi phí (2,1,1) thì đường nét chấm là đường đi ngắn nhất trên đồ thị và khoảng cách chỉnh sửa bằng 4

Trang 35

Hình 2.2: Các đường đi trên đồ thị G(A, B)

Một vài giá trị cận dưới đã được đề xuất đối với độ phức tạp của thuật toán hiệu chỉnh chuỗi Trong [15], các tác giả đã chứng minh đối với các chuỗi có độ dài n bao gồm các ký tự từ một bảng chữ cái vô hạn, độ phức tạp tính toán được ước lượng là ( ) Tuy nhiên, đối với một bảng chữ cái hữu hạn, Masek và Paterson [2] đã đề xuất một thuật toán chỉ yêu cầu độ phức tạp thời gian O( /log n) trong trường hợp xấu nhất Đối với bài toán LCS, một số độ phức tạp thời gian sau đây đã được chứng minh và công nhận:

1 (ns) đối với một bảng chữ cái kích thước hữu hạn [2]

2  (nlog n) đối với một bảng chữ cái vô hạn [7]

Rất nhiều thuật toán đã được đề xuất cho bài toán hiệu chỉnh chuỗi Bảng 2.1 liệt kê một số thuật toán tiêu biểu cùng với độ phức tạp được ước lượng tương ứng, trong đó n là độ dài của mỗi chuỗi ký tự, d là khoảng cách hiệu chỉnh, L là chiều dài của một LCS

Trang 36

Bảng 2.1: Giải thuật cho bài toán chỉnh sửa chuỗi

chi phí

Độ phức tạp Thời gian Không gian

Wagner & Fischer [14] Bất kỳ O( ) O( )

Hirschberg [7] (1,1,2) O(nL + nlog O(nL)

(1,1,2) O(dLlogn) O(d2 + n) Masek & Paterson [9] Bất kỳ O( /log n) O( /log n) Nakatsu, Kambayashi, & Yajima (1,1,2) O(nd) O(nd)

Ukkonen [13] Bất kỳ O(nd) O(nd)

(1,1,1) O(nd) O( + n)

Wu, Manber, Myers, & Miller [16] (1,1,2) O(nd) O(n) Apostolico, Browne, & Guerra [3] (1,1,2) O(nd) O(n) Thuật toán Ukkonen với hàm chi phí (1,1,1) có thể được sử dụng để tính toán độ chính xác mức ký tự cho một hệ thống nhận dạng chữ (OCR)

2.3 Thuật toán Ukkonen

Trong thực tế, các thuật toán hiệu chỉnh chuỗi ký tự có độ phức tạp thời gian ( ) là không khả thi đối với bài toán tìm kiếm sự tương ứng tối

ưu giữa một chuỗi văn bản nhận dạng được với một chuỗi văn bản mẫu do

số lượng ký tự trên các chuỗi này thường khá lớn (vài chục nghìn ký tự) Do các chuỗi văn bản này thường khá giống nhau và khoảng cách hiệu chỉnh nhỏ Vì vậy, một thuật toán yêu cầu độ phức tạp về thời gian và không gian

Trang 37

Thuật toán 2.1: Thuật toán Ukkonen

Ukkonen_Algorithm(A, B)

Input: Các chuỗi văn bản A = a1a2…am và B = b1b2…bm

Output: d = khoảng cách hiệu chỉnh giữa A và B sử dụng hàm chi phí (1, 1, 1)

row = mảng của các đường đi trên đồ thị

end

Trang 38

Mảng row là một mảng 2 chiều, thưa Trong đó, chỉ lưu trữ những

phần tử được định nghĩa (mục đích để giảm độ phức tạp tính toán) Những phần tử không được định nghĩa sẽ được coi là có giá trị bằng -1 Đường

chéo k của đồ thị G(A, B) chứa tất cả các đỉnh vi,j sao cho j – i = k Vì vậy,

các đường chéo của đồ thị sẽ thuộc phạm vi từ -m tới n Phần tử row[k][d]

xác định chỉ số hàng xa nhất trên đồ thị G(A,B) mà có thể đi đến được bởi

một đường đi có độ dài d từ đỉnh v0,0 tới một đỉnh trên đường chéo k

Trước tiên, xuất phát từ đỉnh khởi đầu v0,0, đường đi có độ dài 0, thuật toán chỉ cần xét đường chéo 0 Bước tiếp theo, thuật toán sẽ tiến hành tìm kiếm các đường xa nhất có độ dài bằng 1 bằng cách xét các đường chéo -1, 0, +1 Sau đó, tiếp tục sử dụng các đường đi này để tìm kiếm các đường

đi xa nhất có độ dài bằng 2 đối với các đường chéo -2, 0, +2, thực hiện tương tự như vậy cho đến khi gặp được đỉnh đích vm,n Độ dài của đường đi

này chính là khoảng cách hiệu chỉnh và mảng row sẽ chứa các thông tin cần

thiết để dò lại đường đi ngắn nhất đã được xác định

Thông thường, row(k,d) được tính với mỗi k trong đoạn [-d, +d] Tuy

nhiên, một số đường chéo có thể sẽ bị loại bỏ do chúng không nằm trong

kết quả cuối cùng Vì vậy, thuật toán sử dụng biến r để tránh những đường

đi mà biết chắc chắn là không cần thiết Ngoài ra, các kết quả trung gian của thuật toán cũng có thể được sử dụng để loại bỏ thêm các đường chéo không cần thiết

Thuật toán dò lại đường đi ngắn nhất từ mảng row được mô tả cụ thể

như sau:

Ngày đăng: 12/05/2016, 10:38

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Qui trình chung của một hệ thống nhận dạng chữ - Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt
Hình 1.1 Qui trình chung của một hệ thống nhận dạng chữ (Trang 17)
Hình 1.2: Màn hình làm việc của VnDOCR - Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt
Hình 1.2 Màn hình làm việc của VnDOCR (Trang 19)
Hình 1.4: Màn hình làm việc của OmniPage - Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt
Hình 1.4 Màn hình làm việc của OmniPage (Trang 22)
Hình 1.5: Màn hình làm việc của VietOCR - Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt
Hình 1.5 Màn hình làm việc của VietOCR (Trang 23)
Hình 1.8: Hình ảnh các ký tự tiếng Việt bị nhập nhằng phần dấu - Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt
Hình 1.8 Hình ảnh các ký tự tiếng Việt bị nhập nhằng phần dấu (Trang 26)
Hình 2.1: Đồ thị G(A,B), với A = zxy và B = xyxz - Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt
Hình 2.1 Đồ thị G(A,B), với A = zxy và B = xyxz (Trang 34)
Hình 2.2: Các đường đi trên đồ thị G(A, B) - Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt
Hình 2.2 Các đường đi trên đồ thị G(A, B) (Trang 35)
Hình 2.3: Sự tương ứng giữa chuỗi văn bản nhận dạng và văn bản mẫu - Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt
Hình 2.3 Sự tương ứng giữa chuỗi văn bản nhận dạng và văn bản mẫu (Trang 44)
Bảng 2.2: Độ chính xác mức ký tự - Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt
Bảng 2.2 Độ chính xác mức ký tự (Trang 46)
Hình 2. 2.4, nếu tập các từ dừng là: - Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt
Hình 2. 2.4, nếu tập các từ dừng là: (Trang 53)
Hình 3.1: Quy trình thực hiện của chương trình - Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt
Hình 3.1 Quy trình thực hiện của chương trình (Trang 54)
Bảng 3.1: Bảng danh sách các từ dừng trong tiếng Việt - Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt
Bảng 3.1 Bảng danh sách các từ dừng trong tiếng Việt (Trang 58)
Bảng 3.2: Thông tin các thao tác hiệu chỉnh - Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt
Bảng 3.2 Thông tin các thao tác hiệu chỉnh (Trang 60)
Hình 3.4: Đánh giá độ chính xác mức từ trên một file văn bản tiếng Việt - Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt
Hình 3.4 Đánh giá độ chính xác mức từ trên một file văn bản tiếng Việt (Trang 68)
Bảng 3.4: Các tập dữ liệu tiếng Anh  Tập dữ liệu  Số trang   Số khối  Tổng số - Tìm hiểu phương pháp đánh giá độ chính xác của các hệ thống nhận dạng chữ việt
Bảng 3.4 Các tập dữ liệu tiếng Anh Tập dữ liệu Số trang Số khối Tổng số (Trang 69)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w