1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng hệ thống khuyến nghị sản phẩm sử dụng máy học

83 2 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 83
Dung lượng 1,94 MB

Nội dung

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

NGUYỄN TẤN LỘC

XÂY DỰNG HỆ THỐNG KHUYẾN NGHỊ SẢN PHẨM SỬ DỤNG MÁY HỌC

BUILDING A PRODUCT RECOMMENDATION SYSTEM USING MACHINE LEARNING

Chuyên ngành: KỸ THUẬT VIỄN THÔNG Mã số: 8520208

LUẬN VĂN THẠC SĨ

Trang 2

Cơng trình được hồn thành tại: Trường Đại học Bách Khoa – ĐHQG-HCM

Cán bộ hướng dẫn khoa học: PGS.TS Hồ Văn Khương ……….……………… Cán bộ chấm nhận xét 1: PGS.TS Hoàng Hà Kha ……….……………………

Cán bộ chấm nhận xét 2: TS Huỳnh Thế Thiện ………….……………………

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 06 tháng 07 năm 2023

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

1 GS.TS Lê Tiến Thường (Chủ tịch hội đồng) 2 TS Huỳnh Phú Minh Cường (Thư Ký)

3 PGS.TS Hoàng Hà Kha (Phản biện 1) 4 TS Huỳnh Thế Thiện (Phản biện 2) 5 TS Nguyễn Đình Long (Ủy viên)

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)

Trang 3

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: NGUYỄN TẤN LỘC MSHV: 1970279 Ngày, tháng, năm sinh: 16/08/1992 Nơi sinh: Vĩnh Long Chuyên ngành: Kỹ thuật Viễn thông Mã số : 8520208

I TÊN ĐỀ TÀI (Tiếng Việt và Tiếng Anh):

Tên Tiếng Việt: Xây dựng hệ thống khuyến nghị sản phẩm sử dụng máy học

Tên Tiếng Anh: Building a product recommendation system using Machine Learning

II NHIỆM VỤ VÀ NỘI DUNG:

- Tìm hiểu máy học, cơ sở dữ liệu sản phẩm, phân khúc khách hàng, phản hồi của người tiêu dùng

- Thực hiện công tác thu thập, xử lý, khai phá và mơ hình hóa dữ liệu

- Xây dựng hệ thống khuyến nghị sản phẩm dự trên thông tin sản phẩm, phân khúc khách hàng và phản hồi của người tiêu dùng

- Xây dựng web app sử dụng Streamlit và báo cáo kết quả

III NGÀY GIAO NHIỆM VỤ : 06/02/2023

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 11/06/2023

V CÁN BỘ HƯỚNG DẪN : PGS TS HỒ VĂN KHƯƠNG

Tp HCM, ngày 22 tháng 06 năm 2022

CÁN BỘ HƯỚNG DẪN

(Họ tên và chữ ký)

CHỦ NHIỆM BỘ MÔN ĐÀO TẠO

(Họ tên và chữ ký)

PGS.TS Hồ Văn Khương PGS.TS Hà Hoàng Kha

TRƯỞNG KHOA ĐIỆN – ĐIỆN TỬ

Trang 4

Học tập, tiếp thu kiến thức tại Trường Đại học Bách Khoa là một trong những điều tuyệt với nhất với tôi trong cuộc đời này Thạc sĩ là ước mơ mà khi còn thơ bé tôi đã luôn nghĩ về và mong muốn điều đó trở thành hiện thực Khoảng thời gian học tập và nghiên cứu tại trường sẽ luôn mãi là kỷ niệm đẹp, niềm hạnh phúc và kiến thức có được khi học tập tại nơi đây sẽ luôn là nền tảng vững chắc để tơi có thể bước tiếp trên con đường tương lai phía trước

Tơi xin phép gửi lời cảm ơn chân thành và sâu sắc nhất đến các thầy trong Bộ Môn Viễn Thông, Thầy PGS.TS Hồ Văn Khương, Thầy TS Võ Tuấn Kiệt đã chỉ bảo tận tâm và hướng dẫn tơi trong suốt q trình thực hiện luận văn thạc sĩ này, cũng như trong q trình học tập bơ mơn Máy học tại trường Đại học Bách Khoa TP.HCM Các thầy đã giúp đỡ, dạy bảo khơng chỉ về mặt kiến thức, mà cịn là những kỹ năng để học tập, làm việc và nghiên cứu Đó là những bài học kinh nghiệm quý báu sẽ đồng hành cùng tôi trên suốt chặng đường học tập, nghiên cứu và làm việc sau này Con cũng xin cảm ơn Ba – người đã luôn bên cạnh con trong mọi hoàn cảnh, tạo cho con những điều kiện tốt nhất để con có thể phát huy, tìm hiểu những đam mê, sở thích của mình Và cuối cùng, tôi cũng xin cảm ơn nhưng người bạn đã đồng hành cùng tôi trong suốt thời gian thạc sĩ này đã cùng nhau chia sẻ những khó khăn trong quá trình thực hiện luận văn

Trang 5

TÓM TẮT LUẬN VĂN THẠC SĨ

Hệ thống khuyến nghị sản phẩm rất tiện ích, khơng thể thiếu đối với các trang thương mại điện tử hiện nay Gợi ý sản phẩm giúp tìm ra những sản phẩm phù hợp cho khách hàng, cũng như đem lại những trải nghiệm tốt nhất cho khách hàng, qua đó đáp ứng nhu cầu mua sắm So với quảng cáo truyền thống phải chi trả những chi phí rất cao thì hệ thống gợi ý sản phẩm sẽ tiết kiệm chi phí hơn, được cá nhân hóa nhiều hơn nên khách hàng sẽ dễ dàng tìm được sản phẩm khác nhau phù hợp với nhu cầu và sở thích, qua đó tạo ra được khoản thu nhập khổng lồ và cũng là cách nổi bật đáng kể với các đối thủ cạnh tranh Từ những nhu cầu thực tiễn như vậy, đề tài này đề xuất phương pháp xây dựng một hệ thống khuyến nghị sản phẩm sử dụng máy học dựa trên hai nhóm thuật tốn là Hệ thống dựa trên nội dung (content-based systems) và Lọc cộng tác (collaborative filtering), trong đó các thuật tốn được sử dụng là Consine, Gensim và ALS (Alternating Least Square) để huấn luyện mô hình, các thơng số số như Mức độ tương đồng (Similarity) và Căn bậc hai của trung bình bình phương sai số (RMSE) được xem xét để đánh giá mô hình, cũng như triển khai sản phẩm ứng dụng

ABSTRACT

Trang 6

LỜI CAM ĐOAN CỦA TÁC GIẢ LUẬN VĂN

Tôi xin cam đoan đề tài: “Xây dựng hệ thống khuyến nghị sản phẩm sử dụng máy học” là một cơng trình nghiên cứu và xây dựng độc lập dưới sự hướng dẫn của giáo viên hướng dẫn: PGS - TS Hồ Văn Khương Ngồi ra khơng có bất cứ sự sao chép của người khác Đề tài, nội dung báo cáo này là sản phẩm mà tơi đã nỗ lực nghiên cứu trong q trình nghiên cứu và học tập tại Trường Đại Học Bách Khoa TP.HCM Dữ liệu thương mại điện tử thu thập được chỉ phục vụ vào mục đích học tập và tốt nghiệp, khơng có mục đích riêng hay kinh doanh cá nhân với bất kỳ hình thức nào Các số liệu được sử dụng, kết quả được trình bày trong báo cáo là hồn tồn khách quan, trung thực và tơi xin chịu hoàn toàn trách nhiệm, kỷ luật của bộ mơn và nhà trường nếu như có vấn đề xảy ra

Học viên/ tác giả

Trang 7

MỤC LỤC

LỜI CẢM ƠN ii

TÓM TẮT LUẬN VĂN THẠC SĨ iii

ABSTRACT iii

LỜI CAM ĐOAN CỦA TÁC GIẢ LUẬN VĂN iv

MỤC LỤC vDANH SÁCH HÌNH VẼ viiiDANH SÁCH BẢNG xDANH MỤC CÁC TỪ VIẾT TẮT xiCHƯƠNG 1: MỞ ĐẦU 1 1 Lý do chọn đề tài 1 2 Mục đích nghiên cứu 2

3 Đối tượng và phạm vi nghiên cứu 2

4 Phương pháp nghiên cứu 3

5 Ý nghĩa khoa học và thực tiễn 3

5.1 Ý nghĩa khoa học 3

5.2 Ý nghĩa thực tiễn 4

CHƯƠNG 2: TỔNG QUAN 5

1 Cơ sở lý thuyết 5

1.1 Giới thiệu về ngôn ngữ python 5

1.2 Khái niệm về dữ liệu 5

1.3 Khái niệm và quy trình thực hiện khoa học dữ liệu 5

1.4 Các tiêu chí đánh giá mơ hình thuật toán 6

1.5 Các thuật toán áp dụng để xây dựng mơ hình 8

2 Tình trạng nghiên cứu 8

2.1 Nhìn chung 8

2.2 Business Understanding – Xác định vấn đề kinh doanh 8

Trang 8

2.6 Modeling, Algorithms – Thuật tốn và mơ hình hố 20

2.7 Data product - Sản phẩm dữ liệu 21

2.8 Communication – Giao tiếp với môi trường 21

CHƯƠNG 3: NỘI DUNG THỰC HIỆN 22

1 Công cụ thu thập tập dữ liệu 22

1.1 Selenium 22

1.2 BeautifulSoup 23

1.3 Trích xuất dữ liệu từ Web Api 23

2 Tìm hiểu, phân tích và xử lý dữ liệu 24

2.1 Đọc và tìm hiểu dữ liệu 24

2.2 Phân tích, xử lý dữ liệu trùng, dữ liệu thiếu, dữ liệu ngoại lai 25

2.3 Xử lý dữ liệu văn bản ngơn ngữ tự nhiên tiếng việt 27

2.4 Mã hóa tách từ 27

2.5 TF-IDF 27

3 Phương pháp tiếp cận 28

3.1 Hệ thống dựa trên nội dung (content-based systems) 28

3.2 Lọc cộng tác (collaborative filtering): 32

3.3 Mơ hình máy học sử dụng trong luận văn 37

4 Trực quan hóa dữ liệu 38

5 Thực hiện mơ hình hóa, thơng số của mơ hình và nhận xét 41

5.1 Gensim 41

5.2 Cosine 42

5.3 ALS 43

5.4 SVD 49

5.5 SVD với thư viện Surprise 50

6 Thực hiện xây dựng GUI - web ứng dụng 52

6.1 Streamlit 52

6.2 Triển khai ứng dụng Streamlit 53

Trang 10

DANH SÁCH HÌNH VẼ

Hình 1.1: Các nhóm thuật tốn thực hiện khuyến nghị sản phẩm 4

Hình 2.1: Các bước thực hiện một dự án khoa học dữ liệu 6

Hình 2.2: Quy trình thu thập dữ liệu web (Web Scraping) 10

Hình 2.3: Khám phá – làm sạch dữ liệu 12

Hình 2.4: Kiểu dữ dữ liệu của các biến 13

Hình 2.5: Biểu đồ phân tán cho thấy mối quan hệ giữa hai biến 15

Hình 3.1: Tổng quan về bộ dữ liệu content-base 24

Hình 3.2: Biểu đồ thể hiện sự tương quan giữa các thuộc tính 25

Hình 3.3: Tổng quan về bộ dữ liệu user-base 25

Hình 3.4: Phân tích dữ liệu trùng, dữ liệu thiếu 26

Hình 3.5: Sơ đồ bài tốn Content-based system 28

Hình 3.6: Norn 2 của vector trong không gian 2 chiều và 3 chiều 29

Hình 3.7: Tích vơ hướng của 2 vector 29

Hình 3.8: Góc hợp biểu diễn sự tương đồng của 2 vector 30

Hình 3.9: Hàm của thuật tốn Gensim 31

Hình 3.10: Sơ đồ bài tốn Content-based system 33

Hình 3.11: Ví dụ về sơ đồ dự đốn theo phương thức user-user 34

Hình 3.12: Phân rã ma trận theo ALS 36

Hình 3.13: Phân rã ma trận theo SVD 36

Hình 3.14: Ví dụ về rating cịn thiếu khi tối ưu hàm mất mát 37

Hình 3.15: Trực quan với biểu đồ Hisplot 38

Hình 3.16: Trực quan với biểu đồ Barplot 39

Hình 3.17: Biểu đó Boxplot sự phân bố về giá cả 40

Hình 3.18: Biểu đó Boxplot sự phân bố về giá cả theo hãng 40

Hình 3.19: Biểu đó Boxplot sự phân bố về giá cả theo danh mục sản phẩm 41

Hình 3.20: Word Cloud tần suất của các từ có ý nghĩa 41

Hình 3.21: Chỉ số tương đồng với khuyến nghị Gensim 42

Hình 3.22: Chỉ số tương đồng với khuyến nghị Cosine 43

Hình 3.23: Mơ hình ALS ví dụ 1 44

Hình 3.24: RMSE mơ hình ALS ví dụ 1 44

Hình 3.25: MAE mơ hình ALS ví dụ 1 45

Hình 3.26: Mơ hình ALS ví dụ 2 45

Hình 3.27: RMSE mơ hình ALS ví dụ 2 46

Hình 3.28: MAE mơ hình ALS ví dụ 2 46

Hình 3.29: Mơ hình ALS ví dụ 3 47

Hình 3.30: RMSE mơ hình ALS ví dụ 3 47

Hình 3.31: MAE mơ hình ALS ví dụ 3 47

Hình 3.32: Khuyến nghị 5 sản phẩm có điểm cao nhất theo ALS 48

Hình 3.33: Khuyến nghị 5 khách hàng cụ thể theo ALS 49

Trang 11

Hình 3.36: Khuyến nghị theo SVD cho một sản phẩm 50

Hình 3.37: Thuật tốn SVD với thư viện Surprise 51

Hình 3.38: MAE, RMSE của SVD với thư viện Surprise 51

Hình 3.39: Khuyến nghị theo SVD với thư viện Surprise 52

Hình 3.40: Giao diện web app với thuật tốn Gensim 54

Hình 3.41: Sản phẩm được chọn ví dụ 1 55

Hình 3.42: Các sản phẩm được đề xuất theo ví dụ 1 55

Hình 3.43: Giao diện web app với thuật tốn Cosine 56

Hình 3.44: Sản phẩm được chọn ví dụ 2 57

Hình 3.45: Các sản phẩm được đề xuất theo ví dụ 2 57

Hình 3.46: Giao diện web app với thuật tốn ALS 58

Hình 3.47: Các sản phẩm đề xuất cho khách hàng theo thuật tốn ALS 59

Hình 3.48: So sánh các chỉ số tương đồng của Gensim và Cosine 60

Hình 1: Thực hiện Tokenization (tách từ) 66

Hình 2: Label token’s value (đánh nhãn từ) 66

Hình 3: Thực hiện Tokenization với Gensim 67

Hình 4: Vector hóa TF-IDF với thư viện Gensim 67

Hình 5: Xét chỉ số tương đồng với khuyến nghị Gensim 68

Hình 6: Vector hóa TF-IDF với thư viện sklearn cho Cosine 68

Hình 7: Chỉ số tương đồng với khuyến nghị Cosine 69

Trang 12

Bảng 2.1: Các phương pháp trực quan số liệu thống kê 14

Bảng 3.1: Các bước thực hiện đánh trọng số cho từ trong văn bản 32

Bảng 3.2: So sánh RMSE và MAE của 2 thuật toán ALS và SVD – Surprise 60

Trang 13

Ký hiệu Tiếng Anh Ý nghĩa Tiếng việt

ALS Alternating Least Squares Bình phương nhỏ nhất luân phiên MAE Mean Absolute Error Trung bình của sai số tuyệt đối RMSE Root Mean Square Error Căn bậc hai của sai số bình phương

SVD Singular Value Decomposition Phân tích trị riêng

SEO Search Engine Optimization Tối ưu hóa cơng cụ tìm kiếm

KPIs Key Performance Indicators Chỉ số đo lường hiệu quả công việc NLP Natural Language Processing Xử lý ngôn ngữ tự nhiên

ANOVA Analysis of Variance Phân tích phương sai

HTML Hypertext Markup Language Ngôn ngữ đánh dấu siêu văn bản XML Extensible Markup Language Ngôn ngữ đánh dấu mở rộng UTF-8 8-bit Unicode Transformation

Format

Định dạng chuyển đổi Unicode 8-bit

TF-IDF Term Frequency – Inverse Document Frequency

Tần suất xuất hiện - Nghịch đảo tần suất văn bản

KNN K-Nearest Neighbors K lân cận gần nhất ML Machine Learning Máy học

Dot Product Scalar Product Tích vô hướng

Trang 14

CHƯƠNG 1: MỞ ĐẦU

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

Hiện nay, hầu hết các doanh nghiệp đều có dữ liệu và có nhu cầu phân tích để tìm ra lợi thế cạnh tranh trong kỷ nguyên số hóa Nhận thấy những lợi thế khổng lồ từ việc sử dụng phân tích dữ liệu, nhiều doanh nghiệp trong nước đã bắt đầu ứng dụng dữ liệu lớn vào phục vụ hoạt động sản xuất kinh doanh Việc phân tích dữ liệu giúp cho doanh nghiệp tăng doanh thu nhờ tăng sản lượng và loại hình dịch vụ cung cấp, cắt giảm chi phí vận hành [1]

Một khi các doanh nghiệp đã làm chủ được dữ liệu thì họ sẽ có cơ hội thành công lớn, tạo ra vị thế cạnh tranh cao nhờ hưởng lợi từ việc quản lý, phân tích dữ liệu một cách chính xác hơn, hữu ích hơn với chi phí thấp hơn [2]

Chính vì thế, trên bước đường làm chủ và phát huy mạnh mẽ giá trị của hệ thống dữ liệu, không thể thiếu lĩnh vực Thương mại điện tử và đây cũng là cơ hội và thách thức đối với lĩnh vực này Theo Cục Thương Mai Điện Tử và Kinh tế số, năm 2020, tốc độ tăng trưởng của thương mại điện tử (TMĐT) đạt mức 18% và quy mô đạt 11,8 tỷ USD và là nước duy nhất ở Đơng Nam Á có tăng trưởng TMĐT 2 con số bất chấp dịch bệnh Covid-19 Báo cáo Kinh tế số Đông Nam Á 2020 của Google, Temasek và Bain & Company cho thấy thị trường TMĐT Việt Nam đứng thứ 3 Đông Nam Á năm 2020, với quy mô 7 tỷ USD, xếp sau Indonesia (32 tỷ USD) và Thái Lan (9 tỷ USD) Với tốc độ phát triển mạnh mẽ của TMĐT Việt Nam như hiện nay và trong thời gian tới, nhu cầu về nhân lực đang trở nên vơ cùng cấp bách Chính vì thế, các doanh nghiệp thương mại điện tử đang kì vọng sẽ có nhiều nguồn nhân lực được đào tạo bài bản, chính quy những kiến thức căn bản về Công nghệ thông tin và truyền thông để đáp ứng được các xu hướng phát triển [3]

Trang 15

mại điện tử Việt Nam - chia sẻ tại sự kiện: “Với sự bùng nổ trong những năm gần đây, thương mại điện tử đang là hình thức kinh doanh tiềm năng được nhiều doanh nghiệp, nhà bán lẻ hướng tới Dịch COVID-19 khiến mọi người phải hạn chế đi lại, nhiều khu vực bị phong tỏa trong thời gian dài lại là cơ hội để thương mại điện tử phát triển mạnh mẽ, khi người dân ở trong nhà chỉ cần cầm chiếc smartphone lên là đã có thể mua sắm, đi chợ” Vì vậy, Hiệp hội Thương mại điện tử Việt Nam mong muốn trong những năm tới sẽ có càng nhiều các dự án ứng dụng để phát triển được những mơ hình sáng tạo đưa Trí tuệ nhân tạo, máy học vào xử lý dữ liệu thương mại điện tử, không chỉ thành công tại Việt Nam mà cịn có thể cạnh tranh với các đối thủ trong khu vực [4] Qua sự kiện này càng cho thấy tầm quan trọng của việc ứng dụng máy học vào phân tích và xử lý dữ liệu, xây dựng hệ thống khuyến nghị sản phẩm trong lĩnh vực thương mại điện tử Đây cũng là lý do tôi chọn đề tài này

2 Mục đích nghiên cứu

Mục đích của đề tài là thực hiện Xây dựng hệ thống khuyến nghị sản phẩm sử dụng máy học Thương mại điện tử, thuộc quản lý bởi Công ty TNHH Tiki Cụ thể là xây dựng hệ thống gợi ý sản phẩm cho khách hàng Hệ thống hoàn thiện gồm thu thập, phân tích và xử lý dữ liệu, phân tích và xử lý ngôn ngữ tự nhiên, thực hiện trực quan, xây dựng mơ hình, đưa ra kết luận và xây dựng trang web ứng dụng

3 Đối tượng và phạm vi nghiên cứu

Đối tượng nghiên cứu của luận văn thạc sĩ là những dữ liệu về sản phẩm và những dữ liệu đánh giá, bình luận của khách hàng về những sản phẩm mà khách hàng đã trải nghệm sau khi mua sản phẩm tại mục Thiết bị số - Phụ kiện số của trang thương mại điện tử Tiki.vn

Trang 16

4 Phương pháp nghiên cứu

Phương pháp nghiên cứu của đề tài là dựa vào các cơ sở lý thuyết, toán học, các thuật tốn, sau đó, dùng ngơn ngữ python và Jupyter Notebook (ứng dụng web cho phép người dùng viết code và các phần tử văn bản đa dạng thức) để thu thập, xử lý dữ liệu, xây dựng và ứng dụng mơ hình, xét đến thơng số Mức độ tương đồng (Similarity) và Căn bậc hai của trung bình bình phương sai số (RMSE) để nhận xét đánh giá, sử dụng Streamlit, Github, Streamlit.io và Render để xây dựng website ứng dụng Các bước nghiên cứu sau sẽ lần lượt được thực hiện:

✓ Tìm hiểu cơ sở lý thuyết

✓ Tìm hiểu các phương pháp thu thập, phân tích và xử lý dữ liệu ✓ Tìm hiểu các thuật tốn, phương pháp mơ hình hố

✓ Tìm hiểu các tiêu chí để so sánh các thuật toán sau khi xây dựng mơ hình ✓ Tìm hiểu phương pháp so sánh, đánh giá các phương pháp lựa chọn thuật

toán dựa trên các tiêu chí đã chọn, thực hiện đề xuất

✓ Thực hiện trực quan hóa dữ liệu, xây dựng website ứng dụng và báo cáo

5 Ý nghĩa khoa học và thực tiễn

5.1 Ý nghĩa khoa học

Việc xây dựng hệ thống khuyến nghị sản phẩm được bắt đầu bằng việc nghiên cứu và áp dụng công nghệ lõi bên trong, gồm các quy trình thực hiện trong việc thu thập, tìm hiểu, phân tích và xử lý bộ dữ liệu Luận văn lần này đề xuất 2 nhóm thuật tốn để khuyến nghị sản phẩm là Hệ thống dựa trên nội dung (content-based systems) và Lọc cộng tác (collaborative filtering)

Hệ thống dựa trên nội dung (content-based systems) tập trung vào thuộc tính của các sản phẩm và cung cấp cho khách hàng dựa trên sự tương tự của chúng Phương pháp được đánh giá dựa trên mức độ tương đồng giữa các sản phẩm (Similarity_level)

Trang 17

Hình 1.1: Các nhóm thuật tốn thực hiện khuyến nghị sản phẩm

5.2 Ý nghĩa thực tiễn

Kết quả nghiên cứu cung cấp các phương pháp xây dựng hế thống khuyến nghị sản phẩm thương mại điện tử, giúp tiết kiện chi phí hơn so với các phương pháp quảng cáo truyền thống, nâng cao doanh thu và tạo vị thế cạnh tranh với các đối thủ trong lĩnh vực thương mại điện tử

Trang 18

CHƯƠNG 2: TỔNG QUAN

1 Cơ sở lý thuyết

1.1 Giới thiệu về ngôn ngữ python

Ngôn ngữ python là gì?

Python [5] là một loại ngơn ngữ lập trình bậc cao Chúng được sử dụng cho các mục đích lập trình đa năng được ra mắt lần đầu vào năm 1991 Sở hữu ưu điểm mạnh là dễ học, dễ đọc và dễ nhớ, Python có cấu trúc rõ ràng, sáng sủa và rất phù hợp với những ai bắt đầu học lập trình và được nhiều lập trình viên ưa chuộng Khơng những thế, với cấu trúc của Python, loại ngơn ngữ lập trình này được ứng dụng trong rất nhiều lĩnh vực, trong đó là máy học và lĩnh vực Khoa học dữ liệu Dưới đây là một vài lợi ích của Python đối với khoa học dữ liệu [6]:

• Python là một ngơn ngữ lập trình mã nguồn mở, hồn tồn miễn phí và có đủ các tính chất tương tự như những ngơn ngữ lập trình khác

• Python có khoảng 72,000 thư viện hỗ trợ cho việc tính tốn và ứng dụng máy học

• Python cho phép thực hiện phân tích dữ liệu, thao tác dữ liệu, và ảo hóa dữ liệu

1.2 Khái niệm về dữ liệu

Dữ liệu [7] là cách nói khác của thông tin, là tập hợp các dữ kiện, ví dụ như ngơn ngữ, hình ảnh, với mục đích đo lường, quan sát hoặc mô tả về sự việc, sự vật Cùng với sự phát triển ngày càng nhanh của công nghệ thông minh như hiện nay, dữ liệu ngày càng nhiều và được đưa vào cũng với các trang thương mại điện tử để phục vụ việc sản xuất kinh doanh Hầu như dữ liệu hiện nay đa phần là sắp xếp ngẫu nhiên và khơng có cấu trúc

1.3 Khái niệm và quy trình thực hiện khoa học dữ liệu

Các bước thực hiện một dự án khoa học dữ liệu bao gồm [8]: ✓ Xác định vấn đề kinh doanh cần giải quyết

Trang 19

✓ Phân tích và trực quan dữ liệu sau khi xử lý ✓ Lựa chọn thuật tốn và xây dựng mơ hình

✓ Lập trình đưa ra các thơng số, tiêu chí và lựa chọn mơ hình phù hợp, tối ưu nhất cho từng yêu cầu của dự án

✓ Đưa ra kết luận

✓ Thực hiện trực quan hóa, báo cáo kết quả các mơ hình đã chọn ✓ Xây dựng sản phẩm khoa học dữ liệu với đầu vào và đầu ra cụ thể

✓ Thực hiện tiếp chu trình giao tiếp với mơi trường bên ngồi và sẵn sàng quay lại chu trình

Hình 2.1: Các bước thực hiện một dự án khoa học dữ liệu

1.4 Các tiêu chí đánh giá mơ hình thuật tốn

Luận văn có các thơng số tính tốn, nhằm giúp cho việc định lường đo lường chất lượng của mơ hình như MAE, RMSE và Similarity Level

MAE

MAE (Mean Absolute Error) [9]: là trung bình của sai số tuyệt đối

Trang 20

không xem xét hướng của chúng Lấy giá trị trung bình của các phần dư của giá trị thực tế và giá trị dự đoán, lấy các giá trị tuyệt đối của mỗi phần dư, vì vậy phần dư dương và phần dư âm không triệt tiêu lẫn nhau

Vấn đề của MAE là không được mở rộng theo nhu cầu: 𝑀𝐴𝐸 = 1

𝑛∑𝑛𝑖=1(|𝑌𝑖− 𝑌̂ |)𝑖 (2.1) Trong đó: MAE là trung bình của sai số tuyệt đối

Yi là giá trị thực tế Ŷ là giá trị dự đoán i

RMSE

RMSE (Root Mean Square Error) [10]: là căn bậc hai của sai số bình phương trung bình Cũng như đối với MAE, RMSE không được mở rộng theo nhu cầu So với MAE, RMSE không xử lý từng lỗi như nhau Nó mang lại tầm quan trọng hơn cho các lỗi quan trọng nhất Điều đó có nghĩa là một lỗi lớn đủ để nhận được một RMSE rất tệ

RMSE = √1

n∑n (|Yi − Ŷ |)i 2i=1

(2.2)

Trong đó: RMSE là căn bậc hai của sai số bình phương trung bình Yi là giá trị thực tế

Ŷ là giá trị dự đoán i

Similarity_level

Similarity_level [11]: là mức độ tương đồng giữa các sản phẩm được sử dụng để cho nhóm thuật tốn Content-based System Mức độ tương đồng được xác định dựa trên góc hợp giữa 2 vector Góc hợp càng nhỏ thì múc độ tương đồng càng cao và ngược lại Công thức xác định Similarity_level như sau:

similarity_level = cos(𝜃) = A ∗ B||A||||B|| =

∑ni=1Ai Bi

√∑ni=1A2i √∑ni=1Bi2 (2.3) Trong đó: Similarity_level là mức độ tương đồng

A và B là 2 vector đang xét

Trang 21

1.5 Các thuật toán áp dụng để xây dựng mơ hình

Xây dựng hệ thống gợi ý sản phẩm (Recommendation system): sử dụng Content Based Filtering (thuật toán Cosine và Gensim) và Collaborative Filtering (thuật tốn ALS và SVD-Surprise) Trong đó, bài tốn Content Based Filtering cần kết hợp kỹ thuật xử lý ngôn ngữ tự nhiên (NLP) để đưa ra các thông số về điểm tương đồng

2 Tình trạng nghiên cứu

2.1 Nhìn chung

Trong khoảng thời gian 2017-2022, đã có nhiều đề tài thực hiện ứng dụng máy học và đã sử dụng các thuật toán khác nhau [12] Qua đó, nhiều đề tài đã áp dụng thực tế, góp phần thúc đẩy sự phát triển ngày càng lớn mạnh của các trang thương mại điện tử và đáp ứng các nhu cầu ngày càng cao của khách hàng Bài viết này tham khảo luận văn đã thực hiện trước đó [13], đồng thời đưa đến cái nhìn tổng quan hơn về tồn bộ quy trình thực hiện của lĩnh vực khoa học dữ liệu thương mại điện tử Qua đó có thể ứng dụng vào thực tế ở thời điểm hiện nay

2.2 Business Understanding – Xác định vấn đề kinh doanh

Trước khi cố gắng rút ra thơng tin chi tiết hữu ích từ dữ liệu, điều cần thiết là xác định vấn đề kinh doanh cần giải quyết, cố gắng hiểu rõ về những gì doanh nghiệp cần trích xuất từ dữ liệu

Xác định vấn đề (problem definition) là động lực để thực hiện kế hoạch phân tích dữ liệu Các nhiệm vụ chính là xác định mục tiêu của phân tích, xác định các cơng việc, vạch ra vai trị và trách nhiệm, thu thập trạng thái hiện tại của dữ liệu, xác định thời gian biểu và thực hiện phân tích chi phí lợi nhuận Từ đó, một kế hoạch thực thi có thể được tạo ra

2.3 Data Requirements – Phân tích yêu cầu dữ liệu

Trang 22

2.4 Data collection – Thu thập dữ liệu

2.4.1 Đặt vấn đề - Tại sao cần thu thập dữ liệu

Đối với doanh nghiệp hiện nay, việc thu thập dữ liệu có nhiều mục đích như: để so sánh giá cả, biết được sự hài lòng của khách hàng, so sánh khách hàng tiềm năng Đối với người làm khoa học dữ liệu (Data Scientist) hay với các cá nhân, việc thu thập dữ liệu có các mục đích như: tìm kiếm các thơng tin u thích trên các trang web, nhận thông tin việc làm – tiền lương từ các trang web tuyển dụng, tìm kiếm các chủ đề nóng trên các trang web xã hội, lướt các trang blog ẩm thực để tìm kiếm các cơng thức nấu ăn cụ thể hay các bài đánh giá khác nhau

2.4.2 Giới thiệu về Web Scraping

Web Scraping, còn gọi là Data Mining (khai thác dữ liệu web) hoặc Web Harvesting (thu thập web), là quá trình xây dựng một ứng dụng có thể trích xuất, phân tích cú pháp, tải và sắp xếp thơng tin hữu ích từ web một cách tự động Dữ liệu (data): là thứ không thể thiếu đối với bất kỳ ai làm việc với dữ liệu; yêu cầu cơ bản của mọi dự án Khoa học Dữ liệu hay mọi ứng dụng là số lượng lớn dữ liệu hữu ích

Phương pháp thu thập dữ liệu [14]:

✓ Sử dụng tính năng web scraping để có được lượng lớn dữ liệu có sẵn trực tuyến

✓ Phần mềm web scraping sẽ tự động tải và trích xuất dữ liệu từ nhiều trang web

✓ Trang web thương mại điện tử (E-commerce Websites) – thu thập dữ liệu liên quan đặc biệt đến giá cả của một sản phẩm cụ thể từ các trang web thương mại điện tử khác nhau để so sánh

✓ Công cụ tổng hợp nội dung (Content Aggregators) – được sử dụng rộng rãi bởi các công ty tổng hợp nội dung như tổng hợp tin tức và tổng hợp việc làm để cung cấp dữ liệu cập nhật cho khách hàng của họ

✓ Chiến dịch tiếp thị và bán hàng (Marketing & Sales Campaigns): có thể sử dụng để lấy dữ liệu như email, số điện thoại cho các chiến dịch bán hàng và tiếp thị

✓ Tối ưu hóa cơng cụ tìm kiếm (Search Engine Optimization – SEO): được sử dụng rộng rãi cho các cộng cụ SEO để doanh nghiệp biết cách họ xếp hạng cho các từ khóa tìm kiếm quan trọng

Trang 23

truy xuất dữ liệu cho các dự án máy học phụ thuộc vào việc tìm kiếm trên web

Quy trình làm việc:

Hình 2.2: Quy trình thu thập dữ liệu web (Web Scraping) ✓ Hiểu những gì chúng ta muốn thực hiện

Trang 24

✓ Đọc dữ liệu thô online

✓ Định dạng dữ liệu này để có thể sử dụng được

✓ Sử dụng Selenium hoặc Beautiful Soup thông qua Python để thu thập dữ liệu ✓ Processing – Xử lý dữ liệu, có nhiều lựa chọn cơng việc

✓ Tính hợp pháp (Legality)

✓ Trước khi thu thập dữ liệu bất kỳ trang web nào, chúng ta cần phải tìm hiểu về tính hợp pháp của việc thu thập thông tin

✓ Nếu sử dụng dữ liệu cho mục đích cá nhân (ngồi phục vụ giáo dục), mục đích kinh doanh hay các mục đích khác, thì trước khi thực hiện, chúng ta cần gửi yêu cầu cho chủ sở hữu hoặc tìm hiểu về các chính sách thu thập dữ liệu cho dữ liệu sẽ được thu thập [15]

2.5 Data preprocessing and analysis – Tiền xử lý và phân tích dữ liệu 2.5.1 Data Visualization – Trực quan hoá dữ liệu

Trực quan hoá dữ liệu là việc sử dụng các biểu diễn trực quan của dữ liệu trừu tượng thông qua sự hỗ trợ của máy tính để mở rộng nhận thức Trực quan dữ liệu nhằm khai thác sức mạnh đáng kinh ngạc của hệ thống trực quan, phát hiện các mối quan hệ và xu huống, giúp người xem thấy trực quan và dễ hiểu, qua đó giúp giải quyết các vấn đề đã đặt ra Biểu đồ tương tác trực tiếp với hệ thống thi giác, giúp chúng ta xử lý thơng tin nhanh hơn, giải thích khối lượng lớn dữ liệu ngay lập tức hay kể câu chuyện về dữ liệu trong thời gian rất ngắn

2.5.2 Data exploration – Khám phá, làm sạch dữ liệu

Trang 25

Hình 2.3: Khám phá – làm sạch dữ liệu Các công việc cần làm trước tiên:

a Xác định thuộc tính - biến (Variable – Identification)

Để đảm bảo kết quả tốt cho một dự án, chúng ta cần hiểu rõ về phạm vi của dữ liệu Để làm điều đó, chúng ra khơng chỉ cần biết về loại dữ liệu chúng ra có mà cịn cần biết mối quan hệ giữa các thuộc tính, thuộc tính nào hữu ích và cách chúng thay đổi trong dữ liệu được cung cấp Chúng ra cần thực hiện một số thử nghiệm khám phá ban đầu trên dữ liệu

Trang 26

Hình 2.4: Kiểu dữ dữ liệu của các biến b Phân tích đơn biến (Univariate Analysis)

Trang 27

Bảng 2.1: Các phương pháp trực quan số liệu thống kê

Central Tendency Measure of Dispersion Visualization Mathods

Mean Range Histogram

Median Quartile Box Plot

Mode IQR

Min Variance

Max Standard Deviation Skewness and Kurtosis

Chú ý: Phân tích đơn biến cũng được sử dụng để làm nổi bật các giá trị bị thiếu và ngoại lệ Categorical Variales: đối với các biến phân loại, chúng ta sử dụng bảng tần số để hiểu phân phối của từng loại, cũng có thể đọc theo tỷ lệ phần trăm của các giá trị theo từng danh mục Biến có thể được đếnm bằng value_counts() theo từng Category Bar chart được dùng để trực quan dữ liệu

c Phân tích hai biến (Bi-variate Analysis)

Phân tích hai biến tìm ra mối quan hệ của hai biến: tìm kiếm sự liên kết (association) và khơng liên kết (disassociation) giữa các biến ở mức ý nghĩa được xác định trước Chúng ta có thể thực hiện phân tích hai biến cho bất kỳ sự kết hợp nào của các biến phân loại và liên tục Sự kết hợp có thể là: Phân loại và phân loại, phân loại và liên tục, liên tục và liên tục Các phương pháp khác nhau được sử dụng để giải quyết các kết hợp này trong q trình phân tích

Liên tục và liên tục: khi phân tích hai biến liên tục, chúng ta nên xem xét biểu đồ

Trang 28

Hình 2.5: Biểu đồ phân tán cho thấy mối quan hệ giữa hai biến

Biểu đồ phân tán cho thấy mối quan hệ giữa hai biến nhưng không chỉ ra sức mạnh của mối quan hệ giữa chúng Để tìm ra sức mạnh của mối quan hệ, cần dùng Correlation function Tương quan khác nhau giữa -1 và +1

✓ -1: Tương quan tuyến tính âm hồn hảo ✓ +1: Tương quan tuyến tính dương hồn hảo ✓ 0 : Khơng tương quan

Phân loại và phân loại: để tìm mối quan hệ giữa hai biến phân loại, chúng ta có

thể sử dụng các phương pháp: Two-way table, Stacked Column Chart, Chi-Square Test, Two-way table: Bắt đầu phân tích mối quan hệ bằng cách tạo bảng hai chiều Count Các dòng đại diện cho category của một biến và các cột đại diện cho các loại của biến khác Hiển thị Count của cá mẫu có sẵn trong mỗi kết hợp của các loại dòng và cột

Stacked Column Chart: Biểu đồ xếp cột chồng là biểu đồ trực quan hoá dữ liệu của bảng 2 chiều

Trang 29

ta mối xem liệu có mối quan hệ giữa hai biến phân loại (categorical variables) trong một tổng thể hay khơng Nó thường được sử dụng với dữ liệu phân loại như trình độ học vấn, màu sắc hoặc giới tính Ngồi ra, nó kiểm tra xem bằng chứng trong mẫu có đủ mạnh để khái quát mối quan hệ của một quần thể lớn hay khơng

Ví dụ, chúng ta quan tâm liệu có mối quan hệ giữa giới tính (gender) và loại hình doanh nghiệp (section) mà người lao động them giá làm việc hay khơng? Khi đó, giải thuyết của Chi-squared test được phát biểu như sau:

✓ ({H_0}): Biến gender và biến section là hai biến độc lập

✓ ({H_1}): Biến gender và biến section không phải là hai biến độc lập

Chúng ta có thể giải thích test statisgic trong bối cảnh Chi-squared distribution với số lượng degress of freedom (dof) như sau:

✓ Nếu Statistic ≥ Critical Value: bác bỏ giải thuyết null (H0) => hai biến không độc lập

✓ Nếu Statistic < Critical Value: không bác bỏ giải thuyết null (H0) => hai biến độc lập

✓ Degrees of freedom của Chi-squared distribution được tính dựa trên kích thước của contingency table: degrees of freedom: (row-1)*(cols-1)

Về mặt p-value và mức ý nghĩa được chọn (chosen significance level- alpha), thử nghiệm có thể được hiểu như sau:

✓ Nếu p-value ≤ alpha: bác bỏ null hypothesis (H0) => hai biến không độc lập ✓ Nếu p-value > alpha: không bác bỏ null hypothesis (H0) => hai biến độc lập Để thử nghiệm có hiệu quả, ít nhất năm mẫu được yêu cầu trong mỗi ô của contingency table

Phân loại và liên tục: Trong tìm hiểu mối quan hệ giữa các biến phân loại và biên

liên tục, chúng ta có thể vẽ boxplot cho từng level của các categorical variable Nếu level có số lượng nhỏ, nó sẽ không hiển thị ý nghĩa thống kê Để xem xét ý nghĩa thống kê, chúng ta thực hiện ANOVA

ANOVA (Analysis of Variance): đánh giá trung bình của nhiều nhóm (2+) có khác

nhau về mặt thống kê hay khơng

Trang 30

mạnh, sự phù hợp của mơ hình hoặc có thể dẫn tới một mơ hình sai lệch vì chúng ta chưa phân tích hành vi và mối quan hệ với các biến khác một cách chính xác Nó có thể dẫn đến dự đốn hay phân loại sai

Lý do xuất hiện các giá trị bị thiếu có thể xảy ra ở 2 giai đoạn:

✓ Khai thác dữ liệu (Data Extraction): Có thể có vấn đề với q trình trích xuất Trong những trường hợp như vậy, chúng ta nên kiểm tra kỹ lại dữ liệu chính xác với người quản trị dữ liệu Lỗi ở giai đoạn trích xuất dữ liệu thường dễ tìm và có thể được sửa một cách dễ dàng

✓ Thu thập dữ liệu (Data collection): Những lỗi xảy ra tại thời điểm thu thập dữ liệu khó sửa hơn Ví dụ: Thiếu do khơng thu thập được thông tin (người dùng không cung cấp thông tin thu thập, tuổi,…)

Các cách dùng để xử lý dữ liệu thiếu bao gồm:

✓ Xoá: chúng ta xoá các mẫu trong đó có bất kỳ biến nào bị thiếu Sự đơn giản là một trong những lợi thế của phương pháp này, nhưng nó làm giảm đi sức mạnh của mơ hình do làm giảm kích thước mẫu

✓ Phương pháp Mean/Mode/ Median Imputation: là phương pháp điền vào chỗ các giá trị còn thiếu với các giá trị ước tính Mục tiêu là sử dụng các mối quan hệ đã biết có thể được xác định trong các giá trị hợp lệ của tập dữ liệu để hỗ trợ ước tính các giá trị cịn thiếu Đây là phương pháp được sử dụng thường xuyên nhất Việc thay thế dữ liệu bị thiếu cho một thuộc tính nhất định bằng mean hoặc median (thuộc tính định lượng – quanlitative attribute) hoặc mode (thuộc tính định tính – qualitative attribute) của tất cả các giá trị đã biết của biến đó

✓ Prediction Model: mơ hình dự đoán là một trong những phương pháp tinh vi để xử lý dữ liệu bị thiếu Ở đây, chúng ta tạo ra một mơ hình dự đốn để ước tính các giá trị sẽ thay thế dữ liệu bị thiếu

Trong trường hợp này, chúng ta chia dữ liệu thành hai bộ: một bộ khơng có giá trị bị thiếu cho biến và bộ khác có giá trị bị thiếu Tập dữ liệu đầu tiên trở thành tập huấn luyện của mơ hình, trong khi tập dữ liệu thứ hai có giá trị bị thiếu là tập dữ liệu thử nghiệm và biến có giá trị thiếu được gọi là biến đích

Trang 31

Nhược điểm của của phương pháp này là các giá trị ước tính của mơ hình thường được xử lý tốt hơn các giá trị thực Nếu khơng có mối quan hệ giữa các thuộc tính trong tập dữ liệu và thuộc tính có các giá trị bị thiếu thì mơ hình sẽ khơng chính xác khi ước tính các giá trị bị thiếu

e Xử lý dữ liệu ngoại lệ (Outlier Values)

Outlier là một thuật ngữ thường được sử dụng bởi các nhà phân tích và nhà khoa học dữ liệu vì nó cần được chú ý tới, nó có thể dẫn đến ước tính sai lầm lớn

Outlier là một mẫu xuất hiện ở xa và tách khỏi tổng thể

Ngoại thể có thể có 2 loại: đơn biến (Univariate) và đa biến (Mutivariate)

✓ Ngoại lệ đơn biến: Các ngoại lệ này này có thể được tìm thấy khi chúng ta xem xét phân phối của một biến duy nhất

✓ Ngoại lệ đa biến: là các ngoại lệ trong một không gian n chiều Để tìm thấy chúng, chúng ta phải xem xét các bản phân phối theo nhiều chiều

Nguyên nhân gây ra ngoại lệ phân ra làm 2 loại chính: Nhân tạo và tự nhiên ✓ Lỗi nhập liệu: Lỗi do con người gây ra trong quá trình thu thập, ghi hoặc nhập

dữ liệu có thể gây ra các ngoại lệ trong dữ liệu

✓ Lỗi đo lường: đây là nguồn phổ biến nhất của các ngoại lệ Điều này được gây ra khi dụng cụ đo được sử dụng bị lỗi

✓ Lỗi do thử nghiệm

✓ Ngoại lê có chủ ý: điều này thường được tìm thấy trong các báo cáo liênquan đến dữ liệu nhạy cảm

✓ Lỗi xử lý dữ liệu: bất cứ khi nào chúng ta thực hiện khai thác dữ liệu, chúng ta thường trích xuất dữ liệu từ nhiều nguồn Mội số lỗi thao tác hoặc trích xuất có thể dẫn đến các ngoại lệ trong bộ dữ liệu

✓ Lỗi lấy mẫu, sai lệch dữ liệu lấy mẫu

Trang 32

nhất Nên việc điều tra bản chất của ngoại lệ là rất quan trọng trước khi được ra quyết định

2.5.3 Data Standardization - Chuẩn hoá dữ liệu

Chuẩn hoá dữ liệu là một quy trình xử lý dữ liệu thực hiện việc chuyển đổi cấu trúc của các bộ dữ liệu khác nhau thành định dạng dữ liệu chung (Common Data Format) Chuẩn hoá dữ liệu là một phần của việc chuẩn bị dữ liệu, chuẩn hoá dữ liệu liên quan đến việc chuyển đổi các bộ dữ liệu sau khi dữ liệu được lấy từ các hệ thống nguồn và trước khi nó được tải vào hệ thống đích

Chuẩn hố dữ liệu cho phép người dùng phân tích và sử dụng dữ liệu một cách nhất quán Thông thường, khi dữ liệu được tạo và lưu trữ trong hệ thống nguồn, nó được cấu trúc theo một cách cụ thể mà người dùng không biết Hơn nữa, các bộ dữ liệu có thể được lưu trữ và trình báy khác nhau, do đó gây khó khăn cho người dùng khi tổng hợp hoặc so sánh các bộ dữ liệu Các bộ dữ liệu trong thế giới thực chứa các tính năng rất khác nhau về cường độ, đơn vị và phạm vi Chuẩn hoá dữ liệu nên được thực hiện khi thang đo của một tính năng khơng liên quan hoặc gây hiểu lầm và khơng nên chuẩn hố khi thang đo có ý nghĩa

Chuẩn hố là cách làm cho dữ liệu của chúng ta phù hợp với các giả định và cải thiện hiệu suất của thuật toán Đảm bảo dữ liệu phù hợp nghĩa là mỗi loại dữ liệu đều có cùng nội dung và định dạng Chuẩn hoá dữ liệu là một phần quan trọng của nghiên cứu và là thứ mà người sử dụng dữ liệu nên cân nhắc trước khi thu thập, dọn dẹp hoặc phân tích dữ liệu của họ Có nhiều phương pháp được sử dụng để chuẩn hoá dữ liệu như logarithmic, scaling based on distribution, binning,…

Khi nào cần chuẩn hoá dữ liệu?

✓ Khi xây dựng mơ hình: Mơ hình khơng gian tuyến tính (Linear space), các tính năng dữ liệu có phương sai cao, các tính năng dữ liệu liên tục và trên các đơn vị đo (scale) khác nhau

✓ Nhu cầu chuyển đổi dữ liệu có thể phụ thuộc vào phương pháp mơ hình hố mà chúng ta dự định sử dụng

2.5.4 Data Analysis – Phân tích dữ liệu

Trang 33

hiệu quả hơn Mục tiêu của bất kỳ việc phân tích dữ liệu là để có được thông tin hành động liên quan đến công việc doanh nghiệp Đối với nhà quản lý làm việc trên miền dữ liệu, để hỗ trợ các quyết định và hành động kinh doanh, việc hiểu các lý thuyết và kỹ thuật trong các lĩnh vực phân tích dữ liệu như thống kê, khai thác dữ liệu và phân tích dự đoán (statistics, data mining, predictive analytics) là rất quan trọng

Một số kỹ thuật phân tích dữ liệu:

✓ Phân tích tương quan (Correlation Analysis) là một kỹ thuật thống kê có thể cho thấy mối quan hệ giữa hai biến

✓ Phân tích hồi quy (Regression Analysis): Đây là một trong những kỹ thuật phân tích dữ liệu thống kê điều tra mối quan hệ giữa các biến khác nhau Nó được sử dụng khi nghi ngờ rằng một trong các biến có thể ảnh hưởng đến các biến khác Phân tích hồi quy có thể được sử dụng khi cố gắng tạo dự báo hơajc phân tích mối quan hệ giữa các biến

✓ Trực quan hoá dữ liệu (Data Visualization) giúp mọi người hiểu được thông tin quan trọng của dữ liệu bằng cách hiện thị nó trong bối cảnh trực quan Đây là một trong những kỹ thuật quan trọng nhất hiện nay khi thế giới vơ vàn dữ liệu Nó đặc biệt hữu ích khi chúng ta tìm cách nắm bắt những hiểu biết sâu sắc từ một khối lượng lớn dữ liệu một cách nhanh chóng

✓ Phân tích tình huống, kịch bản (Scenario Analysis) ✓ Khai thác dữ liệu (Data mining)

✓ Mạng Neuron (Neural Networks)

✓ A/B Test: còn gọi là thử nghiệm phân tách Đây là phương pháp so sánh hai phiên bản của một trang web hoặc ứng dụng với nhau để xác định phiên bản nào hoạt động tốt hơn Kỹ thuật A/B Testing thường được sử dụng trong tiếp thị kỹ thuật số để kiểm tra phản ứng của người dùng đối với một tin nhắn và xem cái nào hoạt động tốt nhất, kiểm tra các giả thuyết trong việc ra mắt một sản phẩm mới, một chiến dịch quảng cáo hoặc một thông điệp quảng cáo

2.6 Modeling, Algorithms – Thuật tốn và mơ hình hố

Trang 34

lường mối quan hệ giữa các biến cụ thể Các nhà phân tích có thể cố gắng xây dụng các mơ hình mơ tả dữ liệu để đơn giản hố phân tích và truyền đạt kết quả

2.7 Data product - Sản phẩm dữ liệu

Một sản phẩm dữ liệu là một ứng dụng máy tính nhận dữ liệu đầu vào và tạo đầu ra, đưa chúng trở lại mơi trường Nó có thể dựa trên mơ hình hoặc thuật tốn Một ví dụ là một ứng dụng phân tích dữ liệu về lịch sử mua hàng của khách hàng và khuyến nghị các giao dịch mua khác mà khác hàng có thể được hưởng

2.8 Communication – Giao tiếp với môi trường

Trang 35

CHƯƠNG 3: NỘI DUNG THỰC HIỆN

1 Công cụ thu thập tập dữ liệu

1.1 Selenium

Selenium [17] là một framework dùng để thử nghiệm các ứng dụng web

Selenium cung cấp playback tool để tạo các kiểm tra chức năng Nó cũng cung cấp một ngôn ngữ dành riêng cho việc kiểm thử ứng dụng (Selenese) để tester viết thử nghiệm bằng một số ngơn ngữ lập trình phổ biến như C#, Groovy, Java, Perl, PHP, Python, Ruby và Scala Sau đó, các cơng việc kiểm tra có thể chạy trên hầu hết các trình duyệt web hiện đại Selenium là phần mễm mã nguồn mở được phát hành theo Apache License 2.0 Selenium được sử dụng để tự động hóa trình duyệt

API Selenium sử dụng giao thức WebDriver để điều khiển trình duyệt web, như Chrome, Firefox hay Safari Chúng ta có thể dễ dàng chạy các trình duyệt này ở bất kỳ hệ điều hành nào, Windows, Mac hay Linux Khi bắt đầu từ năm 2004, Selenium chủ yếu được sử dụng để kiểm thử ứng dụng Hiện nay Selenium vẫn được sử dụng để kiểm thử ứng dụng, nhưng cũng được sử dụng như một nền tảng tự động hóa trình duyệt chung, và chúng ta có thể sử dụng Selenium để thu thập dữ liệu web

Đặc điểm Selenium WebDriver:

✓ Thân thiện, dễ sử dụng, câu lệnh dễ nhớ, có nhiều tài liệu hướng dẫn, công đồng người dùng lớn

✓ Tốc độ thực thi nhanh, tận dụng khá tốt khả năng hỗ trợ tự động hóa của các trình duyệt web Mỗi trình duyệt web khác nhau sẽ có một cơng cụ hỗ trợ khác nhau dành cho nó như ChromeDriver của Chrome hay FirefoxDriver của Firefox

✓ Selenium hữu ích khi chúng ta phải thực hiện một hành động trên một trang web như: click và button, điền vào form, cuộn trang, chụp ảnh màn hình (screenshot)

Cài đặt package Selenium: pip install selenium

Trang 36

tử HTML: truy nhật văn bản của phần tử (element.text), chọn nhấn vào phân tử (element.click), truy cập thuộc tính phần tử (element.get_attribute),…

1.2 BeautifulSoup

BeautifulSoup [18] là một package Python để phân tích tài liệu có cấu trúc HTML và XML (bao gồm cả cấu trúc, các thẻ khơng đúng, các thẻ khơng đóng, ) BeautifulSoup tạo ra cây phân tích cú pháp cho các trang phân tích cú pháp có thể được sử dụng để trích xuất dữ liệu từ HTML

Các tính năng đặt trưng của BeautifulSoup:

✓ Cung cấp một số phương pháp đơn giản và cách thức để điều hướng, tìm kiếm, sửa đổi cây phân tích cú pháp, có một bộ cơng cụ để phân tích tài liệu và trích xuất những gì chúng ta cần, không phải viết nhiều câu lệnh khi thực hiện ✓ Tự động giải mã dữ liệu đến sang Unicode và dữ liệu đi sang UTF-8 Khơng

cần tính đến việc mã hóa - giải mã, trừ trường hợp có những mã hóa quá đặc biệt

✓ Package chứa các trình phân tích cú pháp Python phổ biến như lxml và html5lib, cho phép chúng ta sử dụng linh hoạt

Package cài đặt: beautifulsoup4, lxml, webbrowser, requests, urllib3

Xác định và thu thập nhiều phần tử (page_contents) với nhiều function khác nhau Có nhiều cách khác nhau trên cấu trúc dữ liệu web thường được sử dụng như: thu thập với tag name/attrs, thu thập với đường dẫn ‘Xpath’, thu thập class_name bên trong thẻ,…

1.3 Trích xuất dữ liệu từ Web Api

Trích xuất dữ liệu từ Web Api [19] là thực hiện lấy data hiện hữu từ bất kỳ một trang web thương mại điện tử bằng cách sử dụng thư viện request và json trong Python (nếu có sẵn API từ Web) Sử dụng công cụ Developer trên trình duyệt Chrome Chúng ta vào XHR để lọc response hiện lên khi load xong trang web, kiểm tra các response tìm reponse có chứa dữ liệu sản phẩm cần thu thập Từ đó ta có API trả về đầy đủ dữ liệu id sản phẩm chúng ta cần (ở đây api sản phẩm và bình luận là: “https://tiki.vn/api/v2/products/{}” và “https://tiki.vn/api/v2/reviews/{}”) Thực hiện 3 bước để lấy dữ liệu cần thiết:

✓ Thực hiện vòng lặp lấy tồn bộ id sản phẩm có API trên

Trang 37

loại mặt hàng, nhà sản xuất, đường dẫn sản phẩm,

✓ Thực hiện vòng lặp trên từng id sản phẩm thu thập được để lấy dữ liệu bình luận nhận xét của khách hàng đã mua sản phẩm đó gồm: id khách hàng, tên khách hàng, điểm đánh giá, nội dung đánh giá,…

Kết quả thu thu thập được dữ liệu thô (chưa qua xử lý và làm sạch) gồm 2 tệp dữ liệu: ProductRaw.csv (giải quyết bài toán content-based systems) và ReviewRaw.csv (giải quyết bài tốn collaborative filtering)

2 Tìm hiểu, phân tích và xử lý dữ liệu

2.1 Đọc và tìm hiểu dữ liệu

Dữ liệu đến thường có thể từ nhiều nguồn khác nhau và được định dạng khác nhau (.csv, xls, txt, json) Luận văn sử dụng định đạng csv vì loại tập tin nhẹ, dễ sử dụng và nhanh chóng Sau khi đọc dữ liệu cần xem chi tiết dữ liệu gồm shape (chiều dữ liệu), info (thông tin kiểu dữ liệu), head, tail (mục đầu - cuối trang), dtypes (kiểu dữ liệu của từng thuộc tính), describle (kiểm tra sự phân bố dữ liệu), kiểm tra dữ liệu phân loại, kiểm tra sự tương quan của các thuộc tính và lựa chọn các thuộc tính cần thiết dữ liệu đã đọc vào

Trang 38

Hình 3.2: Biểu đồ thể hiện sự tương quan giữa các thuộc tính

Hình 3.3: Tổng quan về bộ dữ liệu user-base

2.2 Phân tích, xử lý dữ liệu trùng, dữ liệu thiếu, dữ liệu ngoại lai

Trang 39

rất nhỏ (dưới 1%) nên dùng phương pháp xóa hàng của những dữ liệu này Bên cạnh đó, chúng ta dùng biểu đồ boxplot để kiểm tra sự phân bố của dữ liệu và dữ liệu ngoại lai của các thuộc tính cần thiết

Trang 40

2.3 Xử lý dữ liệu văn bản ngôn ngữ tự nhiên tiếng việt

Thực hiện cài đặt và khai báo thư viện Underthesea Đây là thư viện mã nguồn mỡ dành cho ngôn ngữ Python, nhằm hỗ trợ việc nghiên cứu, hướng dẫn và phát triển cơng nghệ xử lí ngơn ngữ tự nhiên Việt Nam Thực hiện chuẩn hóa lại kiểu chữ (chuyển sang chữ thường), loại bỏ các từ khơng hoặc ít mang ý nghĩa văn bản nhưng lại xuất hiện quá nhiều lần trong câu (stop words) Thực hiện lưu dữ liệu sau khi đã làm sạch Dữ liệu liệu làm sạch sẽ gồm 2 file như sau: df_cleaned_contentbase.csv (giải quyết bài toán content-based systems) và df_cleaned_userbase.csv (giải quyết bài toán collaborative filtering)

2.4 Mã hóa tách từ

Tokenization (tách từ) là một trong những bước quan trọng nhất trong q trình tiền xử lý văn bản, đó là cơng việc tách văn bản, đoạn văn, câu, từ thành các đơn vị nhỏ hơn, tạo thành kho từ vựng được đánh nhãn, mã số nhằm phục vụ cho các kỹ thuật như xử lý tần suất xuất hiện của từ - nghịch đảo tần suất của văn bản TF-IDF, chuẩn hóa Sau khi chia nhỏ cần thực hiện đánh nhãn cho các từ bởi dictionary

2.5 TF-IDF

Thực hiện kỹ thuật xử lý tần suất xuất hiện của từ - nghịch đảo tần suất của văn bản TF-IDF (Term frequency - inverse document frequency) [20] nhằm hạn chế những từ phổ biến trong văn bản áp đảo mơ hình, dẫn đến kết quả không mong muốn TF-IDF đưa ra trọng số của các từ trong văn bản thông qua thống kê nhằm thể hiện sự quan từ của 1 từ trong văn bản, một văn bản đăng xét với tập hợp nhiều văn bản

Ví dụ từ x trong văn bản y:

𝑤𝑥,𝑦 = 𝑡𝑓𝑥,𝑦∗ 𝑙𝑜𝑔 ( 𝑁

𝑑𝑓𝑥) (3.1) Trong đó: wx, y là trọng số TF-IDF từ x trong văn bản y

df x là số văn bản có chứa x N là tổng số văn bản

tfx là tần suất xuất hiện của x dựa trên tổng số từ được chia trên một độ dài của văn bản

Ngày đăng: 25/10/2023, 22:13

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w