Báo cáo một số công nghệ phát triển phần mềm hệ thống Chatbot

54 191 0
Báo cáo một số công nghệ phát triển phần mềm hệ thống Chatbot

Đ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

Báo cáo một số công nghệ phát triển phần mềm hệ thống Chatbot và ứng dụng trong đào tạo trực tuyến Chương 1: Tổng quan về Chatbot Chương 2: Một số kỹ thuật sử dụng trong Chatbot Chương 3: Phân tích thiết kế hệ thống Chương 4: Ứng dụng Chatbot

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ======***====== BÁO CÁO BTL THUỘC HỌC PHẦN: MỘT SỐ CÔNG NGHÊ PHÁT TRIỂN PHẦN MỀM Đề tài: HỆ THỐNG CHATBOT VÀ ỨNG DỤNG TRONG ĐÀO TẠO TRỰC TUYẾN GVHD: Nhóm - Lớp: Thành viên: Hà nội, Năm 2020 MỤC LỤC Danh sách biểu đồ - hình vẽ Mở đầu Ở nước ta, việc giải đáp thắc mắc phận chăm sóc khách hàng qua tin nhắn trực tuyến ưa chuộng Tuy nhiên, việc cịn thực cách thủ cơng gặp nhiều khó khăn như: tốn nhiều thời gian chi phí chi trả cho nhân viên để trả lời câu hỏi đơn giản giống Chính vậy, nhu cầu cấp thiết cần hệ thống điều khiển thông minh, tự động để mang lại hiệu cao Chatbot lựa chọn hồn hảo Hiện nay, ứng dụng trị chuyện trực tuyến người sử dụng bắt đầu trở thành phương tiện ưa thích để giao tiếp với doanh nghiệp giải thắc mắc khách hàng Ứng dụng nhắn tin nhanh trở thành điểm đến hàng đầu cho thương hiệu nhằm tiếp cận người tiêu dùng, khơng có đáng ngạc nhiên Chatbot ngày trở nên phổ biến Hiện nay, đỉnh cách mạng 4.0, chatbot quan trọng văn hóa nhân loại Chatbot có mặt khắp lĩnh vực thương mại điện tử, ngân hàng, y tế, giáo dục, thư viện,… Vì nhóm chúng em chọn tìm hiểu đề tài tập lớn “Hệ thống chatbot ứng dụng đào tạo trực tuyến” Chương Tổng quan hệ thống Chatbot 1.1 Giới thiệu Hệ thống đối thoại người máy hay gọi với thuật ngữ chatbot ChatBot chương trình máy tính tiến hành trị chuyện thơng qua nhắn tin nhanh, tự động trả lời câu hỏi xử lý tình Phạm vi phức tạp ChatBot xác định thuật toán người tạo nên chúng ChatBot thường ứng dụng nhiều lĩnh vực thương mại điện tử, dịch vụ khách hàng, y tế, tài ngân hàng, dịch vụ giải trí, ứng dụng giáo dục,… Chatbot chia thành loại: - Hệ thống hướng mục tiêu miền ứng dụng (Task-Oriented) - Hệ thống khơng có định hướng mục tiêu (chit-chat) Miền mở (Open Domain): Mô hình trả lời tự động miền mở cho phép người dùng tham gia trị chuyện với chủ đề bất kỳ, khơng thiết phải có mục tiêu rõ ràng hay ý định cụ thể Các trò chuyện mạng xã hội Facebook, Twitter thường miền mở, chúng vào tất chủ đề Số lượng chủ đề thảo luận đề cập đến không giới hạn, đó, tri thức yêu cầu tạo để trả lời câu đối thoại thuộc miền mở trở nên khó Tuy nhiên, việc thu thập trích rút liệu từ miền phong phú đơn giản Miền đóng (Close Domain): Mơ hình trả lời tự động thuộc miền đóng thường tập trung vào trả lời câu hỏi đối thoại liên quan đến miền cụ thể, ví dụ như: Y tế, Giáo dục, Du lịch, Mua sắm, Trong miền đóng cụ thể, không gian mẫu hỏi input output có giới hạn, hệ thống cố gắng để đạt mục tiêu cụ thể Hệ thống hỗ trợ kỹ thuật (Technical Customer Support) hay tư vấn hỗ trợ mua hàng (Shopping Assistants) ứng dụng thuộc miền đóng Các hệ thống khơng thể đối thoại “Chính trị” hay “Pháp luật”, chúng cần thực nhiệm vụ cụ thể cách hiệu Chắc chắn, người dùng hỏi đáp gì, hệ thống khơng u cầu phải xử lý trường hợp ngoại lệ 1.2 Cấu trúc thành phần hệ thống chatbot Hình 1: Cấu trúc thành phần hệ thống Chatbot Chatbot có thành phần hiểu ngơn ngữ tự nhiên (NLU), quản lý hội thoại (DM), thành phần sinh ngôn ngữ (NLG) Các thành phần nhận dạng giọng nói Speech Recognition (text to speech hay speech to text) thành phần tăng cường Mỗi thành phần chatbot có vai trị riêng: - NLU: bao gồm việc xử lý ngơn ngữ tự nhiên (NLP) có nhiệm vụ xác định ý định câu hỏi(intent classification) trích chọn thông tin (slots - filter) DM: Quản lý hội thoại có nhiệm vụ xác định hành động (action) dựa vào trạng thái hành động trước hay ngữ cảnh hội thoại Các ngữ cảnh phải đối chiếu kịch dựng sẵn (history) đào tạo cho bot Thành phần đảm nhiệm việc lấy liệu từ hệ thống - khác qua API gọi action NLG: thành phần sinh ngơn ngữ dựa vào sách (policy) hành động xác định DM thông qua tập hội thoại NGL sinh câu trả lời dựa vào tập mẫu câu trả lời (pre-defined template) đào tạo cho bot Để rõ chi tiết luồng xử lý tin nhắn từ thành phần chatbot ta xem mơ hình sau: Hình 2: Mơ hình thành phần xử lý chatbot 1.3 Hiểu ngôn ngữ tự nhiên (NLU) Đây nói thành phần quan trọng chatbot Chatbot có thơng minh hay khơng thành phần định Mục tiêu thành phần trích xuất thành phần thơng tin từ câu nói người dùng: - Đầu tiên phân loại lĩnh vực (domain classification), lĩnh vực ngân hàng, y tế hay bảo hiểm Nếu trường hợp có lĩnh vực khơng cần thiết cho bước phân loại - Tiếp đến phân loại ý định (intent classification), ví dụ xác định - ý định tra cứu thông tin tài khoản ý định kiểm tra số dư Cuối bước trích xuất thông tin (slot fillter hay entity extraction) - câu hỏi người dùng NLU xử lý tin nhắn người dùng đường ống (pipeline) nơi mà cấu hình bước xử lý liên : Phân loại tên miền(Domain Phân loại ý định (intent Trích chọn thơng tin (Entity classification) Classification) Extraction) Hình 3: Các bước xử lý pipeline NLU Trong đường ống bạn tùy chỉnh thành phần từ bước tiền xử lý liệu, mô hình hóa ngơn ngữ, thuật tốn dùng để tách từ trích xuất thơng tin thực thể… Để phân loại ý định câu người dùng ta cần mơ hình hóa ngơn ngữ tức việc biểu diễn ngơn ngữ dạng vector số học cho máy hiểu (vectorization) Phương pháp phổ biến word embedding (nhúng từ) Tập nhúng từ tên chung cho tập hợp mơ hình ngơn ngữ phương pháp học đặc trưng xử lý ngôn ngữ tự nhiên (NLP), nơi từ cụm từ từ vựng ánh xạ tới vectơ số thực Một số phương pháp biểu diễn phổ biến Word2Vec, GloVe hay FastText giới thiệu phần sau Sau mơ hình hóa ngơn ngữ bao gồm liệu đầu vào training cho bot việc xác định ý định người dùng từ câu hỏi người dùng dựa tập training bước phân loại ý định (intent classification) hay phân loại văn Ở bước ta dùng số kỹ thuật như: Naive Bayes, Decision Tree (Random Forest), Vector Support Machine (SVM), Convolution Neural Network (CNN), Recurrent Neural Network (RNN), Long Short-Term Memory (LSTM, Bi-LSTM) Hầu hết chatbot ứng dụng mơ hình deep learning RNN LSTM để phân loại ý định người dùng Bài toán thách thức lớn cho chatbot bước xác định nhiều ý định (multiple intents) câu nói người dùng Ví dụ bạn nói “xin chào, mã sinh viên 2017605551 tên gì” bot phải xác định ý định “chào hỏi” “kiểm tra tên sinh viên” câu nói người dùng Nếu bot hiểu trả lời câu hỏi loại giúp việc tương tác với bot trở nên tư nhiên Tiếp đến việc trích xuất thơng tin câu hội thoại người dùng Các thơng tin cần trích xuất thường dạng số, chuỗi thời gian chúng phải khai báo huấn luyện trước Phân tách từ (Tokenization hay word segmention): Tách từ trình xử lý nhằm mục đích xác định ranh giới từ câu văn, hiểu đơn giản tách từ trình xác định từ đơn, từ ghép… có câu Đối với xử lý ngơn ngữ, để xác định cấu trúc ngữ pháp câu, xác định từ loại từ câu, yêu cầu thiết đặt phải xác định đâu từ câu Có số thuật toán hỗ trợ giải toán mơ hình so khớp từ dài (longest matching), so khớp cực đại (Maximum Matching), Markov ẩn (Hidden Markov Models- HMM) hay mơ hình CRF (conditinal random field)… 1.3.1 Xác định ý định người dùng Hình 4: Mơ hình bước xác định ý định Hệ thống phân lớp ý định người dùng có số bước bản: - Tiền xử lý liệu Trích xuất đặc trưng Huấn luyện mơ hình 10 - Phân lớp Bước tiền xử lý liệu thao tác “làm sạch” liệu như: loại bỏ thông tin dư thừa, chuẩn hoá liệu chuyển từ viết sai tả thành tả, chuẩn hố từ viết tắt… Bước tiền xử lý liệu có vai trị quan trọng hệ thống chatbot Nếu liệu đầu vào có xử lý bước làm tăng khả năng độ xác thông minh cho bot Tiếp đến bước trích xuất đặc trưng (feature extraction hay feature engineering) từ liệu làm Trong mô hình học máy truyền thống (trước mơ hình học sâu áp dụng rộng rãi), bước trích xuất đặc trưng ảnh hưởng lớn đến độ xác mơ hình phân lớp Để trích xuất đặc trưng tốt, cần phân tích liệu tỉ mỉ cần tri thức chuyên gia miền ứng dụng cụ thể Bước huấn luyện mô hình nhận đầu vào đặc trưng trích xuất áp dụng thuật tốn học máy để học mơ hình phân lớp Các mơ hình phân lớp luật phân lớp (nếu sử dụng decision tree) vector trọng số tương ứng với đặc trưng trích xuất (như mơ hình logistic regression, SVM, hay mạng Neural) Sau có mơ hình phân lớp intent, sử dụng để phân lớp câu hội thoại Câu hội thoại qua bước tiền xử lý trích xuất đặc trưng, sau mơ hình phân lớp xác định “điểm số” cho intent tập intent đưa intent có điểm cao Để đưa hỗ trợ xác, chatbot cần xác định ý định (intent) người dùng Việc xác định ý định người dùng định hội thoại người chatbot diễn Vì thế, xác định sai ý định người dùng, chatbot đưa phản hồi khơng đúng, khơng hợp ngữ cảnh Khi đó, người dùng thấy chán ghét khơng quay lại sử dụng hệ thống Bài toán xác định ý định người dùng đóng vai trị quan trọng hệ thống chatbot Đối với miền ứng dụng đóng, giới hạn số lượng ý định người dùng nằm tập hữu hạn ý định định nghĩa sẵn, có liên quan đến nghiệp vụ mà chatbot hỗ trợ Với giới hạn này, toán 40 3.3.2 Đặc tả use case 3.3.2.1 Mô tả use case “tương tác với chatbot” Tên use case: Xem danh sách ca sĩ Mô tả vắn tắt: Use case cho phép người sử dụng, người quản trị, khách hàng tìm kiếm sản phẩm lưu CSDL Luồng kiện: 3.1 Luồng bản: 3.1.1 Use case bắt đầu người dùng nhập chữ vào ô text box hình hiển thị, hệ thống kiểm tra xem từ ngữ vừa nhập hiển thị câu trả lời lấy CSDL để tương tác với người dùng 3.1.2 Khi người dùng khơng có câu hỏi để hỏi ấn nút use case kết thúc 3.2 Luồng rẽ nhánh: 3.2.1 Tại thời điểm q trình thực hiện, khơng thể kết nối với CSDL hiển thị thơng báo lỗi use case kết thúc Các yêu cầu đặc biệt: Khơng có Tiền điều kiện: Khơng có Hậu điều kiện: Khơng có Điểm mở rộng: Khơng có *Biểu đồ 41 : nguoi dung : tuongtacvoichatbotController : tuongtacvoichatbotUI 1: nhap thong tin() : ICSDL : CSDL 2: kiem tra thongtin() 3: lay thong tin() 4: lay thong tin() 5: return ket qua 6: hien thi ket qua() *Biểu đồ lớp phân tích tuongtacvoichatbotUI nhaop thong tin() hien thi ket qua() tuongtacvoichatbotController 1 * ICSDL *Hình dung hình kiem tra thong tin() 42 43 Chương Ứng dụng chatbot 4.1 Ngơn ngữ lập trình Python 4.1.1 Python gì? Python ngơn ngữ lập trình bậc cao cho mục đích lập trình đa Ngơn ngữ lập trình Python tạo Guido van Rossum l ần đầu mắt vào năm 1991 Python thiết kế với ưu điểm mạnh dễ đọc, dễ học dễ nhớ Python ngơn ngữ có hình thức sáng sủa, cấu trúc rõ ràng, thuận tiện cho người học lập trình Cấu trúc Python cịn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu 4.1.2 Tính Python • Ngơn ngữ lập trình đơn giản, dễ học: Python có cú pháp đơn giản, rõ ràng Nó dễ đọc viết nhiều so sánh với ngơn ngữ lập trình khác C++, Java, C# Python làm cho việc lập trình trở nên thú vị, cho phép bạn tập trung vào giải pháp khơng phải cú pháp • Miễn phí, mã nguồn mở: Bạn tự sử dụng phân phối Python, chí dùng cho mục đích thương mại Vì mã nguồn mở, bạn khơng sử dụng phần mềm, chương trình viết Python mà cịn thay đổi mã nguồn Python có cộng đồng rộng lớn, khơng ngừng cải thiện lần cập nhật • Khả di chuyển: Các chương trình Python di chuyển từ tảng sang tảng khác chạy mà khơng có thay đổi Nó chạy liền mạch hầu hết tất tảng Windows, macOS, Linux • Khả mở rộng nhúng: Giả sử ứng dụng địi hỏi phức tạp lớn, bạn dễ dàng kết hợp phần code C, C++ ngơn ngữ khác (có thể gọi từ C) vào code Python Điều cung cấp cho ứng dụng bạn tính tốt khả scripting mà ngơn ngữ lập trình khác khó làm • Ngơn ngữ thơng dịch cấp cao: Không giống C/C++, với Python, bạn lo lắng nhiệm vụ khó khăn quản lý nhớ, dọn dẹp 44 liệu vô nghĩa, Khi chạy code Python, tự động chuyển đổi code sang ngơn ngữ máy tính hiểu Bạn không cần lo lắng hoạt động cấp thấp • Thư viện tiêu chuẩn lớn để giải tác vụ phổ biến: Python có số lượng lớn thư viện tiêu chuẩn giúp cho cơng việc lập trình bạn trở nên dễ thở nhiều, đơn giản khơng phải tự viết tất code Ví dụ: Bạn cần kết nối sở liệu MySQL Web server? Bạn nhập thư viện MySQLdb sử dụng Những thư viện kiểm tra kỹ lưỡng sử dụng hàng trăm người Vì vậy, bạn chắn khơng làm hỏng code hay ứng dụng • Hướng đối tượng: Mọi thứ Python hướng đối tượng Lập trình hướng đối tượng (OOP) giúp giải vấn đề phức tạp cách trực quan Với OOP, bạn phân chia vấn đề phức tạp thành tập nhỏ cách tạo đối tượng 4.2 Thư viện sử dụng 4.2.1 Chatterbot ChatterBot thư viện Python giúp dễ dàng tạo phản hồi tự động cho đầu vào người dùng ChatterBot sử dụng thuật toán machine learning để xử lý liệu với nhiều ngữ cảnh khác Điều giúp nhà phát triển dễ dàng tạo bot trị chuyện tự động hóa hội thoại với người dùng Để biết thêm chi tiết người đọc thêm tài liệu Chatterbot trang chủ Thiết kế Độc lập Ngơn ngữ ChatterBot cho phép Huấn luyện để nói ngơn ngữ Ngoài chất Machinelearing ChatterBot cho phép Instance tác nhân cải thiện kiến thức phản ứng có tương tác với người từ nguồn liệu khác ChatterBot thư viện Python thiết kế để giúp dễ dàng tạo phần mềm mà tham gia vào việc giao tiếp hay gọi chatbot Một instance ChatterBot chưa train, start mà chưa có kiến thức cách giao tiếp Mỗi người dùng nhập statement, thư viện lưu văn mà họ 45 nhập văn mà bot phản hồi lại Khi số lượng input mà ChatterBot nhận tăng số lượng response mà trả lời độ xác response có liên quan đến input statement tăng theo Chương trình lựa chọn response phù hợp cách tìm kiếm statement biết gần nghĩa với input statement, sau chọn response từ response biết statement Tạo chat bot: Sau tạo instance Chatbot, bạn train cho Training cách tốt để đảm bảo bot bạn khởi đầu với lượng kiến thức response mà sử dụng Phương thức training nhận list statement (câu nói) nói chuyện thơng thường Chatter Bot có số ngơn ngữ nên sử dụng ln mà khơng cần phải training lại Nhưng với tiến Việt phải training Một ví dụ nho nhỏ cho việc training: Để lấy response trả Ở tham số đầu vào input người dùng respone câu phản hồi bot: 46 4.2.2 Flask Flask web frameworks, thuộc loại micro-framework xây dựng ngơn ngữ lập trình Python Flask cho phép bạn xây dựng ứng dụng web từ đơn giản tới phức tạp Nó xây dựng api nhỏ, ứng dụng web chẳng hạn trang web, blog, trang wiki website dựa theo thời gian hay chí trang web thương mại Flask cung cấp cho bạn công cụ, thư viện công nghệ hỗ trợ bạn làm công việc Flask micro-framework Điều có nghĩa Flask mơi trường độc lập, sử dụng thư viện khác bên ngồi Do vậy, Flask có ưu điểm nhẹ, có lỗi bị phụ thuộc dễ dàng phát xử lý lỗi bảo mật Nếu bạn cài Python thiết lập mơi trường thành cơng Bạn sử dụng command sau để cài Flask: pip install Flask Một ứng dụng đơn giản sử dụng Flask framework viết vài dịng code sau: Sau chạy, console bạn có dịng log giống * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) Bạn copy dán đường dẫn lên trình duyệt để xem kết Bạn thấy dịng chữ Hello, World! in trình duyệt 47 NLTK NLTK hay Natural Language Toolkit - Bộ công cụ ngôn ngữ tự nhiên, thư viện viết Python hỗ trợ xử lý ngôn ngữ tự nhiên Bằng cách cung cấp chế kỹ thuật xử lý ngôn ngữ phổ biến, giúp cho việc xử lý ngơn ngữ tự nhiên trở lên dễ dàng nhanh chóng Được viết Steven Bird Edward Loper, làm việc Khoa Máy Tính, Đại Học Pennsylvania, Hoa Kỳ năm 2001 Ngồi việc hỗ trợ xử lý ngơn ngữ, NLTK cịn có mơ đồ hoạ liệu mẫu hữu ích NLTK cung cấp xử lý classification, tokenization, stemming, tagging, parsing, semantic reasoning Những ứng dụng dần tìm hiểu viết sau Ngoài việc phục vụ xử lý ngơn ngữ tự nhiên, NLTK cịn sử dụng Machine Learning với tác dụng làm liệu, xử lý liệu đầu vào cho thuật toán Machine Learning Nếu bạn sử dụng Windows Linux Mac, bạn có th ể cài đặt NLTK pip : # pip install nltk Khi bạn cài đặt NLTK, bạn nên cài đặt gói NLTK cách chạy mã sau: Import nltk nltk.download() Bạn cài đặt tất gói tất chúng đ ều có kích th ước nhỏ mà khơng có vấn đề  Tensorflow Sự phát triển trí tuệ nhân tạo dẫn đến việc tìm hiểu machine learning deep learning trở thành xu Việc sử dụng thư viện có sẵn để tính toán giúp việc tiếp cận toán trở nên đơn giản Tensorflow thư viện phần mềm mã nguồn mở hỗ trợ mạnh mẽ phép tốn học để tính tốn machine learning deep learning • Cách thức hoạt động Tensorflow 48 TensorFlow cho phép nhà phát triển tạo biểu đồ dataflow – cấu trúc mô tả cách thức liệu di chuyển qua biểu đồ loạt node xử lý Mỗi node biểu đồ đại diện cho hoạt động toán học kết nối node mảng liệu đa chiều tenxor TensorFlow cung cấp tất điều cho lập trình viên ngơn ngữ Python Python dễ học làm việc, cung c ấp cách thuận tiện để diễn tả mức độ trừu tượng cao ghép với Các node tenxor TensorFlow đối tượng Python, ứng dụng TensorFlow ứng dụng Python Các hoạt động tốn học thực tế, nhiên chúng khơng th ực Python Các thư viện biến đổi có sẵn thông qua TensorFlow viết dạng nhị phân C ++ hiệu suất cao Python điều h ướng l ưu lượng phần cung cấp tóm tắt lập trình cấp cao đ ể n ối chúng lại với Các ứng dụng TensorFlow chạy hầu hết mục tiêu thuận tiện: máy cục bộ, cụm cloud, thiết bị iOS Android, CPU GPU Nếu bạn sử dụng cloud Google, bạn có th ể chạy TensorFlow silicon đơn vị xử lý TensorFlow (TPU) tùy chỉnh Google để tăng tốc Tuy nhiên, mô hình k ết tạo TensorFlow, triển khai hầu hết thiết bị nơi chúng sử dụng để phục vụ dự đoán TensorFlow 2.0, phát hành vào tháng 10 năm 2019, c ải thiện framework theo nhiều cách dựa phản hồi người dùng, đ ể làm việc dễ dàng (ví dụ: cách sử dụng Keras API tương đối đ ơn giản để đào tạo mơ hình) hiệu Đào tạo phân tán d ễ chạy nhờ API hỗ trợ cho TensorFlow Lite cho phép triển khai 49 mơ hình nhiều tảng khác Tuy nhiên, code đ ược viết cho phiên trước TensorFlow viết lại chút, đáng kể, để tận dụng tối đa tính TensorFlow 2.0 • Lợi ích Tensorflow Lợi ích lớn mà TensorFlow cung cấp cho phát triển machine learning không tưởng Thay xử lý chi tiết khó hiểu thực thuật tốn tìm cách thích hợp để output function sang input function khác, nhà phát triển tập trung vào logic tổng thể ứng dụng TensorFlow cung cấp tiện ích bổ sung cho nhà phát triển, người cần debug hướng vào ứng dụng TensorFlow Chế độ Eager execution cho phép bạn đánh giá sửa đổi hoạt động biểu đồ cách riêng biệt minh bạch, thay xây dựng tồn biểu đồ dạng đối tượng mờ đục đánh giá tất lúc Bộ phần mềm trực quan TensorBoard cho phép bạn kiểm tra lập hồ sơ cách thức biểu đồ chạy bảng điều khiển dựa web tương tác Một cảnh báo: Một số chi tiết việc triển khai TensorFlow, dẫn đến việc khó có kết hồn tồn xác định cho số công việc đào tạo Đôi mô hình đào tạo hệ thống thay đổi chút so với mơ hình đào tạo hệ thống khác, chúng cung cấp liệu Điều có nghĩa rằng, giải vấn đề TensorFlow xem xét nhiều kiểm soát để ảnh hưởng đến tính định quy trình làm việc 50 4.3 Chương trình ứng dụng 4.3.1 Chương trình code Hình 3.1: Ảnh code trình huấn luyện chatbot 51 Hình 3.2: Code khởi chạy 4.3.2 Demo sản phẩm Chatbot tự động trả lời câu hỏi dựa số mẫu câu hỏi mà Chatbot người lập trình huấn luyện sẵn 52 Giao diện chương trình 53 Kết luận  Kết đạt được: • Về lý thuyết: - Nắm quy trình xây dựng ứng dụng python nói chung Chatbot nói riêng - Nắm lý thuyết Chatbot, NLTK, Flask cách xử lý liệu nguyên lý làm việc thư viện • Về thực hành: - Xây dựng huấn luyện thành công Chatbot với chức tương tác với số câu hỏi người sử dụng - Xây dựng giao diện website tương tác với Chatbot đẹp mắt dễ dàng tương tác  Hạn chế : • Chưa đưa ứng dụng Chatbot lên tương tác trực tuyến • Cơ sở liệu chưa đủ lớn chưa tối ưu  54 Tài liệu tham khảo [1] https://stackoverflow.com/ [2] https://www.w3schools.com/ [3] https://www.codecademy.com/ ... dùng hỏi đáp gì, hệ thống không yêu cầu phải xử lý trường hợp ngoại lệ 1.2 Cấu trúc thành phần hệ thống chatbot Hình 1: Cấu trúc thành phần hệ thống Chatbot Chatbot có thành phần hiểu ngôn ngữ... hiểu đề tài tập lớn ? ?Hệ thống chatbot ứng dụng đào tạo trực tuyến” 5 Chương Tổng quan hệ thống Chatbot 1.1 Giới thiệu Hệ thống đối thoại người máy hay gọi với thuật ngữ chatbot ChatBot chương trình... thành phần chatbot ta xem mơ hình sau: Hình 2: Mơ hình thành phần xử lý chatbot 1.3 Hiểu ngôn ngữ tự nhiên (NLU) Đây nói thành phần quan trọng chatbot Chatbot có thơng minh hay khơng thành phần

Ngày đăng: 15/03/2021, 10:41

Từ khóa liên quan

Mục lục

  • Danh sách biểu đồ - hình vẽ

  • Mở đầu

  • Chương 1. Tổng quan về hệ thống Chatbot

    • 1.1 Giới thiệu

    • 1.2 Cấu trúc các thành phần hệ thống chatbot

    • 1.3 Hiểu ngôn ngữ tự nhiên (NLU)

      • 1.3.1 Xác định ý định người dùng

      • 1.4 Quản lý hội thoại (DM)

        • 1.4.1 Mô hình máy trạng thái hữu hạn FSA

        • 1.4.2 Mô hình Frame-based

        • 1.5 Thành phần sinh ngôn ngữ (NLG)

          • 1.5.1 Template-based NLG

          • 1.5.2 Plan-based

          • 1.5.3 Class-based NLG

          • 1.6 Cấu tạo của chatbot

          • 1.7 Các loại chatbot

          • 1.8 Cách thức hoạt động

          • 1.9 Lợi ích và ưu điểm của chatbot

          • Chương 2. Một số kỹ thuật sử dụng trong chatbot

            • 2.1 Kiến trúc mạng nơ ron nhân tạo

            • 2.2 Mạng nơ ron hồi quy RNN

            • 2.3 Mạng Long short Term Memory (LSTM)

              • 2.3.1 Vấn đề phụ thuộc quá dài

              • 2.3.2 Kiến trúc mạng LSTM

              • 2.3.3 Phân tích mô hình LSTM

              • 2.4 Word embeddings

                • 2.4.1 Word2vec

Tài liệu cùng người dùng

Tài liệu liên quan