Tải bản đầy đủ (.pdf) (75 trang)

Kết hợp học sâu và mô hình ngôn ngữ để nhận dạng chữ viết tiếng việt từ hình ảnh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.15 MB, 75 trang )

ĐẠI HỌC QUỐC GIA TP. HCM
TRƢỜNG ĐẠI HỌC BÁCH KHOA
--------------------

NGUYỄN ĐÌNH DUY

KẾT HỢP HỌC SÂU VÀ MƠ HÌNH NGƠN NGỮ ĐỂ
NHẬN DẠNG CHỮ VIẾT TIẾNG VIỆT TỪ HÌNH ẢNH
Chuyên ngành : KHOA HỌC MÁY TÍNH
Mã số : 8.48.01.01

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, tháng 01 năm 2021

i


CƠNG TRÌNH ĐƢỢC HỒN THÀNH TẠI
TRƢỜNG ĐẠI HỌC BÁCH KHOA - ĐHQG - HCM

Cán bộ hƣớng dẫn khoa học : PGS.TS. QUẢN THÀNH THƠ
Cán bộ chấm nhận xét 1 : GS.TS. PHAN THỊ TƢƠI
Cán bộ chấm nhận xét 2: PGS.TS. NGUYỄN THANH HIÊN

Luận văn sĩ đƣợc bảo vệ tại Trƣờng Đại học Bách Khoa, ĐHQG Tp. HCM ngày 22
tháng 01 năm 2021
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
1. Chủ tịch hội đồng:
PGS.TS. DƢƠNG TUẤN ANH
2. Thƣ ký hội đồng:


TS. NGUYỄN TIẾN THỊNH
3. Ủy viên phản biện 1:
GS.TS. PHAN THỊ TƢƠI
4. Ủy viên phản biện 2:
PGS.TS. NGUYỄN THANH HIÊN
5. Ủy viên hội đồng:
TS. NGUYỄN HỒ MẪN RẠNG

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trƣởng Khoa quản lý chuyên
ngành sau khi luận văn đã đƣợc sửa chữa (nếu có).

CHỦ TỊCH HỘI ĐỒNG

TRƢỞNG KHOA KHMT

PGS.TS. DƢƠNG TUẤN ANH

ii


ĐẠI HỌC QUỐC GIA TP.HCM

CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƢỜNG ĐẠI HỌC BÁCH KHOA

Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Nguyễn Đình Duy


MSHV: 1870563

Ngày, tháng, năm sinh: 16/06/1993

Nơi sinh: TP.HCM

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

Mã số : 8.48.01.01

I. TÊN ĐỀ TÀI: Kết hợp học sâu và mơn hình ngơn ngữ để nhận dạng chữ viết
tiếng Viết từ hình ảnh / Combine deep learning and language model to identify
Vietnamese writing from images.
II. NHIỆM VỤ VÀ NỘI DUNG: Nghiên cứu kỹ thuật học sâu và mơ hình ngơn
ngữ để đề xuất mơ hình sửa lỗi chính tả một cách hiệu quả cho chữ viết tiếng
Việt. Ứng dụng vào thực nghiệm cho việc sửa lỗi chính tả trên cuốn từ điển
tiếng Việt và đánh giá hiệu quả của mơ hình đề xuất.
III. NGÀY GIAO NHIỆM VỤ: 21/09/2020
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 31/12/2020
V. CÁN BỘ HƢỚNG DẪN: PGS.TS. Quản Thành Thơ

Tp. HCM, ngày … tháng 02 năm 2021
CÁN BỘ HƢỚNG DẪN

CHỦ NHIỆM BỘ MÔN ĐÀO TẠO

(Họ tên và chữ ký)

(Họ tên và chữ ký)


TRƢỞNG KHOA….………
(Họ tên và chữ ký)

iii


LỜI CÁM ƠN
Để hoàn thành đƣợc đề tài luận văn thạc sĩ này, tơi xin bày tỏ sự cảm kích đặc biệt
cũng nhƣ lời cảm ơn chân thành đến ngƣời thầy của tôi, PGS.TS. Quản Thành Thơ,
ngƣời đã định hƣớng, trực tiếp dìu dắt và tận tình chỉ bảo cho tơi trong suốt q
trình thực hiện. Xin chân thành cảm ơn những bài giảng, những buổi thảo luận về tƣ
duy và phƣơng pháp thực hiện đã giúp tơi có đƣợc thêm nhiều kiến thức quý giá
trong việc hoàn thành tốt luận văn này. Đồng thời, thầy cũng là ngƣời luôn cho tôi
không chỉ những lời khuyên vô cùng quý giá về kiến thức chun mơn mà cịn là sự
tận tâm trong q trình giảng dạy. Một lần nữa, tơi xin gửi lời cảm ơn đến thầy bằng
tất cả tấm lòng và sự biết ơn của mình.
Tơi cũng xin chân thành cảm ơn quý Thầy Cô ở Khoa Khoa Học Máy Tính –
Trƣờng Đại Học Bách Khoa TP.HCM đã cùng với tri thức và tâm huyết của mình
để truyền đạt kiến thức quý báu cho những học viên cao học nhƣ tôi trong suốt thời
gian học tập và nghiên cứu.
Sau cùng, tơi xin cảm ơn gia đình, anh chị, bạn bè, các bạn học viên, những ngƣời
đã giúp đỡ, hỗ trợ tơi cũng nhƣ góp ý cho tơi q trình thực hiện và hoàn thành đề
tài luận văn thạc sĩ này.

iv


TÓM TẮT LUẬN VĂN THẠC SĨ
Ngày nay các loại sách báo, tƣ liệu cần đƣợc lƣu trữ dƣới dạng văn bản số rất phổ

biến. Qua thời gian thì chất lƣợng văn bản in giấy sẽ kém đi nhƣng văn bản số vẫn
không bị hỏng. Việc khôi phục lại những thông tin đƣợc lƣu trữ dƣới dạng hình ảnh,
điển hình từ cuốn từ điển Tiếng Việt mang đến tầm quan trong đối với tiếng Việt
khi có thể lƣu giữ và bảo tồn chúng dƣới dạng văn bản số. Tuy nhiên việc chuyển
đổi này không phải lúc nào cũng luôn mang đến sự chính xác tuyệt đối, điều đó dẫn
đến xuất hiện những lỗi sai chính tả trong văn bản số làm cho kết quả khơng đạt nhƣ
mong muốn.
Mục đích của nghiên cứu này là thực hiện hậu xử lý cho quá trình trên nhằm cải tiến
chất lƣợng cho văn bản số đầu ra từ bƣớc chuyển đổi. Trong phạm vi của luận án,
tôi thực hiện các cách tiếp cận sau :
 Thực hiện chuyển đổi thơng tin từ hình ảnh sang văn bản số dƣới định dạng
phù hợp gồm mục từ và thân từ nhƣ cuốn từ điển gốc.
 Xây dựng bộ sửa lỗi dựa trên mơ hình ngơn ngữ mức kí tự nhằm sửa lỗi
chính tả cho tiếng Việt. Mở rộng thêm với những phƣơng thức nhằm tăng
cƣờng khả năng sửa lỗi cho mơ hình.
 Đề xuất chiến lƣợc cho mơ hình ngơn ngữ trong việc đánh giá kí tự nguyên
âm trên lỗi sai nhằm phù hợp với thực tế bài tốn. Bên cạnh đó, dùng các kĩ
thuật nghiệm suy (heuristic) để bổ trợ cho việc sửa lỗi nhằm đem lại kết quả
tốt nhất.
Kết quả thực nghiệm cho thấy mô hình đề xuất mang tính ứng dụng cao khi giúp cải
thiện chất lƣợng cho kết quả thu đƣợc từ việc chuyển đổi hình ảnh sang văn bản
trên cuốn từ điển Tiếng Việt. Sau cùng luận văn đƣa ra hƣớng mở rộng cho đề tài
khi có thể phát triển mơ hình này nhằm đạt kết quả tốt hơn hoặc sử dụng vào những
nghiên cứu khác liên quan đến sửa lỗi chính tả tiếng Việt.

v


ABSTRACT
Nowadays, many types of books, newspapers and documents that need to be

archived in digital documents are very popular. Over time the quality of printed
documents will deteriorate, but digital documents will not deteriorate. Recovering
information stored in images, typically from a Vietnamese dictionary, brings
importance to Vietnamese as it is possible to store and preserve them in digital text
format. However, this conversion does not always bring absolute accuracy, which
leads to misspellings in digital documents, which make the results not as expected.
The purpose of this study is to do post-processing stage for the above process to
improve the quality of digital text output from the conversion step. In the scope of
the thesis, I take the following approaches:
 Convert information from images to digital text in a suitable format
including entries and word bodies like the original dictionary.
 Building a character-based language model to correct spelling mistakes for
Vietnamese. Extend with methods to increase perfomance for the model.
 Proposing a strategy for language model in evaluating vowel characters in
error in order to match the reality of the problem. Besides, using heuristic
techniques to complement the error correction to bring the best results.
The experimental results show that the proposed model is highly applicable when it
helps to improve the quality of the results obtained from converting images into text
in Vietnamese dictionary. Finally, the thesis gives an extension to the topic when it
is possible to develop this model to get better results or use it in other studies related
to correct Vietnamese spelling errors.

vi


LỜI CAM ĐOAN
Tôi xin cam đoan luận văn về đề tài “Kết hợp học sâu và mơ hình ngơn ngữ để nhận
dạng chữ viết tiếng Việt từ hình ảnh” là cơng trình nghiên cứu cá nhân của tơi trong
thời gian qua. Mọi số liệu sử dụng phân tích trong luận văn và kết quả nghiên cứu là
do tơi tự tìm hiểu, phân tích một cách khách quan, trung thực, có nguồn gốc rõ ràng

và chƣa đƣợc công bố dƣới bất kỳ hình thức nào. Tơi xin chịu hồn tồn trách
nhiệm nếu có sự khơng trung thực trong thơng tin sử dụng trong cơng trình nghiên
cứu này.
Ngƣời cam đoan

Nguyễn Đình Duy

vii


MỤC LỤC
Danh mục hình ảnh
Danh mục bảng biểu

x
xii

1. MỞ ĐẦU ...................................................................................................... 1
1.1 Giới thiệu đề tài .................................................................................................1
1.2 Mục tiêu và phạm vi đề tài ................................................................................2
1.2.1 Mục tiêu ......................................................................................................2
1.2.2 Phạm vi đề tài .............................................................................................2
1.3 Tính ứng dụng của đề tài ...................................................................................3
1.4 Cấu trúc luận văn ...............................................................................................4

2. TỔNG QUAN .............................................................................................. 5
2.1 Các cơng trình liên quan ....................................................................................5
2.2 Thách thức của bài tốn .....................................................................................6
2.3 Hƣớng giải quyết ...............................................................................................6


3. CƠ SỞ LÝ THUYẾT .................................................................................. 8
3.1 Tổng quan về Tesseract .....................................................................................8
3.2 Mạng nơ-ron hồi quy (RNN) ...........................................................................12
3.3 LSTM ..............................................................................................................18
3.4 Mơ hình ngơn ngữ - Language model .............................................................21
3.5 Các thuật tốn dị tìm hỗ trợ ............................................................................25
3.5.1 Khoảng cách Levenshtein .........................................................................25
3.5.2 Cây tìm kiếm Trie .....................................................................................26

4. HIỆN THỰC MƠ HÌNH .......................................................................... 29
4.1 Thu thập dữ liệu ...........................................................................................29
4.2 Xây dựng mơ hình ngơn ngữ mức kí tự .......................................................30

5. THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ ....................................... 41
5.1 Thực hiện OCR ................................................................................................41
5.2 Đặc điểm lỗi ....................................................................................................43
5.3 Hƣớng tiếp cận ................................................................................................46
5.3.1 Dùng mơ hình ngơn ngữ với phƣơng pháp hỗ trợ ....................................46
5.3.2 Dùng thuận tốn dị tìm cho lỗi mục từ và thân từ ...................................51
5.4 Đánh giá kết quả ..............................................................................................56

viii


5.5 Một số hạn chế của mơ hình ............................................................................58

6. KẾT LUẬN VÀ KIẾN NGHỊ HƢỚNG MỞ RỘNG ĐỀ TÀI .............. 59
6.1 Kết luận ...........................................................................................................59
6.2 Hƣớng mở rộng đề tài......................................................................................59


Danh mục tài liệu tham khảo ....................................................................... 61

ix


Danh mục hình ảnh
Hình 1.1: Trang bìa cuốn Từ điển Tiếng Việt – Hồng Phê chủ biên ........................3
Hình 3.1: OCR trên một tờ giấy cũ và chuyển đổi sang văn bản số ...........................8
Hình 3.2: Quá trình OCR (Optical Character Recognition process) ..........................9
Hình 3.3: Kiến trúc Tesseract OCR ..........................................................................11
Hình 3.4: Mơ hình mạng Neural Network thơng thƣờng..........................................12
Hình 3.5: Kiến trúc cơ bản mạng RNN .....................................................................13
Hình 3.6: One-to-one RNN .......................................................................................14
Hình 3.7: One-to-many RNN ....................................................................................14
Hình 3.8: Many-to-one RNN ....................................................................................15
Hình 3.9: Many-to-many RNN loại 1 .......................................................................15
Hình 3.10: Many-to-many RNN loại 2 .....................................................................16
Hình 3.11: Kiến trúc của LSTM ...............................................................................18
Hình 3.12: LSTM – cổng forget................................................................................19
Hình 3.13: LSTM – cổng input và lớp tanh ..............................................................20
Hình 3.14: LSTM – cập nhật trạng thái tế bào (cell state) ........................................20
Hình 3.15: LSTM – lớp output..................................................................................20
Hình 3.16: Hình ảnh thanh tìm kiếm trên Google.....................................................21
Hình 3.17: Mơ hình mạng one-to-many RNN ..........................................................23
Hình 3.18: Mơ hình đơn giản thể hiện ý tƣởng huấn luyện LM với RNN ...............24
Hình 3.19: Cấu trúc dữ liệu cây trie ..........................................................................27
Hình 4.1: Mơ hình Học Sâu (Deep Learning) sử dụng cho NLP..............................30
Hình 4.2: Kiến trúc mơ hình ngơn ngữ mức kí tự đƣợc xây dựng ............................32
Hình 4.3: Xác suất xuất hiện kí tự trong phƣơng pháp sửa thơng thƣờng ................33
Hình 4.4: Các bƣớc kiểm tra phát hiện lỗi trong phƣơng pháp thơng thƣờng ..........34

Hình 4.5: Kết quả sửa lỗi với phƣơng pháp sửa thơng thƣờng .................................34
Hình 4.6: Sơ đồ sửa lỗi trong phƣơng pháp thơng thƣờng .......................................35
Hình 4.7: Kết quả sửa lỗi tăng cƣờng với phƣơng pháp N-lookahead .....................37
Hình 4.8: Sơ đồ sửa lỗi tăng cƣờng với phƣơng pháp N-lookahead.........................38

x


Hình 4.9: Kết quả sửa lỗi bởi kết hợp hai mơ hình Left-to-Right và Right-to-Left .39
Hình 5.1: Q trình OCR cho việc thực hiện cuốn từ điển Tiếng Việt ....................41
Hình 5.2: Một trang ảnh đƣợc tiền xử lý và cắt đơi ..................................................42
Hình 5.3: Các bƣớc chính trong việc tiền xử lý hình ảnh để thực hiện OCR ...........42
Hình 5.4: Tơ đỏ văn bản để sửa lỗi ...........................................................................43
Hình 5.5: Tỉ lệ phân bố các Lớp lỗi ..........................................................................45
Hình 5.6: Tỉ lệ phân bố các toán tử trong Lớp lỗi 1 và Lớp lỗi 2 .............................45
Hình 5.7: Tổng quan về mơ hình tiếp cận bài tốn ...................................................46
Hình 5.8: Trích xuất mục từ file XML để thực hiện việc kiểm tra chéo ..................52

xi


Danh mục bảng biểu
Bảng 4.1: Thống kê chi tiết bộ dữ liệu Wikipedia tiếng Việt ...................................30
Bảng 4.2: Sinh chuỗi để đƣa vào mơ hình ................................................................31
Bảng 5.1: Bảng ví dụ về phân loại lỗi .......................................................................44
Bảng 5.2: Xử lý lƣu văn bản cần sửa vào DataFrame để sửa lỗi phần thân từ .........47
Bảng 5.3: Bảng kí tự nguyên âm và tổ hợp ứng với kí tự .........................................47
Bảng 5.4: Bảng kí tự nguyên âm chứa dấu và tổ hợp ứng với kí tự .........................50
Bảng 5.5: Xử lý lƣu văn bản cần sửa vào DataFrame để sửa lỗi phần mục từ .........52
Bảng 5.6: Bảng thống kê kết quả dựa trên phân loại thành mục từ và thân từ .........56

Bảng 5.7: Bảng thống kê kết quả chi tiết trên mỗi tập đánh giá khi phân loại thành
mục từ và thân từ .......................................................................................................57
Bảng 5.8: Bảng thống kê kết quả chi tiết trên lỗi thân từ không xét lỗi Lớp 3 .........57
Bảng 5.9: Bảng thống kê kết quả chi tiết cho toán tử Thay thế trên lỗi thân từ .......58
Bảng 5.10: Bảng thống kê kết quả loại lỗi hợp nhất .................................................58

xii


1. MỞ ĐẦU
1.1 Giới thiệu đề tài
Ngày nay các loại sách báo, tƣ liệu cần đƣợc lƣu trữ dƣới dạng văn bản số rất phổ
biến. Văn bản số có ƣu điểm nhƣ cập nhật, sửa chữa, cũng nhƣ trao đổi nhanh
chóng hơn so với văn bản in giấy truyền thống. Mặt khác, qua thời gian thì chất
lƣợng văn bản in giấy sẽ kém đi nhƣng văn bản số vẫn không bị hỏng. Từ đó, nảy
sinh vấn đề làm cách nào để khôi phục lại những thông tin của sách báo, tƣ liệu
dƣới dạng văn bản số để có thể tái bản. Đây là một nhiệm vụ thực tế trong nhiều
lĩnh vực, chẳng hạn nhƣ trong các thƣ viện và nhà xuất bản.
Có một số cách khác nhau để giải quyết bài toán chuyển đổi trên. Một biện pháp dễ
thực hiện nhất là nhập lại nội dung của văn bản thông qua bàn phím. Mặc dù vậy,
đây là một cơng việc thủ công trong thao tác chế bản nên nếu số lƣợng văn bản là
quá lớn và mất nhiều thời gian sẽ dẫn tới nhiều sai sót. Giải pháp khác là tạo ra một
chƣơng trình nhận dạng văn bản tự động. Theo hƣớng này, từ điển, sách, báo, …
đƣợc máy quét lƣu trữ dƣới dạng ảnh số, chƣơng trình có chức năng nhận dạng ký
tự, từ đó chuyển đổi thành văn bản số. Tuy nhiên việc chuyển đổi này không phải
lúc nào cũng ln mang đến sự chính xác 100%, điều đó dẫn đến xuất hiện những
lỗi sai chính tả trong văn bản số làm cho kết quả không đạt nhƣ mong muốn. Vì vậy
việc thực hiện hậu xử lý (post-processing) cho q trình trên là một cơng việc quan
trọng và cần thiết để cải tiến chất lƣợng cho văn bản số đầu ra từ bƣớc chuyển đổi.
Nhận thấy việc ứng dụng công việc trên cho một bộ từ điển tiếng Việt là một chủ đề

đáng đƣợc quan tâm, qua tìm hiểu và nghiên cứu tôi xin thực hiện đề tài : Kết hợp
học sâu và mơ hình ngơn ngữ để nhận dạng chữ viết tiếng Việt từ hình ảnh. Đề
tài này sẽ tìm hiểu tổng quan cách tiếp cận dựa trên các kĩ thuật Học Sâu (Deep
Learning) để giải bài tốn. Trong đó bên cạnh khả năng áp dụng cơng nghệ nhận
dạng ký tự quang học (OCR – Optical Character Recognition) giúp chuyển đổi chữ

1


viết, văn bản số từ hình ảnh, thì bƣớc tìm hiểu các phƣơng pháp xử lý ngôn ngữ
tiếng Việt và sử dụng mơ hình ngơn ngữ để sửa lỗi chính tả là phần cơng việc chính
yếu cần hƣớng đến. Từ đó đƣa ra cách tiếp cận, xây dựng chiến lƣợc phù hợp ở
công việc hậu xử lý nhằm giúp giảm độ lỗi của quá trình OCR ban đầu.

1.2 Mục tiêu và phạm vi đề tài
1.2.1 Mục tiêu
Mục tiêu của đề tài này là tìm hiểu phƣơng thức trích xuất thơng tin từ hình ảnh để
sinh ra ký tự, văn bản số thông qua việc nhận dạng ký tự quang học (OCR) cho
tiếng Việt. Ở bƣớc sau trích xuất, đề xuất các kỹ thuật mới trong Xử Lý Ngôn Ngữ
Tự Nhiên (NLP) vào Tiếng Việt và huấn luyện mơ hình ngơn ngữ để sửa sai lỗi
chính tả đoạn văn bản đƣợc sinh ra. Sau cùng, thực hiện việc so sánh kết quả ở bƣớc
trích xuất thơng tin văn bản từ hình ảnh và kết quả sau khi qua mơ hình sửa lỗi để
áp dụng mơ hình đạt hiệu quả nhất.
Tổng qt lại, mục tiêu của đề tài bao gồm:
 Đề xuất và huấn luyện mơ hình sửa lỗi cho bƣớc hậu xử lý.
 Thực hiện các thử nghiệm và so sánh kết quả trƣớc và sau khi qua mơ hình
sửa lỗi.
 Áp dụng đƣợc mơ hình sửa lỗi chính tả trong tiếng Việt.

1.2.2 Phạm vi đề tài

Đề tài này tập trung vào 3 vấn đề nghiên cứu sau:
 Tiền xử lý trên tập hình ảnh đƣợc quét từ bộ từ điển tiếng Việt có sẵn giúp
trích xuất thơng tin theo định dạng phù hợp với yêu cầu.
 Đề xuất và huấn luyện mơ hình sửa lỗi ban đầu.

2


 Áp dụng mơ hình kết hợp với những phƣơng thức hỗ trợ để sửa lỗi chính tả
cho những định dạng phù hợp. So sánh kết quả cũng nhƣ lựa chọn mơ hình
phù hợp giúp đem lại kết quả tốt nhất cho bài tốn.
Phần chính của luận văn này sẽ tập trung vào mơ hình sửa lỗi, các phƣơng pháp
giúp tăng cƣờng hiệu suất của mơ hình sửa lỗi. Do đó luận văn sẽ khơng tập trung
nhiều về việc áp dụng các kĩ thuật để cải thiện độ chính xác ở bƣớc nhận dạng kí tự
quang học OCR cũng nhƣ phƣơng thức giúp phát hiện lỗi trong văn bản đƣợc sinh
ra.

1.3 Tính ứng dụng của đề tài
Đề tài này giúp bản thân tôi củng cố đƣợc kiến thức khoa học trong việc nghiên cứu
về Xử Lý Ngôn Ngữ Tự Nhiên bằng kĩ thuật Học Sâu. Thơng qua đó tơi có thể ứng
dụng đƣợc các phƣơng pháp “state of the art” - thịnh hành nhất - vào mơ hình để xử
lý cho ngôn ngữ cụ thể là tiếng Việt giúp mang tính ứng dụng vào thực tiễn. Với
việc nghiên cứu và xử lý trực tiếp trên cuốn Từ Điển Tiếng Việt (Nhà xuất bản Đà
Nẵng, năm 2003, Hoàng Phê chủ biên), tơi đã có thể thực hiện một đề tài với tính
ứng dụng cao giúp cải thiện chất lƣợng cho cuốn từ điển số đầu ra sau bƣớc chuyển
đổi, điều đó góp phần lƣu giữ và bảo tồn văn bản số cho từ ngữ tiếng Việt thông qua
cuốn từ điển này. Ngồi ra, việc thực hiện mơ hình sửa lỗi này có tính tổng qt cao
và có thể đƣợc dùng lại cho các nghiên cứu liên quan về xử lý ngôn ngữ tiếng Việt
sau này.


Hình 1.1: Trang bìa cuốn Từ điển Tiếng Việt – Hoàng Phê chủ biên
3


1.4 Cấu trúc luận văn
Những nội dung chi tiết hơn trong quá trình thực hiện đề tài sẽ đƣợc trình bày trong
các chƣơng tiếp theo. Trƣớc tiên, các cơng trình nghiên cứu liên quan đƣợc trình
bày ở chƣơng 2. Tiếp đến trong chƣơng 3 sẽ đề cập đến tổng quan về bƣớc nhận
dạng kí tự quang học nhƣ thƣ viện và cơng cụ sử dụng, bên cạnh đó là trình bày về
cơ sở lý thuyết của học sâu và mô hình ngơ ngữ. Ở chƣơng 4, tơi sẽ đi sâu về việc
xây dựng và hiện thực mơ hình sửa lỗi. Sau đấy đến chƣơng 5 sẽ trình bày chi tiết
về cách tiếp cận, đánh giá và bàn luận kết quả của đề tài. Cuối cùng, tôi tổng kết lại
các vấn đề trong quá trình thực hiện đồng thời nêu ra các hƣớng phát triển của đề tài
trong tƣơng lai ở chƣơng 6.

4


2. TỔNG QUAN
2.1 Các cơng trình liên quan
Về việc áp dụng các kĩ thuật trong xử lý ngôn ngữ tự nhiên cho kiểm tra và sửa lỗi
chính tả tiếng Việt, trƣớc đây đã có những nghiên cứu đƣợc chứng minh bởi các tác
giả chuyên nghiệp và đƣợc trích dẫn dƣới đây nhƣ:
 On the Use of Machine Translation-Based Approaches for Vietnamese
Diacritic Restoration – [1] Trong bài báo này, tác giả tiếp cận theo hƣớng
sử dụng mơ hình dịch máy nhằm khơi phục lại dấu phụ cho tiếng Việt. Ý
tƣởng chính của phƣơng pháp này là coi văn bản không dấu nhƣ ngơn ngữ
nguồn và văn bản có dấu nhƣ ngơn ngữ đích trong cơng thức dịch máy.Tác
giả có đề cập và sử dụng một mơ hình sequence-to-sequence là sự kết hợp
của hai mạng nơ-ron hồi quy (RNN – Recurrent Neural Network).Việc hiện

thực mơ hình này mang tính hiệu quả cao cho ứng dụng sửa lỗi chính tả tiếng
Việt trong trƣờng hợp mất dấu hoặc thiếu dấu, tuy nhiên sẽ không sửa đƣợc
những lỗi sai khác phức tạp hơn.
 Vietnamese spelling detection and correction using Bi-gram, Minimum
Edit Distance, SoundEx algorithms with some additional heuristics –[2]
Bài báo này nêu bật việc sửa lỗi chính tả gồm hai bƣớc chính: bƣớc phát hiện
và bƣớc sửa lỗi. Ở bƣớc phát hiện lỗi, tác giả sử dụng mơ hình truyền thống
N-gram. Ƣu điểm của mơ hình này là khơng u cầu phân đoạn từ, đạt hiệu
suất cao nếu có khi tài liệu đƣợc huấn luyện hồn chỉnh. Hạn chế của nó là
phụ thuộc vào mức độ liên quan của chủ đề giữa kho dữ liệu huấn luyện và
văn bản đầu vào. Ở bƣớc sửa lỗi, nhóm tác giả có đề xuất sử dụng một số
phƣơng pháp trong đó có “hiệu chỉnh khoảng cách tối thiểu” (minimum edit
distance) giúp đƣa ra các gợi ý khi xử lý với nhóm lỗi đƣợc đề cập. Xuất
phát với ý tƣởng trên, tôi cũng đã sử dụng “hiệu chỉnh khoảng cách” trong đề

5


tài của mình nhƣ một trong những phƣơng pháp bổ trợ trong việc sửa lỗi
chính tả tiếng Việt.
 A Vietnamese Language Model Based on Recurrent Neural Network [3] Bài báo này nghiên cứu mơ hình mạng nơ-ron hồi quy (RNN – Recurrent
Neural Network) cho tiếng Viết, ở cấp độ ký tự và âm tiết. Các thí nghiệm
đƣợc thực hiện dựa trên một tập dữ liệu lớn gồm 24 triệu âm tiết và xây dựng
từ 1.500 phụ đề phim. Bài báo cho thấy kết quả đạt đƣợc hiệu suất tốt hơn
trong việc sử dụng mơ hình ngơn ngữ dựa trên mạng nơ-ron hồi quy so với
mơ hình ngơn ngữ dựa trên xác suất truyền thống. Những cách tiếp cận trong
bài báo này gợi mở cho tôi nhiều ý tƣởng hơn trong việc xử lý, giải quyết bài
tốn của mình.

2.2 Thách thức của bài tốn

Hiện tại tập hình ảnh lƣu trữ từ bản quét toàn bộ cuốn từ điển Tiếng Việt Hoàng Phê
có đƣợc thì chất lƣợng hình ảnh khơng đƣợc rõ nét, văn bản có trang nghiêng lệch,
một số chỗ chƣa tốt, chữ bị mờ, lem, khơng rõ ràng. Từ đó ảnh hƣởng đến bƣớc
nhận diện kí tự quang học trên cuốn từ điển này và cho ra chất lƣợng văn bản đầu ra
chƣa tốt, còn gặp tƣơng đối nhiều lỗi, ví dụ một câu có thể sai rất nhiều lỗi. Điều
này dẫn đến việc phát hiện lỗi gặp rất nhiều khó khăn.
Ngồi ra, cuốn từ điển Tiếng Việt Hồng Phê chứa một lƣợng từ vựng rộng lớn,
khối lƣợng ngữ liệu đồ sộ, hệ thống lý luận từ điển học đúc kết đƣợc giữa tính hàn
lâm và đại chúng, nhiều từ đồng âm, đa nghĩa và mang tính điển hình rất cao nên
đây là một thách thức cho việc tìm đƣợc kho dữ liệu phù hợp để huấn luyện và sửa
lỗi vì mức độ liên quan của chủ đề giữa kho dữ liệu huấn luyện và tập từ điển số
(văn bản đầu vào) là không đủ bao quát.

2.3 Hƣớng giải quyết
Trong q trình nghiên cứu và thực hiện đề tài, tơi sẽ tập trung vào việc sửa lỗi
chính tả trên văn bản số đầu ra sau bƣớc nhận dạng kí tự quang học thay vì thực
6


hiện đồng thời cả 2 bƣớc phát hiện lỗi chính tả rồi sau đó sửa lỗi chính tả. Tơi sẽ
thực hiện tô đỏ những lỗi sai trên văn bản số đầu ra để dánh dấu vị trí lỗi. Tiếp đến,
tơi sẽ tiếp cận bằng các sử dụng mơ hình ngơn ngữ đƣợc xử lý ở mức kí tự để phù
hợp cho bài tốn. Ngồi ra, tơi cịn dùng các phƣơng pháp hỗ trợ nhằm chọn ra
phƣơng pháp phù hợp với kết cấu của từng loại từ trong cuốn từ điển đồng thời
đánh giá kết quả để chọn lựa phƣơng thức đạt hiệu suất sửa lỗi tốt nhất.

7


3. CƠ SỞ LÝ THUYẾT

3.1 Tổng quan về Tesseract
Nhận dạng ký tự quang học (tiếng Anh: Optical Character Recognition, viết tắt là
OCR), là loại phần mềm máy tính đƣợc tạo ra để chuyển các hình ảnh của chữ viết
tay hoặc chữ đánh máy (thƣờng đƣợc quét bằng máy scanner) thành các văn bản tài
liệu [4]. OCR đƣợc hình thành từ một lĩnh vực nghiên cứu về nhận dạng mẫu, trí tuệ
nhân tạo và thị giác máy tính. Những chuỗi dữ liệu đƣợc sinh ra từ việc nhận dạng
ký tự quang học có thể đƣợc sử dụng cho nhiều việc, một số ví dụ : giúp số hóa các
tài liệu cũ, dịch sang các ngôn ngữ khác hoặc để kiểm tra và xác minh vị trí văn
bản. Mặc dù cơng việc nghiên cứu học thuật vẫn tiếp tục, một phần công việc của
OCR đã chuyển sang ứng dụng trong thực tế với các kỹ thuật và phần mềm đã đƣợc
chứng minh. Bất cứ nơi nào có thể tìm thấy văn bản, OCR có thể đƣợc áp dụng.
Một ví dụ về OCR nhƣ hình dƣới :

Hình 3.1: OCR trên một tờ giấy cũ và chuyển đổi sang văn bản số
OCR là một quy trình thƣờng bao gồm một số quy trình phụ để thực hiện chính xác
nhất có thể [5]. Các quy trình phụ thƣờng bao gồm:
 Tiền xử lý hình ảnh
 Cục bộ hóa văn bản
 Phân đoạn ký tự

8


 Nhận dạng ký tự
 Hậu xử lý
Tất nhiên, các quy trình phụ trong danh sách trên có thể khác nhau, nhƣng đây là
những bƣớc gần nhƣ cần thiết để tiếp cận nhận dạng ký tự tự động. Trong phần
mềm OCR, mục đích chính là xác định và nắm bắt tất cả các từ duy nhất bằng các
ngôn ngữ khác nhau từ các ký tự văn bản viết.
Trong gần hai thập kỷ, hệ thống nhận dạng ký tự quang học đã đƣợc sử dụng rộng

rãi để cung cấp tính năng nhập văn bản tự động vào các hệ thống máy tính. Tuy
nhiên, trong suốt thời gian qua, các hệ thống OCR thông thƣờng chƣa bao giờ vƣợt
qua đƣợc khả năng đọc nhiều hơn một số loại phông chữ và định dạng trang. Loại
có khoảng cách theo tỷ lệ (bao gồm hầu nhƣ tất cả các bản sao bộ sắp chữ), phơng
chữ máy in laser và thậm chí nhiều phơng chữ máy đánh chữ khơng theo tỷ lệ, vẫn
nằm ngồi tầm với của các hệ thống này. Và kết quả là, OCR thông thƣờng chƣa
bao giờ đạt đƣợc nhiều hơn một ảnh hƣởng ngoài lề đối với tổng số tài liệu cần
chuyển đổi sang dạng kỹ thuật số.

Hình 3.2: Quá trình OCR (Optical Character Recognition process) (Nguồn: [5])

9


Khác với những phần mềm vì mục tiêu thƣơng mại, Tesseract là một thƣ viện –
khơng phải là chƣơng trình – nhận dạng ký tự quang học. Nó có mã nguồn mở,
đƣợc công khai dƣới giấy phép Apache, phiên bản 2.0, và đƣợc phát triển dƣới sự
tài trợ của Google từ năm 2006. Tesseract đƣợc đánh giá là một trong số ít những
thƣ viện nhận dạng ký tự quang học mã nguồn mở tốt nhất hiện nay. Hiện tại,
Tesseract đã phát triển đến version 3.x và có thể hoạt động trên 3 hệ điều hành phổ
biến là Window, Mac và Linux. Cơng cụ này hỗ trợ nhận diện kí tự của hơn 100
ngôn ngữ khác nhau, bao gồm cả tiếng Việt. Khơng những thế, chúng ta có thể huấn
luyện chƣơng trình dùng Tesseract để có thể nhận diện một ngơn ngữ hay font chữ
nào đó chƣa đƣợc hỗ trợ. Tesseract đƣợc xây dựng và phát triển bằng C hoặc C++,
nhƣng có thể đƣợc sử dụng bằng ngơn ngữ lập trình khác nhƣ Python, Java, …
Tesseract tƣơng thích với nhiều ngơn ngữ lập trình và khn khổ thơng qua trình
bao bọc. Nó có thể đƣợc sử dụng với phân tích bố cục hiện có để nhận dạng văn bản
trong một tài liệu lớn hoặc nó có thể đƣợc sử dụng kết hợp với bộ dị văn bản bên
ngồi để nhận dạng văn bản từ hình ảnh của một dịng văn bản.
Cách Tesseract hoạt động

Tesseract 3.x phụ thuộc vào quy trình nhiều giai đoạn, ở đó chúng ta có thể phân
biệt qua các bƣớc:
 Tìm từ
 Tìm dịng
 Phân loại kí tự
Việc tìm kiếm từ đƣợc thực hiện bằng cách sắp xếp các dòng văn bản thành các
đốm màu, các dòng và vùng đƣợc phân tích để tìm cao độ cố định hoặc văn bản
theo tỷ lệ. Các dòng văn bản đƣợc chia thành các từ khác nhau tùy theo loại khoảng
cách ký tự. Việc nhận dạng sẽ đƣợc tiến hành nhƣ một quá trình hai lần. Trong lần
vƣợt qua đầu tiên, một nỗ lực đƣợc thực hiện để nhận ra lần lƣợt từng từ. Mỗi từ đạt
yêu cầu đƣợc chuyển đến bộ phân loại thích ứng làm dữ liệu huấn luyện. Sau đó,

10


trình phân loại thích ứng sẽ có cơ hội nhận dạng chính xác hơn văn bản ở dƣới trang
(hình 3.3).

Hình 3.3: Kiến trúc Tesseract OCR (Nguồn :[6])
Sự hạn chế của Tesseract
Tesseract hoạt động tốt nhất khi có sự phân đoạn rõ ràng của từ nền khỏi văn bản
nền. Trong thực tế, có thể cực kỳ khó khăn để đảm bảo các loại thiết lập này. Có
nhiều lý do khiến chúng ta không nhận đƣợc đầu ra chất lƣợng tốt từ Tesseract nhƣ
việc hình ảnh bị nhiễu trên nền. Chất lƣợng hình ảnh (kích thƣớc, độ tƣơng phản, độ
sáng) càng tốt thì kết quả nhận dạng càng tốt. Nó địi hỏi một chút xử lý trƣớc để cải
thiện kết quả OCR, hình ảnh cần đƣợc chia tỷ lệ thích hợp, có độ tƣơng phản hình
ảnh nhiều nhất có thể và văn bản phải đƣợc căn chỉnh theo chiều ngang. Tesseract
OCR khá mạnh nhƣng có những hạn chế sau :
 OCR khơng chính xác nhƣ một số giải pháp thƣơng mại có sẵn
 Khơng hoạt động tốt với hình ảnh bị ảnh hƣởng bởi hiện vật bao gồm tắc một

phần, phối cảnh méo mó và nền phức tạp.
 Nó có thể khơng nhận dạng đƣợc (vô nghĩa) và báo cáo đây là đầu ra OCR.
 Khơng phải lúc nào việc phân tích thứ tự đọc tự nhiên của tài liệu cũng tốt.
Ví dụ: nó có thể khơng nhận ra rằng một tài liệu chứa hai cột và có thể cố
gắng nối văn bản giữa các cột.
 Bản quét chất lƣợng kém có thể tạo ra OCR chất lƣợng kém.

11


 Nó khơng tiết lộ thơng tin về phơng chữ thuộc họ văn bản nào.
Công cụ Pytesseract
Để phục vụ cho việc thực hiện bài tốn, tơi sẽ sử dụng cơng cụ chính là Pytesseract.
Pytesseract là một cơng cụ nhận dạng ký tự quang học (OCR) dành cho ngơn ngữ
lập trình Python [5]. Tức là, nó sẽ nhận ra và “đọc” văn bản đƣợc nhúng trong hình
ảnh. Pytesseract là một trình bao bọc cho cơng cụ Tesseract-OCR của Google. Nó
cũng hữu ích nhƣ một tập lệnh gọi độc lập đối với Tesseract, vì nó có thể đọc tất cả
các loại hình ảnh đƣợc hỗ trợ bởi thƣ viện hình ảnh Pillow và Leptonica, bao gồm
jpeg, png, gif, bmp, tiff và các loại khác. Ngoài ra, nếu đƣợc sử dụng làm script,
Python-tesseract sẽ in văn bản đƣợc nhận dạng thay vì ghi nó vào tệp.

3.2 Mạng nơ-ron hồi quy (RNN)
Trƣớc tiên chúng ta cùng nhìn lại mơ hình Neural Network dƣới đây:

Hình 3.4: Mơ hình mạng Neural Network thơng thƣờng
Nhƣ đã biết thì Neural Network bao gồm 3 phần chính là Input layer, Hidden layer
và Output layer, ta có thể thấy là đầu vào và đầu ra của mạng neuron này là độc lập

12



với nhau. Nhƣ vậy mơ hình này khơng phù hợp với những bài tốn dạng chuỗi nhƣ
mơ tả, hồn thành câu, ... vì những dự đốn tiếp theo nhƣ từ tiếp theo phụ thuộc vào
vị trí của nó trong câu và những từ đằng trƣớc nó. Và nhƣ vậy RNN ra đời với ý
tƣởng chính là sử dụng một bộ nhớ để lƣu lại thơng tin từ những bƣớc tính tốn xử
lý trƣớc để dựa vào nó có thể đƣa ra dự đốn chính xác nhất cho bƣớc dự đốn hiện
tại. RNN đƣợc gọi là hồi quy (Recurrent) bởi lẽ chúng thực hiện cùng một tác vụ
cho tất cả các phần tử của một chuỗi với đầu ra phụ thuộc vào cả các phép tính
trƣớc đó. Nói cách khác, RNN có khả năng nhớ các thơng tin đƣợc tính tốn trƣớc
đó. Trên lý thuyết, RNN có thể sử dụng đƣợc thông tin của một văn bản rất dài, tuy
nhiên thực tế thì nó chỉ có thể nhớ đƣợc một vài bƣớc trƣớc đó mà thơi. Một mạng
nơ-ron hồi quy RNN có dạng nhƣ sau:

Hình 3.5: Kiến trúc cơ bản mạng RNN (Nguồn : [7])
Mơ hình trên mơ tả phép triển khai nội dung của một RNN. Triển khai ở đây có thể
hiểu đơn giản là ta vẽ ra một mạng nơ-ron chuỗi tuần tự. Ví dụ ta có một câu gồm 5
chữ “Hơm nay tơi đi học”, thì mạng nơ-ron đƣợc triển khai sẽ gồm 5 tầng nơ-ron
tƣơng ứng với mỗi chữ một tầng. Lúc đó việc tính tốn bên trong RNN đƣợc thực
hiện nhƣ sau:
 xt là đầu vào tại bƣớc t. Ví dụ, x1 là một vec-tơ one-hot tƣơng ứng với từ thứ
2 của câu (nay).

13


×