Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 60 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
60
Dung lượng
2,89 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO ĐỒ ÁN Đề Tài: Xây dựng Chatbot hỗ trợ tìm kiếm cơng thức nấu ăn Sinh viên thực hiện: Lê Nhị Khang: 18520888 Võ Đoàn Minh Hiếu: 18520757 GVHD: Ts Huỳnh Ngọc Tín TP Hồ Chí Minh, ngày 23 tháng 12 năm 2021 NHẬN XÉT CỦA GIẢNG VIÊN LỜI CẢM ƠN Trước tiên nhóm chúng em xin gửi chân thành đến thầy Huỳnh Ngọc Tín Chính nhờ giúp đỡ chia sẻ thầy lời góp ý, phản biện mà nhóm hồn thành sản phẩm hoàn thiện Tuy vậy, trình thực đồ án, viết báo cáo việc khơng tránh khỏi thiếu sót điều chắn Vì thế, nhóm mong nhận ý kiến đóng góp quý báu quý Thầy để nhóm rút kinh nghiệm hoàn thiện đồ án cách tốt Nhóm em xin chân thành cảm ơn! Tp Hồ Chí Minh, ngày 23 tháng 12 năm 2021 Nhóm thực Lê Nhị Khang Võ Đồn Minh Hiếu ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập - Tự Do - Hạnh Phúc ĐỀ CƯƠNG CHI TIẾT TÊN ĐỀ TÀI: Xây dựng chatbot hỗ trợ tìm kiếm cơng thức nấu ăn TÊN ĐỀ TÀI ( TÊN TIẾNG ANH ): BUILD CHATBOT TO SUPPORT SEARCHING FOOD RECIPES Cán hướng dẫn: Ts Huỳnh Ngọc Tín Thời gian thực hiện: Từ ngày 08-10-2021 đến ngày 20-12-2021 Sinh viên thực hiện: Võ Đoàn Minh Hiếu - 18520757 Lê Nhị Khang - 18520888 Nội dung đề tài: Lý chọn đề tài: • Ngày nay, nhịp sống đô thị đại với học hành công việc dường chiếm phần lớn quỹ thời gian ngày người Với quỹ thời gian ỏi cịn lại ngày việc tìm kiếm hay thử nghiệm công thức nấu ăn trở nên khó khăn khiến nhiều người thích nấu ăn phải từ bỏ • Mạng xã hội ngày phát triển với vô số ứng dụng dường chiếm phần lớn quỹ thời gian ngày người Việc chăm sóc sức khỏe ăn uống hợp lý gần bị phớt lờ • Khi sống vội vả, mạng xã hội phát triển, người thường không để ý đến vấn đề sức khỏe Việc tập luyện thể thao chế độ ăn hợp lý cần thiết Hàm lượng chất dinh dưỡng nạp vào thể ngày ảnh hưởng nhiều tới sức khỏe • Trong thời điểm dịch Covid, người phải học tập làm việc nhà dẫn đến vấn đề lại trở nên quan trọng nhiều Các phịng tập khơng mở cửa Rất nhiều người khơng thể tập luyện nhà thường xuyên, thiếu vận động khiến sức khỏe tệ dần theo thời gian Các chất dinh dưỡng thể không cân Biểu việc cảm thấy mệt mõi, béo lên, tâm trạng trở nên tiêu cực • Các hàng quán, quán ăn dừng bán nên người phải tự nấu ăn, lại thiếu cơng thức, kiến thức chế độ dinh dưỡng không đủ, biết có tốt cho sức khỏe không Với đa số người, việc biết thành phần dinh dưỡng • • • ăn khó khăn Với lý trên, đa số người khơng có thời gian để tìm kiếm thử công thức nấu ăn website, khó biết hàm lượng dinh dưỡng để có chế độ ăn hợp lý Tuy nhiên nhờ mạng xã hội phát triển, thông tin qua mạng xã hội tin nhắn ngắn gọn dễ tiếp cận với người dùng tiết kiệm thời gian tìm kiếm, nhiều người chia công thức nấu ăn thông qua mạng xã hội Facebook, Tiktok hay Youtube short Chatbot công nghệ phát triển gần đây, nhiều trang web ứng dụng tích hợp chatbot để hổ trợ cho việc tư vấn khách hàng Người sử dụng nhanh chóng tìm kiếm hỏi lại lức có thơng tin mà khơng cần phải chờ đợi Nắm bắt thực trạng nhóm định làm ứng dụng chatbot đưa công thức nấu ăn hàm lượng dinh dưỡng cần với câu hỏi đơn giản vài lần bấm Mục tiêu: • Xây dựng Chatbox hỗ trợ cung cấp cơng thức chế biến ăn dựa nhu cầu nguyên liệu thành phần dinh dưỡng • Đưa thành phần dinh dưỡng ăn • Đưa kế hoạch ăn uống ngày Phạm vi nghiên cứu: • Tìm hiểu phân tích nhu cầu người dùng • Nghiên cứu kỹ thuật nấu, thành phần dinh dưỡng • Nghiên cứu chủ đề cần thiết cho chatbot • Nghiên cứu API có cung cấp sẳn liệu cơng thức dinh dưỡng • Nghiên cứu cách xử lý liệu lưu trữ trạng thái Đối tượng sử dụng: Các cá nhân muốn biết công thức thức ăn thành phần dinh dưỡng, muốn cân chế độ dinh dưỡng, kiểm soát tốt lượng dinh dưỡng nạp vào thể Hướng đến đối tượng cần tìm hiểu để nhận biết tốt, giúp ăn uống cho hợp lý Phương pháp thực hiện: • Xây dựng chatbot framework Rasa • Sử dụng API cung cấp liệu • Nâng cấp khả nhận biết ngôn ngữ tự nhiên chatbot Kết dự kiến: • Xây dựng hệ thống chatbot chia cơng thức chế biến ăn • Cung cấp thành phần dinh dưỡng ăn • Đưa kế hoạch thực đơn cho ngày • Hệ thống chatbot có độ xác cao, có khả nhận biết ngôn ngữ tốt Kế hoạch thực hiện: Công việc STT Thời gian thực Phân công Khảo sát phân tích liệu 08/10 – 12/10 Cả hai Tổng kết đưa chủ đề 12/10 – 13/10 Cả hai Nghiên cứu Python Framework Rasa 13/10 – 20/10 Cả hai Lập danh sách cơng việc 20/10 – 21/10 Cả hai Tìm kiếm phân tích API 21/10 – 24/10 Võ Đồn Minh Hiếu Tìm kiếm liệu chủ đề liên quan 21/10 – 24/10 Lê Nhị Khang Cài đặt cấu hình chatbot theo rasa 24/10 – 30/10 Cả Nghiên cứu sử dụng api 01/11- 10/11 Lê Nhị Khang Xây dựng cấu trúc theo chủ đề 01/11- 10/11 Võ Đoàn Minh Hiếu 10 Hiện thực chủ đề chatbot 10/11 – 10/12 Cả hai 11 Triển khai kiểm thử 10/12 – 18/12 Cả hai 12 Viết báo cáo 18/10 – 20/12 Cả hai Mục lục CHƯƠNG 1: GIỚI THIỆU CHUNG 11 1.1 Lý chọn đề tài 11 1.2 Điểm bật 12 1.3 Đối tượng nghiên cứu 12 1.4 Phạm vi ứng dụng 13 1.5 Khảo sát thực tế 13 1.5.1 Khảo sát website 13 1.5.2 Khảo sát trang web có giao diện tìm kiếm 13 1.5.3 Khảo sát Facebook, Tiktok, Youtube 14 CHƯƠNG 2: KIẾN THỨC NỀN TẢNG 15 2.1 Giới thiệu chung 15 2.2 Xu thế, tính ứng dụng phát triển ChatBot 15 2.2.1 Sự phát triển “NLP” “NLU”: 16 2.2.2 Hệ sinh thái, tảng (platform): 16 2.3 Các ứng dụng chatbot 17 2.4 Ứng dụng chatbot lĩnh vực 17 CHƯƠNG 3: CƠ SỞ LÝ THUYẾT XÂY DỰNG CHATBOT 19 3.1 Tìm hiểu chatbot 19 3.1.1 Các loại chatbot 19 3.2 Tìm hiểu Rasa 20 3.2.1 Giới thiệu Rasa 20 3.2.2 Ưu điểm rasa 20 3.2.3 Nhược điểm rasa 20 3.3 Kiến trúc Rasa 20 CHƯƠNG 4: GIỚI THIỆU MỘT SỐ KỸ THUẬT SỬ DỤNG RASA FRAMEWORK 22 4.1 Một số kỹ thuật sử dụng chatbot 22 4.1.1 Xác định ý định (intent) 22 4.2 Các vấn đề xác định ý định (intent) 22 4.3 Xác định ý định dựa học máy (machine learning) 25 4.4 Các thành phần Rasa 27 4.4.1 Giới thiệu 27 4.4.2 Cấu trúc mã nguồn Rasa 31 4.4.3 Intent 33 4.4.4 Entity 33 4.4.5 Stories 33 4.4.6 Actions 34 4.4.7 Policy 35 4.4.8 Slot 36 4.5 Tổng kết chương 36 CHƯƠNG 5: PHÂN TÍCH THIẾT KẾ VÀ XÂY DỰNG CHATBOT HỖ TRỢ TƯ VẤN ĂN UỐNG 37 5.1 Giới thiệu toán 37 5.2 Phân tích khả hội thoại chatbot 37 5.3 Phân tích thiết kế hệ thống chatbot 38 5.3.1 Mơ hình huấn luyện chatbot: 38 5.3.2 Một pipeline thường bao gồm ba phần chính: 38 5.4 Phân tích thiết kế hệ thống 40 5.4.1 Sơ đồ use case 40 5.4.2 Sơ đồ (sequence diagram) 43 CHƯƠNG 6: TIẾN HÀNH XÂY DỰNG 46 6.1 Xây dựng Intents: 46 6.2 Xây dựng Entities: 47 6.3 Các giao diện chatbot: 47 CHƯƠNG 7: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59 7.1 Kết đạt 59 7.2 Hạn chế 59 7.3 Hướng phát triển 59 Danh Mục Hình Hình 2.1 Messenger Chatbot 17 Hình 3.1 Các loại chatbot 19 Hình 4.1 Cách thức xác định intent 25 Hình 4.2 Sơ đồ thành phần Rasa 28 Hình 4.3 Sơ đồ học tương tác 29 Hình 4.4 Giao diện người dùng RasaX 29 Hình 4.5 Sơ đồ điều hướng tin nhắn 30 Hình 4.6 Cây mã nguồn 31 Hình 5.1 Sơ đồ chức 41 Hình 5.2 Sơ đồ lưu trữ nguyên liệu kỹ thuật nấu 44 Hình 5.3 Sơ đồ tìm kiếm cơng thức nấu ăn 45 Hình 6.1 Hướng dẫn lấy cơng thức 47 Hình 6.2 Hướng dẫn sử dụng chatbot 48 Hình 6.3 Hướng dẫn đặt thông số dinh dưỡng 49 Hình 6.4 Giải thích kỹ thuật nấu ăn 50 Hình 6.5 Cài đặt keyword để tìm kiếm ăn 51 Hình 6.6 Cài đặt thơng số dinh dưỡng cho ăn 52 Hình 6.7 Hiển thị keyword 53 Hình 6.8 Hiển thị thông số dinh dưỡng 53 Hình 6.9 Tìm kiếm cơng thức nấu ăn 54 Hình 6.10 Hiển thơng tin dinh dưỡng ăn 55 Hình 6.11 Hiển thị ngun liệu ăn 56 Hình 6.12 Hiển thị thơng tin chi tiết nguyên liệu nấu ăn 57 Hình 6.13 Xem lại danh sách ăn tìm kiếm 58 Hình 6.14 Tạo thực đơn ngày 58 TÓM TẮT ĐỒ ÁN Đồ án “Xây dựng Chatbot hỗ trợ tìm kiếm công thức nấu ăn” gồm chương: Chương 1: Giới thiệu đề tài, đưa điểm bật lý chọn đề tài Chương 2: Trình bày kiến thức tảng để xây dựng chatbot Chương 3: Tìm hiểu loại chatbot framework Rasa Chương 4: Trình bày số kiến trúc kỹ thuật xây dựng chatbot Rasa Chương 5: Phân tích yêu cầu khảo sát đưa thiết kế chi thiết cho chatbot Chương 6: Trình bày chi tiết giai đoạn thực hiên xây dựng chatbot Chương 7: Rút ưu nhược điểm chatbot hướng phát triển ứng dụng tương lai 10 CHƯƠNG 6: TIẾN HÀNH XÂY DỰNG Xây dựng Intents: 6.1 • Hệ thống chatbot bao gồm intents bên Intent greet Food_recipe ask_for_cook_technique set_nutrient_setting get_recipes clear_nutrient clear_all get_food_detail show_nutrient_setting ask_for_meal_plan ask_for_help get_last_food how_to_cook get_ingredient_detail help_get_recipe help_set_nutrient Ý nghĩa / Chú thích Xác định lời chào Xác định từ khóa nguyên liệu kỹ thuật nấu ăn Xác định kỹ thuật nấu ăn để đưa giải thích Xác định thành phần dinh dưỡng Xác định yêu cầu lấy công thức nấu ăn theo nhu cầu Xác định yêu cầu dọn thông số dinh dưỡng Xác định yêu cầu dọn thông số Xác định yêu cầu xem thơng tin chi tiết ăn Xác định yêu cầu hiển thị thông tin nhu cầu dinh dưỡng ăn lưu trữ Xác định yêu cầu tạo thực đơn ngày Xác định yêu cầu tư vấn cách sử dụng Xác định yêu cầu hiển thị lại ăn vừa xem Xác định yêu cầu hiển thị cách nấu ăn chọn Xác định yêu cầu hiển thị nguyên liệu nấu ăn Xác định u cầu hướng dẫn cách lấy cơng thức ăn Xác định yêu cầu hướng dẫn cách đặt yêu cầu dinh dưỡng cho ăn cần tìm 46 6.2 Xây dựng Entities: • Hệ thống chatbot bao gồm entity là: o ingredient: lưu thơng tin ngun liệu nấu ăn o cook_technique: lưu thông tin kỹ thuật nấu ăn o nutrient: chứa loại thành phần dinh dưỡng o reset_nutrient_option: lưu thông tin lựa chọn loại giá trị muốn đưa mặc định (min, max, all) o min: lưu giá trị (calory_min, fat_min, ) o max: lưu giá trị max (calory_max, fat_max, ) o food_position: lưu thông tin lựa chọn công thức nấu ăn danh sách ăn cung cấp o nutrient_type: lưu thơng tin loại thành phần dinh dưỡng 6.3 Các giao diện chatbot: • Giao diện người dùng muốn biết cách sử dụng chatbot Hình 6.1 Hướng dẫn lấy cơng thức 47 Hình 6.2 Hướng dẫn sử dụng chatbot 48 Hình 6.3 Hướng dẫn đặt thơng số dinh dưỡng 49 • Giao diện người muốn biết thêm cơng thức nấu ăn Hình 6.4 Giải thích kỹ thuật nấu ăn 50 • Giao diện người dùng muốn cài đặt ăn dựa theo ngun liệu cơng thức nấu ăn Hình 6.5 Cài đặt keyword để tìm kiếm ăn 51 • Giao diện người dùng thay đổi thông số thành phần dinh dưỡng ăn Hình 6.6 Cài đặt thơng số dinh dưỡng cho ăn 52 • Giao diện người muốn kiểm tra lại thành phần ăn Hình 6.7 Hiển thị keyword • Giao diện người muốn kiểm tra lại thông số thành phần dinh dưỡng Hình 6.8 Hiển thị thơng số dinh dưỡng 53 • Giao diện người muốn bắt đầu tìm kiếm ăn dựa thơng số cung cấp Hình 6.9 Tìm kiếm cơng thức nấu ăn 54 • Giao diện người muốn bắt đầu tìm hiểu thơng tin ăn danh sách ăn tìm kiếm Hình 6.10 Hiển thơng tin dinh dưỡng ăn 55 • Giao diện người muốn bắt đầu muốn coi thành phần nguyên liệu tạo nên ăn Hình 6.11 Hiển thị ngun liệu ăn 56 • Giao diện người muốn coi thơng tin ngun liệu Hình 6.12 Hiển thị thơng tin chi tiết ngun liệu nấu ăn • Giao diện người muốn coi lại danh sách tìm kiếm ăn 57 Hình 6.13 Xem lại danh sách ăn tìm kiếm • Giao diện người muốn tạo kế hoạch ăn ngày Hình 6.14 Tạo thực đơn ngày 58 CHƯƠNG 7: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 7.1 Kết đạt • Sau hoàn thành đồ án “Xây dựng chatbot hỗ trợ tư vấn ăn uống: o Tìm hiểu nắm khái niệm quy trình xây dựng chatbot AI o Tìm hiểu dịch vụ facebook, telegram để xây dựng chatbot o Tìm hiểu công nghệ liên quan đến việc xử lý ngôn ngữ tự nhiên Rasa, Dialogflow, Wit.ai, LUIS, o Phân tích thơng tin, thành phần dinh dưỡng ăn • Đóng góp đồ án phát hành demo người dùng tham khảo ăn đưa chế độ ăn hợp lý 7.2 Hạn chế • Do thời gian thực đồ án khơng nhiều kiến thức khả tự nghiên cứu thành viên nhóm cịn có hạn nên nhóm thực số chức cho chatbot • Kịch chatbot chưa đầy đủ tập liệu nhóm tự thu thập cịn ít, cần cung cấp tảng để thu thập nhiều thơng tin, giúp cho việc tổng hợp khảo sát định hướng phát triển trải nghiệm người dùng tốt • Một số tính nâng cao cho chatbot nhóm chưa thể hồn thành hi vọng có thời gian thực đầy đủ khóa luận tốt nghiệp 7.3 Hướng phát triển • Một số hướng phát triển nhóm cho chatbot để sử dụng cho khóa luận tốt nghiệp sau này: o Thu thập tập liệu câu trả lời đầy đủ, để xây dựng kịch cho bot cách rõ ràng đầy đủ o Tìm hiểu thêm số tính nâng cao framework Rasa để xây dựng bot thơng minh Có thể hiểu hầu hết câu mà người dùng nhập vào o Phát triển cho bot linh hoạt hơn, giao tiếp với người dùng với câu từ đa dạng, gần gũi thân thiện o Xây app mobile để tích hợp chatbot để người dùng tiện lợi việc quản lý o Xây dựng ebook để bot gợi ý người dùng tới trang ebook tham khảo chi tiết cách nấu ăn 59 TÀI LIỆU THAM KHẢO Một số link nhóm tham khảo để thực đồ án: • https://rasa.com/docs/ • https://spacy.io/api/doc • https://stackoverflow.com/ 60 ... liệu kỹ thuật nấu 43 Hình 5.2 Sơ đồ Sơ đồ lưu trữ nguyên liệu kỹ thuật nấu 44 • Tìm kiếm Cơng Thức nấu ăn Hình 5.3 Sơ đồ tìm kiếm cơng thức nấu ăn 45 CHƯƠNG 6: TIẾN HÀNH XÂY DỰNG Xây dựng Intents:... nấu ăn 57 Hình 6.13 Xem lại danh sách ăn tìm kiếm 58 Hình 6.14 Tạo thực đơn ngày 58 TÓM TẮT ĐỒ ÁN Đồ án ? ?Xây dựng Chatbot hỗ trợ tìm kiếm cơng thức nấu ăn? ??... Usecase Tìm kiếm theo nguyên liệu Cho phép gười dùng tìm kiếm cơng thức nấu ăn bagnwf cách cung cấp tên nguyên liệu kỹ thuật nấu ăn Tìm kiếm theo thành phần dinh dưỡng Là trường hợp đặc biệt ? ?tìm kiếm