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

Nội dung

ĐẠ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 ĐỀ TÀI: XÂY DỰNG CHATBOT HỖ TRỢ HỌC LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Giảng viên hướng dẫn: ThS Huỳnh Tuấn Anh Nhóm sinh viên thực hiện: Nguyễn Song Luân 17520720 Nguyễn Thành Luân 17520722 Nội dung Chương Tổng quan 1.1 Đặt vấn đề 1.2 Mục tiêu 1.3 Đối tượng hướng đến phạm vi đề tài 1.4 Kế hoạch thực 1.5 Yêu cầu ứng dụng Chương Cơ sở lý thuyết 2.1 Trí tuệ nhân tạo 2.2 Giới thiệu sơ lược MongoDB 2.3 Chatbot Chương Thiết kế .14 3.1 Cơ sở liệu 14 3.2 Sơ đồ 14 3.3 Sơ đồ hoạt động 15 3.4 Sơ đồ trạng thái 16 Chương Hiện thực ứng dụng 17 4.1 Tạo sở 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 Kết luận hướng phát triển .25 5.1 Kết đạt 25 5.2 Hạn chế 25 5.3 Hướng phát triển đề tài 25 Chương Bảng phân công 26 Chương Trích dẫn, tài liệu tham khảo .27 Chương Tổng quan 1.1 Đặt vấn đề Trong phát triển lĩnh vực công nghệ thông tin, chatbot phát triển mạnh mẽ thời điểm tương lai Chatbot sử dụng nhiều rộng rãi nhiều nơi, 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 kịch có sẵn Người phát triển huẩn luyện cách đưa liệu câu hỏi chatbot sử dụng thuật tốn để phân tích câu hỏi đưa gắn nhãn Khi nhận tin nhắn từ người dùng, chatbot phân tích tin nhắn dựa vào liệu huấn luyện trước để đưa mợt nhãn để gắn cho tin nhắn Sau đó, hệ thống gọi liệu từ database để tìm câu trả lời có nhãn phù hợp với nhãn vừa phân tích Ở mợt cấp đợ khác, chatbot tự tạo câu trả lời thông qua kinh nghiệm học trước Để làm chatbot cần phải có liệu để huấn luyện đủ lớn thuật toán để áp dụng cho chatbot phải phù họp Hiện chatbot áp dụng vào nhiều lĩnh vực cuộc sống, phải kể đến lĩnh vực giáo dục quan tâm lớn Chatbot mang lại thuận tiện giúp ơn lại kiến thức, đưa ví dụ, hình ảnh, có tính tự đợng hóa cao, sử dụng nhiều nơi có kết nối internet Do nhóm thực đồ án đề tài: “Xây dựng chatbot 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 đề tài xây dựng một trang web chatbot hỗ trợ cho việc học lậ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 Nodejs “vntk” Backend ứng dụng viết Nodejs Frontend sử dụng Angular 1.3 Đối tượng hướng đến phạm vi đề tài Đối tượng hướng đến sinh viên theo học trường Đại học Cơng nghệ thơng tin có nhu cầu học lập trình hướng đối tượng Rợ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 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 STT Nội dung Tìm hiểu AI Tìm hiều chatbot Tìm hiểu Nodejs, Angular, MongoDB Atlas Xây dựng bộ liệu mẫu Xây dựng backend Xây dựng frontend Xử lý frontend người dùng gửi câu hỏi Kết nối frontend backend Xây dựng bộ liệu câu hỏi câu trả lời cho chatbot Sửa lỗi phát sinh, thêm liệu cần 10 Thời gian tuần tuần tuần ngày tuần tuần tuần tuần tuần 1.5 Yêu cầu ứng dụng 1.5.1 Yêu cầu chức - Chatbot tự động trả lời câu hỏi người dùng chủ đề hướng đối tượng 1.5.2 Yêu cầu phi chức - Trang web thực front-end Angular back-end Nodejs Hoạt đợng tốt nhiều trình duyệt khác Tốc đợ phản hổi nhanh chóng, có đợ xác định Giao diện dễ nhìn, dễ tiếp cận 1.5.3 Yêu cầu hệ thống Người dùng: - Phần cứng: CPU Intel G4600 3.9 GHz cao RAM 2GB cao Phần mềm: OS tối thiều Window 7/XP Sử dụng cho hầu hết 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 Chương 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 AI) một ngành tḥc lĩnh vực khoa học máy tính (Computer science) Là trí tuệ người lập trình tạo nên với mục tiêu giúp máy tính tự đợng hóa hành vi thơng minh người Trí tuệ nhân tạo khác với việc lập trình logic ngơn ngữ lập trình việc ứng dụng hệ thống học máy (machine learning) để mơ trí tuệ người xử lý mà người làm tốt máy tính Cụ thể, trí tuệ nhân tạo giúp máy tính có trí tuệ người như: biết suy nghĩ lập luận để giải vấn đề, biết giao tiếp hiểu ngơn ngữ, tiếng nói, biết học tự thích nghi,… Tuy trí thơng minh nhân tạo có nghĩa rợng trí thơng minh tác phẩm khoa học viễn tưởng, mợt ngành trọng yếu tin học Trí thơng minh nhân tạo liên quan đến cách cư xử, học hỏi khả thích ứng thơng minh máy móc Trí tuệ nhân tạo ứng dụng nhiều lĩnh vực đời sống như: giao thô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 MongoDB NoSQL cho phép mở rộng liệu mà khơng cần tạo khóa ngoại, khóa hay kiểm tra tính ràng ḅc… Có thể thấy, dạng sở liệu linh đợng, sẵn sàng bỏ qua tính tồn vẹn cứng nhắc transaction hay liệu nhằm đổi lấy hiệu suất, với khả mở rộng tốt MongoDB phần mềm sở liệu mã nguồn mở NoSQL hỗ trợ đa tảng thiết kế theo hướng đối tượng Các bảng (trong MongoDB gọi collection) có cấu trúc linh hoạt cho phép liệu không cần tuân theo dạng cấu trúc MongoDB sử dụng lưu trữ liệu dạng Document JSON nên mợt collection có kích cỡ document khác Các liệu lưu trữ document kiểu JSON nên truy vấn nhanh lưu trữ lượng lớn liệu Ưu điểm: Lưu trữ liệu phi cấu trúc, khơng có tính ràng ḅc, tồn vẹn nên tính sẵn sàng cao, hiệu suất lớn dễ dàng lưu trữ, mở rộng Dữ liệu ghi đệm lên RAM nên tốc độ đọc ghi cao Nhược điểm: Không áp dụng cho mơ hình có u cầu đợ xác cao khơng có tính chất ràng buộc sở liệu quan hệ 2.3 Chatbot 2.3.1 Chatbot gì? Chatbot phần mềm máy tính xây dựng dựa tảng trí tuệ nhân tạo (AI) cho phép doanh nghiệp thực c̣c trị chuyện với khách hàng thơng qua tin nhắn văn âm dựa công nghệ chuyển văn thành giọng nói text-to-speech Chatbot cho phép người dùng tương tác với thiết bị số thể với người thật Chatbots mợt chương trình thô sơ trả lời một số truy vấn đơn giản mợt chương trình tinh vi trợ lý kỹ thuật số tìm hiểu phát triển để cung cấp mức đợ cá nhân hóa ngày tăng chúng thu thập xử lý thông tin người dùng Chatbot một công cụ tiếp thị đàm thoại (conversational marketing), ngày chatbot doanh nghiệp sử dụng rộng rãi website, ứng dụng, fanpage mợt trợ lý giao tiếp thay doanh nghiệp thực trò chuyện với khách hàng Chatbot hoạt đợng dựa kịch có trước doanh nghiệp biên tập sẵn Bằng trí thơng minh nhân tạo (AI) mợt chatbot nhận dạng, phân tích câu hỏi khách hàng đưa phản hồi xác tức khắc Bên cạnh chatbot tự học thêm nhiều câu hỏi khơng có kịch thơng qua q trình tương tác với khách hàng 2.3.2 Lịch sử hình thành phát triển Năm 1950: Các phép thử Turing Alan Turing viết báo cáo với tựa đề “Computing Machinery and Intelligence”, xây dựng phép thử Turing Về bản, Các phép thử Turing một loạt phép thử dựa việc phân tích câu trả lời mợt “máy tính” Các phép thử Turing thực để xác định xem mợt chương trình máy tính phân biệt máy tính với người mợt c̣c trị chuyện có văn túy hay khơng? Bằng cách gõ câu hỏi cho hai đối tượng thử nghiệm, người thẩm vấn cố gắng xác định đối tượng máy tính đối tượng người Máy tính vượt qua Các phép thử Turing người thẩm vấn khơng thể nói khác biệt chủ thể người máy tính Năm 1966: ELIZA, chương trình trị chuyện tạo Chatbot đời với tên gọi Eliza, mợt chương trình máy tính Joseph Weizenbaum (Viện Công nghệ Massachusetts, Mỹ) Ban đầu Eliza tạo nhằm hỗ trợ điều trị tâm lý, đóng vai trị mợt bác sĩ, giao tiếp câu đơn giản với bệnh nhân để kích thích tương tác họ Khi gặp câu khơng có kịch bản, phần mềm tự đợng lấy mợt từ khóa nhận từ thơng điệp gửi tới bệnh nhân bảo họ giải thích thêm Mặc dù có hạn chế nhiều mặt, Eliza xem tiền đề để phát triển chatbot ngày 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 phát triển Kenneth Colby - mợt bác sĩ tâm thần Chương trình đóng vai trị mợt bệnh nhân bị tâm thần phân liệt hoang tưởng Các bác sĩ tâm thần tham gia thử nghiệm xác định khác biệt cuộc hội thoại PARRY cuộc hội thoại khác bệnh nhân tâm thần với Năm 1988: Chatbot Jabberwacky Được phát triển vào năm 1980 phát hành trực tuyến vào năm 1997, chatbot Jabberwacky thiết kế để “Mô trò chuyện người tự nhiên theo cách thú vị hài hước“ Mục đích ban đầu dự án Chatbot Jabberwacky tạo mợt trí tuệ nhân tạo có khả vượt qua Các phép thử Turing Nó thiết kế để bắt chước tương tác người thực cuộc hội thoại với người dùng Mục đích cuối chương trình chuyển từ một hệ thống dựa văn sang tồn bợ hoạt đợng giọng nói Tác giả tin kết hợp vào vật thể xung quanh nhà robot, thiết bị thông minh,… Trong tất chatbot trước dựa sở liệu tĩnh để trả lời trò chuyện, Jabberwacky thu thập cụm từ sử dụng người tham gia trò chuyện với Nó tự thêm câu trả lời vào sở liệu tự động phát triển nội dung riêng Trong năm 2008, Jabberwacky phát hành một phiên đổi tên thành Cleverbot Năm 1992: Dr SBAITSO Hình Đoạn chat người dùng Dr SBAITSO Được tạo Creative Labs vào đầu năm 1990, Dr SBAITSO từ viết tắt Sound Blaster Artificial Intelligent Text to Speech Operator) Dr SBAITSO “trị chuyện” với người dùng thể một nhà tâm lý học Mặc dù hầu hết câu trả lời “WHY DO YOU FEEL THAT WAY?” nghĩa “Bạn cảm thấy nào?” Thay loại tương tác phức tạp, đối mặt với mợt cụm từ mà khơng thể hiểu được, thường trả lời “THAT’S NOT MY PROBLEM” (Đó khơng phải vấn đề tôi) Năm 1995: ALICE ALICE xây dựng một kỹ thuật sử dụng để tạo nên ELIZA ALICE ban đầu sáng tạo Richard Wallace, đời vào ngày 23 tháng 11 năm 1995 Chương trình viết lại ngôn ngữ Java vào năm 1998 ALICEBOT sử dụng mợt lược đồ XML có tên AIML (Artificial Intelligence Markup Language- Ngơn ngữ đánh dấu trí thơng minh nhân tạo) để xác định quy tắc trò chuyện heuristic Tuy nhiên, lại khơng thể vượt qua Các phép thử Turing Năm 2001: SmarterChild SmarterChild một Chatbot có sẵn mạng AOL Instant Messenger Windows Live Messenger (trước MSN Messenger) AOL Instant Messenger mợt chương trình tin nhắn tức thời AOL tạo ra, sử dụng giao thức nhắn tin tức thời OSCAR độc quyền giao thức TOC phép người dùng đăng ký giao tiếp thời gian thực SmarterChild đóng vai trị giới thiệu cho việc truy cập liệu nhanh c̣c trị chuyện cá nhân hóa thú vị Hơn nữa, kết hợp với nhà mạng, chúng trở thành một kênh tiếp thị hiệu miễn phí Chúng giúp người dùng giao tiếp nhanh chóng với hệ thống mạng cách hiển thị thông tin ngắn gọn với lựa chọn bàn phím điện thoại Năm 2006: IBM Watson Với khả chạy hàng trăm thuật tốn phân tích ngơn ngữ một lúc, IBM Watson sở hữu một 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 sở liệu khổng lồ thơng tin Watson nhanh chóng truy cập 200 triệu trang liệu, làm cho trở thành mợt máy trả lời câu hỏi lý tưởng (hoặc, trường hợp 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ổ trợ lý ảo Nửa đầu thập kỷ chứng kiến bùng nổ trợ lý cá nhân ảo: Siri (2010), Google Now (2012), Alexa (2015), Cortana (2015) Google Assistant (2016) Với khả phân tích xử lý ngơn ngữ tự nhiên, trợ lý kết nối với dịch vụ web để trả lời câu hỏi đáp ứng yêu cầu người dùng Từ năm 2016 đến nay: Chatbot Messenger bùng nổ 3.3 Sơ đồ hoạt động 3.4 Sơ đồ trạng thái Chương 4.Hiện thực ứng dụng 4.1 Tạo sở liệu Chuẩn bị:  Máy tính có kết nối internet  Mợt tài khoản Google tạo một tài khoản MongoDB Ứng dụng sử dụng MongoDB Atlas, lưu trữ liệu mây, để xây dụng sở liệu truy cập vào trang Log in | MongoDB chọn đăng nhập với tài khoản Google Hình Trang đăng nhập MongoDB Sao đăng nhập thành công, tiến hành tạo một Organization Hình Tạo Organization Sau tiến hành tạo mợt Project Hình Tạo Project Sau có Project, tạo cluster chọn thơng tin cần thiết Hình Tạo custer chọn thông tin cần thiết Sau hệ thống tạo xong cluster Chọn Database Access để thêm user thiết lập quyền cần thiết Hình Tạo User Thiết lập network access Hình Thiết lập network access Sau thiết lập xong, chọn collections để vào trang quản lý collections Hình Chọn collections Chọn Add My Own Data để tạo sở liệu Hình Tạo sở liệu Sau tạo xong hình tượng tự sau Hình 10 Sau tạo xong sở liệu với bảng table1 4.2 Lập trình phía Server Xây dựng máy chủ chatbot dựa Framework ExpressJS Nodejs Sử dụng module ‘vntk’ để xử lý ngôn ngữ tự nhiên gắn nhãn cho yêu cầu từ phía người dùng Đưa liệu xử lý lên CSDL Chuẩn bị:  Nodejs v12.0.0 trở lên tạo project backend sử dụng nodejs  Cài đặt package: express, vntk, fs, http, body-parser, mongoose  IDE: Visual Studio Code Về ‘vntk’: Sử dụng Bayes Classifier vntk: var vntk = require('vntk'); var classifier = new vntk.BayesClassifier(); classifier.addDocument('lập trình hướng đối tượng gì?', 'oop'); classifier.addDocument('như lập trình hướng đối tượng?', 'oop'); classifier.addDocument('lập trình oop gì?', 'oop'); classifier.addDocument('hướng đối tượng', 'oop'); classifier.addDocument('tại nên lập trình theo hướng đối tượng', 'oopWhy'); classifier.addDocument('lợi ích lập trình hướng đối tượng', 'oopWhy'); classifier.addDocument('lợi ích oop', 'oopWhy'); classifier.train(); console.log(classifier.classify('vì nên sử dụng oop')); Hàm addDocument(): addDocument(dữ_liệu_huấn_luyên, nhãn); Hàm train(); thực huấn luyện cho hệ thống Hàm classify(); phân tích gắn nhãn cho đầu vào Màn hình console xuất kết quả: ‘oopWhy’ Cách thức thực hiện: Với collection trainingData, một giá trị thêm vào với dạng JSON sau: { "dataTraining": [ "các ngơn ngữ lập trình hướng đối tượng ", "ngơn ngữ lập trình hướng đối tượng phổ biến ", "ví dụ ngơn ngữ lập trình hướng đối tượng ", "ngơn ngữ lập trình hướng đối tượng ", "ngôn ngữ oop ", "ngôn ngữ oop ", "ngôn ngữ oop phổ biến" ], "label": "langCode" } Khi khời động server hệ thống gọi hàm để lấy giá trị mảng dataTraining, thực hàm addDocument để đánh nhãn(label) cho liệu dataTraining Rồi dùng hàm train(); để thực huấn luyện Khi người dùng gửi yêu cầu, hệ thống sử dụng hàm classify() nhận yêu cầu từ phía người dùng Hàm phân tích đầu vào dựa liệu huấn luyện đưa xác suất, nhãn có xác suất cao nhất, hệ thống đánh nhãn cho liệu đầu vào Sau có nhãn, hệ thống gửi yêu cầu truy vấn lên CSDL để lấy câu trả lời xuất câu trả lời cho người dùng 4.3 Lập trình phía Client Đề tài sử dụng Angular làm front-end Chuẩn bị:  Tạo một Project Angular  IDE: Visual Studio Code 4.4 Xây dụng giao diện cho web chatbot Hình 11 Giao diện chatbot Chương 5.Kết luận hướng phát triển 5.1 Kết đạt Chatbot OOP tự đợng hóa trả lời câu hỏi lập trình hướng đối tượng dựa ngơn ngữ C++ Đáp ứng thắc mắc lập trình hướng đối tượng, đưa ví dụ giúp người dùng dễ hiểu vấn đề Chatbot hỗ trợ học lập trình hướng đối tượng có số lượng câu trả lời cịn tương đối ít, số lượng liệu training chưa đủ nhiều đa dạng nên có nhiều trường hợp chatbot trả lời khơng xác, chatbot không hiểu ý định ngườu dùng 5.2 Hạn chế Do lần đầu tìm hiểu chủ đề chatbot nên cịn nhiều thiếu sót Việc tìm hiểu chủ đề xử lý ngôn ngữ tự nhiên chưa đủ sâu MongoDB Atlas sử dụng miễn phí nên có nhiều hạn chế tốc độ truy cập 5.3 Hướng phát triển đề tài Để chatbot thông minh hơn, cần training nhiều Phát triển thêm khả gợi ý câu hỏi Phát triển thêm khả tự học cho chatbot Phát triển thêm khả tự tạo câu trả lời Chương 6.Bảng phân công Tên Nguyễn Song Luân Nguyễn Thành Luân Công việc phân công - Hiện thực phần back-end - Chỉnh sửa front-end - Thêm liệu training câu trả lời - Hiện thực phần front-end - Thêm liệu training câu trả lời Hoàn thành Hoàn thành Hồn thành Đánh giá Chương 7.Trích dẫn, tài liệu tham khảo Tài liệu ơn tập lập trình hướng đối tượng Ban học tập Công nghệ phần mềm Giáo trình Lập trình hướng đối tượng (ThS Trương Hải Bằng) – Đại học Công nghệ thông tin https://www.dienmayxanh.com/kinh-nghiem-hay/tri-tue-nhan-tao-ai-la-gi-ungdung-nhu-the-nao-tro-1117277 https://vi.wikipedia.org/wiki/H%E1%BB%99p_tr%C3%B2_chuy%E1%BB%87n https://congdongchatbot.com/lich-su-hinh-thanh-va-phat-trien-cua-chatbot/ https://congdongchatbot.com/7-loi-ich-cua-chatbot-mang-lai-cho-doanh-nghiepcua-ban/ https://topdev.vn/blog/mongodb-la-gi/ ... "dataTraining": [ "các ngôn ngữ lập trình hướng đối tượng ", "ngơn ngữ lập trình hướng đối tượng phổ biến ", "ví dụ ngơn ngữ lập trình hướng đối tượng ", "ngơn ngữ lập trình hướng đối tượng ", "ngơn ngữ oop... trợ học lập trình hướng đối tượng? ?? 1.2 Mục tiêu Mục tiêu của đề tài xây dựng một trang web chatbot hỗ trợ cho việc học lập trình hướng đối tượng (OOP) thông qua việc sử dụng thư viện hỗ trợ xử... Angular 1.3 Đối tượng hướng đến phạm vi đề tài Đối tượng hướng đến sinh viên theo học trường Đại học Cơng nghệ thơng tin có nhu cầu học lập trình hướng đối tượng Rợng sinh viên , học sinh có

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

w