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 2MỤC LỤC
Chương I Giới thiệu tổng quan 3
1.1Giới thiệu về đề tài 4
1.2Mụ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.3Cá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 3DANH 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 4Chương IGiới thiệu tổng quan
1.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á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.2Mụ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ười dù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ợ doanh nghiệ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ượng sản phẩm dựa trên phản hồi của người dùng.
Chương IICơ sở lý thuyết2.1 Giới thiệu về thuật toána) 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ặc phi 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 5MNB 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ộc vào một lớp cụ thể.
2.2 Ưu nhược điểm của thuật toána) 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 6Yê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 độ lớn của chúng.
2.3 Ứng dụng trong thực tế của các thuật toána) Ứng dụng của SVC
Hệ thống đánh giá sản phẩm trực tuyến: SVC có thể được sử dụng để phân loại và đánh giá chất lượng sản phẩm dựa trên phản hồi của người dùng Ví dụ: dự đoán xếp hạng sản phẩm (từ 1 đến 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ăn bả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ất khá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àng như 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ại cá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ána) Multinomial Naive Bayes
Trang 7b) 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ời gian ô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ày cũ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 8Chương III Dữ liệu huấn luyệna) 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ới tí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àng ngà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 9Sả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 1660 ram 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ình luậ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ông liên quan tới chất lượng sản phẩm.
• Thu thập các đánh giá, nhận xét, phản hồi của khách hàng từ website bán hàng trực tuyến Thế Giới Di Động và Điện Máy Xanh sao cho sau quá trình gán nhãn sẽ thu được bộ dữ liệu cân bằng.
• 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ãn khô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án nhã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án nhã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(trung tí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 11Tuy 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ều lỗ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 IVLưu đồ thuật toán để huấn luyện mô hình
Trang 12Thu 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ộc tí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ực hiệ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ác nhã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ện bằ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ất lượ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ính xá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ột loạ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ình gá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ãn hoạ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à đánh giá, 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ặc phâ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ác tệ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') data.head()
##Truy cập thông tin từ kích thước của dữ liệu data.shape
##sử dụng thư viện seaborn để trực quan hóa dữ liệu và thực hiện việc chuẩn bị dữ liệu cho việc huấn luyện mô hình Nó hiển thị biểu đồ cột đếm số lượng mẫu trong mỗi nhãn, và tạo ra hai biến X_data và Y_data để sử dụng trong quá trình huấn luyện mô hình.
import seaborn snsas
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'):
Stopwords là những từ xuất hiện rất nhiều trong các bài viết, các đoạn text nhưng lại không hề liên quan gì đến nội dung và ý nghĩa của bài viết, gây mơ hồ, làm quá trình máy học, phân loại giảm đi độ chính xác file vietnamese-stopwords-dash.txt chứa một list những từ stopwords Tiếng Việt của tác giả Lê Văn Duyệt và chúng em có tinh chỉnh lại file cho phù hợp với đồ án lần này.