Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 74 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
74
Dung lượng
4,67 MB
Nội dung
Năm: 2022 Trần Trung Hiếu Khoa: CNTT BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á ĐỒ ÁN TỐT NGHIỆP TÊN ĐỀ TÀI: CHAT BOT VÀ CƠNG NGHỆ TÍCH HỢP XỬ LÝ NGƠN NGỮ TỰ NHIÊN Sinh viên thực hiên : Trần Trung Hiếu Ngày sinh : 01/03/1999 Lớp : DCCNTT8.10 Khoa : Công Nghệ Thông Tin Mã sinh viên : 1752480201018 Giáo viên hướng dẫn : ThS Lê Trung Thực Bắc Ninh T4 – 20222 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á TRẦN TRUNG HIẾU TÊN ĐỀ TÀI: CHAT BOT VÀ CƠNG NGHỆ TÍCH HỢP XỬ LÝ NGƠN NGỮ TỰ NHIÊN Giáo viên hướng dẫn: Ths Lê Trung Thực Bắc Ninh T4 – 2022 Năm: 2022 Trần Trung Hiếu Khoa: CNTT LỜI CẢM ƠN Đầu tiên, em xin gửi lời cảm ơn đến Ban Giám hiệu trường Đại học Công Nghệ Đông Á tạo cho em môi trường tốt để em học tập tiếp thu kiến thức quý báu năm qua Em xin gửi lời cảm ơn sâu sắc đến Thầy giáo, Thạc Sĩ Lê Trung Thực nhiệt tình hướng dẫn, định hướng, hỗ trợ em suốt trình thực đồ án, giúp đỡ em tiếp cận với cách tư duy, giải trình bày vấn đề cần nghiên cứu Những điều giúp em khắc phục hạn chế thân khó khăn để hồn thành đồ án thành công, thời hạn Em gửi lời cảm ơn chân thành tới thầy cô trường, đặc biệt thầy cô Khoa Công nghệ thông tin giảng dạy em suốt thời gian học tập trường Với kiến thức, học có hành trang giúp em tự tin công việc, sống mục tiêu tương lai Mặc dù em cố gắng hoàn đồ án tất nỗ lực khả mình, chắn nhiều hạn chế thiếu sót Em mong nhận cảm thơng góp ý quý giá từ thầy cô bạn Bắc Ninh, Tháng 4, Năm 2022 Sinh viên thực Trần Trung Hiếu Năm: 2022 Trần Trung Hiếu Khoa: CNTT MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC BẢNG BIỂU MỞ ĐẦU Tên đề tài Lý chọn đề tài Mục tiêu đề tài 10 Đối tượng phạm vi nghiên cứu 10 Phương pháp nghiên cứu 10 CHƯƠNG CÁC VẤN ĐỀ TỔNG QUAN 11 1.1 Giới thiệu 11 1.2 Trí tuệ nhân tạo 11 1.3 Lịch sử hình thành phát triển chatbot 11 1.3.1 Sự phát triển Chatbot kỷ XX 12 1.3.1.1 Năm 1950: Các phép thử Turing 12 1.3.1.2 Năm 1966: ELIZA – Chương trình trị chuyện tạo 13 1.3.1.3 Năm 1972: Bác sĩ Kenneth Colby phát triển chatbot PARRY 14 1.3.1.4 Năm 1988: Chatbot Jabberwacky 14 1.3.1.5 Năm 1992: Dr SBAITSO 15 1.3.1.6 Năm 1995: ALICE 16 Những bước tiến dài Chatbot đầu kỷ XXI 16 1.3.2 1.3.2.1 Năm 2006: IBM Watson 16 1.3.2.2 Năm 2010-2016: Thời kỳ bùng nổ trợ lý ảo 17 1.3.2.3 Từ năm 2016 đến nay: Chatbot Messenger bùng nổ 17 Chatbot tương lai thay đổi ngành dịch vụ khách hàng 18 1.3.3 1.4 Tổng quan xử lý ngôn ngữ tự nhiên 18 1.4.1 Sơ lược ngôn ngữ tự nhiên 18 1.4.2 Xử lý ngôn ngữ tự nhiên 19 1.4.2.1 Ngơn ngữ hình thức – Formal Language 19 1.4.2.2 Các khái niệm 21 Năm: 2022 Trần Trung Hiếu Khoa: CNTT 1.4.2.3 Văn Phạm – Grammar : G = { N, Σ, P, S} 22 1.4.2.4 Cấu trúc văn phạm xử lý ngôn ngữ tự nhiên 22 1.4.2.5 Giải thuật phân tích cú pháp Earley 23 1.4.3 Xử lý tiếng Việt 26 1.5 Bài toán chat bot gợi ý địa điểm ăn uống 27 1.6 Kết luận chương 28 CHƯƠNG THIẾT KẾ HỆ THỐNG 29 2.1 Giới thiệu 29 2.2 Thiết kế hệ thống 29 2.2.1 Thiết kế sơ đồ khối hệ thống 29 2.2.2 Chức khối hệ thống 29 2.2.2.1 Khối truyền liệu, thông tin 29 2.2.2.2 Khối xử lý liệu, thông tin thông qua wit.ai 30 2.2.2.3 Khối thực truy vấn Webhook 32 CHƯƠNG THI CÔNG HỆ THỐNG 34 3.1 Giới thiệu 34 3.2 Lập trình hệ thống 34 3.2.1 Sơ đồ lưu đồ 34 3.2.2 Phần mềm hệ thống 37 3.2.2.1 Facebook Messenger Platform 37 3.2.2.2 Bộ API Send/Receive 38 3.2.2.3 Wit.ai 39 3.2.3 Xử lý đa dạng hóa liệu 42 3.2.4 Hệ thống Crawl liệu 45 3.2.4.1 Crawl liệu metadata(tỉnh, thành phố, quận huyện) danh mục địa điểm 45 3.2.4.2 Crawl liệu nhà hàng, quán ăn 50 3.2.5 Hệ thống gửi nhận tin nhắn qua Facebook Messenger 53 3.2.5.1 Thiết lập Webhook 53 3.2.5.2 Nhận yêu cầu, xử lý yêu cầu, truy vấn liệu phản hồi người dùng 57 3.2.5.3 Thuật toán nearby 61 CHƯƠNG KẾT QUẢ ĐẠT ĐƯỢC VÀ NHẬN XÉT ĐÁNH GIÁ 68 4.1 Kết đạt 68 4.2 Nhận xét đánh giá 68 Năm: 2022 Trần Trung Hiếu Khoa: CNTT 4.2.1 Ưu điểm: 68 4.2.2 Nhược điểm: 68 4.3 Hướng phát triển 69 4.3.1 Mở rộng nhiều tảng khác 69 4.3.2 Mở rộng phục vụ nhiều dạng nghiệp vụ 70 4.3.3 Khai phá liệu 71 TÀI LIỆU THAM KHẢO 72 Năm: 2022 Trần Trung Hiếu Khoa: CNTT DANH MỤC HÌNH ẢNH Hình 1.1: Chatbot qua thời kỳ 12 Hình 1.2: Các phép thử Turing 13 Hình 1.3: Eliza - Chương trình trị chuyện tạo 14 Hình 1.4: Dr SBAITSO 15 Hình 1.5: Phân loại ngơn ngữ tự nhiên theo nguồn gốc 19 Hình 1.6: Tiền đề việc xây dựng lý thuyết Automata ngơn ngữ hình thức 20 Hình 1.7: Mơ hình phân cấp Chomsky 21 Hình 1.8: Cấu trúc thành phần 22 Hình 1.9: Cấu trúc phụ thuộc 23 Hình 1.10: Cây văn phạm liền kề 23 Hình 1.11: Hình thức logic 23 Hình 1.12: Ví dụ suy dẫn 26 Hình 1.13: Ví dụ nhập nhằng với kết nhiều suy dẫn 26 Hình 2.1: Sơ đồ khối hệ thống 29 Hình 2.2: Sơ đồ q trình truyền liệu, thơng tin 30 Hình 2.3: Quá trình xử lý liệu thơng tin qua wit.ai 31 Hình 2.4: Thực truy vấn webhook 32 Hình 3.1: Sơ đồ chương trình 34 Hình 3.2: Lưu đồ hệ thống 36 Hình 3.3: Facebook Messenger Platform 38 Hình 3.4: Tạo app wit.ai 40 Hình 3.5: Tạo entity wit.ai 41 Năm: 2022 Trần Trung Hiếu Khoa: CNTT Hình 3.6: Tạo intent wit.ai 42 Hình 3.7: Thực thể symnonym 42 Hình 3.8: Thực thể productDetail 43 Hình 3.9: Xử lý đa dạng liệu 43 Hình 3.10: Tìm ăn với nghĩa gốc 44 Hình 3.11: Tìm ăn với từ đồng nghĩa 44 Hình 3.12: Gọi API đăng nhập foody 46 Hình 3.13: Lưu cookie sau đăng nhập 47 Hình 3.14: Lấy liệu metadata 48 Hình 3.15: Crawl liệu nhà hàng, quán ăn 50 Hình 3.16: Dữ liệu đầu vào API lấy liệu nhà hàng, quán ăn 51 Hình 3.17: Gọi API lấy liệu nhà hàng, quán ăn 52 Hình 3.18: Nền tảng Messenger hoạt động 53 Hình 3.19: Khởi tạo dự án webhook 54 Hình 3.20: Tạo HTTP server 54 Hình 3.21: Tạo webhook API 55 Hình 3.22: Tiến trình xác minh webhook 56 Hình 3.23: Triển khai webhook lên remote server 57 Hình 3.24: hàm xử lý kiện webhook 58 Hình 3.25: Trích xt PSID người dùng webhook 58 Hình 3.26: Xử lý input người dùng bao gồm địa điểm tên ăn 59 Hình 3.27: Xử lý yêu cầu người dùng có tên ăn 60 Hình 3.28: Hệ thống yêu cầu người dùng chọn địa điểm 60 Hình 3.29: Hệ thống trả lại kết cho người dùng 61 Năm: 2022 Trần Trung Hiếu Khoa: CNTT Hình 3.30: Thuật toán nearby hệ thống 62 Hình 3.31: Thực thể district 62 Hình 3.32: Thực thể address 63 Hình 3.33: Lọc theo quận người dùng gửi vị trí 63 Hình 3.34: Công thức haversine 64 Hình 3.35: Bán kính tạo cơng thức havesine 64 Hình 3.36: Địa điểm nằm bán kính khoảng cách thực tế lớn 2km 65 Hình 3.37: Địa điểm hợp lệ 65 Hình 3.38: Lưu đồ thuật toán nearby 66 Hình 3.39: Người dùng chia sẻ vị trí trực tiếp 66 Hình 3.40: Hệ thống trả lại kết cho người dùng 67 Hình 4.1: Triển khai hệ thống nhiều tảng khác 69 Hình 4.2: Triển khai hệ thống product component 70 Hình 4.3: Triển khai hệ thống nhiều component 70 Hình 4.4: Xây dựng center server chứa common component 71 Hình 4.5: Thực thể FacebookUser 71 Năm: 2022 Trần Trung Hiếu Khoa: CNTT DANH MỤC BẢNG BIỂU Bảng 1.1: Cách xếp trật tự câu 19 Bảng 3.1: Một số khái niệm wit.ai 40 Năm: 2022 Trần Trung Hiếu Khoa: CNTT Hình 3.24: hàm xử lý kiện webhook Để trả lời người dùng Messenger, điều cần biết họ Trong Messenger, điều thực cách trích xuất PSID người gửi tin nhắn đến webhook event Hình 3.25: Trích xt PSID người dùng webhook 58 Năm: 2022 Trần Trung Hiếu Khoa: CNTT Hình 3.26: Xử lý input người dùng bao gồm địa điểm tên ăn Nếu người dùng gửi tin nhắn cho hệ thống với nội dung bao gồm địa điểm tên ăn hệ thống phản hồi thông tin mà người dùng yêu cầu 59 Năm: 2022 Trần Trung Hiếu Khoa: CNTT Hình 3.27: Xử lý yêu cầu người dùng có tên ăn Yêu cầu người dùng bao gồm tên ăn hệ thống yêu cầu người dùng chọn địa điểm hình thức “quick replies” Hình 3.28: Hệ thống yêu cầu người dùng chọn địa điểm 60 Năm: 2022 Trần Trung Hiếu Khoa: CNTT Hình 3.29: Hệ thống trả lại kết cho người dùng 3.2.5.3 Thuật toán nearby Thuật toán nearby hệ thống khoảng cách 2km hai điểm lộ trình thực tế, thuật tốn nearby sử dụng filter để lọc thơng tin trả thông tin cho người dùng: Lọc quận gần địa điểm người dùng (Filter by district nearby), lọc theo công thức haversine (Filter by Haversine), lọc theo lộ trình thực tế (Filter by route) 61 Năm: 2022 Trần Trung Hiếu Khoa: CNTT Hình 3.30: Thuật tốn nearby hệ thống Hình 3.31: Thực thể district Ở bước filter thứ có thực thể district có quan hệ - n với thể quận gần nhiều quận khác, ví dụ hình 3.26 quận Cầu Giấy gần quận Cầu Giấy, quận Thanh Xuân, quận Đống Đa, quận Ba Đình quận Nam Từ Liêm 62 Năm: 2022 Trần Trung Hiếu Khoa: CNTT Hình 3.32: Thực thể address Tiếp theo có thực thể adress để lưu địa quán ăn, thuộc tính longtitude latitude thể kinh độ vĩ độ để xác định vị trí quán Thực thể district address có mối quan hệ - n thể cho việc quận có nhiều address address thuộc quận Hình 3.33: Lọc theo quận người dùng gửi vị trí Khi người dùng gửi tin nhắn, hệ thống nhận longtitude latitude người dùng hệ thống tiến hành chuyển đổi sang tên quận thông qua google map API, sau hệ thống thực bước lọc quận gần địa điểm người dùng hình 3.28 Ở bước filter thứ hệ thống sử dụng công thức haversine, công thức haversine dùng để tính khoảng cách điểm bề mặt trái đất 63 Năm: 2022 Trần Trung Hiếu Khoa: CNTT Haversine tính cơng thức d = R*c, d khoảng cách điểm, R bán kính trái đất c góc tạo điểm so với tâm trái đất Hình 3.34: Cơng thức haversine Góc tạo điểm so với tâm trái đất tính cơng thức: 𝑠𝑖𝑛2 ( ∆𝜑 ∆𝜆 ) + 𝑐𝑜𝑠𝜑1 × 𝑐𝑜𝑠𝜑2 × 𝑠𝑖𝑛2 ( ) 2 Trong 𝜑 latitude 𝜆 longtitude Từ công thức haversine hệ thống tiến hành tạo bán kính quanh vị trí người dùng khoảng 2km loại bỏ địa điểm bán kính Hình 3.35: Bán kính tạo cơng thức havesine 64 Năm: 2022 Trần Trung Hiếu Khoa: CNTT Tuy nhiên khoảng cách quãng đường thực tế xa cơng thức tính trên, hệ thống phải thực bước filter cuối dựa lộ trình thực tế, Ở bước filter hệ thống tiến hành gửi request kết bước filter trước tới google map API để lấy kết địa điểm thực tế có độ dài 2km, từ hệ thống có kết hợp lý để gửi lại cho người dùng Hình 3.36: Địa điểm nằm bán kính khoảng cách thực tế lớn 2km Hình 3.37: Địa điểm hợp lệ 65 Năm: 2022 Trần Trung Hiếu Khoa: CNTT Tổng hợp thuật tốn nearby ta có lưu đồ sau: Hình 3.38: Lưu đồ thuật tốn nearby Hình 3.39: Người dùng chia sẻ vị trí trực tiếp 66 Năm: 2022 Trần Trung Hiếu Khoa: CNTT Hình 3.40: Hệ thống trả lại kết cho người dùng 67 Năm: 2022 Trần Trung Hiếu Khoa: CNTT CHƯƠNG KẾT QUẢ ĐẠT ĐƯỢC VÀ NHẬN XÉT ĐÁNH GIÁ 4.1 Kết đạt Sau thời gian tìm hiểu tài liệu chun mơn, tài liệu internet với giúp đỡ tận tình giáo viên hướng dẫn em thực đề tài tìm hiểu chat bot công nghệ xử lý ngôn ngữ tự nhiên ứng dụng xây dựng chat bot gợi ý địa điểm ăn uống Do cịn kinh nghiệm nên khơng thể tránh khỏi sai sót số vấn đề chưa hoàn chỉnh Tuy nhiên đồ án đạt số kết quả: - Tìm hiểu xử lý ngơn ngữ tự nhiên - Tìm hiểu Facebook Messenger Platform - Tìm hiểu cơng cụ Wit.ai - Crawl liệu trang web - Xây dựng chat bot gợi ý địa điểm ăn uống 4.2 Nhận xét đánh giá 4.2.1 Ưu điểm: - Chat bot ngày thơng minh thơng qua q trình sử dụng người dùng training hệ thống - Hệ thống thiết kế dễ dàng mở rộng áp dụng cho nhiều dạng nghiệp vụ khác - Tiết kiệm thời gian tiền bạc doanh nghiệp không cần phải thuê nhiều nhân viên để trả lời câu hỏi người dùng 4.2.2 Nhược điểm: - Hệ thống hỗ trợ với người dùng sử dụng mạng xã hội, đặc biệt Facebook Messenger Platform điểm bất lợi thu nhỏ đối tượng sử dụng 68 Năm: 2022 Trần Trung Hiếu Khoa: CNTT - Facebook Messenger Platform Wit.ai công nghệ độ ổn định không cao gây khó khăn q trình phát triển 4.3 Hướng phát triển 4.3.1 Mở rộng nhiều tảng khác Hiện hệ thống triển khai Facebook Messenger Platform, nhiên tảng khác Skype, Slack Telegram hỗ trợ triển khai chatbot Vì tương lai hệ thống triển khai nhiều tảng khác để mở rộng mạng lưới user Hình 4.1: Triển khai hệ thống nhiều tảng khác 69 Năm: 2022 Trần Trung Hiếu Khoa: CNTT 4.3.2 Mở rộng phục vụ nhiều dạng nghiệp vụ Hiện hệ thống phục vụ dạng nghiệp vụ gợi ý địa điểm ăn uống triển khai product component Hình 4.2: Triển khai hệ thống product component Sau phân tích để mở rộng, hệ thống chia thành component common component product component Common component tái sử dụng product component thay đổi tùy vào dạng nghiệp vụ Hình 4.3: Triển khai hệ thống nhiều component 70 Năm: 2022 Trần Trung Hiếu Khoa: CNTT Từ xây dựng center server chứa common component cung cấp dịch vụ cho product component Hình 4.4: Xây dựng center server chứa common component 4.3.3 Khai phá liệu Hiện hệ thống lưu trữ thực thể FacebookUser chứa thông tin người dùng, tương lai thực thể đưa phân tích để đưa gợi ý phù hợp sản phẩm cho người dùng, bên cạnh cung cấp dịch vụ cho doanh nghiệp hệ thống dựa vào liệu phân tích để marketing cho doanh nghiệp Hình 4.5: Thực thể FacebookUser 71 Năm: 2022 Trần Trung Hiếu Khoa: CNTT TÀI LIỆU THAM KHẢO [1] https://wit.ai/docs [2] Natural Language Processing Fundamentals for Developers - Oswald Campesato [3] Xử Lý Ngôn Ngữ Tự Nhiên Trí Tuệ Nhân Tạo - Natural Language Processing (NLP) – TonyPham VTC Academy 72