Cách mạng công nghiệp 4.0 sử dụng các sản phẩm ứng dụng công nghệ thông tin trí tuệ cao để giải quyết hiệu quả các hoạt động nghiệp vụ trên nhiều lĩnh vực chuyên môn. Đặc biệt, thủ tục giấy tờ ngày càng sử dụng nhiều ứng dụng của Internet vạn vật (IoT), trí tuệ nhân tạo (AI), dữ liệu lớn. Do đó, các thủ tục giấy tờ sẽ đạt tiêu chuẩn một cách nhanh chóng, hiệu quả và tiết kiệm chi phí. Theo Quyết định số 282018 QĐTTg 4 ngày 7 tháng 12 năm 2018 của Thủ tướng Chính phủ về việc gửi và nhận đường truyền điện tử trong hệ thống hành chính công, đường truyền điện tử có giá trị pháp lý và hiệu lực thi hành. Vì vậy, văn bản chính thức đã trở thành phương tiện liên lạc, trao đổi thông tin, truyền tải mệnh lệnh chính giữa các cơ quan, tổ chức và cần được số hóa, lưu trữ.
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM TPHCM
KHOA CÔNG NGHỆ THÔNG TIN
- 🙣
🙡 -NGUYỄN BÁ LỘC
NGHIÊN CỨU MÔ HÌNH TRÍ TUỆ NHÂN TẠO
ĐỂ PHÂN LOẠI CÔNG VĂN VÀ PHỤC VỤ SỐ
HÓA DỰA TRÊN HÌNH ẢNH
KHÓA LUẬN TỐT NGHIỆP
Tp.Hồ Chí Minh – Năm 2022
Trang 2MỤC LỤC
TRƯỜNG ĐẠI HỌC SƯ PHẠM TPHCM
KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN BÁ LỘC
NGHIÊN CỨU MÔ HÌNH TRÍ TUỆ NHÂN TẠO
ĐỂ PHÂN LOẠI CÔNG VĂN VÀ PHỤC VỤ SỐ
HÓA DỰA TRÊN HÌNH ẢNH
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
KHÓA LUẬN TỐT NGHIỆP
NGƯỜI HƯỚNG DẪN KHOA HỌC: Ths Trịnh Huy Hoàng
TP.HCM – NĂM 2022
Trang 3MỤC LỤC
MỤC LỤC 1
LỜI CẢM ƠN 4
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT 5
DANH MỤC HÌNH ẢNH 5
Chương 1: Giới thiệu tổng quan về đề tài 5
1.1 Bài toán về phân loại công văn bằng hình ảnh: 7
1.2 Mục tiêu thực hiện của đề tài 9
1.3 Hướng tiếp cận và giải pháp cho bài toán phân loại 9
1.3.1 Hướng tiếp cận 9
1.3.2 Yêu cầu: 10
1.3.3 Phạm vi: 10
1.4 Đóng góp của luận văn 10
1.5 Tình hình nghiên cứu hiện tại: 11
Chương 2: Cơ sở lý thuyết 12
2.1 Tổng quan về Tesseract 12
2.2 Mạng nơ-ron hồi quy (RNN) 15
2.3 Long short term memory (LSTM) 17
2.3.1 Ý tưởng cốt lõi của LSTM 18
2.3.2 Bên trong LSTM 19
2.4 Mô hình ngôn ngữ (Language model) 22
2.4.1 Statistical Language Models ( Count-based) 22
2.4.2 N-gram Language Models 22
2.4.3 Neural Network Language Models (Continuous-space) 23
Chương 3 : Thực nghiệm và đánh giá kết quả 24
3.1 Cơ chế hoạt động của Tesseract 24
3.1.1 Cài đặt Tesseract 27
3.1.2 Tiền xử lý cho Tesseract: 28
3.2 Xử lý dữ liệu văn bản đầu vào cho mô hình phân loại 29
3.3 Các mô hình được huấn luyện 32
3.3.1 Mô hình XGBoost 32
Trang 43.3.2 Mô hình Random Forest Classifer 36
3.3.3 Mô hình LSTM 41
3.4 Kết quả phân loại và so sánh các mô hình: 45
Chương 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 48
4.1 Kết luận 48
4.2 Hướng phát triển 48
TÀI LIỆU THAM KHẢO 49
Tiếng Việt: 49
Tiếng Anh: 49
Trang 5LỜI CẢM ƠN
Trong thời gian nghiên cứu và thực hiện đề tài, được sự giúp đỡ của các thầy cô và bạn bè góp ý cho luận văn được hoàn thành một cách hoàn chỉnh Em xin gửi lời cảm ơn chân thành đến:
Em xin chân thành cảm ơn thầy Th.S Trịnh Huy Hoàng tạo điều kiện cho em tham gia vào khóa luận tốt nghiệp Cảm ơn thầy đã tận tình dẫn dắt và hết lòng tạo điều kiện để em hoàn thành khóa luận
Em cũng xin chân thành cảm ơn quý Thầy Cô trong khoa Công Nghệ Thông Tin của trường Đại học Sư Phạm Thành Phố Hồ Chí Minh
đã tận tình giảng dạy và trang bị cho em những kỹ năng mềm và những kiến thức về chuyên môn cần thiết trong suốt quá trình học tập tại trường
Trang 6DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
AI: Artificial intelligence
IoT: Internet of Things
JS: Java Script
KYC: Know Your Customer
LM: Language Model
LSTM: Long short term memory
NLP: Natural Language Processing
OCR: Optical Character Recognition
PIL: Pillow
QĐ: Quyết định
RNN: Recurrent Neural Network
SVD: Singular Value Decomposition
TF-IDF: Term frequency–inverse document frequency
TTg: Thủ tướng giao
XGBoost: Extreme Gradient Boosting
DANH MỤC HÌNH ẢNH
Hình 1 1: Hình ảnh công văn 8
Hình 1 2: Ứng dụng trí tuệ nhân tạo để tự động phân loại công văn và phục vụ số hóa tài liệu 9
Hình 2 1: Xác định vị trí của text bằng OCR 12
Hình 2 2: Quá trình OCR 13
Hình 2 3: Kiến trúc Tesseract OCR 14
Hình 2 4: Mạng nơ-ron thông thường 15
Hình 2 5: Kiến trục của mạng RNN 16
Hình 2 6: Các dạng của RNN 17
Hình 2 7: Mô-đun lặp lại trong RNN tiêu chuẩn chứa một lớp duy nhất 17
Hình 2 8: Mô-đun lặp lại trong một LSTM chứa 4 lớp tương tác 18
Hình 3 1: Kiến trúc nhận dạng văn bản chữ in trong Tesseract 24
Hình 3 2: Đường cơ sở hình cong 25
Hình 3 3: Cắt các ký tự liền nhau 25
Hình 3 4: Sơ đồ nhận dạng từ 26
Hình 3 5: Các đặc trưng ký tự được nhận dạng 26
Hình 3 6: Đường cong học tập cho mô hình XGBoost ban đầu 33
Hình 3 7: Đường cong học tập của mô hình XGBoost sau khi tăng siêu tham số n_estimators 34
Hình 3 8: Đường cong học tập của mô hình XGBoost sau khi tăng siêu tham số n_estimators và giảm siêu tham số eta 35
Trang 7Hình 3 9: Đường cong học tập của mô hình XGBoost sau khi thay đổi các siêu tham
số n_estimator, eta, submaple và colsample_bytree 36
Hình 3 10: Báo cáo đánh giá mô hình RandomForestClassifier 37
Hình 3 11: Đường cong học tập của mô hình RandomForestClassifier 38
Hình 3 12: Báo cáo đánh giá mô hình RandomForestClassifier sau khi điều chỉnh tham số 39
Hình 3 13: Đường cong học tập của mô hình RandomForestClassfier sau khi điều chỉnh tham số 40
Hình 3 14: Kiến trúc mô hình LSTM của bài toán 42
Hình 3 15: Tham số của từng tầng trong mô hình huấn luyện 43
Hình 3 16: Quá trình huấn luyện của mô hình LSTM 44
Hình 3 17: Biểu đồ biểu diễn độ chính xác của mô hình 44
Hình 3 18: Biểu đồ biểu diễn độ mất mát của mô hình 45
Hình 3 19: Công văn chỉ đạo 46
Trang 8Chương 1: Giới thiệu tổng quan về đề tài
1.1 Bài toán về phân loại công văn bằng hình ảnh:
Cách mạng công nghiệp 4.0 sử dụng các sản phẩm ứng dụng công nghệ thông tin trí tuệ cao để giải quyết hiệu quả các hoạt động nghiệp vụ trên nhiều lĩnh vực chuyên môn Đặc biệt, thủ tục giấy tờ ngày càng sử dụng nhiều ứng dụng của Internet vạn vật (IoT), trí tuệ nhân tạo (AI), dữ liệu lớn Do đó, các thủ tục giấy
tờ sẽ đạt tiêu chuẩn một cách nhanh chóng, hiệu quả và tiết kiệm chi phí
Theo Quyết định số 28/2018 / QĐ-TTg [4] ngày 7 tháng 12 năm 2018 của Thủ tướng Chính phủ về việc gửi và nhận đường truyền điện tử trong hệ thống hành chính công, đường truyền điện tử có giá trị pháp lý và hiệu lực thi hành Vì vậy, văn bản chính thức đã trở thành phương tiện liên lạc, trao đổi thông tin, truyền tải mệnh lệnh chính giữa các cơ quan, tổ chức và cần được số hóa, lưu trữ
Vì vậy, xây dựng mô hình trí tuệ nhân tạo giúp phân loại công văn và phục vụ số hóa tài liệu
Trang 9Hình 1 1: Hình ảnh công văn
Trang 101.2 Mục tiêu thực hiện của đề tài
Bài toán được đặt ra ở đây là việc văn bản điện tử chính thức đã trở thành phương tiện liên lạc, trao đổi thông tin, truyển tải mệnh lệnh chính giữa các cơ quan, tổ chức và cần được số hóa, lưu trữ Thì yêu cầu mà hệ thống phân loại và lưu trữ các loại công văn phải có độ chính xác cao và tốc độ xử lý nhanh
Bài toán được mô tả như sau:
Input : Ảnh công văn đầu vào
Output: Tên công văn được phân loại
Điều kiện ràng buộc: đầu vào là file ảnh công văn(jpg, png, …)
1.3 Hướng tiếp cận và giải pháp cho bài toán phân loại
1.3.1 Hướng tiếp cận
Bài toán của đề tài được chia thành 2 nhiệm vụ chính đó là:
+ Nhiệm vụ thứ nhất: Trích xuất kí tự văn bản từ hình ảnh (OCR) + Nhiệm vụ thứ hai: Phân loại đoạn kí tự được trích xuất (Text Classification)
Đối với nhiệm vụ thứ nhất, bài toán OCR ( Optical Character Recognition) hay còn gọi là Nhận dạng ký tự bằng quang học Đây là công nghệ được áp dụng
để đọc kí tự trên một tệp ảnh thành định dạng kí tự OCR ngày càng được sử dụng nhiều hơn để số hóa trong các ngành công nghiệp khác nhau nhằm cắt giảm khối lượng công việc thủ công Điều này làm cho việc trích xuất và lưu trữ thông tin
từ các tài liệu kinh doanh, biên lai, hộ chiếu, v.v trở nên rất dễ dàng và hiệu quả Ngoài ra, khi bạn tải lên tài liệu của mình cho KYC ( Know Your Customer), OCR được sử dụng để trích xuất thông tin từ các tài liệu này và lưu trữ chúng để tham khảo trong tương lai Việc số hóa sử dụng OCR rõ ràng có những lợi thế rộng rãi như lưu trữ và thao tác văn bản dễ dàng, chưa kể đến lượng phân tích khó lường mà bạn có thể áp dụng cho dữ liệu này Ngoài những lợi ích của OCR đem lại cho bài toán thì cũng có một số khó khăn đối với đề tài như là kí tự văn
Kết quả phân loại công văn
Hình 1 2: Ứng dụng trí tuệ nhân tạo để tự động phân loại công văn và phục
vụ số hóa tài liệu
Trang 11bản là tiếng Việt, OCR chỉ nhận dạng được khoảng 80 – 90% trên hình ảnh rõ nét, khó có thể nhận dạng được chữ viết tay
Đối với nhiệm vụ thứ hai, bài toán Text Classification hầu hết các phương pháp máy học áp dụng cho bài toán phân loại văn bản đều sử dụng cách biểu diễn văn bản dưới dạng véc tơ đặc trưng Điểm khác biệt duy nhất chính là không gian đặc trưng được chọn lựa Tuy nhiên ở đây ta thấy nảy sinh một số vấn đề cơ bản:
Số lượng từ xuất hiện trong văn bản sẽ rất lớn Như vậy, mỗi véc tơ có thể có hàng ngàn đặc trưng, hay nói cách khác mỗi véc tơ sẽ có số chiều rất lớn Do vậy các véc tơ sẽ không đồng nhất về kích thước Để giải quyết vấn đề thông thường chúng ta sẽ lựa chọn đặc trưng được đánh giá là hữu ích, bỏ đi những đặc trưng không quan trọng Đối với phân loại văn bản, quá trình này rất quan trọng bởi vì véc tơ văn bản có số chiều rất lớn, trong đó thành phần dư thừa cũng rất nhiều
Vì vậy các phương pháp chọn lựa đặc trưng rất hiệu quả trong việc giảm chiều của véc tơ đặc trưng văn bản, chiều của véc tơ văn bản sau khi được giảm đi nhưng không mất đi độ chính xác phân loại
- Nghiên cứu các mô hình trí tuệ nhân tạo để rút trích thông tin ảnh
- Cài đặt, tích hợp, cấu hình hệ thống đề xuất cho cơ sơ dữ liệu ảnh thực
tế
1.4 Đóng góp của luận văn
Tính khoa học của đề tài:
- Áp dụng các mô hình máy học như: RandomForest, LSTM, XGBoost, vào nghiên cứu và ứng dụng cho đề tài
- Có độ chính xác và tốc độ xử lý nhanh với việc sử dụng framework Tesseract OCR
Tính thực tiễn:
Luận văn xây dựng ứng dụng theo nhu cầu thực tế về việc số hóa hình ảnh
và ứng dụng trí tuệ nhân tạo trong việc phân loại văn bản hay công văn khác nhau
Trang 121.5 Tình hình nghiên cứu hiện tại:
Có nhiều phương pháp để tạo ra một phần mềm dạng OCR, độ chính xác của các phương pháp này phụ thuộc vào công nghệ tạo nên phần mềm Các phương pháp này đạt được độ tin cậy trong các hình ảnh có chất lượng tốt và vừa
Độ chính xác của việc rút trích văn bản là điều quan trọng nhất Nhóm tác giả Kirill Safronov [1] cho rằng một số sai sót trong quá trình chuyển đổi thường không quá quan trong trừ các trường hợp như rút trích số serial từ ảnh chụp,…
Để khắc phục tình trạng kết quả xuất ra không chính xác của công nghệ OCR, nhiều công nghệ khác đã ra đời, tác giả A.Vinutha M H [2] đã ứng dụng định hướng robot ( Optical Character Recognition Based Auto Navigation of Robot) Việc định hướng của robot dựa vào bảng tín hiệu như là một cột mốc đánh dấu đường đi tiếp theo của robot Định hướng tự động của các robot trong một vùng lớn đòi hỏi nhiều bảng tín hiệu khác nhau với mô hình nhận dạng duy nhất Ngoài ra, hệ thống này còn cho phép nhận diện vị trí riêng
Bên cạnh việc cải thiện độ chính xác, chúng ta cần có sự thay đổi kích thước của thiết bị nhận dạng, tác giả Ali Ahmadi [3] đã đề cập trong nghiên cứu của mình, tốc độ xử lý và độ chính xác cao là yêu cầu lớn hiện nay của các thiết
bị nhận dạng kí tự nhỏ, ví dụ như bút biết nhận dạng
Trang 13Chương 2: Cơ sở lý thuyết
2.1 Tổng quan về Tesseract
Nhận dạng ký tự quang học ( Optical Character Recognition, viết tắt là OCR), là 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ành các văn bản tài liệu 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, 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ă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 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ư dưới hình:
Hình 2 1: Xác định vị trí của text bằng OCR
Trang 14OCR 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ể Các quy trình phụ thường bao gồm:
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 để cũng cấp tính năng nhập văn bản tự dộ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
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 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 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
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ừ
Trang 15 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 đó, trình phân loại thích ứng sẽ có cơ hội nhận dạng chính xác hơn
Hình 2 3: Kiến trúc Tesseract OCR
Về sự hạn chế của Tesseract, chỉ 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
Trang 16ảnh càng tốt thì kết quả nhận dạng càng tốt Tesseract 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ắt 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à báo cáo đâu 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
Bản quét chất lượng kém có thể tạo ra OCR chất lượng kém
Nó không tiết lộ thông tin về phông chữ thuộc họ văn bản nào
2.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 mạng nơ-ron dưới đây:
Hình 2 4: Mạng nơ-ron thông thường
Như đã biết thì mạng nơ-ron bao gồm 3 phần chính là Input layer, Hidden layer, Output layer, ta có thể thấy là đầu vào và đầu ra của mạng nơ-ron này là độc lập với nhau, Như vậy mô hình này không phù hợp với những bài toán dạng chuỗi mô tả, hình thành câu, vì những dự đoá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ừ bước tính toán xử lý trước để dựa vào nó đưa ra dự đoán chính xác nhất cho bước dự đoán hiện tại RNN được gọi là hồi quy (Recurent) 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 toá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
Trang 17dà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 2 5: Kiến trục của mạng RNN
Giải thích một chút: Nếu như mạng nơ-ron chỉ là input layer x đi qua hidden
layer h và cho ra output layer y với full connected giữa các layer thì trong RNN,
các input xt sẽ được kết hợp với hidden layer ht−1 bằng hàm fW để tính toán ra hidden layer ht hiện tại và output yt sẽ được tính ra từ ht, W là tập các trọng số
và nó được ở tất cả các cụm, các L1,L2, ,Lt là các hàm mất mát sẽ được giải
thích sau Như vậy kết quả từ các quá trình tính toán trước đã được "nhớ" bằng
cách kết hợp thêm ht−1 tính ra ht để tăng độ chính xác cho những dự đoán ở
hiện tại Cụ thể quá trình tính toán được viết dưới dạng toán như sau:
Trang 18Hình 2 6: Các dạng của RNN
2.3 Long short term memory (LSTM)
Mạng bộ nhớ dài-ngắn (Long Short Term Memory networks), thường được gọi là LSTM - là một dạng đặc biệt của RNN, nó có khả năng học được các phụ thuộc
xa LSTM được giới thiệu bởi Hochreiter & Schmidhuber (1997) [4], và sau đó đã được cải tiến và phổ biến bởi rất nhiều người trong ngành Chúng hoạt động cực kì hiệu quả trên nhiều bài toán khác nhau nên dần đã trở nên phổ biến như hiện nay
LSTM được thiết kế để tránh được vấn đề phụ thuộc xa (long-term dependency) Việc nhớ thông tin trong suốt thời gian dài là đặc tính mặc định của chúng, chứ ta không cần phải huấn luyện nó để có thể nhớ được Tức là ngay nội tại của nó đã có thể ghi nhớ được mà không cần bất kì can thiệp nào
Mọi mạng hồi quy đều có dạng là một chuỗi các mô-đun lặp đi lặp lại của mạng nơ-ron Với RNN chuẩn, các mô-dun này có cấu trúc rất đơn giản, thường là
một tầng tanh
Hình 2 7: Mô-đun lặp lại trong RNN tiêu chuẩn chứa một lớp duy nhất
Trang 19LSTM cũng có kiến trúc dạng chuỗi như vậy, nhưng các mô-đun trong nó có cấu trúc khác với RNN chuẩn Thay vì chỉ có một tầng mạng nơ-ron, chúng có tới 4 tầng tương tác với nhau một cách rất đặc biệt
Hình 2 8: Mô-đun lặp lại trong một LSTM chứa 4 lớp tương tác
Giờ thì đừng hoang mang về chi tiết bên trong chúng ngay, chúng ta sẽ khám phá chúng chi tiết chúng ở bước sau Điều bạn cần làm bây giờ là làm hãy làm quen với các kí hiệu mà ta sẽ sử dụng ở dưới đây:
Ở sơ đồ trên, mỗi một đường mang một véc-tơ từ đầu ra của một nút tới đầu vào của một nút khác Các hình trong màu hồng biểu diễn các phép toán như phép cộng véc-tơ chẳng hạn, còn các ô màu vàng được sử dụng để học trong các từng mạng nơ-ron Các đường hợp nhau kí hiệu việc kết hợp, còn các đường rẽ nhánh ám chỉ nội dung của nó được sao chép và chuyển tới các nơi khác nhau
2.3.1 Ý tưởng cốt lõi của LSTM
Chìa khóa của LSTM là trạng thái tế bào (cell state) - chính đường chạy thông ngang phía trên của sơ đồ hình vẽ
Trạng thái tế bào là một dạng giống như băng truyền Nó chạy xuyên suốt tất cả các mắt xích (các nút mạng) và chỉ tương tác tuyến tính đôi chút
Vì vậy mà các thông tin có thể dễ dàng truyền đi thông suốt mà không sợ bị thay đổi
Trang 20LSTM có khả năng bỏ đi hoặc thêm vào các thông tin cần thiết cho trạng thái tế báo, chúng được điều chỉnh cẩn thận bởi các nhóm được gọi là cổng (gate)
Các cổng là nơi sàng lọc thông tin đi qua nó, chúng được kết hợp bởi một tầng mạng sigmoid và một phép nhân
Tầng sigmoid sẽ cho đầu ra là một số trong khoản [0, 1][0,1], mô tả có bao nhiêu thông tin có thể được thông qua Khi đầu ra là 00 thì có nghĩa là không cho thông tin nào qua cả, còn khi là 11 thì có nghĩa là cho tất cả các thông tin đi qua nó
Một LSTM gồm có 3 cổng như vậy để duy trì và điều hành trạng thái của tế bào
2.3.2 Bên trong LSTM
Bước đầu tiên của LSTM là quyết định xem thông tin nào cần bỏ đi từ trạng thái tế bào Quyết định này được đưa ra bởi tầng sigmoid - gọi là “tầng
Trang 21cổng quên” (forget gate layer) Nó sẽ lấy đầu vào là ht−1 và xt rồi đưa ra kết quả là một số trong khoảng [0, 1][0,1] cho mỗi số trong trạng thái tế bào Ct−1
Đẩu ra là 11 thể hiện rằng nó giữ toàn bộ thông tin lại, còn 00 chỉ rằng toàn
bộ thông tin sẽ bị bỏ đi
Quay trở lại với ví dụ mô hình ngôn ngữ dự đoán từ tiếp theo dựa trên tất cả các từ trước đó, với những bài toán như vậy, thì trạng thái tế bào có thể
sẽ mang thông tin về giới tính của một nhân vật nào đó giúp ta sử dụng được đại từ nhân xưng chuẩn xác Tuy nhiên, khi đề cập tới một người khác thì ta
sẽ không muốn nhớ tới giới tính của nhân vật nữa, vì nó không còn tác dụng
gì với chủ thế mới này
Bước tiếp theo là quyết định xem thông tin mới nào ta sẽ lưu vào trạng thái tế bào Việc này gồm 2 phần Đầu tiên là sử dụng một tầng sigmoid được gọi là “tầng cổng vào” (input gate layer) để quyết định giá trị nào ta sẽ cập
nhập Tiếp theo là một tầng tanhtanh tạo ra một véc-tơ cho giá trị mới \tilde{C_t}Ct~ nhằm thêm vào cho trạng thái Trong bước tiếp theo, ta
sẽ kết hợp 2 giá trị đó lại để tạo ra một cập nhập cho trạng thái
Chẳng hạn với ví dụ mô hình ngôn ngữ của ta, ta sẽ muốn thêm giới tính của nhân vật mới này vào trạng thái tế bào và thay thế giới tính của nhân vật trước đó
Trang 22Giờ là lúc cập nhập trạng thái tế bào cũ Ct−1 thành trạng thái mới Ct
Ở các bước trước đó đã quyết định những việc cần làm, nên giờ ta chỉ cần thực hiện là xong
Ta sẽ nhân trạng thái cũ với ft để bỏ đi những thông tin ta quyết định quên lúc trước Sau đó cộng thêm it∗Ct~ Trạng thái mơi thu được này phụ
thuộc vào việc ta quyết định cập nhập mỗi giá trị trạng thái ra sao
Với bài toàn mô hình ngôn ngữ, chính là việc ta bỏ đi thông tin về giới tính của nhân vật cũ, và thêm thông tin về giới tính của nhân vật mới như ta
đã quyết định ở các bước trước đó
Cuối cùng, ta cần quyết định xem ta muốn đầu ra là gì Giá trị đầu ra
sẽ dựa vào trạng thái tế bào, nhưng sẽ được tiếp tục sàng lọc Đầu tiên, ta chạy một tầng sigmoid để quyết định phần nào của trạng thái tế bào ta muốn xuất
ra Sau đó, ta đưa nó trạng thái tế bào qua một hàm tanh để có giá trị nó về
khoảng [-1, 1][−1,1], và nhân nó với đầu ra của cổng sigmoid để được giá trị đầu ra ta mong muốn
Với ví dụ về mô hình ngôn ngữ, chỉ cần xem chủ thể mà ta có thể đưa
ra thông tin về một trạng từ đi sau đó Ví dụ, nếu đầu ra của chủ thể là số ít hoặc số nhiều thì ta có thể biết được dạng của trạng từ đi theo sau nó phải như thế nào
Trang 232.4 Mô hình ngôn ngữ (Language model)
Language Model (LM) là một mô hình đại diện cho những kiến thức đã
biết về một ngôn ngữ, những kiến thức ấy có thể là những từ, chuỗi các từ có thể
có hay mức độ thường xuyên mà chúng xuất hiện
LM được chia thành ba nhóm đó là Statistical LM (Count-based), Neural Network LM (Continuous-space) và Knowledge-based LM, Ngoài ra còn một số
LM khác chẳng hạn như KenLM,
2.4.1 Statistical Language Models ( Count-based)
Những mô hình thuộc nhóm này đều dựa trên việc đếm tần suất xuất hiện của từng từ hay chuỗi, do đó nó cần một lượng dữ liệu lớn, càng nhiều càng tốt
Statistical LM là phân bố xác suất P(W), W∈V+ trên tập hợp tất cả các chuỗi (câu văn) V+ có trong tập dữ liệu thuộc bộ từ vựng VV của một ngôn
và được tính bằng cách đếm chuỗi như sau:
P(wk ∣w1w2 wk−1)=count(w1w2 wk−1)count(w1w2 wk) Tuy nhiên, nếu K càng lớn thì tần suất xuất hiện của chuỗi K từ ấy càng nhỏ và sẽ có trường hợp tần suất xuất hiện của chuỗi K−1 từ dẫn trước là lớn, khiến cho xác suất P(wk∣w1w2 wk−1) gần như bằng 0, dẫn tới việc chuỗi K từ ấy không bao giờ xảy ra (nói đơn giản hơn là chuỗi ấy không
có mặt trong tập huấn luyện) Giải pháp để giảm thiểu vấn đề này là thay
vì tính theo K−1 thì ta chỉ chọn N−1 từ dẫn trước thôi, và thế là ta có
N-gram Language Models:
P(wk ∣w1w2 wk−1)=P(wk∣wk−N+1wk−N+2 wk−1)
2.4.2 N-gram Language Models
Như vậy ta sẽ có xác suất của một chuỗi là như sau:
Thông thường người ta sẽ chọn N=1,2,3
Trang 24Người ta còn gọi mô hình này với cái tên khác là (N-1)-order Markov Models
Nhưng mà, mô hình này có các nhược điểm như sau:
Sai điều kiện về sự phụ thuộc: Việc chuyển từ K−1 về N−1 ngay từ
đầu đã không đúng rồi
Bão hoà (Saturation): Data càng nhiều thì model sẽ càng tốt nhưng sẽ
đến lúc thêm data khác thì phân bố xác suất không thay đổi Điều này xảy ra với bigram, trigram khi số từ đạt tới hàng tỷ
Thiếu tính tổng quát hoá: Từng thể loại, chủ đề, phong cách thì sẽ có
các kết hợp câu, từ khác nhau Do đó với các nguồn dữ liệu khác nhau thì chất lượng mô hình sẽ khác nhau, nhất là khi tập train với test khác kiểu viết thì performance của mô hình sẽ rất tệ
Thưa thớt dữ liệu (Data sparseness): Khi thiếu dữ liệu hoặc dữ liệu
bị mất thì sẽ dẫn về lại vấn đề chuỗi không có mặt trong tập train mà
có mặt trong tập test khiến xác suất bằng 0, N-gram chỉ giảm hiện tượng này chứ chưa giải quyết được hẳn
2.4.3 Neural Network Language Models (Continuous-space)
Loại mô hình ngôn ngữ này được giới thiệu để xử lý vấn đề thưa
thớt dữ liệu (data sparseness) của N-gram Language Models Mô hình
kiểu này được chia làm hai dạng là Feed Forward Neural Networks
(FNNs) và Recurrent Neural Networks (RNNs)
Mọi mô hình kiểu này đều có input và output là:
Input: Word Embedding hay Character Embedding, là chuyển từ hay
ký tự sang vector số thực trong một không gian n chiều (dimensions)
cố định
Output: Với mỗi output unit là xác suất của một từ hay ký tự khi đã
biết context Context là gì thì còn tùy thuộc vào dạng mô hình sử dụng
Đối với dạng FNNs, context là một chuỗi có độ dài cố định và là những từ
hay ký tự đúng trước ký tự đang xét, nghĩa là giống như N-gram Language Models vậy đó
Đối với dạng RNNs, context như của FNNs nhưng có độ dài không cố định
và dạng này giúp giải quyết vấn đề Limited context của FNNs, tức là không
còn là N-gram nữa và các nhược điểm của N-gram Language Models không còn nữa
Trang 25Chương 3 : Thực nghiệm và đánh giá kết quả
3.1 Cơ chế hoạt động của Tesseract
Hình 3 1: Kiến trúc nhận dạng văn bản chữ in trong Tesseract
Cũng giống như hầu hết các chương trình nhận dạng ký tự quang học, Tesseract có một kiến trúc điển hình từ trên xuống Bước đầu bằng chức năng tiền xử lý, một ngưỡng sẽ được chọn bởi bộ phân ngưỡng thông qua một quá trình phân tích các điểm trong ảnh với giải thuật như là Otsu, sau đó ngưỡng này
sẽ được sử dụng để chuyển đổi ảnh màu hoặc ảnh xám đầu vào thành một ảnh nhị phân, giả thiết chứa các vùng văn bản hình dạng đa giác
Giai đoạn tiếp theo là ảnh nhị phân được đưa vào bộ Phân tích thành phần liên thông (Connected component analysis) để tìm ra hình dạng phác thảo của những thành phần liên thông Đây là một tiến trình phức tạp mất nhiều thời gian nhưng cần có để tách ra các ký tự có trong hình
Khối Tìm các dòng văn bản và từ (Find text lines and words) thực hiện các chức năng như xác định dòng chặn dưới và chặn trên, đối với mỗi dòng thì cắt gọn từ trước khi xác định vùng của mỗi ký tự, ngoài ra cần nhận dạng khoảng cách giữa chữ và số Lọc dãy dòng không chỉ tìm dãy ký tự trong từng dòng mà còn phát hiện các ký tự có độ cao chênh lệch trong dòng như ký tự drop-cap, ký
tự chấm câu, ký tự dấu và nhiễu Tuy nhiên, nếu ảnh số chứa các dòng có độ nghiêng hoặc cong thì giải thuật trở nên phức tạp Để giúp giảm bớt mất thông tin khi nhận dạng ảnh nghiêng thì áp dụng giải thuật biến đổi Hough tìm góc nghiêng để đưa ảnh số trở lại vị trí thông thường Trong trường hợp dòng có độ