



















Preview text:
lOMoARcPSD| 59629529
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ CƯƠNG CHUYÊN ĐỀ HỌC PHẦN TÊN HỌC PHẦN ĐỀ T䄃I:
Xây Dựng Hệ Thống ChatBot
Sinh viên thực hiện
: LÊ HỒNG QUANG PHAN MINH ĐỨC
Giảng viên hướng dẫn : VŨ VĂN ĐỊNH Ngành
: CÔNG NGHỆ THÔNG TIN Chuyên ngành
: CÔNG NGHỆ PHẦN MỀM Lớp
: D16CNPM 5 Khóa : 2021-2025
Hà Nội, tháng 11 năm 2023 lOMoARcPSD| 59629529 PHIẾU CHẤM ĐIỂM STT Họ và tên
Nội dung thực hiện Điểm Chữ sinh viên ký 1 Phan Minh
Giới thiệu về “AI” và phương pháp tìm Đức kiếm kinh nghiệm 2 Phạm Hồng +Giới thiệu về chatbot Quang
+Cài đặt đánh giá và thử nghiệm
Họ và tên giảng viên Chữ ký Ghi chú Giảng viên chấm 1: Giảng viên chấm 2: MỤC LỤC
LIỆT KÊ CHỮ VIẾT TẮT .................................................................................................................. 3
PHẦN MỞ ĐẦU .................................................................................................................................. 5
CHƯƠNG 1: GIỚI THIỆU VỀ “AI” VÀ PHƯƠNG PHÁP TÌM KIẾM KINH NGHIỆM ............... 6
1.1 Giới thiệu về AI ......................................................................................................................... 6
1.1.1 Trí tuệ nhân tạo là gì ? ......................................................................................................... 6
1.1.2 Lịch sử..................................................................................................................................... 7
1.1.3 Lĩnh vực của AI .................................................................................................................... 10
1.2 Phương pháp tìm kiếm ............................................................................................................. 14
CHƯƠNG 2: GIỚI THIỆU VỀ CHATBOT ..................................................................................... 15
2.1. Giới thiệu Chatbot ................................................................................................................ 15
2.2. Phân tích bài toán .................................................................................................................... 16
2.1.1. AIML là gì? .......................................................................................................................... 16
2.2 GIẢI QUYẾT BÀI TOÁN ....................................................................................................... 17
2.2.1 Ý tưởng ................................................................................................................................ 17 lOMoARcPSD| 59629529
CHƯƠNG 3. CÀI ĐẶT, ĐÁNH GIÁ THỬ NGHIỆM .................................................................... 18
3.1 Cài đặt với C# Winform .......................................................................................................... 18
3.1.1 Cài đặt thuật toán .................................................................................................................. 18
3.2.1 Giao diện chương trình ......................................................................................................... 20
3.2.1.1 Giao diện khi chạy chương trình .................................................................................... 20
3.2.1.2 Giao diện khi nói chuyện .................................................................................................. 21
3.2.2 Kết luận ................................................................................................................................. 21
KẾT LUẬN ......................................................................................................................................... 22
LỜI CẢM ƠN .................................................................................................................................... 23
LIỆT KÊ CHỮ VIẾT TẮT Bộ biến đổi nguồn dòng CSI Current source Inverters VSI Voltage source Inverters
Bộ biến đổi nguồn áp
EMTP ElectroMagnetic transients program
Chương trình tính toán quá độ điện từ EAF Electric Arc Furnace Lò hồ quang điện PWM Pulse Width Modulation
Bộ điều khiển biến điệu độ rộng xung THD Total harmonic distortion Tổng độ méo hài TDD Total deman distortion Độ méo yêu cầu tổng TVVS s
Transient Voltage surge suppressors Bộ bảo vệ quá áp Static VAR Compensator
Bộ bù tĩnh công suất phản kháng có điều khiển SVC Thyristor Controlled Reactor
Bộ kháng điều khiển bằng thyristor TCR lOMoAR cPSD| 59629529 Thyristor Switched Capacitor
Bộ tụ đóng mở bằng thyristor TSC Thyristor Switched Reactor
Bộ kháng đóng mở bằng thyristor TSR lOMoARcPSD| 59629529 PHẦN MỞ ĐẦU
Trong những năm gần đây, khoa học công nghê đang dần tiến đến một tầṃ
cao mới. Mặc dù còn mới mẻ trong lĩnh vực khoa học và công nghê nhưng̣ Chatbots
đang được nghiên cứu và phát triển với tốc độ chóng mặt bởi các trung tâm nghiên
cứu, các trường đại học và học viên.... rất nhiều các lĩnh vực được ứng̣ dụng công
nghê mới này. Chatbots là một hình thức thô sơ của phần mềm trí tuệ ̣ nhân tạo, là
một chương trình được tạo ra từ máy tính tiến hành cuộc trò chuyêṇ thông qua các
phương pháp nhâp văn bản, âm thanh, cảm ứng có thể trả lời các câụ hỏi và xử lý
các tình huống, là một công cụ có thể giao tiếp, tương tác với con người thông qua
một trí tuê nhân tạo đã được lậ p trình sẵn. Có rất nhiều công cụ̣ cũng như thư viên
hỗ trợ cho Chatbots như: Dialogflow, Wit.ai, Watsoṇ Conversation Service,
Microsoft „s LUIS, Google Natural Language API, Amazon Lex,...
Đây là tài liêu dùng để biểu diễn cơ bản thiết kế và giải quyết bài toán….. Tàị
liêu này giúp ta có cái nhìn toàn vẹn về các chức năng của phần mềm cũng nhự
ứng dụng thuât toán … để giải quyết bài toán này. Do thời gian có hạn nêṇ chúng
em không thể tối ưu được toàn bộ không gian trạng thái bài toán. Tuy nhiên, nhóm
sẽ nghiên cứu hoàn thiên trong thời gian sớm nhất. Nhóm thực hiệ ṇ đề tài
nhằm mục đích xây dựng một hê thống giải quyết một bài toán thực tệ́ dựa trên
chiến lược … và xây dựng một ứng dụng giải trí. Trong quá trình thực hiên đề tài
không tránh khỏi những sai sót, nhóm em mong sẽ nhậ n được sự góp ̣ ý và đánh giá của Thầy Cô.
Do kiến thức còn hạn chế nên bài tiểu luân của em còn nhiều sai sót. Em rấṭ
mong nhân được nhậ n xét và đánh giá góp ý của các thầy cô.̣
Em xin chân thành cảm ơn!
CHƯƠNG 1: GIỚI THIỆU VỀ “AI” V䄃 PHƯƠNG PHÁP TÌM lOMoARcPSD| 59629529 KIẾM KINH NGHIỆM
1.1 Giới thiệu về AI.
1.1.1 Trí tuệ nhân tạo là gì ?
Để hiểu trí tuê nhân tạo (artificial intelligence) là gì chúng ta bắt đầu vớị
khái niêm sự bay nhân tạo (flying machines), tức là cái máy bay.̣
Đã từ lâu, loài người mong muốn làm ra một cái máy mà có thể di chuyển
được trên không trung mà không phụ thuộc vào địa hình ở dưới mặt đất, hay nói
cách khác là máy có thể bay được. Không có gì ngạc nhiên khi những ý tưởng đầu
tiên làm máy bay là từ nghiên cứu cách con chim bay. Những chiếc máy biết bay
được thiết kế theo nguyên lý “vỗ cánh” như con chim chỉ có thể bay được quãng
đường rất ngắn và lịch sử hàng không thực sự sang một trang mới kể từ anh em nhà
Wright thiết kế máy bay dựa trên các nguyên lý của khí động lực học (aerodynamics).
Các máy bay hiên nay, như đã thấy, có sức trở rất lớn và bay được quãng̣
đường có thể vòng quanh thế giới. Nó không nhất thiết phải có nguyên lý bay của
con chim nhưng vẫn bay được như chim (dáng vẻ), và còn tốt hơn chim.
Quay lại câu hỏi Trí tuê nhân tạo là gì. Trí tuệ nhân tạo là trí thông minh củạ
máy do con người tạo ra. Ngay từ khi chiếc máy tính điên tử đầu tiên ra đời, các ̣ nhà
khoa học máy tính đã hướng đến phát hiển hê thống máy tính (gồm cả phầṇ cứng và
phần mềm) sao cho nó có khả năng thông minh như loài người. Mặc dù cho đến nay,
theo quan niêm của người viết, ước mơ này vẫn còn xa mới thànḥ hiên thực, tuy vậ
y những thành tựu đạt được cũng không hề nhỏ: chúng ta đã làṃ được các hê thống
(phần mềm chơi cờ vua chạy trên siêu máy tinh GeneBlue) có ̣ thể thắng được vua
cờ thế giới; chúng ta đã làm được các phần mềm có thể chứng minh được các bài
toán hình học; v.v. Hay nói cách khác, trong một số lĩnh vực, máy tính có thể thực
hiên tốt hơn hoặc tương đương con người (tất nhiên không ̣ phải tất cả các lĩnh vực).
Đó chính là các hê thống thông minh.̣ lOMoARcPSD| 59629529
Có nhiều cách tiếp cân để làm ra trí thông minh của máy (hay là trí tuệ nhâṇ
tạo), chẳng hạn là nghiên cứu cách bộ não người sản sinh ra trí thông minh của loài
người như thế nào rồi ta bắt chước nguyên lý đó, nhưng cũng có những cách khác
sử dụng nguyên lý hoàn toàn khác với cách sản sinh ra trí thông minh của loài người
mà vẫn làm ra cái máy thông minh như hoặc hơn người; cũng giống như máy bay
hiên nay bay tốt hơn con chim do nó có cơ chế bay không phải lạ̀ giống như cơ chế bay của con chim.
Như vây, trí tuệ nhân tạo ở đây là nói đến khả năng của máy khi thực hiệ
ṇ các công viêc mà con người thường phải xử lý; và khi dáng vẻ ứng xử hoặc
kếṭ quả thực hiên của máy là tốt hơn hoặc tương đương với con người thì ta gọi đó
là ̣ máy thông minh hay máy đó có trí thông minh. Hay nói cách khác, đánh giá sự
thông minh của máy không phải dựa trên nguyên lý nó thực hiên nhiệ m vụ đó cọ́
giống cách con người thực hiên hay không mà dựa trên kết quả hoặc dáng vẻ ứng̣
xử bên ngoài của nó có giống với kết quả hoặc dáng vẻ ứng xử của con người hay không.
Các nhiêm vụ của con người thường xuyên phải thực hiệ n là: giải bài toáṇ
(tìm kiếm, chứng minh, lâp luậ n), học, giao tiếp, thể hiệ n cảm xúc, thích nghi vớị
môi trường xung quanh, v.v., và dựa trên kết quả thực hiên các nhiệ m vụ đó để kếṭ
luân rằng một ai đó có là thông minh hay không. Môn học Trí tuệ nhân tạo
nhằṃ cung cấp các phương pháp luân để làm ra hệ thống có khả năng thực hiệ n các̣
nhiêm vụ đó: giải toán, học, giao tiếp, v.v. bất kể cách nó làm có như con ngườị hay
không mà là kết quả đạt được hoặc dáng vẻ bên ngoài như con người.
Trong môn học này, chúng ta sẽ tìm hiểu các phương pháp để làm cho máy
tính biết cách giải bài toán, biết cách lâp luậ n, biết cách học, v.v.̣ 1.1.2 Lịch sử
Vào năm 1943, Warren McCulioch và Walter Pitts bắt đầu thực hiêṇ
nghiên cứu ba cơ sở lý thuyết cơ bản: triết học cơ bản và chức năng của các lOMoARcPSD| 59629529
noron thần kinh; phân tích các mênh đề logic; và lý thuyết dự đoán củạ
Turing. Các tác giả đã nghiên cứu đề xuât mô hình noron nhân tạo, mỗi
noron đặc trưng bởi hai trạng thái “bât”, “tắt” và phát hiệ n mạng noron có ̣ lOMoAR cPSD| 59629529 khả năng học.
Thuât ngữ “Trí tuệ nhân tạo” (Artificial Intelligence - AI) được thiết lậ
p ̣ bởi John McCarthy tại Hội thảo đầu tiên về chủ đề này vào mùa hè năm
1956. Đồng thời, ông cũng đề xuất ngôn ngữ lâp trình Lisp – một trong̣ những
ngôn ngữ lâp trình hàm tiêu biểu, được sử dụng trong lĩnh vực AI.̣ Sau đó, Alan
Turing đưa ra "Turing test" như là một phương pháp kiểm chứng hành vi thông minh.
Thâp kỷ 60, 70 Joel Moses viết chương trình Macsyma - chương trìnḥ
toán học sử dụng cơ sở tri thức đầu tiên thành công. Marvin Minsky và
Seymour Papert đưa ra các chứng minh đầu tiên về giới hạn của các mạng nơ-
ron đơn giản. Ngôn ngữ lâp trình logic Prolog ra đời và được phát triểṇ bởi
Alain Colmerauer. Ted Shortliffe xây dựng thành công một số hê ̣ chuyên gia
đầu tiên trợ giúp chẩn đoán trong y học, các hê thống này sự̉ dụng ngôn ngữ
luât để biểu diễn tri thức và suy diễn.̣
Vào đầu những năm 1980, những nghiên cứu thành công liên quan
đến AI như các hê chuyên gia (expert systems) – một dạng của chương̣
trình AI mô phỏng tri thức và các kỹ năng phân tích của một hoặc nhiều chuyên gia con người.
Vào những năm 1990 và đầu thế kỷ 21, AI đã đạt được những thành
tựu to lớn nhất, AI được áp dụng trong logic, khai phá dữ liêu, chẩn đoán ỵ
học và nhiều lĩnh vực ứng dụng khác trong công nghiêp. Sự thành công̣ dựa
vào nhiều yếu tố: tăng khả năng tính toán của máy tính, tâp trung giảị quyết
các bài toán con cụ thể, xây dựng các mối quan hê giữa AI và các̣ lĩnh vực
khác giải quyết các bài toán tương tự, và một sự chuyển giao mới của các
nhà nghiên cứu cho các phương pháp toán học vững chắc và chuẩn khoa học chính xác. lOMoARcPSD| 59629529
1.1.3 Lĩnh vực của AI
* Lâp luậ n, suy diễn tự động: Khái niệ m lậ p luậ n (reasoning), và suy diễṇ
(reference) được sử dụng rất phổ biến trong lĩnh vực AI. Lâp luận là suy diễṇ lOMoARcPSD| 59629529
logic, dùng để chỉ một tiến trình rút ra kết luân (tri thức mới) từ những giạ̉ thiết
đã cho (được biểu diễn dưới dạng cơ sở tri thức). Như vây, để thực hiệ ṇ lâp
luậ n người ta cần có các phương pháp lưu trữ cơ sở tri thức và các thủ tục̣ lâp
luậ n trên cơ sở tri thức đó.̣ -
Biểu diễn tri thức: Muốn máy tính có thể lưu trữ và xử lý tri thức thì cần
có các phương pháp biểu diễn tri thức. Các phương pháp biểu diễn tri thức ở
đây bao gồm các ngôn ngữ biểu diễn và các kỹ thuât xử lý tri thức. Một ngôṇ
ngữ biểu diễn tri thức được đánh giá là “tốt” nếu nó có tính biểu đạt cao và các
tính hiêu quả của thuậ t toán lậ p luậ n trên ngôn ngữ đó. Tính biểu đạt củạ ngôn
ngữ thể hiên khả năng biểu diễn một phạm vi rộng lớn các thông tiṇ trong một
miền ứng dụng. Tính hiêu quả của các thuậ t toán lậ p luậ n thể hiệ ṇ chi phí về
thời gian và không gian dành cho viêc lậ p luậ n. Tuy nhiên, hai yếụ tố này
dường như đối nghịch nhau, tức là nếu ngôn ngữ có tínhbiểu đạt cao thì thuât
toán lậ p luậ n trên đó sẽ có độ phức tạp lớn (tính hiệ
u quả thấp)và ̣ ngược
lại (ngôn ngữ đơn giản, có tính biểu đạt thấp thì thuât toán lậ p luậ ṇ trên đó sẽ
có hiêu quả cao). Do đó, một thách thức lớn trong lĩnh vực AI lạ̀ xây dựng các
ngôn ngữ biểu diễn tri thức mà có thể cân bằng hai yếu tố này, tức là ngôn ngữ
có tínhbiểu đạt đủ tốt (tùy theo từng ứng dụng) và có thể lâp ̣ luân hiệ u quả.̣ -
Lâp kế hoạch: khả năng suy ra các mục đích cần đạt được đối với các
nhiệ ṃ vụ đưa ra, và xác định dãy các hành động cần thực hiên để đạt được mục ̣ đích đó. -
Học máy: là một lĩnh vực nghiên cứu của AI đang được phát triển mạnh
mẽ và có nhiều ứng dụng trong các lĩnh vực khác nhau như khai phá dữ liêu,̣ khám phá tri thức,… lOMoARcPSD| 59629529 -
Xử lý ngôn ngữ tự nhiên: là một nhánh của AI, tâp trung vào các ứng
dụng ̣ trên ngôn ngữ của con người. Các ứng dụng trong nhân dạng tiếng nói,
nhậ ṇ dạng chữ viết, dịch tự động, tìm kiếm thông tin,… lOMoARcPSD| 59629529 -
Hê chuyên gia: cung cấp các hệ thống có khả năng suy luậ n để đưa ra
những̣ kết luân. Các hệ chuyên gia có khả năng xử lý lượng thông tin lớn và
cung ̣ cấp các kết luân dựa trên những thông tin đó. Có rất nhiều hệ chuyên
gia nổị tiếng như các hê chuyên gia y học MYCIN, đoán nhậ n cấu trúc phân tử
tự̀ công thức hóa học DENDRAL, … - Robotics lOMoARcPSD| 59629529
1.2 Phương pháp tìm kiếm lOMoARcPSD| 59629529
CHƯƠNG 2: GIỚI THIỆU VỀ CHATBOT
2.1.Giới thiệu Chatbot.
ChatBot là một hình thức thô sơ của phần mềm trí tuê nhân tạọ , là một chương trình
máy tính tiến hành cuộc trò chuyên ̣ thông qua các phương pháp thính giác hoặc văn
bản có thể tự động trả lời những câu hỏi hoặc xử lý tình huống.
Ví dụ 1: Nếu như bạn muốn nhắn tin để tìm kiếm thông tin một sản phẩm của một cửa
hàng hoặc công ty đã tạo ChatBot, bạn chỉ viêc nhậ p vào từ khoá, chúng sẽ lậ p tức tìm và ̣
hiên kết quả thông tin sản phẩm cho bạn.̣
Đôi khi thuât ngữ "ChatBot" được sử dụng để chỉ các trợ lý ảo nói chung hoặc cụ thể là ̣ chỉ
chương trình máy tính trả lời tự động trên nền tảng tin nhắn (Messaging Platform). Ví dụ
2: Nếu như bạn đã hỏi “trợ lý ảo” Siri của Apple hay Cortana của Microsoft một vấn đề gì
đó như: “Thời tiết hôm nay như thế nào?”, là bạn đã làm viêc với một ChatBot.̣ lOMoARcPSD| 59629529
2.2. Phân tích bài toán 2.1.1. AIML là gì?
AIML được phát triển bởi Richard Wallace. Ông đã tạo ra một bot có tên
ALICE (Artificial Linguistic Internet Computer Entity) đã giành được một số giải
thưởng về trí tuê nhân tạo. Thậ t thú vị, một trong những thử nghiệ m Turing để tìṃ
kiếm trí thông minh nhân tạo là trò chuyên giữa người với bot thông qua giao diệ ṇ
văn bản trong vài phút và xem họ có nghĩ đó là con người không. AIML là một dạng
XML xác định các quy tắc để khớp các mẫu và xác định các câu trả lời. Để có một
đoạn mồi AIML đầy đủ, hãy xem AIML Primer của Alice Bot. Bạn cũng có thể tìm
hiểu thêm về AIML và những gì nó có khả năng trên trang Wikipedia AIML. Chúng
tôi sẽ tạo các têp AIML trước và sau đó sử dụng Python để cung cấp ̣ cho nó một số cuộc sống. lOMoARcPSD| 59629529
2.2 GIẢI QUYẾT B䄃I TOÁN 2.2.1 Ý tưởng
Đây là phiên bản XML để viết mã AI. Ở đây bất cứ khi nào bạn đặt câu
hỏi của mình, thì hê thống sẽ tìm tậ p hợp các câu hỏi được xác địnḥ trước từ
mẫu AIML. Nếu nó tìm thấy câu hỏi phù hợp với mô hình của nó, thì nó sẽ
trả lời phản hồi tích cực và sẽ trả lời. Giả sử bạn hỏi nó như muốn nói tên của
nó, thì nó sẽ nói tôi là ChatBot. Nhưng nếu câu hỏi của bạn vượt ra ngoài giới
hạn hoặc nói ra khỏi phạm vi, thì nó sẽ trả lời với một cái gì đó khác mà nó
không biết bạn đang yêu cầu gì. Toàn bộ khái niêm này sử dụng ̣ AI và nhắm
thuât toán. Nó có thể có lợi cho các trang web của bạn, nơị người dùng yêu cầu rất nhiều thứ. lOMoARcPSD| 59629529
CHƯƠNG 3. C䄃I ĐẶT, ĐÁNH GIÁ THỬ NGHIỆM
3.1 Cài đặt với C# Winform
3.1.1 Cài đặt thuật toán using System;
using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; using AIMLbot; namespace ChatBotProject { static class Program { static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } public class ChatBot {
const string UserId = "szabist"; private Bot AimlBot; private User myUser; public ChatBot() { AimlBot = new Bot();
myUser = new User(UserId, AimlBot); Initialize(); }
// Loads all the AIML files in the \AIML folder public void Initialize() { AimlBot.loadSettings();
AimlBot.isAcceptingUserInput = false; AimlBot.loadAIMLFromFiles();
AimlBot.isAcceptingUserInput = true; lOMoARcPSD| 59629529 }
// Given an input string, finds a response using AIMLbot lib lOMoARcPSD| 59629529
public String getOutput(String input) {
Request r = new Request(input, myUser, AimlBot); Result res = AimlBot.Chat(r); return (res.Output); } } }
3.2.1 Giao diện chương trình
3.2.1.1 Giao diện khi chạy chương trình
Hình 7: Giao diện khi chạy chương trình