Bối cảnh và vấn đề nghiên cứu
Sự bùng nổ của cuộc cách mạng công nghiệp 4.0 và các giao dịch trực tuyến qua Internet đã dẫn đến nhu cầu trao đổi thông tin, phản hồi khách hàng gia tăng nhanh chóng. Phương thức bố trí nhân sự trực tổng đài truyền thống bộc lộ nhiều điểm hạn chế về chi phí vận hành và tính sẵn sàng phục vụ liên tục. Trong bối cảnh đó, hệ thống đàm thoại tự động (chatbot) trở thành một giải pháp hỗ trợ doanh nghiệp tối ưu hóa chi phí và duy trì khả năng tương tác với người dùng ở mọi thời điểm.
Khảo sát của tác giả chỉ ra rằng các hệ thống chatbot hiện nay chủ yếu vận hành theo hai hướng tiếp cận chính:
- Chatbot thuần kịch bản: Hoạt động hoàn toàn dựa trên việc so khớp mẫu và các nút bấm được thiết lập cố định. Khi tương tác, người dùng bị giới hạn vào các lựa chọn định sẵn, tạo cảm giác máy móc và hạn chế trải nghiệm. Đồng thời, mỗi lần thay đổi kịch bản hay thông tin hiển thị, người phát triển buộc phải can thiệp trực tiếp vào mã nguồn phần mềm.
- Chatbot dựa trên khoa học dữ liệu và học máy (Machine Learning): Ứng dụng các kỹ thuật xử lý ngôn ngữ tự nhiên (NLP) giúp hệ thống nhận diện ý định của người dùng và đưa ra phản hồi linh hoạt. Tuy nhiên, hướng tiếp cận này đòi hỏi khối lượng dữ liệu huấn luyện rất lớn và khó mở rộng khi cần phục vụ nhiều chủ đề, lĩnh vực khác nhau.
Để giải quyết bài toán trên, đề tài xác định mục tiêu và các nhiệm vụ nghiên cứu cụ thể:
- Xây dựng một hệ thống chatbot đa lĩnh vực theo mô hình lai: kết hợp xử lý ngôn ngữ tự nhiên bằng học máy với việc thiết lập kịch bản luồng hội thoại nhằm loại bỏ hạn chế phụ thuộc vào tập dữ liệu huấn luyện quá lớn.
- Thiết kế và phát triển nền tảng quản trị tập trung trên giao diện web, cho phép người tạo bot trực quan hóa thao tác định nghĩa dữ liệu NLP và xây dựng kịch bản mà không cần viết mã.
- Cung cấp hệ thống giao diện lập trình ứng dụng (Web API) hỗ trợ các hệ thống bên thứ ba (như mạng xã hội, website doanh nghiệp) tích hợp và khai thác dịch vụ của chatbot.
- Xây dựng công cụ kiểm tra NLP và thử nghiệm hội thoại trực tiếp, đồng thời thiết lập cơ chế giúp chatbot tự cải thiện độ chính xác theo thời gian thông qua việc đánh giá lịch sử trò chuyện.
Đối tượng nghiên cứu của đồ án là hệ thống chatbot văn bản tiếng Việt phục vụ đa lĩnh vực. Do giới hạn về mặt thời gian trong phạm vi một học kỳ, phạm vi ứng dụng thực nghiệm của đề tài tập trung phục vụ tối ưu nhất cho ba nhóm nghiệp vụ phổ biến: mua bán hàng hóa, hỏi đáp thông tin và giao dịch trực tuyến. Hệ thống phân định phạm vi tương tác cho ba tác nhân: Người sử dụng bot (khách hàng cuối), Người tạo bot (đối tượng quản trị nội dung chatbot) và Quản trị viên (quản lý toàn bộ hệ thống).
Cơ sở lý thuyết và phương pháp
Khung lý thuyết của đồ án dựa trên các khái niệm nền tảng trong hệ thống hội thoại thông minh và xử lý ngôn ngữ tự nhiên:
- Ý định (Intent): Mục đích hoặc yêu cầu cốt lõi mà người dùng muốn chatbot thực hiện khi nhập một câu văn (ví dụ:
book_movie, order_food).
- Thực thể (Entity): Các thông tin cụ thể, có tên, cần trích xuất từ câu văn để làm rõ ý định (ví dụ: tên phim, số lượng vé, địa điểm, thời gian). Thực thể được phân rã thành cặp "loại thực thể" và "từ khóa" tương ứng.
- Cách nói (Utterance / Câu mẫu): Các biến thể diễn đạt ngôn ngữ khác nhau nhưng mang cùng một ý định. Theo khuyến nghị lý thuyết trong đồ án, mỗi ý định cần được định nghĩa tối thiểu 5 và tối đa 10 cách nói mẫu.
- Kịch bản (Scenario): Cấu trúc luồng hội thoại dựa trên mô hình cây quyết định (Decision Tree). Cây quyết định hỗ trợ kiểm soát luồng giao tiếp khi mô hình học máy chưa đạt độ chính xác tối đối, đồng thời cho phép gỡ lỗi và duy trì logic nghiệp vụ.
Về phương pháp xử lý dữ liệu, đồ án áp dụng quy trình tiền xử lý văn bản tiếng Việt gồm 7 bước tuần tự nhằm chuẩn hóa dữ liệu đầu vào cho mô hình:
| Bước thực hiện |
Mục đích kỹ thuật |
Ví dụ minh họa trong đồ án |
| 1. Loại bỏ ký tự HTML |
Dùng biểu thức chính quy (Regex) làm sạch mã HTML khi thu thập dữ liệu web |
<h1>Đây là tiêu đề...</h1> thành văn bản thô |
| 2. Thường hóa chữ cái |
Chuyển toàn bộ ký tự về dạng chữ thường |
Đồng nhất cách biểu diễn ký tự cho TF-IDF |
| 3. Tách câu |
Sử dụng Regex nhận diện dấu kết thúc câu |
Phân tách đoạn văn thành danh sách các câu đơn |
| 4. Loại bỏ ký tự đặc biệt |
Loại bỏ ký tự không thuộc bảng chữ cái hoặc số qua Regex |
Loại bỏ các chuỗi ký tự nhiễu như $%^####% |
| 5. Loại bỏ từ dừng (Stopword) |
Lọc bỏ các từ đệm, từ nối phổ biến không mang nghĩa cốt lõi |
Lọc các từ nối giúp dữ liệu cô đọng hơn |
| 6. Tách từ tiếng Việt |
Ghép các từ phức tiếng Việt bằng dấu gạch dưới _ |
lạ lùng chuyển đổi thành lạ_lùng |
| 7. Ghép lại chuỗi văn bản |
Kết hợp các token sau chuẩn hóa thành câu hoàn chỉnh |
Tạo chuỗi token sẵn sàng cho bước vector hóa |
Sau khi làm sạch, dữ liệu được trích chọn đặc trưng (Feature Engineering) thông qua kỹ thuật TF-IDF (Term Frequency - Inverse Document Frequency) nhằm biểu diễn văn bản dưới dạng các vector số. Bài toán xử lý ý định được phân tách thành 2 pha rõ rệt:
- Pha huấn luyện (Training): Nhận dữ liệu câu mẫu và nhãn ý định từ cơ sở dữ liệu, thực hiện tiền xử lý, trích xuất đặc trưng qua TF-IDF và đưa vào thuật toán học máy để sinh ra mô hình (
IntentModel).
- Pha dự báo (Prediction): Tiếp nhận câu nói từ người dùng, tiền xử lý và trích xuất vector đặc trưng tương tự, sau đó mô hình học máy sẽ phân loại và xuất ra danh sách các ý định kèm độ tin cậy.
Đối với bài toán nhận dạng thực thể (NER), tác giả khảo cứu hai hướng tiếp cận: dựa trên tri thức (từ điển từ khóa, biểu thức chính quy Regex) và dựa trên học máy (xem xét các mô hình xác suất như Hidden Markov Model - HMM, Maximum-entropy Markov model - MEMM, Conditional random field - CRF), kết hợp việc gán nhãn từ loại (POS tagging) để tối ưu hóa quá trình trích xuất.
Thiết kế và triển khai
Hệ thống được thiết kế theo kiến trúc ứng dụng web tách rời giữa hai thành phần giao diện (Frontend) và xử lý máy chủ (Backend), giao tiếp dữ liệu thông qua hệ thống Web API chuẩn RESTful.
Toàn bộ hệ thống Backend và khối xử lý khoa học dữ liệu được lập trình thống nhất bằng ngôn ngữ Python. Lý do lựa chọn Python là khả năng hỗ trợ toàn diện các thư viện xử lý ngôn ngữ tự nhiên và học máy, đồng thời đáp ứng tốt việc xây dựng máy chủ web API, giúp loại bỏ sự phức tạp khi tích hợp các ngôn ngữ khác nhau.
Kiến trúc phần mềm phân rã thành các gói chức năng chính:
- Gói
tandan_nlp: Đảm nhiệm việc thực thi các thuật toán NLP cốt lõi, bao gồm lớp preprocessor (thực hiện 7 bước tiền xử lý văn bản) và lớp feature_extractor (trích chọn đặc trưng vector hóa dữ liệu).
- Gói
module: Chứa lớp module_qa và các khối điều phối dịch vụ xử lý câu hỏi, phản hồi người dùng.
Cơ sở dữ liệu của hệ thống được xây dựng dựa trên sơ đồ thực thể - liên kết gồm 15 bảng thực thể:
User: Quản lý thông tin tài khoản người dùng và vai trò truy cập.
Bot: Quản lý các cấu hình chatbot do người dùng tạo ra.
Intent: Quản lý danh mục ý định.
Sentence: Lưu trữ các câu mẫu (cách nói) tương ứng với từng ý định.
Entity: Quản lý danh mục loại thực thể.
Keyword: Quản lý các từ khóa và danh sách từ đồng nghĩa của thực thể.
IntentModel: Lưu trữ phiên bản và thông số mô hình phân loại ý định sau huấn luyện.
EntityModel: Lưu trữ mô hình trích xuất thực thể.
Scenario: Quản lý kịch bản tổng thể của từng chatbot.
Step: Quản lý các bước hội thoại cụ thể trong kịch bản.
Card: Quản lý các thẻ hành động bên trong từng bước (gửi tin nhắn, gọi API ngoài, xử lý biến).
Variable: Quản lý các biến ngữ cảnh thu thập được trong hội thoại.
HistoryUsedIntent: Ghi nhận lịch sử các ý định đã được kích hoạt.
RequireVariables: Quản lý các biến bắt buộc cần thu thập tại từng bước.
HistoryChat: Lưu trữ nhật ký trò chuyện chi tiết giữa người dùng cuối và chatbot.
Cấu trúc kịch bản được phân tầng rõ rệt: Nhóm bước (gom cụm nghiệp vụ, ví dụ: nhóm chuyển khoản) $\rightarrow$ Bước (đánh dấu trạng thái hội thoại) $\rightarrow$ Thẻ (định nghĩa các hành động xử lý như hiển thị nội dung, gọi API lấy thông tin giá vàng, chuyển trạng thái).
Về yêu cầu phi chức năng và bảo mật, hệ thống triển khai hai cơ chế bảo vệ:
- Xác thực tham số (Validation): Kiểm tra tính hợp lệ của toàn bộ dữ liệu đầu vào từ phía client trước khi xử lý nhằm ngăn chặn các lỗ hổng khai thác qua API.
- Phân quyền và bảo mật danh tính: Ứng dụng cơ chế mã thông báo JSON Web Token (JWT). Sau khi đăng nhập, hệ thống cấp token về client để xác thực danh tính và kiểm soát quyền hạn theo 3 cấp độ (Khách, Người tạo bot, Quản trị viên) trong từng yêu cầu API.
Nội dung chính theo từng chương
Chương 1: Giới thiệu đề tài
Chương 1 phân tích bối cảnh ra đời của chatbot trong thời đại 4.0, đánh giá sự gia tăng nhanh chóng của các giao dịch trực tuyến và áp lực chăm sóc khách hàng. Tác giả khảo sát các nền tảng thương mại gồm Facebook Messenger Platform (mạnh về kịch bản, lượng người dùng lớn nhưng thiếu thông minh, phụ thuộc vào câu cài sẵn), FPT AI Platform (mạnh về NLP nhưng cấu hình thực thể thủ công còn phức tạp), Hana Chatbot, Botbanhang và Chatfuel. Số liệu thống kê trích dẫn từ stanfy.com cho thấy tại thương hiệu 1-800-Flowers.com, hơn 70% đơn đặt hàng qua Facebook Messenger trong 2 tháng đầu triển khai chatbot đến từ nhóm khách hàng mới, chứng minh hiệu quả thực tế của công nghệ này. Chương này xác định định hướng đề tài: dùng Python làm ngôn ngữ chủ đạo cho cả Web server và NLP, kết hợp học máy và kịch bản để tạo lập chatbot tiếng Việt đa lĩnh vực. Đồng thời, chương 1 hệ thống hóa các khái niệm cơ bản: ý định, thực thể, cách nói (5-10 câu mẫu/ý định), kịch bản cây quyết định, và các kỹ thuật NLP như token hóa, POS tagging, NER, stopword, biểu thức chính quy.
Chương 2: Khảo sát và phân tích yêu cầu
Chương 2 mô tả chi tiết yêu cầu chức năng và phi chức năng của hệ thống thông qua biểu đồ use case tổng quan với 3 tác nhân: Người sử dụng bot, Người tạo bot, Quản trị viên. Tác giả xây dựng đặc tả cho 7 nhóm use case chức năng chính:
- Quản lý câu mẫu (UC0101): Xem danh sách sắp xếp theo thời gian, tìm kiếm theo từ khóa, lọc theo ý định, thêm mới thủ công, sửa, xóa, và đặc biệt là chức năng nhập dữ liệu hàng loạt từ tệp tin Excel.
- Quản lý ý định (UC0102): Xem danh sách, tìm kiếm, thêm, sửa, xóa ý định kèm cơ chế kiểm tra tính chuẩn hóa và trùng lặp tên.
- Quản lý loại thực thể (UC0103): Quản lý danh mục tên và mô tả của các loại thực thể trong hệ thống.
- Quản lý từ khóa (UC0104): Thêm, sửa, xóa từ khóa, gán thuộc tính loại thực thể và thiết lập danh sách từ đồng nghĩa.
- Quản lý lịch sử trò chuyện (UC02): Cho phép người tạo bot tra cứu nội dung hội thoại, quan sát nhãn ý định mà hệ thống đã dự đoán cùng chỉ số độ chính xác tương ứng; hỗ trợ gắn lại nhãn đúng hoặc đánh dấu câu nói chính xác để tự động bổ sung vào tập câu mẫu phục vụ huấn luyện.
- Quản lý kịch bản (UC03): Thiết lập cấu trúc phân cấp gồm nhóm bước, bước và các thẻ hành động bên trong bước.
- Kiểm tra NLP (UC04): Kích hoạt tiến trình huấn luyện mô hình ý định (
IntentModel) và mô hình thực thể (EntityModel), sau đó cung cấp giao diện nhập câu thử nghiệm để trả về danh sách thực thể bóc tách được cùng các ý định dự báo xếp theo độ tin cậy giảm dần.
Chương này cũng thiết lập yêu cầu bảo mật thông qua xác thực tham số đầu vào và cơ chế phân quyền dựa trên JWT.
Chương 3: Lý thuyết và Công nghệ sử dụng
Chương 3 tập trung làm rõ cơ sở thuật toán và giải pháp kỹ thuật giải quyết ba bài toán cốt lõi. Đối với bài toán xử lý ý định, chương mô tả chi tiết luồng dữ liệu 2 pha (huấn luyện và dự báo), bảng đặc tả 7 bước tiền xử lý chuỗi văn bản tiếng Việt và cơ chế vector hóa dữ liệu bằng TF-IDF. Đối với bài toán nhận dạng thực thể (NER), chương đối chiếu giữa hướng tiếp cận dựa trên tri thức (từ điển, Regex) và học máy (khảo cứu các mô hình chuỗi như HMM, MEMM, CRF). Đối với bài toán kịch bản, chương làm rõ vai trò của cây quyết định trong việc định hướng câu trả lời của bot và điều phối hành vi người dùng. Về mặt công nghệ, chương trình bày kiến trúc phân tầng Frontend - Backend, phân tích cơ sở lựa chọn ngôn ngữ Python để thống nhất khối nghiệp vụ web và khoa học dữ liệu.
Chương 4: Phát triển và triển khai ứng dụng
Chương 4 trình bày chi tiết kiến trúc phần mềm, cấu trúc gói phần mềm (tandan_nlp, module), thiết kế chi tiết các lớp xử lý nghiệp vụ (preprocessor, feature_extractor, module_qa) cùng sơ đồ thực thể - liên kết 15 bảng trong cơ sở dữ liệu. Chương đưa ra danh mục các thư viện, công cụ triển khai, bảng thông số kỹ thuật dự án và trực quan hóa giao diện người dùng. Các kịch bản thực tế được triển khai minh họa bao gồm: quy trình kiểm tra NLP trực tiếp, cơ chế xử lý khi chatbot không nhận diện được ý định câu hỏi, và luồng kịch bản chuyển khoản ngân hàng gồm nhiều bước kế tiếp nhau.
Chương 5: Các giải pháp và đóng góp nổi bật
Chương 5 đúc kết các giải pháp kỹ thuật đã giải quyết trọn vẹn ba bài toán trọng tâm:
- Hoàn thành bài toán xử lý ý định: Xây dựng thành công chuỗi xử lý khép kín từ tiền xử lý văn bản tiếng Việt, trích xuất đặc trưng TF-IDF đến phân loại ý định chính xác bằng mô hình học máy.
- Hoàn thành bài toán xử lý thực thể: Kết hợp linh hoạt giữa phương pháp trích xuất theo từ điển từ khóa (và từ đồng nghĩa) với biểu thức chính quy và NER, giúp giảm tải thao tác nhập liệu thủ công phức tạp cho người dùng so với một số nền tảng thương mại.
- Bài toán xử lý kịch bản: Thiết lập cơ chế điều phối hội thoại bằng cây quyết định chia thành nhóm bước, bước và thẻ; cho phép nhúng thẻ gọi API ngoài và thu thập biến ngữ cảnh, bù đắp triệt để những trường hợp học máy thiếu dữ liệu huấn luyện.
Chương 6: Kết luận và hướng phát triển
Chương 6 tổng kết toàn bộ kết quả của đồ án, khẳng định hệ thống đã đáp ứng mong đợi của người dùng khi tạo ra công cụ quản lý và triển khai chatbot trực quan, tiện lợi. Chương cũng nêu lên những khó khăn gặp phải trong quá trình nghiên cứu về mặt dữ liệu và thời gian, đồng thời vạch ra định hướng hoàn thiện hệ thống trong tương lai.
Kết quả và đóng góp
Đồ án đã thiết kế và triển khai hoàn chỉnh một hệ thống phần mềm web phục vụ việc tạo lập và vận hành chatbot đa lĩnh vực với các kết quả cụ thể:
- Hoàn thành đầy đủ các module chức năng quản trị dữ liệu NLP, cho phép nhập liệu thủ công hoặc tải tệp Excel đối với câu mẫu, quản lý danh mục ý định, loại thực thể và từ khóa đồng nghĩa.
- Xây dựng quy trình tiền xử lý 7 bước chuẩn hóa cho tiếng Việt và trích chọn đặc trưng TF-IDF tương thích với các thuật toán học máy.
- Hiện thực hóa thành công công cụ "Kiểm tra NLP" (UC04) tích hợp sẵn trên giao diện web, cho phép người tạo bot huấn luyện mô hình trực tiếp và kiểm tra ngay kết quả bóc tách thực thể cùng độ tin cậy của ý định.
- Thiết lập quy trình phản hồi và tự hoàn thiện dữ liệu thông qua màn hình "Quản lý lịch sử trò chuyện" (UC02), biến các tương tác thực tế của người dùng cuối thành dữ liệu gán nhãn mới cho hệ thống.
- Xây dựng kiến trúc Backend Python cung cấp Web API và bảo mật hai lớp: kiểm tra hợp lệ dữ liệu (validation) và xác thực quyền hạn bằng JWT.
Về mặt đóng góp học thuật và ứng dụng, tác giả tự nêu các điểm mới:
- Đề xuất mô hình lai kết hợp giữa học máy (xử lý ngôn ngữ tự nhiên) và kịch bản (cây quyết định), loại bỏ điểm yếu cần tập dữ liệu khổng lồ của mô hình học máy thuần túy mà vẫn giữ được tính linh hoạt khi triển khai trên nhiều lĩnh vực khác nhau.
- Khắc phục sự phức tạp của các nền tảng thương mại (như FPT AI đòi hỏi nhập tay toàn bộ dữ liệu thực thể, hay Facebook Messenger chỉ thuần kịch bản nút bấm), tạo ra giao diện trực quan, thân thiện cho người dùng không chuyên về lập trình.
- Đồng nhất toàn bộ hạ tầng phát triển web và giải thuật khoa học dữ liệu trên một ngôn ngữ Python duy nhất.
Hạn chế và hướng nghiên cứu tiếp
Văn bản đồ án nêu rõ các hạn chế xuất phát từ phạm vi nghiên cứu:
- Do giới hạn thời gian thực hiện trong phạm vi một học kỳ, hệ thống mới chỉ được kiểm nghiệm và tối ưu hóa tốt nhất cho các dịch vụ mua bán, hỏi đáp và giao dịch trực tuyến thông thường; chưa mở rộng đánh giá chuyên sâu trên các nghiệp vụ chuyên ngành phức tạp khác.
- Việc xử lý ngôn ngữ tự nhiên vẫn phụ thuộc vào chất lượng dữ liệu câu mẫu do người tạo bot định nghĩa; trong một số tình huống câu từ biến thể phức tạp, hệ thống vẫn phải dựa vào các quy tắc so khớp mẫu của biểu thức chính quy (Regex) làm phương án dự phòng.
Hướng nghiên cứu tiếp theo mà tác giả định hướng bao gồm:
- Tiếp tục mở rộng phạm vi nghiệp vụ và dữ liệu để chatbot thích ứng tốt hơn với nhiều bài toán chuyên biệt ngoài thương mại và giao dịch.
- Nghiên cứu áp dụng các mô hình học sâu (Deep Learning) tiên tiến nhằm nâng cao năng lực hiểu ngữ nghĩa tự nhiên tiếng Việt mà không cần phụ thuộc quá nhiều vào quy tắc thủ công.
- Tối ưu hóa hiệu năng của các API để nâng cao khả năng chịu tải khi có nhiều hệ thống ngoài cùng kết nối và tương tác đồng thời.
Giá trị tham khảo
Đồ án là tài liệu tham khảo có giá trị chuyên môn đối với:
- Sinh viên chuyên ngành Công nghệ thông tin, Khoa học dữ liệu, Kỹ thuật phần mềm đang thực hiện khóa luận tốt nghiệp về xử lý ngôn ngữ tự nhiên tiếng Việt hoặc xây dựng hệ thống chatbot.
- Các kỹ sư phần mềm muốn tham khảo mô hình kiến trúc tích hợp giữa máy chủ web Python và các giải thuật học máy trong cùng một giải pháp phần mềm hoàn chỉnh.
- Các nhà phát triển hệ thống hội thoại tự động cần tài liệu mẫu về quy trình phân tích use case, thiết kế cơ sở dữ liệu chi tiết cho chatbot (15 bảng thực thể) và giải pháp thiết kế kịch bản hội thoại phân cấp theo Nhóm bước - Bước - Thẻ.
Nội dung đáng tham khảo nhất trong văn bản là quy trình 7 bước tiền xử lý văn bản tiếng Việt chi tiết (Chương 3), hệ thống đặc tả use case gắn liền với luồng sự kiện thực tế (Chương 2), và mô hình cơ sở dữ liệu quản trị chatbot (Chương 4).
Câu hỏi thường gặp
1. Tại sao đồ án lựa chọn ngôn ngữ Python để phát triển toàn bộ hệ thống từ Web server đến khối xử lý dữ liệu?
Trả lời: Theo tác giả trình bày, Python là một trong những ngôn ngữ mạnh mẽ nhất hỗ trợ các bài toán khoa học dữ liệu và xử lý ngôn ngữ tự nhiên (bên cạnh R và SQL). Tuy nhiên, chỉ có Python là ngôn ngữ vừa mạnh về khoa học dữ liệu vừa thích hợp để dựng Web server. Việc dùng chung Python giúp quá trình tích hợp giữa hệ thống web quản lý và các mô hình học máy diễn ra thuận tiện, nhất quán và loại bỏ sự phức tạp khi phải kết nối nhiều ngôn ngữ khác nhau.
2. Quy trình tiền xử lý văn bản tiếng Việt cho bài toán xử lý ý định gồm những bước nào?
Trả lời: Dữ liệu văn bản thô được đưa qua quy trình chuẩn hóa gồm 7 bước cụ thể: (1) Loại bỏ ký tự HTML bằng biểu thức chính quy; (2) Thường hóa các chữ cái về dạng chữ thường; (3) Tách câu bằng biểu thức chính quy; (4) Loại bỏ các ký tự đặc biệt (giữ lại số, chữ cái và dấu câu cơ bản); (5) Loại bỏ từ dừng (stopword); (6) Tách từ ghép tiếng Việt bằng cách nối các từ đơn bằng dấu gạch dưới (ví dụ: lạ_lùng); (7) Ghép các token lại thành chuỗi văn bản hoàn chỉnh để trích xuất đặc trưng TF-IDF.
3. Cấu trúc kịch bản hội thoại được tổ chức như thế nào và giải quyết hạn chế gì của mô hình học máy?
Trả lời: Kịch bản được phân tầng thành 3 cấp: Nhóm bước $\rightarrow$ Bước $\rightarrow$ Thẻ. Trong đó, Nhóm bước dùng để gom nhóm nghiệp vụ (ví dụ: nhóm chuyển khoản), Bước đánh dấu trạng thái hiện tại của cuộc trò chuyện, và Thẻ là các hành động cụ thể bên trong bước (trả lời văn bản, gọi API ngoài, lấy thông tin biến). Mô hình cây quyết định này giúp định hướng luồng hội thoại của người dùng, giải quyết bài toán thiếu hụt dữ liệu huấn luyện lớn và khắc phục tình huống mô hình học máy chưa đạt độ chính xác 100%.
4. Chức năng "Quản lý lịch sử trò chuyện" (UC02) giúp chatbot tự cải thiện độ chính xác như thế nào?
Trả lời: Chức năng này cho phép người tạo bot tra cứu các câu chat thực tế của người dùng, xem nhãn ý định mà hệ thống đã dự đoán cùng độ chính xác đi kèm. Người tạo bot có thể sửa lại nhãn ý định nếu hệ thống đoán sai, hoặc nhấn "Đánh dấu chính xác" nếu hệ thống đoán đúng. Dữ liệu đã xác nhận này sẽ được tự động lưu vào cơ sở dữ liệu câu mẫu, tạo thành nguồn dữ liệu đầu vào chuẩn xác để tái huấn luyện mô hình học máy theo thời gian.
5. Hệ thống đảm bảo yêu cầu an toàn, bảo mật Web API thông qua các cơ chế nào?
Trả lời: Hệ thống triển khai hai biện pháp bảo mật chính: Thứ nhất là xác nhận tham số đầu vào (validation) đối với mọi dữ liệu client gửi lên API, từ chối xử lý và trả về thông báo lỗi nếu dữ liệu không hợp lệ. Thứ hai là cơ chế xác thực và phân quyền bằng JSON Web Token (JWT). Sau khi đăng nhập thành công, máy chủ cấp token cho client để gắn vào tiêu đề của mỗi yêu cầu API tiếp theo, qua đó kiểm soát chặt chẽ quyền truy cập của 3 nhóm tác nhân (Khách, Người tạo bot, Quản trị viên).
Kết luận
Đồ án "Hệ thống chatbot phục vụ đa lĩnh vực" đã giải quyết bài toán giao thoa giữa nghiên cứu ứng dụng xử lý ngôn ngữ tự nhiên và xây dựng hệ thống phần mềm thực tế bằng cách kết hợp học máy với kịch bản cây quyết định. Thông qua nền tảng web thống nhất viết bằng Python, hệ thống cung cấp đầy đủ công cụ trực quan để quản lý dữ liệu NLP tiếng Việt, huấn luyện mô hình, kiểm thử tự động và xuất Web API tích hợp. Đây là tài liệu kỹ thuật có giá trị tham khảo cao về mặt kiến trúc hệ thống, quy trình tiền xử lý văn bản tiếng Việt và mô hình cơ sở dữ liệu ứng dụng trong phát triển chatbot thông minh.