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

Luận văn thạc sĩ Khoa học máy tính: Xây dựng ứng dụng phân loại bình luận thời gian thực sử dụng phân tích dữ liệu lớn trong thương mại điện tử

93 0 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

Tiêu đề Xây dựng ứng dụng phân loại bình luận thời gian thực sử dụng phân tích dữ liệu lớn trong thương mại điện tử
Tác giả Trần Bình Hậu
Người hướng dẫn TS. Đỗ Trọng Hợp
Trường học ĐẠI HỌC QUOC GIA THÀNH PHO HO CHÍ MINH
Chuyên ngành Khoa học máy tính
Thể loại Luận văn thạc sĩ
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 93
Dung lượng 44,61 MB

Nội dung

LỜI CAM ĐOANTôi xin cam đoan luận văn thạc sĩ “Xây dựng ứng dụng Phân loại bình luận thời gian thực sử dụng phân tích dữ liệu lớn trong thương mại điện tử” là công trình nghiên cứu của r

Trang 1

ĐẠI HỌC QUOC GIA THÀNH PHO HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

Trang 2

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn thạc sĩ “Xây dựng ứng dụng Phân loại bình luận thời

gian thực sử dụng phân tích dữ liệu lớn trong thương mại điện tử” là công trình nghiên

cứu của riêng tôi.

Tôi cam đoan rằng các số liệu được sử dụng trong luận văn là trung thực và khôngxuất hiện trong bat kỳ công trình nghiên cứu nào trước đây Luận văn có kế thừa phươngpháp từ một số công trình trước, và sẽ trích dẫn nguồn tham khảo đầy đủ

Tất cả các nguồn tài liệu tham khảo, bộ dé liệu chuẩn đề huấn luyện mô hình,

nếu được tham khảo hoặc sử dụng, đều đã có thư xin phép tác giả và trích dẫn phù hợp

Học viên

Trần Bình Hậu

Trang 3

LỜI CẢM ƠN

Để hoàn thành khóa luận này, ngoài sự nỗ lực của bản thân, tôi cũng nhờ sự hỗ trợrất nhiệt thành từ quý Thay/C6, ban học, đồng nghiệp trong khoa, Trường và gia đình

đã tạo điều kiện dé tôi có thời gian thực hiện công việc

Tôi xin chân thành cám ơn đến:

© Quý Thay/Cé trong trường Dh Công nghệ Thông tin- ĐHQG TP HCM đã truyền

đạt kiến thức trong quá trình học tập

e Xin chân thành cám ơn sâu sắc đến TS Đỗ Trọng Hợp đã tư van, định hướng

trong việc tìm kiếm đề tài Thầy đã thâm định chuyên môn và hỗ trợ rất nhiềutrong quá trình thực nghiệm, cũng như dành thời gian trau chuốt nội dung bài viết

này.

e Tôi cũng muốn gửi lời tri ân tới các bạn đồng học, đã cho tôi cơ hội cộng tác

trong suốt khóa học, nhắc nhở nhau trong quá trình làm khóa luận

Tôi xin chân thành tri ân quý Thầy/Cô, bạn bè và gia đình những lời chúc tốt đẹp

và thành công trong cuộc sống,

TP Hồ Chí Minh, ngày tháng năm 2023

Học viên

Trần Bình Hậu

Trang 4

CHƯƠNG 1: TONG QUAN VE DE TÀI àoi eecccccccrrrrrrrrrrrrrre 11

1 Giới thiệu đề tài 2 HH eeeiiie 111.1 Đặt vấn A ooo cccccccssseesssseesssvesssseessssecsssvesssseessssesssssesssseesessvesssseesssseessnvesssseessee ial

1.2 Mục tiêu nghiên cứu

1.3 Đối tượng và phạm vi nghiên cứu :¿222222222++++tttttEEvrvrrvrrrrrrrre 14

1.4 Phương pháp nghiên CỨU -¿- 5+ + St ềvEEErErrkexerrrrrkrrrrrrrrrerrrk 14 1.5 Câu hỏi khi nghiên cứu -¿- ¿5:5 st2x2t‡*t2teEtextrkerrrrrrrerirrerrrrrrrrrrrree 14

1.6 Công việc cần làm -:-222222¿+22221112122221111222211122217111221211112210111 E1 15

2 Tình hình nghiên CỨU St 52t St tt EEKEE E11 rrrrey 15 2.1 Tinh hình nghiên cứu trong nƯỚC oo ceeesesceeseseeeeseseseseerencsceeseseeneneensesseneaeeneees 15

2.2 Tình hình nghiên cứu trên thé giới ¿+22EE++¿+22EEE+2+t2222222+tzrrrkcee 172.3 Nhận định về các TnighiÊn CỨU - 5c + tt Eétekererrkeksrerirkrrkerrrkrkrree 18CHUONG 2: KIÊN THỨC NEN TANG

8 Các chỉ số đánh giá thuật toán -:-¿-2222222+222221122212111 22111 1c 27

9 Các bước xây dựng bộ dit liệu - 6 S2 Sx+téxeEEEtErEkekerkrrtrrrrirrrrkrrree 29

CHƯƠNG 3: THU THẬP VÀ XÂY DỰNG BO DỮ LIỆU - 32

1 Thu thập dit liệu cho mô hình - - - + 5t E#EvEvEvEEeEerererkrtrtsrerrrkrkrrerrre 32

2 Xây dựng bộ dữ liệu huấn ID 3 44

CHƯƠNG 4: THỰC NGHIỆNM 5< 5< 5< server 47

1 Các công cụ sử dung trong đề tài -. 22222222 2222222222211 2222111222 crrrkk 47

Trang 5

2 Môi trường huấn luyện mô hình 2:+22222EEE22222++rtttttEEEExvvrrrrrrree 56

3 Phân tích thiết kế hệ thống 222222E222+2222232222222312222211122222112 ccrrkk 57

4 Mô hình luận lý phân loại bình luận - ¿+ + 5++cv+xeE+xerxerrxererrree 59

5 Áp dụng Big Data vào mô hình cccccssssssessssssssessssssseesssssnsesessssiseesssssiesessssseeeeess 60

6 Thực nghiệm với kỹ thuật Machine Learning - - +5 s+scecvrer+x 60

7 Thực nghiệm với kỹ thuật Deep Learning - - 5+5 St+xscsrvxvrtsvskerrrrrrvee 62

8 Triển khai với công cụ Kafka, Sparlk .-2-:2222 22 2222211222222112 2212112 eetre 66

9 Triển khai xây dựng nguồn gia lập dữ liệu web tiki :-::55ccccccvvcccez 67

Trang 6

Danh mục các bảng

Bang 1 - Tình hình nghiên cứu trong nưỚC ¿+ cv s+tsxexererertrtsrererrrxee 17

Bảng 2 - Tình hình nghiên cứu thế giới

Bảng 3 - Kết quả thực nghiệm theo Machine Learning

Bảng 5 - Thực hiện với thuật toán Machine Learning có áp dụng Spark

Bảng 4 - Thực hiện với kỹ thuật Deep Learning

Trang 7

Danh mục các hình vẽ, đồ thị

Hình | - Một số dang bình luận trên inf€rnet + scsccsrsrtrxetsrsrrrrtsrerrrer 12

Hình 2 - Mô tả bài toán dạng tông quát

Hình 3 - Mô hình hệ thống cần xây dựng

Hình 4 - Một số giai đoạn phát triển của Deep Learning

Hình 5 - Quá trình "học sâu"

Hình 6 - Áp dụng ML/DL vào bài toán phân loại bình luận

Hình 8 - Một số nền tang trong hệ sinh thái Big Dat

Hình 9 - Bài toán phân loại bình luận

Hình 16 - Lấy đánh giá sản phẩm từ một công cụ khác dé kiểm tra chéo kết quả

Hình 17 - Lấy kết quả bình luận một sản pham từ công cụ khác dé so sánh

Hình 18 - Hiển thị kết quả đưới dang JSON dé tường minh hơn

Hình 19 - Kết quả JSON, tập trung yếu tố cần quan tâm là content và rating

Hình 20 - Phân bó dữ liệu tính cực - tiêu cực

Hình 21 - Cấu hình JAVA_HOME

Hình 22 - Các folders và files khi giải nén zookeeper

Hình 23 - Cầu hình biến môi trường Zookeeper

Hình 24 - Kết quả "start" thành công zookeeper

Hình 25 - Kết quả "start" kafka thành công

Hình 26 - Lược sử phát triển của Spark

Hình 27 - Spark Streaming sẽ chia nhỏ các luồng thành các lô nhỏ dé xử lý

Hình 28 - Cơ chế hoạt động của Flask

Hình 29 - Bản vẽ Use Case

Hình 30 - Mô hình thiết kế logic hệ thốn;

Hình 31 - Lưu đỗ chỉ tiết thực hiện theo mô hình thiết kế

Hình 32 - Mô hình phân loại bình luận

Hình 33 - Mô hình thiết kế hệ thống áp dụng Big Data (Spark, Kafka

Hình 34 - Confusion matrix

Hình 35- Dashboard hién thị bình luận - Flas!

Hình 36 - Mô hình giả lập web cung cấp đữ liệu bình luận

Hình 37 - Cầu trúc database trang gia lập dữ liệu

Hình 38 - Giao diện trang giả lập bình luận

Hình 39 - Giao diện hiển thị màn hình phân loại bình s

Hình 40 - Bài báo gửi hội thảo ICOIN20214 +5 + c+sstztersrerrrrrrrrrrrrr

Trang 8

MỞ DAU

Sự bùng nỗ thông tin, cuộc cách mạng công nghiệp 4.0, và gần đây là xu hướngchuyển đổi số, đã thúc day các tổ chức, doanh nghiệp ứng dung công nghệ thông tin vàocác hoạt động hàng ngày của mình Các doanh chủ, nhà điều hành, nhà quản lý ngàycàng quan tâm nhiều tới việc khai thác thông tin từ đữ liệu phần mềm, mạng xã hội,nhằm gia tăng mức cạnh tranh của đơn vị mình

Nếu hiểu được trải nghiệm khách hàng, xu hướng, thị hiếu thị trường, sẽ là mộtđiểm lợi cực kỳ to lớn để doanh nghiệp có những chiến lược phù hợp Các cuộc khảo sáttruyền thông mặc dù vẫn có giá trị nhất định, nhưng vẫn tồn tại các rủi ro về cảm tính vàchuyên môn của những người thực hiện khảo sát, cũng như đối tượng được khảo sát

Một hướng quản trị mới là dựa vào dữ liệu đề khai thác thông tin từ chúng

Phân loại bình luận (Sentiment Analysis) có 3 hướng lớn để thực hiện: Machine

Learning based, Lexicon-based va Hybrid Trong hướng Machine Learning, sẽ được chia

ra supervised leanring, unsupervised learning va semi-supervised learning, Deep

Learning sẽ là một ngách nói tiếp phía sau

Luận van này thực hiện phân loại bình luận (tích cực/tiêu cực) dựa trên bộ dữ liệu

thu thập được từ trang thương mại điện tử tiki trong mặt hàng sách kinh tế tiếng Việt,dùng các thuật toán Machine Learning, Deep Learning và áp dụng một số kỹ thuật trong

Big Data vào các thuật toán này, nhằm so sánh và lựa chọn thuật toán phù hợp

Trang 9

CHƯƠNG 1: TONG QUAN VE DE TÀI

1 Giới thiệu đề tài

1.1 Đặt vấn đề

Chúng ta thường lựa chọn dựa trên quan điểm và kinh nghiệm, nên cảm xúc đóng

một vài trò quan trọng trong hành vi của con người Sự quan tâm của dư luận về một vấn

đề xã hội nào đó có thê trở thành một xu hướng trong tương lai Ý kiến của công chúng

về một sản phẩm, dịch vụ nào đó đối với các nhãn hàng là rất quan trọng, giúp các doanhchủ có chiến lược tiếp thị, sản xuất, kinh doanh, điều hành được tốt hơn

Nếu như trước kia việc lay y kiến khảo sát được thực hiện dựa trên các phiếu giấy,

vừa tốn nhân lực thu thập, cách đặt câu hỏi nếu không khéo cũng không lại kết qua phản

ánh đúng điều mà các tô chức, doanh nghiệp cần Ngoài ra việc làm thủ công sẽ matnhiều thời gian, dẫn đến chỉ phí cơ hội bị bỏ lỡ

Thời đại bùng nỗ thông tin, tất cả các ngành nghề gần như đều sử dụng công nghệ

dé tương tác và tiếp cận khách hàng, hành vi của người dùng cũng vì thé thay đổi rấtnhiều Vì thế việc thu thập các ý kiến khách hàng, các bình luận công chúng được thực

hiện thông qua sự hỗ trợ của các phần mềm, công cụ tin học.

Trang 10

You're ana*s.

e

(nguồn ảnh từ:

hps:⁄/writingcooperative.com/how-not-to-take-hate-comments-personally-as-a-creator-5750086181ae )

Mục tiêu chính của đề tài này là xây dựng một công cụ hỗ trợ nhận diện các bình

luận tích cực và tiêu cực liên quan tới sản phẩm/dịch vụ, tần suất thu thập dữ liệu mới là

mỗi 5 phút, đối với dang bài toán này với khoảng thời gian đó xem như phù hợp Ngoài

ra, mục tiêu phụ của dé tài là áp dụng các kỹ thuật có thể xử lý được dữ liệu tăng lênnhanh chóng (dữ liệu trong đề tài không nhất thiết phải là đữ liệu lớn vì hạn chế của việctiếp cận dữ liệu) và thời gian nhận hồi đáp nhanh chóng

Trang 11

1.2 Mục tiêu nghiên cứu

Mục tiêu nghiên cứu của luận văn này là xây dựng công cụ phân loại bình luận trên

trang thương mại điện tử ứng dụng thuật toán Machine Learning và Deep Learning.

Các bước xây dựng hệ thống:

- Thu thập dé liệu: dữ liệu được thu thập trực tuyến thông qua kết nói tới hệ thong

thương mại điện tử.

- _ Tiền xử lý dữ liệu: kiểm tra, chuẩn hóa đữ liệu, loại bỏ những thông tin ít giá

trị trong dữ liệu.

- Xây dựng mô hình phân loại: sử dụng kỹ thuật xử lý dữ liệu lớn kết hợp xử lý

ngôn ngữ tự nhiên dé đưa ra nhận định phi hợp

- Hiển thị dữ liệu: kết qua phân loại được hién thị dưới dang biểu đồ, trên nền

tảng web.

Cập nhật dữ liệu: dit liệu được cập nhật tự động khi hệ thống được vận hành

Phân tích và đưa ra phân loại: dựa trên các loại bình luận cùng với số lượng bình

luận để các bên liên quan, bao gồm cả khách hàng và chủ nhãn hàng có những hành động

phù hợp với chiến lược của mình.

Trang 12

1.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 là kỹ thuật phân loại bình luận và cách tạo ra

công cụ để hiện thực kỹ thuật phân loại bình luận này

Phạm vi nghiên cứu là một số thuật toán phân loại bình luận Machine Learning

(Logistic Regression, Support Vector Machine, Naive Bayes, Decision Tree) và Deep Learning (LSTM, CNN), kỹ thuật trong hệ sinh thai Big Data (Spark, Kafka, PySpark),

trên tập dữ liệu thu thập từ website thương mai điện tử Tiki, với mặt hang là sách tiếngViệt thuộc lĩnh vực kinh tế

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

Phương pháp nghiên cứu của luận văn là dựa trên khảo sát các công trình, bài báo

nghiên cứu trước đó để tìm các thuật toán và độ chính xác mà các tác giả đạt được Thựcnghiệm khảo sát trên thị trường thông qua internet đề tìm kiếm sản phẩm tương tự từ cácdoanh nghiệp để học hỏi Sau đó thử nghiệm các thuật toán với bộ dữ liệu thu thập, tiến

hành tinh chỉnh các tham số trong thuật toán, dé đánh giá và lựa chọn thuật toán phù

hợp Cuối cùng là xây dựng công cụ xử lý bài toán

1.5 Câu hỏi khi nghiên cứu

Câu hỏi 1: Tại sao phải làm luận văn này trong khi có rất nhiều nghiên cứu, ứngdụng trước đó và bài này đã có rất nhiều năm?

Trả lời 1: Các ứng dụng được các doanh nghiệp phát triển dé phục vụ nhu cầu nội

bộ, họ không chia sẻ phương pháp làm, nên minh cần làm dé giải quyết bài toán củamình Các nghiên cứu khoa học về mảng này có rất nhiều, nhưng phan lớn tập trung vàocải tiến mô hình để tăng độ chính xác, và tập dữ liệu luận văn làm khác với của họ

Câu hói 2: Tiêu đề luận văn đề cập tới thời gian thực và dữ liệu lớn, vậy nó théhiện như thế nào trong luận văn?

Trả lời 2: Thời gian thực theo cách hiểu của em khi làm đề tài, không phải là đữ

liệu phát sinh liên tục như trong dữ liệu chứng khoán, mà thực ở đây là khi có phát sinh

Trang 13

trên hệ thống đích, sau một khoảng thời gian ngắn, cĩ thể là vài phút đến vài chục phút,cơng cụ cĩ thé quét lại dé cập nhật vào bảng kết quả Van đề dữ liệu lớn, trong luận vănđang sử dụng là ý muốn dùng kỹ thuật dành cho xử ly dé liệu lớn, chứ khơng phải dữliệu của luận văn đủ tiêu chuân lớn, điều này do hạn chế khơng phải là chủ trang nênkhơng thể kéo nhiều được.

Câu hỏi 3: Đĩng gĩp của luận văn này là gì?

Trả lời 3: mặc dù luận văn khơng mang lại điểm mới trong học thuật, nhưng hướng

tới kỹ thuật xây dựng bài tốn và giải quyết bài tốn, đồng thời thực nghiệm trên một số

thuật tốn để đưa ra nhận định lựa chọn thuật tốn phù hợp cho dạng bài tốn này

1.6 Cơng việc cần làm

e Phân tích yêu cầu, khảo sát tình hình thị trường, tình hình nghiên cứu và hệ thống

các nghiên cứu đĩ.

e Thu thập, làm sạch, xử lý dữ liệu.

e Xây dựng model phân loại, thiết kế mơ hình phần mềm/cơng cụ

e Thử nghiệm bộ di liệu trên với các model.

e Dua model vào phần mém/céng cụ

e Kết luận, nhận định đề tài, những đĩng gĩp của nghiên cứu, các hạn chế và hướngphát triển

© Gửi bài tới một hội thảo dé cĩ thêm kênh đánh giá

2 Tình hình nghiên cứu

2.1 Tình hình nghiên cứu trong nước

STT Bài báo Kết quả

1 Mơ hình khai phá ý kiến và phân | Bài báo thực hiện phân tích cảm xúc khách

tích cảm xúc khách hàng trực | sau khi mua hàng trên website Foody.vn,

tuyến trong ngành hàng thực | sử dụng một phương pháp học máy cĩ

phẩm (2020) - Đại học Mở giám sát như Decision Tree, Nạve Bayes,

Trang 14

Logistic Regression Độ chính xác lên tới 90%, cho các nhận diện bình luân tích cực

và tiêu cực.

Nghiên cứu giải pháp phát hiện

tin gia trên mạng xã hội bằng

ngơn ngữ tiếng Việt (2022) - CTU

Thu thập thơng tin trên mạng xã hội

facebook thơng qua một số nhĩm lớn, vàđối chiếu tin với các trang tin tức chínhthống tại Việt Nam, để so sánh mức độ giả

của tin, dựa trên phương pháp phân tích TF

— IDF, so sánh độ tương đồng cosine và

thu được mức độ chính xác khi phát hiện

tin giả lên đến 70%

Phương pháp phân loại dữ liệu

bình luận của khách hàng trực

tuyến Việt Nam dựa vào học máy

cĩ giám sát (2022) - TNU

Thu thập và phân loại bình luận 15 mặt

hàng trên 5 website thương mại điện tử khác nhau, áp dụng 4 phương pháp học máy như SVM, Nạve Bayes, Neural Network và Decision Tree, độ chính xác

trung bình cao nhất lên đến 80%

From Aspect-Based Sentiment

Analysis to Social Listening

System for Business Intelligence

(2021) — UIT [6]

Xây dựng bộ dữ liệu các phản hồi tiếngViệt trên smartphone, áp dụng kiến trúc

Bi-LSTM với fastText word embeddings,

kết quả F1-score đối với phân loại cảm xúc

lên 63.03% và nhận diện khía cạnh lên tới

84.48%, hon han giá tri Fl-score khi thực

hiện với các phương pháp như Nạve

CNN, Bayes, SVM, Random Forest,

LSTM

Trang 15

Hate Speech Detection on

Vietnamese Social Media Text

using the Bi-GRU-LSTM-CNN Model (2019) - UIT [5]

Sử dụng học sâu dựa trên

Bi-GRU-LSTM-CNN để phân lớp, giá trị Fl-score thu

được lên tới 70.576%.

2.2 Tình hình nghiên cứu trên thế giới

Bang I - Tình hình nghiên cứu trong nước

1 Big Data-Deep Learning for

financial sentiment analysis [1S]

Bài báo nhân mạnh sử dụng Deep

Learning đê phân tích bình luận tài chính LSTM, Word2vec và CNN là các kỹ thuật

được dùng, bộ dataset trong đề tài là

StockTwits.

A Novel Machine Learning Approach for Sentiment Analysis

on Twitter Incorporating the

Universal Language Model

Fine-Tuning and SVM

Sử dung kết hop SVM va fine-tuning

ULM (gọi là ULMFiT-SVM), trên các bộ

dữ liệu Twitter, IMDB và GOP Debate,

thu được độ chính xác lên tới 99.78%.

Monolith Real Time

Recommendation System with Collisionless Embedding Table.

[7]

Xây dựng giải pháp thực hiện online

training, phục vụ hệ thống hỗ trợ ra quyết

định với thời gian thực

The impact of Big Data Quality

Kiên trúc unsupervised Deep neural

network được phát triển để phân tích bình

Trang 16

luận, và so sánh nó tốt hơn so với SVM

trên cùng bộ dataset

Bảng 2 - Tình hình nghiên cứu thé giới

2.3 Nhận định về các nghiên cứu

Theo góc nhìn chủ quan của tôi sau khi khảo sát qua tình hình nghiên cứu trong

và ngoài nước, các tác giả tập trung phan lớn vào thuật toán và có gắng cai tiễn mô hìnhnhằm làm tăng độ chính xác, hàm lượng học thuật cao, chứ chưa chú trọng nhiều tới khảnăng áp dụng vào thực tiễn, đặc biệt là kha năng triển khai đơn giản, dé mở rộng cũng

như khi vận hành.

Trên thị trường, cũng có nhiều phần mềm nhận diện và phân loại bình luận, nhưngphần lớn phục vụ bộ phận Back-Office của doanh nghiệp hoặc chỉ chạy trong mộtkhoảng thời gian ngắn của sự kiện, và thông tin tôi tìm hiểu cũng chỉ qua người quen,nghe họ đánh giá chứ chưa kiêm nghiệm được những góp ý nay

Trang 17

CHƯƠNG 2: KIÊN THỨC NÈN TÁNG

1 Machine learning

Theo định nghĩa từ IBM, Machine Learning là một nhánh của Artificial Intelligence

(AD) và khoa học máy tính, tập trung vào sử dụng dữ liệu và thuật toán nhằm bắt chướccách con người học, dần dần cải thiện độ chính xác của thuật toán đó

Supervised Learning: là phương pháp huấn luyện dựa trên bộ dữ liệu đã được gannhãn, đặc điểm là mô hình cần dữ liệu đầu vào (input) va đầu ra (output)

e Unsupervised Learning: là phương pháp huấn luyện dựa trên bộ dé liệu không

được gan nhãn, đặc điểm mô hình chỉ quan tâm tới dữ liệu đầu vào (input)

2 Các kỹ thuật phân loại bình luận

Phân loại bình luận hay Sentiment Analysis có 3 hướng dé xử lý: dựa trên Machine

learning, dựa trên Lexicon và hướng lai (hybrid) Trong hướng Machine learning, được

chia ra nhiều nhánh con, bao gồm các kỹ thuật Semi-supervised learning, Unsupervisedlearning và Supervised learning, chỉ tiết hơn là sẽ có các thuật toán như Logistic

Regression, Support Vector Machine, Naive Bayes, CNN, LSTM,

Các thuật toán hiện nay có độ chính xác lên tới trên 90%, thời gian thực hiện cũng

khá nhanh đo độ phức tạp dữ liệu trong phân loại bình luận không cao, và phần cứngmáy tính đã cải tiến rất nhiều so với trước Tuy nhiên, đề áp dụng vào thực tế, cần phải

phân tích nghiệp vụ rất kỹ, thì mới xây đựng bài toán phù hợp được

3 Deep Learning

Deep Learning (DL) là một nhánh con của Machine Learning (ML), sự ra đời của

DL đã thúc day bước tiến lớn trong lĩnh vực trí tuệ nhân tạo (AI)

Ta thử đi tìm hiểu lịch sử hình thành của Deep Learning thông qua quá trình pháttriển được hiền thị bởi hình sau:

Trang 18

[—* Bayesian Networks * — Backpropagation [Dropout Alexnet

Markov Chains Reinforcement Learning, > Image net Classification

+ Turing Test —* Long-Short-term Memory

Hình 4 - Một số giai đoạn phát triển của Deep Learning

(nguồn ảnh: _ https://www

researchgate.net/figure/Timeline-of-deep-learning-adopted-from-20_ fig] 344738477 )

Luge dé cho thấy quá trình hình thành của trí tuệ nhân tạo và ML từ thập niên 50của thé kỷ trước, tuy nhiên các thiết bị phần cứng máy tính, bộ xử lý thời Ay khiến choviệc xử lý tính toán gặp nhiều khó khăn, và sự thiếu hụt của dữ liệu cũng là một trở ngại.Mãi từ những năm cuối cùng của thế ky 20, sự bùng nổ dữ liệu, cải tiễn khoa học phancứng, tiến bộ của ngành sản xuất bán dẫn, chip vi xử lý, các bộ điều khiến CPU va GPU

đã tạo một cú hích lớn, giúp rút ngắn thời gian tính toán và nâng cao hiệu suất tính toánlên hàng nghìn lần, điều này đã tao cơ héi cho ngành phát triển mạnh hơn

Deep learning khi khai thác mạng neural network, là sự mô tả của thần kinh conngười, đã tạo thế mạnh trong các giải pháp trí tuệ nhân tạo (AI) khác nhau như thị giác

máy tính (computer vision), xử lý ngôn ngữ tự nhiên (natural language processing), phân

tích video thông minh (intelligent video analytics) và nhiều mảng khác Sự phát triển của

deep learning không thé thiéu anh hưởng của mạng tích chập convolutional neural

network (CNN) va recurrent neural network (RNN).

Trang 19

Cả machine learning và deep learning đều cải thiện mô hình thông qua dữ liệu,nhưng số lớp dé huấn luyện mô hình của deep learning rất nhiều, chính vì vậy mới có

tên gọi là “deep learning — học sâu”.

CONV LAYER POOLING Re

bộ não con người Trong não người, mỗi nhóm từ 50 đến 100 tế bào thần kinh sẽ chịu

trách nhiệm nhận biết đói tượng, và các nhóm này được sắp xếp theo kiến trúc phân tang

thực hiện chức năng khác nhau Ví dụ nhóm đầu tiên đọc ký tự “A”, nhóm kế tiếp nhậndiện ký tự đó, nhóm tiếp theo sắp xép từ, Tương tự, mô hình deep learning mô phỏngtheo cấu trúc đó, những neurons tương tự như các tế bào Ở giai đoạn huấn luyện(training), các neurons học để nhận diện các đặc trưng dựa trên việc tối ưu các trọng SỐ.Sau quá trình huấn luyện, mô hình đã được xem là tốt nhất, sau đó có thể dùng bộ dữliệu test chưa từng nhận biết để kiểm tra tính hiệu quả của mô hình Lúc này các neurons

chịu trách nhiệm tim ra các pattern trên bộ dữ liệu test Cac pattern được nhận diện bởi

các neurons sẽ được gửi tới các neurons của lớp tiếp theo, cứ như vậy qua nhiều lớp, đề

nhận diện các đặc trưng phức tạp Sau cùng, lớp đầu ra dựa trên xác suất của tat cả các

đặc trưng để quyết định dữ liệu đầu vào là một phần của loại nào đó.

Trang 20

So sánh Deep Learning với một số thuật toán Machine Learning truyền thống như

Support Vector Machine (SVM), Bayesian network, Decision Tree khi thực hiện phân

loại bình luận được thê hiện qua hình sau: [14]

Machine Learning

` Eeature Extraction _Medeling

Deep Learning

Dense Embedding

Hidden Layer

Hình 6 - Ap dung ML/DL vào bài toán phân loại bình luận

Pre-processing

(nguồn ảnh: từ bai báo [16])

4 Natural Language Processing (NLP)

Natural Language Processing (NLP) - tập trung vào sự tương tác giữa máy và ngôn ngữ tự nhiên của con người, đưới dang âm thanh hoặc văn ban NLP được chia làm

2 nhánh lớn, bao gồm xử lý tiếng nói (speech processing) và xử lý văn bản (text

processing) Giữa hai nhánh này cũng có liên quan mật thiết và bé trợ nhau như chuyển

đổi văn bản thành tiếng nói và ngược lại

Xử lý văn bản lại được chia làm 2 nhánh nhỏ hơn, là hiểu văn bản và sinh văn

Trang 21

search engine), hệ thống hỏi đáp (question answering — QA), tóm tắt văn bản tự động

(automatic text summarization - ATS), chatbot, dich máy (machine translation — MT),

kiểm tra lỗi chính ta tự động,

NLP bao gồm 2 thành phần chính: hiểu ngôn ngữ tự nhiên (Natural LanguageUnderstanding — NLU, biến đổi ngôn ngữ đầu vào thành các biéu diễn hữu ích và phân

tích các khía cạnh khác nhau của ngôn ngữ) và tạo ngôn ngữ tự nhiên (Natural Language

Generation — NLG, tao ra các từ va câu với cau trúc ngữ pháp phù hợp, đủ ý nghĩa)

Một số công cụ/thư viện cần thiết trong NLP hiện nay: spaCy, Natural Language

Toolkit (NLTK), Stanford coreNLP, fastText, gensim, underthesear.

5 Big Data

Big data là thuật ngữ chi các tap đữ liệu lớn va phức tạp, rat khó dé xử lý khi sửdụng các công cụ quản lý cơ sở dữ liệu truyền thống Các tap dữ liệu này có thé là có câutrúc, phi cầu trúc hoặc bán cấu trúc Thách thức của tập dữ liệu nảy là lưu vết, giám sát,

lưu trữ, tìm kiếm, chia sẻ, chuyền đổi, phân tích và trừu tượng hóa.

Đặc trưng của big data là volume (khối lượng dir liệu được tạo ra, phụ thuộc vào

loại dir liệu xử lý mà có ngưỡng được gọi lớn tương ứng), variety (đa dang dữ liệu, như

dang bảng, video, voice, image, json, xml, ), velocity (tốc độ dữ liệu được tạo ra),

value (giá trị dữ liệu), veracity (độ tin cậy của dữ liệu).

Sự khác biệt của big data và data warehouse truyền thống là về độ lớn, tốc độ xử

lý, độ chính xác, tuy nhiên việc triển khai big data cần nhiều kỹ thuật hơn và chỉ phínhiều hơn

Big data được ứng dụng trong nhiều lĩnh vực như tài chính, y tế, thương mại điện

tử, digital marketing, bán lẻ, va nhiều lĩnh vực khác nữa Các phần mềm có triển khaibig data đang hiện diện trong cuộc sống hàng ngày của chúng ta, như google search,

facebook, youtube, tiktok, instagram, ebanking, grab, tiki, agoda, airbnb, booking,

Big data sẽ không thé hiện sức mạnh khi dữ liệu này không được phân tích dé trởthành thông tin hữu ích, hỗ trợ quyết định trong doanh nghiệp Big data landscape:

Trang 22

Sousa _ Data Vault Technology Landscape Winter 2016/2019

‘Oeste eco mentee

về big data sẽ hỗ trợ ta rất nhiều trong việc triển khai, ứng dụng các công cụ, phần mềm

vào thực tiễn

6 Distributed Deep Learning (BigDL)

Ngày nay, các bộ dữ liệu ngày càng trở nên lớn hon và phức tạp hơn, vì thé các

hệ thống cơ sở đữ liệu truyền thống không thé nào xử lý được chúng, distributed deeplearning (DDL) chia nhỏ việc tính toán vốn yêu cầu thời gian xử lý và bộ nhớ lưu trữcao, thành các công việc tính toán nhỏ hơn, từ đó có thể gan các việc nhỏ này cho nhiềumáy tinh dé xử lý, đó là ý tưởng khởi điểm của distributed deep learning

Trang 23

Nếu làm được như vậy, sẽ giúp các nhà khoa học dữ liệu gia tăng hiệu năng củasản phẩm bằng cách chia nhỏ công việc và tính toán song song, thực thi trên nhiều thiết

bị khác nhau như máy chủ, bộ xử lý GPU, bộ xử lý TPU.

Từ khi trí tuệ nhân tạo được khởi xướng, các nhà khoa học đã đặt mục tiêu làm

sao cho máy tính có thé suy luận và đưa ra quyết định gần như cách của con người

Machine learning sau khi xuất hiện, đã tập trung vào kỹ thuật và mô hình, làm sao cho

máy có thể học và hoạt động trên các môi trường khác nhau, đưa ra các lựa chọn độc

lập với sự can thiệp của con người.

Traditional deep learning tạo ra nhiều mô hình có kiến trúc phức tạp nhằm bắt

chước bộ não con người học những thông tin mới Distributed deep learning cũng được

thiết kế theo cách này, nhưng cải tiến hơn là làm sao dé có thé mở rộng, nhằm làm việcvới khối lượng dữ liệu lớn, bằng cách cho phép các tiến trình học được phân tán ở

những máy tính khác nhau, và sau cùng kết quả sẽ được tổng hợp lại để đưa ra mô hình

hoàn chỉnh nhất Tới đây, ta đã thấy traditional deep learning thì xử lý tập trung trên

một máy tính, trong khi distributed deep learning xử lý phân tán trên nhiều máy

Distributed deep learning bao gồm một tập hợp các thành phan tính toán hoạtđộng như một tổng thể mạch lạc, theo các bước:

- Replicate: sao chép một mô hình lên nhiều GPU

- Scatter: phân bố dữ liệu đầu vào cho nhiều GPU

- Gather: tập hợp kết qua đầu ra từ tat cả GPU và gửi đến GPU chính

- Parallel run: chạy các mô hình cùng lúc trên các đữ liệu đã được phân bó

Mặc dù có những ưu thế về tính toán đối với đữ liệu lớn với thời gian ngắn,nhưng distributed deep learning cũng tồn tại một số hạn chế về bảo mật khi dữ liệu

phân tán nhiều sẽ khó bảo vệ hơn, và một phần mềm phân tán sẽ khó phát triển hơn

phần mềm thông thường, chỉ phi vi thé sẽ tăng lên Tuy nhiên, các nhà phát triển dang

cố gắng tìm giải pháp dé xử lý van dé này trong tương lai gần

Trang 24

Tại giai đoạn huấn luyện mô hình cho distributed deep learning, công việc đượcchia sẻ cho các máy đê huấn luyện, tại đây phân chia thành 2 loại là data parallelism và

model parallelism.

So với traditional deep learning thi distributed deep learning đã giải quyết đượcvấn dé mở rộng hệ thống khi gặp bộ dit liệu lớn đến cực lớn, tốc độ huấn luyện mô

hình sẽ nhanh hơn, độ chính xác cao hơn, nhưng ngược lại độ phức tạp của phần mềm

va chi phi distributed deep learning sẽ cao hơn.

BigDL là một thư viện distributed deep learning cua Apache Spark, ta có thé

viết các ứng dụng deep learning theo chuẩn của Spark dé chạy trực tiếp ở tang trên của

các cluster Spark hay Hadoop BigDL hỗ trợ da dạng deep learning, hiệu năng cực kỳ

cao do ding Intel MKL và lập trình multi-threaded cho mỗi Spark task, hiệu quả mởTộng tốt.

BigDL giúp các nhà khoa học dữ liệu và kỹ sư đữ liệu dễ dàng xây dựng phầnmềm AI phân tán BigDL cung cấp các tính năng sau:

- Dllib: một thư viện distributed deep learning của Apache Spark.

- Orca: là mở rộng cua TensorFlow va PyTorch pipeline cho distributed big

data.

- Friesian: một framework về xây dựng ứng dụng dau cuối rat lớn

- Chronos: có khả năng phân tích theo chuỗi thời gian (time-series) dùng

AutoML.

- PPML: bảo vệ sự riêng tư các phân tích big data va machine learning.

Ta sẽ dùng BigDL vào phần mềm deep learning nếu muốn phân tích lượng lớn

dé liệu giống Big data (Hadoop/Spark) cluster, hoặc muốn đưa vào tinh năng deep

learning cho Big data hoặc workflow, hoặc muốn tận dung các Hadoop/Spark cluster

dé chạy các phần mềm deep learning dé chia sé workload

Tai website của project (https://bigdl-project.github.io/0.4.0/# ), đã cung cấp kháday đủ tài liệu về cách cài đặt trên các môi trường, cũng như các ví dụ chỉ tiết để lậptrình viên có thê triển khai thuận lợi

Trang 25

7 Sentiment Analysis

Sentiment Analysis — phân tích cam xúc, là kỹ thuật thu nhận thông tin về đối tượng

và tìm ra chủ dé một cách tự động Mục tiêu là nhận ra các cảm xúc của người dùng

thuộc dạng tích cực, tiêu cực hoặc trung tính Về phương diện phân loại cảm xúc, có thể

chia thành 3 mức độ: mức đặc trưng, mức cụm từ hoặc mức văn bản Hiện tại cũng có 3

giải pháp cho bài toán phân tích cảm xúc: (1) lexicon-based strategies (chiến lược dựa

trên từ), (2) machine-learning-based techniques (dựa trên kỹ thuật machine learning), và

(3) hybrid (kết hợp lexicon và machine-learning) [14]

leaming Linear Classifier

Neural network Rule-based Classifier| Bayes

‘Supervised leaning

Probabiltic Classifier wutBayesian network

Dictionary-based Maximum entropy

> Lexicon-based

ee

Hình 8 - Bài toán phân loại bình luận

(nguồn ảnh: vẽ lại theo bài báo ở [15])

8 Các chỉ số đánh giá thuật toán

Hiệu suất của mô hình được đo lường thông qua các chỉ số Precision, Recall,

F-score, TP, TN, EP, EN.

Trang 26

Precision: độ chính xác, là tỷ lệ của true positive so với các điểm được phân

loại là positive Precision cao có nghĩa là độ chính xác của điểm tìm được cao

Recall: độ phủ, là tỷ lệ của true positive so với những điểm thực sự là positive.Recall cao có nghĩa là tỷ lệ bỏ sót các điểm thực sự positive thấp

TP - true positive: số lượng điểm của lớp positive được phân loại đúng là

Trang 27

EN — false negative: số lượng điểm là positive được phân loại thành lớp

negative.

Accuracy: là tỷ lệ giữa số điểm được phân loại đúng trên tổng số điểm

Accuracy chỉ phù hợp khi kích thước các lớp dir liệu tương đồng, còn trường hợp

mắt cân bằng dữ liệu thì ty lệ này không mang nhiều ý nghĩa

Confusion matrix: là ma trận phân bố các lớp, mang nhiều thông tin hơn và

9 Các bước xây dựng bộ dữ liệu

Các bài toán áp dụng kỹ thuật machine learning, deep learning thì sự đóng góp của

dữ liệu là vô cùng lớn, quyết định đến hiệu quả của mô hình và kết quả dự đoán Tuynhiên, để có thé được bộ dữ liệu hữu dung cần phải tốn rat nhiều công sức Nếu một bàitoán được xây dung từ đầu, mà trước đó không hề có bộ dữ liệu chuẩn, thì việc xây dựng

bộ dữ liệu này tốn đến 80% nguồn lực của toàn bài toán Nhìn chung, việc xây dựng bộ

đữ liệu thường trải qua các bước sau:

- Thu thập dữ liệu.

- Lam sạch dữ liệu.

- Chuyên đổi dữ liệu

- Tach dữ liệu.

Trang 28

9.1 Thu thập dữ liệu

Dữ liệu được sử dụng trong machine learning bao gồm: dé liệu có cấu trúc (dạngbang tính, như SQL table), di liệu phi cấu trúc (hình ảnh, video, âm thanh), dữ liệu báncấu trúc (dang JSON, XML) Khi thu thập dé liệu, cần lưu ý tới khối lượng và chất lượngcủa dữ liệu Nếu biết được điều gi tạo nên đữ liệu tốt, ta sẽ biết cách thu thập nó ở đâu

Ta có thé thu thập đữ liệu từ tổ chức, cơ quan làm việc (di nhiên phải được sự đồng

ý của cấp trên nếu dữ liệu đó quan trọng và ảnh hưởng tới tổ chức Hoặc có thé thu thập

từ bên ngoài, trên các phương tiện công khai như google, kaggle, công thông tin, kho dữliệu được cộng đồng khoa học chia sẻ

Một cách khá phổ biến là có thé thu thập thông qua website bằng công cụ tự động,trong dé tài này ta cũng sứ dụng cách thu thập này Ngoài ra ta cũng có thé thu thập thông

qua khảo sát.

Trong một số trường hợp, dữ liệu thu thập quá ít, ta phải tạo thêm dữ liệu thông

qua các kỹ thuật data augementation.

9.2 Làm sạch dữ liệu

Bước tiếp theo là phải làm sạch dữ liệu, tìm và sửa lỗi, loại bỏ dit liệu không nhất

quán và thêm các giá trị bị thiếu

Đối với trường hợp dữ liệu bị thiếu, có thé bổ sung bằng cách nội suy các giá trị

lân cận, hoặc xóa hắn mẫu đó đi

Đối với những trường hợp mẫu cá biệt, gây ảnh hưởng tới quá trình train model, ta

có thể xử lý bằng cách coi nó là trường hợp riêng biệt và quan trọng (y khoa hay ápdụng), hoặc loại bỏ hoặc biến đổi để giảm tác động của chúng

Trong một số bài toán, cần loại bỏ dữ liệu trùng lặp để mức độ hội tụ nhanh hơn,nhưng một số trường hợp, dữ liệu trùng lặp lại có giá tốt của nó

Một số dit liệu không liên quan có thể được xóa đi để giảm ảnh hưởng của nó vào

mô hình, giảm nhiễu và tăng độ chính xác của mô hình

Trang 29

Với những tập dữ liệu mat cân bằng (nhóm nhỏ lại chứa thông tin quan trọng), cóthé lấy mẫu dưới mức của lớp lớn dé cân bằng lại phân bố.

9.3 Chuyển đổi dữ liệu

Ở bước này, ta sẽ chuyên đổi dữ liệu thô sang dữ liệu phù hợp với thuật toánmachine learning Data scaling là kỹ thuật cân bằng lại giữa các đặc trưng (feature), làmthay đổi phạm vi của dữ liệu Data normalization (chuẩn hóa đữ liệu) là kỹ thuật giúp

thay đổi lại phân phối của dữ liệu theo dạng phân bố Gauss

Mã hóa dữ liệu giúp thành định dạng số dé làm đầu vào cho thuật toán Một số bài

toán buộc phải phân cụm dir liệu (rời rac hóa) trước khi đưa vào train Giảm kích thước

tập đữ liệu bằng cách loại bớt những đặc trưng ít đóng góp vào quá trình train, một trongcác kỹ thuật đó là phân tích thành phần chính (PCA)

9.4 Tách dữ liệu

Sau khi dữ liệu được làm sạch và chuyển đổi, cần phải chia tách thành các tập nhỏhơn để sử dụng cho bài toán machine learning Theo lý thuyết, cần phải chia thành tập

train, tập validation và tập test, ty lệ thường là 70-20-10, hoặc tỷ lệ phù hợp vào bai toán.

Kỹ thuật tách đữ liệu phô biến: lấy mẫu ngẫu nhiên, lấy mẫu dựa trên thời gian, lấy

mẫu xác thực chéo

Trang 30

CHƯƠNG 3: THU THẬP VÀ XÂY DỰNG BỘ DỮ LIỆU

1 Thu thập dữ liệu cho mô hình

1.1 Thu thập dữ liệu

Dữ liệu sử dụng trong đề tài này được thu thập trực tiếp từ website thương mại điện

tử tiki, mục sản phẩm sách kinh tế tiếng Việt Cách thức thu thập này còn được gọi làweb scraping/crawling, nó trích xuất và xử lý lượng lướng dữ liệu từ website cần thuthập Ta sử dụng ngôn ngữ python dé lập trình thu thập, dựa trên một số framework như

beautiful soup, selenium hay scrapy.

Beautiful Soup là một framework python, nó parse HTML và XML file dé tríchxuất dữ liệu Khi hoạt động, nó gửi các yêu cầu tới địa chỉ trang, và nhận các phản hồi,sau đó mới trích xuất nội dung HTML và đưa vào Beautiful Soup project để thực hiệnparse Hạn chế của Beautiful Soup tại thời điểm thực hiện đề tài, có hạn chế là chỉ crawlđược dữ liệu nh mà không thao tác được trên trang đó, ví dụ muốn qua trang kế tiếp thì

không thực hiện được.

Selenium framework được dùng để scape website, nó tải nội dung một cách tự

động, có thê đăng nhập vào hệ thống, thao tác giống như con người tương tác nên còn

được dùng cho việc automation testing Trong đề tài này, ta cũng sé ding selenium dé

thu thập dữ liệu.

Hướng dẫn thu thập dữ liệu bằng Selenium:

Đầu tiên ta phải tải về driver của trình duyệt mà ta sử dụng dé truy cập vào web

tiki, ví dụ chrome thì có chromedriver, firefox có geckodriver, microsoft edge có

edgedriver, dùng cái nào cũng cho kết quả tương tự

Trang 31

Name Date modified Type Size

Š chromedriver 10/1/2023 1:40 PM File folder

a edgedriver win64 10/1/2023 1:40 PM File folder

a geckodriver 10/1/2023 1:40 PM File folder

Hình 11 - Các driver tương tác với trình duyệt dé ldy dữ liệu

Sau đó ta vào website tiki, chọn mục sản phẩm cần tìm, ở đây tôi chọn sách kinh

tế, sẽ được hiển thị các thông tin như hình bên dưới:

Danh Mục Sản Phẩm Sách kinh tế

Giảm đến 50% - Quà tặng Sổ KHO SÁCH PDCA

Tảiuợ bởi 1980 BOOKS HOM 5/54 Tài bởi KHO SÁCH PDCA SIS %

vì nó đơn giản, hợp phong cách phát triển sản phẩm của phần lớn các doanh nghiệp

Lây API:

Vi dụ mình chọn cuốn sách Nghệ thuật Tu duy Chiến lược, sách này cũng có một

số bình luận về sản phẩm, nhấn F12 hoặc click chuột phải lên page và chon Inspect, sau

đó chọn thẻ Network, và các thông tin khác như trong hình.

Trang 32

Đây chính là API trả về thông tin sản phẩm, và chỉ tập trung vào một số tham số

ma ta quan tâm, như include = comments (bao gồm nội dung đánh giá), page = (trang),

top = false (Không muôn lây top, vì muôn trộn các đánh giá lại)

https: //tiki.vn/api/v2/reviews ?product_id=<product_id>&include=comments&page=<page_num

>&top=false

Tiếp theo cần lây danh sách ID của san phẩm, nhưng tim không ra API này (có thétôi không biết do không có quen với ai bên Tiki), vì vậy tôi dùng Selenium dé crawl vàBeautiful Soup dé parse từng trang nhằm lây ID sản phâm (nếu có API lấy danh sách IDthì việc này sẽ đơn giản hơn) Đầu tiên ta trở về trang danh sách sản phẩm, mục sáchkinh tế, dùng công cụ Inspect (F12), chọn thẻ Elements, chọn vào sản phẩm, tìm bên

công cụ, ở đây có thuộc tính data-view-content chứa các thông tin của sản phẩm, là cái

ta cân tìm.

Trang 33

€ 3 Ơ cá tên eehiinhde/cBAS OP s0@:

‘en tl nin tin PSS THUNG nna rmar SEURVEEIEEE STR LG name Console Sources Network >> © OMS AT wa BEX

Sen li chin, ăn tê “YEU Thy Cotaier-scttdeg-e tt sstyle_Productinkes-7ad6q pryvlewstyle_contenturap-se-bhstkd-© gougt"> 1

BS \e2liwekZ productitem 205 55Ẽ [ st ar tet tsp CS 6

© Giao đến: 1,P.Bến Na.

ben

ete ‘cab data-view-L4-"product_ISet_containar” data-vieu-content="(AquotscL

sew cise Stu Tức 2H

Thưởng Thêm Asva

eee eth sao ovine TEE ‘ attire HhzoayialCs®yfX-]VECCocafiadaoatceatdavs

“5aahiusf20s98:yaeocLECEiee-l” rel "mefelfa" data-clsch rt Kế ToinviaHe-Thwe Hành — — K fais-"/ tha, tiki on/piel pixel ata esogjkeftmeporrvszc Fe

Báo Cáo TH Chan Căn Bán Từ - bexnuarer lgelgtwgrcac}sOoydeseaetkUlnh QUlu0ersuiue

ou (by Bến Nước Chính F

H pecs sect

ui 100.000 169.0004 -15x 1

-4 WWappecsc1dB00.0BEA9/ dụ dv dl seye Productink se TedGaw 2 wskZ produc tem

Styles Computed Layout Event tens DOM Eesipints Properties Acebilty

m or ce 4, @

100.000 3 160000

Hình 14 - Cách lấy ID sản phẩm

Ta tiến hành lập trình để lấy đanh sách ID:

Khai báo các thư viện cần thiết

from selenium.webdriver import Edge

from selenium.webdriver.edge.service import Service

from selenium.webdriver.edge.options import Options

from bs4 import BeautifulSoup

Trang 34

# Thời gian nghri 9.5 giây sleep_time = 0.5

# thiết lập web driver edge = Edge(service=Service(”D:/LAP-2-

GDRIVE/COLAB/UIT/THESIS/@.Driver/edgedriver_win32/msedgedriver.exe"))

mhumu

6.

7 # khai báo biến

8 base url = "https://tiki.vn/sach-kinh-te/c846"

9 num pages = 2

19 max num_rv =

11 book_ids = []

30

13 # Thu thập dữ liệu mỗi trang

14 for page in range(num_pages):

15 # tới trang tiếp theo.

16 url = base_url + "?sort=top_seller&page=" + str(page + 1)

Trang 35

Vi dụ bây giờ ta lây đánh giá của sản phẩm có product_id=12138656 va page=.

Lưu ý là Tiki có enable CORS, nên khi gửi request lưu ý điều này Đầu tiên ta vào công

cụ gửi API request online (https://extendsclass.com/rest-client-online.html, https://www.site24x7.com/tools/restapi-tester.html), đán đoạn mã sau vào 6 URL, https://tiki.vn/api/v2/reviews?product_id=12138656&include=comments&page=l &top

=false , ta được kết quả như sau:

Trang 36

© > © â emtendsclasscom/restcient-online html

© Send REST API Request

from your Browser: ït allows

to test local REST API You

trust allow CORS In your REST Method | GET | un hetps:/tiki.vrvapitv2ireviews?product_d=121386568inc! | so |

con) Authentication Headers Body

'® Send REST API Request Response

at ple RES APY _vouraquetae ben ent exces (20)

[Sometimes our server is

ManageEngine` rol f aul E

- oducts PlansandPricing Features Resources Froeloos Support Erteprse Q togin FE

Site24x7

Method Rest APIEndpoint User-Agent ©

cet Phupsyrutvnfapin2ireviews?product Mozilla Firefox (Windows) +

Test Locations ‘Custom Headers © Content Check ©

Fremont-CA-US + Ove @No Ove No

Availability Status Pass Validation Status © N/A

101ms 2ms 18ms 1,325 ms 1,326 ms 1,447 ms

DNS Time Connection Time — SSLHandshakeTime © FirstByte Time LastByte Time Response Time

Hình 16 - Lay kết quả bình luận một sản phẩm từ công cụ khác dé so sánh

Copy response body qua dan vào công cụ Parse JSON online

(https://jsoneditoronline.org/, https://jsonformatter.org/json-editor ) để xem kết quả

tường minh hơn.

Trang 37

“title":"c\uiefic k\u98ec h\ueeeed

JSON PARSER XMLFORMATTER JSBEAUTIFIER SAVE RECENTLINKS LOGI

object» data »

> stars (5)

rating average © 4.7 reviaws_count * 347

Để ý rằng response sẽ gồm có 10 đánh giá nằm ở thuộc tinh data, trong mỗi đánh

giá, ở đê tài này ta chỉ quan tâm tới content và rating mà thôi.

JSON BEAUTIFIER JSON PARSER XMLFORMATTER JSBEAUTIFIER RECENT LINKS LOGIN

Hình 18 - Kết quả JSON, tập trung yếu tố can quan tâm là content và rating

Dé giới hạn lại số lượng đánh giá, mỗi sản phẩm ta chi lay 10 trang đánh giá, lưu ý

rằng không phải đánh giá nào cũng có content Thực thi đoạn mã sau dé lấy tối da 10

trang đánh giá cho 50 sản phẩm:

1 # Thiết lập cache & requests

Trang 38

25 raw_data = json.1oads(r.content)[ ' data ']

26 for rv in rau data:

27 contents append(rv[ "content" ])

28 ratings append(rv[ ' rating ])

Khi thực thi nó sẽ tạo ra file http_cache.sqlite, đây là file chứa data của dit liệu trả

về, sau đó dữ liệu sẽ được đây vào file data.csv, tùy vào lượng dữ liệu nhiều hay ít mà

thời gian thực hiện sẽ lâu hay mau.

Name: count, dtype: int64

Nhìn vào đây, ta thấy có hiện tượng mắt cân bằng dé liệu (unbalanced) khi rating

5 sao quá nhiều so với những mục khác, điều này sẽ ảnh hưởng tới mô hình

Trang 39

Cài đặt các thư viện cần thiết cho tiền xử lý dữ liệu:

import numpy as np import pandas as pd from pyvi import ViTokenizer from sklearn.model selection import train_test_split from sklearn.feature extraction.text import TfidfVectorizer from s import classification_report

DAuUAWNE

Dua dữ liệu vào data frame.

[19]: # Read the raw data from prepared csv file

raw_df = pd.read_csv("data.csv')

raw_df.head()

[19]: content rating

0 Sách đẹp, giao nhanh 5

1 Giao hàng nhanh, đóng gói cẩn thận 5

2 Đặt 2 cuốn mà shop giao có 1 cuốn 1

3 Sách đẹp in rõ nét, tuy ship lâu do lễ shop kh 5

4 Giao nhanh, đóng gói cẩn thận, sách đẹp 5

Mục tiêu của dé tài là đánh giá xem bình luận là tích cực (positive - P) hay tiêu

cực (negative — N), nên có thé quy về bài toán Binary Classification, và giả định tích cực

là (1) với những rating từ 4 sao trở lên, và tiêu cực là (0) với những rating còn lại.

Với cùng 1 nhóm rating, ta ưu tiên lấy những đánh giá có nội dung dai vì cho rằng

người bình luận sẽ dành thời gian suy nghĩ cho bình luận nhiều hơn, đánh giá sẽ mang

nhiều giá trị hơn:

25 rau_df[ ' len ] = raw_df.content.apply(lambda x: len(x))

3 raw_df.sort_values(by=[‘len’], ascending=False, ignore_index=True, inplace=Tru

e)

Lấy các đánh giá tiêu cực:

1 # Giá trị nhỏ hơn 4 là tiêu cực (rating < 4)

2 neg_df = rau df[raw df.rating < 4].copy()

3 neg df.reset index(inplace=True, drop=True)

4 neg df['label'] = @

5 neg đf.drop(labels=['rating', 'len'], axis=1, inplace=True)

6 neg_df

Trang 40

content label

0 Cảm nhận chung, sách đưa ra nhiều thông tin dã 0

1 Cảm ơn công sức tác giả đã viết sách.\nTuy nhỉ 0

2 'Đảnh giá tốt cho nha ban.\rinBong gói cần thận 0

3 CUON SÁCH CAN ĐƯỢC TOI UU VỀ GIÁ.\nMinh đã tun 0

4 Tiki Trading và NHỮNG TRẢI NGHIỆM MUA HÀNG TÒI 0

920 Bau lòng quá tiki ơi © @ @ 0

921 chưa đọc mà thấy ban rồi 0

922 Chat lượng giấy chan qua 0

923 Sách viết lan man 0

924 Giáđất — 0

1925 rows x 2 columns

Lấy các đánh giá tích cực:

1 # Giá trị từ 4 trở lên được xem là tích cực (rating >= 4)

2 pos_df = raw df[raw df.rating >= 4].copy()

3 pos_df.reset index(inplace=True, drop=True)

0 Minh sẽ review cả bộ sách ở đây luôn nhé Rất 1

1 ‘Dung làm việc chăm chỉ, hãy làm việc thông min 1

2 Chính Burton G Malkiel đã viết: đây không pha 1

3 QUA SUNG SOT KHI ĐỌC CUÔN SÁCH NAY\rinThéng tí 1

4+ KHỞI NGHIỆP KINH DOANH CÀ PHÊ ~ HOÀNG TIẾN + \r 1

Gộp 2 bộ data tích cực và tiêu cực lại, đồng thời trộn (shuffle) dé đữ liệu phân bố

ngẫu nhiên trong bộ data mới

Ngày đăng: 08/11/2024, 17:14

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN