Tải bản đầy đủ (.docx) (45 trang)

XÂY DỰNG ỨNG DỤNG TỪ ĐIỂN HÁN VIỆT TRÊN NỀN TẢNG DI ĐỘNG

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 (1.3 MB, 45 trang )

1
Từ điển Hán Việt

XÂY DỰNG ỨNG DỤNG TỪ ĐIỂN HÁN VIỆT
TRÊN NỀN TẢNG DI ĐỘNG

Bình Dương, tháng 7/2020


2
Từ điển Hán Việt

TÓM TẮT
“Xây dựng ứng dụng từ điển Hán Việt trên nền tảng di động” giúp bạn tra cứu
nhanh chóng những chữ Hán. hỗ trợ việc học tiếng Hán phục vụ nghiên cứu, du học,
lao động. Trong việc ứng dụng di động này, em sử dụng ngôn ngữ lập trình Dart và
Framework Flutter và hệ quản trị cơ sở dữ liệu SQLite để hỗ trợ quá trình xây dựng
ứng dụng di độn. Dựa trên tham khảo từ các ứng dụng di động hiện có trên mạng, em
đã Xây dựng ứng dụng từ điển Hán Việt trên nền tảng di động với một số chức năng cơ
bản:
➢ Tra chữ Hán theo âm Hán Việt, âm Pinyin, chữ Hán, từ ghép chữ Hán
➢ Xem những từ ghép có chứa chữ Hán đó
➢ Xem chi tiết bộ thủ của chữ Hán
➢ Phát âm chữ Hán và từ ghép Hán
➢ Xem cách viết chữ Hán
➢ Phân tích chiết tự chữ Hán
➢ Nhận dạng chữ viết tay
➢ Nhận dạng chữ qua camera, hình ảnh có sẵn trong thư viện
➢ Lưu lịch sử tìm kiếm, từ yêu thích
Do thời gian nghiên cứu về các công nghệ và cách thức xử lý chức năng của
ứng dụng di động theo hướng mới còn hạn chế. Nên em chưa thể hoàn thành ứng dụng


di độn một cách tốt nhất.


3
Từ điển Hán Việt


4
Từ điển Hán Việt

MỤC LỤC


5
Từ điển Hán Việt

DANH MỤC HÌNH


6
Từ điển Hán Việt

DANH MỤC BẢNG


7
Từ điển Hán Việt

DANH MỤC THUẬT NGỮ VIẾT TẮT
STT

1
2
3
4
5
6

Tên viết tắt
ThS
UC
MVC
AOT
JIT
x86

7
8
9
10

UI
GC
API
SDK

Tên đâỳ đủ
Thạc sỹ
use case
Model view controller
ahead of time

just in time
kiến trúc tập lệnh của dòng vi xử lý 8086 của
Intel
User Interface
Garbage collection
Application Programming Interface
Software Development Kit


8
Từ điển Hán Việt

CHƯƠNG 1. GIỚI THIỆU CHUNG
1.1. Lý do thực hiện đề tài
Học ngoại ngữ chưa bao giờ ngưng phát triển. Số lượng người học không ngừng
tăng lên đặc biệt là tiếng Hán. Đối với người mới học thì việc tra từ điển thủ công là
một việc rất mất thời gian. Vì thế bài tốn đặt ra là làm như thế nào để người học có thể
tra cứu từ mới một cách dễ dàng. Vì vậy cần một ứng dụng từ điển Hán Việt là điều cần
thiết. Do đó đề tài “Xây dựng ứng dụng từ điển Hán Việt trên nền tảng di động” sẽ giải
quyết được phần nào vấn đề trong việc tra cứu từ điển.
1.2. Mục đích nghiên cứu
Đối với nghiệp vụ tìm kiếm có rất nhiều vấn đề cần giải quyết chẳng hạn như
việc tìm kiếm theo từ đơn, từ ghép, theo cách phát âm và âm hán việt của từ. Một trong
những vấn đề đó vấn đề tìm theo từ đơn là quan trọng nhất. Về nghiệp vụ hiển thị các ý
nghĩa của từ sẽ hiển thị ý nghĩa của từ, cách viết từ đấy như thế nào, phân tích chữ
thành những thành phần nhỏ hơn và hiển thị các từ ghép có liên quan đến từ. Đối với
đề tài lần này, mục đích chính sẽ là đi sâu vào nghiên cứu nghiệp vụ tìm kiếm và hiển
thị các ý nghĩa của từ. Qua đó sẽ xây dựng ứng dụng để giải quyết những vấn đề đặt ra
xung quanh nó.
1.3. Đối tượng nghiên cứu và phạm vi nghiên cứu

1.3.1. Đối tượng nghiên cứu
Đối tượng nghiên cứu của để tài là những khó khăn trong nghiệp vụ tìm kiếm và
hiển thị các ý nghĩa của từ.
1.3.2. Phạm vi nghiên cứu
Giải quyết những vấn đề của việc tìm kiếm và hiển thị các ý nghĩa của từ qua
nền tảng ứng dụng di động.
1.4. Phương pháp nghiên cứu
Phương pháp thu thập thông tin được chia thành những phương thành các
phương pháp, phương pháp nghiên cứu tài liệu, phương pháp nghiên cứu thực nghiệm
và phương pháp phi thực nghiệm.
-

Đối với phương pháp nghiên cứu tài liệu. Nghiên cứu tìm hiểu các lại từ điển
giấy thông dụng hiện nay.
Đối với phương pháp nghiên cứu phi thực nghiệm. Tham khảo những ứng dụng
có sẵn từ đó tìm ra những vấn đề cần khắc phục từ đó hiểu hơn về nghiệp vụ
cũng như những cách thức mà các ứng dụng hoạt động.

CHƯƠNG 1. GIỚI THIỆU CHUNG


9
Từ điển Hán Việt

- Đối với phương pháp nghiên cứu thực nghiệm. Dựa vào các nhu cầu tra từ điển,
tìm kiếm, và hiển thị kết quả từ những người học ngoại ngữ. Từ đó rút ra những kinh
nghiệm và hiểu hơn những mong muốn từ phía người dùng trong lĩnh vực này.
1.5 Ý nghĩa khoa học và thực tiễn
1.5.1. Ý nghia khoa học
Kết quả của đề tài góp phần xây dựng cơ sở khoa học cho việc

nghiên cứu giải quyết những vấn đề khó khăn trong lĩnh vực tra cứu từ điển.
1.5.2. Ý nghĩa thực tiễn
Về thực tiễn góp phần giúp cho nguời dùng tra cứu từ điển dễ dàng hơn. Qua đó
thúc đẩy sự hứng thú cho người học ngoại ngữ.
1.6. Bố cục luân văn
Kết cấu của báo cáo tốt nghiệp “Xây dựng ứng dụng quản lý nhà hàng” bao gồm
các phần sau:
- Chương 1: Giới thiệu chung
- Chương 2. Cơ sở lý thuyết
- Chương 3. Phân tích hệ thống
- Chương 4: Thực nghiệm
- Chương 5: Kết luận

CHƯƠNG 1. GIỚI THIỆU CHUNG


10
Từ điển Hán Việt

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu Dart
2.1.1. Dart là gì

Hình 1. Dart
Dart là ngơn ngữ lập trình đa mục đích ban đầu được phát triển bởi Google và
sau đó được Ecma (ECMA-408) phê chuẩn làm tiêu chuẩn.
Nó được sử dụng để xây dựng các ứng dụng web, server, máy tính để bàn và
thiết bị di động.
Dart là một ngôn ngữ hướng đối tượng, được xác định theo lớp, với cơ chế
garbage-collected, sử dụng cú pháp kiểu C để dịch mã tùy ý sang JavaScript. Nó hỗ trợ

interface, mixin, abstract, generic, static typing và sound type (2 cái cuối có thể hiểu là
type-safe).
Dart là ngơn ngữ mã nguồn mở và miễn phí, được phát triển trên GitHub.
2.1.2. Tại sao chon Dart
Các nhà phát triển tại Google và các nơi khác sử dụng Dart để tạo các ứng dụng
chất lượng cao, quan trọng cho iOS, Android và web. Với các tính năng nhắm đến sự
phát triển phía khách hàng, Dart rất phù hợp cho cả ứng dụng di động và web. Dart
giúp bạn tạo ra những trải nghiệm đẹp, chất lượng cao trên tất cả các màn hình, với:
- Một ngơn ngữ được tối ưu hóa cho client
- Framework mạnh mẽ
- Công cụ linh hoạt
2.1.3. Những ưu điểm của Dart
Năng suất Cú pháp Dart rõ ràng và súc tích, cơng cụ của nó đơn giản nhưng
mạnh mẽ. Type-safe giúp bạn xác định sớm các lỗi tinh tế. Dart có các thư viện cốt lõi
và một hệ sinh thái gồm hàng ngàn package.
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT


11
Từ điển Hán Việt

Nhanh Dart cung cấp tối ưu hóa việc biên dịch trước thời hạn để có được dự
đốn hiệu suất cao và khởi động nhanh trên các thiết bị di động và web.
Di động Dart biên dịch thành mã ARM và x86, để các ứng dụng di động của
Dart có thể chạy tự nhiên trên iOS, Android và hơn thế nữa. Đối với các ứng dụng web,
chuyển mã từ Dart sang JavaScript.
Dễ gần Dart quen thuộc với nhiều nhà phát triển hiện có, nhờ vào cú pháp và
định hướng đối tượng khơng gây ngạc nhiên của nó. Nếu bạn đã biết C ++, C # hoặc
Java, bạn có thể làm việc hiệu quả với Dart chỉ sau vài ngày.
Reactive Dart rất phù hợp với lập trình Reactive, với sự hỗ trợ để quản lý các

đối tượng tồn tại trong thời gian ngắn, chẳng hạn như các widget UI, thông qua phân
bổ đối tượng nhanh và GC. Dart hỗ trợ lập trình khơng đồng bộ thơng qua các tính
năng ngôn ngữ và API sử dụng các đối tượng Future và Stream.
2.2. Giới thiệu SQLite
2.2.1. SQLite là gì

Hình 2. SQLite
SQLite là một thư viện phần mềm mà triển khai một SQL Database Engine,
khơng cần máy chủ, khơng cần cấu hình, khép kín và nhỏ gọn. Nó là một cơ sở dữ liệu,
khơng cần cấu hình, có nghĩa là giống như các cơ sở dữ liệu khác mà bạn không cần
phải cấu hình nó trong hệ thống của mình.
SQLite engine khơng phải là một quy trình độc lập (standalone process) như các
cơ sở dữ liệu khác, bạn có thể liên kết nó một cách tĩnh hoặc động tùy theo yêu cầu của
bạn với ứng dụng của bạn. SQLite truy cập trực tiếp các file lưu trữ (storage files) của
nó.

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT


12
Từ điển Hán Việt

2.2.2. Tại sao lại là SQLite
- SQLite khơng u cầu một quy trình hoặc hệ thống máy chủ riêng biệt để hoạt
động.
- SQLite khơng cần cấu hình, có nghĩa là khơng cần thiết lập hoặc quản trị.
- Một cơ sở dữ liệu SQLite hoàn chỉnh được lưu trữ trong một file disk đa nền
tảng (cross-platform disk file).
- SQLite rất nhỏ và trọng lượng nhẹ, dưới 400KiB được cấu hình đầy đủ hoặc
dưới 250KiB với các tính năng tùy chọn bị bỏ qua.

- SQLite là khép kín (self-contained), có nghĩa là khơng có phụ thuộc bên ngồi.
- Các transaction trong SQLite hoàn toàn tuân thủ ACID, cho phép truy cập an
tồn từ nhiều tiến trình (process) hoặc luồng (thread).
- SQLite hỗ trợ hầu hết các tính năng ngơn ngữ truy vấn (query language) được
tìm thấy trong tiêu chuẩn SQL92 (SQL2).
- SQLite được viết bằng ANSI-C và cung cấp API đơn giản và dễ sử dụng.
- SQLite có sẵn trên UNIX (Linux, Mac OS-X, Android, iOS) và Windows
(Win32, WinCE, WinRT).
2.2.3. Lịch sử tóm tắt của SQLite
- 2000 - D. Richard Hipp đã thiết kế SQLite cho mục đích khơng yêu cầu quản
trị để vận hành chương trình.
- 2000 - Vào tháng 8, SQLite 1.0 được phát hành với trình quản lý cơ sở dữ liệu
GNU.
- 2011 - Hipp tuyên bố bổ sung giao diện UNQl vào SQLite DB và phát triển
UNQLite (Cơ sở dữ liệu hướng tài liệu - Document oriented database).
2.3. Giới thiệu Flutter
2.3.1. Flutter là gì

Hình 3. Flutter
Flutter 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 ứng dụng cho Android và iOS, cũng là
phương thức chính để tạo ứng dụng cho Google Fuchsia.

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT


13
Từ điển Hán Việt

2.3.2. Lịch sử

Phiên bản đầu tiên của Flutter được gọi là "Sky" và chạy trên hệ điều hành
Android. Nó được cơng bố tại hội nghị nhà phát triển Dart 2015, với dự định ban đầu
để có thể kết xuất ổn định ở mức 120 khung hình trên giây. Trong bài phát biểu chính ở
hội nghị Google Developer Days tại Thượng Hải, Google công bố phiên bản Flutter
Release Preview 2, đây là phiên bản lớn cuối cùng trước Flutter 1.0. Vào ngày 4 tháng
12 năm 2018, Flutter 1.0 đã được phát hành tại sự kiện Flutter Live, là phiên bản "ổn
định" đầu tiên của khung ứng dụng này.
2.3. Kiến trúc khung
Các thành phần chính của Flutter gồm:
- Nền tảng Dart
- Flutter engine
- Thư viện Foundation
- Các widget được thiết kế riêng
2.3.1. Nền tảng Dart
Ứng dụng Flutter được viết bằng ngơn ngữ Dart và tận dụng nhiều tính năng
nâng cao của ngôn ngữ này.
Trên Android, và trên Windows, macOS và Linux thơng qua dự án chưa chính
thức mang tên Flutter Desktop Embedding, Flutter chạy trên máy ảo Dart với engine
thực thi just-in-time (JIT). Do giới hạn về thực thi mã động của App Store, ứng dụng
Flutter sử dụng biên dịch ahead-of-time (AOT) trên iOS.
Một tính năng đáng chú ý của nền tảng Dart là hỗ trợ "tải lại nóng" (hot reload)
trong đó các sửa đổi trong tập tin nguồn có thể được chèn vào ứng dụng đang chạy.
Flutter mở rộng sự hỗ trợ này cho tính năng "tải lại nóng giữ trạng thái (stateful hot
reload), để các sửa đổi trong mã nguồn có thể được cập nhật ngay lập tức lên ứng dụng
đang chạy mà không cần phải khởi động lại hoặc mất mát các trạng thái đang có.
2.3.2. Flutter engine
Engine của Flutter, được viết chủ yếu bằng C++, cung cấp sự hỗ trợ kết xuất ở
mức độ thấp bằng thư viện đồ họa Skia của Google. Thêm vào đó, nó giao tiếp với các
SDK của riêng nền tảng như các SDK do Android và iOS cung cấp.


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT


14
Từ điển Hán Việt

CHƯƠNG 3. PHÂN TÍCH HỆ THỐNG
3.1. Use case tổng quát

Hình 4. Use case tổng quát
3.2. Đặc tả use case
3.2.1. Use case tìm kiếm
Bảng 1. Use case tìm kiếm
Tên
Định nghĩa
Actors
Includes
Extends
Điều kiện tiên quyết
Dịng sự kiện chính

Dịng sự kiện thay thế
Điều kiện sau
CHƯƠNG 3. PHÂN TÍCH HỆ THỐNG

UC – Tìm kiếm
Tìm kiếm
Người dùng muốn tìm kiếm từ vựng
Người dùng
None

UC – Chi tiết
None
Dòng sự kiện
B1 từ giao diện người dùng gõ từ khố
B2 người dùng click tìm kiếm
B3 hiển thị danh sách kết quả
Hiển thị chữa có dữ liệu
None


15
Từ điển Hán Việt

3.2.2. Use case chi tiết
Bảng 2. Use case chi tiết
UC – Chi tiết
Chi tiết
Hiển thị chi tiết từ vựng
Người dùng
None
None
Người dùng click chọn từ vựng
Dòng sự kiện
B1 Người dùng chọn nghĩa
B2 Người dùng chọn cách viết
B3 Người dùng chọn phân tích
B4 Người dùng chọn từ ghép
Hiển thị chữa có dữ liệu
None


Tên
Định nghĩa
Actors
Includes
Extends
Điều kiện tiên quyết
Dịng sự kiện chính

Dịng sự kiện thay thế
Điều kiện sau
3.2.3. Use case bộ thủ

Bảng 3. Use case bộ thủ
Tên
Định nghĩa
Actors
Includes
Extends
Điều kiện tiên quyết
Dòng sự kiện chính
Dịng sự kiện thay thế
Điều kiện sau

CHƯƠNG 3. PHÂN TÍCH HỆ THỐNG

UC – bộ thủ
Bộ thủ
Hiển thị tồn bộ bộ hủ chữ hán
Người dùng
None

UC – Chi tiết
None
Dòng sự kiện
B1 người dùng chọn số nét
B2 hiển thị danh sách bộ thủ
Hiển thị chữa có dữ liệu
None


16
Từ điển Hán Việt

3.2.4. Use case nhận dạng chữ viết tay
Bảng 4. Use case nhận dạng chữ viết tay
UC – nhận dạng chữ viết tay
Nhận dạn chữ viết tay
Người dùng muốn tìm kiếm từ vựng
bằng chư viết tay
Actors
Người dùng
Includes
None
Extends
UC – Chi tiết
Điều kiện tiên quyết
None
Dịng sự kiện
Dịng sự kiện chính
B1 người dùn viết trên giao diện
B2 click tìm kiếm

B3 hiển thị danh sách kết quả
Dòng sự kiện thay thế
Hiển thị chữa có dữ liệu
Điều kiện sau
None
Tên
Định nghĩa

3.2.5. Use case nhận dạng camera
Bảng 5. Use case nhận dạng camera
Tên
Định nghĩa

UC – nhận dạng camera
Nhận dạng camera
Người dùng muốn tìm kiếm từ vựng
bằng camera hoặc ảnh từ thư viện

Actors
Includes
Extends
Điều kiện tiên quyết
Dòng sự kiện chính

Dịng sự kiện thay thế
Điều kiện sau

CHƯƠNG 3. PHÂN TÍCH HỆ THỐNG

Người dùng

None
UC – Chi tiết
None
Dịng sự kiện
B1 từ giao diện người dùng gõ từ
khoá
B2 người dùng click tìm kiếm
B3 hiển thị danh sách kết quả
Hiển thị chữa có dữ liệu
None


17
Từ điển Hán Việt

3.2.6. Use case lịch sử
Bảng 6. Use case lịch sử
UC – Lịch sử
Lịch sử
Hiển thị danh sách lịch sử
Người dùng
None
UC – Chi tiết
None
Dòng sự kiện
B1 người dùng click vào từ
chuyển sang UC – Chi tiết
Hiển thị chữa có dữ liệu
None


Tên
Định nghĩa
Actors
Includes
Extends
Điều kiện tiên quyết
Dịng sự kiện chính
Dịng sự kiện thay thế
Điều kiện sau
3.2.7. Use case yêu thích

Bảng 7. Use case u thích
Tên
Định nghĩa
Actors
Includes
Extends
Điều kiện tiên quyết
Dịng sự kiện chính
Dịng sự kiện thay thế
Điều kiện sau

CHƯƠNG 3. PHÂN TÍCH HỆ THỐNG

UC – u thích
u thích
Hiển thị danh sách u thích
Người dùng
None
UC – Chi tiết

None
Dịng sự kiện
B1 người dùng click vào từ
chuyển sang UC – Chi tiết
Hiển thị chữa có dữ liệu
None


18
Từ điển Hán Việt

3.2.8. Use case thông tin
Bảng 8. Use case thơng tin
Tên
Định nghĩa
Actors
Includes
Extends
Điều kiện tiên quyết
Dịng sự kiện chính
Dịng sự kiện thay thế
Điều kiện sau

CHƯƠNG 3. PHÂN TÍCH HỆ THỐNG

UC – Thông tin
Thông tin
Hiển thị thông tin ứng dụng
Người dùng
None

None
None
Dòng sự kiện
B1 Người dùng click chia sẻ
ứng dụng
None
None


19
Từ điển Hán Việt

3.3. Biểu đồ dữ liệu

Hình 5. Biểu đồ dữ liệu
3.4. Biểu đồ tuần tự
3.4.1. Biểu đồ tuần tự tìm kiếm

Hình 6. Biều đồ tuần tự tìm kiếm
CHƯƠNG 3. PHÂN TÍCH HỆ THỐNG


20
Từ điển Hán Việt

3.4.2. Biểu đồ tuần tự chi tiết

Hình 7. Biểu đồ tuần tự chi tiết

CHƯƠNG 3. PHÂN TÍCH HỆ THỐNG



21
Từ điển Hán Việt

3.4.3. Biểu đồ tuần tự bộ thủ

Hình 8. Biều đồ tuần tự bộ thủ
3.4.4. Biểu đồ tuần tự nhận dạng chữ viết tay

Hình 9. Biều đồ tuần tự nhận dạng chữ viết tay

CHƯƠNG 3. PHÂN TÍCH HỆ THỐNG


22
Từ điển Hán Việt

3.4.5. Biểu đồ tuần tự nhận dạng camera

Hình 10. Biều đồ tuần tự nhận dạng camera
3.4.6. Biểu đồ tuần tự lịch sử

Hình 11. Biều đồ tuần tự lịch sử
CHƯƠNG 3. PHÂN TÍCH HỆ THỐNG


23
Từ điển Hán Việt


3.4.7. Biểu đồ tuần tự u thích

Hình 12. Biều đồ tuần tự yêu thích
3.4.8. Biểu đồ tuần tự thơng tin

Hình 13. Biều đồ tuần tự thơng tin

CHƯƠNG 3. PHÂN TÍCH HỆ THỐNG


24
Từ điển Hán Việt

3.5. Giới thiệu kiến trúc hệ thống
Ứng dụng từ điển hán việt đã sử dụng mơ hình MVC.

Hình 14. Mơ hình MVC
Mơ hình MVC là mơ hình gồm 3 lớp: Model, View, Controller.
- Model: Lớp này chịu trách nhiệm quản lí dữ liệu: giao tiếp với cơ sở dữ liệu,
chịu trách nhiệm lưu trữ hoặc truy vấn dữ liệu.
- View: Lớp này chính là giao diện của ứng dụng, chịu trách nhiệm biểu diễn dữ
liệu của ứng dụng thành các dạng nhìn thấy được.
- Controller: Lớp này đóng vai trị quản lí và điều phối luồng hoạt động của
ứng dụng. Tầng này sẽ nhận request từ client, điều phối các Model và View để có thể
cho ra output thích hợp và trả kết quả về cho người dung.

CHƯƠNG 3. PHÂN TÍCH HỆ THỐNG


25

Từ điển Hán Việt

Ta có thể mơ tả lại hoạt động của mơ hình MVC thơng qua sơ đồ sau:

Hình 15. Hoạt động mơ hình MVC
Ưu điểm: Cho thấy sự chun nghiệp trong lập trình và phân tích đối tượng, vì được
chia các thành phần riêng biệt nên hoạt động độc lập tách biệt giúp phát triển ứng dụng
nhanh hơn, đơn giản hơn và dễ nâng cấp, bảo trì hơn.
Nhược điểm: Là mơ hình làm việc rất bài bản nên với những ứng dụng nhỏ, sử dụng
MVC rất tốn nhiều thời gian và gây ra nhiều phức tạp.
3.6. Biểu đồ ứng dụng

Hình 16. Biều đồ ứng dụng
CHƯƠNG 3. PHÂN TÍCH HỆ THỐNG


×