TÓM TẮT KHÓA LUẬNKhóa luận với dé tài “Xây dựng shop quan áo online tích hợp gợi ý sản phẩm và dự báo doanh thu” nhằm mục đích tập trung vào phát trién một ứng dụng web cho shop quần áo
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẢN MÈM
HOÀNG QUÓC TRỌNG - 19522408
NGUYÊN DUY PHÚC - 19522038
KHÓA LUẬN TÓT NGHIỆP
XÂY DUNG SHOP QUAN AO TÍCH HỢP GOI Ý SAN
PHAM VA DU BAO DOANH THU
Building an online clothing store with product recommendations
and sales forecasts
KY SU NGANH KY THUAT PHAN MEM
GIANG VIEN HUONG DAN
THS TRAN ANH DUNG
TS DO THI THANH TUYEN
TP HO CHÍ MINH, 2023
Trang 2LỜI CẢM ƠN
Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường
Đại học Công nghệ Thông tin - ĐHQG TP.HCM, chúng em đã được trang bi các
kiến thức cơ bản và các kỹ năng thực tế dé có thé lần đầu thực hiện Khóa luận
của mình.
Đề hoàn thành Khóa luận này, chúng em xin gửi lời cảm ơn chân thành đến
ban Giám hiệu trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM vi đã tạo
điều kiện về cơ sở vật chất, đặc biệt là hệ thống thư viện hiện đại và đa dạng sách,
tài liệu, giúp chúng em thuận lợi trong việc tim kiếm và nghiên cứu thông tin.
Chúng em cũng xin cảm ơn thay Trần Anh Dũng và cô Đỗ Thị Thanh Tuyển
đã tận tình giúp đỡ chúng em, định hướng cách tư duy và cách làm việc khoa học.
Những góp ý quý báu của quý thầy cô không chỉ giúp chúng em hoàn thành luận
văn này mà còn trở thành hành trang quan trọng cho học tập và sự nghiệp của
chúng em trong tương lai.
Trong quá trình làm Khóa luận này, chúng em không tránh khỏi những
sai sót Chúng em kính mong nhận được sự chỉ dẫn và góp ý của quý thầy cô déhoàn thiện và phát triển Khóa luận hon trong tương lai
Chúng em xin chân thành cảm ơn Xin chúc những điều tốt đẹp nhất sẽ
luôn đồng hành cùng mọi người.
Tp Hồ Chí Minh, ngày 02 tháng 07 năm 2023
Sinh viên
HOÀNG QUỐC TRỌNG
NGUYÊN DUY PHÚC
Trang 31.5 Pham vi nghiÊn CỨU G5 3 13133118911 151 51118111111 111 1 11 ng ry 11
Chuong 2 CO SỞ LÝ THUYÊT 2 ¿+ +SE+EE+EE£EEEEE2EEEEeEEeEkerkerkrree 12
2.1 Tìm hiểu về Reacfjs -©:-©5+2+s2EESEEEE2E1271271211211211 1121111, 12
"0 vn na 12
2.1⁄2 — Giới thiệu vềJSX -5cccccccckccrrerkeerrerrreee 122.1.3 Giới thiệu về Components ¿-5¿©++©++cx++zx+zxvzxeerxesrxee 132.1.4 Giới thiệu về Props va State -©ccccc+cvrkerkerkrrrerkerkerree 132.2 Tìm hiểu về ASP.NET CORE API -cccc5+csccxvrrrrrrrrrrrrrrrre 14
2.2.1 — GiB0hiệu SẠ Z7 ÁÀ ÁÒẲÔAQQI SH nh khen 14 2.2.2 ASP.NET CORE là gì S.cẶĂLS SH HH HH ghe 15 2.2.3 ASP.NET CORE APPI Ă- SG HH ng HH nh như 15 2.2.4 Các dịch vụ RESTful API 25 s1 ngư, 16
2.2.5 — Tại sao phải sử dụng ASP.NET Web Apl? - cà ce 17
2.3 Tìm hiểu về Sql S€TV€T -2- 2 2 S£+S£+ESE£EEEEEEEEEEEEEE2E12112121 212121 xe, 18
2.3.1 Giới thiệu về Sql Server cecceccccecccscssssseesessessessessessesessesesessessessesseaee 182.3.2 Các thành phan co bản trong Sq] SerVer 5+ s+cs+cs+ss2 18
2.3.3 Tại sao phải sử dung SQL S€TV€T? G c Series 19 Chương 3 © MACHINE LEARNING: ML,.NEÏT - -cs«cscseessesessee 21
Trang 43.1 Khai 0 21
3.2 Quy trinh 09.1027 a ồ.ồ Ồ 23
3.3 God ¥ Sam Pham sẽ .aiá ÔỎ 24
3.3.1 Bộ dữ liệu Ăn HH HH HH TH HH HH ng r 24
3.3.2 _ Chuyến đổi dữ liệu - ¿5c E2 211212121 cree 25
3.3.3 Collaborative Filtering - - kxkvk* HnHnHngnniệt 26
3.3.4 Các thuật toán để xuất ccccccrrrtrrrrrrriirrrrrirrrrrriirrrrre 29
3.3.4.1 Thuật toán Matrix FactOrIZatIOI - -2Ăc 5+ ++2<‡++scvvxsssexss 29
(b)_ Ưu điểm oes eecceeecsseeecssseeeessneeessnsecssnsecesnnecessnecssnsecssnsecssneeeesnneessnseessnees 33(c) Nhược điểm 4⁄6 ^ À 33
3.3.4.2 Thuật toán Field-Aware Factorization Machines 34
3.3.4.3 Ưu điểm cccrHnhhHH TH 343.3.4.4 Nhược điểm cccchcntrhnhhHrhhrrreriee 343.3.4.5 Kết luận lựa chọn thuật toán - - + k+s+Ek+k+EeE+xzEeEerxzxsrrs 35
ch» 5s" e 35
3.3.0 Đánh gIá HH HH HH HH Hà HH nh ng 37
3.4 Dự báo doanh thu - - - - -<GĂ E2 202201111112211 111111999311 ng ven y 37
3.4.1 Thuật toán Singular Spectrum Analysis (SSA) -+- 37
3.4.1.1 Chuẩn bị dit liệu: 2¿©2¿©7+2cxc2kc2ESEEEEkerkrrkerrerkerrrree 383.4.1.2 Phân tích phân rã số (SSA) - Bước cụ thể: - s-5ss+ 383.4.1.3 Xác định kết hợp các thành phan chính: 2-2-5554 39
BAVA Dur ốổ na 41
3.4.1.5 Trích xuất kết Qua: c cescccccccccsssesssesssesscssecssecsuessecssecstesscsseeanecsseenes 41
Trang 53.4.2 Ưuđiểm -.-5cc22c22t2EE E22 EEEEEEEEErrererrrrree 423.4.3 Nhược điểm 2c E222 E2 2121122111211 eEkerree 42
3.4.5 | DY: ee 43
3.4.6 Đánh Sideecccccecccccccsssecssesssessesssesssessssssesssecssessssssecssesssecseessesssecsseeseseses 44
Chuong 4 KIÊN TRÚC HE THÓNG - 2: 22+2+EE+EE+£Et£EE+Ezrxerrezez 46
4.1 Kiến trúc hệ thống: Mô hình MVC 2¿-©5¿22x22+tzxtsrxsrxrrreeres 46
4.2 Sơ đồ lớp -c- 2c 22221221 2122112112112211211211211211121111 0111111 erre 47
Chuong 5 THIẾT KE DU LIỆU ¿2-25 E+E£+E++E£+EerEerxerxersxee 48
LG 6 /⁄ố -wế -›.s 48
5.1.1 Khách hàng -© c©cEccreerkerkerrkrrreerkeerkee 48
5.1.1.1 Danh sách use Case 5 - cĂ S313 11 1 vs ve 49
5.1.1.2 Mô tả chỉ tiết từng Use €ase ¿ -¿©2c+cxecrxcrrerkeerkeerrees 50
5.1.2 QUAM tH] VIED ah V.ố/ h 59
5.1.2.1 Danh sách use Case - <2 1113122231111 SE ekeeeezse 59
5.1.2.2 Mô tả chỉ tiết từng Use CaSe -2-©5c©c22ctcEEeEEcrErrxrrkerkerree 60
5.2 Thiết kế cơ sở dữ liệu -2¿©2£+2++SE£EE2EE2EEEEEEEEEEEEEEEEEECrkrrrkrrkerrres 66
5.2.1 Sơ đồ ERD Sc 2c 22 T221 eeree 66
5.2.2 — Chỉ tiết các bảng 2c EeEkSEEE 221221112121 EEEerkee 66
“m9 66
xo ä7 5 67 5.2.2.3 AT€SS ĂcQQ SH vế 68 5.2.2.4 Đrands - - - - L k k LH SĐT 51 511k kkkkkkkkkkEEr 68
Trang 62.2.2.5 Car{Ï(IS SG HH HH HH Hư 68
Zm*9: 69 5.2.2.6 COITIMNTIS 5 << E1 Hư, 69 5.2.2.9 DISITICfS HH HH HH HH ng 70 5.2.2.1 lmaỹeS - Ăn TH HH HH HH, 70 5.2.2.11 OrderItems oe ee escesesseeseeeseeesecseesecesecsseseesseesseseseseeeaeees 71
5.2.2.2 OTTS SG n H nHH H H nnkrt 71
5.2.2.13 ProductVar1anIS - - ch ng HH ngư 72 5.2.2.14 ProductVarlantSfOT€S HH HH ng 72 3.2.2.15 ProvinceSSz⁄2 uấn A ve Ă cà 73 53.2.2.16 Ra[Ing Ăn TH TH HH HH nh 73 251KB: 66 C ` ẻẽ.ố.h “= 74
6.1.2 Quản trỊ VIÊN G 1 2001111101 111111 1118111118 1111101111181 1 1E khi, 76
6.2 Mô tả chỉ tiết từng man hình: ¿2 2 s+E++E£+EE+EE+EEerEzErrxerxerxeee 77
6.2.1 QUAN tL] VIED 0 ¬ 77
6.2.1.1 Dashboard 0 eee csesessecsecnecseceeceecesesseesecsessessessesseseeeseeseaesaseaes 77
6.2.1.2 Thêm thương hiỆU SG 2 33321333 EEEEEEEEEErrrserrrrrkrrre 78
911 Nho nh 79
Trang 76.2.1.4 Thêm sản phẩm -¿- 2-2 E£+E£+EE+EE£EEEEEEEEEEEEEEEEEEEEEErrkrrkerree 80
6.2.1.5 Xem sản phẩm - 252522 SE‡EEEEEEEEEE1211211211212121 212, 816.2.1.6 Stra sam Pham ấăỎủẦầ ÔỎ 82
6.2.1.7 Thém phân lOạI - 5+ + 11T ng 84
6.2.1.8 Kem 3 ác na — 85 6.2.1.9 Xem người ùng, - - 5 5 + + HH Hy 86 581/09) 05 1 87 6.2.1.11 Thêm kho -2 252 5E+SE£2E£2EE£EEEEEEEEEEEEEEEEEEEEEEEErrkrrkerree 88
6.2.2.3 Chi tiết sản phẩm ¿- ¿5£ SE+EESEESEEEEEEEEEE2E2EEEExrrkrrk 94
6.2.2.10 Đánh giá :-©5:©5222+22x2EE 2222122121212 2121 re 102
Chương7 KẾT LUẬN 2©22+E2+E2ESEEEEEEEEEEEEErrrrrrerree 103
7.1 Tổng kếT -2:22+c 2k2 2 2211221221127112712112211211211211 111.11 rre 103
Trang 87.2 Kết QUA ¡8v 2111 - 7.3 Hạn chế và hướng phát triễn - 2-2 s£ + £+EE+EE£EE£EEE+EEEEEerkerrerrerred
Trang 9DANH MỤC HÌNH
Ig0001:000,4 :10i 0 dê 12 Isi:0290/10600i.0.0001011757 ố 14 Hinh 2-3 im oan 18
I6 0/0007 11 21
Hình 3-2 Quy trình hoạt động ML,.Net - - Gà HH HH Hy 23
Hình 3-3 Bộ dữ liệu commens - - - E321 E33223 1111521118 118511121 xxe 25
Hình 3-4 Kết quả sau khi chuyên đồi dữ liệu -2- 2-52 22 x+£E+£E£z£++£xerxezez 26
Hình 3-5 Minh hoa Collborative ẨIÏt€TITE < + 1S ng erre 28
Hinh 3-14 0) /08ix:0 110770777 na 32
Hình 3-21 Model dự báo doanh thu - - - - 5 2 1111111 222 E151 EEseszee 42
Hình 3-22 Data doanh thu năm 2022 - - 2 2+ E23 E E9 E*E*EEEEESkEEkEskkserkkrkrrke 43 Hình 3-23 Data doanh thu năm 2023 - - 5 2+ 23113 * E9 ng rưkt 44
Hình 3-24 Màn hình dự đoán doanh thu - 2555222222 E‡+++seeeeeeeeezzzz 44
Hình 3-25 Kết quả đánh giá model ¿- 2 + +E£EE£EE+EE+EE+EEEEEEerEerkerkerkrree 45
Trang 10Hình 4-1 Mô hình MVC Ghi Hàng giờ 46
Hình 6-5 Giao diện thêm màu - G55 2 113223221181 111582 1 5111555111 zxe 79
Hình 6-6 Giao diện thêm sản phẩm - 2-22 5£ ©£+E£2EE2EE+EE++Exezrxrrxesree 80
Hình 6-7 Màn hình xem sản phẩm 2-2 2 ¿+ E+EE+EE+EE£EE+EE£E£EerEerxerxrrsrree 81
Hình 6-8 Màn hình sửa sản pham ccccecccccecsscsssessesseseseesessessessessessessesessessessessessesseees 82
Hình 6-9 Màn hình thêm phân loại - - 55+ E++E*k*x**VE#EEkeEeeereereereerrerske 84 Hình 6-10 Màn hình xem phân loại - -¿- + + +++***EE+EE+EE+eEeeEsereerseereesserrke 85
Hình 6-11 Giao diện xem người dùng - <6 + + E++kkE+eekeeeeeseeeseeere 86
Hình 6-12 Giao diện quản lý KhO 6c c1 331331 E3 ESEEEESEserseseereeereere 87 Hình 6-13 Giao diện thêm KhO - 6c 6 6 2 11211211211 911 11 1 11 11 9v 111g g rưkt 88
Hình 6-14 Giao diện nhập kho - - 5 1 1311113111391 118111111 1111811 re 89
Hình 6-15 Giao diện di chuyên kho 2-22 2¿2S++2E+2EE+2EE2EEtEEterxezrxrrrecree 90Hình 6-16 Giao diện thống kê tồn kho 2-22 ©5++E+2EE+2EEtEE+erxezrxrrresree 91
Hình 6-17 Giao diện trang CỦ - - + + 1111 HH HH 92
Hình 6-18 Giao điện xem sản phẩm 2 2 ¿+ +E+SE+EE+EE+EE+E£EE£EerEerxerxrrsrree 93Hình 6-19 Giao diện chỉ tiết sản phẩm - L -2-©2¿©5225£+£E+£Et£EzEzrxerxeres 94Hình 6-20 Giao diện chỉ tiết sản phẩm - 2 -cc¿55vtcSvvtcvtxvrrrrrtrrrrrrrrrrt 94
Hình 6-21 Giao diện đăng nhập - - G191 95 Hình 6-22 Giao diện đăng ký c5 x31 Hàng giờ 96
Hình 6-23 Giao diện thông tin cá nhân .- - << +1 1E 1+ 1 Hee 97
Hình 6-24 Giao diện thông tin g1ỏ hang - - - 5 S3 1+ se erere 98 Hình 6-25 Giao diện thông tin đặt hàng - 6 + 31111991 9 9g ry 99
Trang 11Hình 6-26 Giao diện trạng thai don hàng
Hình 6-27 Giao diện đánh giá sản pham
Trang 12DANH MỤC BANG
Bảng 3-1 Minh họa Field-Aware Factorization Machines -. ««+s xe 34
Bang 5-1 Danh sách use case của khách hàng - - + + * + xsseeeseersreers 49 Bảng 5-2 Use case Đăng mhap - - c2 1911191113911 11 1111 11 911 ng ng 50
Bảng 5-3 Use case đăng Ky - nh HH HH TH TH TH HH Hàng nghiệt 51
Bang 5-4 Use case quên mật khâu 2-2: £+5£+EE£EE£EE+2EE+EEtEEerEerrxrrxerkree 52Bảng 5-5 Use case xem danh sách sản phẩm 2- 2¿+¿2++2+++cx++zxzxesrsz 52
Bang 5-6 Use case tìm kiếm sản phẩm - 22 2 ESE+2E£2EE+EE+EEtEEEzEEerxrrrrrex 53
Bang 5-7 Use case xem thông tin sản phẩm - 2-2 2 2+£+E£+E+£E+£x+rxersxez 53Bang 5-8 Use case thêm san phẩm vào gid HANG cececessesessessesseseesesssessessesseeseeee 54
Bang 5-9 Use case xem giỏ hàng, - - 5 5s + 31 vn HH ng ng HH giết 55
Bang 5-10 Use case thanh toán 916 hang . 5 55-1 + +vEEsseseeerseeers 55
Bang 5-11 Use case xem danh sách đơn hang - 5 + csecseeeseeserseesee 56
Bảng 5-12 Use case xem chỉ tiết đơn hàng :-5- 22 5¿2+2£+£x+vrxezrxrrreeree 57Bang 5-13 Use case đánh giá sản phẩm ¿2-2 E+SE+EE+E£+E£E£EerEerkerkrrsrree 57Bang 5-14 Use case xem các sản phâm được đề xuất - 2 25c ©scxscscrsce2 58
Bang 5-15 Danh sách use case quản tri VIÊN «+ + *vEeEeeeesereerseesee 60 Bảng 5-16 Use case đăng nhập quản tri VIÊN - «+ + vs #vEseEeseeeeesessee 60
Bảng 5-17 Use case xem thông tin các đơn hang ¿5s + + s+ssserseerees 61
Bang 5-18 Use case thống kê doanh thu -2- 222 + E+2E£2EE+EE+£EezEzEzrxerxeree 62
Bang 5-19 Use case quản lý sản phẩm ¿2+2 SESE+EE2EE£EE2E2EEEeEEerkerkrrerree 62
Bang 5-20 Use case quản ly thương hiỆu - c5 32+ ESeerseeeeeerereere 63
Bảng 5-21 Use case quản lý mầu sắc ¿- ¿5c +E£EE#EE2EE2EEEEEEEEEEEEEEEkrrkerkrree 63
Bảng 5-22 Use case quản lý KhO << +13 1 9311 ng ngư 64
Bang 5-23 Use case quan lý sản phẩm trong kho -2- 2 s+2s£+£s+£x+zxzzez 65
Bang 5-24 Database US€TS - G11 SH TH TH HH HH 67 Bang 5-25 Database Product ecceecceessceesceseseeeseececeeeeeeeaeceseeceeeceaeeseaeeeeeeeenessaes 68 Bang 5-26 Database Address cccecccessecesseseneeesnecececeaeeeeaeessaecesneceaeeeeaeenaeeeeeesaes 68 Bang 5-27 Database Brands 0n 68
Trang 13Bảng 5-28 Database CaTfÏf€1T - ác 5 3 vn TH TH ngàn TH HH giết 69 Bảng 5-29 Database Categories Án HT TH HH HH 69
Bảng 5-30 Database CO ÏOTS - G4 11 HT TT HT HH 69
Bảng 5-31 Database COoimIme€ffS - 5 <6 + 1191 91 93 9 vn nh ng ng 70 Bang 5-32 Database ID1STICfS - c1 119191 TH TH HH ng 70 Bang 5-33 Database Ïmagỹ€S 11H TH TH TH HH HH nh 70 Bảng 5-34 Database Orderltems - 5 5 + +1 9 vn HH ng HH ng rưệt 71
Bang 5-35 Database Orders - - -G Ác HT HH Hư 72
Bang 5-36 Database Product Variants - - - cv HH ng ng 72 Bảng 5-37 Database ProductVarIantSfOT€S - «+ kg trên 73 Bang 5-38 Database PTOVITC€S LH TH TH HH HH 73 Bang 5-39 Database RafInØ - 1112111191111 1v HH TH HH HH 74 Bang 5-40 Database Sales - ng Hàng ngờ 74
Bảng 5-41 Database WWaTds - Go HH 75
Bang 5-42 Database WarehOUSeS ch HH ng 75
Bang 6-1 Phân tích màn hình Dashboard - - ¿+ + + ++++*£++*k+veexseeeeeereeeers 77 Bảng 6-2 Phân tích màn hình thêm thương hiỆu - 5 55555355 ‡>+s++>+svx+x 78
Bảng 6-3 Phân tích giao diện thêm màu - - 5 5 23+ *£+*E++se+eeeeeeerseeers 79
Bang 6-4 Phân tích giao điện thêm sản phẩm 2-2-2 E+£E+£E£+£++£x+zxzzsz 81Bảng 6-5 Phân tích xem sản phat s ccsccccsssssesssesssesssecsssssecssecssecssessecssecssecsesssecsneess 82Bang 6-6 Phân tích sửa sản phẩm 2-2 ¿5© SE£EE#EE+EE£EEEEEEEEEEerEerkerkerkrree 83
Bảng 6-7 Phân tích thêm phân loại - << + E*2*E +2 E+EEESeereeeeerseeereere 84 Bảng 6-8 Phân tích xem phân lOại - - + + 33+ E333 E**EESEEESeereeerreeeereere 85 Bảng 6-9 Phân tích xem người dùng - << + 13k vn TH ngư 86 Bảng 6-10 Phân tích quản lý khoO - c1 331111311139 11111111111 Eerkre 87
Bang 6-11 Phân tích thêm kho - «<< + +2 E311 E3 91111 TH ngư 88
Bang 6-12 Phân tích nhập kho - - 6 5 1 E211 1191 HH He 90
Bảng 6-13 Phân tích di chuyển kho - 2 2 ¿+ SE+SE+EE+EE£EE+EZEEEerEerxerxrrkrree 91Bảng 6-14 Phân tích thống kê tồn KhO ccsccsssessessesssessecsessssssessessecssseseesessssseeseeseess 92
Trang 14Bảng 6-15 Phân tích trang CHủ 6 5 +3 2 9 9 TH TH ngàng ng HH tiệt 93
Bảng 6-16 Phân tích xem sản phẩm 2-22 5¿+S£2E£+EE+2EE£EEtEEEeExezrxrrreeree 93Bảng 6-17 Phân tích chi tiết sản phâm 22-5252 ©S£22E22EEt2EEtEEESEEtzrxrrxecree 95
Bang 6-18 Phân tích giao diện đăng nhập 5 Gà ng reeesee 96 Bảng 6-19 Phân tích man hình đăng kỹ - - 55c 322132 SEvereerrrserrersrkrrre 96 Bảng 6-20 Phân tích thông tin cá nhân - - 132 1331 Srseerrrerersre 97 Bang 6-21 Phân tích g1ỏ hàng - 5 2 3 2319191 HH TH HH giết 98 Bang 6-22 Phân tích thông tin đặt hàng - nh Hệ, 100 Bảng 6-23 Phân tích trang thái don hảng - 525 32+ S+**+*Eseereeerreererrerrs 101
Bảng 6-24 Phân tích đánh giá sản phẩm 2 222 522++2E++£E++zxezzxrrseee 102
Trang 15DANH MỤC TỪ VIET TAT
MVC Model-View-Controller
ID Identification
HTML Hypertext Markup Language
HTTP Hypertext Transfer Protocol
Al Artificial Intelligent
ML Machine Learning
API Application Programming Interface
SQL Structured Query Language
Trang 16TÓM TẮT KHÓA LUẬN
Khóa luận với dé tài “Xây dựng shop quan áo online tích hợp gợi ý sản phẩm
và dự báo doanh thu” nhằm mục đích tập trung vào phát trién một ứng dụng web cho
shop quần áo online với mục tiêu cung cấp trải nghiệm mua sắm tối ưu cho khách
hàng và hỗ trợ quản lý thông tin sản phẩm Ứng dụng tích hợp chức năng quản lý
thông tin sản phẩm, dự đoán doanh thu và đề xuất sản phẩm phù hợp
Người quản lý của cửa hàng có khả năng dễ dàng kiểm soát thông tin sảnphẩm, bao gồm hình anh, mô tả và giá cả Điều này đảm bảo rằng thông tin sản phẩm
luôn được cập nhật đầy đủ và chính xác Đồng thời, ứng dụng cung cấp chức năng
dự đoán doanh thu, sử dụng các phương pháp dự đoán dựa trên dữ liệu lịch sử doanh
thu và yếu tố tương quan, giúp người quản lý nắm bắt tình trạng kinh doanh của shoptrong tương lai và đưa ra quyết định chiến lược phù hợp
Ngoài ra, ứng dụng còn tích hợp chức năng đề xuất sản phẩm phù hợp nhất cho
khách hàng Sử dụng các thuật toán gợi ý dựa trên dữ liệu hành vi mua săm và sở
thích cá nhân, khách hàng sẽ nhận được các đề xuất sản phẩm cá nhân hóa và thuậntiện Điều này giúp tăng trung thành và doanh số bán hàng cho shop
Trang 17ĐÈ CƯƠNG CHI TIẾT
TEN DE TÀI: Xây dựng Shop quan áo online tích hợp gợi ý sản phẩm và dự báo
doanh thu
TÊN TIENG ANH: Building an online clothing store with product
recommendations and sales forecasts
Cán bộ hướng dẫn:
ThS Trần Anh Dũng
Ts Đỗ Thị Thanh Tuyền
Thời gian thực hiện: Từ ngày 12/02/2023 đến ngày 30/06/2023
Sinh viên thực hiện:
Nguyễn Duy Phúc — 19522038
Hoàng Quốc Trọng — 19522408
Nội dung đề tài
1 Lý do chọn đề tài:
Trong thời đại công nghệ hóa hiện nay, việc mua bán qua các trang thương mại
điện tử đã trở thành xu hướng pho biến, tạo ra su cạnh tranh khốc liệt giữa các cửahàng kinh doanh bán quần áo Chúng em nhận thấy răng các cửa hàng quần áo ngàynay cần phải có một ứng dụng web thương mại điện tử riêng, với đầy đủ chức năngcần thiết, nhằm tạo thêm tiện ích cho khách hàng và cạnh tranh trong ngành kinh
doanh hiện nay.
Chúng em không chỉ quan tâm đến việc xây dựng một ứng dụng web đơn thuần
dé thực hiện các chức năng bán hàng chính, ma còn mong muốn áp dụng trí tuệ nhântạo (AI) vào ứng dụng của chúng em Chúng em dự định xây dựng thuật toán AI để
đề xuất quần áo cho khách hàng và dự báo doanh thu cho chủ shop Điều này sẽ mang
đến sự cải thiện trải nghiệm mua sắm cho khách hàng và cung cấp thông tin quan
trọng dé chủ shop có thé đưa ra các quyết định kinh doanh một cách hiệu quả
Trang 182 Mục tiêu:
a Xây dựng Website bán quần áo
- _ Khách hàng: Có thê lọc các loại quan áo, tìm kiếm sản phẩm phù hợp nhu
câu, thêm sản phâm vào giỏ hàng, thanh toán
- Chu shop: Xem doanh thu, thêm sửa xóa các sản phâm bán hàng, quản lý
sản phẩm trong cửa hàng
- Cải thiện UI, UX và bổ sung các nghiệp vụ còn thiếu
b Xây dựng chức năng đề xuất và dự báo doanh thu
- Bồ sung thêm dữ liệu
- Tăng độ chính xác của các thuật toán dự báo
Thanh toán giỏ hàng
Được đề xuất sản pham dựa trên sự ưa thích của bản thân với các
khách hàng khác
Đăng nhập, đăng ký và các chức năng xác thực khác
Chuyên đổi ngôn ngữ Anh - Việt
—_ Đôi với chủ shop:
+
+
Thêm, xóa, sửa sản phâm
Xem doanh thu và được dự báo doanh thu
Trang 19+ Xem tình trạng các đơn hang
Đối tượng sử dụng:
Những người muốn mua các sản phẩm quan áo
Chủ shop muốn kinh doanh qua ứng dụng web thương mại điện tử
Phương pháp thực hiện:
Phương pháp làm việc: Làm việc nhóm hai thành viên thông qua cả hai
phương thức online và offline đưới sự hướng dẫn của giảng viên hướng
dẫn.
Phương pháp nghiên cứu:
+ Phân tích nhu cau sử dụng của đối tượng người dùng.
+ Nghiên cứu tài liệu các công nghệ liên quan.
Phương pháp công nghệ:
+ Tìm hiéu xây dựng hệ thống gợi ý theo hướng Collaborative filtering
Recommender
+ Tìm hiểu xây dựng hệ thống dự báo doanh thu
+ Xây dựng giao diện web app dé tương tác với người dùng
+ Quản lý source code thông qua Github
+ Sử dụng Trello, Google doc, dé quản lý tiến trình và tài liệu
Thuật toán AI
Gợi ý sản phẩm
Thuật toán Matrix Factorization là một hướng tiếp cận khác củaCollaborative Filtering, nghĩa là gợi ý bằng "kỹ thuật phân rã ma trận"
Kỹ thuật phân rã ma trận là phương pháp chia một ma trận lớn thành hai
ma trận có kích thước nhỏ hơn, sao cho ta có thé xây dung lại nó từ hai
ma trận nhỏ hơn này cảng chính xác càng tôt.
Trang 20Phần mềm sẽ căn cứ vào những đánh giá của người dùng khác dé đưa radanh sách những sản phâm phù hợp với sở thích của họ nhằm giúp cho
việc đưa ra quyết định một cách dé dàng hơn
Mục đích chính của phương pháp này giúp việc đưa ra các gợi ý cũng như
training một cách nhanh chóng hơn vì kích thước của ma trận đã được thu nhỏ hơn so với trước kia.
Thư viện: Microsoft.ML.Recommender
Dự báo doanh thu
Thuật toán Singular Spectrum Analysis (SSA) hoạt động bằng cách phân
tách chuỗi thời gian thành một tập hợp các thành phần chính Các thànhphần này có thể được hiểu là các phần của tín hiệu tương ứng với xu
hướng, nhiễu, tính thời vụ và nhiều yếu tố khác
Mục tiêu là chia các khoảng thời gian trong năm thành từng tháng, từng
tuần từ đó đưa ra gợi ý doanh thu một cách cụ thể hơn, mang đến cho
người chủ cửa hàng có cái nhìn rõ ràng hơn trong từng giai đoạn của năm.
Thư viện: Microsoft.ML.TimeSeries
+ Framework: ASP NET, ML.NET
Kết quả mong đợi:
Tao ra website phục vụ các chức năng cơ bản của một website thương mại điện tử.
Trang 21- Hoạt động 6n định, có thé xử lý thông tin nhanh chóng
- Đưa ra gợi ý dựa vào đánh giá của người dùng
— Dự đoán doanh thu của cửa hàng
1 15/02 - Hoan thanh dé cuong chi tiét
2 | 15/02 — 20/02 - Xây dựng mục tiêu
- Tìm hiêu các nên tảng công nghệ
3 | 21/02 — 27/02 - Tim kiém Data
4 | 28/02 — 02/04 - Hoàn thiện chức năng xác thực tài khoản
- Hoàn thiện chức năng đặt hàng, xem lịch sử
5 03/04 - 30/04 - Tìm hiểu và áp dụng phân tích xử lý ngôn ngữ tự nhiên
để cải thiện chức năng đề xuất
- Hoàn thiện chức năng đánh giá sản phẩm
6 | 30/04- 15/05 - Hoàn thiện chức năng xác thực tài khoản
7 16/05 — 05/06 - Hoàn thiện chức năng quan lý san phẩm, quản lý kho
8 | 05/06 — 15/06 - Chức nang thanh toán online
Trang 229 | 10/05-20/06 | - Kiểm thử
101 21/06— 30/06 - Hoàn thiện báo cáo
11 Phan công công việc:
— Tìm hiểu công nghệ
— Phân tích yêu cầu
— Kiểm thử
— Chuan bi tài liệu, viet báo cáo
Nguyễn Duy Phúc Hoàng Quốc Trọng
Công việc cá nhân — Xây dựng hệ thống — Xây dựng giao diện
back end, admin front end
— Lién két database — Xay dung database
Trang 23(Ký tên và ghi rõ họ tên) Sinh viên
(Ký tên và ghi rõ họ tên)
Trang 24Chương 1 TONG QUAN DE TÀI
e - Tích hợp Machine Learning: ML.Net
1.2 Khao sat hién trang
Trong thuc té, voi su phat triển của công nghệ hiện đại, mua sắm trực tuyến đã
trở thành một xu hướng phô biến và ngày càng được ưa chuộng Đặc biệt trong lĩnh
vực bán quan áo trực tuyến, các cửa hang đã nhận thay tam quan trọng của việc có
một ứng dụng web thương mại điện tử đề tăng cường hiệu quả kinh doanh.
Việc sở hữu một ứng dụng web bán hàng trực tuyến đem lại nhiều lợi ích cho
cả khách hàng và chủ cửa hàng Đối với khách hàng, ứng dụng web mua sắm trựctuyến mang đến sự tiện lợi, linh hoạt về thời gian và không gian, cho phép họ duyệt
và mua sắm các sản phẩm quần áo một cách thuận tiện từ bất kỳ đâu Đồng thời, ứngdụng web cũng cung cấp một phạm vi lựa chọn rộng hơn về sản phẩm, thương hiệu
và kiêu dáng, giúp khách hàng dé dàng tim được những sản phâm phù hợp với sở
thích và phong cách của họ.
Đối với chủ cửa hàng, việc sở hữu một ứng dụng web bán hàng trực tuyến mang
lại nhiều lợi ích kinh doanh Ứng dụng web thương mại điện tử giúp mở rộng thịtrường, vượt qua các ranh giới địa lý và tiếp cận được khách hàng ở nhiều vùng miền,thậm chí quốc gia khác nhau Điều này tạo ra một cơ hội kinh doanh mới và giúp tăng
doanh số bán hàng Ngoài ra, ứng dụng web cũng cung cấp khả năng quản lý sản
phẩm và kho hàng hiệu quả, giúp chủ cửa hàng theo dõi số lượng hàng tồn kho, cậpnhật thông tin sản phẩm và đáp ứng nhanh chóng với nhu cầu của khách hàng
Trang 25Tóm lại, tạo ra một ứng dụng web bán hàng trực tuyến trong lĩnh vực bán quần
áo là cần thiết để tận dụng xu hướng mua sắm trực tuyến ngày càng tăng cao Ứngdụng web này không chỉ giúp đáp ứng nhu cầu mua sắm thuận tiện của khách hàng,
mở rộng thị trường và tăng doanh số bán hàng, mà còn cung cấp khả năng quản lýsản phẩm và kho hàng hiệu quả cho chủ cửa hàng
1.3 Mục tiêu đề tài
Chúng em thực hiện dé tài này với mục tiêu tao ra 1 ứng dung web giúp người
tiêu dùng và chủ shop dé dàng hơn trong việc mua bán sản phẩm quan áo, cụ thê là:
e_ Xây dựng một ứng dụng web thương mại điện tử chuyên về bán quan áo dé đáp
ứng nhu cầu mua sắm trực tuyến của người tiêu dùng Ứng dụng web của chúng
em sẽ cung cấp một giao diện thân thiện, dễ sử dụng và hấp dẫn, giúp người dùngtìm kiếm và mua các sản phâm quần áo một cách thuận tiện
e Chúng em muốn cải thiện trải nghiệm người dùng bằng cách đề xuất các sản pham
phù hợp với sở thích và nhu cầu của từng khách hàng Chúng em sẽ nghiên cứu
và áp dụng các phương pháp kỹ thuật phân rã ma trận (Matrix Factorization) đểđưa ra gợi ý sản phẩm cá nhân hóa, tạo ra trải nghiệm mua sắm tốt hon và tăng sự
tương tác giữa khách hàng và ứng dụng web của chúng em.
e Một mục tiêu quan trọng khác của chúng em là áp dung phân tích chuỗi thời gian
(Time Series Analysis) dé dự đoán doanh số bán hàng trong tương lai Chúng em
sẽ tìm kiếm và sử dung dit liệu bán hang dé xây dựng các mô hình dự đoán và đưa
ra các dự báo doanh thu Điều này giúp chúng em có cái nhìn rõ ràng về xu hướng
và biến động doanh số, từ đó đưa ra các chiến lược kinh doanh hiệu quả
e_ Cuối cùng, chúng em hướng đến việc quản lý sản phẩm và kho hang một cách
hiệu quả trên ứng dụng web của chúng em Ứng dụng web sẽ cung cấp giao diệnquản lý đơn giản cho quản trị viên, cho phép họ thêm, chỉnh sửa và xóa sản phẩm
Quản trị viên cũng có thé quan lý thông tin về tồn kho, nhập xuất và chuyên kho,giúp duy trì sự cân đối và tối ưu hóa quy trình quản lý hàng hóa trên ứng dụng
web của chúng em.
10
Trang 261.4 Đối tượng sử dụng
¢ - Những người có nhu cầu muốn mua các sản phâm quan áo từ chủ shop
¢ Chu shop muốn kinh doanh qua ứng dụng web thương mại điện tử
> Chọn mua sản phẩm và đưa vào giỏ hàng
> Đánh giá sản phẩm sau khi mua
> Thanh toán giỏ hàng
> Được đề xuất sản phâm dựa trên sự ưa thích của bản thân với các
khách hàng khác có sự ưa thích tương tự
> Đăng nhập, đăng ký
Đối với chủ shop:
> Thêm, xóa, sửa sản phẩm
> Xem doanh thu và được dự báo doanh thu
Trang 27Chương 2 CƠ SỞ LÝ THUYET
2.1 Tìm hiểu về Reactjs
Hình 2-1 Reactjs
2.1.1 Reactjs là gi
React.js là một thư viện JavaScript phát trién mạnh mẽ trong những năm gan
đây, đặc biệt trong lĩnh vực ứng dụng Single Page Application Trong khi các
framework khác tập trung vào việc xây dựng mô hình MVC hoàn chỉnh, React đặc
biệt nồi bật với tính đơn giản và khả năng tương tác mượt mà với các thư viện
JavaScript khác React là một thư viện cho phép nhúng mã HTML vào trong mã
JavaScript thông qua JSX, giúp dé dàng kết hợp các đoạn mã HTML vào trong JS
Việc tích hợp giữa JavaScript và HTML trong JSX cũng giúp làm cho các thành
phan trong React dé hiểu hơn và quản lý dé dang hơn Điều nay mang lại sự linh
hoạt và hiệu quả trong việc xây dựng giao diện người dùng đáp ứng và tương tác
một cách thuận tiện và mạnh mẽ.
2.1.2 Giới thiệu về JSX
JSX là một ngôn ngữ cho phép viết các phần tử HTML trong JavaScript
Nó có những đặc điểm nỗi bật sau:
° Tăng tốc độ: JSX thực hiện tối ưu hóa khi biên dịch sang JavaScript, giúp
thời gian thực thi nhanh hơn rất nhiều so với mã JavaScript tương đươngđược viết trực tiếp
12
Trang 28° Tăng tính an toàn: Khác với JavaScript, JSX là kiểu tĩnh (statically typed),
điều này đồng nghĩa rằng nó được kiểm tra lỗi trước khi chạy, tương tự
như Java hay C++ Điều này giúp phát hiện các lỗi ngay trong quá trìnhbiên dịch JSX cũng cung cấp tính năng gỡ lỗi hiệu quả trong quá trình biên
dịch.
° Dé sử dụng: JSX dựa trên JavaScript, giúp các lập trình viên JavaScript dé
dàng chuyền đổi và sử dụng
2.1.3 Giới thiệu về Components
React được xây dựng dựa trên các thành phần (component) thay vì sử dụng
template như các framework khác Trong React, chúng ta xây dựng ứng dụng web
bằng cách sử dụng các thành phần nhỏ Việc tái sử dụng các thành phần này ở nhiều
nơi khác nhau, với các trạng thái và thuộc tính khác nhau, cho phép chúng ta xây
dựng giao diện linh hoạt Mỗi thành phan trong React có một trang thái riêng, có thé
thay đôi, va React sẽ tự động cập nhật các thành phần dựa trên những thay đổi trong
trạng thái đó Trên thực tế, mọi thứ trong React đều được xem như là các thành
phan Việc sử dụng các thành phần giúp duy trì mã nguồn dé dang hơn khi làm việcvới các dự án lớn Một thành phần React đơn giản chỉ cần có một phương thức
render Tuy có nhiều phương thức khác nhau, nhưng phương thức render là phươngthức chính dé xây dựng thành phan
2.1.4 Giới thiệu về Props va State
Props trong React là cach dé truyén dữ liệu từ một component cha đến một
component con Props được coi là bất biến, có nghĩa là sau khi được truyền vào
component con, nó không thé thay đổi từ phía component con đó Props giúp cáccomponent tương tác với nhau bằng cách truyền dữ liệu từ component gốc xuống cáccomponent con Mỗi prop đại diện cho một thuộc tính cụ thể và mô tả những gìcomponent con sẽ hiển thị hoặc làm việc với dữ liệu đó
State trong React thé hiện trạng thái của một component và có thé thay đổitrong quá trình chạy Khi state thay đối, component sẽ tự động render lại dé cập nhật
13
Trang 29giao diện người dùng State thường được sử dụng dé lưu trữ các thông tin có thé thay
đôi, như trạng thai đăng nhập, giá tri của một 6 đầu vào, hoặc trạng thái hiển thị của
một phần tử Băng cách sử dụng state, ta có thể thay đổi và theo dõi trạng thái của
ứng dụng, và component sẽ tự động cập nhật đề phản ánh trạng thái mới đó
2.2 Tìm hiểu về ASP.NET CORE API
2.2.1 Giới thiệu
Sau khi ra mắt ASP.NET Core 1, Microsoft đã thay đổi triệt dé quan điểm về.NET, gây ấn tượng mạnh với những điểm sau:
e_ Mã nguồn mở: Microsoft đã quyết định mở mã nguồn của NET và đưa nó
lên GitHub đề thu hút sự quan tâm và đóng góp từ cộng đồng lập trình viên,
từ đó tận dụng sức mạnh của cộng đồng để phát triển ngôn ngữ và
framework nay.
e Đanèn tảng: NET không chi hướng đến Windows mà còn hỗ tro xây dựng
ứng dụng cho các hệ điều hành Mac và Linux, giúp tăng tính linh hoạt vàđáp ứng nhu cầu của đa nền tảng ngày càng phô biến
e Visual Studio Code: Microsoft không chỉ giới hạn ASP.NET Core với
Visual Studio truyền thống mà còn cho phép viết ứng dụng với ASP.NETCore bằng cách sử dụng Visual Studio Code - một phiên bản miễn phí và
đa nên tảng của Visual Studio, hỗ trợ trên cả Windows, Linux và Mac.
14
Trang 30Những thay đổi này đã làm thay đổi cách nhìn về NET và ASP.NET Core,
mở rộng phạm vi ứng dụng và thu hút sự quan tâm của nhiều lập trình viên trong
cộng dong
2.2.2, ASP.NET CORE là gì
ASP.NET Core là một framework mã nguồn mở và đa nền tảng, được sử
dụng dé xây dựng và kết nối các ứng dung web hiện đại, bao gồm các loại ứng dụng
web, Internet of Things (IoT) và Mobile Backend - Web API.
Với ASP.NET Core, người phát triển có thé tận dụng kiến trúc mạnh mẽ dé
xây dựng các ứng dụng dam mây trên Microsoft Azure hoặc các ứng dụng độc lập.
Đặc biệt, ASP.NET Core cho phép viết ứng dụng đa nền tảng, chạy trên các hệ điềuhành Window, Mac và Linux, và mã nguồn của nó được công khai trên Github, tạođiều kiện thuận lợi cho cộng đồng đóng góp và phát triển chung
Nhờ những tính năng và ưu điểm này, ASP.NET Core đã trở thành một công cụ hữuích cho việc xây dựng các ứng dụng web đa nền tang và hiện dai
2.2.3 ASP.NET CORE API
ASP.NET Web API là một framework do Microsoft cung cấp, giúp dé dang
xây dựng các dich vu API Web, tức là các dịch vụ dựa trên giao thức HTTP Đây là
một nền tảng lý tưởng để tạo các dịch vụ Restful Các dịch vụ API Web này có thể
được sử dụng bởi nhiều loại client khác nhau, bao gồm:
e Trình duyét.
e© Ung dung di động
©_ Ứng dụng máy tinh dé bàn
e Thiết bị Internet of Things (IoT) va nhiéu ứng dụng khác
ASP.NET Web API đã trở thành một công cụ hữu ích dé xay dung cac dich
vu API Web linh hoạt và dé dàng tích hợp với nhiều loại ứng dụng va thiết bị khác
nhau.
15
Trang 312.2.4 Các dịch vụ RESTful API
REST là một mẫu kiến trúc được giới thiệu vào năm 2000, sử dụng HTTPnhư phương thức giao tiếp, và được sử dụng dé tạo các Web API Mẫu kiến trúc
REST xác định một tập hợp các ràng buộc mà các hệ thống nên tuân thủ dé được
coi là một dịch vụ đầy đủ Dưới đây là các ràng buộc của REST:
e Rang buộc Máy khách - Máy chủ (Client-Server): Điều này xác định
rằng máy khách gửi yêu cầu đến máy chủ và máy chủ sẽ gửi phản hồi lạicho máy khách Việc tách biệt giữa máy khách và máy chủ hỗ trợ phát triển
độc lập của cả logic phía máy khách và logic phía máy chủ.
e Rang buộc không trạng thái (Stateless): Rang buộc này yêu cầu giao tiếp
giữa máy khách và máy chủ phải không trạng thái giữa các yêu cầu Mỗiyêu cầu đến từ máy khách phải chứa đủ thông tin cần thiết để máy chủ xử
lý yêu cầu mà không cần lưu trữ thông tin trạng thái của máy khách
e_ Rang buộc có thể lưu (Cacheable): Rang buộc này cho phép máy khách
lưu trữ dữ liệu từ máy chủ trong bộ nhớ tạm thời để giảm số lượng yêu cầu
gửi lại máy chủ Các dit liệu không thay đổi thường xuyên như danh sáchquốc gia hoặc danh sách thành phố có thê được lưu trữ trong bộ nhớ cache
của máy khách.
e_ Giao diện thống nhất (Uniform Interface): Rang buộc giao diện thống
nhất định nghĩa một giao diện giữa máy khách và máy chủ Mỗi tài nguyênđược xác định băng một URI duy nhất (Mã định danh tài nguyên đồngnhất) Động từ HTTP như GET, POST, PUT và DELETE được sử dụng đểxác định hành động mà máy khách muốn thực hiện trên tài nguyên
e HATEOAS (Hypermedia as the Engine of Application State):
HATEOAS đề cập đến việc trong mỗi yêu cầu, máy chủ cung cấp các siêuliên kết (hyperlinks) dé cho biết những hành động hoặc tùy chọn khác màmáy khách có thể thực hiện trên tài nguyên
16
Trang 32Những ràng buộc này giúp REST trở thành một kiến trúc mạnh mẽ và linh
hoạt dé tạo các Web API, cho phép các ứng dụng khác nhau có thé tương tác và sử
dụng các dịch vụ này một cách hiệu quả.
2.2.5 Tại sao phải sử dụng ASP.NET Web Api?
Ngày nay, một ứng dụng web không thê chỉ hướng tới một khách hàng cụthé, bởi vì mọi người sử dụng rất nhiều thiết bị khác nhau như điện thoại di động,
iPhone, máy tính bảng và nhiều thiết bị thông minh khác trong cuộc sông hàng
ngày Điều này khiến chúng ta đang tiến gần hon tới một thé giới ứng dụng đa nền
tảng.
Đề hiền thị dữ liệu doanh nghiệp một cách nhanh chóng, an toàn và đơn giảntrên tất cả các thiết bị và trình duyệt hiện đại, chúng ta cần có một API hỗ trợ tươngthích với các thiết bị và trình duyệt này ASP.NET Web API là một framework
tuyệt vời dé xây dựng các dịch vụ HTTP linh hoạt, có thé được sử dụng bởi nhiều
khách hàng khác nhau, bao gồm trình duyệt, điện thoại di động, iPhone và máy tính
bảng.
ASP.NET Web API cho phép chúng ta xây dựng các API dựa trên HTTP,
giúp tương tác với đa dạng khách hàng và thiết bị Điều này giúp cung cấp trải
nghiệm người dùng tốt hơn và thuận tiện hơn, đồng thời tối ưu hóa việc truyền
thông dữ liệu giữa ứng dụng web và các thiết bị thông minh hiện đại
17
Trang 332.3 Tìm hiểu về Sql Server
Microsoft®
SQL Server
Hinh 2-3 Sql Server
2.3.1 Giới thiệu về Sql Server
SQL Server là một hệ quan tri co sở dữ liệu quan hệ, được sử dung dé lưu trữ
và quản ly dit liệu trong hệ thống Nó sử dụng câu lệnh SQL để trao đổi dữ liệu giữa
máy chủ SQL Server và máy khách (client).
Một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) bao gồm các thành phần sau:
e Cơ sở dữ liệu (databases): Day là nơi lưu trữ các tap hop dữ liệu liên quan
được tô chức và quản lý theo cấu trúc quan hệ
e Bộ quản lý cơ sở dữ liệu (database engine): Chiu trách nhiệm quản lý và
xử lý các yêu cầu về dữ liệu từ các ứng dụng và máy khách
e Các chương trình ứng dụng: Được sử dụng dé quản lý và tương tác với cơ
sở đữ liệu và các thành phần khác trong hệ thống
SQL Server cung cấp một môi trường mạnh mẽ dé quan lý cơ sở dit liệuquan hệ, cho phép lưu trữ dữ liệu theo cấu trúc và thực hiện các thao tác truy van dữ
liệu dễ dàng.
2.3.2 Các thành phan cơ bản trong Sql Server
SQL Server là một giải pháp hoàn chỉnh gồm các thành phan cơ bản sau:
18
Trang 34e Database Engine: Day là một engine cho phép lưu trữ dữ liệu dưới dang
bảng và hỗ trợ quy mô dữ liệu khác nhau Nó có khả năng tự điều chỉnh và
quản lý tài nguyên của máy tính linh hoạt.
e Integration Services: Cung cấp tập hợp các đối tượng lập trình và công cụ
đồ hoa dé sao chép, di chuyên và chuyên đồi dit liệu giữa các hệ thống khác
nhau Điều này hỗ trợ di chuyền dữ liệu giữa các máy chủ và định dạng dữ
liệu trước khi lưu vào cơ sở đữ liệu.
e Analysis Services: Là dịch vụ phân tích dt liệu, cho phép phân tích dữ liệu
một cách hiệu quả bằng cách sử dụng kỹ thuật khai thác dữ liệu và khái
niệm hình khối nhiều chiều
e©_ Notification Services: Dịch vụ này cho phép phát triển và triển khai các
ứng dụng gửi thông báo cho người dùng Nó cũng hỗ trợ gửi thông báo
định thời đến hàng ngàn người dùng trên nhiều thiết bị khác nhau
e Reporting Services: Là công cụ tạo, quan lý và triển khai báo cáo, bao gồm
cả phan server và client Đây cũng là nền tang dé xây dựng các ứng dụng
báo cáo.
e Full Text Search Service: Là thành phan đặc biệt dé truy van và đánh chỉ
mục đữ liệu văn bản không cau trúc được lưu trữ trong cơ sở đữ liệu SQL
Server.
e Service Broker: Là môi trường lập trình cho việc tạo ra các ứng dụng nhảy
qua các Instance, giúp tối ưu hóa quá trình xử lý dữ liệu
2.3.3 Tại sao phải sử dung SQL Server?
SQL Server không phải là một hệ quản trị cơ sở đữ liệu độc lập mà nó chỉ là
một thành phần với vai trò ngôn ngữ là công cụ giao tiếp giữa hệ cơ sở dit liệu vàngười dùng Chính vì thế nó được sử dụng trong các dịch vụ thiết kế web đẹp với
chức năng giao tiêp với người dùng với các vai tro sau:
19
Trang 35e SQL là một ngôn ngữ đòi hỏi có tính tương tác cao: Người dùng có thé
dễ dàng trao đổi với các tiện ích thông qua các câu lệnh của SQL đến
cơ sở dt liệu và nhận kết quả từ cơ sở dữ liệu.
¢ SQL là một ngôn ngữ lập trình cơ sở dữ liệu: Các lập trình viên có thé
xây dựng các chương trình ứng dụng giao tiếp với cơ sở dit liệu bang
cách nhúng các câu lệnh SQL vào trong ngôn ngữ lập trình.
e SQL là một ngôn ngữ lập trình quản trị cơ sở dữ liệu: Người quan trị
cơ sở dữ liệu có thé quan lý, định nghĩa và điều khién truy cập cơ sở dữ
liệu thông qua SQL.
SQL là một ngôn ngữ lập trình cho các hệ thống chủ khách: SQL được sửdụng như là một công cụ giao tiếp với các trình ứng dụng trong hệ thống cơ sở dit
liệu khách chủ.
20
Trang 36Chương 3 MACHINE LEARNING: ML.NET
3.1 Khái niệm ML.Net
ML.NET là một thư viện máy học mã nguồn mở và đa nền tảng được pháttriển bởi Microsoft Nó cung cấp các công cụ và khung làm việc dé thực hiện các tác
vụ liên quan đến máy học trên các nền tảng Windows, Linux và macOS ML.NET có
khả năng thực hiện các tác vụ tương tự như các thư viện khác như scikit-learn trong
Python, và đồng thời cung cấp các tính năng đặc biệt mà các thư viện khác không có
ML.NET hỗ trợ một loạt các bài toán trong lĩnh vực máy học, bao gồm:
+ Phân loại (Classification): Đây là bài toán phân loại các điểm dữ liệu vào
các nhóm hoặc các lớp khác nhau Ví dụ, phân loại cảm xúc tích cực hoặc tiêu cực từ
các phản hồi của khách hàng
+ Gom cụm (Clustering): Bài toán gom cụm nhăm phân chia dữ liệu thành
các nhóm dựa trên các đặc trưng tương tự Ví dụ, gom cụm khách hàng vào các nhóm
dựa trên hành vi mua hàng của họ.
+ Hồi quy (Regression)/Dự đoán giá trị liên tục (Predict continuousvalues): Bài toán hồi quy tập trung vào việc dự đoán giá tri liên tục dựa trên dữ liệu
có sẵn Ví dụ, dự đoán giá nhà hoặc giá taxi dựa trên lịch sử giao dịch.
+ Phát hiện bat thường (Anomaly Detection): Bài toán phát hiện các điểm
dữ liệu bất thường hoặc không tuân theo các quy tắc thông thường Ví dụ, phát hiện
giao dịch gian lận trong ngành ngân hàng.
21
Trang 37+ Khuyến nghị (Recommendations): Bài toán tạo ra các gợi ý sản phâm hoặc
nội dung phù hợp cho người dùng dựa trên các thông tin sẵn có Ví dụ, gợi ý sản
phẩm phù hợp với sở thích của khách hàng khi truy cập vào một trang mua sắm trựctuyến
+ Dữ liệu chuỗi thời gian (Time series/sequential data): Bài toán dự báo và
phân tích dit liệu theo chuỗi thời gian, ví dụ như dự báo thời tiết hoặc dự báo doanh
số bán sản phẩm theo thời gian
+ Phân loại hình ảnh (Image classification): Bài toán phân loại các hình ảnh
vào các lớp khác nhau dựa trên nội dung của chúng.
+ Phát hiện đối tượng (Object detection): Bài toán nhằm phát hiện và xác
định vị trí của các đối tượng trong hình ảnh
22
Trang 38Tran Duy Thanh
USE MODEL Load model
(6) Load()
ITransformer
Bước 1: ML.NET sẽ cung cấp các thư viện phù hợp dé chúng ta có thé nạp dữ
liệu và tự động mô hình hóa dit liệu này thành mô hình hướng đối tượng Ở bước 1,
thông thường chúng ta sẽ thực hiện việc load dữ liệu, sau đó chúng ta cũng thực hiện
việc chia dữ liệu ban đầu thành 2 phần: Tập huấn luyện dé huấn luyện mô hình (dùng
cho bước 3), Tập kiểm tra dé đánh giá mô hình (cho bước 4) Dữ liệu được lưu vào
IDataView.
Bước 2: Bước này dai khái là chi định một quy trình hoạt động dé trích xuất
các đặc trưng và áp dụng thuật toán học máy cho phù hợp Tùy vào mục đích bải toán
23
Trang 39máy hoc mà ta dùng các giải thuật khác nhau, có thé dùng Binary classification,
Multiclass classification, Regression Đối tượng tạo ra ở bước này là IEstimator
Bước 3: Tiến hành train mô hình bằng cách gọi phương thức FitQ củaIEstimator kết quả của phương thức Fit() sẽ trả về một mô hình có kiểu ITransformer
Dữ liệu train là lay Tập huấn luyện ở bước 1
Bước 4: Sau khi training model chưa có sử dụng ngay (thông thường), vì
thường machine learning gặp van đề nó sẽ có kết quả dự đoán khác với thực tế Van
đề là sự chênh lệch này có chấp nhận được hay không, có tiếp tục sử dụng và tiếp tục
cải tiến mẫu mã hay không Khi mô hình huấn luyện xong, chúng ta cần đánh giá chất
lượng của mô hình này.
Bước 5: Sau khi đã đánh giá mô hình chất lượng ở bước 4 rồi thì lưu lại dé lầnsau không phải chuẩn bị lại đữ liệu và train lại File mô hình được lưu mặc định có
đuôi zip.
Bước 6: Load mô hình đã được lưu ở bước 5 Sau khi tải nó sẽ mô hình hóa
ngược lại đối tượng Itransformer Ta gọi hàm Load() dé tải mô hình
Bước 7: Gọi hàm CreatePredictionEngine().Predict() dé sử dụng mô hình
nhằm tìm ra kết quả dự báo của chương trình
3.3 Gợi ý sản phẩm
3.3.1 Bộ dữ liệu
Nhóm scrape dit liệu comments từ shop uniqlo bao gồm:
14048 comments với 8759 users cho từng sản phâm khác nhau
24
Trang 40Id UserName Userld ProductVari ProductTitle ProductSize ProductCol Productid Orderld CommentD Content Rating CreatedDate UpdatedD
1 Nguyễn Duy 1 80 Áo Thun Cổ XL Navy 1 1 2023-07-03 Chất lượng 5 2023-07-03 NULL
2 Huynh Than 353 41 Áo Thun Cổ S Nâu-35 1 2 2023-07-01 Áosiêuđẹp 5 2023-07-01 NULL
Hồng Việt 438 78 Áo Thun Cổ M Navy 1 3 2023-07-01 vừa dep 5 2023-07-01 NULL
4 Võ Văn Mỹ 653 33 Áo Thun C6 S Tự nhiên 1 4 2023-06-30 Phù hợp tuy 5 2023-06-30 NULL
5 Trần HuyH 851 49 Áo Thun Cổ S Nâutối-39 1 5 2023-06-30 Kíchthước 5 2023-06-30 NULL
» 6 Nguyễn Đứ 1170 50 Áo Thun Cổ M Nâutối-39 1 6 2023-06-30 Chất lượng 2023-06-30 NULL
Trần Minh 1344 78 Áo Thun Cổ M Navy 1 7 2023-06-30 Chiếc áo ph 5 2023-06-30 NULL
8 Phan Thanh 1435 75 Áo Thun Cổ L Xanh da trời 1 8 2023-06-30 Nó thúc day 5 2023-06-30 NULL
9 Mai Văn Löa 1663 38 Áo Thun Cổ M Be-31 1 9 2023-06-29 Chất lượng 5 2023-06-29 NULL
10 Hoàng Mạn 1985 4 Áo Thun Cổ L Nâu-35 1 10 2023-06-29 Chất lượng 4 2023-06-29 NULL
1 Võ Văn Kết — 2193 83 Áo Thun C6 L Tim-73 1 11 2023-06-29 Áo thun na 5 2023-06-29 NULL
12 Nguyễn Tru 2327 2 Áo Thun Cổ M Trắng 1 12 2023-06-29 cổ điển vượ 5 2023-06-29 NULL
13 Pham Hoàn 2442 31 Áo Thun Cổ L Cam-22 1 13 2023-06-29 Nói chung 4 2023-06-29 NULL
14 Đoàn Văn T 2630 7 Áo Thun Cổ L Xám nhạt 1 14 2023-06-29 Chất lượng 5 2023-06-29 NULL
15 Lê Văn Mến _ 2957 1 Áo Thun Cổ S Trắng 1 15 2023-06-29 Chất lượng 5 2023-06-29 NULL
16 Đỗ Minh Đức 3018 79 Áo Thun Cổ L Navy 1 16 2023-06-29 Chất lượng 5 2023-06-29 NULL
17 Văn Thị Tính 3308 72 Áo Thun Cổ XL Xanh lá cây 1 17 2023-06-28 chất liệu dà 5 2023-06-28 NULL
18 Cao Văn Son 3440 8 Áo Thun C6 XL Xám nhạt 1 18 2023-06-27 Đa năng và 5 2023-06-27 NULL
19 Tạ Thị Thu 3692 26 Áo Thun Cổ M Rượu-19 1 19 2023-06-27 Áo dễ tạo ki 5 2023-06-27 NULL
20 Võ Văn Tâm 3954 4 Áo Thun Cổ XL Trắng 1 20 2023-06-27 Áo sơ mi tố 5 2023-06-27 NULL
21 Trần Nhữ Ph 4094 12 Áo Thun Cổ XL Xám-7 1 21 2023-06-27 áo phông p 4 2023-06-27 NULL
22 Hoàng Đức 4349 84 Áo Thun Cổ XL Tím-73 1 22 2023-06-27 Áo tài xế hà 5 2023-06-27 NULL
Hình 3-3 Bộ dữ liệu comments
Các trường trong bộ dữ liệu bao gồm:
e Id: Dinh danh độc lập của comment
e UserName: Tên của người dùng comment sản pham
e Userld: Id của người dùng mua sản phẩm
e ProductVariantld: Id loại sản pham mà người dùng mua
e ProductTitle: Tên sản phẩm
e ProductSize: Kích thước sản phẩm.
e_ ProductColor: Màu của sản phẩm
e Productld: Id của sản phẩm
e_ Orderld: Id đơn hàng của sản phẩm
e_ CommentDate: Thời gian comment sản phẩm
e Content: Nội dung bình luận.
e_ Rating: Thông số đánh giá của người dùng đối với sản phẩm
3.3.2 Chuyén đối dữ liệu
- Trong bộ dữ liệu comments này có 1 van dé là các người dùng có thé comment cho
1 sản phẩm nhiều lần với các trường variant, size khác nhau và hiện tại ML.Net không
hỗ trợ thuật toán đề xuất cho trường hợp này Vì thé chúng ta cần phải chuyền đổi lại
25