Ứ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
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
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
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:
- ung_dung_luyen_tap_viet_chu_tieng_nhat_tren_thiet_bi_di_dong.pdf