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

Bài tiểu luận cuối kỳ tên ngành lập trình nâng cao

63 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 đề Chatbot Smart Assistant
Tác giả Lê Nguyễn Hoàng Long, Lê Hoàng Bảo Lân, Võ Thành Lợi, Lâm Nhạc Hoa
Người hướng dẫn Thầy Trần Thanh Nhã
Trường học Nguyễn Tất Thành University
Chuyên ngành Lập Trình Nâng Cao
Thể loại bài tiểu luận
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 63
Dung lượng 2,88 MB

Nội dung

Lý do chọn đề tài1.1 Tầm quan trọng của chatbot và trợ lý thông minh trong thời đại số 1.2 Sự phát triển và ứng dụng của chatbot trong các ngành công nghiệp Chương II.. Mục tiêu 2.1 Hiểu

Trang 1

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc

Nguyễn Tất Thành University NNT Institute International EducationBÀI TIỂU LUẬN CUỐI KỲ

TP Hồ Chí Minh, ngày 26 tháng 12 năm 2023

Trang 2

LỜI CẢM ƠN

Sau một thời gian dài học tập, trao dồi kiến thức, tìm tòi và nghiên cứu, nhóm chúng em đã hoàn thành đề tài “Chatbot Smart Assistant” Nhóm xin gửi lời cảm ơn sâu sắc đến thầy Trần Thanh Nhã, thầy

đã tận tình chỉ dạy, truyền đạt những kiến thức nền tảng cũng như

chia sẻ những kinh nghiệm thực tiễn để giúp

nhóm hoàn thành tốt đề tài này.

Do điều kiện còn hạn chế về kiến thức cũng như tài liệu nên khó

Tránh khỏi những sai sót và khiếm khuyết Vì vậy, chúng em rất

mong nhận được sự quan tâm đóng góp, nhận xét của cô và các bạn

để nội dung của đề tài được thêm hoàn thiện hơn nữa.

Chúng em xin chân thành cảm ơn!

Trang 3

MỞ ĐẦU VỀ CHATBOT

Chào mừng các bạn đến với bài viết về Chatbot! Trong thời đại công nghệ số hóa hiện nay, thuật ngữ "chatbot" ngày càng trở nên phổ biến và quen thuộc Vậy chatbot là gì và nó có vai trò như thế nào trong cuộc sống hàng ngày của chúng ta?

Chatbot, hay còn gọi là bot trò chuyện, là một chương trình máy tính được thiết

kế để mô phỏng và xử lý các cuộc trò chuyện của con người thông qua văn bản hoặc giọng nói Các chatbot có thể được tích hợp vào nhiều nền tảng khác nhau như website, ứng dụng di động, mạng xã hội, và nhiều hệ thống khác để cung cấp dịch vụ

và hỗ trợ người dùng một cách tự động và liên tục.

Với sự tiến bộ của trí tuệ nhân tạo (AI) và học máy (machine learning), các chatbot ngày nay không chỉ có khả năng trả lời các câu hỏi đơn giản mà còn có thể thực hiện các tác vụ phức tạp, hiểu ngữ cảnh và phản hồi một cách tự nhiên hơn Chúng được sử dụng rộng rãi trong nhiều lĩnh vực, từ dịch vụ khách hàng, hỗ trợ kỹ thuật, đến tiếp thị và thương mại điện tử.

Qua bài viết này, chúng ta sẽ khám phá chi tiết hơn về cách thức hoạt động của chatbot, các loại chatbot phổ biến, cũng như những ứng dụng thực tế và lợi ích mà chúng mang lại Hy vọng rằng, bạn sẽ có được cái nhìn toàn diện và sâu sắc hơn về công nghệ đang ngày càng ảnh hưởng mạnh mẽ đến cuộc sống của chúng ta.

Trang 4

MỤC LỤCChương I Lý do chọn đề tài

1.1 Tầm quan trọng của chatbot và trợ lý thông minh trong thời đại số 1.2 Sự phát triển và ứng dụng của chatbot trong các ngành công nghiệp Chương II Mục tiêu

2.1 Hiểu rõ về chatbot và trợ lý thông minh

2.2 Khám phá các công nghệ và thuật toán chính

2.3 Phân tích ứng dụng và lợi ích của chatbot

2.4 Đề xuất giải pháp và phương pháp triển khai

Chương III Phạm vi đề tài

3.1 Các khái niệm và định nghĩa

3.2 Công nghệ và thuật toán

3.3 Ứng dụng thực tế và lợi ích

Chương IV Tổng quan các nghiên cứu có liên quan

Chương V Nội dung nghiên cứu

Chương VI Kế hoạch nghiên cứu

Chương VII Tài liệu tham khảo

Chương VIII Nội dung đề án

8.1 Các mục trong chatbot

8.3 Kết luận về các mục trong chatbot

Trang 5

Chương I Lý do chọn đề tài

1.1 Tầm quan trọng của chatbot và trợ lý thông minh trong thời đại số

Trong thời đại công nghệ số phát triển mạnh mẽ, các công cụ hỗ trợ

tự động như chatbot và trợ lý thông minh (smart assistant) ngày càng trởnên quan trọng trong nhiều lĩnh vực, từ dịch vụ khách hàng đến quản lýthông tin cá nhân Theo một báo cáo của Grand View Research, thị trườngchatbot toàn cầu dự kiến sẽ đạt giá trị 9.4 tỷ USD vào năm 2024, với tốc

độ tăng trưởng kép hàng năm (CAGR) là 24.3% từ 2019 đến 2024.Chatbot smart assistant không chỉ giúp tiết kiệm thời gian và chi phí màcòn cải thiện trải nghiệm người dùng bằng cách cung cấp thông tin và hỗtrợ kịp thời Việc nghiên cứu sâu về chatbot smart assistant sẽ giúp khaithác tối đa tiềm năng của công nghệ này, mang lại lợi ích lớn cho cả doanhnghiệp và người dùng

Trang 6

1.2 Sự phát triển và ứng dụng của chatbot trong các ngành công nghiệp

Sự phát triển nhanh chóng của công nghệ trí tuệ nhân tạo (AI) và họcmáy (machine learning) đã thúc đẩy sự tiến bộ của chatbot và trợ lý thôngminh Chúng không chỉ đơn giản là trả lời các câu hỏi cơ bản mà còn cókhả năng thực hiện các tác vụ phức tạp và tương tác tự nhiên với conngười Theo một báo cáo của Juniper Research, các chatbot dự kiến sẽgiúp các doanh nghiệp tiết kiệm hơn 8 tỷ USD mỗi năm vào năm 2022,chủ yếu trong các lĩnh vực ngân hàng và chăm sóc khách hàng

Ngoài ra, nghiên cứu từ Gartner cho thấy rằng 25% các tổ chức dịch

vụ khách hàng sẽ sử dụng chatbot vào năm 2020, tăng từ dưới 2% trongnăm 2017 Những con số này minh chứng cho sự phát triển mạnh mẽ vàtiềm năng ứng dụng rộng rãi của chatbot trong tương lai Việc nghiên cứu

và triển khai chatbot thông minh không chỉ cải thiện hiệu quả kinh doanh

mà còn đáp ứng nhu cầu ngày càng cao của người dùng trong các ngànhcông nghiệp khác nhau

Chương II Mục tiêu

2.1 Hiểu rõ về chatbot và trợ lý thông minh

Nắm vững các khái niệm và định nghĩa liên quan đến chatbot và trợ

lý thông minh

Hiểu rõ về cấu trúc và cách hoạt động của chatbot và trợ lý thông minh

Trang 7

2.2 Khám phá các công nghệ và thuật toán chính

Tìm hiểu về các công nghệ AI, học máy và xử lý ngôn ngữ tự nhiên(NLP) được sử dụng trong việc phát triển chatbot

Xác định các thuật toán và phương pháp tiếp cận phổ biến trong việc xâydựng chatbot

2.3 Phân tích ứng dụng và lợi ích của chatbot

Khám phá các ứng dụng thực tế của chatbot trong các lĩnh vực nhưchăm sóc khách hàng, y tế, giáo dục và thương mại điện tử

Đánh giá lợi ích và hiệu quả mà chatbot mang lại cho doanh nghiệp

và người dùng

2.4 Đề xuất giải pháp và phương pháp triển khai

Đánh giá các thách thức và hạn chế hiện tại của chatbot và trợ lýthông minh

Đề xuất các giải pháp và phương pháp triển khai chatbot để cải thiện hiệusuất và trải nghiệm người dùng

Chương III Phạm vi đề tài

3.1 Các khái niệm và định nghĩa

Định nghĩa và phân loại các loại chatbot và trợ lý thông minh

Trang 8

Trình bày các nguyên tắc cơ bản và cấu trúc của chatbot và trợ lý thôngminh.

3.2 Công nghệ và thuật toán

Tìm hiểu về các công nghệ AI, học máy, xử lý ngôn ngữ tự nhiên vàhọc sâu sử dụng trong việc phát triển chatbot và trợ lý thông minh

sẽ sử dụng chatbot vào năm 2020, tăng từ dưới 2% trong năm 2017 Cácnghiên cứu này chỉ ra rằng chatbot không chỉ là một xu hướng nhất thời

mà còn là một công cụ quan trọng trong chiến lược kinh doanh của nhiều

tổ chức

Trang 9

Chương IV Tổng quan các nghiên cứu có liên quan

Nhiều nghiên cứu đã được thực hiện về hiệu quả của chatbot trongcác lĩnh vực khác nhau Một nghiên cứu của Juniper Research dự đoánrằng các chatbot sẽ giúp các doanh nghiệp tiết kiệm hơn 8 tỷ USD mỗinăm vào năm 2022, chủ yếu trong các lĩnh vực ngân hàng và chăm sóckhách hàng Nghiên cứu khác của Gartner cho thấy rằng 25% các tổ chứcdịch vụ khách hàng sẽ sử dụng chatbot vào năm 2020, tăng từ dưới 2%trong năm 2017 Các nghiên cứu này chỉ ra rằng chatbot không chỉ là một

xu hướng nhất thời mà còn là một công cụ quan trọng trong chiến lượckinh doanh của nhiều tổ chức

Chương V Nội dung nghiên cứu

Khái niệm và lịch sử phát triển của chatbot và trợ lý thông minh.Công nghệ và thuật toán chính: Tìm hiểu về các kỹ thuật AI, học máy, xử

lý ngôn ngữ tự nhiên (NLP) và học sâu (deep learning)

Ứng dụng thực tế: Phân tích cách các ngành công nghiệp như chămsóc khách hàng, y tế, giáo dục và thương mại điện tử đang sử dụngchatbot

Lợi ích và hiệu quả: Đánh giá các lợi ích về mặt chi phí, thời gian, vàtrải nghiệm người dùng khi sử dụng chatbot

Thách thức và hạn chế: Xem xét các vấn đề kỹ thuật, đạo đức và bảomật liên quan đến việc triển khai chatbot

Trang 10

Phương pháp tối ưu hóa: Đề xuất các cách để cải thiện hiệu suất và hiệuquả của chatbot trong các ứng dụng cụ thể.

Chương VI Kế hoạch nghiên cứu

Giai đoạn 1: Nghiên cứu sơ bộ (2 tuần)

- Thu thập tài liệu và tổng hợp các nghiên cứu hiện có

- Xác định các công nghệ và thuật toán chính

Giai đoạn 2: Phân tích và triển khai (2-3 tuần)

- Phân tích các ứng dụng thực tế của chatbot trong các lĩnh vực khácnhau

- Triển khai thử nghiệm chatbot trong một môi trường cụ thể

Giai đoạn 3: Đánh giá và tối ưu hóa (5 tuần)

- Đánh giá hiệu quả của chatbot dựa trên các chỉ số đã định

- Đề xuất các phương pháp tối ưu hóa

Giai đoạn 4: Báo cáo và trình bày (5-6 tuần)

- Tổng hợp kết quả nghiên cứu

- Chuẩn bị và trình bày báo cáo cuối cùng

Chương VII Tài liệu tham khảo

Grand View Research (2019) Chatbot Market Size, Share & TrendsAnalysis Report By Type (Rule-based, AI-based), By Application

Trang 11

(Customer Support, Social Media Bots), By End Use, By Region, AndSegment Forecasts, 2019 - 2024.

Juniper Research (2018) Chatbots: Banking, eCommerce, Retail &Healthcare 2018-2023

Gartner (2018) Gartner Says 25 Percent of Customer Service OperationsWill Use Virtual Customer Assistants by 2020

Various academic journals and conference papers on AI, machine learning,and NLP

Relevant articles and whitepapers from industry leaders such as IBM,Google, and Microsoft

Trang 12

Chương VIII Nội dung đề án

3.3 Các mục trong Chatbot và chức năng của chính nó

train.py

Mục train.py: là tệp tin chịu trách nhiệm huấn luyện mô hình học máy,chức năng gồm các bước sau:

a Tải dữ liệu: Đọc và xử lý dữ liệu huấn luyện từ các nguồn khác nhau,

chẳng hạn như tệp văn bản, cơ sở dữ liệu, hoặc API Dữ liệu này thườngbao gồm các câu hỏi và câu trả lời mẫu, hoặc các đoạn hội thoại mẫu

b Tiền xử lý dữ liệu: Chuẩn hóa và biến đổi dữ liệu để đưa vào mô hình.

Điều này có thể bao gồm:

+ Làm sạch văn bản (loại bỏ dấu câu, ký tự đặc biệt, chuyển đổi chữhoa thành chữ thường, v.v.)

+ Tokenization (phân tách văn bản thành các từ hoặc các token).+ Chuyển đổi từ ngữ thành các biểu diễn số (embedding)

c Xây dựng mô hình: Định nghĩa và khởi tạo kiến trúc của mô hình học

máy hoặc học sâu (deep learning) Các mô hình phổ biến cho chatbot baogồm:

+ Mô hình Hồi quy tuyến tính (Logistic Regression)

+ Mô hình Naive Bayes

Trang 13

+ Mô hình dựa trên RNN (Recurrent Neural Network), LSTM (LongShort-Term Memory), hoặc GRU (Gated Recurrent Unit).

+ Mô hình Transformer như BERT, GPT, hoặc các biến thể củachúng

d Huấn luyện mô hình: Thực hiện quá trình huấn luyện mô hình bằng

cách sử dụng dữ liệu đã xử lý Quá trình này bao gồm:

+ Chia dữ liệu thành tập huấn luyện và tập kiểm tra (validation set).+ Định nghĩa hàm mất mát (loss function) và tối ưu hóa (optimizer).+ Chạy các epoch, tức là lặp lại nhiều lần quá trình huấn luyện trêntoàn bộ dữ liệu

e Đánh giá mô hình: Sau khi huấn luyện, đánh giá hiệu quả của mô hình

trên tập dữ liệu kiểm tra Điều này bao gồm:

+ Tính toán các chỉ số đánh giá (accuracy, precision, recall, F1 score, v.v.).+ Hiển thị biểu đồ hoặc báo cáo kết quả đánh giá

f Lưu mô hình: Lưu mô hình đã huấn luyện dưới dạng tệp để có thể sử

dụng sau này cho việc dự đoán (inference)

g Tối ưu hóa và tinh chỉnh: Điều chỉnh các siêu tham số

(hyperparameters) của mô hình để cải thiện hiệu suất Điều này có thể baogồm thay đổi kiến trúc mô hình, tốc độ học (learning rate), số lượng epoch,v.v

Trang 14

Dưới đây là cấu trúc của tệp train.py:

Trang 15

import torch

import torch.nn as nn

from torch.utils.data import Dataset, DataLoader

from nltk_utils import bag_of_words, tokenize, stem # type: ignorefrom model import NeuralNet # type: ignore

# loop through each sentence in our intents patterns

for intent in intents['intents']:

tag = intent['tag']

# add to tag list

tags.append(tag)

for pattern in intent['patterns']:

# tokenize each word in the sentence

w = tokenize(pattern)

# add to our words list

all_words.extend(w)

Trang 16

# add to xy pair

xy.append((w, tag))

# stem and lower each word

ignore_words = ['?', '.', '!']

all_words = [stem(w) for w in all_words if w not in ignore_words]

# remove duplicates and sort

all_words = sorted(set(all_words))

tags = sorted(set(tags))

print(len(xy), "patterns")

print(len(tags), "tags:", tags)

print(len(all_words), "unique stemmed words:", all_words)

# create training data

X_train = []

y_train = []

for (pattern_sentence, tag) in xy:

# X: bag of words for each pattern_sentence

bag = bag_of_words(pattern_sentence, all_words)

X_train.append(bag)

# y: PyTorch CrossEntropyLoss needs only class labels, not one-hot label = tags.index(tag)

y_train.append(label)

Trang 17

return self.x_data[index], self.y_data[index]

# we can call len(dataset) to return the size

def len (self):

Trang 18

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

model = NeuralNet(input_size, hidden_size, output_size).to(device)

# Loss and optimizer

criterion = nn.CrossEntropyLoss()

optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)

# Train the model

for epoch in range(num_epochs):

for (words, labels) in train_loader:

Trang 19

print (f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')

print(f'final loss: {loss.item():.4f}')

Trang 20

print(f'training complete file saved to {FILE}')

style.css

Mục style.css: đóng vai trò là tệp tin chứa các quy tắc CSS (CascadingStyle Sheets) để định dạng và thiết kế giao diện người dùng, chức nănggồm các bước sau:

a Định dạng giao diện người dùng: Thiết lập các quy tắc để định dạng

các phần tử HTML, bao gồm màu sắc, phông chữ, kích thước, khoảngcách, viền, và các thuộc tính khác Điều này giúp giao diện chatbot trôngđẹp mắt và nhất quán

b Tạo bố cục (layout): Sắp xếp các phần tử trên trang web theo cách trực

quan và dễ sử dụng Điều này có thể bao gồm việc sử dụng flexbox, grid,

và các kỹ thuật khác để tạo ra các bố cục phức tạp

c Tạo trải nghiệm người dùng tốt hơn: Sử dụng các hiệu ứng như

hover, focus, và animation để cải thiện tương tác của người dùng vớichatbot Ví dụ, thay đổi màu sắc của nút khi người dùng di chuột qua, hoặctạo hiệu ứng chuyển động khi gửi/nhận tin nhắn

d Responsive design: Đảm bảo giao diện chatbot hiển thị tốt trên nhiều

kích thước màn hình khác nhau, từ điện thoại di động đến máy tính để bàn

Trang 21

Điều này có thể được thực hiện thông qua media queries và các kỹ thuậtthiết kế responsive khác.

e Tùy chỉnh giao diện theo thương hiệu: Đảm bảo rằng giao diện của

chatbot phù hợp với thương hiệu của công ty hoặc tổ chức, bao gồm việc

sử dụng màu sắc, phông chữ, và biểu tượng theo đúng nhận diện thươnghiệu

Dưới đây là cấu trúc của tệp style.css:

/* Add your CSS styling here */

Trang 25

a Quản lý sự kiện (Event Handling): Xử lý các sự kiện do người dùng

kích hoạt như nhấn nút gửi tin nhắn, nhập liệu vào ô chat, cuộn trang, v.v

Ví dụ, khi người dùng nhấn nút "Send", mã JavaScript sẽ lấy nội dung tinnhắn, gửi đến server, và hiển thị phản hồi từ chatbot

b Giao tiếp với server (Server Communication): Gửi yêu cầu (request)

đến server và nhận phản hồi (response) thông qua AJAX hoặc Fetch API.Điều này cho phép chatbot gửi tin nhắn người dùng đến server để xử lý vànhận lại câu trả lời

Trang 26

c Cập nhật giao diện động (DOM Manipulation): Thay đổi nội dung

trang web dựa trên phản hồi từ server Ví dụ, chèn tin nhắn mới vào khuvực hiển thị tin nhắn, cập nhật trạng thái kết nối, hiển thị hoặc ẩn các thànhphần giao diện khác nhau

d Quản lý trạng thái (State Management): Lưu trữ và quản lý trạng thái

hiện tại của chatbot, chẳng hạn như lịch sử tin nhắn, trạng thái kết nối,hoặc các cài đặt tùy chọn của người dùng

e Hiệu ứng và hoạt hình (Animations and Effects): Thêm các hiệu ứng

chuyển động hoặc hoạt hình để cải thiện trải nghiệm người dùng, như cuộn

tự động đến tin nhắn mới nhất hoặc hiệu ứng nhấp nháy khi có tin nhắnmới

Dưới đây là cấu trúc của tệp style.css:

document.addEventListener("DOMContentLoaded", function() {

// Initial greeting from the chatbot

appendMessage("Chatbot", "Hey! How can I help you?");

});

function sendMessage() {

var userInput = document.getElementById("user-input").value;

document.getElementById("user-input").value = "";

Trang 27

// Display user message

Trang 28

var chatDisplay = document.getElementById("chat-display");

var messageElement = document.createElement("div");

messageElement.innerHTML = "<strong>" + sender + ":</strong> " + message;

const contentDiv = document.getElementById('content');

// Create and append the title

const title = document.createElement('h1');

title.textContent = data.title;

contentDiv.appendChild(title);

// Create and append the description

const description = document.createElement('p');

description.textContent = data.description;

contentDiv.appendChild(description);

// Create and append the list items

const list = document.createElement('ul');

Trang 29

Trong cấu trúc trên:

+ Event Handling: Xử lý sự kiện nhấn nút "Send" và nhấn phím "Enter"

để gửi tin nhắn

+ Server Communication: Sử dụng Fetch API để gửi yêu cầu đến server

và nhận phản hồi

+ DOM Manipulation: Thêm tin nhắn vào khu vực hiển thị tin nhắn và

cuộn tự động đến tin nhắn mới nhất

response.py

Mục response.py: là nơi xử lý logic phản hồi của chatbot Tệp này chứa

mã Python để nhận tin nhắn từ người dùng, xử lý và phân tích tin nhắn đó,sau đó tạo ra câu trả lời thích hợp, chức năng gồm các bước sau:

Trang 30

a Nhận và phân tích tin nhắn người dùng: Tệp response.py nhận dữ

liệu từ người dùng (thông qua một API hoặc giao diện người dùng), phântích và trích xuất thông tin quan trọng từ tin nhắn

b Xử lý ngôn ngữ tự nhiên (NLP): Sử dụng các kỹ thuật xử lý ngôn ngữ

tự nhiên để hiểu ý định của người dùng Điều này có thể bao gồm việc sửdụng các thư viện NLP như NLTK, SpaCy, hoặc mô hình học máy đãđược huấn luyện trước đó như BERT, GPT

c Tạo phản hồi: Tạo ra phản hồi thích hợp dựa trên phân tích tin nhắn

người dùng Phản hồi có thể được tạo ra bằng cách sử dụng các câu trả lờimẫu, truy xuất thông tin từ cơ sở dữ liệu, hoặc sử dụng các mô hình sinhngôn ngữ tự nhiên (NLG)

d Quản lý hội thoại: Theo dõi trạng thái của hội thoại để đảm bảo rằng

phản hồi của chatbot nhất quán và có thể tiếp tục từ các ngữ cảnh trước đó

e Gửi phản hồi lại cho người dùng: Sau khi tạo ra phản hồi, tệp

response.py sẽ gửi lại phản hồi này cho người dùng thông qua API hoặcgiao diện người dùng

Dưới đây là cấu trúc của tệp response.py:

# response.py

Trang 31

Tokenization: Chia văn bản thành các từ hoặc câu.

Stemming và Lemmatization: Biến đổi các từ về dạng gốc của chúng Tạo Bag-of-Words hoặc TF-IDF: Chuyển đổi văn bản thành các vector

Ngày đăng: 14/12/2024, 22:43

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w