Ứng dụng luyện tập viết chữ tiếng Nhật trên thiết bị di động

Các ứng dụng học tiếng Nhật hiện nay chỉ tập trung vào việc ôn luyện kỳ thi năng lực Nhật ngữ mà

chưa bao gồm phần thi viết. Vì vậy, kỹ năng viết của người học có thể sẽ phát triển chậm vì tiếng

Nhật bao gồm nhiều bộ chữ khác nhau. Trong đó, đặc biệt khó là chữ Hán tự, điều luôn gây khó

khăn cho người học. Với khả năng nhận dạng chữ viết tay của trí tuệ nhân tạo, ta có thể hỗ trợ thêm

cách học và luyện tập chữ Hán tự bằng phương pháp viết ngay trên di động. Trong bài báo này,

chúng tôi đề xuất ứng dụng áp dụng kỹ thuật nhận dạng chữ viết tay vào thiết bị di động đa nền

tảng nhằm hỗ trợ người học tiếng Nhật luyện kỹ năng viết

Ứng dụng luyện tập viết chữ tiếng Nhật trên thiết bị di động trang 1

Trang 1

Ứng dụng luyện tập viết chữ tiếng Nhật trên thiết bị di động trang 2

Trang 2

Ứng dụng luyện tập viết chữ tiếng Nhật trên thiết bị di động trang 3

Trang 3

Ứng dụng luyện tập viết chữ tiếng Nhật trên thiết bị di động trang 4

Trang 4

Ứng dụng luyện tập viết chữ tiếng Nhật trên thiết bị di động trang 5

Trang 5

Ứng dụng luyện tập viết chữ tiếng Nhật trên thiết bị di động trang 6

Trang 6

pdf 6 trang viethung 7300
Bạn đang xem tài liệu "Ứng dụng luyện tập viết chữ tiếng Nhật trên thiết bị di động", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Ứng dụng luyện tập viết chữ tiếng Nhật trên thiết bị di động

Ứng dụng luyện tập viết chữ tiếng Nhật trên thiết bị di động
65 
ỨNG DỤNG LUYỆN TẬP VIẾT CHỮ TIẾNG NHẬT 
TRÊN THIẾT BỊ DI ĐỘNG 
Ngô Nhật Trí 
Khoa Công nghệ Thông tin, Trường Đại học Công nghệ TP. Hồ Chí Minh 
GVHD: TS. Lê Thị Ngọc ơ 
TÓM TẮT 
Các ứng dụng học tiếng Nhật hiện nay chỉ tập trung vào việc ôn luyện kỳ thi năng lực Nhật ngữ mà 
chưa bao gồm phần thi viết. Vì vậy, kỹ năng viết của người học có thể sẽ phát triển chậm vì tiếng 
Nhật bao gồm nhiều bộ chữ khác nhau. Trong đó, đặc biệt khó là chữ Hán tự, điều luôn gây khó 
khăn cho người học. Với khả năng nhận dạng chữ viết tay của trí tuệ nhân tạo, ta có thể hỗ trợ thêm 
cách học và luyện tập chữ Hán tự bằng phương pháp viết ngay trên di động. Trong bài báo này, 
chúng tôi đề xuất ứng dụng áp dụng kỹ thuật nhận dạng chữ viết tay vào thiết bị di động đa nền 
tảng nhằm hỗ trợ người học tiếng Nhật luyện kỹ năng viết. 
Từ khoá: Chữ Hán tự, học tiếng Nhật, máy học, di động, ứng dụng đa nền tảng. 
ABSTRACT 
Most of Japanese learning applications focus on training the Japanese language proficiency test 
(JLPT) without writing test. Hence, the writing skill of learners may be slowly improved. Japanese 
language includes many different character sets. In which, the especially difficult part is Kanji 
characters, that always cause difficulties for learners. With the handwriting recognition by artificial 
intelligence technology, we can support learning and practicing Kanji by writing directly on mobile 
devices. In this work, we report our application on applying handwriting recognition techniques for 
multi-platform mobile devices, which target to support users in training their writing. 
Keyword: Kanji, learn Japanese, machine learning, mobile, hybrid app. 
1 ĐẶT VẤN ĐỀ 
Hiện nay các thiết bị di động ngày càng phổ biến, sự phát triển của công nghệ cho phép tích hợp trí 
tuệ nhân tạo (AI) vào ứng dụng điện thoại di động và ngày càng phát triển không ngừng, đóng vai 
trò then chốt trong hàng loạt ứng dụng quan trọng. Ví dụ trong những năm gần đây, hàng loạt 
những ứng dụng tích hợp nhận dạng gương mặt, nhận dạng giọng nói, dịch tự động, được ra 
đời. Đặc biệt là những ứng dụng về giáo dục có áp dụng AI để hỗ trợ việc học tập hiệu quả hơn. 
Mặt khác, phong trào học tiếng Nhật ở Việt Nam ngày càng lớn trong bối cảnh các doanh nghiệp 
Nhật Bản đầu tư mạnh mẽ vào Việt Nam ở nhiều lĩnh vực, do đó nhu cầu đối với nguồn nhân lực 
biết tiếng Nhật là rất lớn. Đã có nhiều ứng dụng đã được phát triển để hỗ trợ việc học tiếng Nhật 
hiệu quả hơn. Tuy nhiên, phần chữ viết trong tiếng Nhật là một phần khó trong khi ứng dụng luyện 
tập viết chữ tiếng Nhật đặc biệt là chữ Hán tự (Kanji) vẫn còn hạn chế. Điều này là do các nhà phát 
66 
triển ứng dụng chỉ tập trung đến những ứng dụng hỗ trợ cho việc luyện thi năng lực Nhật ngữ (JLPT) 
như JLPT test, JLPT practice,... Việc ứng dụng nhận dạng chữ viết tay trên điện thoại chỉ phổ biến ở 
việc hỗ trợ trong việc viết chữ Hán tự để tìm kiếm trong các từ điển như Mazii [1]. Việc nghiên cứu 
ứng dụng nhận dạng chữ viết tay trên di động vào việc luyện tập viết chữ tiếng Nhật sẽ giúp việc 
rèn luyện kỹ năng viết Hán tự trở nên linh hoạt hơn và giảm bớt lượng giấy sử dụng cũng như là 
công cụ hữu ích cho các hệ thống giáo dục tiếng Nhật. 
2 GIẢI PHÁP CÔNG NGHỆ 
2.1 Mô hình học sâu và CNN 
Học sâu là một lĩnh vực mới được ra đời sau nhiều sự phát triển của máy học - một lĩnh vực của trí 
tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các hệ thống ‚học‛ tự động từ dữ liệu để 
giải quyết những vấn đề cụ thể. Ở đây là giúp cho máy có thể nhận dạng được chữ viết tay từ người 
dùng. 
Convolutional Neural Network – CNN là một cấu trúc rất phổ biến và quen thuộc trong mô hình học 
sâu. CNN được ứng dụng nhiều trong Thị giác máy tính, Hệ thống gợi ý, Xử lý ngôn ngữ tự nhiên, 
2.2 Flutter và Dart 
Flutter [2] là một SDK phát triển ứng dụng di động nguồn mở được tạo ra bởi Google, nó được sử 
dụng để phát triển ứng dụng cho Android và iOS. Flutter được phát triển nhằm giải quyết bài toán 
thường gặp trong phát triển ứng dụng di động là phát triển nhanh và hiệu năng gốc. Nếu như 
React Native – Framework mã nguồn mở được sáng tạo bởi Facebook và cũng được sử dụng để 
phát triển ứng dụng di động Android và iOS chỉ đảm bảo phát triển nhanh và mã nguồn gốc chỉ 
đảm bảo hiệu năng gốc thì Flutter làm được cả 2 điều trên. 
Flutter sử dụng Dart, một ngôn ngữ lập trình hướng đối tượng do Google phát triển. Ngoài ra, Dart 
cũng hướng tới việc trở thành một ngôn ngữ có thể chạy trên nhiều platform khác nhau, nó cũng có 
thể chạy máy ảo (VM) làm nhiệm vụ dịch mã nguồn sang bytecode như Java. 
3 PHÁT TRIỂN 
3.1 Mục tiêu phần mềm 
Viết ứng dụng luyện tập viết chữ tiếng Nhật trên điện thoại sử dụng nền tảng Flutter. Sau đó áp 
dụng mô hình CNN vào ứng dụng thực hiện việc nhận dạng chữ viết tay. 
Nghiên cứu này tập trung vào việc áp dụng mô hình máy học vào thiết bị di động đa nền tảng để 
phát triển ứng dụng trong lĩnh vực giáo dục, không tập trung vào việc phát triển một ứng dụng 
hoàn chỉnh. 
3.2 Giải pháp đề xuất 
Ứng dụng được phát triển dựa trên 2 phần xây dựng mô hình máy học và giao diện trên di động. 
Xây dựng mô hình sử dụng thuật toán CNN nhận dạng chữ viết tay sử dụng bộ dữ liệu chữ viết tay 
tiếng Nhật. 
67 
Xây dựng giao diện cho ứng dụng trên thiết bị di động để nhận dữ liệu chữ viết tay do người dùng 
nhập. 
Hình 1. Quá trình phát triển phần mềm 
3.2.1 Chuẩn bị dữ liệu 
Ứng dụng sẽ nhận dạng chữ cái viết tay của tiếng Nhật nên sẽ sử dụng bộ dữ liệu được cung cấp 
bởi Viện Khoa học và Công nghệ Công nghiệp Tiên tiến Quốc gia (AIST) của Nhật Bản [3]. Dữ liệu 
được cung cấp miễn phí phục vụ cho mục đích nghiên cứu có tên là ETLDB. Nghiên cứu này chỉ sử 
dụng một tập nhỏ có chứa 3036 chữ cái. 
3.2.2 Tiền xử lý dữ liệu 
a. Import dependencies 
Chúng tôi xử lý dữ liệu bằng thư viện hỗ trợ như Tensorflow, Keras, Numpy, và OpenCV. 
b. Data generator 
Ở bước này cần định nghĩa 2 bộ sinh dữ liệu, cho 2 tập training và testing. Bản chất của hàm sinh 
dữ liệu này sẽ tạo ra một vài mẫu dữ liệu mới dựa trên các mẫu dữ liệu đã sẵn có. Mục đích của nó 
để làm phong phú thêm tập dữ liệu cho tập training giúp mô hình học được tốt trong nhiều trường 
hợp hơn. Phương pháp này gọi là Data augmentation [4]. 
Hình 2. Minh hoạ cho Data augumentation 
Định nghĩa cho tập train có một vài tham số quan trọng: 
– Rotation_range: Xoay ảnh ngẫu nhiên trong khoảng 40o. 
68 
– Width_shifft_range: Cắt ngẫu nhiên một phần chiều rộng theo tỷ lệ. 
– Height_shift_range: Cắt ngẫu nhiên một phần chiều cao theo tỷ lệ. 
– Rescale: Chuẩn hoá hay còn gọi là normalize dữ liệu, giúp đưa giá trị của dữ liệu về khoảng 
[0, 1] giúp quá trình training được nhanh hơn. 
– Shear_range: Cắt ngẫu nhiên một góc theo chiều kim đồng hồ. 
– Horizontal_flip: Lật ảnh theo chiều ngang, ở đây set bằng False vì dữ liệu là chữ, lật ngược 
ảnh sẽ làm ảnh hưởng đến độ chính xác dữ liệu. 
Định nghĩa cho tập test sẽ đơn giản hơn vì dữ liệu test là dữ liệu mà mô hình hoàn toàn chưa biết 
chính vì thế không được xử lý gì trên đó. Bước này chỉ chuẩn hoá dữ liệu về khoảng [0, 1] mà thôi. 
3.2.3 Lựa chọn mô hình 
Kiến trúc của mô hình CNN [5] được thiết lập như sau: 
Bảng 1. Kiến trúc mô hình CNN 
Layer (type) Output Shape Param # 
Conv2d_01 (Conv2D) (None, 60, 60, 32) 832 
Maxpool2d_01 (MaxPooling2D) (None, 30, 30, 32) 0 
Conv2d_02 (Conv2D) (None, 26, 26, 32) 25632 
Maxpool2d_02 (MaxPooling2D) (None, 13, 13, 32) 0 
Conv2d_03 (Conv2D) (None, 9, 9, 64) 51264 
Maxpool_03 (MaxPooling2D) (None, 4, 4, 64) 0 
Flatten_01 (Flatten) (None, 1024) 0 
Dense_01 (Dense) (None, 256) 262400 
Dense_output (Dense) (None, 3036) 780252 
Có tổng cộng 1,120,380 tham số cần phải tối ưu trong quá trình training. 
3.2.4 Huấn luyện mô hình 
Đây là bước quan trọng và cũng là cực nhọc nhất trong quá trình thực hiện một bài toán mô hình 
học sâu bởi vì nó ngốn rất nhiều thời gian. Nhờ vào việc sử dụng colab do Google cung cấp có thể 
lợi dụng GPU sẵn có của máy chủ Google để quá trình training diễn ra nhanh hơn. 
Sau khi huấn luyện mô hình thì thu được kết quả như sau: 
Bảng 2. Kết quả huấn luyện 
Epoch 42/50 Time Loss Acc Val_loss Val_acc 
898s 0.0138 0.9963 0.0301 0.9924 
69 
Ở bước 42/50 mức độ dự đoán (val_acc) đạt giá trị lớn nhất sau đó không có dấu hiệu tăng thêm 
được nữa. Bên cạnh đó mức độ tổn thất (val_loss) đã giảm xuống khá sâu và độ chính xác trên tập 
huấn luyện đã gần đạt 100% chứng tỏ mô hình đã học tập rất tốt trên tập huấn luyện. Nếu huấn 
luyện nữa thì có thể sẽ dẫn đến hiện tượng quá khớp (overfitting), thế nên sẽ lấy mô hình tốt nhất tại 
bước thứ 42. 
3.2.5 Chuyển đổi mô hình sang TensorFlow Lite 
TensorFlow Lite là một phiên bản nhỏ gọn của TensorFlow cho phiên bản di động. Để có thể chạy 
mô hình với TensorFlow Lite thì phải chuyển đổi mô hình thành mô hình có đuôi (.tflite). [6] 
3.2.6 Xây dựng ứng dụng di động 
Ứng dụng sử dụng nền tảng Flutter để phát triển chạy trên 2 hệ điều hành di động phổ biến hiện 
nay là Android và iOS. Gồm 2 tính năng chính: tra từ điển chữ Hán tự, luyện tập viết chữ Hán tự theo 
chủ đề và độ khó. 
a) b) 
Hình 3. Giao diện trên iOS (a) và Android (b) 
4 KẾT QUẢ THỬ NGHIỆM 
4.1 Một số hình ảnh của ứng dụng 
(a) (b) (c) (d) 
Hình 4. (a) Từ điển chữ Hán tự, (b) Lựa chọn chủ đề, (c) Luyện viết chữ Hán tự, và (d) Kiểm tra kết quả 
70 
4.2 Kết quả đạt được 
Qua nghiên cứu chúng tôi đã tìm hiểu và xây dựng thành công mô hình CNN nhận dạng chữ viết 
tay với bộ dữ liệu chữ viết tay tiếng Nhật. Bên cạnh đó chúng tôi phát triển ứng dụng đa nền tảng 
trên thiết bị di động áp dụng mô hình CNN giúp hỗ trợ người học tiếng Nhật nâng cao kỹ năng viết 
chữ Hán tự. 
5 KẾT LUẬN 
Trong bài báo này, chúng tôi áp dụng mô hình máy học nhận dạng chữ viết tay vào ứng dụng di 
động nhằm hỗ trợ thêm tính năng cho người học tiếng Nhật nâng cao kỹ năng viết, đem lại trải 
nghiệm mới về cách học tiếng Nhật trên thiết bị di động. Nghiên cứu này sẽ là tiền đề cho chúng tôi 
phát triển thêm những tính năng như kiểm tra thứ tự nét vẽ của của người dùng nhằm cải thiện hơn 
nữa trải nghiệm học tiếng Nhật trên nền tảng di động. 
TÀI LIỆU THAM KHẢO 
[1] ‚Mazii,‛ 0 0 0. Trực tuyến . Available: https://mazii.net/. 
[2] Flutter, 0 0 0. Trực tuyến . Available: https://flutter.dev/docs. 
[3] ‚ET Character Database,‛ 0 0 0. Trực tuyến . Available:  
[4] N. T. Tuấn (2019) Deep Learning cơ bản, pp. 147-162. 
[5] S. amesh, ‚ guide to an efficient way to build neural network architectures,‛ 0 0 0. Trực 
tuyến . Available: https://towardsdatascience.com/a-guide-to-an-efficient-way-to-build-
neural-network-architectures-part-ii-hyper-parameter-42efca01e5d7. 
[6] S. Fraile, ‚Handwriting number recognizer with Flutter and Tensorflow,‛ 0 0 0. Trực tuyến . 
Available: https://medium.com/flutter-community/handwriting-number-recognizer-with-
flutter-and-tensorflow-part-i-414157b7574f. 

File đính kèm:

  • pdfung_dung_luyen_tap_viet_chu_tieng_nhat_tren_thiet_bi_di_dong.pdf