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

NG DNG LUYN TP VIT CHTING NHT  
TRÊN THIT BDI ĐỘNG  
Ngô Nht Trí  
Khoa Công nghThông tin, Trường Đại hc Công nghTP. HChí Minh  
GVHD: TS. Lê Th Ngc   ơ  
TÓM TT  
Các ng dng hc tiếng Nht hin nay chtp trung vào vic ôn luyn kthi năng lc Nht ngmà  
chưa bao gm phn thi viết. Vì vy, kỹ năng viết ca người hc có thsphát trin chm vì tiếng  
Nht bao gm nhiu bchkhác nhau. Trong đó, đặc bit khó là chHán t, điều luôn gây khó  
khăn cho người hc. Vi khả năng nhn dng chviết tay ca trí tunhân to, ta có thhtrthêm  
cách hc và luyn tp chHán tbng phương pháp viết ngay trên di động. Trong bài báo này,  
chúng tôi đề xut ng dng áp dng kthut nhn dng chviết tay vào thiết bdi động đa nn  
tng nhm htrợ người hc tiếng Nht luyn kỹ năng viết.  
Tkhoá: ChHán t, hc tiếng Nht, máy hc, di động, ng dng đa nn tng.  
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 VN ĐỀ  
Hin nay các thiết bdi động ngày càng phbiến, sphát trin ca công nghcho phép tích hp trí  
tunhân to (AI) vào ng dng điện thoi di động và ngày càng phát trin không ngng, đóng vai  
trò then cht trong hàng lot ng dng quan trng. Ví dtrong nhng năm gn đây, hàng lot  
nhng ng dng tích hp nhn dng gương mt, nhn dng ging nói, dch tự động,… được ra  
đời. Đặc bit là nhng ng dng vgiáo dc có áp dng AI để htrvic hc tp hiu quả hơn.  
Mt khác, phong trào hc tiếng Nht Vit Nam ngày càng ln trong bi cnh các doanh nghip  
Nht Bn đầu mnh mvào Vit Nam nhiu lĩnh vc, do đó nhu cu đối vi ngun nhân lc  
biết tiếng Nht là rt ln. Đã có nhiu ng dng đã được phát trin để htrvic hc tiếng Nht  
hiu quả hơn. Tuy nhiên, phn chviết trong tiếng Nht là mt phn khó trong khi ng dng luyn  
tp viết chtiếng Nht đặc bit là chHán t(Kanji) vn còn hn chế. Điều này là do các nhà phát  
65  
trin ng dng chtp trung đến nhng ng dng htrcho vic luyn thi năng lc Nht ng(JLPT)  
như JLPT test, JLPT practice,... Vic ng dng nhn dng chviết tay trên điện thoi chphbiến ở  
vic htrtrong vic viết chHán tự để tìm kiếm trong các từ điển như Mazii [1]. Vic nghiên cu  
ng dng nhn dng chviết tay trên di động vào vic luyn tp viết chtiếng Nht sgiúp vic  
rèn luyn kỹ năng viết Hán ttrnên linh hot hơn và gim bt lượng giy sdng cũng như là  
công chu ích cho các hthng giáo dc tiếng Nht.  
2 GII PHÁP CÔNG NGHỆ  
2.1 Mô hình hc sâu và CNN  
Hc sâu là mt lĩnh vc mi được ra đời sau nhiu sphát trin ca máy hc - mt lĩnh vc ca trí  
tunhân to liên quan đến vic nghiên cu và xây dng các hthng ‚học‛ tự động tdliu để  
gii quyết nhng vn đề cth. Ở đây là giúp cho máy có thnhn dng được chviết tay từ người  
dùng.  
Convolutional Neural Network CNN là mt cu trúc rt phbiến và quen thuc trong mô hình hc  
sâu. CNN được ng dng nhiu trong Thgiác máy tính, Hthng gi ý, Xlý ngôn ngtnhiên,…  
2.2 Flutter và Dart  
Flutter [2] là mt SDK phát trin ng dng di động ngun mở được to ra bi Google, nó được sử  
dng để phát trin ng dng cho Android và iOS. Flutter được phát trin nhm gii quyết bài toán  
thường gp trong phát trin ng dng di động là phát trin nhanh và hiu năng gc. Nếu như  
React Native Framework mã ngun mở được sáng to bi Facebook và cũng được sdng để  
phát trin ng dng di động Android và iOS chỉ đảm bo phát trin nhanh và mã ngun gc chỉ  
đảm bo hiu năng gc thì Flutter làm được c2 điều trên.  
Flutter sdng Dart, mt ngôn nglp trình hướng đối tượng do Google phát trin. Ngoài ra, Dart  
cũng hướng ti vic trthành mt ngôn ngcó thchy trên nhiu platform khác nhau, nó cũng có  
thchy máy o (VM) làm nhim vdch mã ngun sang bytecode như Java.  
3 PHÁT TRIN  
3.1 Mc tiêu phn mm  
Viết ng dng luyn tp viết chtiếng Nht trên điện thoi sdng nn tng Flutter. Sau đó áp  
dng mô hình CNN vào ng dng thc hin vic nhn dng chviết tay.  
Nghiên cu này tp trung vào vic áp dng mô hình máy hc vào thiết bdi động đa nn tng để  
phát trin ng dng trong lĩnh vc giáo dc, không tp trung vào vic phát trin mt ng dng  
hoàn chnh.  
3.2 Gii pháp đề xut  
ng dng được phát trin da trên 2 phn xây dng mô hình máy hc và giao din trên di động.  
Xây dng mô hình sdng thut toán CNN nhn dng chviết tay sdng bdliu chviết tay  
tiếng Nht.  
66  
Xây dng giao din cho ng dng trên thiết bdi động để nhn dliu chviết tay do người dùng  
nhp.  
Hình 1. Quá trình phát trin phn mm  
3.2.1 Chun bdliu  
ng dng snhn dng chcái viết tay ca tiếng Nht nên ssdng bdliu được cung cp  
bi Vin Khoa hc và Công nghCông nghip Tiên tiến Quc gia (AIST) ca Nht Bn [3]. Dliu  
được cung cp min phí phc vcho mc đích nghiên cu có tên là ETLDB. Nghiên cu này chsử  
dng mt tp nhcó cha 3036 chcái.  
3.2.2 Tin xlý dliu  
a. Import dependencies  
Chúng tôi xlý dliu bng thư vin htrợ như Tensorflow, Keras, Numpy, và OpenCV.  
b. Data generator  
Ở bước này cn định nghĩa 2 bsinh dliu, cho 2 tp training và testing. Bn cht ca hàm sinh  
dliu này sto ra mt vài mu dliu mi da trên các mu dliu đã sn có. Mc đích ca nó  
để làm phong phú thêm tp dliu cho tp training giúp mô hình hc được tt trong nhiu trường  
hp hơn. Phương pháp này gi là Data augmentation [4].  
Hình 2. Minh hocho Data augumentation  
Định nghĩa cho tp train có mt vài tham squan trng:  
Rotation_range: Xoay nh ngu nhiên trong khong 40o.  
67  
Width_shifft_range: Ct ngu nhiên mt phn chiu rng theo tl.  
Height_shift_range: Ct ngu nhiên mt phn chiu cao theo tl.  
Rescale: Chun hoá hay còn gi là normalize dliu, giúp đưa giá trca dliu vkhong  
[0, 1] giúp quá trình training được nhanh hơn.  
Shear_range: Ct ngu nhiên mt góc theo chiu kim đồng h.  
Horizontal_flip: Lt nh theo chiu ngang, ở đây set bng False vì dliu là ch, lt ngược  
nh slàm nh hưởng đến độ chính xác dliu.  
Định nghĩa cho tp test sẽ đơn gin hơn vì dliu test là dliu mà mô hình hoàn toàn chưa biết  
chính vì thế không được xlý gì trên đó. Bước này chchun hoá dliu vkhong [0, 1] mà thôi.  
3.2.3 La chn mô hình  
Kiến trúc ca mô hình CNN [5] được thiết lp như sau:  
Bng 1. Kiến trúc mô hình CNN  
Layer (type)  
Conv2d_01 (Conv2D)  
Output Shape  
(None, 60, 60, 32)  
(None, 30, 30, 32)  
(None, 26, 26, 32)  
(None, 13, 13, 32)  
(None, 9, 9, 64)  
(None, 4, 4, 64)  
(None, 1024)  
Param #  
832  
0
Maxpool2d_01 (MaxPooling2D)  
Conv2d_02 (Conv2D)  
25632  
0
Maxpool2d_02 (MaxPooling2D)  
Conv2d_03 (Conv2D)  
51264  
0
Maxpool_03 (MaxPooling2D)  
Flatten_01 (Flatten)  
0
Dense_01 (Dense)  
(None, 256)  
262400  
780252  
Dense_output (Dense)  
(None, 3036)  
Có tng cng 1,120,380 tham scn phi ti ưu trong quá trình training.  
3.2.4 Hun luyn mô hình  
Đây bước quan trng và cũng là cc nhc nht trong quá trình thc hin mt bài toán mô hình  
hc sâu bi vì nó ngn rt nhiu thi gian. Nhvào vic sdng colab do Google cung cp có thể  
li dng GPU sn có ca máy chGoogle để quá trình training din ra nhanh hơn.  
Sau khi hun luyn mô hình thì thu được kết quả như sau:  
Bng 2. Kết quhun luyn  
Epoch 42/50  
Time  
Loss  
Acc  
Val_loss  
Val_acc  
898s  
0.0138  
0.9963  
0.0301  
0.9924  
68  
Ở bước 42/50 mc độ dự đoán (val_acc) đạt giá trln nht sau đó không có du hiu tăng thêm  
được na. Bên cnh đó mc độ tn tht (val_loss) đã gim xung khá sâu và độ chính xác trên tp  
hun luyn đã gn đạt 100% chng tmô hình đã hc tp rt tt trên tp hun luyn. Nếu hun  
luyn na thì có thsdn đến hin tượng quá khp (overfitting), thế nên sly mô hình tt nht ti  
bước th42.  
3.2.5 Chuyn đổi mô hình sang TensorFlow Lite  
TensorFlow Lite là mt phiên bn nhgn ca TensorFlow cho phiên bn di động. Để có thchy  
mô hình vi TensorFlow Lite thì phi chuyn đổi mô hình thành mô hình có đuôi (.tflite). [6]  
3.2.6 Xây dng ng dng di động  
ng dng sdng nn tng Flutter để phát trin chy trên 2 hệ điều hành di động phbiến hin  
nay là Android và iOS. Gm 2 tính năng chính: tra từ điển chHán t, luyn tp viết chHán ttheo  
chủ đề độ khó.  
a)  
b)  
Hình 3. Giao din trên iOS (a) và Android (b)  
4 KT QUTHNGHIM  
4.1 Mt shình nh ca ng dng  
(a)  
(b)  
(c)  
(d)  
Hình 4. (a) Từ điển chHán t, (b) La chn chủ đề, (c) Luyn viết chHán t, và (d) Kim tra kết quả  
69  
4.2 Kết quả đạt được  
Qua nghiên cu chúng tôi đã tìm hiu và xây dng thành công mô hình CNN nhn dng chviết  
tay vi bdliu chviết tay tiếng Nht. Bên cnh đó chúng tôi phát trin ng dng đa nn tng  
trên thiết bdi động áp dng mô hình CNN giúp htrợ người hc tiếng Nht nâng cao kỹ năng viết  
chHán t.  
5 KT LUN  
Trong bài báo này, chúng tôi áp dng mô hình máy hc nhn dng chviết tay vào ng dng di  
động nhm htrthêm tính năng cho người hc tiếng Nht nâng cao kỹ năng viết, đem li tri  
nghim mi vcách hc tiếng Nht trên thiết bdi động. Nghiên cu này slà tin đề cho chúng tôi  
phát trin thêm nhng tính năng như kim tra thtnét vca ca người dùng nhm ci thin hơn  
na tri nghim hc tiếng Nht trên nn tng di động.  
TÀI LIU THAM KHO  
[1]  
‚Mazii,‛ 0   0 0.  Trực tuyến . Available: https://mazii.net/.  
[2]  
[3]  
[4]  
[5]  
Flutter, 0   0 0.  Trực tuyến . Available: https://flutter.dev/docs.  
‚ET  Character Database,‛ 0   0 0.  Trực tuyến . Available: http://etlcdb.db.aist.go.jp.  
N. T. Tun (2019) Deep Learning bn, pp. 147-162.  
S.  amesh, ‚  guide to an efficient way to build neural network architectures,‛ 0   0 0.  Trực  
[6]  
S. Fraile, ‚Handwriting number recognizer with Flutter and Tensorflow,‛ 0   0 0.  Trực tuyến .  
Available:  
flutter-and-tensorflow-part-i-414157b7574f.  
70  
pdf 6 trang baolam 14/05/2022 3140
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

File đính kèm:

  • pdfung_dung_luyen_tap_viet_chu_tieng_nhat_tren_thiet_bi_di_dong.pdf