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.
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.
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.
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.
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í.
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.
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
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.
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
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.
Ứ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:
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.
Nguồn: TẠP CHÍ CÔNG THƯƠNG
(CHG) Ngày 14/11, tại Đà Nẵng, Cục kỹ thuật an toàn và Môi trường công nghiệp (Bộ Công Thương) phối hợp với Hiệp hội Công nghiệp môi trường Việt Nam tổ chức Hội nghị tập huấn “Nâng cao năng lực bảo vệ môi trường cho các cơ quan, doanh nghiệp khu vực miền Trung”.
Xem chi tiết(CHG) Ngày 14/11, Sở Công Thương phối hợp với Hiệp hội Doanh nghiệp dịch vụ Logistics Việt Nam tổ chức Diễn đàn “Khu thương mại tự do Đà Nẵng - Động lực mới phát triển ngành logistics thành phố Đà Nẵng”.
Xem chi tiết(CHG) Bộ Chỉ huy Bộ đội Biên phòng tỉnh Long An đã có tân Bí thư Đảng ủy, Chính ủy Bộ Chỉ huy BĐBP tỉnh.
Xem chi tiếtBài báo nghiên cứu "Xu hướng tiêu dùng xanh trong phát triển bền vững tại Việt Nam" do TS. Nguyễn Thị Hạnh (Khoa Kinh tế và Quản trị Kinh doanh, Trường Đại học Hải Phòng) thực hiện.
Xem chi tiếtĐề tài Tự chủ đại học và những vấn đề thực tiễn triển khai tại các trường đại học công lập trực thuộc Bộ Công Thương do TS. Nguyễn Đồng Anh Xuân (Trường Đại học Công nghiệp Hà Nội) thực hiện.
Xem chi tiết