Đặt vấn đề

Trong khoảng 2 năm trở lại đây, sự ứng dụng rộng rãi của các chatbot và voicebot (gọi chung là bot) trong đời sống hàng ngày, đặc biệt là các mảng liên quan tới lĩnh vực tài chính, ngân hàng ở Việt Nam, đã thúc đẩy sự phát triển đa dạng hơn của việc phân tích và xử lí văn bản [1-4]. Việc phân tích văn bản tạo ra trong quá trình vận hành bot (văn bản giữa người dùng – chatbot; văn bản tạo ra từ giọng nói của người dùng – voicebot) có thể làm cho các hệ thống bot hiểu được ngữ cảnh tốt hơn trong quá trình giao tiếp với người dùng.

Vì các dịch vụ cung cấp trực tiếp cho khách hàng theo thời gian thực, chất lượng của hội thoại bot – người dùng có ảnh hưởng rất lớn tới trải nghiệm, cảm nhận của người dùng đối với công ti cung cấp dịch vụ. Do vậy, thời gian và chất lượng xử lí thông tin cần được đẩy xuống mức thấp nhất có thể. Hình 1 là một ví dụ về một hệ thống chatbot cung cấp bởi một ngân hàng, tuy nhiên trải nghiệm với người dùng chưa thực sự hoàn hảo.

Hình 1: Chatbot của ngân hàng chưa hoàn hảo.

Để có thể xử lí yêu cầu của khách hàng một cách nhanh hơn chính xác hơn, trước tiên hệ thống bot cần phân loại xem liệu lời/ chữ khách hàng nói/ viết có phải là câu hỏi hay không. Nếu đó là một câu hỏi, người dùng đang mong đợi một câu trả lời từ hệ thống. Ngược lại, nếu đó là một câu mang tính nhận định, đa phần khách hàng chỉ cần hệ thống ghi nhận lại thông tin phản hồi của mình.

Giải pháp

Nghiên cứu gần đây của nhóm tác giả [5] đề xuất một hướng giải quyết vấn đề này thông qua việc nhận diện xem một câu nói của người dùng có phải là câu hỏi hay không. Chương trình này sử dụng thư viện của Google để chuyển đổi giọng nói của người dùng sang văn bản tiếng Việt, sau đó phân tích và trả về kết quả xem đó có phải là câu hỏi hay không.

Chương trình này phát triển sẽ thực hiện chuyển đổi một câu nói ghi âm sang một câu văn. Sau đó chương trình sẽ sử dụng các từ để hỏi (tiếng Việt) được thiết kế sẵn, để xác định xem câu văn trên có phải là câu hỏi hay không. Việc này được thực hiện thông qua hai cách:

  • Cách 1: Sử dụng cụm các từ để hỏi thường xuất hiện trong các câu hỏi, ví dụ như: “có không”, “bắt đầu lúc mấy giờ”, “làm gì”, “là gì”, “có thể lấy gì”,… Thường các cụm từ này có từ hai từ trở lên, cá biệt có những cụm từ khá dài như: “món ăn của địa phương nào đặc biệt”?
  • Cách 2: Sử dụng cơ cấu từ hai lớp để nhận diện câu hỏi, ví dụ: lớp thứ nhất chứa các từ: “có”, “được”, “có thể”, “có được”, “còn”; lớp thứ hai chứa từ để hỏi: “không”. Khi các từ ở hai lớp này kết hợp với nhau theo đúng thứ tự lớp_thứ_nhất – lớp_thứ_hai thì câu văn chứa các từ đó được xác định là câu hỏi. Trường hợp câu hỏi tu từ không được xét tới trong nghiên cứu này.

Để đảm bảo nguồn dữ liệu đầu vào để kiểm tra chất lượng chương trình đã phát triển, nhóm tác giả sử dụng một phần nguồn dữ liệu được cung cấp miễn phí bởi tập đoàn FPT: FPT Open Speech Dataset [4]. Dữ liệu này rất phong phú, chứa hơn 25,000 file ghi âm với tổng thời lượng khoảng 30 giờ.

Qua quá trình sàng lọc thủ công, nhóm tác giả đã lựa chọn 176 file thanh có nội dung câu hỏi để kiểm tra chương trình của mình. Kết quả có 156 file âm thanh được nhận diện đúng là câu hỏi, độ chính xác của thuật toán này đạt khoảng 88.64%. Khi xem xét kết quả từ file văn bản mà chương trình đã tạo ra, các tác giả nhận thấy có hai lỗi nhận diện sai thường gặp nhất.

Thứ nhất, hệ thống chuyển đổi giọng nói – văn bản đã trả về kết quả câu văn không chính xác (bị thiếu từ) với tỉ lệ khoảng 10.23%.

Ví dụ:

  • Câu văn trong lời nói: “Anh đổi ngoại tệ được không” – Câu hỏi
  • Câu văn trả về từ hệ thống chuyển đổi giọng nói – văn bản: “Anh đổi ngoại tệ được” – Câu khẳng định.

Thứ hai, giải thuật xác định chưa đúng câu hỏi do yếu tố ngữ cảnh với tỉ lệ khoảng 1.13%.

Ví dụ:

  • Câu văn trong lời nói: “Bạn có quan tâm đến đồ cổ không” – Câu hỏi
  • Câu văn trả về từ hệ thống chuyển đổi giọng nói – văn bản: “Bạn có quan tâm đến đồ cũ” – Câu khẳng định

Trung bình, cần khoảng 0.9 giây để xử lý mỗi tập tin âm thanh, độ lệch chuẩn xấp xỉ 0.458 giây, chủ yếu là do độ dài của tệp âm thanh khác nhau. Thời gian xử lí lâu nhất khoảng 2.6 giây, ngắn nhất khoảng 0.34 giây.

Trong tương lai, độ chính xác của chương trình có thể được cải thiện bằng cách cập nhật thư viện các từ để hỏi, hỗ trợ không chỉ tiếng Việt mà cả các ngôn ngữ khác có cấu trúc câu khá ổn định như tiếng Anh,… Ngoài ra chương trình cũng có thể trả về kết quả chính xác hơn khi được kết hợp với những phân tích sâu hơn vào các thuộc tính âm thanh của người dùng như cao độ, tốc độ nói, cách luyến láy các từ… Dữ liệu âm thanh đầu vào cũng có thể được cải thiện chất lượng để đảm bảo hệ thống chuyển đổi giọng nói – văn bản hoạt động tốt hơn và tránh để xảy ra  lỗi như mất từ làm ảnh hưởng tới kết quả nhận diện câu hỏi.

Tài liệu tham khảo:

[1] https://english.vietnamnet.vn/fms/science-it/215247/vietnam-has-first-ai-powered-products.html

[2] https://vietnaminsider.vn/eximbank-launches-chatbot-for-24-7-customer-care/

[3] https://www.vn.undp.org/content/vietnam/en/home/blog/2018/Chatbot.html

[4] https://fpt.ai

[5] T. D. Chung, H. H. Son, K. Alexandra “A Question Detection Algorithm for Text Analysis”, in Proc. 2020 5th International Conference on Intelligent Information Technology (ICIIT 2020), Hanoi, pp. 1-6.

Lời cảm ơn:

Tác giả cảm ơn sinh viên Hà Hồng Sơn đã đóng góp trong việc hoàn thiện chương trình, chuẩn bị dữ liệu và báo cáo kết quả nghiên cứu [5].

TS. Trần Đức Chung
Bộ môn CF, Đại học FPT, Khu Công nghệ cao Hòa Lạc, Hà Nội

Tin liên quan: