Xây dựng Chatbot AI phục vụ du lịch thông minh tại tỉnh An Giang

NGUYỄN NGỌC MINH - ĐOÀN THANH NGHỊ (Khoa Công nghệ Thông tin, Trường Đại học An Giang, Đại học Quốc gia Thành phố Hồ Chí Minh)

TÓM TẮT:

Trong bài báo này, chúng tôi ứng dụng công nghệ Chatbot AI để giải quyết các câu hỏi liên quan đến lĩnh vực du lịch tại An Giang, nó được xây dựng dựa trên nền tảng “Messenger-Platform” của mạng xã hội lớn nhất hiện nay là facebook. Hệ thống Chatbot AI du lịch An Giang được chia thành 2 tầng: máy chủ Chatbot AI sử dụng “Node.js” kết hợp “wit.ai”, trang quản trị Chatbot AI viết bằng ngôn ngữ PHP sử dụng framework Laravel để quản lý nội dung của Chatbot AI. Đối với ngành Du lịch hiện nay cùng với sự phát triển bùng nổ của mạng xã hội như facebook, switter,… thì Messenger-Platform là nền tảng phù hợp nhất để phát triển ứng dụng Chatbot AI này. Thông qua Chatbot AI này, người dùng có thể đặt các câu hỏi liên quan đến du lịch của tỉnh An Giang, sau đó nhận được ngay câu trả lời từ Chatbot AI. Người dùng có thể đặt câu hỏi ở bất cứ đâu và bất cứ lúc nào, tất cả những gì người dùng cần là một thiết bị có kết nối internet, truy cập facebook hoặc thông qua ứng dụng messenger.

Từ khóa: Chatbot AI, du lịch thông minh tại An Giang, An Giang Travel.

1. Đặt vấn đề

Tỉnh An Giang có rất nhiều điểm du lịch, mỗi điểm du lịch có đặc điểm thu hút riêng như: phong cảnh, văn hóa, nghệ thuật, ẩm thực, truyền thống, sự kiện, lễ hội,… Trong phạm vi bài báo này, chúng tôi sẽ ứng dụng công nghệ Chatbot AI (sau đây gọi tắt là Chatbot) trên nền tảng facebook messenger kết hợp với xử lý ngôn ngữ tự nhiên xây dựng một ứng dụng để tư vấn, lên lịch trình và trả lời các câu hỏi có liên quan đến du lịch của tỉnh An Giang. Ứng dụng gồm có 2 tầng: máy chủ chatbot tiếp nhận, xử lý và phản hồi người dùng, trang quản trị chatbot quản lý nội dung, tập huấn luyện và gửi tin nhắn trực tiếp cho người dùng.

2. Tổng quan nghiên cứu

Chúng tôi xây dựng một hệ thống Chatbot du lịch có đầy đủ các chức năng cơ bản. Thông qua Chatbot này, du khách hay người dùng có thể đặt các câu hỏi liên quan đến các vấn đề về du lịch An Giang, sau đó nhận được ngay câu trả lời từ Chatbot. Người dùng có thể đặt câu hỏi ở bất cứ đâu và bất cứ lúc nào chỉ cần thông qua ứng dụng messenger của facebook và môi trường internet. Bên cạnh đó, hệ thống Chatbot còn có thể lên lịch trình du lịch cho người dùng tùy thuộc vào thời gian, quãng đường và mong muốn khám phá của người dùng, tìm kiếm các địa điểm xung quanh của người dùng theo yêu cầu, thông báo sự kiện, lễ hội sắp diễn ra tại An Giang.

Xây dựng ứng dụng gồm 2 tầng chính với các chức năng sau:

- Máy chủ Chatbot (Chatbot server) có nhiệm vụ kết nối hai chiều với Facebook thông qua Webhook và REST API, tiếp nhận, xử lý và điều hướng các hành động và tin nhắn của nguời dùng. Đồng thời dữ liệu về người dùng cũng như các tin nhắn của họ cũng được máy chủ lưu lại.

- Trang quản trị (server administrator) đóng vai trò quản lý các nội dung của chatbot từ các địa điểm du lịch đến các tập huấn luyện Chatbot. Đồng thời gửi trực tiếp đến người truy cập những thông báo về sự kiện, lễ hội dưới dạng broadcast hoặc custom.

3. Nội dung nghiên cứu

3.1. Phương pháp nghiên cứu tài liệu

Nghiên cứu các tài liệu có liên quan đến nền tảng Facebook messenger, Chatbot, hỏi đáp tự động, xử lý ngôn ngữ tự nhiên và các tài liệu có liên quan đến mục tiêu, đối tượng nghiên cứu của luận văn.

3.2. Phương pháp thu thập dữ liệu

Phối hợp với Sở Văn hóa thể thao & Du lịch An Giang - Cổng thông tin Du lịch An Giang cung cấp và thu thập thông tin liên quan đến các địa điểm du lịch, cơ sở lưu trú, điểm ẩm thực, tour du lịch, bến xe - tàu, bưu điện, công ty du lịch, cơ quan hành chính, cơ sở y tế, địa điểm mua sắm, máy ATM, ngân hàng, trạm xăng. Các thông tin vừa nêu dùng để phục vụ cho những câu trả lời liên quan đến du lịch tỉnh An Giang.

Sử dụng nền tảng facebook messenger để lấy thông tin và các câu hỏi của người dùng đi du lịch đặt ra.

3.3. Phương pháp nghiên cứu thực nghiệm

Hệ thống ứng dụng công nghệ Chatbot vào du lịch thông minh tại An Giang được xây dựng theo mô hình nội dung kết hợp xử lý ngôn ngữ tự nhiên. Hệ thống tập trung vào các phần chính: tiếp nhận và xử lý dữ liệu, xây dựng tập huấn luyện bằng mô hình phân tích ý định của văn bản, phản hồi tự động câu trả lời (thông tin du lịch tại An Giang), lên lịch trình tương đối và gợi ý địa điểm xung quanh người dùng. Đánh giá kết quả thu được từ mô hình phân tích ý định.

Dữ liệu của hệ thống ứng dụng công nghệ Chatbot vào du lịch thông minh tại An Giang được thu thập từ Sở Văn hóa Thể thao & Du lịch An Giang - Cổng thông tin Du lịch An Giang liên quan đến các địa điểm du lịch, cơ sở lưu trú, điểm ẩm thực, tour du lịch, bến xe - tàu, bưu điện, công ty du lịch, cơ quan hành chính, cơ sở y tế, địa điểm mua sắm, máy ATM, ngân hàng, trạm xăng. Ngoài các dữ liệu trên còn có những câu hỏi liên quan đến du lịch An Giang thu thập từ người dùng facebook. Dữ liệu về các thông tin du lịch An Giang được lưu trữ dưới dạng văn bản và hình ảnh, hỗ trợ unicode cho tiếng Việt, hỗ trợ truy xuất và xử lý cho bước phản hồi câu trả lời.

Mô hình phân tích ý định của văn bản: Sử dụng công cụ hỗ trợ xử lý tiếng Việt VNTK [2] kết hợp nền tảng xử lý ngôn ngữ tự nhiên wit.ai [3] để trả về ý định của người dùng và bổ sung vào tập huấn luyện.

Phản hồi câu trả lời tự động: So khớp ý định của người dùng với ý định của tập huấn luyện để đưa ra câu trả lời chính xác. Liên quan đến phản hồi tự động câu trả lời, ứng dụng tính chất của hình tròn để lên lịch trình du lịch tương đối và gợi ý các địa điểm du lịch theo các tiêu chí.

3.4. Phương pháp phân tích hệ thống hướng đối tượng

Hệ thống mới sẽ được tạo ra dựa trên phương pháp phân tích hệ thống hướng đối tượng (OOAD: Object-Oriented Analysis & Design), đi từ việc chú trọng nhu cầu du khách thể hiện qua xây dựng sơ đồ hoạt vụ (usecase diagram), cho đến việc thiết kế dữ liệu và xử lý, tạo phần mềm, sử dụng, kiểm tra và bảo trì phần mềm. Phương pháp này giúp các nhà thiết kế cộng tác với nhau chuyên nghiệp hơn, các nhà lập trình hình dung rõ ràng công việc cần làm và các người sử dụng cũng kiểm chứng dễ dàng hơn sự đáp ứng của thiết kế với nhu cầu nghiệp vụ của mình.

3.5. Phân tích hiện trạng

Chính là nhu cầu thông tin mà hệ thống ứng dụng phải đáp ứng. Tuy nhiên, việc phân tích cụ thể hóa đánh giá bổ sung có vai trò quan trọng trong việc quyết định hiệu quả của hệ thống. Các luồng thông tin có thể phân loại thành:

- Các thông tin trả lời: những thông tin loại này thường được lưu trữ thành những cơ sở dữ liệu, quá trình tìm kiếm thông tin bằng phương pháp thủ công đòi hỏi phải mất nhiều thời gian công sức nhiều lúc còn không thể thực hiện được.

- Các thông tin ứng dụng: phương thức tổ chức,... Ngoài ra, còn có một số luồng thông tin khác áp dụng cho từng hệ thống cụ thể mà mỗi hệ thống cần phải xác định riêng cho mình. Dựa vào cơ chế hoạt động của Facebook Chatbot, để xây dựng một ứng dụng Facebook Chatbot, ta cần xây dựng một ứng dụng tương tác hai chiều với Facebook và cần thực hiện được hai việc như sau:

- Thứ nhất: viết ứng dụng webhook (máy chủ Chatbot) và gửi đăng ký địa chỉ webhook với facebook.

- Thứ hai: nhắn từ người dùng thông qua ứng dụng webhook, xử lý nội dung và phản hồi lại cho người dùng.

Hình 1: Sơ đồ hoạt động của ứng dụng

Chatbot AI

Hình trên mô tả ứng dụng Facebook Chatbot mà tôi đã triển khai. Hai mũi tên ngược chiều nhau giữa Facebook và Chatbot server thể hiện tương tác 2 chiều thông qua Webhook và REST API. (Hình 1). Ứng dụng được chia làm 2 tầng chính, với các chức năng như sau:

- Máy chủ Chatbot (Chatbot server) có nhiệm vụ kết nối hai chiều với Facebook thông qua Webhook và REST API, tiếp nhận, xử lý và điều hướng các hành động và tin nhắn của nguời dùng. Đồng thời dữ liệu về người dùng cũng như các tin nhắn của họ cũng được máy chủ lưu lại.

- Trang quản trị (server administrator) đóng vai trò quản lý các nội dung của chatbot từ các địa điểm du lịch đến các tập huấn luyện Chatbot. Đồng thời gửi trực tiếp đến người truy cập những thông báo về sự kiện, lễ hội dưới dạng broadcast hoặc custom.

Khi người dùng Facebook gửi tin nhắn tới trang (trên facebook), facebook sẽ gọi tới webhook của máy chủ Chatbot. Máy chủ Chatbot sẽ lưu thông tin người dùng và các tin nhắn vào MySQL. Đối với các yêu cầu thông thường về du lịch máy chủ Chatbot sẽ tiến hành phân tích ý định của yêu cầu và sau đó gửi phản hồi lại người dùng. Máy chủ sẽ phân tích ý định đó trên wit.ai kết hợp song song với vntk. Sau khi nhận được ý định, máy chủ Chatbot sẽ so khớp với ý định có trong tập huấn luyện, cuối cùng chọn một cách hiển thị thích hợp cho kết quả, rồi gửi kết quả tới người dùng thông qua Facebook Chatbot API.

3.6. Mô tả hoạt động của hệ thống

Tiếp nhận tin nhắn: Đăng kí địa chỉ của máy chủ Chatbot nhận tin nhắn trên trang cho webhook của facebook với facebook. Khi có tin nhắn gửi đến trang, Facebook sẽ gửi một HTTP POST thông qua Webhook này để chúng ta tiếp tục xử lý.

Xử lý tin nhắn người dùng: Phân tích ý định của người dùng từ tin nhắn nhận được bằng nền  tảng wit.ai, kết hợp song song với bộ công cụ xử lý tiếng Việt VNTK.

Gửi trả lời: Sau khi phân tích và nhận được ý định của người dùng, tùy thuộc vào ý định Chatbot sẽ lựa chọn phương thức trả lời phù hợp. Các phương thức trả lời có thể dưới dạng văn bản, hình ảnh, âm thanh, nút và các hình thức kết hợp khác.

Gợi ý các địa điểm xung quanh: Khi chatbot nhận được yêu cầu về gợi ý những địa điểm xung quanh, Chatbot sẽ yêu cầu người dùng cung cấp vị trí (kinh độ, vĩ độ). Từ vị trí được cung cấp, Chatbot sẽ tiến hành tính toán và quét các địa điểm xung quanh theo yêu cầu của người dùng. Sau cùng, Chatbot sẽ phản hồi người dùng dưới dạng slide về các địa điểm tìm được.

Lên lịch trình du lịch tương đối: Khi Chatbot nhận được yêu cầu về lịch trình du lịch ở An Giang, Chatbot sẽ yêu cầu người dùng cung cấp vị trí (kinh độ, vĩ độ). Từ vị trí được cung cấp, Chatbot sẽ tiến hành tính toán và quét các địa điểm theo yêu cầu của người dùng. Sau cùng, Chatbot sẽ phản hồi người dùng dưới dạng slide về lịch trình vừa tìm được. Có 2 loại lịch trình được phân theo 2 trường hợp: khi người dùng yêu cầu lịch trình mà lịch trình tồn tại trong cơ sỡ dữ liệu, hệ thống sẽ lấy lịch trình sẵn có do quản trị tạo phản hồi. Ngược lại, lịch trình sẽ được tính toán ngẫu nhiên dựa theo tính chất của đường tròn và đường đi ngắn nhất của đồ thị hamilton.

Hình 2: Biểu diễn gợi ý lịch trình tương đối

Chatbot AI

Mô tả giải thuật gợi ý lịch trình tương đối:

+ Bước 1: Nhập điểm bắt đầu A(x,y) với x là vĩ độ, y là kinh độ.

+ Bước 2: Khởi tạo mảng đối tượng chứa tất cả các địa điểm ở khu vực muốn đến.

+ Bước 3: Cho vòng lập tính khoảng các từ điểm bắt đầu đến các điểm trong mảng. Ta thu được khoảng cách gần nhất và điểm gần nhất giữa điểm bắt đầu và các điểm trong mảng.

+ Bước 4: Loại bỏ điểm bắt đầu ra khỏi mảng. Gán điểm bắt đầu bằng điểm gần nhất. Lưu điểm vừa loại bỏ vào mảng kết quả.

+ Bước 5: Lặp lại bước 1 với điểm bắt đầu mới. Thu được danh sách các điểm theo đường đi ngắn nhất với trọng số là khoảng cách giữa các điểm.

Mô tả giải thuật tìm các địa điểm trên lịch trình:

+ Bước 1: Lấy khoảng cách từ điểm bắt đầu A(x,y) đến điểm gần nhất B(x,y) với x là vĩ độ, y là kinh độ.

+ Bước 2: Tìm khoảng cách ngắn nhất. Thu được khoảng cách ngắn nhất A đến  B: Min và điểm đến B(x,y).

+ Bước 3: Tính khoảng cách từ A và B đến các điểm khác nằm ngoài Châu Đốc C(x,y). Thu được các khoảng cách a[n].

+ Bước 4: Tính đường cao tam giác ABC được kẻ từ C ta thu được độ dài đường cao CH ký hiệu là h.

+ Bước 5: Xét điều kiện nếu h < D/3: đường cao bằng 1 phần 3 đường kính. Nếu đúng kiểm tra tiếp a[n] < D và b[n] < D => Điểm du lịch gần trên tuyến đường.

+ Bước 6: Sắp xếp khoảng cách các điểm trên tuyến tăng dần xuất phát từ điểm bắt đầu. Thu được danh sách các điểm nằm gần lịch trình từ A đến B.

4. Kết luận và khuyến nghị

Ứng dụng Facebook Chatbot tập trung vào mục đích cung cấp một nguồn tra cứu thông tin du lịch về tỉnh An Giang cho người dùng, giúp người dùng nhanh chóng tìm kiếm các thông tin hữu ích về trong quá trình đi du lịch. Hiện tại ứng dụng đã đạt được các kết quả như sau: Tiếp nhận tin nhắn từ người dùng thông qua REST API của facebook, xử lý và đứa ra phản hồi nhanh chóng; Gợi ý các địa điểm xung quanh người dùng khi có yêu cầu liệt kê ra các địa điểm theo yêu cầu của người dùng; Lên lịch trình tương đối cho người dùng thông qua tính chất của đường tròn và đường đi haminton ngắn nhất; Cung cấp nhiều thông tin hữu ích về địa điểm du lịch (12 lớp bản đồ); Quản lý được các địa điểm để phục vụ cho các thông tin phản hồi.

Bên cạnh đó, cũng còn một số hạn chế như: Dữ liệu quấn luyện chưa thật sự nhiều; Độ chính xác của hệ thống Chatbot còn chưa cao.

Định hướng tương lai: Xây dựng hoàn thiện trang quản trị nội dung Chatbot và Chatbot server; Bổ sung thêm thông tin về tập huấn luyện ý định, thực thể. Đồng thời các dữ liệu về các địa điểm, vấn đề liên quan đến du lịch An Giang sẽ được bổ sung thêm và cập nhật thường xuyên để có thể giải đáp được mọi yêu cầu của người truy cập; Nghiên cứu và vận dụng bộ xử lý tiếng việt vntk để ứng dụng vào Chatbot server; Triển khai rộng rãi lên trang mạng xã hội facebook sau quãng thời gian thử nghiệm và đánh giá từ người dùng.

TÀI LIỆU THAM KHẢO:

  1. Nguyễn Văn Minh Đức, Phạm Quốc Huy và Dương Văn Phước Thiện (2017). Sumi Chatbot - Tiếng Việt. Nghiên cứu tại Công ty Hekate AI, Đà Nẵng.
  2. Vũ Như Bảo (2020) Vietnamese NLP Toolkit for Node. Truy cập tại https://github.com/vunb/vntk/
  3. Natural Language Processing - Messenger Platform. [Online] Availabile at https://developers.facebook.com/ docs/messenger-platform/built-in-nlp?locale=vi_VN
  4. Manisha Salecha (2016). Story of ELIZA, the first chatbot developed in 1966. [Online] Availabile at https://www.analyticsindiamag.com/story-eliza-first-chatbot-developed-1966/
  5. Facebook. (2016a). Messenger Platform at F8. Facebook Newsroom. [Online] Availabile at http://newsroom.fb.com/news/2016/04/messengerplatform-at-f8
  6. Directory of chatbots. [Online] Availabile at https://chatfuel.com/bot/
  7. Các nền tảng tạo Chatbot phổ biến tại Việt Nam. Truy cập tại https://congdongchatbot.com/cac-nen-tang-tao-chatbot-pho-bien-tai-viet-nam/
  1. chaupm (2018). Web hook là gì? Các khái niệm cơ bản về Webhook. Truy cập tại https://tech.vccloud.vn/web-hook-la-gi-cac-khai-niem-co-ban-ve-webhook-20181227181447499.htm
  2. Xử lí ngôn ngữ tự nhiên - Những điều cần biết. Truy cập tại https://techinsight.com.vn/xu-li-ngon-ngu-tu-nhien-nhung-dieu-can-biet

DEVELOPING A CHATBOT AI

FOR SMART TOURISM IN AN GIANG PROVINCE

• MINH NGOC NGUYEN

• THANH NGHI DOAN

Faculty of Information Technology, An Giang University,

Vietnam National University Ho Chi Minh City, Vietnam    

ABSTRACT:

In this paper, the Chatbot AI technology is applied to solve questions related to An Giang province’s tourism.  The chatbot is built on the "Messenger-Platform" platform of the largest social network Facebook. An Giang travel Chatbot AI system is divided into 2 tiers: Chatbot AI server using "Node.js" combined with "wit.ai", and Chatbot admin page written in PHP with Laravel framework to manage chatbot content. With the rapid growth of social networks such as Facebook and Twitter, the Messenger-Platform is considered the most suitable platform to develop chatbot AI. This chatbot AI can answer immediately questions from users about An Giang province’s tourism. Users can use the chatbot AI anywhere and at any time through the Messenger app and Facebook.

Keywords: chatbot AI, smart tourism in An Giang province, An Giang Travel.

[Tạp chí Công Thương - Các kết quả nghiên cứu khoa học và ứng dụng công nghệ, Số 5  tháng 3 năm 2023]

TCCT