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

Trong bối cảnh cuộc Cách mạng Công nghiệp 4.0, sự phát triển của Trí tuệ nhân tạo (Artificial Intelligence – AI) và Xử lý ngôn ngữ tự nhiên (Natural Language Processing – NLP) đã thúc đẩy việc ứng dụng các hệ thống đàm thoại tự động (Chatbot) vào nhiều lĩnh vực như thương mại điện tử, y tế, dịch vụ khách hàng và hành chính công. Tại các cơ sở giáo dục đại học, nhu cầu tra cứu và giải đáp thông tin của người học là rất lớn, bao gồm các thắc mắc về học phí, quy chế đào tạo, điều kiện xét cấp học bổng, điểm rèn luyện, các hoạt động Đoàn thể và cơ hội việc làm.

Tại Trường Đại học An Giang, công tác hỗ trợ và tư vấn sinh viên vẫn chủ yếu được thực hiện thủ công bởi cán bộ phòng Công tác Sinh viên (CTSV). Phương thức giải đáp truyền thống này bộc lộ một số hạn chế nhất định về mặt vận hành: cán bộ quản lý không thể túc trực 24/7 để tiếp nhận thông tin và khó có thể phản hồi tức thì cho hàng nghìn sinh viên cùng lúc khi có các đợt cao điểm. Trước thực trạng đó, khóa luận tốt nghiệp ngành Công nghệ thông tin của tác giả Phan Nhật Hào (Trường Đại học An Giang, 05-2022) lựa chọn đề tài "Xây dựng Chatbot hỗ trợ công tác sinh viên" nhằm tự động hóa quy trình giải đáp thắc mắc, giảm tải áp lực nhân sự cho phòng ban chuyên trách.

Mục tiêu nghiên cứu của đề tài được xác định qua 3 nhiệm vụ cụ thể:

  1. Tìm hiểu kỹ thuật và công nghệ xây dựng hệ thống Chatbot.
  2. Xây dựng bộ cơ sở dữ liệu mẫu về thông tin Công tác sinh viên, bao gồm các tập câu hỏi mẫu và câu trả lời tương ứng.
  3. Nghiên cứu và huấn luyện Chatbot bằng mô hình học máy (Machine Learning) nhằm giúp hệ thống tự động phân loại, hiểu đúng ý định của người dùng và đưa ra phản hồi chính xác.

Đối tượng và phạm vi nghiên cứu của đề tài:

  • Đối tượng nghiên cứu: Quy trình xử lý ngôn ngữ tự nhiên, kỹ thuật phân lớp ý định người dùng và mô hình mạng nơ-ron nhân tạo ứng dụng trong hệ thống hội thoại tự động.
  • Phạm vi nội dung: Dữ liệu giải đáp xoay quanh các nghiệp vụ công tác sinh viên tại Trường Đại học An Giang (học phí, thông tin trường, điểm chuẩn đầu vào các năm, danh mục học bổng, điều kiện xét học bổng, việc làm thêm, hoạt động tình nguyện, hội thảo tính điểm rèn luyện).
  • Phạm vi triển khai: Giao diện hội thoại tích hợp qua ứng dụng nền web xây dựng bằng Flask framework và định hướng kết nối qua nền tảng Facebook Messenger/Fanpage phòng Công tác Sinh viên.

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

Khung lý thuyết và mô hình tiếp cận

Tác giả tổng hợp cơ sở lý thuyết về lịch sử phát triển của AI và Chatbot từ phép thử Turing (Alan Turing, 1950), hệ thống ELIZA (Joseph Weizenbaum, 1966), PARRY (Kenneth Colby, 1972), Jabberwacky (1988/1997), Dr SBAITSO (1990), ALICE (Richard Wallace, 1995 với ngôn ngữ AIML), SmarterChild (ActiveBuddy, 2001), IBM Watson (2006) đến sự bùng nổ của Messenger Platform (Facebook, 2016).

Về phân loại kiến trúc xử lý hội thoại, tác giả so sánh hai hướng tiếp cận chính:

Tiêu chí Mô hình dựa trên truy xuất (Retrieval-based Model) Mô hình sinh ngôn ngữ (Generative Model)
Cơ chế hoạt động Sử dụng tập hợp các mẫu câu và câu trả lời định sẵn; tính toán điểm số/xác suất để chọn phản hồi phù hợp nhất. Tự động sinh từng từ (word-by-word) dựa trên mô hình học sâu (như RNN, mạng Encoder-Decoder).
Độ chính xác & cú pháp Đảm bảo tính nhất quán, không mắc lỗi ngữ pháp hay cú pháp. Dễ phát sinh lỗi cú pháp, câu trả lời có thể không mạch lạc hoặc thiếu chính xác.
Yêu cầu dữ liệu & tính toán Tập dữ liệu vừa phải, huấn luyện nhanh, dễ kiểm soát nội dung. Đòi hỏi tập dữ liệu huấn luyện khổng lồ và tài nguyên tối ưu hóa phức tạp.
Lựa chọn trong đề tài Được chọn: Phù hợp với cơ sở dữ liệu quy chuẩn và thông tin hành chính xác thực của phòng CTSV. Không lựa chọn do độ phức tạp cao và nguy cơ sinh lỗi câu từ trong môi trường tư vấn học vụ.

Khung lý thuyết xử lý ngôn ngữ tự nhiên (NLP/NLU) bao gồm các khái niệm cốt lõi:

  • NLU (Natural Language Understanding): Xác định thực thể (Entities), ngữ cảnh (Context) và ý định/kỳ vọng của người dùng (Expectations).
  • Quy trình NLP: Mã hóa phân đoạn từ (Tokenization), chuẩn hóa văn bản (Normalization), nhận dạng thực thể có tên (Named Entity Recognition - NER), phân tích cú pháp phụ thuộc (Dependency Parsing) và phân tích cảm xúc (Sentiment Analysis).

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

  • Phương pháp nghiên cứu lý thuyết: Thu thập, phân tích các tài liệu hành chính, quy chế học bổng, quy định đào tạo từ cổng thông tin và văn bản nội bộ của Trường Đại học An Giang; nghiên cứu các thuật toán học máy, mạng nơ-ron nhân tạo (ANN) và các thư viện chuyên dụng.
  • Phương pháp nghiên cứu thực nghiệm:
    • Thu thập và chuẩn hóa dữ liệu câu hỏi thực tế từ sinh viên.
    • Thiết kế cấu trúc dữ liệu intent dưới định dạng JSON.
    • Tiền xử lý dữ liệu văn bản tiếng Việt qua các kỹ thuật: tách từ (nltk.word_tokenize), chuyển đổi chữ thường, chuẩn hóa ký tự tiếng Việt (bổ sung dấu, chuẩn hóa cặp chữ i/y), lọc bỏ từ dừng (stopwords), chuẩn hóa từ đồng nghĩa/tiếng lóng địa phương và gán nhãn từ loại (POS Tagging).
    • Trích xuất đặc trưng bằng mô hình túi từ (Bag of Words - BoW).
    • Xây dựng, huấn luyện mô hình mạng nơ-ron phân lớp 3 lớp qua Keras và đánh giá kết quả.

Thiết kế và triển khai

Hệ thống Chatbot hỗ trợ công tác sinh viên được tổ chức thành 3 khối chức năng chính:

[Khối truyền dữ liệu, thông tin] <---> [Khối xử lý dữ liệu qua Python] <---> [Khối thực hiện truy vấn Webhook]
   - Người dùng (User)                    - Truy vấn (Query)                     - Mã nguồn (Code Python)
   - Dữ liệu đầu vào (Input)               - Ý định (Intent)                      - Giao tiếp API (APIs)
   - Tín hiệu đầu ra (Output)             - Thao tác dữ liệu (Actionable Data)   - Cơ sở dữ liệu (Database)

1. Kiến trúc phân khối hệ thống

  • Khối truyền dữ liệu, thông tin: Tiếp nhận chuỗi ký tự do người dùng nhập từ bàn phím qua giao diện tương tác và chuyển giao cho khối xử lý, đồng thời nhận kết quả phản hồi cuối cùng để hiển thị lên màn hình.
  • Khối xử lý dữ liệu qua Python:
    • Bộ phận truy vấn (Query): Chuyển đổi ngôn ngữ tự nhiên đầu vào thành dạng số học (vector BoW) để mô hình nơ-ron xử lý.
    • Bộ phận ý định (Intent): Đưa vector đặc trưng qua mạng nơ-ron đã huấn luyện để tính xác suất phân lớp, xác định nhãn (tag) tương ứng.
    • Bộ phận thao tác dữ liệu (Actionable Data): Trích xuất các tham số từ nhãn ý định để chuyển tiếp đến các hàm tạo phản hồi.
  • Khối thực hiện truy vấn trên Webhook: Đảm nhiệm việc kết nối giữa mã nguồn Python, cơ sở dữ liệu cục bộ (data.json) và giao diện web Flask; tiếp nhận tham số, truy xuất kho phản hồi và trả dữ liệu về hệ thống giao diện qua giao thức HTTP.

2. Cấu trúc dữ liệu và công nghệ triển khai

Hệ sinh thái công nghệ được sử dụng trong khóa luận gồm:

  • Ngôn ngữ lập trình: Python.
  • Thư viện AI/NLP: NLTK (Natural Language Toolkit) hỗ trợ tiền xử lý văn bản; Keras (API tuần tự Sequential) xây dựng mạng nơ-ron nhân tạo; NumPy và Pickle lưu trữ đối tượng dữ liệu.
  • Nền tảng giao diện: Flask Framework (kết hợp Jinja2 templates, Werkzeug), HTML và CSS để xây dựng khung cửa sổ chat trực quan.
  • Cấu trúc dữ liệu data.json: Định dạng gồm 3 trường chính cho mỗi nhóm ý định:
    • tag: Tên định danh nhóm ý định (ví dụ: greeting, age, hoc_phi, hoc_bong...).
    • patterns: Danh sách các mẫu câu hỏi người dùng có thể đặt ra.
    • responses: Danh sách các mẫu câu trả lời chuẩn bị sẵn để hệ thống chọn ngẫu nhiên phản hồi.

3. Quy trình huấn luyện và vận hành mã nguồn

  • Huấn luyện (training.py):
    1. Đọc tệp data.json, trích xuất toàn bộ câu mẫu và danh sách từ khóa.
    2. Thực hiện tách từ (nltk.word_tokenize()), chuyển chữ thường, loại bỏ ký tự trùng lặp và tiến hành bổ đề hóa (lemmatization).
    3. Mã hóa dữ liệu dạng số theo mô hình Bag of Words (mảng nhị phân biểu diễn sự xuất hiện của từ vựng) cho tập đầu vào và mã hóa One-Hot cho các nhãn tag đầu ra.
    4. Lưu cấu trúc từ vựng và nhãn lớp vào các tệp nhị phân text.pkl và label.pkl.
    5. Xây dựng mạng nơ-ron phân loại 3 lớp (3-layer Neural Network) bằng Sequential API của Keras.
    6. Huấn luyện mô hình qua 200 chu kỳ (epochs), sau đó xuất mô hình đã huấn luyện thành tệp mô hình (model).
  • Thực thi và phản hồi (app.py):
    1. Tải mô hình đã huấn luyện cùng các tệp text.pkl, label.pkl.
    2. Khởi tạo máy chủ web cục bộ thông qua Flask.
    3. Khi nhận chuỗi văn bản từ người dùng qua giao diện web, hệ thống thực hiện tiền xử lý tương tự quá trình huấn luyện, chuyển câu thành vector BoW.
    4. Mô hình dự đoán nhãn tag có xác suất cao nhất.
    5. Hàm xử lý phản hồi thực hiện chọn ngẫu nhiên một câu trả lời trong danh sách responses của tag tương ứng và trả về giao diện người dùng.

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

Chương 1: Đặt vấn đề

Chương 1 làm rõ tính cấp thiết của đề tài trong bối cảnh chuyển đổi số giáo dục. Tác giả chỉ ra sự bất cập trong việc giải đáp thủ công các thắc mắc hành chính của sinh viên tại Trường Đại học An Giang. Chương này xác định mục tiêu chính là xây dựng một hệ sinh thái Chatbot tự động dựa trên Python và Flask; đồng thời vạch rõ phạm vi câu hỏi xoay quanh các chính sách CTSV (học phí, học bổng, điểm chuẩn, việc làm, rèn luyện) và phương pháp luận bao gồm nghiên cứu lý thuyết kết hợp thực nghiệm xây dựng phần mềm.

Chương 2: Tổng quan cơ sở lý thuyết

Chương 2 trình bày có hệ thống nền tảng lý luận về AI và hệ thống đàm thoại:

  • Khái quát lịch sử AI từ Hội nghị Dartmouth năm 1956 và các cột mốc tiến hóa của Chatbot từ năm 1950 đến nay.
  • Phân tích cấu trúc 3 phần của Chatbot (Cơ sở dữ liệu, Tầng ứng dụng, Giao diện lập trình API).
  • So sánh chi tiết giữa Retrieval-based Model và Generative Model, phân tích các cơ chế so khớp mẫu (Pattern Matching), mạng nơ-ron nhân tạo (ANN), các thành phần NLU (Entities, Context, Expectations) và chuỗi xử lý NLP.
  • Tổng quan các nền tảng Chatbot thương mại (Wit.ai, DialogFlow, LUIS, Amazon Lex, IBM Watson) và lợi ích thực tiễn của Chatbot (sẵn sàng 24/7, năng lực xử lý đồng thời hàng nghìn phiên hỏi đáp, tối ưu hóa chi phí).
  • Giới thiệu chi tiết các công cụ kỹ thuật được ứng dụng: ngôn ngữ Python, web framework Flask, thư viện học sâu Keras, bộ công cụ xử lý ngôn ngữ NLTK, cùng chuẩn định dạng HTML/CSS.

Chương 3: Phân tích và thiết kế hệ thống

Chương 3 là phần trọng tâm kỹ thuật của khóa luận, mô tả toàn diện quá trình hiện thực hóa phần mềm:

  • Phân tích lý do lựa chọn mô hình Retrieval-based kết hợp mạng nơ-ron 3 lớp nhằm tối ưu hóa độ chính xác cho nghiệp vụ CTSV.
  • Thiết kế chi tiết sơ đồ khối hệ thống gồm 3 phân hệ: Truyền dữ liệu/thông tin, Xử lý dữ liệu qua Python, và Truy vấn Webhook kết nối dữ liệu.
  • Quy định cấu trúc tệp dữ liệu huấn luyện data.json.
  • Chi tiết hóa các bước tiền xử lý văn bản: tách từ bằng nltk.word_tokenize(), chuẩn hóa tiếng Việt, làm sạch ký tự, loại bỏ từ dừng và trích xuất đặc trưng Bag of Words.
  • Quy trình huấn luyện mô hình Keras qua 200 epochs với file training.py và lưu trữ các tệp phụ trợ (text.pkl, label.pkl, model).
  • Thiết kế giao diện và luồng điều khiển của ứng dụng web Flask thông qua tệp app.py.

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

Kết quả đạt được

  • Về mặt dữ liệu: Xây dựng thành công tệp dữ liệu có cấu trúc data.json bao gồm các tập mẫu câu hỏi (patterns) và câu trả lời (responses) chuẩn hóa theo từng nhóm nghiệp vụ công tác sinh viên của Trường Đại học An Giang.
  • Về mặt mô hình: Mạng nơ-ron nhân tạo 3 lớp (3-layer ANN) xây dựng bằng Keras Sequential API sau khi trải qua 200 chu kỳ huấn luyện (epochs) đã hội tụ và đạt độ chính xác 100% (accuracy: 1.0) trên tập dữ liệu mẫu.
  • Về mặt sản phẩm phần mềm: Triển khai hoàn chỉnh ứng dụng web Chatbot bằng Flask Framework kết hợp giao diện HTML/CSS, cho phép người dùng nhập câu hỏi dạng văn bản và nhận lại câu trả lời tự động, tức thời với độ trễ thấp.

Giải pháp và đề xuất

  • Đề xuất ứng dụng mô hình Chatbot truy xuất (Retrieval-based) kết hợp học máy làm kênh giải đáp thông tin tự động ban đầu nhằm giảm tải khối lượng công việc hành chính lặp đi lặp lại cho cán bộ phòng Công tác Sinh viên.
  • Kiến nghị tích hợp Chatbot vào website chính thức của phòng CTSV và kết nối với nền tảng Facebook Fanpage qua Webhook API để sinh viên tiếp cận thuận tiện trên các thiết bị di động.

Đóng góp của đề tài

  • Đóng góp giải pháp công nghệ cụ thể giải quyết bài toán tư vấn học vụ tại Trường Đại học An Giang, nơi trước đó chưa từng áp dụng hệ thống đàm thoại tự động trong công tác sinh viên.
  • Cung cấp tài liệu thiết kế hệ thống chi tiết cùng mã nguồn mẫu từ bước tiền xử lý ngôn ngữ tiếng Việt cơ bản đến xây dựng mạng nơ-ron phân lớp và triển khai web app bằng Flask.

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

Hạn chế

  • Mô hình hoạt động theo phương pháp truy xuất dựa trên các nhãn mẫu định sẵn trong data.json, do đó hệ thống chưa thể tự động sinh câu trả lời hoặc xử lý thỏa đáng những câu hỏi có nội dung hoàn toàn nằm ngoài tập dữ liệu đã huấn luyện.
  • Quy mô dữ liệu câu hỏi và câu trả lời vẫn còn giới hạn trong một số chủ đề nghiệp vụ cốt lõi, chưa bao quát toàn bộ các tình huống phát sinh trong thực tế học vụ.
  • Quy trình tiền xử lý tiếng Việt mới dừng ở các bước cơ bản (tách từ qua NLTK, chuẩn hóa dấu, lọc từ dừng), chưa áp dụng các mô hình ngôn ngữ tiếng Việt chuyên sâu học trước (pre-trained language models).

Hướng nghiên cứu tiếp

  • Mở rộng và làm giàu cơ sở dữ liệu data.json với nhiều biến thể câu hỏi và chủ đề nghiệp vụ chuyên sâu hơn từ thực tế tương tác của sinh viên.
  • Hoàn thiện kết nối API chính thức với nền tảng Facebook Messenger Platform để triển khai đồng bộ trên Fanpage phòng Công tác Sinh viên.
  • Nghiên cứu tích hợp các kỹ thuật học sâu tiên tiến hơn nhằm nâng cao khả năng hiểu ngữ cảnh phức tạp và hỗ trợ tương tác đa phương tiện (nhận dạng giọng nói).

Giá trị tham khảo

Báo cáo khóa luận mang lại giá trị tham khảo thiết thực cho các nhóm đối tượng:

  • Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm: Là tài liệu tham khảo trực quan về quy trình xây dựng một ứng dụng NLP hoàn chỉnh từ đầu, bao gồm cách tổ chức tệp dữ liệu intent JSON, xử lý văn bản với NLTK, huấn luyện mô hình mạng nơ-ron phân loại bằng Keras và nhúng mô hình vào ứng dụng web với Flask.
  • Cán bộ quản lý đào tạo và công tác sinh viên: Cung cấp góc nhìn thực tiễn về việc ứng dụng công nghệ thông tin nhằm số hóa và tự động hóa các kênh hỗ trợ, tư vấn sinh viên trong môi trường đại học.
  • Nhà phát triển hệ thống hội thoại cơ bản: Cung cấp khung kiến trúc chuẩn cho các hệ thống Chatbot dạng Retrieval-based phục vụ các bài toán hỏi đáp nghiệp vụ hẹp.

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

1. Khóa luận lựa chọn phương pháp xây dựng Chatbot nào và lý do lựa chọn là gì?
Tác giả lựa chọn phương pháp dựa trên truy xuất (Retrieval-based Model) kết hợp mạng nơ-ron nhân tạo (ANN) 3 lớp thay vì mô hình sinh ngôn ngữ (Generative Model). Lý do là mô hình truy xuất đảm bảo câu trả lời luôn chuẩn xác về ngữ pháp, nhất quán về nội dung, không phát sinh lỗi ngữ nghĩa ngẫu nhiên, và phù hợp với tập dữ liệu quy chế hành chính của phòng Công tác Sinh viên mà không cần dữ liệu huấn luyện khổng lồ.

2. Quá trình tiền xử lý dữ liệu tiếng Việt trong khóa luận bao gồm những bước cụ thể nào?
Quá trình tiền xử lý văn bản gồm các bước: phân tách câu thành các từ tố (nltk.word_tokenize()), bổ đề hóa từ (lemmatizing), chuẩn hóa tiếng Việt không dấu sang có dấu, chuẩn hóa ký tự i và y, sửa lỗi chính tả, chuẩn hóa font và dấu câu, loại bỏ từ dừng (stopwords), chuẩn hóa từ đồng nghĩa/tiếng lóng địa phương, xác định từ loại (POS Tagging) và mã hóa thành vector túi từ (Bag of Words).

3. Mô hình mạng nơ-ron được cấu hình và huấn luyện với các thông số nào?
Mô hình mạng nơ-ron nhân tạo gồm 3 lớp được xây dựng thông qua Keras Sequential API. Mô hình được huấn luyện trên tập dữ liệu đặc trưng nhị phân qua 200 chu kỳ (epochs), đạt độ chính xác 100% (accuracy: 1.0) trên tập dữ liệu huấn luyện và được lưu lại dưới dạng tệp model cùng các tệp nhị phân text.pkl, label.pkl.

4. Dữ liệu huấn luyện của hệ thống được lưu trữ và cấu trúc như thế nào?
Dữ liệu được lưu trữ trong tệp data.json. Mỗi khối ý định (intent) bao gồm 3 trường thông tin: tag (tên nhãn đại diện cho nhóm câu hỏi), patterns (danh sách các câu hỏi mẫu của người dùng) và responses (danh sách các câu trả lời định sẵn để hệ thống chọn ngẫu nhiên khi khớp nhãn).

5. Ứng dụng web tương tác với người dùng được xây dựng bằng công nghệ gì?
Ứng dụng được triển khai bằng ngôn ngữ Python thông qua Web Framework Flask (file thực thi app.py), kết hợp giao diện người dùng xây dựng bằng HTML và CSS, cho phép tương tác trực tiếp qua trình duyệt web thông qua địa chỉ IP cục bộ do máy chủ Flask cung cấp.


Kết luận

Khóa luận tốt nghiệp "Xây dựng Chatbot hỗ trợ công tác sinh viên" của sinh viên Phan Nhật Hào đã hoàn thành trọn vẹn các mục tiêu nghiên cứu đề ra thông qua việc phát triển một hệ thống hội thoại tự động dạng Retrieval-based hoàn chỉnh. Bằng việc kết hợp thư viện NLTK, mô hình mạng nơ-ron nhân tạo 3 lớp trên nền Keras và web framework Flask, tác giả đã xây dựng thành công phần mềm giải đáp tự động các nghiệp vụ công tác sinh viên tại Trường Đại học An Giang với độ chính xác huấn luyện đạt 100%. Mặc dù còn hạn chế về độ bao phủ dữ liệu và tính linh hoạt ngoài tập mẫu, đề tài đã đặt nền móng kỹ thuật vững chắc và chứng minh tính khả thi cao trong việc ứng dụng AI để tối ưu hóa công tác hỗ trợ sinh viên tại các cơ sở giáo dục đại học.