1. Những kết quả chính của luận văn:
Luận văn đã đạt được các kết quả chính sau đây:
 Đưa ra được các lý thuyết và vấn đề gặp phải trong việc xây dựng hệ thống tự
động phân luồng câu hỏi.
 Nghiên cứu và ứng dụng mạng học sâu vào giải quyết bài toán phân luồng câu
hỏi và trả lời câu hỏi tự động trực tuyến
 Cài đặt hệ thống tự động phân luồng câu hỏi và hệ thống trả lời câu hỏi đã đạt
được kết quả thực nghiệm đạt trên 50% người sử dụng hài lòng.
 Phần mềm đưa vào ứng dụng giúp tiết kiệm chi phí cho nguồn nhân lực trong
quá trình tiếp nhận và trả lời câu hỏi.
 Tổng hợp các kết quả và hướng nghiên cứu về bài toán đã có thể đưa ra được
trợ lý ảo tiếp nhận và hiểu được nhu cầu của sinh viên.
 Có khả năng áp dụng vào các hệ thống tự động phân luồng câu hỏi khác như
tư vấn bán hàng, tư vấn sức khỏe, .
2. Hướng phát triển của luận văn:
 Tiếp tục triển khai mở rộng và thu thập nhiều câu hỏi hơn ở nhiều trường Đại
học để có thể gia tăng sự huấn luyện, tăng độ chính xác.
 Tiếp tục nghiên cứu các mô hình mạng học sâu giải quyết bài toán phân luồng
câu hỏi và trả lời yêu cầu trực tuyến.
 Tìm hiểu nhu cầu thực tế, cũng như tham khảo các ý kiến của chuyên gia để
xây dựng chương trình áp dụng kỹ thuật đã nghiên cứu, bổ sung một số yếu tố
khác để hoàn thiện hệ thống trả lời tự động đạt hiệu quả cao.
                
              
                                            
                                
            
 
            
                 70 trang
70 trang | 
Chia sẻ: yenxoi77 | Lượt xem: 916 | Lượt tải: 1 
              
            Bạn đang xem trước 20 trang tài liệu Luận văn Hệ thống tự động phân luồng câu hỏi và giải đáp yêu cầu trực tuyến, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
luyện RNN tương tự như huấn luyện Neural Network truyền thống. 
Chúng ta cũng sử dụng đến thuật toán backpropagation (lan truyền ngược) nhưng 
có một chút tinh chỉnh. Gradient tại mỗi output không chỉ phụ thuộc vào kết quả 
tính toán của bước hiện tại mà còn phụ thuộc vào kết quả tính toán của các bước 
trước đó. 
Ví dụ, để tính gradient tại thời điểm t = 4, ta cần backpropagation 3 bước 
trước đó và cộng dồn các gradient này lại với nhau. Kĩ thuật này gọi là 
Backpropagation Through Time (BPPTT) [27]. Điểm hạn chế ở đây đó là hidden 
layer không có trí nhớ dài hạn. Vấn đề này còn gọi là vanishing/exploding gradient 
problem và như vậy, LSTM được sinh ra để giải quyết vấn đề này. 
31 
2.3.4 Các phiên bản mở rộng của RNN 
Trong vài năm qua, các nhà nghiên cứu đã phát triển nhiều loại mạng RNNs 
ngày càng tinh vi để giải quyết các mặt hạn chế của RNN. Dưới đây, là một số 
phiên bản mở rộng của RNN. 
Bidirectional RNN (RNN hai chiều): dựa trên ý tưởng output tại thời điểm t 
không chỉ phụ thuộc vào các thành phần trước đó mà còn phụ thuộc vào các thành 
phần trong tương lai. Ví dụ, để dự đoán một từ bị thiếu (missing word) trong 
chuỗi, ta cần quan sát các từ bên trái và bên phải xung quanh từ đó. Mô hình này 
chỉ gồm hai RNNs nạp chồng lên nhau. Trong đó, các hidden state được tính toán 
dựa trên cả hai thành phần bên trái và bên phải của mạng. 
Hình 2.5: Mạng RNN hai chiều. 
Deep (Bidirectional) RNN: tương tự như Bidirectional RNN, điểm khác 
biệt đó là mô hình này gồm nhiều tầng Bidirectional RNN tại mỗi thời điểm. Mô 
hình này sẽ cho ta khả năng thực hiện các tính toán nâng cao nhưng đòi hỏi tập 
huấn luyện của chúng ta phải đủ lớn. 
32 
Hình 2.6: Mạng RNN nhiều tầng. 
Long short-term memory networks (LSTM): mô hình này có cấu trúc 
tương tự như RNNs nhưng có cách tính toán khác đối với các trạng thái ẩn. 
Memory trong LSTMs được gọi là cells (hạt nhân). Ta có thể xem đây là một hộp 
đen nhận thông tin đầu vào gồm hidden state và giá trị. Bên trong các hạt nhân 
này, chúng sẽ quyết định thông tin nào cần lưu lại và thông tin nào cần xóa đi, 
nhờ vậy mà mô hình này có thể lưu trữ được thông tin dài hạn. 
33 
CHƯƠNG 3: ỨNG DỤNG MÔ HÌNH MẠNG NƠ-RON VÀO TRẢ LỜI TỰ 
ĐỘNG 
Chương này tác giả tập trung giới thiệu về mô hình mạng nơ ron có thể sản 
sinh ra văn bản sau khi được huấn luyện, đồng thời đề cập đến mô hình chuỗi tuần 
tự liên tiếp sequence to sequence. Từ đó đưa ra cách thức ứng dụng mạng nơ ron 
để xây dựng được một hệ thống trả lời tự động. 
3.1 Phát sinh ngôn ngữ trả lời tự động 
Nền tảng của việc xây dựng mô hình chuỗi tuần tự (ví dụ, mô hình dịch 
máy) là mô hình ngôn ngữ. Ở mức cao, một mô hình ngôn ngữ đón nhận chuỗi 
các phần tử đầu vào, nhìn vào từng phần tử của chuỗi và cố gắng để dự đoán các 
phần tử tiếp theo của chuỗi văn bản. Có thể mô tả quá trình này bằng phương trình 
hàm số sau đây: 
𝑌௧ = 𝑓(𝑌௧ିଵ) 
Trong đó, 𝑌௧ là phần tử chuỗi ở thời điểm t, 𝑌௧ିଵ là phần tử chuỗi ở thời 
điểm trước đó (t-1), và f là hàm ánh xạ các phần tử trước đó của chuỗi sang phần 
tử tiếp theo của chuỗi. Bởi vì chúng ta đang đề cập đến mô hình chuỗi sử dụng 
mạng nơ-ron, 𝑓 đại diện cho mạng nơ-ron mà có thể dự đoán được phần tử tiếp 
theo của một chuỗi, được cho trước bởi một phần tử hiện tại trong chuỗi đó. 
Mô hình ngôn ngữ có thể sinh sản, khi được huấn luyện thì chúng có thể 
được sử dụng để sinh ra các chuỗi thông tin bằng cách cho kết quả đầu ra ở bước 
trước trở lại làm đầu vào của mô hình. Hình vẽ dưới đây là sơ đồ cho thấy việc 
huấn luyện và quá trình sinh sản của một mô hình ngôn ngữ. 
Cho một chuỗi là ABCD. Một chuỗi đầu vào là một lát cắt của chuỗi cho 
đến phần tử cuối. Chuỗi đích target là một lát cắt của chuỗi từ phần tử thứ 2. 
34 
Hình 3.1: Mô hình phát sinh văn bản 
Hình 3.2: Quá trình huấn luyện và phát sinh văn bản 
Trong quá trình training, mô hình cố gắng dự đoán phần tử tiếp theo của 
chuỗi target được cho bởi phần tử hiện tại của chuỗi target. Trong quá trình sinh, 
mô hình sinh sẽ lấy kết quả đã được sinh ra ở bước trước làm đầu vào cho lần dự 
báo tiếp theo. 
Có nhiều cách khác nhau để xây dựng một mô hình ngôn ngữ, nhưng trong 
luận văn này chỉ đề cập đến việc huấn luyện mô hình ngôn ngữ dựa trên Mạng 
nơ-ron tái phát RNN. Như đã biết mạng RNN giống với mạng ANN truyền thống, 
nhưng thao tác và xử lý các dữ liệu dạng chuỗi. Về cơ bản mạng RNN tiếp nhận 
35 
mỗi phần tử của chuỗi, nhân phân tử với một ma trận, sau đó cộng tổng kết quả 
với kết quả ở bước trước của mạng. Ta có phương trình biểu diễn như sau: 
ht = activation (XtWx + ht-1Wh) 
Để sử dụng mạng RNN cho mô hình ngôn ngữ, chúng ta sẽ đưa chuỗi đầu 
vào từ t = 1 đến t = seq_length – 1 và cố gắng dự đoán chuỗi tương tự từ t = 2 đến t 
= seq_length – 1. Khi đầu ra của RNN được dựa trên tất cả các đầu vào của 
sequence, thì output của nó được biểu diễn bởi hàm Yt = g (f (Yt-1, Yt-2, 
, Yt1)). Hàm f tạo ra trạng thái tiếp theo của mạng RNN, trong khi hàm ánh 
xạ g ánh xạ trạng thái của RNN vào một giá trị trong tập các từ vựng target 
(vocabulary). Một cách đơn giản, f cho ra một trạng thái ẩn của mạng, trong khi 
hàm g cho đầu ra của mạng – giống với softmax layer của mạng nơ-ron đơn giản. 
Không giống với các mô hình ngôn ngữ đơn giản là chỉ dự đoán xác suất 
cho từ tiếp theo khi được cho bởi từ hiện tại, mô hình RNN chụp lại toàn bộ bối 
cảnh của chuỗi đầu vào. Do đó, RNN dự đoán xác suất tạo ra các từ tiếp theo dựa 
trên các từ hiện tại, cũng như tất cả các từ trước. 
3.2 Mô hình chuỗi tuần tự liên tiếp 
RNN có thể được sử dụng như là mô hình ngôn ngữ cho việc dự đoán các 
phần tử của một chuỗi khi cho bởi các phần tử trước đó của một chuỗi. Tuy nhiên, 
chúng ta vẫn còn thiếu các thành phần cần thiết cho việc xây dựng các mô hình 
đối thoại, hay các mô hình máy dịch, bởi vì chúng ta chỉ có thể thao tác trên một 
chuỗi đơn, trong khi việc dịch hoạt động trên cả hai chuỗi – chuỗi đầu vào và 
chuỗi được dịch sang. 
Các mô hình chuỗi sang chuỗi được xây dựng bên trên mô hình ngôn ngữ 
bằng việc thêm vào một bộ mã hóa Encoder và một bộ giải mã Decoder. Trong 
bước mã hóa encode, một mô hình chuyển đổi một chuỗi đầu vào (ví dụ như một 
câu tiếng Anh) thành một đại diện cố định. Trong bước giải mã decode, một mô 
hình ngôn ngữ được huấn luyện trên cả hai chuỗi output được dịch ra và chuỗi đại 
36 
diện cố định (từ bộ mã hóa encoder). Khi bộ mã hóa nhìn thấy cả hai thông tin 
chuỗi đầu vào đã được mã hóa và chuỗi được dịch ra, nó có thể dự đoán thông 
minh hơn về các từ tương lai dựa vào các từ hiện tại. Ví dụ, trong một mô hình 
ngôn ngữ chuẩn, chúng ta có thể thấy một từ “đi” trong tiếng Việt và không chắc 
từ tiếp theo là về sự dịch chuyển bằng hai chi dưới (ví dụ: tôi đi rất nhanh nhưng 
vẫn không đuổi kịp anh ấy) hay chỉ một người nào đó đã chết (ví dụ: Anh ấy ra đi 
mà không kịp nói lời trăng trối). Tuy nhiên, nếu chúng ta đã đi qua một bối cảnh 
của bộ mã hóa, thì bộ giải mã nhận ra rằng các chuỗi đầu vào đang đề cập đến 
việc di chuyển của con người, chứ không phải sự việc một người đã chết. Với bối 
cảnh đó, bộ giải mã có thể lựa chọn từ kế tiếp thích hợp và cung cấp một bản dịch 
chính xác. 
Mô hình chuỗi sang chuỗi Seq2seq, được giới thiệu trong bài báo “Learning 
Pharase Representations using RNN Encoder-Decoder for Statistical Machine 
Translation”, kể từ đó đã trở thành mô hình cho các hệ thống đối thoại (Dialogue 
Systems) và Máy dịch (Machine Translation). 
Như vậy, chúng ta đã có thể hiểu được cơ bản về mô hình chuỗi sang chuỗi, 
chúng ta có thể xem xét làm thế nào để xây dựng được một mô hình dịch sử dụng 
mạng nơ-ron: Với bộ mã hóa, sẽ sử dụng một mạng RNN. Mạng này sẽ xử lý 
chuỗi đầu vào, sau đó chuyển nó thành chuỗi đầu ra của nó vào bộ giải mã decoder 
như một biến ngữ cảnh. Với bộ giải mã, cũng sử dụng một mạng RNN. Nhiệm vụ 
của nó là xem kết quả được dịch, và sau đó cố gắng dự đoán từ tiếp theo trong 
chuỗi được giải mã khi đã biết được từ hiện tại trong chuỗi đã được dịch. Sau khi 
huấn luyện, mô hình có thể dịch bằng việc mã hóa câu mà chúng ta muốn dịch và 
sau đó chạy mạng ở chế độ sinh văn bản. Mô hình chuỗi sang chuỗi được mô 
phỏng như hình dưới đây: 
37 
Hình 3.3: Mô hình chuỗi liên tiếp (chuỗi sang chuỗi) seq2seq. 
Mô hình chuỗi sang chuỗi, bộ mã hóa sinh ra một chuỗi các trạng thái. Bộ 
giải mã là một mô hình ngôn ngữ với một tham số bổ sung cho các trạng thái cuối 
cùng của bộ mã hóa. 
Như vậy, chúng ta đã thấy được một mô hình ngôn ngữ đơn giản cho phép 
chúng ta mô hình hóa các chuỗi đơn giản bằng việc dự đoán tiếp theo trong một 
chuỗi khi cho một từ trước đó trong chuỗi. Thêm nữa là chúng ta đã thấy quá trình 
xây dựng một mô hình phức tạp có phân tách các bước như mã hóa một chuỗi đầu 
vào thành một bối cảnh, và sinh một chuỗi đầu ra bằng việc sử dụng một mạng 
nơ-ron tách biệt. Trong phần sau sẽ trình bày cách thiết kế một mô hình đối thoại 
dựa vào mô hình chuỗi sang chuỗi seq2seq. 
3.3 Mô hình trả lời tự động 
Bản thân mô hình seq2seq nó bao gồm hai mạng RNN: Một cho bộ mã hóa, 
và một cho bộ giải mã. Bộ mã hóa nhận một chuỗi (câu) đầu vào và xử lý một 
phần tử (từ trong câu) tại mỗi bước. Mục tiêu của nó là chuyển đổi một chuỗi các 
phần tử vào một vectơ đặc trưng có kích thước cố định mà nó chỉ mã hóa thông 
tin quan trọng trong chuỗi và bỏ qua các thông tin không cần thiết. Có thể hình 
38 
dung luồng dữ liệu trong bộ mã hóa dọc theo trục thời gian, giống như dòng chảy 
thông tin cục bộ từ một phần tử kết thúc của chuỗi sang chuỗi khác. 
Hình 3.4: Mô hình đối thoại seq2seq. 
Mỗi trạng thái ẩn ảnh hưởng đến trạng thái ẩn tiếp theo và trạng thái ẩn cuối 
cùng được xem như tích lũy tóm tắt về chuỗi. Trạng thái này được gọi là bối cảnh 
hay vevtơ suy diễn, vì nó đại diện cho ý định của chuỗi. Từ bối cảnh đó, các bộ 
giải mã tạo ra một chuỗi, một phần tử (word) tại một thời điểm. Ở đây, tại mỗi 
bước, các bộ giải mã bị ảnh hưởng bởi bối cảnh và các phần tử được sinh ra trước 
đó. 
3.4 Một số đặc điểm khi xây dựng hệ thống trả lời tự động 
Có một số thách thức thể hiện một cách rõ ràng hoặc không thể thấy rõ khi 
xây dựng một mô hình đối thoại nói chung đang là tâm điểm được chú ý bởi nhiều 
nhà nghiên cứu. 
3.4.1. Phụ thuộc bối cảnh 
Để sinh ra các câu trả lời hợp lý, các hệ thống đối thoại cần phải kết hợp 
với cả hai bối cảnh ngôn ngữ và bối cảnh vật lý. Trong các hội thoại dài, người 
nói cần theo dõi và nhớ được những gì đã được nói và những thông tin gì đã được 
trao đổi. Đó là một ví dụ về bối cảnh ngôn ngữ. Phương pháp tiếp cận phổ biến 
nhất là nhúng cuộc hội thoại vào một Vector, nhưng việc làm này đối với đoạn 
39 
hội thoại dài là một thách thức lớn. Các thử nghiệm trong nghiên cứu [3], [15] đều 
đi theo hướng này. Hướng nghiên cứu này cần kết hợp các loại bối cảnh như: 
Ngày/ giờ, địa điểm, hoặc thông tin về một người. 
3.4.2. Kết hợp tính cách 
Khi phát sinh các câu trả lời, các hệ thống trợ lý ảo lý tưởng là tạo ra câu 
trả lời phù hợp với ngữ nghĩa đầu vào cần nhất quán giống nhau. Ví dụ, chúng ta 
muốn nhận được câu trả lời với mẫu hỏi “Bạn bao nhiêu tuổi” hay “Tuổi của bạn 
là mấy”. Điều này nghe có vẻ đơn giản, nhưng việc tổng hợp, tích hợp các kiến 
thức nhất quán hay “có tính cách” vào trong các mô hình đối thoại là một vấn đề 
rất khó để nghiên cứu. 
Rất nhiều các hệ thống được huấn luyện để trả lời câu hỏi thỏa đáng với 
ngôn ngữ, nhưng chúng không được huấn luyện để sinh ra các câu trả lời nhất 
quán về ngữ nghĩa. Mô hình như thế đang được nghiên cứu trong [10], tạo ra 
những bước đầu tiên tập trung vào hướng mô hình hóa tính cách. 
3.5 Các vấn đề khó khăn khi trả lời tự động bằng Tiếng Việt 
Theo tác giả vấn đề khó khăn nhất khi xây dựng một hệ thống trả lời tự 
động đó là vấn đề xử lý Tiếng Việt. Tiếng Việt thuộc ngôn ngữ đơn lập, tức là 
mỗi một tiếng (âm tiết) được phát âm tách rời nhau và được thể hiện bằng một 
chữ viết. Đặc điểm này thể hiện rõ rệt ở tất cả các mặt ngữ âm, từ vựng, ngữ pháp. 
Dưới đây trình bày một số đặc điểm của tiếng Việt theo các tác giả ở Trung tâm 
ngôn ngữ học Việt Nam đã trình bày [30]. 
3.5.1 Đặc điểm ngữ âm 
Tiếng Việt có một loại đơn vị đặc biệt gọi là “tiếng”, về mặt ngữ âm, mỗi 
tiếng là một âm tiết. Hệ thống âm vị tiếng Việt phong phú và có tính cân đối, tạo 
ra tiềm năng của ngữ âm tiếng Việt trong việc thể hiện các đơn vị có nghĩa. Nhiều 
từ tượng hình, tượng thanh có giá trị gợi tả đặc sắc. Khi tạo câu, tạo lời, người 
Việt rất chú ý đến sự hài hoà về ngữ âm, đến nhạc điệu của câu văn. 
40 
3.5.2 Đặc điểm từ vựng: 
Mỗi tiếng nói chung là một yếu tố có nghĩa. Tiếng là đơn vị cơ sở của hệ 
thống các đơn vị có nghĩa của tiếng Việt. Từ tiếng, người ta tạo ra các đơn vị từ 
vựng khác để định danh sự vật, hiện tượng..., chủ yếu nhờ phương thức ghép và 
phương thức láy. 
Việc tạo ra các đơn vị từ vựng ở phương thức ghép luôn chịu sự chi phối 
của quy luật kết hợp ngữ nghĩa, ví dụ: sinh viên, đất nước, máy bay, nhà lầu xe 
hơi, nhà tan cửa nát... Hiện nay, đây là phương thức chủ yếu để sản sinh ra các 
đơn vị từ vựng. Theo phương thức này, tiếng Việt triệt để sử dụng các yếu tố cấu 
tạo từ thuần Việt hay vay mượn từ các ngôn ngữ khác để tạo ra các từ, ngữ mới, 
ví dụ như tiếp thị, karaoke, thư điện tử (e-mail), thư thoại (voice mail), phiên bản 
(version), xa lộ thông tin, siêu liên kết văn bản, truy cập ngẫu nhiên, v.v. 
Việc tạo ra các đơn vị từ vựng ở phương thức láy thì quy luật phối hợp ngữ 
âm chi phối chủ yếu việc tạo ra các đơn vị từ vựng, chẳng hạn như chôm chỉa, 
chỏng chơ, đỏng đa đỏng đảnh, thơ thẩn, lúng lá lúng liếng, v.v. 
Vốn từ vựng tối thiểu của tiếng Việt phần lớn là các từ đơn tiết (một âm 
tiết, một tiếng). Sự linh hoạt trong sử dụng, việc tạo ra các từ ngữ mới một cách 
dễ dàng đã tạo điều kiện thuận lợi cho sự phát triển vốn từ, vừa phong phú về số 
lượng, vừa đa dạng trong hoạt động. Cùng một sự vật, hiện tượng, một hoạt động 
hay một đặc trưng, có thể có nhiều từ ngữ khác nhau biểu thị. Tiềm năng của vốn 
từ ngữ tiếng Việt được phát huy cao độ trong các phong cách chức năng ngôn 
ngữ, đặc biệt là trong phong cách ngôn ngữ nghệ thuật. Hiện nay, do sự phát triển 
vượt bậc của khoa học-kĩ thuật, đặc biệt là công nghệ thông tin, thì tiềm năng đó 
còn được phát huy mạnh mẽ hơn. 
3.5.3 Đặc điểm ngữ pháp 
41 
Từ của tiếng Việt không biến đổi hình thái. Đặc điểm này sẽ chi phối các 
đặc điểm ngữ pháp khác. Khi từ kết hợp từ thành các kết cấu như ngữ, câu, tiếng 
Việt rất coi trọng phương thức trật tự từ và hư từ. 
Việc sắp xếp các từ theo một trật tự nhất định là cách chủ yếu để biểu thị 
các quan hệ cú pháp. Trong tiếng Việt khi nói “Sinh viên học giỏi” là khác với 
“Học giỏi sinh viên”. Khi các từ cùng loại kết hợp với nhau theo quan hệ chính 
phụ thì từ đứng trước giữ vai trò chính, từ đứng sau giữ vai trò phụ. Nhờ trật tự 
kết hợp của từ mà "củ cải" khác với "cải củ", "tình cảm" khác với "cảm tình". Trật 
tự chủ ngữ đứng trước, vị ngữ đứng sau là trật tự phổ biến của kết cấu câu tiếng 
Việt. 
Phương thức hư từ cũng là phương thức ngữ pháp chủ yếu của tiếng Việt. 
Nhờ hư từ mà tổ hợp “anh của em” khác với tổ hợp “anh và em”, “anh vì em”. 
Hư từ cùng với trật tự từ cho phép tiếng Việt tạo ra nhiều câu cùng có nội dung 
thông báo cơ bản như nhau nhưng khác nhau về sắc thái biểu cảm. Ví dụ, so sánh 
các câu sau đây: 
- Tôi đang học bài. 
- Bài, tôi đang học. 
- Bài, tôi cũng đang học. 
Ngoài trật tự từ và hư từ, tiếng Việt còn sử dụng phương thức ngữ điệu. 
Ngữ điệu giữ vai trò trong việc biểu hiện quan hệ cú pháp của các yếu tố trong 
câu, nhờ đó nhằm đưa ra nội dung muốn thông báo. Trên văn bản, ngữ điệu thường 
được biểu hiện bằng dấu câu. Sự khác nhau trong nội dung thông báo được nhận 
biệt khi so sánh hai câu sau: 
- Đêm hôm qua, cầu gãy. 
- Đêm hôm, qua cầu gãy. 
Kết luận: Qua một số đặc điểm nổi bật vừa nêu trên đây, chúng ta có thể hình 
dung được phần nào bản sắc và tiềm năng của tiếng Việt. 
42 
CHƯƠNG 4: XÂY DỰNG HỆ THỐNG TRAO ĐỔI THÔNG TIN TRỰC 
TUYẾN GIỮA SINH VIÊN VỚI NHÀ TRƯỜNG TẠI TRƯỜNG ĐẠI HỌC 
CÔNG NGHIỆP HÀ NỘI 
4.1 Lựa chọn bài toán 
Trường Đại học Công nghiệp Hà Nội (ĐHCNHN) hiện tại đang đào tạo 
trên 60000 sinh viên với nhiều ngành nghề đào tạo (Tiến sĩ, Thạc sĩ, Đại học chính 
quy, Cao đẳng , Trung cấp chuyên nghiệp, Đào tạo Sau đại học, Đào tạo nghề), 
với 3 cơ sở chính đào tạo có vị trí cách xa nhau Cơ sở 1 (Số 298 đường Cầu Diễn, 
quận Bắc Từ Liêm, thành phố Hà Nội), Cơ sở 2 (Phường Tây Tựu, quận Bắc Từ 
Liêm, thành phố Hà Nội), Cơ sở 3 (Phường Lê Hồng Phong và xã Phù Vân, thành 
phố Phủ Lý, tỉnh Hà Nam) và có hơn 30 cơ sở liên kết đào tạo ngoài trường. 
Để nâng cao chất lượng giảng dạy của cán bộ, giáo viên cũng như kết quả 
học tập của học sinh, sinh viên trong trường nhà trường đã đầu tư xây dựng một 
cổng thông tin điện tử nhằm giúp sinh viên tra cứu thông tin và gửi thắc mắc liên 
quan đến quá trình học tập và rèn luyện của sinh viên qua mạng internet. Tuy 
nhiên việc giải đáp thắc mắc của toàn bộ sinh viên gặp phải một số khó khăn do 
hiện tại bộ phận trả lời được nằm tại nhiều cơ sở, nhiều phòng ban, sinh viên chủ 
yếu sử dụng các kênh thông tin không chính thức như Facebook, gây nên hiện 
tượng không tìm được câu trả lời thỏa đáng. Nhu cầu giải đáp phục vụ cho quá 
trình nghiên cứu và học tập của sinh viên còn gặp nhiều khó khăn nên trường 
ĐHCNHN đã xây dựng hệ thống giải đáp trực tuyến nhằm giúp giải đáp sinh viên 
một cách nhanh chóng và thiết thực. 
Việc tin học hóa cổng hỏi đáp đã giúp việc quản lý việc học tập và trao đổi 
trong nhà trường trở nên thuận tiện hơn, giúp cán bộ, giáo viên, học sinh, sinh 
viên trong trường giải quyết được những thắc mắc giúp học tập đạt kết quả tốt 
hơn, do đó yêu cầu đặt ra cần phải xây dựng một hệ thống trao đổi thông tin trực 
tuyến trong nhà trường có thể tự động phân luồng câu hỏi một cách chính xác từ 
người hỏi đến đúng người có khả năng trả lời là cấp thiết. 
4.2 Quy trình trao đổi thông tin (hỏi đáp trực tuyến) giữa HSSV với Nhà trường tại Trường Đại học Công nghiệp 
Hà Nội 
4.2.1 Quy trình áp dụng 
44 
Hình 4.1. Quy trình áp dụng 
4.2.2 Mô tả quy trình áp dụng 
Bảng 4.1 Mô tả quy trình áp dụng 
Stt Bước thực hiện Người thực hiện Nội dung thực hiện Kết quả thực hiện 
Biểu mẫu/ Hồ 
sơ 
1 Thiết lập hệ thống 
Quản trị hệ 
thống 
Quản trị hệ thống thiết lập hệ thống trao đổi thông 
tin giữa học sinh sinh viên với nhà trường. Phân 
quyền, chức năng cho các đơn vị, bộ phận liên 
quan đến hệ thống 
Phân quyền, thiết lập 
chức năng cho các bộ 
phận liên quan 
2 Xác định đơn vị trả lời HSSV Ban giám hiệu 
Ban giám hiệu xác định đơn vị trả lời thắc mắc 
của học sinh sinh viên 
Các đơn vị trả lời học 
sinh sinh viên được 
xác định 
3 
Xây dựng luật 
và huấn luyện 
máy 
P. CTHSSV 
và Cá nhân/ 
Đơn vị trả lời 
Phòng Công tác học sinh sinh viên và cá nhân/đơn 
vị được phân công trả lời xây dựng luật (các câu 
hỏi, tình huống thường gặp...) huấn luyện máy 
Luật và huấn luyện 
máy được thiết lập 
4 Máy học Quản trị hệ thống Máy học căn cứ vào luật ở bước trên 
5 Cơ sở dữ liệu Quản trị hệ thống Quản trị hệ thống thiết lập cơ sở dữ liệu 
Cơ sở dữ liệu được 
thiết lập 
6 Cơ sở dữ liệu tri thức 
Quản trị hệ 
thống Quản trị hệ thống thiết lập cơ sở dữ liệu tri thức 
Cơ sở dữ liệu tri thức 
được thiết lập 
7 Kênh trao đổi thông tin 
Quản trị hệ 
thống 
Quản trị hệ thống thiết lập kênh trao đổi thông tin 
cho phép học sinh sinh viên đặt câu hỏi, các đơn 
vị được phân công trả lời sinh viên 
Kênh trao đổi thông 
tin được thiết lập 
45 
8 Đặt câu hỏi HSSV Học sinh sinh viên đặt câu hỏi trên hệ thống trao đổi thông tin 
Học sinh sinh viên đặt 
câu hỏi 
9 Kiểm tra nội dung câu hỏi HSSV 
Bước này kiểm tra nội dung câu hỏi của học sinh 
sinh viên xem có hợp lệ hay không 
Nếu hợp lệ chuyển 
bước 11, nếu không 
hợp lệ chuyển bước 
10 
Mẫu phiếu thu 
hồ sơ 
10 
Thông báo câu 
hỏi không hợp 
lệ 
HSSV Học sinh sinh viên được thông báo câu hỏi không hợp lệ Đặt câu hỏi khác 
11 Tiếp nhận nội dung câu hỏi P. CTHSSV 
Phòng Công tác học sinh sinh viên tiếp nhận nội 
dung câu hỏi của học sinh sinh viên 
Nội dung câu hỏi 
được tiếp nhận 
12 
Kiểm tra có sẵn 
trong cơ sở dữ 
liệu tri thức 
P. CTHSSV 
Phòng Công tác học sinh sinh viên kiểm tra xem 
câu hỏi có sẵn trong cơ sở dữ liệu tri thức hay 
không 
Nếu không chuyển 
bước 13, nếu có 
chuyển bước 14. 
13 
Thông báo 
không có trong 
cơ sở dữ liệu 
P. CTHSSV 
Phòng Công tác học sinh sinh viên kiểm tra và 
thông báo câu hỏi của học sinh sinh viên không có 
trong cơ sở dữ liệu tri thức 
Thông báo câu hỏi 
không có trong cơ sở 
dữ liệu tri thức 
Mẫu danh sách 
thí sinh đủ điều 
kiện nhập học 
14 
Xác định có câu 
trả lời/phân 
luồng 
P. CTHSSV 
Phòng Công tác học sinh sinh viên kiểm tra câu 
hỏi đã có trong cơ sở dữ liệu tri thức. Xác định 
phân luồng hay trả lời câu hỏi. 
Nếu xác định phân 
luồng chuyển bước 
15, nếu đã có câu trả 
lời chuyển bước 23 
15 Hiển thị đơn vị trả lời P. CTHSSV 
Phòng Công tác học sinh sinh viên hiển thị đơn vị 
trả lời câu hỏi của học sinh sinh viên 
Đơn vị trả lời câu hỏi 
của học sinh sinh viên 
được hiển thị 
16 Có thể trả lời trực tiếp P. CTHSSV 
Bước này kiểm tra có thể trả lời trực tiếp sinh viên 
hay không 
Nếu trả lời trực tiếp 
chuyển bước 26, nếu 
không chuyển bước 
17 
46 
17 
Chuyển đến cá 
nhân/đơn vị trả 
lời 
P. CTHSSV 
Phòng Công tác học sinh sinh viên chuyển câu hỏi 
của sinh viên đến cá nhân/đơn vị được phân công 
trả lời 
Câu hỏi được chuyển 
đến các cá nhân/đơn 
vị trả lời 
18 Tiếp nhận câu hỏi và xác nhận 
Cá nhân/đơn 
vị trả lời Cá nhân/ Đơn vị trả lời tiếp nhận câu hỏi 
Câu hỏi được tiếp 
nhận 
19 Trả lời trực tiếp Cá nhân/đơn vị trả lời 
Bước này kiểm tra câu hỏi xem có thể trả lời trực 
tiếp không 
Nếu có thể trả lời trực 
tiếp chuyển bước 22, 
nếu không chuyển 
bước 20 
20 Hẹn ngày trả lời Cá nhân/đơn vị trả lời Cá nhân/ Đơn vị trả lời hẹn ngày trả lời sinh viên 
Sinh viên nhận được 
ngày hẹn trả lời 
21 Xem thông tin lịch hẹn HSSV Học sinh sinh viên kiểm tra thông tin lịch hẹn 
Sinh viên xem thông 
tin lịch hẹn 
22 Trả lời câu hỏi Cá nhân/đơn vị trả lời 
Cá nhân/Đơn vị trả lời trả lời câu hỏi của sinh 
viên 
Câu hỏi của sinh viên 
được trả lời 
Mẫu hoá đơn 
nhập học 
23 Hiển thị nội dung trả lời P. CTHSSV 
Phòng Công tác học sinh sinh viên hiển thị nội 
dung trả lời câu hỏi của sinh viên 
Nội dung câu trả lời 
được hiển thị 
24 Chấp nhận câu trả lời P. CTHSSV 
Bước này kiểm tra xem nội dung câu trả lời có 
được chấp nhận hay không 
Nếu chấp nhận 
chuyển bước 27, nếu 
không chuyển bước 
25 
25 Có thể hiệu chỉnh P. CTHSSV 
Phòng Công tác học sinh sinh viên kiểm tra có thể 
chỉnh sửa câu trả lời hay không 
Nếu có chuyển bước 
26, nếu không chuyển 
bước 17 
26 Chỉnh sửa nội dung trả lời P. CTHSSV 
Phòng Công tác học sinh sinh viên chỉnh sửa lại 
nội dung trả lời cho câu hỏi 
Nội dung trả lời được 
chỉnh sửa 
27 Công bố câu trả lời P. CTHSSV 
Phòng Công tác học sinh sinh viên công bố câu trả 
lời 
Câu trả lời được công 
bố 
47 
28 Xem nội dung trả lời HSSV Học sinh sinh viên xem nội dung câu trả lời 
Nội dung câu trả lời 
được hiển thị 
29 Thỏa mãn câu hỏi HSSV 
Học sinh sinh viên xem câu trả lời, kiểm tra xem 
nội dung trả lời đã thỏa mãn với câu hỏi của mình 
chưa 
Nếu có chuyển bước 
30, nếu không quay 
lại bước 8 
30 Đánh giá mức hài lòng HSSV 
Học sinh sinh viên căn cứ nội dung câu trả lời 
nhận được, thời gian được hẹn trả lời... để đánh 
giá mức độ hài lòng 
Đánh giá mức độ hài 
lòng 
31 
Tổng hợp tình 
hình trao đổi 
thông tin 
P. CTHSSV 
Phòng Công tác học sinh sinh viên tổng hợp tình 
hình trao đổi thông tin giữa học sinh sinh viên và 
nhà trường 
Tổng hợp tình hình 
trao đổi thông tin Mẫu thống kê 
32 
Xem báo cáo 
tình hình trao 
đổi thông tin 
BGH và Cá 
nhân/đơn vị 
trả lời 
Ban giám hiệu và các cá nhân/đơn vị trả lời có thể 
xem được báo cáo tình hình trao đổi thông tin 
giữa học sinh sinh viên và nhà trường 
Xem báo cáo tình 
hình trao đổi thông tin 
33 Máy học tri thức mới 
Quản trị hệ 
thống Máy học các tri thức mới 
Tham khảo mẫu 
5,6 
34 
Tổng hợp và lưu 
cơ sở dữ liệu tri 
thức 
Quản trị hệ 
thống 
Quản trị hệ thống tổng hợp và lưu trữ cơ sở dữ 
liệu tri thức 
Tổng hợp, lưu trữ cơ 
sở dữ liệu tri thức 
4.3 Kiến trúc ứng dụng 
Mạng học sâu DNN - Deep Neural Networks là cách tiếp cận hiện đại của các 
thuật toán học máy. Các mô hình học sâu có kiến trúc tương tự mạng Nơ-ron nhưng 
khác về cách tiếp cận vấn đề, với ý tưởng cơ bản là dữ liệu tại mỗi lớp sẽ có mức độ 
trừu tượng hóa (khái quát) cao hơn bằng cách tổ hợp các dữ liệu có mức trừu tượng 
hóa thấp ở lớp trước. 
DNN rất mạnh bởi vì chúng có thể thực hiện tính toán song song tùy ý với một 
số lượng rất ít các bước. Hơn nữa, Mạng DNN lớn có thể được huấn luyện với lan 
truyền ngược giám sát bất cứ khi nào tập huấn luyện được dán nhãn có đủ thông tin 
để xác định các thông số của mạng. Do đó, nếu có tồn tại một thiết lập thông số của 
một DNN lớn mà đạt được kết quả tốt, giám sát lan truyền ngược sẽ tìm thấy những 
thông số và giải quyết vấn đề. 
Trong luận văn này, chúng tôi cho thiết kế một ứng dụng đơn giản dựa vào 
kiến trúc Long ShortTerm Memory (LSTM) [33] có thể giải quyết các vấn đề chuỗi 
tuần tự liên tiếp sequence-to-sequence. Ý tưởng là sử dụng một mạng LSTM để đọc 
chuỗi đầu vào, một bước thời gian tại một thời điểm, để có được biểu diễn vector 
kích thước cố định, và sau đó sử dụng một mạng LSTM để trích xuất các trình tự đầu 
ra từ vector đó (hình 4.2). Mạng LSTM thứ hai về cơ bản là một mạng nơ-ron tái 
phát dựa trên mô hình ngôn ngữ [34, 35], ngoại trừ việc nó được bổ sung thêm các 
điều kiện trên các chuỗi đầu vào. LSTM có khả năng học thành công trên dữ liệu phụ 
thuộc thời gian tầm xa, làm cho nó trở thành một sự lựa chọn tự nhiên cho ứng dụng 
này do độ có trễ thời gian đáng kể giữa các đầu vào và đầu ra tương ứng của 
chúng (hình 4.2). 
49 
Hình 4.2: Kiến trúc mô hình đối thoại cho tiếng Việt 
Kiến trúc mô hình trên chúng tôi dựa vào kết quả nghiên cứu của Lê Viết 
Quốc cho bài toán hỏi đáp bằng tiếng Anh, trong [11], chúng tôi cũng sử dụng mô 
hình này sẽ đọc một câu đầu vào tiếng Việt, ví dụ: “A B C” và sinh ra ra một câu 
tiếng Việt đầu ra “W X Y Z”. Mô hình sẽ dừng dự đoán sau khi sản xuất ra một 
mã hiệu kết thúc câu . Lưu ý, mạng LSTM đọc câu đầu vào theo hướng 
ngược lại, bởi vì làm như vậy sẽ đưa ra nhiều các phụ thuộc ngắn hạn trong các 
dữ liệu mà làm cho các vấn đề được tối ưu hơn nhiều. 
Tiếp cận của chúng tôi sử dụng một khung làm việc sequence-to-sequence 
(seq2seq) được mô tả trong [10]. Mô hình này dựa trên một mạng nơ-ron tái phát, 
mà sẽ đọc chuỗi đầu vào tuần tự, một dấu hiệu (token) tại mỗi thời điểm, và dự đoán 
chuỗi đầu ra, cũng một dấu hiệu tại một thời điểm. Trong suốt thời gian huấn luyện, 
chuỗi tuần tự đầu ra được đưa vào mô hình, và việc học có thể hoàn tất bởi quá trình 
lan truyền ngược. Mô hình này được huấn luyện để cực đại hóa cross entropy theo 
đúng tuần tự cho bối cảnh của nó. Trong quá trình suy luận, mô hình cho chuỗi đầu 
ra đúng mà không quan sát được, bằng cách đơn giản chúng tôi nạp vào dấu hiệu 
token đã được dự đoán làm đầu vào để dự đoán dấu hiệu đầu ra tiếp theo. Đây là một 
phương pháp suy luận "tham lam". Một cách tiếp cận ít tham lam sẽ được sử dụng 
tìm kiếm Beam Search, đây là thuật toán tìm kiếm mà có thể phát hiện ra một đồ thị 
bằng việc mở rộng các nút tiềm năng trong một tập có giới hạn, bằng cách nạp một 
vài ứng cử viên ở các bước trước vào bước tiếp theo. Một chuỗi được dự đoán có thể 
được chọn dựa trên xác suất của chuỗi. 
50 
Cụ thể, giả sử rằng chúng ta quan sát một cuộc trò chuyện với hai lượt: người 
đầu tiên thốt ra “A B C”, và người thứ hai trả lời “W X Y Z”. Chúng tôi có thể sử 
dụng một mạng nơ-ron tái phát, và huấn luyện để ánh xạ “ABC” sang “WXYZ” như 
trên hình 4.2 ở trên. Các trạng thái ẩn của mô hình khi đó nhận được ký tự kết thúc 
chuỗi , có thể được xem như là vector ngưỡng uy nghĩ vì nó lưu trữ các thông 
tin của câu, hoặc nghĩ, “A B C”. 
Thế mạnh của mô hình này nằm ở sự đơn giản và tính tổng quát của nó. 
Chúng ta có thể sử dụng mô hình này cho Máy dịch, Hỏi đáp, và các cuộc trò chuyện 
mà không cần thay đổi nhiều trong kiến trúc. Việc áp dụng kỹ thuật này để mô hình 
hóa cuộc đối thoại cũng rất đơn giản: các chuỗi đầu vào có thể được nối bối cảnh đã 
được trò chuyện với chuỗi đầu ra là câu trả lời. 
Không giống như các nhiệm vụ đơn giản hơn như dịch thuật, tuy nhiên, 
một mô hình như sequence-to-sequence sẽ không thể “giải quyết” thành công vấn đề 
của việc mô hình hóa đối thoại do: các hàm mục tiêu được tối ưu hóa không nắm bắt 
được mục tiêu thực tế cần đạt được thông qua giao tiếp của con người, mà thường là 
thông tin dài hạn và dựa trên trao đổi thông tin chứ không phải là dự đoán bước tiếp 
theo. Việc thiếu một mô hình để đảm bảo tính thống nhất và kiến thức nói chung 
cũng là một hạn chế rõ ràng của một mô hình hoàn toàn không có giám sát. 
4.4 Cài đặt hệ thống 
4.4.1 Mô hình cài đặt 
Mạng nơ-ron tái phát RNN [36, 37] là một mạng tổng quát của các mạng 
nơ-ron truyền thẳng cho các chuỗi tuần tự. Với mỗi chuỗi đầu vào (x1,  , xT) , là 
một mạng RNN chuẩn sẽ tính toán một chuỗi các kết quả đầu ra (y1,  , yT) , bằng 
cách duyệt phương trình sau: 
ℎ௧ = 𝑠𝑖𝑔𝑚(𝑊௫𝑥௧ + 𝑊ℎ௧ିଵ) 
51 
𝑦௧ = 𝑊௬ℎ௧ 
Mạng RNN có thể dễ dàng ánh xạ tuần tự chuỗi bất cứ khi nào sự liên kết giữa 
đầu vào và đầu ra được biết đến trước khi hết hạn. Tuy nhiên, nó không là cách rõ 
ràng để áp dụng một mạng RNN cho các vấn đề mà đầu vào và đầu ra có độ dài khác 
nhau với các mối quan hệ phức tạp và không đơn điệu (thay đổi). Cách làm đơn giản 
nhất cho việc học chuỗi nói chung là ánh xạ chuỗi đầu vào thành một vector có kích 
thước cố định sử dụng một mạng RNN và sau đó, ánh xạ vector vào chuỗi đích sử 
dụng một mạng RNN khác (cách làm này được thực hiện bởi Kyunghyun Cho và 
cộng sự [36]). Trong khi nó có thể hoạt động trên nguyên tắc kể từ khi RNN được 
cung cấp với tất cả các thông tin liên quan, nó sẽ gặp khó khăn trong việc huấn luyện 
do sự phụ thuộc thời gian dài [33, 38]. Tuy nhiên, mạng LSTM [33] có thể học các 
vấn đề phụ thuộc thời gian dài, vì vậy, sử dụng mạng LSTM có thể thành công trong 
trường hợp này. 
Mục tiêu của LSTM là để ước lượng xác suất có điều kiện 
𝑝(𝑦ଵ,  , 𝑦் , |𝑥ଵ,  , 𝑥்) trong đó (x1,  , xT) là một chuỗi đầu vào và (y1,  , yT’) là 
chuỗi đầu ra tương ứng của nó có chiều dài T’có thể khác nhau từ T. Mạng LSTM 
tính xác suất có điều kiện này bằng cách có được thông tin đại diện mà số chiều cố 
định ῡ của chuỗi đầu vào (x1,  , xT) được tính bởi các trạng thái ẩn 
cuối cùng của mạng LSTM, và sau đó tính toán xác suất của (y1,  , yT’) ới một 
công thức LSTM-LM tiêu chuẩn mà ban đầu trạng thái ẩn được thiết lập để đại 
diện ῡ của (x1,  , xT): 
𝑝(𝑦ଵ,  , 𝑦்ᇲ|𝑥ଵ,  , 𝑥்) = ෑ 𝑝(𝑦௧|𝑣, 𝑦ଵ,  , 𝑦௧ିଵ)
்ᇲ
௧ୀଵ
Trong phương trình này, mỗi phân phối xác suất 𝑝(𝑦ଵ,  , 𝑦் , |𝑥ଵ,  , 𝑥்) được 
biểu diễn bởi một hàm softmax trên tất cả từ trong từ vựng. Sử dụng công thức LSTM 
52 
của Graves, trong [37]. Chú ý là mỗi câu kết thúc với một ký hiệu đặc biệt end-of-
sentence “”, cho phép mô hình để xác định một phân phối các chuỗi của tất 
cả các độ dài có thể. Xem lược đồ tổng quát trong hình 4.2, trong đó LSTM tính xác 
suất đại diện của “A”, “B”, “C”, “” và sau đó sử dụng đại diện này để tính 
xác xuất của “W”, “X”, “Y”, “Z”, “”. 
4.4.2 Môi trường cài đặt 
Cấu hình phần cứng, phần mềm các gói đi kèm thực nghiệm được sử dụng trong 
luận văn được mô tả trong hai bảng sau đây: 
Bảng 4.4: Thông tin phần cứng 
Stt Tên thiết bị Cấu hình Ghi chú 
1 
Máy chủ xử lý 
tính toán 
Máy chủ GPU: BL460c Gen9: 
Chip: 2xE5-2680 v3/12Core 2.5Ghz 
Ram: 128G DDR4 RAM 
Ổ cứng: 02x300G SAS 10K 
Chíp GPU: VIDIA Grid K2 PCIe GPU 
2 
Máy chủ xử lý 
dữ liệu 
Máy chủ ứng dụng: BL460c Gen9: 
ChiP; 2xE5-2680 v3/12Core 2.5Ghz 
RAM: 128G DDR4 RAM 
Ổ cứng: 
- 02x300G SAS 10K 
- HP 300GB 12G SAS 10K 2.5in SC ENT 
HDD 
3 Máy tính lập 
trình 
Dell Inspiron 5378 
Chip: Intel Kaby Lake Core i7 - 7500U 
Ram: 8GB DDR4 
Ổ cứng: SSD 256GB 
53 
Bảng 4.5: Các công cụ phần mềm được sử dụng 
Stt Tên phần mềm Chức năng Nguồn 
1 
TensorFlow https://www.tensorflow.o
rg/ 
2 Keras https://keras.io/ 
3 Anaconda https://anaconda.org/ 
4 
Word2vec https://github.com/dav/w
ord2vec 
5 
GloVe https://nlp.stanford.edu/pr
ojects/glove/ 
6 
Visual Studio 
2017 
Công cụ lập trình https://www.visualstudio.
com/downloads/ 
7 
Microsoft SQL 
Server 2012 
Hệ quản trị cơ sở dữ liệu https://www.microsoft.co
m/en-
us/download/details.aspx
?id=29062 
8 
Windows 10 Hệ điều hành máy tính lập 
trình 
https://www.microsoft.co
m/en-
us/download/windows.as
px 
9 
Windows Server 
2013 
Hệ điều hành máy chủ https://www.microsoft.co
m/en-
us/download/windows.as
px 
10 
UETSegmenter https://github.com/phong
nt570/UETsegmenter 
54 
4.4.3 Công cụ cài đặt 
- Sử dụng công cụ phân tách tự xây dựng trên nền tảng Visual Studio 2017. Cơ sở 
dữ liệu lưu trên hệ quản trị cơ sở dữ liệu Microsoft Server 2012. 
- Công cụ giao tiếp trả lời trực tuyến tự xây dựng trên nền tảng Asp.net 4.5 
- Ứng dụng giao diện trên nền web gồm: HTML5, CSS, JQuery, Bootstrap, 
Websocket. 
4.5 Kết quả đạt được 
 Để xây dựng hệ thống trả lời tự động cho nhà trường chúng tôi đã thu thập các 
câu hỏi và câu trả lời từ hệ thống hỏi đáp cũ của nhà trường thu được tổng số 8500 
câu hỏi chủ yếu qua hệ thống  
Sau quá trình tiền xử lý dữ liệu thu nhận được 16.173 câu văn bản tiếng việt. Thực 
hiện công việc làm sạch dữ liệu qua các bước sau. 
 Loại bỏ các ký tự đặc biệt, không phải chữ hoặc số 
 Loại bỏ các thẻ html trong câu 
 Chuyển các câu từ ký tự in hoa về in thường 
 Chuyển đổi các bảng mã khác về chuẩn Unicode 
 Tiền xử lý dữ liệu: Chuẩn hóa lại một số câu hỏi và câu trả lời 
 Tách từ 
 Sử dụng word2vec chuyển đầu vào cho LSTM 
4.5.1 Một số kết quả 
55 
Giao diện của mô-đun tiếp nhận câu hỏi và tự động phân luồng 
Câu hỏi sau khi được hệ thống tiếp nhận sẽ được xử lý và chuyển đến bộ phận 
có liên quan trả lời. Trong trường hợp câu hỏi liên quan đến nhiều bộ phận thì sẽ cán 
bộ trong các bộ phận có thể chuyển tiếp câu hỏi đến bộ phận liên quan trả lời. 
Câu hỏi Trả lời 
Thầy cô cho e hỏi chút ạ, e có đưa e vừa 
thi xong muốn nộp hồ_sơ vào trường 
mà mình chưa biết là thủ_tục như thế 
nào, phải đến phòng_ban nào để nộp, và 
thời_gian làm_việc trong ngày và trong 
tuần với ạ. E xin cảm ơn :)) 
Em vào trang tuyển_sinh của 
nhà_trường để biết thông_tin nhé: 
https://tuyensinh.haui.edu.vn/ 
56 
Xin phép cho em hỏi lịch_thi lại môn 
vật_lý đại_cương hè này được không ạ! 
e cảm ơn! 
Em xem lịch_thi trên trang 
Xin phép các Thầy/Cô cho em hỏi vài 
vấn đề ạ. Em là học_sinh lớp KHMT2-
K9. vừa qua lớp em đã dự thi môn 
Xác_suất_thống_kê. Chúng em vừa biết 
điểm xong, nhiều bạn rất bức xúc vì 
điểm được chấm thật sự theo chúng em 
nghĩ chủ quan là chưa chính_xác với bài 
làm. Theo em được biết thì trung tâm 
QLCL có phần nộp đơn phúc_tra nhưng 
rất nhiều bạn nói rằng phúc_khảo thì 
điểm sẽ xuống ạ. Vì vậy em mong các 
Thầy/Cô có thể giải_thích cho em 
quy_trình phúc_khảo bài_thi sao cho 
công_khai minh_bạch với những sinh 
viên đã dự thi được không ạ. Và Sau khi 
phúc_khảo người xin phúc_khảo có 
được phúc_khảo tiếp lại lần đã phúc 
khảo không ạ? (giả sử người xin 
phúc_khảo vẫn chưa hết thắc_mắc). Và 
1 điều nữa là hôm_nay là ngày 15-02 
mới có điểm, mà thời gian chờ kết quả 
khi phúc tra là 10 ngày, trong khi 
lịch_thi lại là ngày 22-02 ạ. Em mong 
sớm nhận được phản hồi của Thầy/Cô ạ. 
Em xin chân thành cảm ơn Thầy/Cô 
trong ban QLCL ạ! 
Cám ơn em đã thông_tin. Câu_hỏi sẽ 
được chuyển đến bộ_phận 
Quản_lý_chất_lượng. 
Xin cho e hỏi làm thế nào để kiểm_tra 
mình đã hoàn_thành đủ tín_chỉ để đủ 
điều_kiện xét tốt_nghiệp chưa ạ? E xin 
cảm ơn 
Em đăng_nhập vào trang 
dttc.haui.edu.vn theo tài_khoản đc cấp 
để kiểm_tra nhé, nếu không đc em qua 
phòng Đào_tạo 105 - A2 để được thầy 
cô giải_đáp. 
Bây giờ muốn đăng_kí học kì_phụ thì 
làm thế nào ạ! 
Em nghiên_cứu quy_trình đăng_ký 
học kỳ phụ trên  
4.5.2 Hiệu năng 
Kết quả thực nghiệm dựa trên dữ liệu thu thập từ ngày 1/1/2013 đến nay 
57 
Mẫu dữ liệu câu hỏi được thu thập dựa trên hệ thống tiếp nhận câu hỏi và phân luồng. 
Việc đánh giá đạt dựa trên các kết quả đánh giá được xác định dựa trên đánh giá mức 
độ hài lòng của học sinh – sinh viên. 
Cụ thể như sau: 
- Sinh viên đăng nhập hệ thống và vào hệ thống tiếp nhận câu hỏi 
- Sinh viên đặt câu hỏi và hệ thống tự động phân luồng vào bộ phận liên quan 
tiếp nhận và trả lời. 
- Sinh viên sau khi nhận câu trả lời thì có phản hồi “Cảm ơn” hoặc lựa chọn 
chức năng đánh giá hài lòng (nhấn vào nút like). 
Độ đo xác định hiệu năng của giải pháp phân luồng câu hỏi được tính như sau: 
𝐻à𝑖 𝑙ò𝑛𝑔 =
𝑆ố 𝑙ầ𝑛 𝑝ℎâ𝑛 𝑙𝑢ồ𝑛𝑔 đượ𝑐 đá𝑛ℎ 𝑔𝑖á đạ𝑡
𝑇ổ𝑛𝑔 𝑠ố 𝑐â𝑢 ℎỏ𝑖
Hệ thống được đánh giá dựa trên 3 mẫu dữ liệu: 
Mẫu số 1 từ ngày 1/1/2013 đến 1/1/2014 gồm 1333 câu hỏi được phân luồng. 
Mẫu số 2 từ ngày 1/1/2014 đến 1/1/2015 gồm 2150 câu hỏi được phân luồng. 
Mẫu số 3 từ ngày 1/1/2015 đến 1/1/2016 gồm 1982 câu hỏi được phân luồng. 
Kết quả số lượng câu hỏi được đánh giá đạt và hiệu năng của hệ thống (mức độ hài 
lòng) được thể hiện ở các bảng sau: 
Mẫu 1: Từ dữ liệu ngày 1/1/2013 đến 1/1/2014 
Dữ liệu câu hỏi Đánh giá đạt Hài lòng 
1333 300 22,5% 
Mẫu 2: Từ dữ liệu ngày 1/1/2014 đến 1/1/2015 
Dữ liệu câu hỏi Đánh giá đạt Hài lòng 
2150 1220 56,7% 
58 
Mẫu 3: Từ dữ liệu ngày 1/1/2015 đến 1/1/2016 
Dữ liệu câu hỏi Đánh giá đạt Hài lòng 
1982 1349 68% 
Đánh giá kết quả thí nghiệm 
- Qua quá trình thử nghiệm trên hệ thống kiểm tra đánh giá của nhà trường nhận thấy 
phần lớn câu hỏi có độ dài >110 ký tự. 
- Các câu hỏi được phân luồng và trả lời đạt hiệu quả 60% khiến người dùng hài 
lòng. 
- Số câu “Cảm ơn” là 1619 câu (chiếm 56%) số đánh giá đạt 
- Trước khi thực hiện phân luồng câu hỏi, thời gian tiếp nhận và trả lời được thống 
kê trung bình là 180 phút. 
- Thời gian tiếp nhận câu hỏi và trả lời câu hỏi sau khi được phân luồng trung bình 
giảm được 90 phút mỗi ngày. 
- Theo đánh giá chủ quan thì số lượng thắc mắc của sinh viên trực tiếp tại các phòng 
ban liên quan đã giảm. 
- Việc tiếp nhận câu hỏi và giải đáp yêu cầu của sinh viên đã góp phần giúp nhà 
trường tuyên truyền và phổ biến được những kiến thức, văn hóa đến sinh viên nhanh 
chóng hơn, tiếp kiệm thời gian và nhân lực. 
59 
KẾT LUẬN 
1. Những kết quả chính của luận văn: 
Luận văn đã đạt được các kết quả chính sau đây: 
 Đưa ra được các lý thuyết và vấn đề gặp phải trong việc xây dựng hệ thống tự 
động phân luồng câu hỏi. 
 Nghiên cứu và ứng dụng mạng học sâu vào giải quyết bài toán phân luồng câu 
hỏi và trả lời câu hỏi tự động trực tuyến 
 Cài đặt hệ thống tự động phân luồng câu hỏi và hệ thống trả lời câu hỏi đã đạt 
được kết quả thực nghiệm đạt trên 50% người sử dụng hài lòng. 
 Phần mềm đưa vào ứng dụng giúp tiết kiệm chi phí cho nguồn nhân lực trong 
quá trình tiếp nhận và trả lời câu hỏi. 
 Tổng hợp các kết quả và hướng nghiên cứu về bài toán đã có thể đưa ra được 
trợ lý ảo tiếp nhận và hiểu được nhu cầu của sinh viên. 
 Có khả năng áp dụng vào các hệ thống tự động phân luồng câu hỏi khác như 
tư vấn bán hàng, tư vấn sức khỏe, ... 
2. Hướng phát triển của luận văn: 
 Tiếp tục triển khai mở rộng và thu thập nhiều câu hỏi hơn ở nhiều trường Đại 
học để có thể gia tăng sự huấn luyện, tăng độ chính xác. 
 Tiếp tục nghiên cứu các mô hình mạng học sâu giải quyết bài toán phân luồng 
câu hỏi và trả lời yêu cầu trực tuyến. 
 Tìm hiểu nhu cầu thực tế, cũng như tham khảo các ý kiến của chuyên gia để 
xây dựng chương trình áp dụng kỹ thuật đã nghiên cứu, bổ sung một số yếu tố 
khác để hoàn thiện hệ thống trả lời tự động đạt hiệu quả cao. 
60 
TÀI LIỆU THAM KHẢO 
[1] Nhữ Bảo Vũ, Nguyễn Văn Nam. XÂY DỰNG MÔ HÌNH ĐỐI THOẠI CHO 
TIẾNG VIỆT TRÊN MIỀN MỞ DỰA VÀO PHƯƠNG PHÁP HỌC CHUỖI LIÊN 
TIẾP. Khóa luận tốt nghiệp thạc sỹ CNTT 2016 
[2] Hồ Tú Bảo, Lương Chi Mai. Về xử lý tiếng Việt trong công nghệ thông tin, Viện 
Công nghệ Thông tin, Viện Khoa học và Công nghệ Tiên tiến Nhật bản. 
[3] Hà Quang Thụy & nhóm khai phá dữ liệu và ứng dụng. Bài giảng về khai phá dữ 
liệu, 2007 
[4] Walter S. Lasecki, Ece Kamar, Dan Bohus, Conversations in the Crowd: 
Collecting Data for Task-Oriented Dialog Learning 
[5] Alan Ritter, Colin Cherry, and Bill Dolan. 2010. “Unsupervised modeling of 
twitter conversations”. In Human Language Technologies: The 2010 Annual 
Conference of the North American Chapter of the Association for Computational 
Linguistics, HLT ’10, pages 17 
[6] Rafael E. Banchs and Haizhou Li. 2012. “Iris: a chat-oriented dialogue system 
based on the vector space model”. In Proceedings of the ACL 2012 System 
Demonstrations, pages 37–42, Jeju Island, Korea, July. Association for 
Computational Linguistics. 
[7] Karthik Narasimhan, Tejas Kulkarni, and Regina Barzilay. 2015. “Language 
understanding for text-based games using deep reinforcement learning”. In 
Proceedings of the 2015 Conference on Empirical Methods in Natural Language 
Processing, pages 1–11, Lisbon, 
[8] T.-H. Wen, D. Vandyke, N. Mrksic, M. Gasic, L. M. Rojas-Barahona, P.-H. Su, 
S. Ultes, and S. Young. 2016. A Network-based End-to-End Trainable Task-oriented 
Dialogue System. ArXiv eprints, April 
61 
[9] Heriberto Cuayahuitl. 2016. Simpleds: “A simple deep reinforcement learning 
dialogue system”. CoRR, abs/1601.04574 
[10] Ilya Sutskever, Oriol Vinyals, Quoc V. Le, 14 Dec 2014. “Sequence to Sequence 
Learning with Neural Networks” pp. 1–9. 
[11] Oriol Vinyals, Quoc Le, 22 Jul 2015. “A Neural Conversational Model” 
[12] Alessandro Sordoni, Michel Galley, Michael Auli, Chris Brockett, Yangfeng Ji, 
Margaret Mitchell, Jian-Yun Nie, Jianfeng Gao, Bill Dolan, 22 Jun 2015. “A Neural 
Network Approach to Context-Sensitive Generation of Conversational Responses” 
[13] Iulian V. Serban, Alessandro Sordoni, Yoshua Bengio, Aaron Courville, Joelle 
Pineau, 6 Apr 2016. “Building End-To-End Dialogue Systems Using Generative 
Hierarchical Neural Network Models”. 
[14] Jiwei Li, Michel Galley, Chris Brockett, Jianfeng Gao, and Bill Dolan. 2015. A 
diversitypromoting objective function for neural conversation models. arXiv preprint 
arXiv:1510.03055 
[15] Lester, J., Branting, K., and Mott, B, 2004. “Conversational agents. In 
Handbook of Internet Computing. Chapman & Hall”. 
[16] Will, T, 2007. “Creating a Dynamic Speech Dialogue”. VDM Verlag Dr. 
[17] Russell, S., Dewey, D., Tegmark, M. (2015). “Research Priorities for Robust 
and Beneficial Artificial Intelligence”. AI Magazine, 36 (4):105–114. 
[18] Alan M Turing. 1950. “Computing machinery and intelligence”. Mind, 
59(236):433–460. 
[19] Joseph Weizenbaum. 1966. “Elizaa computer program for the study of natural 
language communication between man and machine”. Communications of the ACM, 
9(1):36–45. 
62 
[20] Roger C Parkinson, Kenneth Mark Colby, and William S Faught. 1977. 
“Conversational language comprehension using integrated pattern-matching and 
parsing”. Artificial Intelligence, 9(2):111–134. 
[21] Richard S Wallace. 2009. “The anatomy of ALICE”. Springer. 
[22] Jurgen Schmidhuber. 2015. “Deep learning in neural networks: An overview. 
Neural Networks”, 61:85–117. 
[23] Yann LeCun, Yoshua Bengio, and Geoffrey Hinton. 2015. Deep learning. 
Nature, 521(7553):436–444. 
[24] Marilyn Walker, Grace Lin, and Jennifer Sawyer. 2012. “An annotated corpus 
of film dialogue for learning and characterizing character style”. In Nicoletta 
Calzolari, Khalid Choukri, Thierry Declerck, Mehmet Ugur Do ˘ gan, Bente 
Maegaard, Joseph ˘ Mariani, Jan Odijk, and Stelios Piperidis, editors, Proceedings 
of the Eighth International Conference on Language Resources and Evaluation 
(LREC-2012), pages 1373–1378, Istanbul, Turkey, May. European Language 
Resources Association (ELRA). ACL Anthology Identifier: L12-1657. 
[25] Francesca Bonin, Jose San Pedro, and Nuria Oliver. 2014. “A context-aware nlp 
approach for noteworthiness detection in cellphone conversations”. In COLING, 
pages 25–36. 
[26] Jaime Carbonell, Donna Harman, Eduard Hovy, and Steve Maiorano, John 
Prange and Karen Sparck-Jones. Vision Statement to Guide Research in Question & 
Answering (Q&A) and Text Summarization. Final version 1. 2000 
[27] P. Werbos, 1990. “Backpropagation through time: what it does and how to do 
it”. Proceedings of IEEE. 
[28] Sanda M. Harabagiu, Marius A. Paşca, Steven J. Maiorano. Experiments with 
open-domain textual Question Answering. International Conference On 
63 
Computational Linguistics Proceedings of the 18th conference on Computational 
linguistics – Volume 1, 2000, tr. 292 - 298 
[29] Eduard Hovy, Ulf Hermjakob and Lin, C.-Y. The Use of External Knowledge 
in Factoid QA. Paper presented at the Tenth Text REtrieval Conference (TREC 10), 
Gaithersburg, MD, 2001, November 13-16. 
[30] Trung tâm ngôn ngữ học Việt Nam. “Đặc điểm tiếng Việt”, 
[31] S. Hochreiter and J. Schmidhuber, 1997. “Long Short-Term Memory” Neural 
Computation, vol. 9, pp. 1735–1780. 
[32] T. Mikolov, M. Karafiát, L. Burget, J. Cernockỳ, and S. Khudanpur, 2010. 
“Recurrent neural network based language model”. In INTERSPEECH, 
pages 1045–1048. 
[33] M. Sundermeyer, R. Schluter, and H. Ney, 2010. “LSTM neural networks for 
language modeling”. In INTERSPEECH. 
[34] D. Rumelhart, G. E. Hinton, and R. J. Williams, 1986. “Learning representations 
by back-propagating errors”. Nature, 323(6088):533–536 
[35] Y. Bengio, P. Simard, and P. Frasconi, 1994. “Learning long-term dependencies 
with gradient descent is difficult”. IEEE Transactions on Neural Networks, 5(2):157–
166. 
[36] Kyunghyun Cho, Bart van Merrienboer, Caglar Gulcehre, Dzmitry Bahdanau, 
Fethi Bougares, Holger Schwenk, Yoshua Bengio, Sep 2014. “Learning Phrase 
Representations using RNN Encoder-Decoder for Statistical Machine Translation”. 
[37] A. Graves, 5 Jun 2014. “Generating sequences with recurrent neural networks”. 
In Arxiv preprint arXiv:1308.0850. 
64 
PHỤ LỤC 
Màn hình đăng nhập hệ thống 
Màn hình lựa chọn mô-đun trao đổi trực tuyến 
65 
Chức năng trao đổi trực tuyến 
Chức năng xem câu hỏi và câu trả lời 
66 
Chức năng của thành viên có liên quan trả lời câu hỏi 
Chức năng chuyển câu hỏi đến bộ phận khác trả lời 
67 
Một số mã nguồn của hệ thống. 
Hàm Comment trong javascript được sử dụng dưới client để nhận đối tượng câu hỏi 
đưa vào hệ thống. 
Comment: function (formid, vnkModul, vnkID, ParentID) { 
 var form = document.getElementById(formid); 
 var content = kWebComment.getElementsByClassName(form, "*", "inpComment"); 
 if (content.length == 1) { 
 if (content[0].value == '') { 
 kWebComment.addClassName(content[0].parentNode.parentNode, "error", true); 
 content[0].focus(); 
 return false; 
 } 
 if (vnkID != undefined && vnkModul != '') { 
 var url = this.LoadURL('comment') + '&modul=' + vnkModul + '&id=' + vnkID 
+ '&parentid=' + ParentID; 
 var c = content[0].value; 
 c = c.replace(/</g, '<'); 
 c = c.replace(/>/g, '>'); 
 $.post(url, { 'c': c }, 
 function (data) { if (data.err == 0) { 
kWebComment.LoadSubComment(data); content[0].value = ''; } else { alert(data.msg); } }, 
'json'); 
 } 
 } 
 return true; 
 } 
Hàm LoadComment trong javascript được sử dụng dưới client để nhận dữ liệu 
(Json) của hệ thống trả về, kết hợp với template được định nghĩa sẵn để view. 
LoadComment: function (items) { 
 for (var i = 0; i < items.data.length; i++) { 
 var template = $("#WallTemplate").html().format(items.data[i].cid, 
items.data[i].id, items.data[i].ui, items.data[i].un, items.data[i].fn, items.data[i].i, 
items.data[i].c, items.data[i].t, kWebsiteUrl); 
 $('#list-wall').prepend(template); 
 } 
 } 
Hàm Comment trong được sử dụng để lưu dữ liệu nhận về từ hệ thống và chuyển dữ liệu 
về json và gửi về client để load dữ liệu. 
private void Comment(kPortalUser kuser, int Active) 
 { 
 using (DataTable dt = vnk_User.DB.GetUser(kuser.Username)) 
68 
 { 
 if (dt.Rows.Count > 0) 
 { 
 string content = Utils.GetRequestForm("c", ""); 
 //content = HttpUtility.UrlDecode(content); 
 int id = Utils.GetIntRequestString("id", 0); 
 string modul = Utils.GetRequestString("modul", ""); 
 int parentid = Utils.GetIntRequestString("parentid", 0); 
 if (modul == "groups" && id == 19 && parentid == 0) 
 Active = 0; 
 int commentID = 0; 
 if (id > 0 && modul != "" && content != "" && kuser.UserID > 0) 
 { 
 commentID = kComment.DB.kComment_Save(0, ApplicationID, "vn", 0, 
parentid, modul, id, "", "", "", SaveComment(Utils.Text2Html(content)), Active); 
 string[] files = Utils.GetRequestForm("f", "").Split(','); 
 if (files.Length > 0) 
 { 
 string listfile = "''"; 
 foreach (string tfile in files) 
 listfile += ",'" + tfile + "'"; 
 kDB.ExecuteNonQuery(string.Format("Insert Into 
FileAttachComment (FileAttachID, CommentID) Select ID, {0} From FileAttach Where Filecode 
IN ({1})", commentID, listfile)); 
 } 
 kJsonObject result = new kJsonObject(); 
 result.err = 0; 
 result.msg = "Success"; 
 result.data.Add(new Comment(parentid, commentID, kuser.UserID, 
kuser.Username, string.Format("{0} {1}", dt.Rows[0]["Lastname"], dt.Rows[0]["Firstname"]), 
dt.Rows[0]["Images"].ToString(), content)); 
 Response.Write(result.ToJSON()); 
 } 
 } 
 } 
 } 
            Các file đính kèm theo tài liệu này:
 luan_van_he_thong_tu_dong_phan_luong_cau_hoi_va_giai_dap_yeu.pdf luan_van_he_thong_tu_dong_phan_luong_cau_hoi_va_giai_dap_yeu.pdf