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

XÂY DỰNG hệ THỐNG THƯƠNG mại điện tử hỗ TRỢ KINH DOANH mặt HÀNG nội THẤT NHÀ ở kết hợp tư vấn bán HÀNG BẰNG CHATBOT

74 28 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 74
Dung lượng 693,38 KB

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

Nội dung

Từ viết tắt Từ đầy đủ Giải thíchCF Collaborative Filtering Một phương pháp gợi ý sản phẩm UM Utility matrix Ma trận biểu diễn mức độ quan tâm rating của user với mỗiitem CSDL Cơ sở dữ li

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

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

LÊ NGỌC CHÂU

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG HỆ THỐNG THƯƠNG MẠI ĐIỆN TỬ

HỖ TRỢ KINH DOANH MẶT HÀNG NỘI THẤT NHÀ

Ở KẾT HỢP TƯ VẤN BÁN HÀNG BẰNG CHATBOT

Building an ecommerce system to support purchasing and selling

furniture combined with sales consulting by chatbot

KỸ SƯ NGÀNH CÔNG NGHỆ PHẦN MỀM

Trang 2

TP HỒ CHÍ MINH, 2021ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

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

LÊ NGỌC CHÂU - 16520109

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG HỆ THỐNG THƯƠNG MẠI ĐIỆN TỬ

HỖ TRỢ KINH DOANH MẶT HÀNG NỘI THẤT NHÀ

Ở KẾT HỢP TƯ VẤN BÁN HÀNG BẰNG CHATBOT

Building an ecommerce system to support purchasing and selling

furniture combined with sales consulting by chatbot

KỸ SƯ NGÀNH CÔNG NGHỆ PHẦN MỀM

GIẢNG VIÊN HƯỚNG DẪN

TS NGUYỄN HÀ GIANG ThS NGUYỄN THỊ THANH TRÚC

Trang 3

TP HỒ CHÍ MINH, 2021THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ……… ngày

……… của Hiệu trưởng Trường Đại học Công nghệ Thông tin

Chúng em xin chân thành cảm ơn quý thầy cô của trường Đại học Công nghệ Thông tin nóichung, quý thầy cô của khoa Công nghệ Phần mềm nói riêng, và đặc biệt đến cô Nguyễn HàGiang, cô Nguyễn Thị Thanh Trúc đã tận tình hướng dẫn và đóng góp ý kiến để chúng em có

thể hoàn thành khóa luận này một cách tốt nhất

Bên cạnh đó, nhóm xin gửi lời cảm ơn đến các bạn cùng lớp đã có những lời góp ý,động viên để nhóm có thêm động lực thực hiện khóa luận trong khoảng thời gian khó khănnày

Trong suốt quá trình chúng em tìm hiểu và thực hiện khóa luận, do thời gian và khảnăng có giới hạn nên chúng em vẫn còn nhiều thiếu sót Do đó, nhóm chúng em rất mongnhận được sự thông cảm và những ý kiến đóng góp chân thành từ quý thầy cô và các bạn.Một lần nữa, nhóm chúng em xin chân thành cảm ơn mọi người

Thành phố Hồ Chí Minh, 25 tháng 06 năm 2021

Sinh viên

LÊ NGỌC CHÂUMỤC LỤC

Trang 4

TÓM TẮT KHÓALUẬN 1 Chương1: GIỚI THIỆU CHUNG 2

1.1 Lý do chọn đềtài 2 1.2 Tính năng mới/ khác biệt về chức năng của đề tài so với một số website thương mại điện tử hiện

Kháiniệm 6

2.1.2 Lý do lựachọn 7 2.2 Tổngquan về Express Framework 8

2.2.1 Giới thiệu ExpressJSFramework 8 2.2.2 Lý do lựachọn 8 2.3 Tổngquan về EJS template 9

2.3.1 Giớithiệu 9

Trang 5

2.3.2 Lý do lựachọn 10 2.4 Cơ sở

dữ liệu PostgreSQL 10

2.4.1 Giớithiệu 10

2.4.2 Lý do lựachọn 11 2.5

ChatbotDialogflow 11

2.5.1 Tìm hiểuchatbot 11 2.5.2.Giới thiệu Chatbot Dialogflow 14

2.5.3 Lý do lựachọn 16 2.5.4 Ápdụng vào đề tài 16 2.6.Thuận toán khuyến nghị Neighborhood - Based Collaborative Filtering 17 2.6.1.Giới thiệu – Lý do lựa chọn 17

2.6.2 Một số địnhnghĩa 19 2.6.3 Tiếnhành thực hiện 22 2.6.4

Áp dụng vào đề tài 25

Chương 3: XÂY DỰNG HỆTHỐNG 27 3.1 Xây dựng kiếntrúc hệ thống 27 3.1.1 Xácđịnh yêu cầu hệ thống 27 3.1.2.Phân tích yêu cầu hệ thống 28

3.2 Phân tích thiết kế hệ

Trang 6

thống 32 3.2.1 Sơ đồ Usecase 32 3.2.2 Sơ

đồ lớp 663.2.2.2 Phân tích và thiết kế cơ sở dữ liệu

68 3.3 Thiết kế giaodiện 96 3.3.1.Giao diện dành cho khách hàng 96

3.3.2 Giao diện dành cho ngườibán 105 3.2.2.2 Giao diện dành cho

admin 111

Chương 4: KẾT LUẬN, HƯỚNG PHÁTTRIỂN 116 4.1 Kết quả đạtđược 116 4.2

Nhượcđiểm 117

4.3 Hướng pháttriển 117 TÀI

LIỆU THAMKHẢO 118

DANH MỤC HÌNH VẼ

Hình 2-1: Các điểm mạnh của Nodejs

Hình 2-2: Cơ chế Non I/O Blocking

Hình 2-3: Tổng quan mô hình hoạt động của ExpressJS

Hình 2-4: Các tính năng của ExpressJS

Hình 2-5: EJS template

Hình 2-6: Hệ quản trị cơ sở dữ liệu PostgreSQL

Trang 7

Hình 2-7: Cách hoạt động của chatbot

Hình 2-8: Một số nền tảng, framework chatbot

Hình 2-9: Lợi ích của chatbot

Hình 2-10: Sơ đồ của một Dialog Flow hoàn chỉnh

Hình 2-11: Ví dụ về Agent trong Dialogflow

Hình 2-12: Mô tả cuộc trò chuyện giữa người và máy Hình 2-13:

Chatbot phản hồi câu hỏi của khách hàng Hình 2-14: Ví dụ về

Neighborhood-based Collaborative Filtering Hình 2-15: Ma trận

tương tác Người dùng – Sản phẩm Hình 2-16: Công thức tính độ

tương đồng giữa 2 vector Hình 2-17: Công thức dự đoán rating của

user U cho item I Hình 2-18: Công thức tính RMSE

Hình 2-19: Utility Matrix Y

Hình 2-20: Lọc cộng tác dựa theo sản phẩm

Hình 2-21: Ma trận chuẩn hóa (iiCF)

Hình 2-22: Ma trận tương đồng giữa các items

Hình 2-23: Ma trận normalized ratings matrix đầy đủ (iiCF)

Hình 2-24: Gợi ý sản phẩm bằng Item –item Collaborative Filtering trên website Hình 3-1: Use case tổng quát của Admin

Hình 3-2: Use case tổng quát của nhà bán

Hình 3-3: Use case tổng quát của khách hàng

Hình 3-4: Use case khách hàng đăng ký tài khoản

Hình 3-5: Use case người bán đăng ký tài khoản bán hàng

Hình 3-6: Use case đăng nhập

Hình 3-7: Use case quản lý danh mục sản phẩm

Hình 3-8: Use case quản lý sản phẩm của Admin

Hình 3-9: Use case quản lý đơn hàng của Admin

Trang 8

Hình 3-10: Use case quản lý khách hàng

Hình 3-11: Use case quản ký nhà bán

Hình 3-12: Use case thống kê doanh thu

Hình 3-13: Use case quản lý sản phẩn của Người bán

Hình 3-14: Use case quản lý khuyến mãi

Hình 3-15: Use case quản lý đơn hàng của Người bán

Hình 3-16: Use case quản lý thông tin Người bán

Hình 3-17: Use case quản lý ví tiền

Hình 3-18: Use case tìm kiếm sản phẩm

Hình 3-19: Use case xem thông tin sản phẩm

Hình 3-20: Use case xem sản phẩm của shop

Hình 3-21: Use case đặt và mua hàng

Hình 3-22: Use case quản lý giỏ hàng

Hình 3-23: Use case theo dõi đơn hàng

Hình 3-24: Use case chỉnh sửa thông tin cá nhân (Khách hàng) Hình 3-25: Use case quản lý sổ địa chỉ (Khách hàng) Hình 3-26: Use case đánh giá sản phẩm

Hình 3-27: Sơ đồ lớp tổng quát

Hình 3-28: Sơ đồ tuần tự khách hàng đăng ký tài khoản

Hình 3-29: Sơ đồ tuần tự đăng nhập

Hình 3-30: Sơ đồ tuần tự thêm sản phẩm (Người bán)

Hình 3-31: Sơ đồ tuần tự cập nhật sản phẩm

Hình 3-32: Sơ đồ tuần tự cập nhật trạng thái đơn hàng

Hình 33: Sơ đồ tuần tự thêm khuyến mãi mới Hình

3-34: Sơ đồ tuần tự xóa khuyến mãi

Hình 3-35: Sơ đồ tuần tự báo vi phạm sản phẩm

Trang 9

Hình 3-36: Sơ đồ tuần tự duyệt sản phẩm

Hình 3-37: Sơ đồ tuần tự hủy đơn hàng (Admin) Hình 3-38: Sơ

đồ tuần tự thêm sản phẩm vào giỏ hàng Hình 3-39: Sơ đồ tuần tự cập nhật số lượng sản phẩm trong giỏ Hình 3-40: Sơ đồ tuần tự xóa sản phẩm khỏi giỏ hàng Hình 3-41: Sơ đồ tuần tự đặt và muahàng

Hình 3-42: Sơ đồ tuần tự hủy đơn vừa mua (Khách hàng)

Hình 3-43: Giao diện trang chủ

Hình 3-44: Giao diện đăng nhập (khách hàng)

Hình 3-45: Giao diện đăng ký

Hình 3-46: Giao diện thông tin cá nhân

Hình 3-47: Giao diện đổi mật khẩu

Hình 3-48: Giao diện sổ địa chỉ

Hình 3-49: Giao diện chi tiết sản phẩm

Hình 3-50: Giao diện giỏ hàng

Hình 3-51: Giao diện thanh toán

Hình 3-52: Giao diện tất cả đơn hàng

Hình 3-53: Giao diện đơn hàng chờ nhà bán giao hàng

Hình 3-54: Giao diện đơn hàng đã giao thành công Hình

3-55: Giao diện đơn hàng đã hủy

Hình 3-56: Giao diện cập nhật sản phẩm

Hình 3-57: Giao diện cập nhật biến thể

Hình 58: Giao diện trạng thái sản phẩm Hình

3-59: Giao diện danh sách khuyến mãi Hình 3-60:

Giao diện thêm mới khuyến mãi Hình 3-61: Giao

diện xem trạng thái các đơn hàng Hình 3-62: Giao

diện chi tiết đơn hàng

Trang 10

Hình 3-63: Giao diện chờ xác nhận chuẩn bị hàng

Hình 64: Giao diện thống kê doanh thu Hình

3-65: Giao diện quản lý ví tiền

Hình 3-66: Giao diện địa chỉ giao hàng

Hình 67: Giao diện thêm mới danh mục Hình

3-68: Giao diện hiện thị tất cả danh mục Hình 3-69:

Giao diện xem tất cả sản phẩm Hình 3-70: Giao

diện báo cáo sản phẩm vi phạm

Hình 3-71: Giao diện xem tất cả đơn hàng

Hình 3-72: Giao diện xác nhận đơn hàng

Hình 3-73: Giao diện quản lý khách hàng

Hình 3-74: Giao diện quản lý nhà bán

DANH MỤC BẢNG

Bảng 1-1: Bảng so sánh sự khác biệt giữa Furnoture Shop và các website khác Bảng 2-1: Ví dụ về chuẩn hóa ma trận uuCF

Bảng 3-1: Đặc tả Use case đăng ký tài khoản (Khách hàng) Bảng 3-2:

Đặc tả Use case đăng ký tài khoản bán hàng (Người bán) Bảng 3-3:

Đặc tả Use case đăng nhập

Bảng 3-4: Đặc tả Use case quản lý danh mục

Bảng 3-5: Đặc tả Use case quản lý sản phẩm (Admin)

Bảng 3-6: Đặc tả Use case quản lý đơn hàng (Admin)

Bảng 3-7: Đặc tả Use case quản lý khách hàng (Admin)

Bảng 3-8: Đặc tả Use case quản lý nhà bán (Admin)

Bảng 3-9: Đặc tả Use case thống kê doanh thu

Bảng 3-10: Đặc tả Use case quản lý sản phẩm (Người bán)

Bảng 3-11: Đặc tả Use case quản lý khuyến mãi

Trang 11

Bảng 3-12: Đặc tả Use case quản lý đơn hàng (Người bán)

Bảng 3-13: Đặc tả Use case quản lý thông tin Người bán

Bảng 3-14: Đặc tả Use case quản lý ví tiền

Bảng 3-15: Đặc tả Use case tìm kiếm sản phẩm

Bảng 3-16: Đặc tả Use case xem thông tin sản phẩm

Bảng 3-17: Đặc tả Use case xem ản phẩm của shop

Bảng 3-18: Đặc tả Use case đặt và mua hàng

Bảng 3-19: Đặc tả Use case quản lý giỏ hàng

Bảng 3-20: Đặc tả Use case theo dõi đơn hàng

Bảng 3-21: Đặc tả Use case chỉnh sửa thông tin cá nhân (Khách hàng) Bảng 3-22: Đặc tả Use case quản lý sổ địa chỉ

Bảng 3-23: Đặc tả Use case đánh giá sản phẩm

Trang 12

Từ viết tắt Từ đầy đủ Giải thích

CF Collaborative Filtering Một phương pháp gợi ý sản

phẩm

UM Utility matrix Ma trận biểu diễn mức độ quan

tâm (rating) của user với mỗiitem

CSDL Cơ sở dữ liệu Cơ sở dữ liệu cho websiteuuCF User – user Collaborative

Filtering

Phương pháp lọc cộng tác dựa trên người dùng

iiCF Item –item Collaborative

Filtering

Phương pháp lọc cộng tác dựa trên sản phẩm

Trang 13

TÓM TẮT KHÓA LUẬN

Khóa luận với đề tài “Xây dựng hệ thống thương mại điện tử hỗ trợ kinh doanh mặt hàng nộithất nhà ở kết hợp tư vấn bán hàng bằng chatbot” giúp cho người tiêu dùng có thể mua các sản phẩm về nội thất nhà ở một cách thuận tiện và nhanh chống, đồng thời cũng đảm bảo về

sự tin cậy, toàn và uy tính

Hệ thống giúp cho các xưởng gỗ, người kinh doanh nội thất có một kênh bán hàng tiện dụng,

hỗ trợ từ khâu nhập sản phẩm, đưa sản phẩm lên hệ thống, giao hàng cho người mua, thống

kê doanh thu bán hàng chi tiết, rõ ràng và minh bạch kết hợp với giao diện thân thiện, giúpngười dùng dễ sử dụng mà không cần quá nhiều tài nguyên và nhân lực để quản lý

Về nghiệp vụ, hệ thống đã xây dựng đầy đủ mô hình quản lý cho người quản trị website, người bán hàng và mua hàng với người tiêu dùng

Trong khóa luận này, nhóm đã sử dụng và kết hợp các công nghệ mới để xây dựng ứng dụng website mang lại lợi ích, hiệu quả tốt nhất như NodeJs, ExpressJs

Khóa luận được trình bày gồm 4 chương:

Chương 1: Giới thiệu về đề tài, đưa ra các điểm nổi bật so với các ứng dụng trước Tiếp đến

là đề xuất các giải pháp để giải quyết các vấn đề đã đặt ra Ngoài ra, chương 1 cũng đề cậpđến đối tượng nghiên cứu, phạm vi đề tài, phương pháp nghiên cứu

Chương 2: Trình bày các kiến thức nền tảng, các công nghệ và thuật toán gợi ý sản phẩm

được sử dụng để xây dựng website bán hàng, chatbot để tư vấn bán hàng

Chương 3: Trình bày chi tiết quy trình xây dựng hệ thống, từ xác định và phân tích yêu cầu

bài toán cho đến xây dựng CSDL, cuối cùng là xây dựng giao diện cho website

Chương 4: Kết luận, rút ra được các ưu nhược điểm của ứng dụng và hướng phát triển trong

tương lai

1

Chương 1: GIỚI THIỆU CHUNG

1.1 Lý do chọn đề tài

Trang 14

Ngày nay, công nghệ thông tin ngày một phát triển, kéo theo đó là sự bùng nổ của các thiết

bị điện tử, đặc biệt là điện thoại thông minh và máy tính Cùng với đó là mạng lưới rộng lớncủa Internet đã dẫn đến sự phát triển mạnh mẽ của các ngành dịch vụ thương mại điện tử Đối với người tiêu dùng, thương mại điện tử giúp người mua chỉ ngồi tại nhà mà vẫn có thểlựa chọn hàng hóa, dịch vụ trên các thị trường ở mọi nơi trên thế giới bằng một vài động táckích chuột Nhờ vậy mà gần như ở bất kì nơi nào trên thế giới, thậm chí ở một nước nghèonhất, một vùng xa xôi hẻo lánh trên địa cầu, cũng có thể dễ dàng tiếp cận với các thị trườngrộng lớn thông qua mạng Internet

Hiện nay, với sự bùng phát nguy hiểm của đại dịch COVID-19 trên toàn cầu, trong đó cóViệt Nam, nó đã thay đổi thói quen của hầu hết mọi người trong việc đi mua sắm, giải trí.Trong lúc tình hình dịch bệnh căng thẳng như thế này, Thương mại điện tử được coi là mộttrong những động lực phát triển chủ yếu của nền kinh tế và dần trở thành xu hướng tất yếu Trên cơ sở các kiến thức được học trong nhà trường và quá trình tìm hiểu các trang webthương mại điện tử trong thực tế, nhóm chúng em đã quyết định chọn đề tài “Xây dựng hệthống thương mại điện tử hỗ trợ kinh doanh mặt hàng nội thất nhà ở kết hợp tư vấn bán hàngbằng chatbot”

Phục vụ tốt hơn nhu cầu của khách hàng và quản lý cửa hàng trong hoạt động kinh doanh

2

1.2 Tính năng mới/ khác biệt về chức năng của đề tài so với một số website thương mại điện tử hiện nay

Website Tính năng

Furniture Shop Website thương

mại điện tử khác

Trang 15

Thanh toán online Thanh toán bằng tài khoản

ngân hàng ngay tại shop,xuất thông báo thành công/

thất bại ngay tức thì, thuậntiện trong quá trình muahàng

Phải thao tác chuyển khoản đồng thời chờ admin xác nhận thanh toán khiến mất thời gian, dễ nhầm lần

Địa chỉ nhận hàng Địa chỉ chọn từ hệ thống,

đảm bảo thông tin chínhxác, thuận tiện

Nhập bằng tay khiếncho địa chỉ dễ bị sai,không xác định đượcnơi giao hàng

Giỏ hàng Sản phẩm trong giỏ hàng

được chọn sẽ tiến hànhthanh toán, còn các sảnphẩm bỏ chọn sẽ lưu lạitrong giỏ hàng cho việcmua sau

Sản phẩm trong giỏ hàng chỉ có thể mua tất

cả hoặc xóa bớt Điều này làm hạn chế sự thoải mái cho khách hàng

Admin xác nhận giao

hàng

Sau khi nhà bán giao hàngcho shipper, hàng đến taykhách hàng, admin xácnhận đơn hàng thành công,tiền sẽ chuyển vào ví củanhà bán

Nhà bán nhận tiền vàxác nhận đơn hàng Đốivới trường hợp thanhtoán online, nhà bánnhận tiền trước và xácnhận đơn hàng sau.Điều này gây bất tiệncho các

3

trường hợp thất lạc hànghóa, khó giải quyết

Bảng 1-1: Bảng so sánh sự khác biệt giữa Furnoture Shop và các website khác

Trang 16

1.3 Đối tượng nghiên cứu

- Doanh nghiệp, xưởng gỗ, xưởng làm nội thất, người bán hàng nội thất trong nước - Người tiêu dùng muốn mua sản phẩm nội thất trong nước

1.4 Phạm vi nghiên cứu

- Chức năng:

• Website thương mại điện tử Funiture Shop hướng sử dụng cho các doanhnghiệp, xưởng nội thất và người tiêu dùng trong nước trên nền tảngwebsite cho các trình duyệt chạy trên hệ điều hành Windows, Mac

• Tìm hiểu về hệ thống gợi ý sản phẩm đối với 2 phương pháp: Content basedmethod, Collaborative filtering method

• Tìm hiều chatbot Dialogflow

- Tham khảo các trang web/hệ thống hiện có

- Phân tích các yêu cầu đã thu thập được

- Thiết kế cơ bản các yêu cầu

- Nghiên cứu công nghệ để áp dụng

- Nghiên cứu tài liệu liên quan

4 5

Trang 17

tạo ra các ứng dụng nhẹ và hiệu quả cao cho các ứng dụng về dữ liệu thời gian thực chạy trêncác thiết bị phân tán

Hình 2-1: Điểm mạnh của Nodejs NodeJS được phát triển bởi Ryan Dahl vào năm 2009 và có thể chạy trên nhiều hệ điều hànhkhác nhau: OS X, Microsoft Windows, Linux Phần Core bên dưới của Nodejs được viết hầuhết bằng C++ nên cho tốc độ xử lý và hiệu năng khá cao

Nodejs tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời gian thực

Nodejs áp dụng cho các sản phẩm có lượng truy cập lớn, cần mở rộng nhanh, cần đổi mới công nghệ, hoặc tạo ra các dự án Startup nhanh nhất có thể

6

2.1.2 Lý do lựa chọn

Các ứng dụng Nodejs được viết bằng javascript, ngôn ngữ này là một ngôn ngữ khá thôngdụng Theo tác giả của ngôn ngữ Javascript, Ryan Dahl: “Javascript có những đặc tính màlàm cho nó rất khác biệt so với các ngôn ngữ lập trình động còn lại, cụ thể là nó không cókhái niệm về đa luồng, tất cả là đơn luồng và hướng sự kiện.”

Tốc độ xử lý nhanh: Được thực thi dựa trên V8 JavaScript Engine của Google Chorme Khảnăng tự build server bằng ngôn ngữ client giúp cho việc trung chuyển dữ liệu diễn ra nhanhhơn Đồng thời giảm khả năng rủi ro bị ngắt Ngoài ra nhờ cơ chế Non I/O Blocking, tậndụng tối đa tài nguyên của server, không tạo ra độ trễ như các ngôn ngữ

server-side khác

Trang 18

Hình 2-2: Cơ chế Non I/O Blocking Các ứng dụng NodeJS đáp ứng tốt thời gian thực và chạy đa nền tảng, đa thiết bị

Node.js sử dụng một mô hình luồng duy nhất với sự kiện lặp cơ chế tổ chức sự kiện giúp cácmáy chủ để đáp ứng một cách không ngăn chặn và làm cho máy chủ cao khả 19 năng mởrộng như trái ngược với các máy chủ truyền thống mà tạo đề hạn chế để xử lý yêu cầu.Node.js sử dụng một chương trình đơn luồng và các chương trình tương tự có thể

cung cấp dịch vụ cho một số lượng lớn hơn nhiều so với yêu cầu máy chủ truyền thống như Apache HTTP Server

7

Hỗ trợ rất tốt cho việc xây dựng ứng dụng thời gian thực

2.2 Tổng quan về Express Framework

2.2.1 Giới thiệu ExpressJS Framework

Expressjs là một framework được xây dựng trên nền tảng của Nodejs Nó cung cấp các tínhnăng mạnh mẽ để phát triển web hoặc mobile Expressjs hỗ trợ các method HTTP vàmidleware tạo ra API vô cùng mạnh mẽ và dễ sử dụng

Trang 19

Hình 2-3: Tổng quan mô hình hoạt động của ExpressJS

Trang 20

routes và các request method đến server một cách dễ dàng

Hỗ trợ REST API Và còn rất nhiều thứ mà framework này hỗ trợ

2.3 Tổng quan về EJS template

2.3.1 Giới thiệu

EJS ( Embedded JavaScript ), là một thư viện được sử dụng để phân tích các tập tin ejs, và tạo ra HTML trả về cho client (Trình duyệt) Nó là một trong những View engine phổ biến nhất cho Node.js và Expressjs

9 Hình 2-5: EJS template View engine là công cụ giúp viết code HTML một cách ngắn gọn và đơn giản hơn cáchthông thường, đồng thời nó có thể sử dụng lại Ngoài ra nó có thể đưa dữ liệu vào từ phíaserver và render ra đoạn HTML cuối cùng

2.3.2 Lý do lựa chọn

EJS cho phép ta tạo các ứng dụng nhanh chóng khi ta không cần bất cứ thứ gì quá phức tạp.Bằng cách sử dụng các thành phần và có khả năng dễ dàng chuyển các biến đến dạng xemcủa bạn , ta có thể xây dựng một số ứng dụng tuyệt vời một cách nhanh chóng

2.4 Cơ sở dữ liệu PostgreSQL

2.4.1 Giới thiệu

Trang 21

Hình 2-6: Hệ quản trị cơ sở dữ liệu PostgreSQL PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ – đối tượng, được phát triển bởi KhoaĐiện toán, Đại học California – Hoa Kỳ dựa trên Postgres bản 4.2 Chương trình này đã mởđường cho nhiều khái niệm về hệ quản trị dữ liệu thương mại sau này

Ban đầu, hệ quản trị được thiết kế để chạy trên các nền tảng tương tự như Unix Sau này,PostgreSQL được điều chỉnh trở nên linh động và chạy trên nhiều nền tảng khác nhau nhưWindows, Mac OS X, Solaris với nhiều tính năng và đặc điểm nổi bật PostgreSQL là mãnguồn mở miễn phí, được xây dựng theo chuẩn SQL-99 Người dùng có thể tự do

10

sử dụng, chỉnh sửa và phân bổ PostgreSQL theo nhiều hình thức khác nhau So với nhiều hệquản trị cơ sở dữ liệu khác, PostgreSQL không quá yêu cầu về công tác bảo trì bởi tính ổnđịnh cao, có thể phát triển nhiều ứng dụng khác nhau với chi phí tương đối thấp

2.4.2 Lý do lựa chọn

PostgreSQL không chỉ là cơ sở dữ liệu quan hệ, nó là quan hệ hướng đối tượng Điều nàycung cấp cho nó một vài lợi thế so với các cơ sở dữ liệu SQL mã nguồn mở khác nhưMySQL, MariaDB và Firebird

Mảng nhiều chiều: Bởi vì PostgreSQL là một cơ sở dữ liệu quan hệ hướng đối tượng, mảng

các giá trị có thể lưu trữ hầu hết các kiểu dữ liệu có sẵn

Dữ liệu hình học: Dữ liệu hình học nhanh chóng trở thành một yêu cầu cốt lõi cho nhiều

ứng dụng PostgreSQL từ lâu đã hỗ trợ một loạt kiểu dữ liệu hình học như points, lines,circles, và polygons

Hỗ trợ JSON: Hỗ trợ JSON của PostgreSQL cho phép bạn ít sơ đồ (schema-less) trong một

cơ sở dữ liệu SQL Điều này có thể hữu ích khi cấu trúc dữ liệu yêu cầu phải có sự linh hoạt

Trang 22

bởi vì nó vẫn thay đổi trong phát triển hoặc khi nó không biết các trường dữ liệu mà đối tượng dữ liệu sẽ chứa

Chức năng bảo mật: Bảo mật, xác thực (SCRAM-SHA-256, SSPI, LDAP, GSSAPI,

Certificate và các hình thức khác), hệ thống kiểm soát truy cập mạnh mẽ, bảo mật cấp độ cột – hàng

Toàn vẹn dữ liệu: Ràng buộc loại từ, Primary Keys, Foreign Keys, UNIQUE, NOT NULL,

Khóa khuyến nghị/ Advisory Locks, Khóa hàm số/ Explicit Locks,…

2.5 Chatbot Dialogflow

2.5.1 Tìm hiểu chatbot

2.5.1.1 Khái niệm chatbot

11 Định nghĩa một cách đơn giản nhất, chatbot là một chương trình máy tính tương tác vớingười dùng bằng ngôn ngữ tự nhiên dưới một giao diện đơn giản, âm thanh hoặc dưới dạngtin nhắn

Hình 2-7: Cách hoạt động của chatbot Chatbot phục vụ trong rất nhiều lĩnh vực:

Trang 23

2.5.1.2 Lý do sử dụng chatbot

12

Trang 24

Hình 2-8: Một số nền tảng, framework chatbot Nhờ được trang bị trí thông minh nhân tạo (AI) và phần mềm xử lý ngôn ngữ tự nhiên (NLP), Chatbot đã phát triển đáng kể trong thời gian gần đây Hiện nay, chatbot là những công cụ cực kỳ hữu dụng và quan trọng giúp chúng ta có thể tự động hóa một số quy trình trong kinh doanh và đi kèm với vô vàn lợi ích như:

- Tăng tương tác với khách hàng

- Cá nhân hóa trải nghiệm khách hàng

- Thu thập và phân tích dữ liệu

- Cung cấp phản hồi ngay lập tức

- Tiết kiệm thời gian

13

- Tiết kiệm chi phí quảng cáo

- Giảm chi phí hoạt động của doanh nghiệp

Hình 2-9: Lợi ích của chatbot

2.5.2 Giới thiệu Chatbot Dialogflow

Hình 2-10: Sơ đồ của một Dialog Flow hoàn chỉnh

Trang 25

Api.ai là một startup về natural language conversations, đã được Google mua lại và đổi tên thành DialogFlow

Dialogflow giúp các lập trình viên dễ dàng hơn khi lập trình các sản phẩm có giao tiếp giữangười dùng với sản phẩm thông qua các đoạn hội thoại bằng văn bản (text) hoặc giọng nói(voice)

14 Dialogflow sử dụng trí tuệ nhân tạo (AI) giúp phân tích ngôn ngữ tự nhiên để hiểu được những gì người dùng đưa vào

Các khái niệm cơ bản trong DialogFlow

- INTENT: là đại diện cho một ánh xạ giữa những gì người dùng đưa vào, và hành động sẽ được thực hiện bởi phần mềm

+ Ví dụ: 2 câu hỏi với bot dự báo thời tiết:

▪ Hôm nay ở Hồ Chí Minh nắng to không?

▪ Hà Nội 2 tuần tới có mưa không?

+ Với cả hai câu hỏi này, người dùng đều đang mong muốn Chatbot trả lờithông tin dự báo về thời tiết Như vậy, khi lập trình Chatbot, chỉ cần 1 hành động cho

cả hai câu hỏi, hay cần tạo một INTENT cho chúng

+ Nói một cách khác, một INTENT là một tập những gì người dùng nói mà chúng có cùng một ý nghĩa

- ENTINY: được sử dụng để trích xuất các giá trị của tham số từ ngôn ngữ tự nhiên Chúng giúp xác định các từ khóa cụ thể quan trọng để hướng đến mục đích cụ thể cho câu trả lời

+ Ví dụ: Từ 2 câu hỏi với bot dự báo thời tiết ở trên, ta thấy “Hôm nay”, “2 tuần tới” sẽ có một entity tương ứng là Thời gian Hồ Chí Minh, Hà Nội, sẽ là entity Vị trí

- AGENT: dùng để đại diện cho một mô-đun (module) NLU (Natural Language Understanding – Phân tích để hiểu ngôn ngữ tự nhiên)

Trang 26

Hình 2-11: Ví dụ về Agent trong Dialogflow

15 + AGENT giúp phân tích những những gì người dùng đưa vào (text hoặc voice) để chuyển thành những dữ liệu mà có thể xử lý được bằng lập trình +

Sử dụng một AGENT để quản lý các đoạn hội thoại thông qua INTENTS, ENTITIES

Hình 2-12: Mô tả cuộc trò chuyện giữa người và máy

2.5.3 Lý do lựa chọn

Dialogflow hiện có sẵn các kịch bản và Dialogflow cũng được lập trình khá tốt với lượng dữliệu lớn Ngoài ra Dialogflow còn cho phép tích hợp Chatbot với Messanger hay Skype haySlack một cách rất đơn giản

Dialogflow bao gồm khả năng học máy để cải thiện hơn nữa việc phát hiện các ý định từ những phát biểu của người dùng

2.5.4 Áp dụng vào đề tài

Sử dụng bot Dialogflow được nhóm cài đặt, training kết nối với Facebook Messenger sau đótích hợp vào website Người dùng giao tiếp với bot thông qua Facebook Messenger theo 2hình thức chưa đăng nhập messenger hoặc đã đăng nhập, nội dung cuộc trò chuyện được lưulại ở Facebook Messenger nếu người dùng đã đăng nhập Facebook Messenger

Chatbot xuất hiện tại tất cả các màn hình của người dùng

Trang 27

16

Hình 2-13: Chatbot phản hồi câu hỏi của khách hàng

2.6 Thuận toán khuyến nghị Neighborhood - Based Collaborative Filtering

2.6.1 Giới thiệu – Lý do lựa chọn

Neighborhood-based Collaborative Filtering (NBCF) là phương pháp gợi ý sản phẩm (items)dựa trên mức độ quan tâm của một (khách hàng) user tới một item dựa trên các users khácgần giống với user này Việc gần giống nhau giữa các users có thể được xác định thông quamức độ quan tâm của các users này tới các items khác mà hệ thống đã biết

17

Ví dụ hình 2-16, Nam, Hương đều thích ăn dưa hấu, dâu tây.Mặt khác, Nam cũng thích ăn cam, vậy nhiều khả năng Hương cũng thích ăn cam

Trang 28

Hình 2-14: Ví dụ về Neighborhood-based Collaborative Filtering Hai câu hỏi quan trọng nhất trong một hệ thống Neighborhood-based Collaborative Filtering là:

• Làm thế nào để xác định được sự giống nhau giữa hai users?

• Khi đã xác định được các users gần giống nhau, làm thế nào dự đoán được mức độ quan tâm của một user lên một item?

Phương pháp này được chia thành 2 hướng, đó là :

• User-User Collaborative Filtering (uuCF)

• Item-Item Collaborative Filtering (iiCF)

Trong đề tài khóa luận này, nhóm chọn phương pháp Item-Item Collaborative Filtering (iiCF) để nghiên cứu và áp dụng vào hệ thống

18

2.6.2 Một số định nghĩa

2.6.2.1 Utility Matrix (Ma trận tương tác)

Ma trận tương tác Người dùng – Sản phẩm (Utility Matrix/User – Item matrix) là một cơ sở

dữ liệu mô tả sở thích của mỗi User với từng Item trong hệ thống Về mặt hình thức, cơ sở

dữ liệu này có thể biểu diễn dưới dạng ma trận trong đó mỗi hàng tương ứng với một User,mỗi cột tương ứng với một Item, giá trị tại mỗi ô của ma trận chính là giá trị

Trang 29

rating của User cho Item đó

Hình 2-15: Ma trận tương tác Người dùng – Sản phẩm

2.6.2.2 Cosine similarity ( Độ tương quan của các vector)

Sau khi biểu diễn các rating thành utility matrix, mỗi cột (user) là một vector với độ dài là sốlượng các item mà user đó đã rating Để tính độ tương đồng giữa các vector ta sẽ dùng hàmCosine similarity

Áp dụng công thức:

Hình 2-16: Công thức tính độ tương đồng giữa 2 vector (Với Ai, Bi là thành phần của vector A, B tương ứng.)

19 Cos góc alpha được gọi là cosine similarity, đó chính là độ tương đồng của vector A và B Giá trị của cosine luôn nằm trong đoạn [-1, 1] Vậy ta rút ra được

- Nếu giá trị cosine bằng 1, nghĩa là góc hợp bởi vector A và vector B là 0 độ Tức haivector trùng nhau => đối tượng A, B giống nhau

- Ngược lại, giá trị cosine càng tiến dần về -1 thì A, B là khác nhau

2.6.2.3 Chuẩn hóa ma trận Utility Matrix

Để tính độ tương đồng giữa hai user, ta cần xây dựng vector cho mỗi user rồi áp dụng hàm cosine similarity giữa hai vectors đó

Các vectors này được xây dựng trực tiếp dựa trên Utility matrix Tuy nhiên, khó khăn là các

Trang 30

cột, hàng của ma trận Utility matrix thường có rất nhiều ô không có giá trị (mising ratings) vìmỗi user thường chỉ rated một số lượng rất nhỏ các items Vì vậy, ta sẽ thêm giá trị vào các ô này sao cho không làm ảnh hưởng nhiều tới sự giống nhau giữa hai vector

Ta sẽ chuẩn hóa dữ liệu cho ma trận Utility matrix bằng cách trừ đi ở mỗi cột (là các ratingcủa cùng 1 user) trung bình giá trị rating của cột Việc này là để loại bỏ sự khác biệt về mức

độ rating của các user

U0 U1 U2 U0 U1 U2I0 5 ? ? I0 1.67 0 0I1 4 2 4 ➔ I1 0.67 -0.5 0.67I2 ? 3 4 I2 0 0.5 0.67I3 1 ? 2 I3 -2.33 0 -1.33

3.33 2.5 3.33

20 Bảng 2-1: Ví dụ về chuẩn hóa ma trận uuCF

Ví dụ: Có một số user khó tính có thể cho điểm cao nhất là 3 nhưng user dễ tính thì điểmthấp nhất là 3 Khi đó nếu nhận định user khó tính không thích item (nếu ta coi 3 là điểmthấp) hoặc user dễ tính yêu thích item (nếu ta coi 3 là điểm cao) là không chuẩn xác Chuẩnhóa giá trị rating nhằm mục đích đưa trung bình rating của các user sau khi chuẩn hóa về 0.Gía trị rating dương thể hiện user ưa thích item và trái lại âm sẽ là không thích, bằng 0 làtrung lập

2.6.2.4 Công thức tính normalized rating

Sau khi có được ma trận tương đồng giữa các users, ta sẽ dự đoán rating của một user cho một item bằng cách xác định trên ma trận hệ số tương quan một tập N(u, k|i) gồm k users có giá trị tương đồng lớn nhất đối với user u mà đã rated item i Giá trị dự đoán rating của user u

sẽ được tính bằng tổng có trọng số của các rating trong tập k users tương đồng nêu trên theo công thức:

Trang 31

Hình 2-17: Công thức dự đoán noralized rating của user U cho item I

2.6.2.5 Root Mean Squared Error (RMSE)

Sai số bình phương trung bình theo căn bậc hai (Root Mean Square Error – RMSE) được định nghĩa là căn bậc hai của trung bình bình phương sai số giữa giá trị xếp hạng thực tế và giá trị xếp hạng dự đoán:

Hình 2-18: Công thức tính RMSE

21 Trong đó:

- Dtest: tập kiểm tra

- rui: dự đoán của người dùng u trên item i trên tập kiểm tra

- r̂ui: dự đoán của người dùng u trên item i theo thuật toán gợi ý

2.6.3 Tiến hành thực hiện

2.6.3.1 Bài toán đặt ra

Xét ví dụ Utility matrix Y trong Hình 2-19

Trang 32

Hình 2-19: Utility Matrix Y Giả sử có các user (khách hàng) từ u0 đến u6 và các item (sản phẩm) từ i0 đến i4, mỗi giá trịtrong ô vuông là mức độ rating (đánh giá) của user cho item tương ứng Bài toán đặt ra là:tính giá trị dự đoán rating cho các dấu “?”

2.6.3.2 Hướng tiếp cận

22

Trang 33

Hình 2-20: Lọc cộng tác dựa theo sản phẩm Hướng tiếp cận:

- Biểu diễn mỗi item bằng một vector thuộc tính Từ đó, tính toán độ tương đồng giữacác item

- Để dự đoán rating của user U với một item I, ta sẽ lấy ra k items đã từng được Urating và có độ tương đồng với item I là cao nhất Sau đó, dựa vào những ratingcủa user U đó với k item I để tính toán ra kết quả

- Lấy những items có dự đoán rating cao nhất gợi ý cho U

2.6.3.3 Thực hiện các bước

2.6.3.3.1 Tính độ tương đồng giữa các user

Chuẩn hóa ma trận Utility Matrix

Áp dụng cách tính chuẩn hóa ma trận Utility Matrix, thay vì tính trung bình cộng ratings củacác users, ta sẽ tính trung bình cộng ratings của các items, ta có bảng chuẩn hóa như sau:

23

Trang 34

Hình 2-21: Ma trận chuẩn hóa (iiCF)

Với độ tương đồng lần lượt với i2 là: 0.49, 0, -0.55, -0.88

Chọn k = 2, vậy 2 giá trị lớn nhất là 0.49, 0 tương ứng với các items i0, i1 có normalized rating với U0 lần lượt: 2.4, 2

24

Áp dụng công thức tính normalized rating, ta có:

Ŷi2,u0 = 0.49 ∗ 2.4 +0∗2

Trang 35

|0.49|+ |0|≈ 2.4

Áp dụng cho các giá trị còn thiếu trong ma trận Utility matrix Y, ta được:

Hình 2-23: Ma trận normalized ratings matrix đầy đủ (iiCF) Sau khi lập được ma trận normalized ratings matrix đầy đủ, ta có thể quy đổi các giá trị ratings đã chuẩn hoá về thang 5 có thể được thực hiện bằng cách cộng các cột của ma trận trận Y với giá trị rating trung bình của mỗi user như đã tính ở bước chuẩn hóa ma trận

Từ ma trận normalized ratings matrix đầy đủ, ta sẽ gợi ý cho các user tương ứng với các item

có normalized ratings lớn hơn 0 – tương ứng với việc user này có nhiều khả năng thích hơn

2.6.4 Áp dụng vào đề tài

Khi người dùng đăng nhập vào website, hệ thống sẽ kiểm tra xem người dùng đó đã rating cho sản phẩm nào chưa

Trang 36

- Thường hợp 1: Đây là người dùng mới hoặc người dùng ít tương tác

+ Với trường hợp này, hệ thống sẽ khuyến nghị sản phẩm bán chạy nhất theo từng danh mục, sản phẩm mới,…

25

- Thường hợp 2: Người dùng đã ít nhất 1 lần rating, tương tác với sản phẩm + Với

trường hợp này, ngoài các khuyến nghị của trường hợp 1, người dùng sẽ được

hệ thống khuyến nghị cá nhân hóa bằng phương pháp Item – item

Collaborative Filtering dựa trên các sản phẩm mà người này đã rating ở mục

“Gợi ý hôm nay”

Hình 2-24: Gợi ý sản phẩm bằng Item –item Collaborative Filtering trên website

Trang 37

+ Xem thông tin sản phẩm

+ Xem các sản phẩm của shop

+ Đặt hàng và mua hàng

+ Quản lý giỏ hàng

+ Theo dõi đơn hàng

+ Chỉnh sửa thông tin cá nhân

+ Thống kê doanh thu

+ Quản lý thông tin nhà bán

27 + Quản lý wallet (ví tiền)

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

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