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

Báo cáo machine learning phân loại chất lượng sản phẩm dựa trền phản hồi của người dùng

29 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phân Loại Chất Lượng Sản Phẩm Dựa Trên Phản Hồi Của Người Dùng
Tác giả Nguyễn Quang Duy
Người hướng dẫn TS. Vũ Quang Huy
Trường học Trường Đại Học Sư Phạm Kỹ Thuật TP.HCM
Chuyên ngành Đào Tạo Chất Lượng Cao
Thể loại Báo Cáo Cuối Kỳ
Năm xuất bản 2023
Thành phố TP.HCM
Định dạng
Số trang 29
Dung lượng 2,88 MB

Nội dung

Chương IGiới thiệu tổng quan1.1Giới thiệu về đề tàiĐề tài "Phân Loại Chất Lượng Sản Phẩm Dựa Vào Phản Hồi Của Người Sử Dụng" tập trung vào việc áp dụng các thuật toán máy học và khai thá

Trang 2

MỤC LỤC

Chương I Giới thiệu tổng quan 3

1.1 Giới thiệu về đề tài 4

1.2 Mục tiêu và tầm quan trọng của công việc phân loại chất lượng sản phẩm dựa trên sự phản hồi của người dùng 4

1.3 Các nội dung dự kiến thực hiện 4

Chương II Cơ sở lý thuyết 4

2.1 Giới thiệu về thuật toán 4

2.2 Ưu nhược điểm của thuật toán 5

2.3 Ứng dụng trong thực tế của các thuật toán 6

2.4 Hình ảnh, biểu tượng, đồ thị, bảng của các thuật toán 6

Chương III Dữ liệu huấn luyện 8

a) Mô tả dữ liệu 8

b) Định nghĩa nhãn dữ liệu 8

c) Định nghĩa chi tiết 8

d) Phân tích dữ liệu 10

Chương IV Lưu đồ thuật toán để huấn luyện mô hình 11

Chương V Code chương trình huấn luyện 13

Chương VI Phân tích đánh giá kết quả mô hình đạt được 26

a) Model SVC 26

b) Model Multinamial NB 26

c) Model Logistic Regression 27

Chương VII : Kết luận 27

a) Những điểm đạt được 28

b) Những điểm hạn chế 28

c) Hướng phát triển 28

Trang 3

DANH MỤC HÌNH

Hình II.-1: Kết quả của ví dụ về model Logistic Regression 8

Hình III.-2: Data của mô hình được gán nhãn 10

Hình III.-3: Số điểm dữ liệu của mỗi nhãn 11

Hình IV.-4: Lưu đồ thuật toán 12

Hình VI.-5: Kết quả của model SVC 26

Hình VI.-6: Kết quả của model MNB 27

Hình VI -7: Kết quả của model Logistic Regression .Error! Bookmark not defined. DANH MỤC BẢNG Bảng II.-1: Phân phối xác xuất qua từ điển bằng MNB 7

Bảng II.-2: Ví dụ về Logistic Regression 7

DANH MỤC CHỮ VIẾT TẮT

Trang 4

Chương I Giới thiệu tổng quan

1.1 Giới thiệu về đề tài

Đề tài "Phân Loại Chất Lượng Sản Phẩm Dựa Vào Phản Hồi Của Người Sử Dụng" tập trung vào việc áp dụng các thuật toán máy học và khai thác dữ liệu để phân loại chất lượng sản phẩm dựa trên phản hồi của người dùng Trong thời đại số hóa hiện nay, người dùng có khả năng tương tác và chia sẻ phản hồi của mình về sản phẩm trực tuyến thông qua đánh giá, bình luận, xếp hạng và các hình thức phản hồi khác Việc sử dụng thông tin phản hồi này có thể cung cấp cho người tiêu dùng thông tin đáng tin cậy và hữu ích để lựa chọn sản phẩm chất lượng và đáp ứng nhu cầu của họ

1.2 Mục tiêu và tầm quan trọng của công việc phân loại chất lượng sản phẩm dựa trên sự phản hồi của người dùng

Mục tiêu chính của đề tài này là phát triển một mô hình phân loại chất lượng sản phẩm dựa trên

sự phản hồi của người dùng Điều này giúp cung cấp cho người tiêu dùng một công cụ hữu ích

để đánh giá chất lượng sản phẩm một cách nhanh chóng và dễ dàng Thông qua việc phân loại,người dùng có thể nhận biết sản phẩm tốt nhất và tránh những sản phẩm có chất lượng kém

1.3 Các nội dung dự kiến thực hiện

Việc phân loại chất lượng sản phẩm dựa trên phản hồi của người dùng cũng có tầm quan trọng

về mặt kinh tế và xã hội Đối với doanh nghiệp, việc hiểu được ý kiến và phản hồi của ngườidùng giúp cải thiện chất lượng sản phẩm, tăng độ tin cậy và niềm tin từ khách hàng Đồng thời,người dùng cũng được hưởng lợi từ việc có thông tin chính xác và phản hồi từ cộng đồng, giúp

họ đưa ra quyết định mua hàng thông minh và tối ưu hóa trải nghiệm mua sắm của mình.Tóm lại, việc phân loại chất lượng sản phẩm dựa trên phản hồi của người dùng đóng vai tròquan trọng trong việc cung cấp thông tin đáng tin cậy cho người tiêu dùng và hỗ trợ doanhnghiệp cải thiện chất lượng sản phẩm Đề tài này tập trung vào nghiên cứu và phát triển mô hình

để thực hiện nhiệm vụ này, đóng góp vào sự phát triển của lĩnh vực phân tích loại chất lượngsản phẩm dựa trên phản hồi của người dùng

Chương II Cơ sở lý thuyết

2.1 Giới thiệu về thuật toán

a) Support Vector Classifier (SVC)

SVC là một thuật toán phân loại dựa trên ý tưởng tạo ra một siêu mặt phân chia tuyến tính (hoặcphi tuyến) tốt nhất giữa các điểm dữ liệu thuộc vào các nhóm khác nhau

b) Multinomial Naive Bayes (MNB)

Trang 5

MNB là một thuật toán phân loại dựa trên giả định naive Bayes và phân phối xác suất đa thức

Nó được sử dụng phổ biến trong các bài toán phân loại văn bản

c) Logistic Regression

Logistic Regression là một thuật toán phân loại dựa trên hàm sigmoid để dự đoán xác suất thuộcvào một lớp cụ thể

2.2 Ưu nhược điểm của thuật toán

a) Support Vector Classifier (SVC)

Ưu điểm

Hiệu suất tốt trong các tập dữ liệu có số lượng đặc trưng lớn

Được chứng minh lý thuyết mạnh mẽ và có tính toán hiệu quả

Có khả năng xử lý tốt với các tập dữ liệu có số lượng mẫu nhỏ

Nhược điểm

Đòi hỏi tập dữ liệu huấn luyện phải được tiêu chuẩn hóa hoặc chuẩn hóa trước khi áp dụng.Nhạy cảm với nhiễu và các giá trị ngoại lai trong dữ liệu

Thời gian huấn luyện và dự đoán có thể tăng lên đáng kể với các tập dữ liệu lớn

b) Multinomial Naive Bayes (MNB)

Ưu điểm

Huấn luyện và dự đoán nhanh chóng vì tính đơn giản của giả định naive Bayes

Hiệu suất tốt trong các bài toán phân loại văn bản và các tác vụ liên quan đến đếm từ.Tích hợp tốt với các công cụ xử lý ngôn ngữ tự nhiên (NLP)

Đơn giản và dễ hiểu

Hiệu suất tốt trong các bài toán phân loại nhị phân

Cung cấp xác suất dự đoán và giúp thực hiện giải thích mô hình

Nhược điểm

Dễ bị ảnh hưởng bởi các giá trị ngoại lai

Khả năng phân loại đa lớp hạn chế, thường cần sử dụng kỹ thuật one-vs-rest hoặc softmax để

mở rộng cho các bài toán phân loại nhiều lớp

Trang 6

Yêu cầu các biến đầu vào phải được chuẩn hóa hoặc tiêu chuẩn hóa để tránh ảnh hưởng bởi

5 sao) dựa trên các đặc trưng của phản hồi của người dùng

Hệ thống gợi ý sản phẩm: SVC có thể được sử dụng để gợi ý sản phẩm tương tự dựa trên sựtương đồng của các đặc trưng hoặc các đánh giá của người dùng

b) Ứng dụng của MNB

Phân loại văn bản: MNB là một thuật toán phổ biến được sử dụng trong bài toán phân loại vănbản, ví dụ như phân loại email là spam hay không spam Nó có thể dựa trên các đặc trưng từvăn bản như từ xuất hiện và tần suất xuất hiện để phân loại văn bản vào các nhãn khác nhau.Tách từ và xử lý ngôn ngữ tự nhiên: MNB cũng được sử dụng trong các tác vụ xử lý ngôn ngữ

tự nhiên như tách từ, phân loại từ loại, và phân tích ý kiến

c) Ứng dụng của Logistic Regression

Dự đoán khách hàng chuyển đổi: Logistic Regression có thể được sử dụng để dự đoán xác suấtkhách hàng chuyển đổi từ dạng miễn phí sang trả phí, dựa trên các đặc trưng của khách hàngnhư tuổi, giới tính, hoạt động trên ứng dụng, và thời gian sử dụng

Hệ thống xác định gian lận: Logistic Regression có thể được áp dụng để phát hiện và phân loạicác hành vi gian lận trong các giao dịch tài chính hoặc các hệ thống an ninh mạng

2.4 Hình ảnh, biểu tượng, đồ thị, bảng của các thuật toán

a) Multinomial Naive Bayes

Trang 7

b) Logistic Regression

Ví dụ: Một nhóm 20 sinh viên dành thời gian trong khoảng từ 0 đến 6 giờ cho việc ôn thi Thờigian ôn thi này ảnh hưởng đến xác suất sinh viên vượt qua kỳ thi như thế nào?

Kết quả thu được

Bảng II.-2: Ví dụ về Logistic Regression

Mặc dù có một chút bất công khi học 3.5 giờ thì trượt, còn học 1.75 giờ thì lại đỗ, nhìn chung,học càng nhiều thì khả năng đỗ càng cao PLA không thể áp dụng được cho bài toán này vìkhông thể nói một người học bao nhiêu giờ thì 100% trượt hay đỗ, và thực tế là dữ liệu nàycũng không linearly separable (điệu kiện để PLA có thể làm việc) Chú ý rằng các điểm màu

đỏ và xanh được vẽ ở hai tung độ khác nhau để tiện cho việc minh họa Các điểm này được vẽdùng cả dữ liệu đầu vào x và đầu ra (y) Khi ta nói linearly seperable là khi ta chỉ dùng dữ liệuđầu vào x

Chúng ta biểu diễn các điểm này trên đồ thị để thấy rõ hơn:

Trang 8

Chương III Dữ liệu huấn luyện

a) Mô tả dữ liệu

Bộ dữ liệu của chúng tôi bao gồm 1999 điểm dữ liệu được thu thập trên trang bán hàng trực tuyến Thế giới di động và Điện máy xanh Do đó, đối tượng người dùng đa dạng về độ tuổi, giớitính, quê quán Vì thế, bộ dữ liệu đảm bảo được tính khách quan và chân thực với đời sống hàngngày

Những phản hồi này bao gồm các trải nghiệm những lời khen, chê, đánh giá ưu nhược điểm và những câu hỏi thắc của người dùng

Ví dụ: “Cam chụp đẹp, mọi tác vụ rất mượt Nhưng pin chỉ Được lúc đầu sau 2 tháng pin kém dãman” hay “cho e hỏi e dùng con c340 này , chỉ mở 2 file word lên và dùng chưa đến 10 tab chrome mà CPU của máy đã nhảy không ổn định như trong hình thì có sao không ạ , phần tản nhiệt của máy nóng lắm ạ”

b) Định nghĩa nhãn dữ liệu

Bài toán tập trung vào việc phân loại phản hồi tích cực, tiêu cực hay trung tính

Mức độ tiêu cực của bình luận:

[1] Tích cực

[0] Trung tính

[-1] Tiêu cực

c) Định nghĩa chi tiết

Phản hồi tích cực là những bình luận mang tính chất đánh giá sản phẩm sử dụng tốt hoặc những trải nghiệm của cá nhân xoay quanh vấn đề về sản phẩm có chất lượng tốt

Ví dụ:

Trang 9

Sản phẩm rất tốt chất lượng Nhân viên lịch sự nhiệt tình và dễ thương.

Mua được 3 ngày máy đẹp di chuyển thường xuyên khá là lý tưởng

Phản hồi tiêu cực là những bình luận mang tính chê bai, nói lên những nhược điểm và điều khách hàng chưa hài lòng đối với sản phẩm

Ví dụ:

-Sp khong phù hợp cho đồ họa kỹ thuật với 29 triệu mua mấy con gaming hoặc workstation ví

dụ như p51 full option hoac dell 7520 vs ligion Y540 sử dung toàn i7 9750h vga 1650 vs 1660ram 16gb ssd nvme

Phản hồi trung tính là những bình luận không chứa nội dung đánh giá sản phẩm mà chỉ bìnhluận các nội dung mang tính chất hỏi đáp, thăm dò ý kiến, góp ý; những nội dung khác khôngliên quan tới chất lượng sản phẩm

• Thu thập dữ liệu dựa trên đặc tính chung của 1 website, các class chứa các element Vì vậy quátrình crawl diễn ra như sau:

- Xác định class chứa comment

- Dùng đoạn code Javascript sau (sử dụng cửa sổ Inspect Element) để crawl

let listItem = '';

for(item of document.getElementsByClassName("<class name>")){

listItem = listItem + item.innerText + '\n';

}

• Xây dựng quy định chung và viết tài liệu hướng dẫn gán nhãn

• Khi đã có đủ 2 thành phần: bộ dữ liệu và quy tắc gán nhãn thì thực hiện gán nhãn bằng tay để

có bộ dữ liệu đúng đắn nhất

• Chúng tôi đánh giá chéo kết quả gán nhãn lẫn nhau Nếu phát hiện điểm dữ liệu đã gán nhãnkhông hợp lý thì quay lại chỉnh sửa tài liệu hướng dẫn gán nhãn và gán lại nhãn cho điểm dữ liệuấy

Trang 10

• Kiểm tra chất lượng gán nhãn định kỳ hàng tuần, tìm hiểu nguyên nhân dẫn đến các lỗi gánnhãn và cách khắc phục.

• Tiến hành gán nhãn bằng tay, quy định gán nhãn dựa trên định nghĩa gán nhãn

• Cập nhật lại những điểm dữ liệu bị gán nhãn sai Tổng hợp lại toàn bộ bộ dữ liệu đã được gánnhãn và chuẩn bị cho bước huấn luyện mô hình tiếp theo

d) Phân tích dữ liệu

Dữ liệu sau khi được thu thập và gán nhãn xong sẽ có 1999 dòng và 2 cột: Feedback và Label

Ví dụ:

Hình III.-2: Data của mô hình được gán nhãn

Trong đó, bộ dữ liệu có 696 điểm dữ liệu nhãn -1(tiêu cực), 615 điểm dữ liệu nhãn 0(trungtính) và 688 dòng dữ liệu nhãn 1(tích cực) Do đó, bộ dữ liệu sau khi thu thập và xử lý khácân bằng

Trang 11

Tuy nhiên, bởi vì bộ dữ liệu được thu thập từ những phản hồi của người dùng nên có rất nhiềulỗi như sau:

• Sai dấu câu

• Thừa khoảng trắng

• Sai chính tả

• Các từ bị dính liền nhau

• Sai cấu trúc và ngữ nghĩa của câu

Chương IV Lưu đồ thuật toán để huấn luyện mô hình

Trang 12

Thu thập dữ liệu: Bước đầu tiên là thu thập dữ liệu từ các nguồn khác nhau Quá trình này cóthể bao gồm việc tìm kiếm, thu thập và trích xuất dữ liệu từ các nguồn dữ liệu khác nhau,chẳng hạn như cơ sở dữ liệu, tệp tin hoặc web.

Bộ dữ liệu: Sau khi thu thập dữ liệu, chúng ta cần xử lý và tổ chức dữ liệu thành một bộ dữ liệu

có cấu trúc Quá trình này có thể bao gồm việc làm sạch dữ liệu, loại bỏ dữ liệu không hợp lệhoặc trùng lặp, chuyển đổi dữ liệu thành định dạng phù hợp và tổ chức dữ liệu theo các thuộctính và mẫu dữ liệu

Gán nhãn bằng tay: Tiếp theo, chúng ta gán nhãn cho dữ liệu Quá trình này thường được thựchiện bằng cách xem xét từng mẫu dữ liệu và gán nhãn cho chúng dựa trên một tập hợp cácnhãn có sẵn hoặc theo yêu cầu cụ thể của vấn đề cụ thể Việc gán nhãn có thể được thực hiệnbằng cách đánh dấu trực tiếp trên dữ liệu hoặc thông qua các công cụ và giao diện gửi nhãn.Đánh giá kết quả gán nhãn dữ liệu: Sau khi đã gán nhãn cho dữ liệu, chúng ta cần đánh giá chấtlượng và độ chính xác của quá trình gán nhãn Điều này có thể bao gồm việc kiểm tra sự chínhxác của nhãn so với mẫu dữ liệu thực tế, tính nhất quán giữa các nhãn được gán cho cùng mộtloại dữ liệu, hoặc đánh giá sự đồng nhất giữa các nhãn được gán bởi các nhân viên khác nhau.Kiểm tra kết quả gán nhãn: Quá trình này nhằm kiểm tra sự chính xác và hiệu suất của mô hìnhgán nhãn dữ liệu Có thể sử dụng các phương pháp đánh giá như đánh giá chéo (cross-validation) hoặc kiểm tra trên tập dữ liệu kiểm tra độc lập để đảm bảo rằng mô hình gán nhãnhoạt động tốt trên dữ liệu mới

Trang 13

Đóng gói và chuyển giao dữ liệu: Cuối cùng, sau khi đã hoàn thành quá trình gán nhãn và đánhgiá, dữ liệu được đóng gói và chuyển giao cho các bước tiếp theo trong quy trình xử lý hoặcphân tích dữ liệu Quá trình này có thể bao gồm việc lưu trữ dữ liệu vào cơ sở dữ liệu, tạo cáctệp tin xuất ra hoặc chuyển giao dữ liệu cho các bộ phận khác trong hệ thống.

Lưu đồ thuật toán trên giúp trực quan hóa và diễn giải các bước trong quy trình gán nhãn dữliệu và chuyển giao dữ liệu một cách dễ hiểu và logic

Chương V Code chương trình huấn luyện

##Downlolad thư viện underthesea

!pip install underthesea

##Download các thư viện cần thiết cho dự án

import pandas pdas

import numpy npas

import re

import underthesea

from sklearn.model_selection import train_test_split

from sklearn.metrics import accuracy_score

from sklearn.metrics import f1_score

from sklearn.svm import SVC

from sklearn.pipeline import Pipeline

from sklearn.feature_extraction.text import TfidfVectorizer

##Đọc dữ liệu từ file sử dụng thư viện pandas

data = pd.read_csv('/content/drive/MyDrive/project_ML/ML_final.csv')

sns.countplot(x="Label", data=data)

X_data = data['Feedback']

Y_data = data['Label']

print(X_data)

## Tiềền x lý d li uử ữ ệ

#Đưa về kiểu chữ thường

Trang 14

re.sub: 1 phương thức có tác dụng so khớp và thay thế chuỗi so khớp được

Với: r’\d’ tương ứng với bất kỳ chữ số thập phân Unicode nào [0-9]

-> Thay thế các chữ số tìm được bằng ''

#Loại bỏ các con số

def remove_number(text):

result = re.sub(r'\d+' '', , text)

return result

Dùng hàm replace có sẵn trong python để thay thế các dấu câu tìm được bằng “ ”

#Loại bỏ các dấu câu

def remove_punctuation(text):

text = text.replace( , "," " ").replace("." " ", ) \

#Loại bỏ khoảng trắng thừa

def remove_whitespace(text):

return " ".join(text.split())

# Bỏ bớt các chữ cái giống nhau liên tiếp( Vd: quaaa -> qua)

def remove_similarletter(text):

text = re.sub(r'([A-Z])\1+', lambda m: m.group( ).upper(), text, 1

flags=re.IGNORECASE)

return text

#Tách từ tiếng Việt sử dụng thư viện underthesea có sẵn

def VN_Tokenize(text,format='text'):

Trang 15

def remove_VN_stopwords(text):

#Chuẩn hóa dữ liệu

def Util(text):

replace_list = {

':v' 'hihi': , '<3' 'yêu': , '♥ ':'yêu' ' ',❤ 'yêu' 'a' 'anh' 'ac': , : , :'anh

chị' 'ace', :'anh chị em','ad':'quản lý',

'ae':'anh em','ah' 'à' 'ak' 'à' 'amin': , : , :'quản

lý' 'androir' 'android' 'app', : , :'ứng dụng','auto ':'tự động',

'ây' 'vậy': ,'b nào':'bạn

nào' 'bằg' 'bằng' 'băng' 'bằng' 'băp' 'bắp' 'băt' 'bắt' 'battery' 'pin' ', : , : , : , : , : ,

bể' 'vỡ': ,

'been' 'bên' 'best' 'nhất' 'best': , : , :'tốt

nhất','bgqafy ':'ngày' 'bh', :'bao giờ','bh':'bây giờ','bhx':'bảo hành',

'bi' 'bị' 'big' 'lớn' 'bik' 'biết' 'bin' 'pin' 'bit' 'biết' 'bít' 'biết': , : , : , : , : , : ,

'bn' 'bạn': ,'bông tróc':'bong tróc', : 'k' 'không' 'ok' 'được', : ,

'bro':'anh em','bt':'bình thường','bt' 'biết' 'bth': , :'bình

thường' 'bthg', :'bình thường','bua' 'bữa' 'bùn' 'buồn': , : ,

'buonc' 'buồn' 'bx' 'hộp' 'bye': , : , :'tạm

biệt' 'c' 'chị' 'cac' 'các' 'cam', : , : , :'máy ảnh','card' 'thẻ' 'châu' 'khỏe': , : ,

'chiệu' 'triệu' 'chíp' 'chip' 'chội' 'trội' 'chs' 'chơi' 'chửa' 'chữa' 'c: , : , : , : , : ,

hug ':'chung' 'chup' 'chụp' 'chuq' 'chung', : , : ,

'clip':'đoạn phim','cmt':'bình

luận' 'co' 'có' 'cở' 'cỡ' 'cọc' 'cột' 'cpu', : , : , : , :'chíp xử lý','cty':'công ty',

'dè' 'rè' 'dể' 'dễ' 'delay' 'trễ' 'dêm' 'đêm' 'đén' 'đến': , : , : , : , : ,'deplay ':'chậm

' 'deu' 'đều' 'diem' 'điểm' 'dien' 'diện', : , : , : ,

Ngày đăng: 09/04/2024, 16:20

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

TÀI LIỆU LIÊN QUAN

w