1. Trang chủ
  2. » Cao đẳng - Đại học

XÂY DỰNG CHATBOT hỗ TRỢ học lập TRÌNH HƯỚNG đối TƯỢNG

29 18 0

Đ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

Định dạng
Số trang 29
Dung lượng 1,02 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Người phát triển sẽ huẩn luyện bằngcách đưa những dữ liệu câu hỏi và chatbot sẽ sử dụng thuật toán để phân tích các câu hỏi vàđưa gắn nhãn.. Cụ thể, trí tuệ nhân tạo giúp máy tính có đượ

Trang 1

ĐẠI HỌC QUỐC GIA TP.HCM ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO MÔN HỌC: ĐỒ ÁN 2

ĐỀ TÀI: XÂY DỰNG CHATBOT HỖ TRỢ HỌC LẬP TRÌNH HƯỚNG

Trang 2

Nội dung

Chương 1 Tổng quan 3

1.1 Đặt vấn đề 3

1.2 Mục tiêu 3

1.3 Đối tượng hướng đến và phạm vi đề tài 4

1.4 Kế hoạch thực hiện 4

1.5 Yêu cầu ứng dụng 4

Chương 2 Cơ sở lý thuyết 6

2.1 Trí tuệ nhân tạo 6

2.2 Giới thiệu sơ lược về MongoDB 6

2.3 Chatbot 7

Chương 3 Thiết kế 14

3.1 Cơ sở dữ liệu 14

3.2 Sơ đồ tuần tự 14

3.3 Sơ đồ hoạt động 15

3.4 Sơ đồ trạng thái 16

Chương 4 Hiện thực ứng dụng 17

4.1 Tạo cơ sở dữ liệu 17

4.2 Lập trình phía Server 22

4.3 Lập trình phía Client 23

4.4 Xây dụng giao diện cho web chatbot 24

Chương 5 Kết luận và hướng phát triển 25

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

5.2 Hạn chế 25

5.3 Hướng phát triển đề tài 25

Chương 6 Bảng phân công 26

Chương 7 Trích dẫn, tài liệu tham khảo 27

Trang 3

Chương 1 Tổng quan

1.1 Đặt vấn đề

Trong sự phát triển của lĩnh vực công nghệ thông tin, chatbot đang phát triển rất mạnh

mẽ ở thời điểm hiện tại và cả tương lai Chatbot đang được sử dụng rất nhiều và rộng rãi ởrất nhiều nơi, rất nhiều lĩnh vực như: y tế, chăm sóc khách hàng, bán hàng,…

Chatbots phát triển dựa trên các kịch bản có sẵn Người phát triển sẽ huẩn luyện bằngcách đưa những dữ liệu câu hỏi và chatbot sẽ sử dụng thuật toán để phân tích các câu hỏi vàđưa gắn nhãn Khi nhận được tin nhắn từ người dùng, chatbot sẽ phân tích tin nhắn và dựavào những dữ liệu đã huấn luyện trước đó để đưa ra một nhãn để gắn cho tin nhắn Sau đó,

hệ thống sẽ gọi dữ liệu từ database để tìm câu trả lời có nhãn phù hợp với nhãn vừa phântích Ở một cấp độ khác, chatbot sẽ tự tạo câu trả lời thông qua những kinh nghiệm đã đượchọc trước đó Để làm được như vậy chatbot cần phải có dữ liệu để huấn luyện đủ lớn vàthuật toán để áp dụng cho chatbot phải phù họp

Hiện nay chatbot đang được áp dụng vào rất nhiều lĩnh vực trong cuộc sống, trong đóphải kể đến lĩnh vực giáo dục đang được quan tâm rất lớn Chatbot mang lại sự thuận tiệngiúp ôn lại kiến thức, đưa ra các ví dụ, hình ảnh, có tính tự động hóa cao, có thể được sửdụng ở nhiều nơi khi có kết nối internet Do đó nhóm thực hiện đồ án đề tài: “Xây dựngchatbot hỗ trợ học lập trình hướng đối tượng”

1.2 Mục tiêu

Mục tiêu của chính của đề tài là xây dựng một trang web chatbot hỗ trợ cho việc họclập trình hướng đối tượng (OOP) thông qua việc sử dụng thư viện hỗ trợ xử lý ngôn ngữ tựnhiên trên Nodejs “vntk” Backend ứng dụng được viết bằng Nodejs và Frontend sử dụngAngular

Trang 4

1.3 Đối tượng hướng đến và phạm vi đề tài

Đối tượng hướng đến là sinh viên đang theo học tại trường Đại học Công nghệ thôngtin có nhu cầu học lập trình hướng đối tượng Rộng hơn là những sinh viên , học sinh cóhứng thú với việc học OOP

Phạm vi đề tài:

- Phạm vi đề tài trong Trường Đại học Công nghệ thông tin

- Thời gian thực hiện: 01/10/2020 đến 15/01/2021

1.4 Kế hoạch thực hiện

3 Tìm hiểu về Nodejs, Angular, MongoDB Atlas 2 tuần

7 Xử lý frontend khi người dùng gửi câu hỏi 1 tuần

9 Xây dựng bộ dữ liệu câu hỏi và câu trả lời cho

chatbot

2 tuần

10 Sửa lỗi phát sinh, thêm dữ liệu nếu cần

1.5 Yêu cầu ứng dụng

1.5.1 Yêu cầu chức năng

- Chatbot tự động trả lời câu hỏi của người dùng về chủ đề hướng đối tượng

1.5.2 Yêu cầu phi chức năng

- Trang web được thực hiện front-end bằng Angular và back-end bằng Nodejs

- Hoạt động tốt trên nhiều trình duyệt khác nhau

- Tốc độ phản hổi nhanh chóng, có độ chính xác nhất định

- Giao diện dễ nhìn, dễ tiếp cận

Trang 5

1.5.3 Yêu cầu hệ thống

Người dùng:

- Phần cứng: CPU Intel G4600 3.9 GHz hoặc cao hơn RAM 2GB hoặc cao hơn

- Phần mềm: OS tối thiều Window 7/XP Sử dụng được cho hầu hết các trình duyệt.Người phát triển web:

- Phần cứng: CPU Intel i5 7200U 2.5 GHz RAM 4GB

- Phần mềm:

 OS Window 10 Home

 Trình duyệt Microsoft Edge, Brave

 Database: MongoDB Atlas

 IDE: Visual Studio Code

Trang 6

Chương 2 Cơ sở lý thuyết

2.1 Trí tuệ nhân tạo

Trí tuệ nhân tạo hay trí thông minh nhân tạo (Artificial intelligence – viết tắt là AI) làmột ngành thuộc lĩnh vực khoa học máy tính (Computer science) Là trí tuệ do con người lậptrình tạo nên với mục tiêu giúp máy tính có thể tự động hóa các hành vi thông minh như conngười

Trí tuệ nhân tạo khác với việc lập trình logic trong các ngôn ngữ lập trình là ở việc ứngdụng các hệ thống học máy (machine learning) để mô phỏng trí tuệ của con người trong các

xử lý mà con người làm tốt hơn máy tính Cụ thể, trí tuệ nhân tạo giúp máy tính có đượcnhững trí tuệ của con người như: biết suy nghĩ và lập luận để giải quyết vấn đề, biết giao tiếp

do hiểu ngôn ngữ, tiếng nói, biết học và tự thích nghi,…

Tuy rằng trí thông minh nhân tạo có nghĩa rộng như là trí thông minh trong các tácphẩm khoa học viễn tưởng, nó là một trong những ngành trọng yếu của tin học Trí thôngminh nhân tạo liên quan đến cách cư xử, sự học hỏi và khả năng thích ứng thông minh củamáy móc

Trí tuệ nhân tạo được ứng dụng trong rất nhiều lĩnh vực trong đời sống như: giaothông, sản xuất, y tế, truyền thông, dịch vụ, giáo dục,…

2.2 Giới thiệu sơ lược về MongoDB

NoSQL cho phép mở rộng dữ liệu mà không cần tạo khóa ngoại, khóa chính hay kiểmtra tính ràng buộc… Có thể thấy, dạng cơ sở dữ liệu này có thể linh động, sẵn sàng bỏ quatính toàn vẹn cứng nhắc của transaction hay dữ liệu nhằm đổi lấy hiệu suất, cùng với khảnăng mở rộng tốt

MongoDB là phần mềm cơ sở dữ liệu mã nguồn mở NoSQL hỗ trợ đa nền tảng đượcthiết kế theo hướng đối tượng Các bảng (trong MongoDB gọi là collection) có cấu trúc linhhoạt cho phép dữ liệu không cần tuân theo dạng cấu trúc nào MongoDB sử dụng lưu trữ dữliệu dưới dạng Document JSON nên mỗi một collection sẽ có các kích cỡ và các document

Trang 7

khác nhau Các dữ liệu được lưu trữ trong document kiểu JSON nên truy vấn sẽ rất nhanh và

có thể lưu trữ được lượng lớn dữ liệu

có thể là một chương trình thô sơ trả lời một số truy vấn đơn giản hoặc cũng có thể là mộtchương trình tinh vi như các trợ lý kỹ thuật số tìm hiểu và phát triển để cung cấp mức độ cánhân hóa ngày càng tăng khi chúng thu thập và xử lý thông tin người dùng

Chatbot là một công cụ trong tiếp thị đàm thoại (conversational marketing), ngày naychatbot được các doanh nghiệp sử dụng rộng rãi trên các website, ứng dụng, fanpage củamình như một trợ lý giao tiếp thay doanh nghiệp thực hiện trò chuyện với khách hàng

Chatbot hoạt động dựa trên kịch bản có trước do doanh nghiệp biên tập sẵn Bằng tríthông minh nhân tạo (AI) một chatbot có thể nhận dạng, phân tích câu hỏi của khách hàng

và đưa ra phản hồi chính xác trong tức khắc Bên cạnh đó chatbot cũng có thể tự học thêmnhiều câu hỏi không có trong kịch bản thông qua quá trình tương tác với khách hàng

2.3.2 Lịch sử hình thành và phát triển

Năm 1950: Các phép thử Turing

Trang 8

Alan Turing viết báo cáo với tựa đề “Computing Machinery and Intelligence”, xâydựng các phép thử Turing Về cơ bản, Các phép thử Turing là một loạt các phép thử dựa trênviệc phân tích câu trả lời của một “máy tính” Các phép thử Turing được thực hiện để xácđịnh xem một chương trình máy tính có thể phân biệt được máy tính với con người trongmột cuộc trò chuyện chỉ có văn bản thuần túy hay không? Bằng cách gõ câu hỏi cho cả haiđối tượng thử nghiệm, người thẩm vấn sẽ cố gắng xác định đối tượng nào là máy tính và đốitượng nào là con người Máy tính sẽ vượt qua Các phép thử Turing nếu người thẩm vấnkhông thể nói sự khác biệt giữa chủ thể con người và máy tính.

Năm 1966: ELIZA, chương trình trò chuyện đầu tiên được tạo ra

Chatbot đầu tiên được ra đời với tên gọi là Eliza, và là một chương trình máy tính củaJoseph Weizenbaum (Viện Công nghệ Massachusetts, Mỹ) Ban đầu Eliza được tạo ra nhằm

hỗ trợ điều trị tâm lý, đóng vai trò là một bác sĩ, có thể giao tiếp những câu đơn giản vớibệnh nhân để kích thích sự tương tác của họ Khi gặp những câu không có trong kịch bản,phần mềm sẽ tự động lấy một từ khóa nhận được từ thông điệp gửi tới của bệnh nhân và bảo

họ giải thích thêm Mặc dù có sự hạn chế về nhiều mặt, Eliza vẫn được xem là tiền đề để cóthể phát triển chatbot như ngày nay

Năm 1972: Bác sĩ Kenneth Colby phát triển chatbot PARRY

Kenneth Colby đã phát triển chatbot với tên gọi PARRY được phát triển bởi KennethColby - một bác sĩ tâm thần Chương trình này đóng vai trò là một bệnh nhân bị tâm thầnphân liệt hoang tưởng Các bác sĩ tâm thần khi tham gia thử nghiệm đã không thể xác định

sự khác biệt giữa những cuộc hội thoại của PARRY và những cuộc hội thoại khác giữa cácbệnh nhân tâm thần với nhau

Năm 1988: Chatbot Jabberwacky

Được phát triển vào những năm 1980 và phát hành trực tuyến vào năm 1997, chatbotJabberwacky được thiết kế để “Mô phỏng trò chuyện của con người tự nhiên theo cách thú

vị và hài hước“ Mục đích ban đầu của dự án Chatbot Jabberwacky là tạo ra một trí tuệ nhântạo có khả năng vượt qua Các phép thử Turing

Trang 9

Nó được thiết kế để bắt chước tương tác của con người và thực hiện các cuộc hội thoạivới người dùng Mục đích cuối cùng của chương trình là chuyển từ một hệ thống dựa trênvăn bản sang toàn bộ hoạt động bằng giọng nói Tác giả của nó tin rằng nó có thể được kếthợp vào các vật thể xung quanh nhà như robot, các thiết bị thông minh,…

Trong khi tất cả các chatbot trước đó dựa trên cơ sở dữ liệu tĩnh để trả lời và tròchuyện, Jabberwacky thu thập cụm từ được sử dụng bởi những người tham gia trò chuyệnvới nó Nó tự thêm những câu trả lời vào cơ sở dữ liệu và tự động phát triển nội dung củariêng mình Trong năm 2008, Jabberwacky đã phát hành một phiên bản mới và đổi tên thànhCleverbot

Năm 1992: Dr SBAITSO

Hình 1 Đoạn chat giữa người dùng và Dr SBAITSO

Được tạo ra bởi Creative Labs vào đầu những năm 1990, Dr SBAITSO là từ viết tắtcủa Sound Blaster Artificial Intelligent Text to Speech Operator) Dr SBAITSO “tròchuyện” với người dùng như thể nó là một nhà tâm lý học Mặc dù hầu hết các câu trả lờicủa nó đều là “WHY DO YOU FEEL THAT WAY?” nghĩa là “Bạn cảm thấy như thếnào?” Thay vì bất kỳ loại tương tác phức tạp, khi đối mặt với một cụm từ mà nó không thểhiểu được, nó thường trả lời là “THAT’S NOT MY PROBLEM” (Đó không phải là vấn đềcủa tôi)

Năm 1995: ALICE

Trang 10

ALICE được xây dựng trên cùng một kỹ thuật được sử dụng để tạo nên ELIZA.ALICE ban đầu được sáng tạo bởi Richard Wallace, ra đời vào ngày 23 tháng 11 năm 1995.Chương trình được viết lại bằng ngôn ngữ Java vào năm 1998 ALICEBOT sử dụng mộtlược đồ XML có tên AIML (Artificial Intelligence Markup Language- Ngôn ngữ đánh dấutrí thông minh nhân tạo) để xác định các quy tắc trò chuyện heuristic Tuy nhiên, nó lạikhông thể vượt qua Các phép thử Turing.

Năm 2001: SmarterChild

SmarterChild là một Chatbot có sẵn trên mạng AOL Instant Messenger và WindowsLive Messenger (trước đây là MSN Messenger) AOL Instant Messenger là một chươngtrình tin nhắn tức thời do AOL tạo ra, sử dụng giao thức nhắn tin tức thời OSCAR độcquyền và giao thức TOC để cho phép người dùng đăng ký giao tiếp trong thời gian thực.SmarterChild đóng vai trò giới thiệu cho việc truy cập dữ liệu nhanh và cuộc tròchuyện được cá nhân hóa thú vị hơn Hơn nữa, khi kết hợp với các nhà mạng, chúng trởthành một kênh tiếp thị hiệu quả và miễn phí Chúng giúp người dùng giao tiếp nhanh chóngvới hệ thống mạng bằng cách hiển thị các thông tin ngắn gọn với các lựa chọn trên bàn phímđiện thoại

Năm 2006: IBM Watson

Với khả năng chạy hàng trăm thuật toán phân tích ngôn ngữ cùng một lúc, IBMWatson sở hữu một sự thông minh ngôn ngữ đáng ngạc nhiên IBM thiết lập cho Watson cóquyền truy cập vào cơ sở dữ liệu khổng lồ về thông tin Watson có thể nhanh chóng truy cập

200 triệu trang dữ liệu, làm cho nó trở thành một máy trả lời câu hỏi lý tưởng (hoặc, trongtrường hợp của Jeopardy, Watson trở thành máy tạo câu hỏi lý tưởng)

Năm 2010-2016: Thời kỳ bùng nổ các trợ lý ảo

Nửa đầu thập kỷ này chứng kiến sự bùng nổ của các trợ lý cá nhân ảo: Siri (2010),Google Now (2012), Alexa (2015), Cortana (2015) và Google Assistant (2016) Với khảnăng phân tích và xử lý ngôn ngữ tự nhiên, các trợ lý này kết nối với các dịch vụ web để trảlời các câu hỏi và đáp ứng các yêu cầu của người dùng

Từ năm 2016 đến nay: Chatbot Messenger bùng nổ

Trang 11

Từ sau hội nghị F8 năm 2016, Facebook – mạng xã hội lớn nhất thế giới giới thiệuMessenger Platform Một nền tảng thân thiện hơn và cho phép bất kỳ ai cũng có thể tạo chomình một Chatbot Ngay sau đó, các ứng dụng chat khác như LINE, WhatsApp, Telegramhay Twitter cũng đưa ra các hỗ trợ hoặc các API cho phép người dùng tạo các Chatbot trênứng dụng nhắn tin.

Chatbot giờ đây không chỉ đơn giản chỉ là dựa trên kịch bản Với sự phát triển mạnh

mẽ của Trí thông minh nhân tạo và học máy, các bots giờ đây có khả năng “học tập” và tựphát triển Nhiều nhà phân tích và dự báo cũng như các công ty công nghệ hàng đầu nhưAlphabet, Microsoft, IBM, … đều dự đoán Chatbot sẽ thống trị lĩnh vực dịch vụ khách hàngtrong 5-10 năm nữa

2.3.3 Phân loại chatbot

Dựa trên dịch vụ mà chatbot cung cấp:

Chatbot bán hàng: là một công cụ hỗ trợ bán hàng 24/7, thu thập các thông tin về sảnphẩm, giá cả, kích thước, thông tin cá nhân của khách hàng (tên, tuổi, địa chỉ, số điệnthoại, ) giúp doanh nghiệp dễ dàng chốt đơn, đảm bảo không bỏ sót đơn hàng nào củakhách hàng

Chatbot chăm sóc khách hàng: được bộ phận chăm sóc khách hàng sử dụng như mộtnhân viên tư vấn, giải đáp những thắc mắc, yêu cầu, khiếu nại của khách hàng nằm trongkịch bản lập trình sẵn, với những tình huống phức tạp hơn chatbot sẽ chuyển đến cho cácchuyên viên chăm sóc khách hàng để được giúp đỡ giải quyết vấn đề cho khách hàng

Trang 12

Dựa trên platform chatbot sử dụng:

API.AI: Được hỗ trợ bởi Google và chạy trên Google Cloud Platform với nhiều ưuđiểm nổi bật: hỗ trợ trên 20 ngôn ngữ, kết hợp với AI (trí thông minh nhân tạo và máy học)

và hỗ trợ xây dựng bởi nhiều ngôn ngữ lập trình (Android, iOS, C++, Java, JavaScript,HTML, Cordova, Node.js, Unity, Xamarin, Ruby, Python, )

WIT.AI: Được xây dựng và ra mắt bởi ông lớn mạng xã hội Facebook tại hội nghị F8vào năm 2016, với tên gọi Messenger Platform Một số công cụ khác hỗ trợ xây dựngchatbot miễn phí và dễ dàng cũng được phát triển dựa trên nền tảng WIT.AI (Chatfuel, HaraFunnel, Pandorabots)

Watson: Watson là một chương trình ứng dụng được nghiên cứu và phát triển bởi IBMgồm các kỹ thuật cao cấp như xử lý ngôn ngữ tự nhiên, tìm kiếm thông tin, diễn đạt, lý giảitri thức và học máy cho lĩnh vực trả lời các câu hỏi mở

Dựa trên trải nghiệm người dùng:

Chatbot theo kịch bản: còn được gọi là chatbot dạng menu/button là dạng chatbot cơbản nhất Hệ thống chatbot này giao tiếp với khách hàng bằng cách sử dụng mô hình câyquyết định, đưa ra cho khách hàng những tùy chọn cho khách hàng và có thể trải qua nhiềucâu hỏi để đào sâu nhu cầu của họ

Chatbot nhận dạng từ khóa: hệ thống thực hiện nhận dạng cá từ khóa trong thông điệpkhách hàng gửi đến để thấu hiểu câu hỏi và tìm ra câu trả lời phù hợp Loại chatbot này cóthể tích hợp với menu/button để mang lại hiệu quả giao tiếp tốt hơn

Chatbot trò chuyện theo ngữ cảnh: sử dụng Machine Learning (ML) và Trí thông minhnhân tạo (AI) để ghi nhớ các cuộc hội thoại với người dùng cụ thể phục vụ cho việc xử lýcác tình huống theo yêu cầu của khách hàng

Trang 13

2.3.4 Nguyên tắc hoạt động của chatbot

Chatbot hoạt động dựa theo quy trình sau:

Đầu tiên, thông tin từ khách hàng sẽ được chatbot ghi nhận, sau đó tiến hành nhận dạng

và mã hóa sang ngôn ngữ lập trình mà máy tính có thể hiểu được

Với sự hỗ trợ của công nghệ AI, chatbot truy cập vào kho dữ liệu được lập trình sẵn đểtìm kiếm câu trả lời phù hợp

Sau đó, chatbot sẽ tự động gửi phản hồi đến khách hàng

2.3.5 Lợi ích chatbot

Chatbot luôn ở trạng thái chờ tin nhắn nên có thể tiếp nhận yêu cầu từ người dùng bất

kỳ lúc nào, hoạt động xuyên suốt không mệt mỏi và đưa ra câu trả lời một cách nhanhchóng

Chatbot có thể hỗ trợ rất nhiều người dùng cùng lúc mà không xảy ra nhầm lẫn.Chatbot sẽ không bắt người dùng phải chờ đến lượt của mình để được tư vấn

Hiệu quả, tiết kiệm chi phí Chatbot có thể giao tiếp với rất nhiều khách hàng trongcùng một khoảng thời gian vì vậy sẽ tiết kiệm nhân công, nâng cao hiệu quả làm việc

Tự động hóa những công việc gây nhàm chán Chatbot sẽ làm việc liên tục các côngviệc một cách tự động hóa mà không nhàm chán Trong khi con người sẽ nhàm chán nếuthực hiện một công việc lặp đi, lặp lại nhiều lần

Trang 14

Chương 3.Thiết kế

3.1 Cơ sở dữ liệu

Cơ sở dữ liệu sử dụng MongoDB để lưu trữ các câu trả lời và dữ liệu để huấn luyệncho chatbot Dữ liệu được mô tả trong bảng sau

Collection Botmessages Trainingdatas

Trường dữ liệu messageContent: String array;

keywords: String array;title: String;

Ngày đăng: 05/09/2021, 20:49

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w