Bối cảnh và vấn đề nghiên cứu

Khóa luận tốt nghiệp "Xây dựng hướng dẫn viên du lịch ảo D13HT01 tại khu vực Bình Dương 2013-2017" được thực hiện bởi sinh viên Nguyễn Văn Trọng (Khoa Công nghệ Thông tin – Điện – Điện tử, Trường Đại học Thủ Dầu Một) dưới sự hướng dẫn của ThS. Nguyễn Hữu Vĩnh vào tháng 5/2017. Đề tài tập trung giải quyết bài toán hỗ trợ thông tin và điều hướng cho du khách khi đến tham quan tỉnh Bình Dương thông qua một ứng dụng trợ lý ảo di động.

  • Lý do chọn đề tài: Tỉnh Bình Dương có tiềm năng du lịch lớn với các thế mạnh về du lịch sinh thái, danh lam thắng cảnh, nghỉ dưỡng, lễ hội và hội nghị. Tuy nhiên, du khách khi đến địa phương gặp nhiều khó khăn trong việc lựa chọn điểm đến và tìm đường do thiếu nguồn thông tin hướng dẫn trực tiếp, trong khi chi phí thuê hướng dẫn viên du lịch chuyên nghiệp tương đối cao. Trước sự phổ biến của điện thoại thông minh chạy hệ điều hành Android và xu hướng tương tác người - máy qua ngôn ngữ tự nhiên, tác giả lựa chọn phát triển ứng dụng trợ lý du lịch ảo ViTA (Virtual Travel Assistant) nhằm cung cấp giải pháp tra cứu, điều hướng chi phí thấp cho du khách.
  • Mục tiêu nghiên cứu: Văn bản xác định 4 mục tiêu chính:
    1. Nghiên cứu ngôn ngữ đánh dấu trí tuệ nhân tạo AIML (Artificial Intelligence Markup Language).
    2. Nghiên cứu kỹ thuật lập trình ứng dụng di động trên nền tảng Android (Android SDK).
    3. Nghiên cứu và tích hợp các giao diện lập trình ứng dụng (API) phục vụ bản đồ và vị trí.
    4. Xây dựng hoàn chỉnh ứng dụng trợ lý ảo ViTA cho du lịch Bình Dương, có khả năng phản hồi tự động câu hỏi của du khách bằng văn bản/giọng nói và hỗ trợ tìm kiếm các địa điểm du lịch lân cận qua định vị GPS.
  • Đối tượng và phạm vi nghiên cứu:
    • Đối tượng nghiên cứu: Kỹ thuật xử lý hội thoại dựa trên mẫu luật AIML, trình thông dịch Program AB và quy trình phát triển ứng dụng di động Android.
    • Phạm vi không gian: Cơ sở tri thức và dữ liệu địa điểm du lịch được giới hạn trong phạm vi địa bàn tỉnh Bình Dương (di tích, danh lam thắng cảnh, ẩm thực, khách sạn, dịch vụ công cộng).
    • Phạm vi thời gian: Đề tài thực hiện trong giai đoạn đào tạo 2013–2017, hoàn thành nghiệm thu vào tháng 5/2017.

Cơ sở lý thuyết và phương pháp

Khóa luận kết hợp nền tảng lý thuyết về hệ thống đối thoại thông minh dựa trên luật và kiến trúc phát triển phần mềm di động Android.

Cơ sở lý thuyết và công nghệ sử dụng

  • Hệ điều hành Android: Tác giả tổng hợp kiến trúc Android gồm 4 lớp/5 tầng chức năng: Linux Kernel (Linux 3.6 với khoảng 115 bản vá), tầng Libraries (WebKit, SQLite, libc, SSL, OpenGL ES) và Android Runtime (Dalvik Virtual Machine), tầng Application Framework (Activity Manager, Content Providers, Resource Manager, Notifications Manager, View System) và tầng Application. Nghiên cứu vòng đời của Activity (onCreate, onStart, onResume, onPause, onStop, onDestroy) cùng 4 thành phần cơ bản: Activities, Services, Content Providers, Broadcast Receivers.
  • Ngôn ngữ AIML và trình thông dịch Program AB: AIML là ngôn ngữ đánh dấu mở rộng từ XML do Tiến sĩ Richard S. Wallace và cộng đồng AliceBot phát triển từ nền tảng chatbot ALICE (kế thừa ý tưởng từ ELIZA của Joseph Weizenbaum). Khóa luận sử dụng phiên bản thư viện thông dịch Program AB (Ab.jar) viết bằng Java để nạp tệp luật và khớp mẫu đối thoại.
  • Hệ thống thẻ và cú pháp AIML: Khóa luận khảo sát hệ thống từ vựng, thứ tự ưu tiên của các ký tự đại diện ($ > _, # > *, ^) và các cặp thẻ cấu trúc: <category>, <pattern>, <template>, <star>, <srai> (rút gọn câu, xử lý từ đồng nghĩa, trích xuất từ khóa), <random>, <li>, <set>, <get>, <that>, <topic>, <think>, <condition>, <bot>.
  • Giao diện lập trình ứng dụng ngoài: Tích hợp Google Maps API (hiển thị bản đồ, vẽ đường đi) và Google Places API (Place Searches, Place Details, Place Actions, Place Photos, Place Autocomplete, Query Autocomplete).

Phương pháp nghiên cứu

Khóa luận triển khai nghiên cứu theo 6 bước tuần tự:

  1. Phân tích yêu cầu bài toán trợ lý du lịch ảo.
  2. Xác định phạm vi và cấu trúc cơ sở tri thức địa phương.
  3. Lựa chọn nền tảng công nghệ (Android SDK, Program AB).
  4. Nghiên cứu cú pháp và kỹ thuật biểu diễn tri thức bằng ngôn ngữ AIML.
  5. Nghiên cứu lý thuyết về các công nghệ, thư viện liên quan.
  6. Chạy thử nghiệm thực tế trên thiết bị phần cứng và đánh giá khả năng phản hồi.
  • Nguồn dữ liệu: Dữ liệu thông tin du lịch, địa chỉ, ẩm thực và dịch vụ được thu thập từ các cổng thông tin chính thống như trang web Du lịch Bình Dương (dulichbinhduong.org.vn).

Nội dung chính theo từng chương

Chương Tên chương trong văn bản Nội dung trọng tâm và kết quả phân tích
Chương 1 Tổng quan đề tài Trình bày tính cấp thiết của đề tài, bối cảnh ngành du lịch Bình Dương, xác định mục tiêu nghiên cứu, phạm vi ứng dụng ViTA và phương pháp thực hiện.
Chương 2 Cơ sở lý thuyết Android Trình bày lịch sử phát triển Android từ phiên bản 1.0 đến Lollipop, kiến trúc 4 lớp của hệ điều hành, cấu trúc tập tin AndroidManifest.xml (khai báo quyền hạn, minSdkVersion="15"), tệp tài nguyên R.java, vòng đời Activity và 4 thành phần cốt lõi của ứng dụng di động.
Chương 3 Tìm hiểu về Chatbot và AIML Khái quát lịch sử phát triển chatbot (ELIZA, ALICE/Program D); chi tiết hóa cú pháp AIML, cơ chế so khớp mẫu chuỗi, cách thiết lập ngữ cảnh bằng thẻ <that>, chia nhóm hội thoại bằng thẻ <topic>, gán/đọc biến với <set>/<get>, và kỹ thuật rẽ nhánh điều kiện bằng <condition>.
Chương 4 Kỹ thuật xây dựng hệ thống Chatbot Mô tả luồng dữ liệu của hệ thống: Tiếp nhận dữ liệu người dùng qua văn bản/giọng nói -> Chuyển đổi thành chuỗi -> Đưa vào trình biên dịch Program AB -> So khớp với mẫu tri thức AIML -> Trả kết quả hiển thị lên giao diện.
Chương 5 Xây dựng ứng dụng Hướng dẫn viên du lịch ảo Phân loại cơ sở tri thức theo 10 chủ đề; thiết lập mô hình cơ sở dữ liệu và phân loại dữ liệu 4 nhóm; giới thiệu công cụ soạn thảo AIML (GaitoBot, Simple AIML Editor); hướng dẫn lập trình giao diện chat, xử lý tệp tin AIML từ thư mục assets vào bộ nhớ máy, gọi lớp Bot/Chat và cấu hình Google Places API.
Chương 6 Triển khai và kiểm thử Cài đặt và thực nghiệm ứng dụng trên thiết bị di động thực tế Samsung GT-S7560; ghi nhận kết quả thử nghiệm các giao diện chính, giao diện trò chuyện văn bản/giọng nói, phản hồi thông tin địa điểm và chức năng tìm kiếm vị trí gần nhất bằng GPS.

Thiết kế và triển khai hệ thống phần mềm

Khóa luận là công trình nghiên cứu phát triển ứng dụng di động hoàn chỉnh, bao gồm thiết kế dữ liệu, kiến trúc module và các bước lập trình cụ thể:

1. Phân loại cơ sở tri thức du lịch

Cơ sở tri thức AIML của ứng dụng ViTA được thu thập, phân tích và chia thành 10 chủ đề chính nhằm đáp ứng các nhu cầu thiết yếu của khách du lịch:

  • Thông tin về ứng dụng ViTA
  • Thông tin tổng quan tỉnh Bình Dương
  • Danh lam thắng cảnh
  • Di tích lịch sử
  • Ẩm thực và quán ăn
  • Lễ hội văn hóa
  • Khách sạn, nhà nghỉ
  • Dịch vụ Taxi
  • Hệ thống ngân hàng và cây ATM
  • Bệnh viện và trung tâm y tế

Dữ liệu được tổ chức thành 4 nhóm thực thể: Di tích, Danh lam, Ăn uống, Địa điểm; được lưu trữ thành các tập tin .aiml theo từng khu vực địa lý (Thủ Dầu Một, Bến Cát, v.v.).

2. Quy trình kỹ thuật và cài đặt ứng dụng

Quy trình xây dựng ứng dụng trên Android Studio bao gồm các bước:

  • Cấu hình dự án: Khởi tạo project với mức hỗ trợ tối thiểu minSdkVersion="15", nhúng thư viện Ab.jar vào thư mục app/libs và cấu hình compile files('libs/Ab.jar') trong tệp build.gradle.
  • Thiết kế giao diện: Thiết kế giao diện chính activity_main.xml, xây dựng giao diện hiển thị tin nhắn phân biệt giữa người dùng và chatbot thông qua hai tệp layout riêng biệt (item_mine_message.xml, item_other_message.xml), quản lý qua đối tượng ChatMessage và một Custom Adapter gắn vào ListView.
  • Quản lý dữ liệu AIML trên thiết bị: Tạo thư mục lưu trữ tập tin AIML tại app/src/main/assets/DulichAo. Viết các hàm kiểm tra thẻ nhớ ngoài/bộ nhớ trong và phương thức sao chép toàn bộ thư mục dữ liệu AIML từ assets sang bộ nhớ thiết bị để trình thông dịch Program AB có thể truy xuất trong thời gian thực.
  • Lập trình xử lý tương tác: Khởi tạo các đối tượng Bot và Chat từ thư viện Ab.jar trong lớp MainActivity.java. Xử lý sự kiện nhấn nút gửi (mButtonSend) để lấy văn bản đầu vào, gửi truy vấn đến hàm xử lý của bot và cập nhật phản hồi lên danh sách tin nhắn.
  • Khai báo quyền hạn (Permissions): Khai báo các quyền bắt buộc trong AndroidManifest.xml bao gồm quyền truy cập Internet, quyền đọc/ghi bộ nhớ ngoài (WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE), quyền truy cập vị trí GPS (ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION) và quyền ghi âm phục vụ nhận dạng giọng nói (RECORD_AUDIO).

Kết quả và đóng góp

  • Kết quả thực nghiệm phần mềm:
    • Ứng dụng ViTA đã được đóng gói và thử nghiệm thành công trên thiết bị thực tế Samsung GT-S7560.
    • Chức năng tương tác văn bản và giọng nói tiếp nhận dữ liệu ổn định, chuyển đổi chính xác truy vấn của người dùng thành chuỗi văn bản đầu vào cho Program AB.
    • Chatbot phản hồi chính xác các truy vấn về địa chỉ quán ăn, gợi ý danh lam thắng cảnh (ví dụ: Chùa Tây Tạng tại 46B Thích Quảng Đức, phường Chánh Nghĩa), phân loại danh sách khách sạn theo khu vực (Bến Cát: Khách sạn Ái Hoa, Thanh Thản; Thủ Dầu Một: Khách sạn Thái Bình Dương, The Mira Hotel).
    • Chức năng định vị GPS kết hợp Google Places API hiển thị chính xác danh sách và thông tin chi tiết các địa điểm du lịch, dịch vụ nằm gần vị trí hiện tại của du khách.
  • Giải pháp và kiến nghị đề xuất: Khóa luận đề xuất ứng dụng trợ lý ảo như một kênh thông tin phụ trợ hữu ích cho ngành du lịch địa phương, giúp giảm thiểu rào cản thông tin cho khách du lịch tự túc mà không cần phát sinh chi phí thuê hướng dẫn viên.
  • Đóng góp của đề tài:
    • Ứng dụng thành công kỹ thuật so khớp mẫu AIML bằng thư viện Program AB trên nền tảng di động Android.
    • Xây dựng được tập cơ sở tri thức ban đầu có cấu trúc về du lịch, ẩm thực, di tích lịch sử và dịch vụ lưu trú tại tỉnh Bình Dương.
    • Kết hợp hoàn chỉnh mô hình đối thoại văn bản/giọng nói với hệ thống dịch vụ bản đồ vị trí (Google Maps & Places API).

Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế: Do giới hạn thời gian thực hiện, tác giả chỉ mới nghiên cứu các mẫu luật AIML cơ bản; cơ sở tri thức du lịch Bình Dương mới dừng ở mức từ điển nền tảng cho một số khu vực trọng điểm; khả năng xử lý các ngữ cảnh phức tạp hoặc các câu hỏi nằm ngoài bộ dữ liệu đã định nghĩa còn hạn chế.
  • Hướng phát triển tiếp theo:
    • Bổ sung và hoàn thiện cơ sở tri thức AIML đa dạng hơn, mở rộng dữ liệu địa điểm du lịch cho toàn bộ các huyện, thị xã trên địa bàn tỉnh Bình Dương.
    • Nâng cao thuật toán xử lý ngữ cảnh của chatbot để duy trì các cuộc đối thoại dài và linh hoạt hơn.
    • Cải tiến giao diện người dùng và nâng cấp các tính năng tương tác giọng nói hai chiều.
    • Mở rộng phạm vi dữ liệu sang các tỉnh thành lân cận.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo phù hợp cho:

  • Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm: Cung cấp hướng dẫn từng bước về cách tích hợp trình thông dịch AIML (Program AB) vào một dự án Android thực tế, kỹ thuật xử lý sao chép dữ liệu từ thư mục assets sang bộ nhớ ngoài, và cách xây dựng giao diện chat dạng danh sách tin nhắn tùy biến.
  • Người nghiên cứu hệ thống Chatbot hướng luật (Rule-based): Cung cấp tài liệu tổng hợp về cú pháp, chức năng và ví dụ áp dụng thực tế của toàn bộ các thẻ AIML từ cơ bản đến mở rộng (<category>, <srai>, <that>, <topic>, <condition>).
  • Các đề tài ứng dụng dịch vụ vị trí: Tham khảo quy trình tích hợp và sử dụng Google Maps API cùng Google Places API để tìm kiếm địa điểm lân cận trên thiết bị di động.

Câu hỏi thường gặp

1. Ứng dụng ViTA sử dụng trình thông dịch AIML nào và thư viện Java nào để tích hợp trên Android?
Ứng dụng sử dụng trình thông dịch Program AB thông qua thư viện Java Ab.jar, được nhúng trực tiếp vào thư mục app/libs của dự án Android và biên dịch qua tệp cấu hình build.gradle.

2. Ứng dụng được triển khai và kiểm thử trên thiết bị phần cứng cụ thể nào?
Toàn bộ quá trình kiểm thử chức năng giao diện, trò chuyện văn bản, nhận dạng giọng nói và định vị GPS của ứng dụng được tác giả thực hiện trực tiếp trên điện thoại thông minh Samsung GT-S7560.

3. Cơ sở tri thức du lịch Bình Dương trong ứng dụng được phân chia thành những chủ đề nào?
Cơ sở tri thức của ViTA được chia thành 10 chủ đề: thông tin ứng dụng, thông tin tỉnh Bình Dương, danh lam thắng cảnh, di tích lịch sử, ẩm thực, lễ hội, khách sạn, taxi, ngân hàng và bệnh viện; phân loại thành 4 nhóm dữ liệu chính gồm di tích, danh lam, ăn uống và địa điểm.

4. Khóa luận sử dụng các công cụ phần mềm nào để hỗ trợ viết và kiểm tra tính hợp lệ của mã nguồn AIML?
Tác giả sử dụng hai phần mềm chạy trên môi trường máy tính được viết bằng ngôn ngữ C# là GaitoBot (hỗ trợ viết và chạy thử nghiệm mẫu AIML ngoại tuyến) và Simple AIML Editor (kiểm tra tính hợp lệ của cú pháp XML/AIML).

5. Ứng dụng ViTA sử dụng những dịch vụ nào từ Google API?
Ứng dụng tích hợp Google Maps API để hiển thị bản đồ số và dẫn đường; tích hợp Google Places API với các chức năng: Place Searches (tìm địa điểm theo tọa độ/truy vấn), Place Details (chi tiết địa điểm), Place Actions, Place Photos, Place Autocomplete và Query Autocomplete.


Kết luận

Khóa luận tốt nghiệp của sinh viên Nguyễn Văn Trọng đã xây dựng thành công ứng dụng trợ lý du lịch ảo ViTA trên nền tảng Android dành cho khu vực tỉnh Bình Dương. Đề tài kết hợp hiệu quả giữa trình thông dịch Program AB để xử lý hội thoại dựa trên ngôn ngữ AIML với các dịch vụ vị trí của Google Maps và Google Places API. Kết quả thực nghiệm trên thiết bị Samsung GT-S7560 đã chứng minh tính khả thi của mô hình trong việc tự động cung cấp thông tin du lịch, ẩm thực, lưu trú và định vị điểm đến cho du khách.