1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập lớn trí tuệ nhân tạo Đề tài xây dựng chatbox

20 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Chatbox
Trường học Trường Đại Học Hải Phòng
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài Tập Lớn
Năm xuất bản 2024
Thành phố Hải Phòng
Định dạng
Số trang 20
Dung lượng 2,72 MB

Nội dung

Bằng cách xây dựng các kịch bản hội thoại sử dụng phương pháp Học Máy Machine Learning, AI Chatbot có thể tự học, tự hiểu các câu hỏi, nhu cầu, mong muốn của người dùng và đưa ra các câu

Trang 1

TRƯỜNG ĐẠI HỌC HẢI PHÒNG Khoa Công nghệ thông tin



BÀI TẬP LỚN TRÍ TUỆ NHÂN TẠO

Đề tài: Xây Dựng Chatbox SVTH:

GVHD:

 Năm 2024 

Mục Lục

Trang 2

1 Chatbot là gì

Chatbot là các ứng dụng phần mềm được thiết kế để giao tiếp với người dùng internet bằng văn bản như người thật Tại Việt Nam, FPT.AI Conversation cung cấp nền tảng để tạo lập và quản lí chatbot với giao diện người dùng Bởi được trang bị công nghệ xử lý ngôn ngữ tự nhiên tiếng Việt tốt nhất thị trường và hệ thống quản lí hội thoại tối ưu, chatbot của FPT.AI cung cấp cho các doanh nghiệp một giải pháp xây dựng chatbot hoàn chỉnh

Chatbot tương tác với người dùng như hệ thống trả lời tin nhắn tự động, nhưng thông minh hơn rất nhiều Bằng cách xây dựng các kịch bản hội thoại sử dụng phương pháp Học Máy (Machine Learning), AI Chatbot có thể tự học, tự hiểu các câu hỏi, nhu cầu, mong muốn của người dùng và đưa ra các câu trả lời phù hợp Chatbot của FPT.AI có thể tích hợp trên nhiều nền tảng và giao diện trò chuyện khác nhau, giúp tự động hóa các cuộc hội thoại giữa doanh nghiệp và khách hàng, góp phần đẩy mạnh bán hàng, mở rộng quy mô vận hành và mang đến sự hài lòng cho khách hàng

2 Mục đích của Chatbot

Chatbot được tạo ra để hỗ trợ con người trong lĩnh vực dịch vụ khách hàng ở mức

độ sơ cấp với những tác vụ được lặp đi lặp lại nhàm chán Do đó, các doanh nghiệp

sẽ loại bỏ được những áp lực về mặt nhân sự, đội ngũ tư vấn viên có thể tập trung giải quyết các công việc ở mức độ chuyên sâu và cấp thiết hơn

Trang 3

Với mỗi loại hình doanh nghiệp, chatbot lại được ứng dụng theo các cách khác nhau Một số nhiệm vụ chính của chatbot đang được nhiều doanh nghiệp áp dụng như:

 Tư vấn, trả lời các câu hỏi thường gặp, 24/7 cho khách hàng

 Hỗ trợ các chiến dịch marketing (gửi thông tin về chương trình khuyến mãi, giảm giá, ra mắt sản phẩm mới…)

 Gợi ý, tìm kiếm, báo giá các sản phẩm, dịch vụ theo yêu cầu của khách hàng

 Đặt lịch hẹn, đặt bàn, đặt phòng, đặt vé máy bay…

 Tiếp nhận các thông tin khai báo, mở tài khoản, mở thẻ…

 Thanh toán hóa đơn đặt hàng

3 Các loại Chatbot phổ biến

Chatbot được chia làm 3 loại chính: Clicking Bot, NLP Bot và NLP & Dialogue Management Bot

Clicking Bot là một loại Chatbot mà người dùng có thể giao tiếp bằng cách nhấn

vào các nút được thiết kế sẵn trong Bot để dẫn dắt đến vấn đề cần hỏi Clicking Bot không hiểu được nội dung tin nhắn mà khách hàng gửi đến

Trang 4

NLP Bot là Chatbot sử dụng công nghệ Học Máy và Xử lý ngôn ngữ tự nhiên

(Natural Language Processing - NLP) Với NLP Bot, người dùng có thể tự gõ các câu hỏi bất kỳ và bot có thể hiểu được dựa trên dữ liệu đã được đào tạo từ trước

Các trường dữ liệu bao gồm: câu mẫu, ý định, thực thể.

Trang 5

NLP & Dialog Management Bot là loại Chatbot toàn diện nhất, đa dạng cách xử

lí (vừa có các nút như Clicking Bot, vừa hiểu được ý định của người dùng như NLP Bot) Và đặc biệt, NLP & Dialog Management Bot có khả năng ghi nhớ ngữ cảnh hội thoại của người dùng

Trang 6

Nền tảng tạo bot của FPT.AI Conversation cho phép xây dựng cả 3 loại chatbot trên, nhưng được ưa chuộng hơn cả là NLP & Dialog Management Bot Đây là loại bot toàn diện nhất, chúng có khả năng học hỏi và thông minh hơn theo thời gian, đáp ứng yêu cầu khắt khe của nhiều doanh nghiệp khó tính

Ngoài ra, FPT.AI Conversation còn có giao diện tạo bot thân thiện, giao diện quản

lí hội thoại tối ưu, và dễ dàng tích hợp trên nhiều kênh giao tiếp khác nhau

4 Hướng Dẫn Lập Trình Chatbot Với Python

Hạn chế của chatbot

Nền tảng: Trí tuệ nhân tạo là cái nhân của con chatbot, tuy nhiên để tạo ra được

chatbot có thể nói chuyện như người thật thì thực sự vẫn còn khá xa

Nội tâm: Khả năng vấn đáp của chatbot còn hạn chế, các lỗi xuất hiện có tính hệ

thống

Trang 7

Chúng ta hy vọng với những tiến bộ của ngành trí tuệ nhân tạo hiện nay có thể tạo

ra được một con robot giao tiếp tốt như con người

Nguyên lý làm việc

Chúng ta chia chatbot làm 2 hướng:

Rule-Based Approach: Với phương pháp này, bot được lập trình theo những

nguyên tắc có sắc Bot có thể trả lời những truy vấn đơn giản nhưng với truy vấn phức tạp thì không

Self-Learning Approach: Bot được huấn luyện dựa trên các thuật toán học

mày machine learning Chúng ta tiếp tục chia làm 2 loại:

Retrieval-Based Models: Với phương pháp này, bot chọn ra câu trả lời tốt nhất

trong danh sách các câu trả lời theo truy vấn của người dùng

Generative Models: Những mô hình này sẽ tự đưa ra câu trả lời thay vì chọn câu

trả lời trong một bộ câu trả lời điều này làm bot ngày càng trở nên thông minh Thư viện ChatterBot trong Python

ChatterBot là một công cụ tạo ra một chatbot tự động dựa trên cơ sở học máy machine learning bằng ngôn ngữ Python ChatterBot chính là một freamwork cho ChatAI (Chatbot AI) để tạo ra những con bot thông minh để bạn có thể tích hợp vào những công cụ chat như Facebook, Skype hoặc chính là là những nền tảng chat do các bạn tự tạo ra ChatterBot được thiết kế dựa trên Python là một ngôn ngữ xử lý ngôn ngữ hàng đầu cho phép ChatterBot có để đào tạo bất kỳ ngôn ngữ nào Kể cả ngôn ngữ Tiếng Việt

Đặc biệt do ChatterBot là dự án mã nguồn mở nên bạn hoàn toàn của thể nghiên cứu phát triển và kiểm soát được toàn bộ mã nguồn cũng như cơ sở dữ liệu Điều này làm bảo mật toàn bộ thông tin con bot mà bạn phát triển không phải phụ thuộc vào bất kỳ nền tảng do một bên thứ 3 nào như Wit.AI…

Quy trình hoạt động chatterbot

Trang 8

Các Chatbot hoạt động bằng cách sử dụng phương pháp phát hiện trùng khớp các mẫu câu Pattern matchers để tìm kiếm các mẫu câu có trong câu hỏi của người dùng và xem có khớp với các câu hỏi đã được "huấn luyện" lưu trữ trong hệ thống

để đưa ra các câu trở lời phù hợp nhất Ban đầu câu hỏi người dùng được đưa vào tiếp theo đó chúng ta sử dụng các pattern đã định nghĩa từ trước để chia nhỏ câu hỏi thành từng pattern con Tiếp theo ta sử dụng các thuật toán học máy để xác định câu hỏi khớp nhất trong các câu hỏi đã được định nghĩa từ trước Sau đó với câu hỏi ta chọn được khớp nhất ta sẽ chọn câu trả lời từ tập câu trả lời được định nghĩa trước bởi câu hỏi đó Cuối cùng, trả lời cho người dùng câu trả lời ta tìm được

Chuẩn bị

Chatterbot: là cái nhân của chatbot Đây là thư viện phục vụ việc nhận tin nhắn của người dùng rồi học cách để trả lời cho tin nhắn đó

Flask: Tạo giao diện browser tương tác thực với người dùng

Mình tải và cài đặt Visual Studio Code trên máy tính để chạy code Python Thư viện chatterbot

Cài đặt thư viện

Bạn có thể cài đặt thư viện vào hệ thống sử dụng pip:

pip install chatterbot

Trang 9

Sau đó ta sẽ thử làm chatbot với vài dòng lệnh đầu tiên Một con chatbot sẽ được hoàn thiện trong 3 phần

Phần 1: Tạo chatbot

Từ thư viện chatterbot import đối tượng ChatBot với mục đích khởi tạo một con chatbot Sau đó ta tạo một chatbot tên Ron Obvious rồi gán vào biến chatbot

from chatterbot import ChatBot

chatbot ChatBot(= "Ron Obvious")

Phần 2: Huấn luyện ChatBot

Sau khi tạo một con ChatterBot Việc tiếp theo là ta phải huấn luyện con bot để nó học được những kiến thức ban đầu với những câu trả lời cụ thể Phương pháp đào tạo mà thư viện cho phép là cho một đoạn hội thoại ngắn đại diện là một list các câu hội thoại của bot và mình Bot sẽ tự động trả lời theo ngữ cảnh mà mình cài đặt trước

from chatterbot.trainers import ListTrainer

conversation [=

"Hello",

"Hi there!",

"How are you doing?",

"I'm doing great.",

"That is good to hear",

"Thank you.",

"You're welcome."

]

trainer ListTrainer(chatbot)=

Trang 10

Phần 3: Chọn câu trả lời

Con bot sẽ nhận một tin nhắn sau đó từ những kiến thức nó học được, nó sẽ trả lời theo ngữ cảnh nó được học từ trước và ngữ cảnh mình vừa huấn luyện cho bot

response chatbot.get_response(= "Good morning!")

print(response)

Sau đây, kết hợp với thư viện Flask, chúng ta sẽ tạo Flask ChatterBot App chạy trên nền tảng web

Use Case – Flask ChatterBot

Ta chia thành 3 phần:

Phần 1: Main chatbot Thư viện chatterbot đảm nhiệm nhiệm vụ này Các câu trả

lời sẽ được đưa ra khi nhập tin nhắn người dùng vào

Phần 2: GUI Thư viện Flask là thư viện tạo ra với mục đích viết app nền tảng web

bằng Python Ta sẽ giao diện hóa những gì Chatterbot làm được

Phần 3: Dữ liệu Các file SQLite và file Pickle sẽ được tạo thêm với nhiệm vụ lưu

dữ liệu mà chatbot huấn luyện được

Trang 11

File App.py

from flask import Flask, render_template, request from chatterbot import ChatBot

from chatterbot.trainers import ChatterBotCorpusTrainer app Flask( name )=

english_bot ChatBot(= "Chatterbot",

storage_adapter="chatterbot.storage.SQLStorageAdapter") trainer ChatterBotCorpusTrainer(english_bot)=

trainer.train("chatterbot.corpus.english")

@app.route( )"/"

def home():

return render_template("index.html")

@app.route("/get")

def get_bot_response():

userText request.args.get(= 'msg')

return str(english_bot.get_response(userText))

if name ==" main ":

app.run()

File index.html

<!DOCTYPE html>

<html>

Trang 12

<head>

<link rel="stylesheet" type="text/css" href="/static/style.css">

<script

src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> </head>

<body>

< >Flask Chatterbot Example</ >h1 h1

< >A web implementation of <h3 a

href="https://github.com/gunthercox/ChatterBot">ChatterBot</a> using Flask.</ >h3

<div>

<div id="chatbox">

<p class="botText"><span>Hi! I'm Chatterbot.</span></p>

</div>

<div id="userInput">

<input id="textInput" type="text" name="msg" placeholder="Message"> <input id="buttonInput" type="submit" value="Send">

</div>

<script>

function getBotResponse() {

var rawText = $("#textInput").val();

var userHtml = '<p class="userText"><span>' + rawText + '</span></ >';p $("#textInput").val("");

$("#chatbox").append(userHtml);

document.getElementById('userInput').scrollIntoView({block: 'start', behavior: 'smooth'});

$.get("/get", { msg: rawText }).done(function(data) {

var botHtml = '<p class="botText"><span>' + data + '</span></ >';p

Trang 13

$("#chatbox").append(botHtml);

document.getElementById('userInput').scrollIntoView({block: 'start', behavior: 'smooth'});

});

}

$("#textInput").keypress(function(e) {

if(e.which == 13) {

getBotResponse();

}

});

$("#buttonInput").click(function() {

getBotResponse();

})

</script>

</div>

</body>

</html>

File Style.css

body {

font-family: Garamond;

}

h1 {

color: black;

margin-bottom: 0;

Trang 14

margin-top: 0; text-align: center; font-size: 40px; }

h3 {

color: black; font-size: 20px; margin-top: 3px; text-align: center; }

#chatbox {

margin-left: auto; margin-right: auto; width: 40%; margin-top: 60px; }

#userInput { margin-left: auto; margin-right: auto; width: 40%; margin-top: 60px; }

#textInput {

Trang 15

width: 87%;

border: none;

border-bottom: 3px solid #009688; font-family: monospace;

font-size: 17px;

}

#buttonInput {

padding: 3px;

font-family: monospace;

font-size: 17px;

}

.userText {

color: white;

font-family: monospace;

font-size: 17px;

text-align: right;

line-height: 30px;

}

.userText span {

background-color: #009688; padding: 10px;

border-radius: 2px;

}

Trang 16

.botText {

color: white;

font-family: monospace;

font-size: 17px;

text-align: left;

line-height: 30px;

}

.botText span {

background-color: #EF5350;

padding: 10px;

border-radius: 2px;

}

#tidbit {

position:absolute;

bottom:0;

right:0;

width: 300px;

}

Sau khi chạy file app.py chatbot sẽ huấn luyện dữ liệu từ kho dữ

liệu chatterbot.corpus.english có sẵn của chatterbot Trong kho dữ liệu gồm rất nhiều lĩnh vực Mỗi lĩnh vực sẽ được lưu trữ dữ liệu dưới dạng file yml Trong file

sẽ gồm 2 phần categories biểu thị chủ đề còn conversations biểu thị cặp câu hỏi

và trả lời tương ứng Chatbot sẽ học những dữ liệu này để phản hồi lại tin nhắn của mình

Trang 18

Quá trình chatbot huấn luyện dữ liệu Tất cả chủ đề đều được huấn luyện Như trên mình chỉ biểu thị chủ đề về AI

Sau khi chạy file app.py, ta sẽ kết nối với đang web mà thư viện Flask vừa tạo qua đường link http://127.0.0.1:5000/

Trang 19

Kết luận

Bài viết hướng dẫn cơ bản về 2 thư viện Chatterbot và Flask để làm một con chatbot đơn giản

Tuy nhiên, để nâng cao hiệu quả chatbot mình phải có tập huấn luyện đa dạng, đủ tốt để bot học được nhiều kiến thức hơn

Trang 20

Một con chatbot đơn giản giúp chúng ta hiểu hơn về quy trình xử lý ngôn ngữ tự nhiên NLP, cách một chatbot hoạt động hơn nữa đây là nền tảng để chúng ta làm một con trợ lý ảo có thể giao tiếp trực tiếp bằng giọng nói với mình

Ngày đăng: 24/12/2024, 16:05

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN