1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu dịch tự động việt anh dựa trên ví dụ trên nền android

119 37 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 119
Dung lượng 2,12 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Từ những yêu cầu trên, đề tài "Nghiên cứu dịch tự động Việt- Anh dựa trên ví dụ trên nền Android" được thực hiện với mục tiêu xây dựng một mô hình dịch tự động từ ngôn ngữ tiếng Việt san

Trang 1

LÊ THÀNH NGUYÊN

NGHIÊN CỨU DỊCH TỰ ĐỘNG VIỆT- ANH DỰA TRÊN VÍ DỤ

TRÊN NỀN ANDROID

Chuyên ngành: Khoa học máy tính

LUẬN VĂN THẠC SĨ

TP HỒ CHÍ MINH, tháng 07 năm 2009

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

Cán bộ hướng dẫn khoa học : PGS TS Đinh Điền

Luận văn thạc sĩ được bảo vệ tại

HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ

TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 18 tháng 08 năm 2009

Trang 3

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ và tên học viên: LÊ THÀNH NGUYÊN Giới tính : Nam

Ngày, tháng, năm sinh : 10/05/1982 Nơi sinh : Tp.HCM

1- TÊN ĐỀ TÀI: NGHIÊN CỨU DỊCH TỰ ĐỘNG VIỆT- ANH DỰA TRÊN VÍ DỤ

TRÊN NỀN ANDROID

2- NHIỆM VỤ LUẬN VĂN:

• Xây dựng mô hình dịch tự động Việt- Anh dựa trên ví dụ

• Xây dựng ngữ liệu song ngữ Việt- Anh

• Xây dựng ngữ liệu mẫu dịch Việt- Anh

• Xây dựng các thành phần cải thiện mẫu dịch, nâng cao chất lượng câu dịch

• Nghiên cứu mô hình lập trình ứng dụng trên nền hệ điều hành Android

• Xây dựng mô hình lưu trữ và tìm kiếm dữ liệu hiệu quả trên nền hệ điều hành Android

3- NGÀY GIAO NHIỆM VỤ : 01/2009

4- NGÀY HOÀN THÀNH NHIỆM VỤ : 07/2009

5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : PGS TS ĐINH ĐIỀN

Nội dung và đề cương Luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua

QUẢN LÝ CHUYÊN NGÀNH

PGS TS ĐINH ĐIỀN

Trang 4

Em xin bày tỏ lòng biết ơn sâu sắc đến PGS TS Đinh Điền đã tận tình chỉ dẫn, giúp đỡ em rất nhiều trong suốt thời gian thực hiện luận văn

Em xin chân thành cảm ơn quý Thầy Cô Trường Đại học Bách khoa Tp Hồ Chí Minh, đặc biệt là quý Thầy Cô khoa Khoa học máy tính đã nhiệt tình giúp đỡ, truyền đạt cho em những kiến thức và kinh nghiệm quý báu, cũng như tạo những điều kiện thuận lợi cho em trong suốt thời gian học tập tại trường và trong quá trình thực hiện luận văn tốt nghiệp

Xin cảm ơn ba mẹ, gia đình và những người thân yêu nhất của tôi đã cho tôi chỗ dựa vững chắc, động viên khuyến khích và tạo điều kiện cho tôi trong suốt thời gian học tập

Cuối cùng, xin gửi đến anh chị và các bạn – những người luôn sát cánh cùng tôi, giúp đỡ, động viên tôi rất nhiều trong suốt quá trình thực hiện luận văn này – lời cảm ơn chân thành nhất

Tp Hồ Chí Minh, tháng 07 năm 2009

Lê Thành Nguyên

Trang 5

Mục tiêu của đề tài là nghiên cứu dịch tự động Việt- Anh dựa trên ví dụ trên nền tảng di động Android Phạm vi của đề tài giới hạn dịch trong những câu đàm thoại thông dụng Mô hình dịch dựa trên ví dụ sử dụng những tài nguyên như ngữ liệu câu ví dụ, ngữ liệu mẫu dịch, tự điển Việt- Anh Mô hình dịch bao gồm ba giai đoạn Giai đoạn đầu tiên tìm kiếm câu cần dịch trong ngữ liệu câu ví dụ, nếu tồn tại

sẽ trả về kết quả dịch tương ứng Giai đoạn này giúp có được kết quả dịch tốt trong thời gian ngắn Nếu không tìm thấy trong ngữ liệu câu ví dụ, giai đoạn hai sẽ tìm kiếm ứng viên trong tập mẫu dịch tương ứng với câu cần dịch Khi tìm được mẫu khớp hoàn toàn thì tiến hành dịch các phần khuyết trong mẫu Trong trường hợp không tìm thấy mẫu dịch phù hợp, giai đoạn ba sẽ chọn trong ngữ liệu những cặp câu ứng viên để tổng hợp những phần tồn tại trong câu cần dịch Ngoài ra, sử dụng thêm một số heuristic nhằm cải thiện cách dịch cụm từ, cải thiện chất lượng tập từ vựng được rút tự động Ngoài ra, tiến hành nghiên cứu môi trường Android để phát triển ứng dụng dịch tự động Việt- Anh trên điện thoại di động Android sử dụng mô hình dịch trên Kết quả xây dựng cho thấy mô hình dịch đạt kết quả khá tốt, ứng dụng dịch tự động Việt- Anh đảm bảo các yêu cầu sử dụng dịch thuật

Trang 6

Researching Example-based Vietnamese- English machine translation based

on Android platform is the objective of this thesis This scope is common conversation Example-based model uses resources, such as example sentence corpus, template translation corpus, Vietnamese- English dictionary Translation model involves three phases In the first phase, finding the translated sentence in example sentence corpus, returning correlative translation result if translated sentence exists This phase helps to have a good quality translation result in a short time If not exist, in the second phase, finding the candidate in template translation corpus correlated with translated sentence When discovering a complete matching template, try to translate the missing on template If can’t find the appropriate translation template, in the third phase, choose the pair of candidate sentence from the corpus to collect existing parts in translated sentence Beside that, using some heuristic to improve translation method of phrase, to improve the quality of automatic withdrawed word set Finally, researching on Android platform to develop Vietnamese- English machine translation on Android mobile using the above translation model The result shows that the translation model gets a good quality, Vietnamese- English machine translation application guarantees translation requirement

Trang 7

MỤC LỤC

PHẦN 1: MỞ ĐẦU 1

PHẦN 2 : TỔNG QUAN 4

2.1 Tổng quan về dịch tự động 4

2.1.1 Giới thiệu về dịch tự động 4

2.1.2 Các chiến lược dịch máy 5

2.1.3 Các cách tiếp cận của dịch máy 9

2.2 Giới thiệu một số nghiên cứu về dịch máy dựa trên ví dụ 11

PHẦN 3: GIỚI THIỆU NỀN TẢNG ANDROID 24

3.1 Android là gì? 24

3.1.1 Nền tảng Android và lịch sử hình thành 24

3.1.2 Kiến trúc nền tảng Android 27

3.1.3 Ưu khuyết điểm của nền tảng Android 28

3.2 Lập trình trên nền tảng Android 29

3.2.1 Thiết kế giao diện 29

3.2.2 Điều khiển các thành phần trong giao diện 32

3.2.3 Thao tác với tập tin 33

3.2.4 Hiển thị tiếng Việt 33

3.2.5 Cài đặt ứng dụng vào điện thoại Android 34

PHẦN 4: CÁC VẤN ĐỀ CƠ BẢN DỊCH TỰ ĐỘNG DỰA TRÊN VÍ DỤ 36

4.1 Xây dựng ngữ liệu song ngữ 36

4.1.1 Cách thức xây dựng ngữ liệu 36

4.1.2 Tiêu chí xây dựng ngữ liệu 41

4.2 Cách thức lưu ngữ liệu mẫu 43

4.3 So khớp câu mới với câu trong ngữ liệu 44

4.3.1 Giới thiệu độ đo Levenshtein 45

4.3.3 Xác định mẫu tổng quát từ ma trận tính độ đo Levenshtein 48

Trang 8

PHẦN 5: HƯỚNG TIẾP CẬN DỊCH TỰ ĐỘNG VIỆT- ANH 50

5.1 Xây dựng ngữ liệu 50

5.1.1 Xây dựng ngữ liệu câu dịch ví dụ 51

5.1.2 Xây dựng ngữ liệu mẫu dịch 54

5.1.3 Xây dựng tập từ vựng 59

5.2 Phương thức lưu trữ và truy vấn tài nguyên 61

5.2.1 Lưu trữ và truy vấn ngữ liệu câu ví dụ, ngữ liệu mẫu dịch 61

5.2.2 Lưu trữ và truy vấn tự điển Việt- Anh 64

5.3 Phương thức phân tách từ trong câu tiếng Việt 67

5.4 Xây dựng bảng chuyển dịch từ loại tiếng Việt 70

5.5 Mô hình dịch tự động Việt- Anh dựa trên ví dụ 73

5.5.1 Thành phần xử lý dịch câu từ ngữ liệu câu ví dụ 74

5.5.2 Thành phần xử lý dịch câu từ ngữ liệu mẫu dịch 75

5.5.3 Thành phần xử lý dịch câu dựa vào chọn lựa- tổng hợp 77

5.5.4 Thành phần dịch cụm từ và heuristic cải thiện chất lượng dịch 79

PHẦN 6: THỬ NGHIỆM VÀ ỨNG DỤNG MINH HỌA 85

6.1 Thử nghiệm và đánh giá 85

6.2 Ứng dụng minh họa 89

PHẦN 7: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 93

7.1 Kết luận 93

7.2 Hướng phát triển 94

7.2.1 Cải thiện chất lượng câu dịch 94

7.2.2 Mở rộng chức năng ứng dụng 95

TÀI LIỆU THAM KHẢO 96

Trang 9

PHẦN 1: MỞ ĐẦU

Trong những năm gần đây, với mức sống của người dân nước ta ngày càng được nâng cao, nhu cầu đi tham quan, du lịch, học tập, làm việc tại nước ngoài của người dân trở nên rất phổ biến Khi đó, giao tiếp bằng tiếng Anh là một yêu cầu không thể thiếu trong giao tiếp hằng ngày (như hỏi đường, mua sắm ), trong trao đổi công việc hay trong quá trình học tập Tuy nhiên, một thực tế là, rất nhiều người Việt Nam đã gặp không ít khó khăn khi giao tiếp với người nước ngoài bằng tiếng Anh, trong đó phần lớn là do không biết thể hiện suy nghĩ của mình bằng tiếng Anh như thế nào

Do đó, một ứng dụng giúp người Việt Nam có thể tự tin giao tiếp với người nước ngoài bằng tiếng Anh, cũng như thông tin được nắm bắt một cách nhanh chóng là một nhu cầu hết sức cần thiết Ứng dụng này giúp dịch tự động tiếng Việt sang tiếng Anh, giúp chúng ta có thể trình bày yêu cầu, suy nghĩ của mình bằng tiếng Anh một cách dễ dàng, nhanh chóng

Hiện nay, đã có một số ứng dụng dịch tự động được phát triển, có thể kể đến như EvShuttle, và một số trang web hỗ trợ dịch tự động trực tuyến như

http://vdict.com, http://translate.google.com.vn, http://www.vietgle.vn [35] Tuy nhiên, để có thể sử dụng các ứng dụng này, người sử dụng phải có máy vi tính, hoặc điện thoại có khả năng truy cập internet Điều này gây rất nhiều phiền toái cho người sử dụng khi có nhu cầu dịch thuật ngay mà không thể thực hiện được, do không có máy vi tính, hoặc do không có mạng internet trong khu vực Vì thế, để thuận tiện cho việc sử dụng, ứng dụng này cần thiết được phát triển trên các thiết bị điện thoại di động (có thể kể đến như các điện thoại được phát triển trên nền hệ điều hành mã nguồn mở Android) vì thực tế hiện nay điện thoại di động đã trở thành một vật dụng hết sức phổ biến của mọi người Tuy nhiên, nhược điểm của các thiết bị di động này là không gian bộ nhớ ít và tốc độ xử lý chậm Vì thế, chúng ta cần phải có các giải pháp và cách tiếp cận phù hợp để hạn chế những điểm yếu này, đảm bảo ứng dụng có thể đáp ứng yêu cầu tức thời của người sử dụng

Trang 10

Từ những yêu cầu trên, đề tài "Nghiên cứu dịch tự động Việt- Anh dựa trên

ví dụ trên nền Android" được thực hiện với mục tiêu xây dựng một mô hình dịch tự động từ ngôn ngữ tiếng Việt sang ngôn ngữ tiếng Anh, đồng thời tiến hành hiện thực hóa trên điện thoại sử dụng nền tảng Android

Một số cách tiếp cận trong dịch tự động có thể kể đến như: tiếp cận dịch tự động dựa trên luật, tiếp cận dịch tự động dựa trên thống kê, tiếp cận dịch tự động dựa trên cơ sở tri thức, tiếp cận dịch tự động dựa trên ví dụ, tiếp cận dịch tự động dựa trên tiếp cận lai [1] Ứng dụng tập trung vào đối tượng là các câu giao tiếp hằng ngày, do đó việc xây dựng ứng dụng theo hướng tiếp cận dịch tự động dựa trên luật

là không thể, vì hướng tiếp cận này yêu cầu việc xây dựng một hệ gồm rất nhiều luật, đòi hỏi công sức rất lớn và nhiều khi lại không thể bao quát hết mọi trường hợp Hơn nữa, một khi số luật tăng lên sẽ khiến cho chính người thiết kế luật khó kiểm soát được tính hợp lý của tất cả các luật Ứng dụng cũng không thể được xây dựng theo hướng tiếp cận dựa trên thống kê, vì hướng tiếp cận này yêu cầu xây dựng một tập ngữ liệu song ngữ rất lớn Điều này không khả thi, vì dung lượng bộ nhớ điện thoại di động rất hạn chế và tốc độ xử lý cũng không cao

Hướng tiếp cận dịch tự động dựa trên cơ sở tri thức cũng không là chọn lựa tốt, vì ngôn ngữ giao tiếp hằng ngày bao hàm nhiều lĩnh vực, không dễ dàng xây dựng một hệ cơ sở tri thức đáp ứng đủ các lĩnh vực đó, nhất là trong bộ nhớ hạn chế của điện thoại di động Cách tiếp cận lai cũng không thể áp dụng vì chúng ta không thể tận dụng thế mạnh của từng hướng tiếp cận

Trong các cách tiếp cận, cách tiếp cận dựa trên ví dụ là phù hợp hơn cả để xây dựng ứng dụng dịch tự động trên điện thoại di động với hạn chế về dung lượng

và tốc độ xử lý Cách tiếp cận này rất đơn giản, chỉ cần so khớp các câu dựa trên mẫu dịch mà không cần đòi hỏi về sự phân tích ngôn ngữ học, về cú pháp, ngữ nghĩa [1] Hơn nữa, cách tiếp cận này cũng tương tự như cách dịch của con người Khi cần dịch một câu mới, con người không cần phải phân tích cấu trúc ngữ nghĩa của câu đó, mà chỉ đơn thuần tìm kiếm trong bộ nhớ những câu tương tự để rút trích

Trang 11

ra các phần dịch tương tự Sau đó, sử dụng các phần dịch tương tự tìm kiếm được

để tạo ra câu dịch mới

Vì thế, đề tài tập trung vào việc tìm hiểu dịch máy dựa trên ví dụ để xây dựng một mô hình dịch tự động từ tiếng Việt sang tiếng Anh đáp ứng các yêu cầu đặt ra như trên Đối tượng của đề tài giới hạn trong phạm vi những câu đàm thoại đơn giản, có giới hạn về mặt chiều dài và phạm vi dịch thuật (chủ yếu là các tình huống giao tiếp hàng ngày, phục vụ cho đối tượng người đi du lịch)

Trong phạm vi nghiên cứu của đề tài này, chúng tôi tập trung giải quyết các vấn đề trong việc xây dựng mô hình dịch tự động Việt- Anh, với nội dung nghiên cứu như sau:

 Xây dựng mô hình dịch tự động Việt- Anh

 Xây dựng ngữ liệu câu ví dụ Việt- Anh

 Xây dựng ngữ liệu mẫu dịch Việt- Anh

 Xây dựng các thành phần cải thiện mẫu dịch, nâng cao chất lượng câu dịch

 Nghiên cứu mô hình lập trình ứng dụng trên nền hệ điều hành Android

 Xây dựng mô hình lưu trữ và tìm kiếm dữ liệu hiệu quả trên nền hệ điều hành Android

 Xây dựng, cài đặt ứng dụng dịch tự động Việt- Anh trên điện thoại chạy trên nền Android

Trang 12

Dịch tự động (machine translation) là một ứng dụng của xử lý ngôn ngữ tự nhiên thuộc phân ngành trí tuệ nhân tạo, nó là sự kết hợp giữa ngôn ngữ, dịch thuật

và khoa học máy tính [1] Quá trình dịch tự động thực hiện việc chuyển ngữ từ ngôn ngữ nguồn sang ngôn ngữ đích một cách tự động Tính hiệu quả của hệ dịch tự động được xác định một cách cơ bản bằng chất lượng của câu dịch Tuy nhiên, để xác định chính xác một câu dịch được thực hiện bởi người hay máy có tốt hay không thì

vô cùng khó khăn Hầu hết phải căn cứ vào tình huống và đối tượng cụ thể

Điểm yếu của dịch tự động là: trong quá trình dịch thuật nếu lạm dụng dịch

tự động sẽ làm ảnh hưởng nghiêm trọng đến văn phong, bởi vì cách hành văn của bản dịch thường không chính xác, máy móc và thiếu "chất người" [1] Thực tế cho thấy, quá trình dịch trên các tài liệu khoa học, tài liệu chuyên ngành cho kết quả tốt

do từ ngữ sử dụng trong các tài liệu này thường đơn giản và đơn nghĩa, dễ dàng cho

hệ thống dịch xác định ngữ nghĩa trong quá trình dịch Ngược lại, quá trình dịch trên các tài liệu văn học thường đạt kết quả không tốt do trong văn học, tác giả thường sử dụng các từ ngữ đa nghĩa, sử dụng nghĩa bóng Do đó, hệ thống dịch không thể có được kết quả dịch chính xác, đảm bảo nội dung cần truyền tải của câu cần dịch

Trang 13

2.1.2 Các chi ến lược dịch máy

Một số chiến lược dịch máy có thể kể đến như: dịch trực tiếp, dịch chuyển đổi cú pháp, dịch qua ngôn ngữ trung gian và kết hợp dịch chuyển đổi cú pháp và phân giải ngữ nghĩa

2.1.2.1 Dịch trực tiếp

Trong phương pháp này, kết quả dịch được thực hiện dựa trên cấu trúc của câu ngôn ngữ nguồn Hệ thống dịch chỉ đơn giản thực hiện thay thế 1-1 các từ trong câu ngôn ngữ nguồn để xây dựng nên câu ngôn ngữ đích Chiến lược này hoạt động tương đối tốt khi dịch giữa những ngôn ngữ có cùng loại hình, có sự tương ứng 1-1

về từ vựng và ngữ pháp, nhưng chúng gặp phải khó khăn khi dịch cặp ngôn ngữ khác nhau về loại hình, như tiếng Anh (loại hình biến cách) và tiếng Việt (loại hình đơn lập) chẳng hạn [1]

Hình 2.1: Mô hình dịch trực tiếp [1]

2.1.2.2 Dịch chuyển đổi cú pháp

Trong phương pháp này, hệ thống áp dụng một tập các luật ngôn ngữ được định nghĩa tương ứng giữa cấu trúc ngôn ngữ nguồn và ngôn ngữ đích Đầu tiên, hệ thống tiến hành phân tích hình thái và cú pháp của câu ngôn ngữ nguồn để xây dựng cây phân tích cú pháp Sau đó, sử dụng từ điển song ngữ và những luật chuyển đổi ngữ pháp để phát sinh kết quả dịch từ cây cú pháp đã phân tích [35]

Câu ngôn ngữ đích

Trang 14

Hình 2.2: Mô hình dịch kiểu chuyển đổi cú pháp [1]

Chúng ta có ví dụ bước chuyển đổi cây cú pháp từ ngôn ngữ nguồn sang ngôn ngữ đích như trong hình sau:

Hình 2.3: Chuyển đổi cây cú pháp ngôn ngữ nguồn sang cây của ngôn ngữ đích [1]

Tạo câu ngôn ngữ đích từ

đích Câu ngôn ngữ đích

Cấu trúc câu đích Cấu trúc câu nguồn

S

Pro verb NP

det adj noun

I see a new computer

S

Pro verb NP

det noun adj

Tôi thấy một máy tính mới

Trang 15

2.1.2.3 Dịch qua ngôn ngữ trung gian

Theo chiến lược này, hệ sẽ dịch qua một ngôn ngữ trung gian gọi là liên ngôn ngữ (interlingual) như hình dưới đây:

Hình 2.4: Mô hình dịch liên ngôn ngữ [1]

Một ưu điểm chính của hệ liên ngôn ngữ so với các hệ dịch chuyển đổi là số lượng những bộ dịch được dùng bởi hệ dịch liên ngôn ngữ Nếu ta gọi N là số lượng ngôn ngữ tham gia trong hệ dịch, thì với hệ dịch liên ngôn ngữ, ta chỉ cần 2*N bộ dịch, ít hơn so với N*(N-1) bộ dịch của hệ dịch chuyển đổi [1] Một hạn chế của mô hình này là rất khó để định nghĩa liên ngôn ngữ và ngay cả không thể đối với những lĩnh vực rộng Ngữ cảnh lý tưởng cho hệ dịch này là trong một lĩnh vực rất cụ thể [35]

Luật trật

tự từ

Tạo câu ngôn ngữ đích

đích

Câu ngôn ngữ đích

Biểu diễn liên ngôn ngữ

Trang 16

2.1.2.4 Dịch chuyển đổi cú pháp và phân giải ngữ nghĩa

Đây là chiến lược mang tính dung hòa giữa mức độ phân tích cú pháp (syntactic parser) và mức độ phân giải ngữ nghĩa (semantic analyzer) Hệ dịch chủ yếu dựa trên phân tích cú pháp, chỉ tiến hành phân giải ngữ nghĩa trong các trường hợp bị nhập nhằng về ngữ nghĩa mà dịch theo phân tích cú pháp không giải quyết được

Hình 2.5: Các chiến lược dịch trong dịch máy [1]

Hình tam giác trên (hình tháp này do nhóm GETA đưa ra lần đầu tiên vào năm 1968) cho ta thấy: cạnh lên bên trái để chỉ mức độ phân tích câu nguồn, cạnh xuống bên phải cho thấy mức độ tổng hợp câu đích Càng phân tích sâu (càng khó) thì phần chuyển đổi (cạnh ngang) càng ngắn lại, nghĩa là công việc chuyển đổi càng

ít hơn, đồng thời công việc tổng hợp câu đích cũng nhiều hơn [1]

Dịch liên ngôn ngữ

Dịch chuyển đổi cú pháp + Phân giải ngữ nghĩa nông

Trang 17

2.1.3 Các cách ti ếp cận của dịch máy

2.1.3.1 Dịch máy dựa trên luật (RBMT: Rule-based machine translation)

Đây là cách tiếp cận truyền thống xuất phát từ cách làm của các hệ luật dẫn trong hệ chuyên gia thuộc lĩnh vực trí tuệ nhân tạo Trong các hệ xử lý ngôn ngữ tự nhiên thì các luật dẫn này thường được xây dựng bằng tay bởi các chuyên gia ngôn ngữ

Việc xây dựng một hệ các luật như thế đòi hỏi công sức rất lớn và nhiều khi lại không bao quát hết tất cả các trường hợp Tuy nhiên, trong một ngữ cảnh cụ thể, thì phương pháp này tỏ ra hiệu quả và kết quả dịch chúng ta hoàn toàn có thể kiểm soát được dựa trên các luật

Để bao quát hết các hiện tượng ngôn ngữ, chúng ta nghĩ rằng cứ việc thêm nhiều luật vào, nhưng theo [7] "dù có thêm 1.000 hay cả 10.000 luật thì vẫn không bao quát hết được " mà trái lại càng khiến cho hệ sinh ra càng nhiều cây cú pháp ứng với một câu nguồn nhập vào Kết quả là hệ thống không biết chọn cây cú pháp nào là đúng Ngoài ra, một khi số luật tăng lên sẽ khiến cho chính người thiết kế luật khó kiểm soát được tính hợp lý của tất cả các luật [1]

2.1.3.2 Dịch máy dựa trên thống kê (SMT)

Những nhà ngôn ngữ học đã tận dụng các thao tác trên ký hiệu, ngữ pháp và các kỹ thuật chuyển đổi để hiểu được ngôn ngữ Tuy nhiên, quá trình hiểu ngôn ngữ theo cách này khá chậm, dẫn đến việc sử dụng kỹ thuật thống kê để học những mẫu ngôn ngữ trong ngữ liệu lớn [8] Thay vì xây dựng các từ điển, các quy luật dịch bằng tay như trong các hệ dịch RBMT, hệ dịch này sẽ xây dựng các từ điển và các quy luật dịch đó một cách tự động dựa trên phương pháp thống kê Để thực hiện được điều này, máy cần có tập ngữ liệu song ngữ rất lớn Máy tính sẽ thống kê và rút ra xác suất dịch tương ứng về từ/ ngữ hay cấu trúc giữa hai ngôn ngữ và xác suất xuất hiện của từ/ ngữ đó trong một ngữ cảnh nhất định nào đó

Cách tiếp cận dựa trên thống kê không đòi hỏi sự phân tích sâu về ngôn ngữ, hoàn toàn tự động thực hiện các quá trình phân tích, chuyển đổi, tạo câu bằng cách

Trang 18

dựa trên kết quả thống kê từ kho ngữ liệu song ngữ huấn luyện Chính vì vậy, trong một số trường hợp hệ cho ra kết quả không đoán trước được Ưu điểm của phương pháp này là ở tính tổng quát, chúng không phụ thuộc vào ngôn ngữ Do đó, cách tiếp cận này có lợi thế so với các cách tiếp cận phải dựa vào từ vựng hay luật ngôn ngữ cố định

2.1.3.3 Dịch máy dựa trên cơ sở tri thức (KBMT)

Lập luận chính của việc dịch dựa trên cơ sở tri thức là "muốn dịch được thì trước hết phải hiểu được" Mà muốn hiểu được thì máy phải được trang bị tri thức ngôn ngữ và tri thức về thế giới thực y như con người [1] Do đó, trong phương pháp này, chúng ta phải xây dựng một hệ cơ sở tri thức rất lớn, bao hàm mọi tri thức

về thế giới thực thuộc mọi lĩnh vực Tuy nhiên, điều này thường rất khó và không khả thi Vì thế, phương pháp này thường chỉ được áp dụng trong một lĩnh vực rất cụ thể

Theo cách tiếp cận này, chúng ta phải xây dựng một hệ thống phân loại bản thể học (ontology) để phân loại tri thức, xây dựng một cơ chế suy diễn tự động và biểu diễn liên ngôn ngữ Tuy nhiên, việc xây dựng một hệ thống phân loại tri thức hoàn chỉnh là điều khó có thể thực hiện được [1]

2.1.3.4 Dịch máy dựa trên ví dụ (EBMT)

Phương pháp này thực hiện lưu trữ các cặp câu ví dụ vào trong một cơ sở dữ liệu có sẵn Quá trình dịch đơn giản chỉ thực hiện tìm trong cơ sở dữ liệu các ví dụ tương tự với câu nguồn, sau đó truy vấn câu dịch tương ứng để sử dụng làm câu đích

Cách tiếp cận EBMT rất đơn giản, không cần đòi hỏi về sự phân tích ngôn ngữ học, về cú pháp, ngữ nghĩa Chính vì vậy, hệ dịch kiểu này phụ thuộc rất nhiều vào ngữ liệu sẵn có Ngoài ra, chi phí tìm kiếm của hệ sẽ rất lớn một khi kho ngữ liệu ngày càng lớn Nó gần như kiểu dịch trực tiếp bằng cách thay thế 1-1 mà không cần hiểu biết gì nhiều về ngôn ngữ [1]

Trang 19

2.1.3.5 Dịch máy dựa trên ngữ liệu (CBMT)

Phương pháp của cách tiếp cận này là dựa trên cơ sở ngôn ngữ học và dùng công nghệ máy học để học các quy luật của ngôn ngữ từ ngữ liệu Tuy nhiên, trong phương pháp này, quá trình học được thực hiện trên cấu trúc của ngôn ngữ chứ không phải trên bề mặt của ngôn ngữ như trong dịch máy dựa trên thống kê

Để thực hiện được điều này, máy cần có ngữ liệu rất lớn, dạng đơn ngữ hay song ngữ và máy sẽ khai thác trên các kho ngữ liệu này Nó có những ưu điểm của cách tiếp cận dựa trên luật nhưng khắc phục được khuyết điểm của việc xây dựng luật thủ công bởi các chuyên gia [1]

2.1.3.6 Dịch máy dựa trên tiếp cận lai (Hybrid MTS)

Phương pháp tiếp cận lai sử dụng nhiều phương pháp kết hợp với nhau, tận dụng thế mạnh của từng phương pháp để nâng cao chất lượng câu dịch Đây là một hướng đi đang được tập trung nghiên cứu, kết quả thu được tương đối khả quan

2.2 Giới thiệu một số nghiên cứu về dịch máy dựa trên ví dụ

Chuyển đổi trật tự từ là giai đoạn bắt buộc và có ảnh hưởng lớn đến kết quả dịch của hệ thống dịch tự động dựa trên chuyển đổi cú pháp Để giải quyết vấn đề này, trong bài báo “A Hybrid Approach to Word Order Transfer in the English-to-Vietnamese Machine Translation” [12] của tác giả Đinh Điền, Nguyễn Lưu Thùy Ngân, Đỗ Xuân Quang và Văn Chí Nam đã trình bày phương pháp lai dựa trên những luật chuyển đổi và phương pháp TBL Mục đích của bài báo là xây dựng mô hình chuyển đổi tự động trật tự từ tiếng Anh sang trật tự từ tiếng Việt Quá trình xử

lý thực hiện trên ngữ liệu song ngữ đã gán nhãn có thể tự động gióng hàng từ, gióng cụm từ và gán nhãn từ loại Bài báo đã trình bày cách tiếp cận dịch máy TBL cho việc học luật chuyển đổi từ ngữ liệu song ngữ Anh- Việt để chuyển đổi trật tự của

từ từ tiếng Anh sang tiếng Việt Bài báo đã khai thác nét đặc trưng của giải thuật TBL khi thêm giai đoạn chuyển đổi bằng luật vào giai đoạn gán nhãn Bên cạnh đó,

Trang 20

với giải thuật học TBL, bài báo đã khai thác được tri thức ngôn ngữ học, tính đồng nhất và không đồng nhất trong cấu trúc cú pháp

Bài báo “BTL: a Hybrid Model for English- Vietnamese Machine Translation” [11] của tác giả Đinh Điền, Hoàng Kiếm và Eduard Hovy đã giới thiệu phương pháp dịch tự động dựa trên BTL học từ ngữ liệu song ngữ để phát sinh luật không nhập nhằng Bài báo đã trình bày phương pháp lai cho dịch tự động kết hợp giữa dịch tự động dựa trên luật và dịch tự động dựa trên ngữ liệu Trong mô hình này, những luật không nhập nhằng được tự động học từ ngữ liệu song ngữ được huấn luyện bằng giải thuật TBL Ngữ liệu song ngữ này tự động được gióng hàng từ

và gán nhãn với những nhãn ngôn ngữ học (như POS, Chunk, SENSE, …) bằng fast TBL và thông tin ngôn ngữ học của những từ tiếng Việt tương ứng thông qua liên kết gióng hàng từ Phương pháp này khai thác điểm mạnh của tiếp cận dựa trên luật

và vượt qua những nhược điểm của nó trong xây dựng luật (phát sinh tự động thay

vì xây dựng bằng tay)

Hình 2.6: Lưu đồ Giai đoạn học của giải thuật fTBL [11]

Trang 21

Trong bài báo “An advanced approach for English-Vietnammese syntactic tree transfer” [13] của Đỗ Xuân Quang, Nguyễn Lưu Thùy Ngân và Đinh Điền đã trình bày hướng tiếp cận mới trong học luật chuyển đổi cây cấu trúc (STTRs) sử dụng trong dịch máy Anh- Việt Trong tiếp cận này, sử dụng fTBL để học và phát sinh hiệu quả STTRs từ ngữ liệu song ngữ được chuyển đổi và gán nhãn với những nét đặc trưng trong ngôn ngữ Phương pháp này được đặt ra nhằm nâng cao độ chính xác chuyển đổi Có hai giai đoạn trong mô hình học này, đầu tiên là học STTRs trong cùng một mức, thứ hai là học STTRs đối với các mức khác nhau trong cây phân tích Vì tính khác nhau giữa hai ngôn ngữ, bài báo cũng đề cập một vài thao tác bổ trợ vào quá trình học để nâng cao chất lượng chuyển đổi Kết quả thu được cho thấy phương pháp này hiệu quả trong cả quá trình kiểm thử và trong điều kiện thực tế

Bài báo “Kết hợp các nguồn tri thức khác nhau để xử lý nhập nhằng ngữ nghĩa cho hệ dịch Anh – Việt” [3] của tác giả Trần Lê Hồng Dũ, Đinh Điền, Văn Chí Nam đã trình bày một phương pháp kết hợp các nguồn tri thức khác nhau để giải quyết nhập nhằng ngữ nghĩa cho từ tiếng Anh tập trung vào lớp từ mở: danh từ, động từ, tính từ và trạng từ Kết quả này được dùng vào việc xử lý ngữ nghĩa cho hệ dịch tự động Anh-Việt Phương pháp chính được áp dụng trong bài báo là áp dụng thuật toán TBL (Transformation Based Learning) để xây dựng hệ khử nhập nhằng ngữ nghĩa Các luật được học và rút luật từ một tập ngữ liệu huấn luyện có kích thước lớn (SemCor kích thước 778.587 từ) Sau đó áp dụng một mô hình tối ưu luật,

hệ luật sau khi được tối ưu được dùng trong hệ thống xử lý nhập nhằng ngữ nghĩa Kết quả đạt được độ chính xác 73.54% đối với hệ khử nhập nhằng theo phương pháp TBL và 80% đối với toàn bộ hệ thống xử lý nhập nhằng ngữ nghĩa kết hợp

Trang 22

Hình 2.7: Sơ đồ hệ thống khử nhập nhằng ngữ nghĩa [3]

Trong mô hình trên hệ thống khử nhập nhằng ngữ nghĩa là một khối lớn gồm

ba khối con: Khối nhận dạng thể loại văn bản (Domain detect), Khối khử nhập nhằng ngữ nghĩa theo phương pháp TBL (TBL WSD Tagger) và Khối khử nhập nhằng ngữ nghĩa theo phương pháp ràng buộc lựa chọn (Selectional Constraints) Toàn bộ hệ thống sẽ nhận kết quả từ bộ phận phân tích cú pháp (Syntactic analysis) đồng thời xử lý và chuyển kết quả sang cho bộ phận tạo câu kết quả (Create result sentence)

Trong bài báo "An Example-Based Approach to Japanese-to-English Translation of Tense, Aspect, and Modality" [22] của nhóm tác giả Masaki Murata, Qing Ma, Kiyotaka Uchimoto và Hitoshi Isahara đã trình bày phương pháp dịch thì, dạng và thể thức của động từ sử dụng phương pháp dịch dựa trên ví dụ từ tiếng Nhật sang tiếng Anh Trong phương pháp này, độ tương tự giữa câu cần dịch và những câu ví dụ được xác định dựa trên mức độ so trùng ngữ nghĩa giữa các cụm từ tại ví trí cuối câu Kết quả thực nghiệm cho thấy phương pháp này khá chính xác, và đặc biệt là dễ dàng ứng dụng mà không cần phải xây dựng các luật bằng tay Phương pháp này có thể áp dụng đối với những ngôn ngữ khác khi việc xây dựng các luật bằng tay không thể đáp ứng tốt yêu cầu Ví dụ, khi phân tích tiếng Anh, chúng ta có thể loại bỏ chủ ngữ của câu, sau đó tiến hành so trùng trên cụm từ còn lại Trong bài báo này cũng sử dụng phương pháp k-nearest neighbor để loại bỏ

Trang 23

nhiễu Và thực nghiệm trong bài báo cho thấy, với k=5 thì kết quả loại bỏ nhiễu đạt hiệu quả cao nhất

Bài báo "Example-based Machine Translaton using Structural Translation Example" [15] của tác giả Eiji Aramaki và Sadao Kurohashi đã đề cập đến phương pháp dịch Nhật- Anh dựa trên ví dụ dịch có cấu trúc Quá trình dịch được chia thành hai bước: bước gióng hàng trong ngữ liệu ví dụ và bước dịch Trong bước gióng hàng ngữ liệu, tác giả đã sử dụng các bộ phân tách từ Japanese parser KNP, English nl-parser và bốn từ điển EDR, EDICT, ENAMDICT và EIJRO để phân tách câu thành các cụm từ và xây dựng liên kết giữa các cụm từ

Hình 2.8: Liên kết ngữ nghĩa giữa 2 cặp phrase [15]

Trong bước dịch, tác giả sử dụng bộ phân tách từ để chuyển câu cần dịch thành các cụm từ Đối với từng cụm từ, hệ thống chọn mẫu dịch hợp lý bằng cách tính điểm mẫu dịch dựa trên 3 tiêu chí: Equality, Similarity và Confidence

Score = (Equality + Similarity) x (λ + Confidence)

Trang 24

Hình 2.9: Tiêu chí Equality và Similarity [15]

Khi đó, chọn mẫu dịch có Score cao nhất làm mẫu dịch cho cụm từ Sau cùng, gộp các cụm từ đã được dịch để thu được câu cần dịch Tác giả cũng nhận định rằng, với phương pháp như trên, khi gia tăng ngữ liệu ví dụ thì chất lượng dịch cũng được nâng cao

Hình 2.10: Ví dụ dịch câu từ tiếng Nhật sang tiếng Anh [15]

Trong bài báo "Example-based Machine Translation based on Deeper NLP" [28] của nhóm tác giả Toshiaki Nakazawa, Kun Yu Daisuke Kawahara và Sadao

Trang 25

Kurohashi đã trình bày phương pháp dịch từ tiếng Nhật sang tiếng Anh gồm 2 giai đoạn:

- Xây dựng ngữ liệu câu dịch bằng cách: phân tích cặp câu Nhật- Anh thành các cụm từ, sau đó xây dựng liên kết giữa các cụm từ trong cặp câu Nhật- Anh

- Khi có 1 câu cần dịch, dựa vào kho ngữ liệu câu dịch Nhật- Anh và tự điển

để thu được câu dịch kết quả

Hình 2.11: Ví dụ dịch từ tiếng Nhật sang tiếng Anh [28]

Trong bài báo cũng đề cập đến mô hình Syngraph Data để giải quyết tính đa dạng của các cụm từ (nhiều cụm từ cùng diễn tả 1 nghĩa)

Trang 26

Hình 2.12: Ví dụ mô hình Syngraph Data [28]

Trong bài báo "Probabilistic Model for Example-based Machine Translation" [16] của nhóm tác giả Eiji Aramaki, Sadao Kurohashi, Hideki Kashioka, và Naoto Kato đã trình bày phương pháp ứng dụng mô hình xác suất trong phương pháp dịch

tự động dựa trên ví dụ Kết quả thực nghiệm cho thấy phương pháp này cho kết quả dịch tốt hơn chút ít so với phương pháp dịch dựa trên ví dụ thông thường

Phương pháp gồm các bước sau:

- Mỗi câu cần dịch được phân tích thành các cách phân chia cụm từ khác nhau

- Trên mỗi cách phân chia như vậy, dựa trên kho ví dụ để tìm ra các cách dịch tương ứng với các cụm từ (có kèm theo xác suất)

- Chọn cách dịch của cụm từ là cách dịch có xác suất cao nhất

- Chọn cách dịch cả câu là cách dịch có tích xác suất các cụm từ cao nhất

Trang 27

Hình 2.13: Mô hình dịch tự động Nhật- Anh có sử dụng xác suất [16]

Bài báo "A Hybrid Rule and Example-based Method for Machine Translation" [26] của tác giả Satoshi Shirai, Francis Bond và Yamato Takahashi đã trình bày phương pháp lai kết hợp giữa dịch tự động dựa trên ví dụ và dịch dựa trên luật Theo bài báo này, quá trình dịch được chia thành 3 bước:

- Bước 1: Tìm các câu trong tập ví dụ tương ứng với câu cần dịch, sử dụng các từ trong câu cần dịch làm từ khóa Nếu không tìm được thì áp dụng hệ thống dịch dựa trên luật

- Bước 2: Xếp hạng các câu ví dụ tìm được dựa trên số lượng từ giống nhau

và số lượng từ phải dịch chuyển để cho giống nhau Sau đó, chọn câu có độ tương

tự cao nhất làm mẫu

Trang 28

- Bước 3: Sử dụng hệ thống dịch dựa trên luật để dịch những phần khác nhau giữa câu cần dịch và câu mẫu

Bài báo "Retrieving Meaning-equivalent Sentences for Example-based Rough Translation" [25] của tác giả Mitsuo Shimohata, Eiichiro Sumita và Yuji Matsumoto đã trình bày phương pháp rút gọn câu cần dịch dài thành một câu tương đương về mặt ngữ nghĩa nhưng ngắn hơn Khi đó, quá trình dịch nhanh hơn, tuy không đảm bảo chính xác hoàn toàn ngữ nghĩa nhưng vẫn đúng những ý chính của câu cần dịch Câu tương đương về mặt ngữ nghĩa là những câu chia sẻ nghĩa chính với câu cần dịch, bỏ qua những thông tin không quan trọng Thông tin quan trọng được đánh giá dựa trên hai tiêu chí: nó có thể phỏng đoán dựa trên ngữ cảnh chung, hay nó ảnh hưởng nhiều lên thông tin chính của câu Cách làm của tác giả như sau, phân chia các từ trong câu thành hai loại: từ nội dung (như danh từ, tính từ, trạng từ, hay động từ), từ chức năng (như mạo từ, trợ động từ, liên từ hay thán từ) Rút gọn câu bằng cách loại bỏ các từ chức năng, sau đó tiến hành chọn lựa câu thu gọn bằng cách dựa trên ba điều kiện sau:

- Nó phải có cùng dạng câu (như câu yêu cầu, đề nghị, câu hỏi, ) và thì của động từ so với câu cần dịch

- Tất cả những từ nội dung trong câu rút gọn phải có trong câu cần dịch

- Ít nhất một từ nội dung trong câu rút gọn phải có trong câu cần dịch

Trang 29

cách dịch tốt nhất bằng cách sử dụng mô hình ngôn ngữ và mô hình dịch theo một cách tương tự như dịch tự động dựa trên thống kê, và nó có thể nâng chất lượng dịch hơn dịch theo phương pháp dịch dựa trên ví dụ thông thường Điểm đặc biệt của phương pháp này ở chỗ mô hình thống kê được áp dụng sau khi hoàn tất quá trình sắp xếp lại từ bằng việc chuyển dịch cú pháp Bên cạnh đó, bài báo cũng trình bày phương pháp phát sinh từ dưới lên (bottom-up), tận dụng cấu trúc cây thu được

từ quá trình chuyển cú pháp để nâng cao tốc độ dịch

Hình 2.14: Cấu trúc mô hình dịch đề nghị [20]

Trong bài báo "A Hybrid Approach to Example based Machine Translation for Indian Languages" [29] của tác giả Vamshi Ambati và Rohini U đã trình bày phương pháp dịch tự động từ tiếng Anh sang tiếng Ấn Độ sử dụng phương pháp lai giữa dịch tự động dựa trên ví dụ và dịch tự động dựa trên thống kê Phương pháp gồm ba bước:

- Bước 1: so trùng trong ngữ liệu ví dụ, chọn ví dụ so trùng cao nhất với câu cần dịch

- Bước 2: tạo liên kết từ mỗi cặp câu ví dụ trong ngữ liệu ví dụ bằng cách sử dụng từ điển thông thường, từ điển thống kê và phương pháp tạo liên kết viterbi được cung cấp bởi GIZA++

- Bước 3: Kết hợp các phần dịch trên để thu được kết quả dịch cuối cùng

Trang 30

Hình 2.15: Mô hình dịch tự động theo phương pháp lai [29]

Bài báo “Improving Example Based Machine Translation Through Morphological Generalization and Adaptation” [4] của tác giả Aaron B Phillips, Violetta Cavalli-Sforza và Ralf D Brown đã xác định rằng ngay cả khi có được một kho ngữ liệu đủ lớn, chúng ta cũng sẽ không đủ ví dụ để bao hàm hết tất cả mọi thứ chúng ta cần dịch Đặc biệt, trong một ngôn ngữ như tiếng A-rập như bài báo này hướng đến, vấn đề ngữ liệu ví dụ càng trở nên phức tạp vì tính đa dạng của hình thái tiếng A-rập Vì thế, bài báo này đề xuất một phương pháp để khai thác hình thái của tiếng A-rập theo đơn vị cụm từ để tăng chất lượng độ bao phủ của quá trình dịch máy Phương pháp bao gồm ba phần chính: tổng quát hóa (generalization), lọc và sửa lại (filtering and adaptation) và chấm điểm lại (rescoring) Kết quả của phương pháp cho thấy hiệu quả của việc áp dụng khai thác hình thái trong dịch máy dựa trên

ví dụ đã gia tăng độ chính xác của quá trình dịch

Trang 31

Bài báo “Example-based machine translation using DP-matching between word sequences” [14] của tác giả Eiichiro Sumita đã trình bày phương pháp dịch dựa trên ví dụ từ tiếng Nhật sang tiếng Anh, trong đó sử dụng DP-matching để tính toán “khoảng cách” giữa câu cần dịch và ví dụ trong ngữ liệu Quá trình dịch tự động bao gồm bốn bước:

- Bước 1: Tìm ra ví dụ có “khoảng cách” gần nhất với câu cần dịch sử dụng DP-matching

- Bước 2: So trùng câu ví dụ và câu cần dịch để xác định phần khác nhau, sau đó dựa vào liên kết trong câu ví dụ để phát sinh ra mẫu dịch

- Bước 3: Chọn lựa mẫu dịch tốt nhất

- Bước 4: Thay thế phần dịch của những phần khác nhau vào mẫu dịch để thu được kết quả câu dịch

Trang 32

PHẦN 3: GIỚI THIỆU NỀN TẢNG ANDROID

3.1 Android là gì?

Ngày 05 tháng 11 năm 2007, liên minh thiết bị cầm tay mở (Open Handset Alliance- OHA) gồm 48 công ty về phần cứng, phần mềm và viễn thông như Google, Intel, HTC, Motorola, Qualcomm, T-Mobile, NVIDIA… đã công bố mục tiêu phát triển một chuẩn “mở” cho thiết bị cầm tay Bên cạnh đó, OHA cũng công

bố sản phẩm đầu tiên là Android Đây là nền tảng thiết bị di động được xây dựng trên lõi Linux phiên bản 2.6 [35]

Hình 3.1: Logo của nền tảng Android [32]

Android cho phép các nhà phát triển có thể viết mã ứng dụng sử dụng ngôn ngữ Java, điều khiển thiết bị thông qua thư viện Java được Google phát triển Những ứng dụng được phát triển trên ngôn ngữ C và những ngôn ngữ khác có thể được biên dịch sang mã máy ARM và thực thi, tuy nhiên cách phát triển này không được Google chính thức hỗ trợ [35]

Một số tính năng của nền tảng Android có thể kể đến như [34]:

- Tương thích với những thư viện đồ họa như VGA, 2D, 3D dựa trên đặc tả OpenGL ES 1.0

- Ứng dụng cơ sở dữ liệu SQLite được sử dụng để lưu trữ dữ liệu

Trang 33

- Hỗ trợ những chuẩn kết nối như GSM/EDGE, CDMA, EV-DO, UMTS, Bluetooth và Wi-Fi

Hình 3.2: Màn hình chính của trình giả lập Android [34]

Trang 34

Hiện nay đã có một số thiết bị điện thoại chạy trên nền tảng Android, có thể

kể đến như: HTC Dream, HTC Magic, Samsung I7500 Bên cạnh đó, cũng có một

số sản phẩm phần cứng khác cũng có khả năng tương thích khi chạy trên nền tảng Android, ví dụ như: Openmoko, Motorola A1200 Ming, HTC Kaiser, HTC Vogue, HTC Touch, Nokia N810, … Ngoài ra, một số nhà sản xuất điện thoại di động cũng đang lên kế hoạch sản xuất các thiết bị điện thoại chạy trên nền tảng Android, có thể

kể đến như: Motorola, Lenovo, Samsung, Sony Ericsson, Huawei… [35]

Hình 3.3: Điện thoại HTC Dream chạy trên nền tảng Android [32]

Hình 3.4: Điện thoại Openmoko chạy trên nền tảng Android [34]

Trang 35

3.1.2 Ki ến trúc nền tảng Android

Hình 3.5: Kiến trúc nền tảng Android [34]

Trong kiến trúc nền tảng Android, ở vị trí dưới cùng là lõi Linux Android sử dụng lõi Linux để quản lý driver thiết bị, bộ nhớ, tiến trình và mạng Chúng ta không thể lập trình trực tiếp vào lớp này được

Lớp phía trên là lớp chứa những gói thư viện của Android Tất cả đều được viết bằng ngôn ngữ C/C++ Trong lớp này, chúng ta có thể tìm thấy các gói thư viện như Surface Manager, graphics 2D và 3D, các mã media (MPEG-4, H.264, MP3,

…), cơ sở dữ liệu SQL (SQLite), và trình duyệt Web (WebKit)

Kế tiếp là lớp Android runtime, trong đó có máy ảo Dalvik Dalvik thực thi những tập tin dex được chuyển đổi trong thời gian biên dịch từ những tập tin class

và jar Những tập tin dex này tối ưu và hiệu quả hơn những tập tin class, đây chính

là yếu tố cần thiết cho những thiết bị có bộ nhớ và năng lượng giới hạn mà Android hướng đến Thư viện lõi Java cũng là một phần của lớp Android runtime Ở đây, Android cung cấp gói thư viện là tập con của gói Java 5 Standard Edition

Trang 36

Lớp phía trên tiếp theo là lớp Application Framework Một phần của lớp này được cung cấp bởi Google, một phần là những dịch vụ mở rộng hay những dịch vụ

Android là một nền tảng mở Android tích hợp các tính năng cơ bản của điện thoại di động với các dịch vụ trực tuyến hiện có của Google Ví dụ, người dùng có thể dễ dàng xác định vị trí của bất kỳ người nào có trong sổ địa chỉ nhờ sự kết hợp với dịch vụ bản đồ trực tuyến của Google Bên cạnh đó, người dùng cũng có thể liên tục kết nối gửi nhận tin nhắn tức thời với bạn bè thông qua dịch vụ Google Talk

Tính mở còn thể hiện ở việc dễ dàng thực hiện truy xuất vào dữ liệu bên trong thiết bị Những ứng dụng đã được cài đặt có thể được chỉnh sửa hoặc thay thế hoàn toàn Ví dụ, người sử dụng có thể thay thế ứng dụng gửi tin nhắn bằng một ứng dụng gửi tin nhắn bảo mật thông qua máy chủ của công ty hay người sử dụng

có thể thay thế ứng dụng xem hình có sẵn bằng một ứng dụng xem hình yêu thích khác

Bộ API của Android khá đa dạng và hiện đại Bên cạnh những API truyền thống như vẽ màn hình, theo dõi thông tin đầu vào của người sử dụng, và truy cập

Trang 37

mạng, bạn sẽ tìm thấy những API cho phép lưu trữ, tương tác media, hình ảnh và ngay cả kết nối trực tiếp vào phần cứng (như Wifi, Bluetooth) Hầu hết những nền tảng ứng dụng di động không cho phép truy cập tầng thấp vào phần cứng, tuy nhiên Android cho phép người phát triển mở rộng phần cứng Bên cạnh đó, Android còn phát triển một mô hình bảo mật được xây dựng ngay bên trong Android [36]

3.1.3.2 Khuyết điểm

Android là một mục tiêu động, luôn thay đổi và phát triển, do đó nó luôn mang tính không ổn định Nó gây ra rủi ro cho những người phát triển ứng dụng Android Những người phát triển Androd hiện nay sử dụng những SDK phiên bản khác nhau phải đối phó với những thay đổi về API giữa những phiên bản SDK cũng như là những API chưa hoàn chỉnh

Ngoài ra, còn có một vấn đề về tính tương thích Android là một nền tảng rất mềm dẻo cho những nhà sản xuất điện thoại di dộng Tuy nhiên, sự mềm dẻo này dẫn đến sự phát sinh về chi phí, phần lớn rơi vào người phát triển Không phải tất cả những thiết bị di động chạy trên nền tảng Android đều có cùng đặc điểm hay độ tương thích, hỗ trợ những API như nhau, hay có cùng đặc tính kỹ thuật phần cứng Những người phát triển ứng dụng điện thoại trên giả lập Android có thể không bị lỗi

và nghĩ rằng ứng dụng của họ sẽ chạy chính xác trên thiết bị thực sự, tuy nhiên thực

tế lại không phải vậy Giả lập không có khả năng thể hiện chính xác tất cả những đặc tính của thiết bị thực sự như hệ màu, kích thước màn hình, tốc độ xử lý, dung lượng bộ nhớ… [36]

Và cuối cùng, môi trường lập trình Android hiện nay vẫn chưa có công cụ phát triển giao diện ứng dụng theo hình thức kéo thả, gây mất khá nhiều thời gian trong quá trình xây dựng ứng dụng

3.2 Lập trình trên nền tảng Android

Giao diện của các ứng dụng Android được tách riêng với mã nguồn Đây là điểm thuận lợi, bởi vì khi đó giao diện lẫn mã nguồn đều có thể tái sử dụng Người

Trang 38

lập trình tạo giao diện chương trình bằng cách viết một tập tin XML đặc tả các thành phần của giao diện Sau đó, người lập trình sử dụng tập tin đặc tả đó để hiển thị giao diện và gọi thực thi các thành phần trong giao diện

Một tập tin đặc tả giao diện có dạng như sau:

Trang 39

Bên cạnh đó, hiện nay cũng có công cụ DroidDraw [33] hỗ trợ người lập trình tạo nhanh giao diện bằng cách kéo thả các thành phần rồi phát sinh tập tin đặc

tả giao diện Người lập trình chỉ cần sử dụng lại tập tin đặc tả này trong mã nguồn chương trình Tuy nhiên, hiện nay công cụ này chỉ hỗ trợ các kích thước màn hình chuẩn mà không hỗ trợ các kích thước màn hình theo định nghĩa của người lập trình

Trang 40

Hình 3.6: Công cụ DroidDraw [33]

Để điều khiển các thành phần đã định nghĩa trong tập tin đặc tả các thành phần giao diện, chúng ta thực hiện như sau:

- Với mỗi loại thành phần, SDK đã định nghĩa các lớp tương ứng trong gói android.widget.* Chúng ta khởi tạo đối tượng dựa trên id của thành phần tương ứng đã định nghĩa trong đặc tả giao diện XML

Ví dụ:

Button find = (Button)findViewById(R.id.widget31);

EditText input = (EditText)findViewById(R.id.widget30);

- Tiếp theo, chúng ta xây dựng bộ theo dõi thao tác trên EditText và Button input.addTextChangedListener(new TextWatcher() {

public void afterTextChanged(Editable s) {}

public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

Ngày đăng: 15/02/2021, 18:23

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w