

















Preview text:
  lOMoAR cPSD| 59031616   
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG    
KHOA CÔNG NGHỆ THÔNG TIN 1           BÁO CÁO  
PHÁT TRI ỂN HỆ THỐNG TH ÔNG MINH  
GIẢNG VIÊN:  NGUY ỄN MẠNH H ÙNG  
Đề t ài 24:  “ H ệ  th ống tự ộng ph ân lo ại email theo chủ ề”       Nhóm l ớp  :     06  
Nhóm Bài t ập  l ớn  : 01 
Danh sách thành viên       
H ọ v à tên  
: Mã sinh viên  
Nguy ễn Văn Hiếu    : B20DCCN257  
Nguy ễn Phương Anh  :  B20DCCN061 
Tr ần Thị T h ắm  :  B20DCCN657  
Nguy ễn Văn Mạnh  :  B20DCCN429        
Hà Nội – 09/2023     1        lOMoAR cPSD| 59031616
Chương 1: Bài toán ề tài và xây dựng bộ dữ liệu cho bài toán     I.  Bài toán ề tài 
 Phân loại email theo chủ ề là một ề tài quan trọng trong lĩnh vực xử lý ngôn 
ngữ tự nhiên và ứng dụng trí tuệ nhân tạo vào quản lý hộp thư ến của người 
dùng. Đề tài này ề cập ến việc phát triển các hệ thống tự ộng phân loại email 
thành các chủ ề hoặc danh mục cụ thể dựa trên nội dung của email. Dưới ây là 
một trình bày về ề tài phân loại email theo chủ ề.  1.1. Giới thiệu ề tài 
 Email là một phương tiện quan trọng ể giao tiếp trong kinh doanh và cuộc sống 
cá nhân. Tuy nhiên, hộp thư ến của chúng ta thường ầy ắp với hàng trăm hoặc 
thậm chí hàng nghìn email mỗi ngày. Để quản lý email hiệu quả, việc tự ộng phân 
loại chúng vào các chủ ề như công việc, cá nhân, quảng cáo, hoặc dự án cụ thể trở  nên cần thiết. 
 Mục tiêu chính của ề tài này là phát triển các hệ thống thông minh có khả năng 
phân loại email dựa trên nội dung và ặc iểm của email. Mỗi email sẽ ược gán vào 
một chủ ề cụ thể. Điều này giúp người dùng dễ dàng tìm kiếm và quản lý email 
trong hộp thư ến của họ. 
 Để thực hiện phân loại email theo chủ ề, phương pháp và công nghệ ược áp dụng: 
Học máy: Sử dụng các thuật toán học máy như Logistic Regression, Naive Bayes, 
hoặc SVM (Support Vector Machine) ể xây dựng mô hình phân loại email. 
 Phân loại email theo chủ ề ối diện với nhiều thách thức, bao gồm a dạng trong 
nội dung email, ngôn ngữ và văn phong giao tiếp. Tuy nhiên, nó có thể ược ứng 
dụng rộng rãi trong việc tự ộng quản lý hộp thư ến, tạo ra hệ thống lọc email rác, 
hoặc tạo trải nghiệm người dùng tốt hơn trong ứng dụng email. 
 Phân loại email theo chủ ề là một ề tài quan trọng trong lĩnh vực xử lý ngôn ngữ 
tự nhiên và học máy, và có tiềm năng cải thiện sự hiệu quả của việc quản lý email 
trong cuộc sống hàng ngày.  2        lOMoAR cPSD| 59031616  
 Đối tượng sử dụng là người có nhu cầu quản lý email với số lượng email lớn.  1.2. Bài toán con 
 Bài toán này ặt ra yêu cầu xác ịnh chủ ề của các email ến. Đây là một bài toán a 
nhãn, có nghĩa là có nhiều chủ ề email, mỗi nhãn ại diện cho một chủ ề cụ thể và 
mỗi email chỉ thuộc vào một nhãn duy nhất. 
− Dữ liệu ầu vào: Text (Mỗi email ược biểu diễn dưới dạng văn bản) − 
Dữ liệu ầu ra: chủ ề của email.  − Phương pháp: 
+ Sử dụng các mô hình phân loại a lớp và a nhãn 
+ Tiến hành tiền xử lý dữ liệu, chẳng hạn như loại bỏ từ dừng, chuyển ổi 
văn bản thành biểu diễn số, và trích xuất ặc trưng có ý nghĩa. + Sử dụng 
các phương pháp ánh giá hiệu suất như Accuracy, Precision, Recall và F1-
score ể ánh giá mô hình trên tập dữ liệu kiểm tra. 
II. Xây dựng bộ dữ liệu 1. 
Quá trình xây dựng dữ liệu 
a. Tải email cá nhân và gán nhãn: 
 Các thành viên tải email từ gmail cá nhân, lưu dưới ịnh dạng UTF-8 vào các file  văn bản.   
Mỗi email trên một file, tên file theo quy ước “*.txt” với * là số thứ tự file từ  1 ến 1730.   
Kết quả thu ược: 1730 email với tên file lần lượt 1.txt ến 1730.txt   
Các thành viên ọc qua các email trong phần cá nhân tải, gán nhãn cho email 
phù hợp và file “label.txt” của cá nhân.   
Các mẫu ược gán nhãn ược lưu trong file ” label.txt” với ịnh dạng:     
Mỗi mẫu gồm một cặp số x.y với x là số thứ tự mẫu tương ứng file  3        lOMoAR cPSD| 59031616  
x.txt, y là nhãn tương ứng với file ấy gồm các số từ 1 ến 6, phân cách nhau   bởi khoảng trắng. 
Kết quả thu ược: File “label.txt” 
b. Tiền xử lý dữ liệu: 
- Dùng các thư viện regex, underthesea ể xử lý các từ tiếng việt trong email 
- Các bước cần xử lý bao gồm:   
+ Xóa HTML code trong dữ liệu   
+ Chuẩn hóa Unicode tiếng Việt   
+ Chuẩn hóa kiểu gõ dấu    + Tách từ tiếng Việt   
+ Đưa về viết thường (lowercase)   
+ Xóa các ký tự không cần thiết   
+ Loại bỏ các stopword tiếng Việt 
- Đọc lần lượt các file “1.txt” ến “1730.txt”, dùng hàm read() ọc toàn bộ nội dung 
các file, sau ó ưa qua hàm text_preprocess() ể tiền xử lý, sau ó lưu nội dung ã xử 
lý vào các file “*_clean.txt” với x tương ứng với số thứ tự file gốc. 
- Đọc thông tin các mẫu từ các file “label.txt”, tách các số thứ tự file vào các file 
“label01.txt”, “label02.txt”, “label03.txt”, “label04.txt”, “label05.txt”,  “label06.txt”  - Kết quả thu ược:   
Thư mục DATASET_CLEAN bao gồm:     
+ 1730 file từ “1_clean.txt” ến “1730_clean.txt”     
+ 6 file “label01.txt”, “label02.txt”, “label03.txt”, “label04.txt”, 
“label05.txt”, “label06.txt”. File “label01.txt” chứa thông tin số thứ tự các mẫu  mang nhãn ó.  4        lOMoAR cPSD| 59031616
2. Thống kê dữ liệu   • 
Bộ dữ liệu gồm 6 nhãn, tương ứng số thứ tự từ 1 ến 6.      Số thứ tự  Nhãn  1  _label_học_tập  2  _label_ ơn_hàng  3  _label_quảng_cáo  4  _label_cảnh_báo  5  _label_ngân_hàng  6  _label_thư_rác      •  Số liệu thống kê 
− Tổng số mẫu: 1730 mẫu 
− Thống kê nhãn theo mẫu    Nhãn  Số lượng  Học tập  313  Đơn hàng  190  Quảng cáo  269  Cảnh báo  359  5        lOMoAR cPSD| 59031616 Ngân hàng  284  Thư rác  315     •  Tổng hợp text:        Mẫu dài nhất (kí tự)  13263 
Mẫu ngắn nhất (kí tự)  112 
Chiều dài trung bình mẫu (kí tự)  1200                                  
Chương 2: Đánh giá và lựa chọn thuật toán   I. 
Liệt kê thuật toán   
Nhóm lựa chọn 4 thuật toán cho ề tài bao gồm:  6        lOMoAR cPSD| 59031616
+ Naive Bayes (thư viện sklearn) 
+ Logistic Regression (thư viện sklearn) 
+ Support Vector Machine (thư viện sklearn) 
+ Skip-gram with Negative Sampling (https://fasttext.cc/) 
1. Thuật toán Naive Bayes 
1.1. Giới thiệu thuật toán Naive Bayes   
Thuật toán Naive Bayes là một trong những thuật toán phân loại phổ biến 
trong lĩnh vực học máy và xử lý ngôn ngữ tự nhiên. Thuật toán này dựa trên công 
thức Bayes và giả ịnh "ngây thơ" (naive) về sự ộc lập giữa các ặc trưng của dữ liệu.   
1.2. Ý tưởng thuật toán Naive Bayes   
Ý tưởng cơ bản của Naive Bayes bao gồm xác ịnh các biến ầu vào và ầu ra, 
xây dựng bộ dữ liệu huấn luyện với các ví dụ ã ược gán nhãn, tính xác suất tiên 
nghiệm của các lớp dựa trên tần số xuất hiện trong dữ liệu huấn luyện, tính xác suất 
hậu nghiệm của các lớp dựa trên xác suất tiên nghiệm và ặc trưng của mẫu dữ liệu 
mới, và cuối cùng phân loại dựa trên lớp có xác suất hậu nghiệm cao nhất. Mặc dù 
thuật toán có giả ịnh ngây thơ về ộc lập giữa các ặc trưng, nó vẫn có hiệu suất tốt 
trong nhiều bài toán thực tế và thường ược sử dụng làm cơ sở cho các hệ thống 
phân loại phức tạp hơn.          
1.3. Ứng dụng chính của thuật toán Naive Bayes   
Naive Bayes thường ược sử dụng trong các bài toán phân loại, ặc biệt là 
trong phân loại văn bản. Các ứng dụng phổ biến bao gồm:  7        lOMoAR cPSD| 59031616
− Phân loại email: Xác ịnh xem một email là spam hay không; Hay email  ó thuộc chủ ề nào. 
− Phân loại văn bản: Xác ịnh chủ ề hoặc lớp của một oạn văn bản. 
− Phân loại sản phẩm: Xác ịnh loại sản phẩm dựa trên mô tả sản phẩm. 
− Phân loại tài liệu học thuật: Xác ịnh lĩnh vực của một bài báo dựa trên  nội dung. 
1.4. Ưu và nhược iểm của thuật toán Naive Bayes   
Ưu iểm: Dễ triển khai và hiệu quả tính toán; hoạt ộng tốt với dữ liệu lớn; phù 
hợp cho dữ liệu văn bản.   
Nhược iểm: Giả ịnh ngây thơ (Naive) có thể làm giảm ộ chính xác của mô 
hình trong các tình huống khi có tương quan mạnh giữa các ặc trưng; cần ủ dữ liệu 
ào tạo; không thể học các quan hệ phức tạp (do giả ịnh về sự ộc lập, Naive Bayes 
không thể học các quan hệ phức tạp hoặc tương tác giữa các ặc trưng) 
2. Thuật toán Logistic Regression 
2.1. Giới thiệu thuật toán Logistic Regression   
Logistic Regression là một thuật toán phân loại có giám sát   
Logistic Regression là 1 thuật toán phân tích dữ liệu sử dụng toán học ể tìm 
ra mối quan hệ giữa hai yếu tố dữ liệu. Sau ó, kỹ thuật này sử dụng mối quan hệ ã 
tìm ược ể dự oán giá trị của những yếu tố ó dựa trên yếu tố còn lại. Dự oán thường 
cho ra một số kết quả hữu hạn, như có hoặc không. 
2.2. Ý tưởng thuật toán Logistic Regression   
Thuật toán Logistic Regression sử dụng mô hình hồi quy logistic   
Mô hình này thường ược sử dụng trong bài toán phân loại ể dự oán một biến 
kết quả nhị phân dựa trên một hoặc nhiều biến ầu vào.  
2.3. Ứng dụng chính của thuật toán Logistic Regression  8        lOMoAR cPSD| 59031616
Logistic Regression thường ược sử dụng trong các bài toán như phân loại 
email là spam hay không spam, phân loại khách hàng có mua sản phẩm hay không 
mua, dự oán xác suất thành công của một sự kiện, và nhiều ứng dụng khác trong 
lĩnh vực học máy và khoa học dữ liệu. 
2.4. Ưu và nhược iểm của thuật toán Logistic Regression  Ưu iểm:  
+ Dễ hiểu và dễ triển khai: Logistic Regression là một thuật toán ơn  giản và dễ hiểu. 
+ Tính tổng quát: Logistic Regression có thể áp dụng cho nhiều bài  toán phân loại khác nhau 
+ Dự báo xác suất: Mô hình Logistic Regression có khả năng dự báo 
xác suất của một sự kiện xảy ra. 
+ Không yêu cầu dữ liệu lớn: Logistic Regression hoạt ộng tốt với dữ 
liệu có kích thước nhỏ ến trung bình. Nó không òi hỏi dữ liệu lớn 
như một số thuật toán máy học phức tạp khác.  Nhược iểm:  
+ Giới hạn về phân phối của dữ liệu: Logistic Regression giả ịnh rằng 
biến phụ thuộc ( ầu ra) có phân phối dạng logistic. Nếu dữ liệu 
không tuân theo giả ịnh này, mô hình có thể không hoạt ộng tốt và  dự oán sai lệch. 
+ Không xử lý tốt với dữ liệu thiếu: Logistic Regression không xử lý 
tốt với dữ liệu có giá trị bị thiếu. 
+ Khó ứng dụng cho dữ liệu với số lượng biến lớn: Logistic 
Regression có thể trở nên không hiệu quả khi có quá nhiều biến ộc 
lập, ặc biệt nếu không có kiểm soát phù hợp. 
3. Thuật toán Support Vector Machine 
3.1. Giới thiệu thuật toán Support Vector Machine  9        lOMoAR cPSD| 59031616  
Thuật toán Support Vector Machine (SVM) là một thuật toán học máy phổ 
biến ược sử dụng cho cả bài toán phân loại (classification) và hồi quy (regression). 
SVM tập trung vào việc xác ịnh một siêu mặt phẳng (hoặc siêu không gian phẳng) 
tối ưu ể phân tách các iểm dữ liệu thuộc các lớp khác nhau. 
3.2. Ý tưởng thuật toán Support Vector Machine   
Ý tưởng chính của thuật toán Support Vector Machine (SVM) là tạo ra một 
ường biên phân chia tối ưu giữa các lớp dữ liệu sao cho khoảng cách từ các iểm gần 
nhất ến ường biên này là lớn nhất. Để thực hiện iều này, SVM sử dụng kỹ thuật tối 
ưu hóa ể tìm ra siêu phẳng (hyperplane) tối ưu, có thể là một siêu phẳng tuyến tính 
hoặc ược biến ổi phi tuyến tính thông qua các hàm kernel. Sau khi có siêu phẳng tối 
ưu, SVM sử dụng nó ể phân loại các iểm dữ liệu mới. SVM là một trong những 
thuật toán phân loại mạnh mẽ và a dụng trong học máy. 
3.3. Ứng dụng chính của thuật toán Support Vector Machine   
SVM có nhiều ứng dụng trong các lĩnh vực khác nhau, bao gồm: 
− Phân loại hình ảnh: SVM ược sử dụng ể phân loại ối tượng trong hình 
ảnh, như phát hiện khuôn mặt hoặc nhận diện chữ viết tay. 
− Phân loại văn bản: SVM có thể ược sử dụng ể phân loại văn bản vào 
các danh mục khác nhau, ví dụ như phân loại email spam và không  phải spam. 
− Dự oán chuỗi thời gian: SVM có thể sử dụng ể dự oán các giá trị trong 
chuỗi thời gian, chẳng hạn như giá cổ phiếu hoặc nhiệt ộ. 
− Phát hiện gian lận tín dụng: SVM có thể ược áp dụng ể phát hiện gian 
lận trong giao dịch tín dụng bằng cách phân loại các giao dịch là úng  hoặc sai. 
3.4. Ưu và nhược iểm của thuật toán Support Vector Machine  Ưu iểm: 
+ Hiệu suất cao khi dữ liệu tách biệt rõ ràng và tương ối ít nhiễu.  10        lOMoAR cPSD| 59031616
+ Có khả năng xử lý dữ liệu phi tuyến tính thông qua sử dụng các hàm  kernel. 
+ Dự oán tốt trong các không gian chiều cao (high-dimensional spaces). 
+ Tích hợp tốt với kỹ thuật hạt nhân (kernel trick) ể tăng tính phân loại.  Nhược iểm: 
+ Đòi hỏi một lượng lớn dữ liệu huấn luyện ể ảm bảo hiệu suất tốt. 
+ Khó khăn khi áp dụng trên dữ liệu lớn vì yêu cầu tính toán phức tạp. 
+ Độ phức tạp của việc tìm hàm tối ưu có thể làm cho quá trình huấn  luyện chậm. 
+ Khả năng tùy chỉnh các siêu tham số cần sự hiểu biết chuyên sâu về  thuật toán. 
4. Thuật toán Skip-gram with Negative Sampling 
4.1. Giới thiệu thuật toán 
 Thuật toán chính ược sử dụng là “Skip-gram with Negative Sampling” ược phát triển 
bởi Tomas Mikolov và cộng sự của ông tại Google sử dụng thư viện Fasttext. 
4.2. Ý tưởng thuật toán   
FastText sử dụng mô hình Word2Vec ể học các biểu diễn từ vựng (word 
embeddings) và mô hình các từ dưới dạng vector. Điểm ặc biệt của FastText là nó 
cũng học biểu diễn cho các subword (từ phụ), tức là các n-grams (chuỗi n ký tự liên  tiếp) của từ.   
FastText cũng sử dụng thuật toán "softmax" ể thực hiện phân loại văn bản 
cho các nhiệm vụ như phân loại văn bản hoặc dự oán nhãn. Mô hình FastText ược 
ào tạo thông qua việc tối ưu hóa hàm mất mát softmax trên dữ liệu ào tạo. 
4.3. Ứng dụng chính của thuật toán   
Được sử dụng cho nhiều nhiệm vụ xử lý ngôn ngữ tự nhiên, bao gồm phân 
loại văn bản và nhúng từ. 
4.4. Ưu và nhược iểm của thuật toán  11        lOMoAR cPSD| 59031616  
Ưu iểm: xử lý tốt các từ mới và hiếm.   
Nhược iểm: Một trong các nhược iểm lớn của thuật toán trên là yêu cầu một 
tập dữ liệu ào tạo lớn ể tạo ra các biểu diễn từ vựng hiệu quả. Trong trường hợp dữ 
liệu ào tạo bị thiếu hoặc nhỏ, nó có thể dẫn ến các biểu diễn kém chất lượng.     II. 
Kịch bản và phương pháp ánh giá  1. Kịch bản  
Xây dựng mô hình phân loại email 
a. Xây dựng tập train/test   
Đọc dữ liệu label từ các file “label01.txt”, “label02.txt”, “label03.txt”, 
“label04.txt”, “label05.txt”, “label06.txt” vào 6 mảng lst1, lst2, lst3, lst4, lst5, lst6. 
- Dùng hàm shuffle ể sắp xếp ngẫu nhiên các mảng trên. 
- Lấy 7/10 phần tử của từng mảng trong 6 mảng, thêm tất cả vào mảng train. 
- Lấy 3/10 phần tử của từng mảng trong 6 mảng, thêm tất cả vào mảng test.   
Đọc lần lượt các file “*_clean.txt” với * là số thuộc mảng train, lấy nhãn 
tương ứng từ các mảng nhãn, nối nhãn + “khoảng trắng” + dữ liệu. Ghi tất cả vào 
file “train01.txt”, mỗi mẫu trên một dòng.   
Đọc lần lượt các file “*_clean.txt” với * là số thuộc mảng test, lấy nhãn 
tương ứng từ các mảng nhãn, nối nhãn + “khoảng trắng” + dữ liệu. Ghi tất cả vào 
file “test01.txt”, mỗi mẫu trên một dòng.   
Lặp lại 5 lần các bước trên, tạo ra 5 cặp file train, test 
Kết quả thu ược: 5 cặp file train, test: train01.txt, test01.txt, train02.txt, test02.txt, 
train03.txt, test03.txt, train04.txt, test04.txt, train05.txt, test05.txt,  12        lOMoAR cPSD| 59031616
Định dạng mỗi file tương ứng: Mỗi mẫu trên một dòng bắt ầu là nhãn với inh dạng 
“_label_tên_nhãn”, tiếp theo là ký tự khoảng trắng, sau ó là nội dung mẫu.  b. Huấn luyện mô hình  1. Thuật toán Naive Bayes 
Sử dụng thư viện sklearn, tiền xử lý dữ liệu văn bản bằng TF-IDF Vectorizer 
Tạo và huấn luyện mô hình Naive Bayes bằng hàm clf.fit(). 
2. Thuật toán Logistic Regression   
Sử dụng thư viện sklearn, tiền xử lý dữ liệu văn bản bằng TF-IDF Vectorizer   
Tạo và huấn luyện mô hình Logistic Regression bằng hàm clf.fit(). 
3. Thuật toán Support Vector Machine   
Sử dụng thư viện sklearn, tiền xử lý dữ liệu văn bản bằng TF-IDF Vectorizer   
Tạo và huấn luyện mô hình Support Vector Machine bằng hàm clf.fit(). 
4. Thuật toán Skip-gram with Negative Sampling   
Sử dụng thư viện Fasttext, dùng hàm train_supervised ể huấn luyện mô hình, 
mô hình sau huấn luyện lưu vào file “fasttext**.bin”. (với ** lần lượt 01 ến 05 
tương ứng với tên tập train).   
Kết quả thu ược: 5 file “fasttext01.bin”, “fasttext02.bin”, “fasttext03.bin”, 
“fasttext04.bin”, “fasttext05.bin” tương ứng với 5 lần train cho 5 cặp bộ train/test. 
2. Phương pháp ánh giá   
Sử dụng phương pháp Chia tỉ lệ 7/3: 
+ Ta lấy 7/10 tổng số mẫu làm tập huấn luyện (tập train): Tức mẫu làm  tập train.  13        lOMoAR cPSD| 59031616
+ Ta lấy 3/10 tổng số mẫu làm tập kiểm tra (tập test): Tức mẫu làm tập  test.     
Sử dụng tập dữ liệu kiểm tra (có nhãn) ể ánh giá hiệu suất thuật toán qua các 
thông số như acc, pre, rec, f1.   
Mỗi thuật toán sẽ trải qua 5 lần train/test, sau ó sẽ lấy trung bình cộng kết quả 
4 thông số acc, pre, rec, f1 của mỗi thuật toán. 
 Thuật toán nào có trung bình cộng f1 lớn nhất sau 5 lần train/test là thuật toán tốt  nhất/ 
III. Quá trình ánh giá và kết quả thu ược 1. Quá trình ánh giá 
 Sử dụng phương pháp Chia tỉ lệ 7/3: 
+ Ta lấy 7/10 tổng số mẫu làm tập huấn luyện (tập train): Tức 
7/10*1730=1211 mẫu làm tập train. 
+ Ta lấy 3/10 tổng số mẫu làm tập kiểm tra (tập test): Tức 3/ + 
10*1730=519 mẫu làm tập test. 
 Ta lặp lại quá trình trên 5 lần: Lưu các mẫu dữ liệu vào các tập: train01.txt, 
test01.txt, train02.txt, test02.txt, train03.txt, test03.txt, train04.txt, test04.txt,  train05.txt, test05.txt. 
 Với mỗi bộ train-test ta sẽ có: X_train, y_train, X_test, y_test 
 Sử dụng các thuật toán Naive Bayes, Logistic Regression, SVM, thư viện 
fasttext ể huấn luyện mô hình học máy (dựa vào X_train, y_train) , từ ó dự oán kết 
quả nhãn của tập dữ liệu (X_test) trong tập test (ta ược tập y_pred). Sử dụng tập 
vừa dự oán ược (y_pred) và y_test ể tính các tham số hiệu suất: 
Lặp cho từng nhãn (ở ây là 6 nhãn): 
+ Xem nhãn ó là P, các nhãn còn lại là N.  + Tính TP, TN, FP, FN.  14        lOMoAR cPSD| 59031616
+ Tính Acc, Pre, Rec, F1 score cho nhãn ó. 
Tính trung bình cho toàn bộ nhãn:    + Acc = 
∑𝑛1 𝑆ố 𝑚ẫ𝑢 𝑛ℎã𝑛 𝑖   * 100%    + Pre = 
∑𝑛1 𝑆ố 𝑚ẫ𝑢 𝑛ℎã𝑛 𝑖 * 100%     
+ Rec = ∑𝑛1 𝑆ố 𝑚ẫ𝑢 𝑛ℎã𝑛 𝑖 * 100%      + F1 score = 
∑𝑛1 𝑆ố 𝑚ẫ𝑢 𝑛ℎã𝑛 𝑖   * 100% 
*Đánh giá các tham số hiệu suất của mô hình với thuật toán Naïve Bayes, Logistic  Regression, SVM:   
Dùng hàm clf.predict() ể dự oán ra tập nhãn y_pred.   
Lấy tập nhãn thật từ mảng y_test.   
Sử dụng 2 mảng y_pred và y_test ể so sánh, ánh giá mô hình. 
*Đánh giá các tham số hiệu suất của mô hình với thuật toán Skip-gram with  Negative Sampling:   
Lần lượt Dùng hàm load model tải các model từ các file “fasttext01.bin”, 
“fasttext02.bin”, “fasttext03.bin”, “fasttext04.bin”, “fasttext05.bin”.    Với mỗi lần: 
- Chia dữ liệu mẫu với nhãn từ file test.txt tương ứng với file train.txt. 
- Thu ược mảng true_labels, với mảng test_data. 
- Lần lượt cho các phần tử tệp test_data cho thuật toán dự oán, lưu nhãn dự oán vào  mảng predict_labels. 
- Sử dụng 2 mảng true_labels và predict_labels ể tính toán các tham số ACC, PRE,  REC, F1-score.  15        lOMoAR cPSD| 59031616   2. Kết quả   Thuật toán Naive Bayes: 
Lần train/test Acc (%) Pre (%) Rec (%)  F1 score (%)  Lần 1  80.92  83.13  80.92  80.62  Lần 2  84.39  85.61  84.39  84.18  Lần 3  84.59  85.39  84.59  84.32  Lần 4  82.08  83.43  82.08  81.60  Lần 5  81.31  82.84  81.31  81.12  Trung bình  82.66  84.08  82.66  82.37   
Thuật toán Logistic Regression:   
Lần train/test Acc (%) Pre (%) Rec (%)  F1 score (%)  Lần 1  86.32  87.66  87.67  87.53  Lần 2  86.32 93.76  93.64  93.58  Lần 3  86.32 96.03  95.91  95.88  Lần 4  86.32 96.60  96.49  96.48  Lần 5  86.32 96.86  96.79  96.78  Trung bình  86.32 94.18  94.10  94.05    Thuật toán SVM:   
Lần train/test Acc (%) Pre (%) Rec (%)  F1 score (%)  Lần 1  96,07  89,21  89,02  89,00  Lần 2  96,39  90,18  89,79  89,88  Lần 3  97.00  91,49  91,30  91,32  Lần 4  96,16  89,32  89,02  89,07  Lần 5  96,04  88,91  88,63  88,69  16        lOMoAR cPSD| 59031616 Trung bình  96,32  89,82  89,52  89,59   
Thuật toán Skip-gram with Negative Sampling:   
Lần train/test Acc (%) Pre (%) Rec (%)  F1 score (%)  Lần 1  73.96  35.47  29.29  19.51  Lần 2  73.74  37.91  28.90  20.36  Lần 3  73.23  36.82  27.55  18.66  Lần 4  73.36  34.94  27.94  19.22  Lần 5  72.34  33.29  25.24  15.15  Trung bình  73.33  35.67  27.78  18.58    
Kết quả chung: Ở ây, ta chỉ xem xét tham số F1-score ể ánh giá hiệu suất các mô  hình:      Naive  Logistic  SVM Skip-gram with Negative  Bayes  Regression  Sampling  F1-score  82.37  94.05  89,59  18.58  (%)   
Từ kết quả trên, ta có ánh giá:  + Naive Bayes: 82.37% 
 Naive Bayes có hiệu suất tương ối thấp hơn so với các thuật toán Logistic Regression, 
SVM trong bảng kết quả. Lí do có thể là do Naive Bayes giả ịnh rằng các biến ộc lập 
và không có tương tác, iều này có thể không phù hợp với dữ liệu của bạn nếu có các 
tương tác phức tạp giữa các ặc trưng.  17        lOMoAR cPSD| 59031616 + Logistic Regression: 94.05% 
 Logistic Regression có hiệu suất tốt hơn so với Naive Bayes và SVM. Thuật toán 
này là một trong những lựa chọn phổ biến ể giải quyết các bài toán phân loại. Logistic 
Regression thường hoạt ộng tốt trên nhiều loại dữ liệu và là một trong những mô hình 
ơn giản nhất ể triển khai. Nó có khả năng tìm hiểu tốt các tương tác giữa các ặc trưng 
và thích hợp cho các tình huống có dữ liệu phân tách tốt. 
+ SVM (Support Vector Machine): 89.59% 
 SVM có hiệu suất tốt và gần bằng Logistic Regression. SVM có khả năng tìm ra ranh 
giới quyết ịnh phức tạp hơn so với Logistic Regression, nhưng cũng có thể phụ thuộc 
vào việc chọn kernel và siêu tham số phù hợp. 
+ Skip-gram with Negative Sampling: 18.58% 
 Hiệu suất của Fasttext thấp hơn áng kể so với các thuật toán khác. Lý do là vì thuật 
toán yêu cầu một tập dữ liệu ào tạo lớn ể tạo ra các biểu diễn từ vựng hiệu quả. Trong 
trường hợp dữ liệu ào tạo bị thiếu hoặc nhỏ, nó có thể dẫn ến các biểu diễn kém chất  lượng. 
Như vậy, Logistic Regression có hiệu suất tốt nhất trong bảng kết quả của bạn, ược 
tiếp theo bởi SVM và Naive Bayes. Fasttext có hiệu suất thấp nhất và không phù hợp  cho bài toán này. 
Ở ây, ta sẽ chọn thuật toán Logistic Regression cho bài toán phân loại chủ ề văn  bản.                18