Môn học "Phát triển ứng dụng trí tuệ nhân tạo" đã trang bị cho sinh viên những kiến thức cơ bản nhưng vô cùng cần thiết về lĩnh vực này, đồng thời rèn luyện kỹ năng làm việc với dữ liệu
Trang 1TRƯỜNG ĐẠI HỌC BÌNH DƯƠNG KHOA CÔNG NGHỆ THÔNG TIN, ROBOT
& TRÍ TUỆ NHÂN TẠO
-oOo -ĐỒ ÁN MÔN HỌC PHÁT TRIỂN ỨNG DỤNG TRÍ TUỆ NHÂN TẠO
Tên đề tài:
Phát hiện thư rác (Spam Email Detection)
Giảng viên: Nguyễn Phương Nam
Trang 2Lời mở đầu
Trong thời đại công nghệ thông tin phát triển mạnh mẽ, khoa học dữ liệu ngàycàng khẳng định vai trò quan trọng trong việc khai thác và phân tích thông tin, hỗ trợ
đưa ra những quyết định chính xác và hiệu quả Môn học "Phát triển ứng dụng trí
tuệ nhân tạo" đã trang bị cho sinh viên những kiến thức cơ bản nhưng vô cùng cần
thiết về lĩnh vực này, đồng thời rèn luyện kỹ năng làm việc với dữ liệu thông qua cácphương pháp và công cụ hiện đại
Bài báo cáo này được thực hiện với mục đích hệ thống lại những kiến thức đã
học, đồng thời áp dụng vào đề tài: Phát hiện thư rác (Spam Email Detection).
Thông qua đó, chúng em mong muốn làm rõ các bước xử lý dữ liệu, xây dựng mô hìnhphân tích và rút ra những nhận định quan trọng từ kết quả thu được
Chúng em xin bày tỏ lòng biết ơn sâu sắc đến thầy Nguyễn Phương Nam, giảng
viên môn “Phát triển ứng dụng trí tuệ nhân tạo”, người đã tận tình giảng dạy và
luôn sẵn sàng hướng dẫn, giải đáp thắc mắc trong suốt quá trình học tập và thực hiệnbài báo cáo này Những kiến thức và sự tận tâm của thầy là động lực lớn giúp chúng
em hoàn thành tốt nhiệm vụ của mình
Bên cạnh đó, chúng em không quên gửi lời cảm ơn đến các bạn lớp 25TH0101
đã luôn đồng hành, chia sẻ và hỗ trợ chúng em trong suốt quá trình học tập
Chúng em rất mong nhận được sự góp ý từ thầy và các bạn để bài báo cáo nàyđược hoàn thiện hơn
Trang 3Mục lục
Lời mở đầu i
Mục lục ii
Mở đầu 1
1 Lý do chọn đề tài 1
2 Mục tiêu của đề tài 1
3 Cấu trúc báo cáo 2
CHƯƠNG 1 Cơ sở lý thuyết 3
1.1 Cơ sở lý thuyết về trí tuệ nhân tạo, máy học 3
1.1.1 Trí tuệ nhân tạo (Artificial Intelligence - AI) 3
1.1.2 Máy học (Machine Learning - ML) 3
1.2 Giới thiệu thuật toán Support Vector Machine (SVM) 3
1.2.1 Khái niệm cơ bản 3
1.2.2 Các khái niệm quan trọng 4
1.2.3 Phân loại SVM 4
1.2.4 Kernel Trick 5
1.2.5 Ưu điểm và nhược điểm của SVM 6
2 Dữ liệu và phương pháp nghiên cứu 7
2.1 Giới thiệu bộ dữ liệu 7
2.2 Phương pháp thuật toán SVM 8
2.2.1 Tiền xử lý dữ liệu: 8
2.2.2 Trích xuất đặc trưng văn bản: 8
2.2.3 Xây dựng mô hình phân loại: 8
Trang 42.2.4 Xây dựng ứng dụng: 9
2.3 Nội dung nghiên cứu 9
2.3.1 Huấn luyện mô hình 9
2.3.2 Xây dựng ứng dụng 10
3 Triển khai demo ứng dụng 13
3.1 Ứng dụng trên nền tảng Streamlit 13
3.1 Hình ảnh, kết quả của ứng dụng 14
4 Kết luận 17
4.1 Những kết quả đạt được 17
4.2 Hạn chế và hướng phát triển 17
4.2.1 Hạn chế: 17
4.2.2 Hướng phát triển: 18
Tài liệu tham khảo 19
Trang 5Mở đầu 1.Lý do chọn đề tài
Trong thời đại cách mạng công nghệ 4.0, email đã trở thành một trong nhữngphương tiện liên lạc quan trọng nhất trong cuộc sống hàng ngày và hoạt động kinhdoanh Tuy nhiên, cùng với sự phát triển của công nghệ, vấn đề thư rác (spam email)ngày càng trở nên nghiêm trọng và gây ra nhiều tác hại cho người dùng
Theo thống kê của Statista, tỷ lệ email spam chiếm khoảng 45-50% tổng lượngemail được gửi trên toàn thế giới Thư rác không chỉ gây phiền toái cho người dùng
mà còn có thể chứa các mối đe dọa an ninh mạng như virus, malware, hoặc các chiêutrò lừa đảo (phishing) Điều này dẫn đến việc lãng phí thời gian, băng thông mạng và
có thể gây thiệt hại kinh tế nghiêm trọng
Việc phát triển một hệ thống phát hiện thư rác hiệu quả là rất cần thiết để bảo vệngười dùng khỏi những tác hại này Đây cũng là một bài toán thú vị trong lĩnh vực xử
lý ngôn ngữ tự nhiên và máy học, cho phép chúng em áp dụng các kiến thức đã họcvào thực tế
2.Mục tiêu của đề tài
Mục tiêu chính của đề tài là nghiên cứu và xây dựng một hệ thống phát hiện thưrác tự động sử dụng thuật toán Support Vector Machine (SVM), giúp phân loại emailthành hai loại: email bình thường (ham) và email spam một cách chính xác và hiệuquả.Mục tiêu cụ thể:
(1) Tìm hiểu tổng quan về vấn đề thư rác và các phương pháp phát hiện hiện tại(2) Nghiên cứu các kiến thức cơ sở về xử lý văn bản và thuật toán SupportVector Machine
(3) Thu thập và xử lý bộ dữ liệu email để huấn luyện mô hình SVM
(4) Nghiên cứu và triển khai thuật toán SVM với các kernel khác nhau cho bàitoán phân loại email
(5) Xây dựng ứng dụng demo có giao diện thân thiện với người dùng
(6) Đánh giá hiệu suất mô hình SVM và đưa ra các định hướng nghiên cứu chocác giai đoạn tiếp theo
Trang 63.Cấu trúc báo cáo
Báo cáo được cấu trúc gồm 3 chương chính:
Chương 1: Trình bày các cơ sở lý thuyết về xử lý ngôn ngữ tự nhiên, máy
học và thuật toán Support Vector Machine được sử dụng trong bài toánphát hiện thư rác
Chương 2: Mô tả chi tiết về bộ dữ liệu sử dụng, các phương pháp tiền xử
lý dữ liệu, và quy trình huấn luyện mô hình SVM
Chương 3: Triển khai ứng dụng demo, trình bày kết quả thực nghiệm và
đánh giá hiệu suất của mô hình SVM
Trang 7CHƯƠNG 1 Cơ sở lý thuyết 1.1.Cơ sở lý thuyết về trí tuệ nhân tạo, máy học
1.1.1 Trí tuệ nhân tạo (Artificial Intelligence - AI)
Trí tuệ nhân tạo là một lĩnh vực của khoa học máy tính tập trung vào việc tạo racác hệ thống có khả năng thực hiện các nhiệm vụ thường đòi hỏi trí tuệ của con người,như học tập, suy luận, nhận thức và xử lý ngôn ngữ tự nhiên
1.1.2 Máy học (Machine Learning - ML)
Máy học là một nhánh của trí tuệ nhân tạo cho phép máy tính học hỏi và cải thiệnhiệu suất từ dữ liệu mà không cần được lập trình cụ thể Trong bài toán phát hiện thưrác, máy học giúp hệ thống tự động nhận biết các mẫu và đặc trưng của email spam
Các loại máy học chính:
- Học có giám sát (Supervised Learning): Sử dụng dữ liệu đã được gán
nhãn để huấn luyện mô hình Trong bài toán này, chúng ta có tập dữ liệuemail đã được phân loại sẵn thành spam và ham
- Học không giám sát (Unsupervised Learning): Tìm ra các mẫu ẩn trong
dữ liệu mà không có nhãn trước
- Học tăng cường (Reinforcement Learning): Học thông qua tương tác
với môi trường và nhận phản hồi
1.2.Giới thiệu thuật toán Support Vector Machine
(SVM)
1.2.1 Khái niệm cơ bản
Support Vector Machine (SVM) là một thuật toán học máy có giám sát
(supervised machine learning) được Vladimir Vapnik phát triển vào những năm 1990.Mặc dù có thể dùng cho cả bài toán hồi quy, SVM đặc biệt mạnh mẽ và được ứngdụng rộng rãi trong các bài toán phân loại (classification)
Ý tưởng cốt lõi của SVM là tìm kiếm một ranh giới quyết định tối ưu để phân
chia dữ liệu thành các lớp khác nhau Ranh giới này được gọi là siêu phẳng(hyperplane) Mục tiêu của SVM là tìm ra siêu phẳng sao cho khoảng cách từ nó đếncác điểm dữ liệu gần nhất của mỗi lớp là lớn nhất có thể Khoảng cách này được gọi là
Trang 8biên độ (margin) Việc tối đa hóa biên độ giúp mô hình có khả năng tổng quát hóa tốthơn khi gặp dữ liệu mới.
Nguyên lý hoạt động: SVM hoạt động dựa trên việc xác định một đường phân
chia (trong không gian 2 chiều) hoặc một siêu phẳng (trong không gian nhiều chiều)
để tách biệt các lớp dữ liệu Điểm mấu chốt là khoảng cách từ siêu phẳng này đến cácđiểm dữ liệu gần nhất của mỗi lớp phải là lớn nhất Những điểm dữ liệu gần nhất nàychính là "bằng chứng" quan trọng nhất để xác định vị trí của siêu phẳng
1.2.2 Các khái niệm quan trọng
Support Vectors (Vector hỗ trợ): Đây là những điểm dữ liệu nằm gần nhất với
siêu phẳng phân chia Chúng là những "chứng nhân" quan trọng nhất giúp SVM xácđịnh vị trí tối ưu của siêu phẳng Điều đặc biệt là chỉ các support vectors này mới ảnhhưởng đến việc xây dựng siêu phẳng tối ưu, các điểm dữ liệu khác nằm xa hơn không
hề tác động đến kết quả
Hyperplane (Siêu phẳng):
- Trong không gian 2 chiều (ví dụ, khi bạn có 2 đặc trưng), siêu phẳng làmột đường thẳng phân chia
- Trong không gian 3 chiều, nó là một mặt phẳng phân chia
- Trong không gian với nhiều hơn 3 chiều, nó là một "siêu phẳng" trừutượng, đóng vai trò tương tự là ranh giới phân chia các lớp dữ liệu
Margin (Lề): Là khoảng cách từ siêu phẳng đến các support vectors gần nhất
của mỗi lớp Mục tiêu của SVM là tối đa hóa biên độ này Một biên độ càng lớn thìkhả năng mô hình hoạt động tốt trên dữ liệu mới (khả năng tổng quát hóa) càng cao, vì
nó tạo ra một "vùng đệm" lớn hơn giữa các lớp
o Chỉ áp dụng được khi dữ liệu có thể tách biệt tuyến tính một cáchtuyệt đối (ví dụ: không có nhiễu, các lớp không chồng lấn)
Trang 9o Trong thực tế, điều kiện này rất khó đáp ứng với dữ liệu thật.
- Soft Margin SVM:
o Đây là phiên bản thực tế hơn, cho phép một số điểm dữ liệu nằmsai phía của siêu phẳng hoặc nằm trong biên độ Điều này giúpSVM xử lý tốt hơn với dữ liệu có nhiễu hoặc các lớp có sự chồnglấn
o Sử dụng một tham số C để điều chỉnh độ "mềm" của biên độ
o C nhỏ: Cho phép nhiều điểm lỗi hơn (biên độ mềm hơn), dẫn đến
mô hình đơn giản hơn và ít bị quá khớp (underfitting)
o C lớn: Ít cho phép điểm lỗi hơn (biên độ cứng hơn), cố gắng phânloại đúng mọi điểm, dễ dẫn đến quá khớp (overfitting) nếu dữ liệu
có nhiễu
1.2.4 Kernel Trick
Một trong những sức mạnh lớn nhất của SVM là khả năng xử lý dữ liệu khôngthể phân tách tuyến tính nhờ vào Kernel Trick Kỹ thuật này ánh xạ dữ liệu từ khônggian ban đầu (có thể không phân tách được) sang một không gian có chiều cao hơn,nơi mà dữ liệu có thể trở nên phân tách tuyến tính Điều này được thực hiện thông quacác hàm kernel mà không cần tính toán tọa độ thực sự trong không gian mới, giúp tiếtkiệm chi phí tính toán
- Linear Kernel (Kernel tuyến tính):
o Là dạng đơn giản nhất, sử dụng khi dữ liệu có thể tách biệt tuyến tínhngay trong không gian ban đầu
o Nhanh chóng và hiệu quả
o Thường phù hợp với dữ liệu có số chiều cao như dữ liệu văn bản (ví dụ:phân loại spam)
- Non-linear Kernel (Kernel phi tuyến tính):
o Sử dụng khi dữ liệu không thể tách biệt tuyến tính trong không gian banđầu
o RBF (Radial Basis Function) Kernel: Đây là kernel phổ biến và mạnh
mẽ nhất cho dữ liệu phi tuyến tính Nó hiệu quả trong nhiều trường hợp
và là lựa chọn mặc định tốt khi bắt đầu với SVM phi tuyến
Trang 10o Polynomial Kernel: Sử dụng một đa thức bậc cao để ánh xạ dữ liệu Bạncần chọn bậc của đa thức.
o Sigmoid Kernel: Có cấu trúc tương tự như hàm kích hoạt sigmoid trongmạng nơ-ron nhân tạo
1.2.5 Ưu điểm và nhược điểm của SVM
Hiệu quả với dữ liệu cao chiều: Hoạt
động tốt khi số lượng đặc trưng lớn (như
trong văn bản, hình ảnh)
Thời gian huấn luyện lâu: Với tập dữ
liệu lớn, việc huấn luyện có thể mấtnhiều thời gian
Bộ nhớ hiệu quả: Chỉ lưu trữ các
support vectors, không cần giữ toàn bộ
tập huấn luyện
Nhạy cảm với tham số: Hiệu quả mô
hình phụ thuộc vào việc chọn tham số
như C và gamma.
Linh hoạt: Dễ dàng mở rộng với các
hàm kernel khác nhau (tuyến tính và phi
tuyến tính)
Không cung cấp xác suất trực tiếp:
SVM chỉ đưa ra quyết định phân lớp,không trả về xác suất một cách tự nhiên
Ít bị quá khớp (Overfitting): Đặc biệt
khi số chiều > số mẫu, nhờ tối đa hóa
biên độ quyết định
Yêu cầu chuẩn hóa dữ liệu: Cần tiền xử
lý dữ liệu (chuẩn hóa, scale) để đảm bảo
mô hình hoạt động hiệu quả
Trang 112 Dữ liệu và phương pháp nghiên cứu
2.1.Giới thiệu bộ dữ liệu
Trong nghiên cứu này, mục tiêu chính là xây dựng mô hình phát hiện thư rác(spam) trong các tin nhắn văn bản Đây là một trong những bài toán quan trọng tronglĩnh vực xử lý ngôn ngữ tự nhiên (NLP) và học máy, có ứng dụng thực tiễn cao trongviệc bảo vệ người dùng khỏi những tin nhắn quảng cáo, lừa đảo hoặc không mongmuốn
Bộ dữ liệu được sử dụng là spam.csv đã được gán nhãn sẵn, gồm 2 cột chính:
- Category: là nhãn phân loại của tin nhắn, gồm hai giá trị là "spam" (thư rác) và
"ham" (thư bình thường)
- Message: là nội dung của tin nhắn dưới dạng văn bản thuần (text).
Bộ dữ liệu này thường được sử dụng trong các nghiên cứu và bài tập về phân loạivăn bản Số lượng mẫu đủ lớn (hơn 5000 dòng) và dữ liệu đa dạng về từ vựng giúp môhình có thể học được đặc trưng phân biệt giữa thư rác và thư bình thường
Vì vậy, mục tiêu nghiên cứu cụ thể của đề tài gồm:
(1) Tiền xử lý dữ liệu để chuẩn hóa nội dung tin nhắn, loại bỏ nhiễu và chuẩn
bị cho bước trích xuất đặc trưng Xây dựng mối quan hệ ngữ nghĩa bộ bacho các đối tượng trên hình ảnh
(2) Trích xuất đặc trưng văn bản từ nội dung tin nhắn bằng các phương pháp
TF-IDF để biến dữ liệu văn bản thành dạng số Tạo đồ thị tri thức cho cáctập dữ liệu hình ảnh
(3) Xây dựng mô hình học máy có khả năng phân loại tin nhắn là “thư rác”
hay “thư bình thường”, tập trung vào sử dụng thuật toán SVM Xây dựng
mô hình tìm kiếm ảnh theo ngữ nghĩa
(4) Huấn luyện và đánh giá mô hình trên tập dữ liệu có gán nhãn sẵn, sử
dụng các tiêu chí đánh giá như Accuracy, Precision, Recall và F1-score
(5) So sánh hiệu năng của các mô hình khác nhau để chọn ra mô hình phù
hợp nhất với dữ liệu và mục tiêu ứng dụng
Trang 12(6) Xây dựng ứng dụng kiểm tra thư rác, cho phép người dùng nhập nội
dung tin nhắn và nhận kết quả phân loại tự động
2.2.Phương pháp thuật toán SVM
- Chuẩn hóa khoảng trắng, loại bỏ các khoảng trắng dư thừa giữa các từ
- Kiểm tra độ dài chuỗi đầu vào, đảm bảo chuỗi không quá ngắn (dưới 3 kýtự) hoặc quá dài (trên 1000 ký tự), giúp mô hình hoạt động hiệu quả và ổnđịnh
2.2.2 Trích xuất đặc trưng văn bản:
Sau khi tiền xử lý, các tin nhắn văn bản được chuyển đổi thành vector số thôngqua kỹ thuật TF-IDF TF-IDF giúp đánh giá mức độ quan trọng của từng từ trong mộtvăn bản cụ thể so với toàn bộ tập dữ liệu Trong quá trình này, nhóm áp dụng:
- Loại bỏ các từ dừng tiếng Anh (stop words) – những từ thường xuất hiện
nhưng ít mang ý nghĩa phân loại
- Giới hạn từ khóa được chọn làm đặc trưng bằng cách bỏ qua những từ
quá phổ biến (xuất hiện trên 90% văn bản) hoặc quá hiếm (xuất hiện dưới
5 văn bản)
2.2.3 Xây dựng mô hình phân loại:
Sau khi có dữ liệu đầu vào ở dạng vector TF-IDF, nhóm tiến hành chia dữ liệu
thành hai phần: 80% dùng để huấn luyện và 20% để kiểm thử, đảm bảo mô hình
được học trên phần lớn dữ liệu nhưng vẫn giữ lại một phần chưa từng thấy để đánh giákhách quan
Mô hình được lựa chọn là LinearSVC, là phiên bản SVM có hiệu năng cao khi
Trang 13spam và ham, nhóm áp dụng kỹ thuật cân bằng trọng số (class_weight='balanced')giúp tăng độ chính xác khi dự đoán với lớp dữ liệu nhỏ hơn (spam).
Cuối cùng, mô hình được huấn luyện và đánh giá hiệu suất dựa trên các chỉ số:
Accuracy, Precision, Recall và F1-score.
2.2.4 Xây dựng ứng dụng:
o Tích hợp mô hình SVM đã huấn luyện vào một ứng dụng đơn giản, sử
dụng giao diện lập trình Streamlit.
o Ứng dụng nhận đầu vào là một tin nhắn văn bản, xử lý qua các bước tiền
xử lý và trích xuất đặc trưng, sau đó đưa ra dự đoán “spam” hoặc “ham”
2.3.Nội dung nghiên cứu
2.3.1 Huấn luyện mô hình
Phần này trình bày chi tiết các phương pháp cũng như các bước cơ bản đã đượcxác định trong công việc và giải thích chi tiết cách thức ứng dụng các thuật toán họcmáy để phân loại email thành hai danh mục khác nhau: email spam và email ham,đánh giá thuật toán nào sẽ dự đoán đầu vào một cách chính xác hơn Mục đích củaviệc phát triển mô hình này là nhận diện và phân loại email nhanh chóng và chính xác