71 Trang 8 vi DANH M C CÁC ỤKÝ HIỆU VÀ CH VI T T T ỮẾẮKí hiệu Tiếng Anh Tiếng Việt SMS Short Message Services Dịch vụ tin nhắn ngắn qua mạng di động Spam SMS Spam SMS Tin nhắn rác Telco
Trang 1PHÂN LỚP ĐA NHÃN VÀ ỨNG DỤNG CHO BÀI TOÁN
PHÂN LOẠI TIN NHẮN VĂN BẢN SMS
LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN
Trang 2B GIÁO D Ộ ỤC VÀ ĐÀO TẠ O
-
Đào Xuân Dương
Chuyên ngành : Công ngh thông tin ệ
LUẬN VĂN THẠC SĨ KỸ THU T Ậ CÔNG NGH THÔNG TIN Ệ
NGƯỜI HƯỚNG DẪN KHOA HỌC :
TS TRỊNH ANH PHÚC
Hà N ội – 2019
Trang 3i
L I C Ờ ẢM ƠN
Luận ă v n t nghi ốt ệp thạc sĩ chuyên ngành Công ng thông tin hệ được hoàn thành t ại Trường Đại học Bách Khoa Hà Nội Để có được b n lu n v n t t nghi p ả ậ ă ố ệnày, xin lòng b chân thành và sâu tôi tỏ iết ơn sắc đế Trường Đại học Bách Khoa n
Hà Nội Viện Công nghệ thông tin và Truyền thông đặc, , biệt Tlà S Trịnh Anh Phúc
đã trực tiếp h ng n, dìu dướ dẫ ắt, giúp đỡ tôi v nh g c ới ữn hỉ dẫn k a ho học quý giá trong suốt quá t nh rì tri khai, n iên cển gh ứu và ho thành àn đề tài nghiên c u cứ ủa mình Tôi xin ch thành c m ân ả ơncác hầ cô t y, giáo c p g ng d y, uyđãtrự tiế iả ạ tr ền đạt
nh ng kữ iến thức khoa h c chuyên ngành Công nghệ t ng tin cho n thân ọ hô bả tôi trong toàn b thộ ời gian c khó h ủa a ọc
Tôi xin trân trọng cảm ơn các thầy cô trong hội đồng chuyên môn đã đóng góp các ý kiến quý báu để tôi hoàn thiện luận văn
Cuối cùng, tôi muốn gửi lời cảm ơn sâu sắc đến gia đình, bạn bè, đồng nghiệp
đã giúp đỡ, trao đổi và chia sẻ những kinh nghiệm về chuyên môn, đóng góp các ý kiến quý báu Đặc biệt là những người đã đóng góp, hỗ trợ, cho phép tôi thu thập và chia sẻ các dữ liệu thực nghiệm để có thể hoàn thành quá trình nghiên cứu luận văn này
Mặc dù có nhiều cố gắng để thực hiện đề tài, song do mới làm quen với công tác nghiên cứu khoa học, tiếp cận với công nghệ mới cũng như thời gian có hạn nên không thể tránh khỏi những thiếu sót nhất định Tôi rất mong được sự góp ý của Quý thầy, cô và các bạn bè đồng nghiệp để đề tài được hoàn chỉnh hơn
X chân thành in cảm ơn!
Trang 4ii
L I Ờ CAM ĐO ANTôi xin cam đoan đây là bản luận văn của riêng tôi Các kết quả nêu trong luận văn là chính xác và trung thực chưa từng được ai công bố trong bất kỳ đề tài,
công trình nghiên cứu nào khác
Tôi xin cam đoan rằng các thông tin trích dẫn trong luận văn đều đã được chỉ
rõ nguồn gốc
Ngày 01 tháng n 10 ăm 2019
Trang 5iii
M C L C Ụ Ụ
L I CỜ ẢM ƠN i
L I Ờ CAM ĐOAN ii
M C L C Ụ Ụ iii DANH M C CÁC Ụ KÝ HIỆU VÀ CH VI T T T viỮ Ế Ắ DANH M C CÁC BỤ ẢNG 1
DANH MỤC CÁC HÌNH VẼ 2
PHẦN MỞ ĐẦU 3
1 Lý do chọn đề tài 3
2 Mục đích nghiên cứu 4
3 Đối tượng, phạm vi nghiên cứu, phương pháp nghiên cứu 4
4 Bố cục của luận văn 5
5 Đóng góp của luận văn 6
CHƯƠNG 1 - TỔNG QUAN VỀ DỮ LIỆU TIN NHẮN RÁC VÀ CÁC PHƯƠNG PHÁP PHÂN LOẠI TIN NHẮN RÁC 7
1.1 Tin nhắn rác và thực trạng tin nhắn rác ở Việt Nam 7
1.2 Đặc điểm của tin nhắn văn bản tiếng Việt 9
1.2.1 Đặc điểm tin nhắn văn bản tiếng Việt 9
1.2.2 Cách phân loại tin nhắn spam SMS 10
1.3 Tác hại của tin nhắn rác (spam SMS) 11
1.4 Phương pháp phân loại spam SMS 12
1.4.1 D a v ự ào nguồn phát tán tin nhắn rác 12
1.4.2 Lọc tin nhắn dựa vào nội dung 13
Tổng kết chương 1 14
CHƯƠNG 2 - CƠ SỞ LÝ THUYẾT 15
2.1 Cơ sở lý thuyết về xử lý ngôn ngữ 15
2.1.1 Xử lý ngôn ngữ tự nhiên 15
Trang 6iv
2.1.2 Kỹ thuật tách từ (Words segmentation) 16
2.1.3 Một số phương pháp trích chọn đặc trưng 17
2.2 Phân lớp nhị phân/đơn nhãn (Binary Classification/Single Label Classification) 22
2.3 Phân lớp đa nhãn (Multi-Label Classification) 23
2.3.1 Bài toán phân lớp đa nhãn tổng quát 23
2.3.2 Phân biệt phân lớp đa nhãn (Multi Label) với đa lớp (Multi- -Class) 24
2.3.3 Các kỹ thuật phân lớp đa nhãn 24
2.3.4 Lựa chọn thuật toán 25
2.4 Cơ sở mô hình thống kê 31
2.4.1 Thuật toán Naive Bayes 31
2.4.2 Thuật toán SVM 32
2.4.3 Thuật toán Logistic Regression 35
2.5 Các tiêu chí đánh giá mô hình phân lớp đa nhãn 37
2.5.1 Các độ đo dựa trên mẫu 37
2.5.2 Các độ đo dựa trên nhãn 38
2.5.3 Thời gian chạy thuật toán 40
2.5.4 Lựa chọn các tiêu chí đánh giá 41
Tổng kết chương 2 41
CHƯƠNG 3 - THU THẬP VÀ TIỀN XỬ LÝ DỮ LIỆU 42
3.1 Thu thập và gán nhãn dữ liệu 42
3.1.1 Dữ liệu thực nghiệm 42
3.1.2 Dữ liệu phân lớp 43
3.1.3 Gán nhãn và phân bố dữ liệu theo nhãn 44
3.1.4 Từ khóa và đặc trưng của dữ liệu thực nghiệm theo nhãn 46
3.2 Tiền xử lý dữ liệu 50
3.2.1 Chuẩn hoá từ (Sterming) 51
3.2.2 Làm sạch dữ liệu (clean data) 52
3.2.3 Loại bỏ StopWords (remove stopwords) 52
Trang 7v
3.2.4 Tách từ (words segmentation) 52
3.3 Trích chọn đặc trưng và véc tơ hĩa từ với TF-IDF 53
Tổng kết chương 3 54
CHƯƠNG 4 - KẾT QUẢ VÀ BÀN LUẬN 55
4.1 Mơ hình tổng quát bài tốn 55
4.2 Mơi trường thực nghiệm 56
4.2.1 Cấu hình phần cứng thực nghiệm 56
4.2.2 Các thư viện sử dụng 56
4.3 Lựa chọn thuật tốn huấn luyện 56
4.4 Thực nghiệm và đánh giá kết quả 57
4.5 Tối ưu tham số mơ hình với GridSearch 58
4.6 Kết quả thực nghiệm 60
4.6.1 Binary Relevance với Gaussian Nạve Bayes, SVC và Logistic Regression 60
4.6.2 Classifier Chains với Gaussian Nạve Bayes 64
4.6.3 Multi-label K-Nearest Neighbours (ML-kNN) 65
4.7 Nhận xét và Đánh giá 67
4.7.1 So sánh chất lượng phân lớp các thuật tốn trên 2 bộ dữ liệu thực nghiệm 67
4.7.2 So sánh ảnh hưởng của độ lớn dữ liệu đối với thời gian chạy các thuật tốn 68
4.7.3 So sánh chất lượng phân loại trước và sau khi đề xuất phương pháp cải tiến cơng đoạn tiền xử lý dữ liệu 69
4.7.4 Nhận xét 70
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 71
1 Các kết quả chính đạt được trong luận văn 71
2 Hạn chế của luận văn 71
3 Hướng nghiên cứu tiếp theo 72 TÀI LIỆU THAM KH O 73Ả
Trang 8vi
DANH M C CÁC Ụ KÝ HI ỆU VÀ CH VI T T T Ữ Ế Ắ
SMS Short Message Services Dịch vụ tin nhắn ngắn qua mạng di động
Telco Telecom Company = Operator Nhà cung cấp dịch vụ viễn thơng
BrandName BrandName Tên thương hiệu (hiển thị thay cho số điện thoại người gửi)
AI Artificial Intelligence Trí tuệ nhân tạo
NLP Natural Language Processing Xử lý ngơn ngữ tự nhiên
DL Deep Learning Kỹ thuật học máy dựa trên mạng nơ ron (Neural network) SVM Support Vector Machine Máy vectơ hỗ t rợ
TF-IDF Term Frequency Inverse Document Frequency Trọng s v t su t và quan trọng của t ố ề ầnừ ấ độ
BOW Bag of Words Mơ hình xử lý ngơn ngữ tự nhiên tiếp cận theo hướng dãy từ N-Gram Statistical N-Gram Language Modeling Mơ hình ngơn Gram ngữ thống kê N-StopWords Từ dừng/từ loại Những từ mang ý nghĩa cảm thán, xuất hiện nhiều trong văn bản, nhưng
khơng lại mang nhiều ý nghĩa MLC Multi-Label Classiffication Phân lớp đa nhãn
FS Feature Selection L a ch ự ọn đặc ư tr ng
OVR One-vs-against-rest, one-vs-all, one-rest hay cịn gọi là one
-against-rest, hoặc one-against all-
Phương pháp phân loại mỗi lớp với mọi lớp cịn lại
BR Binary Relevance Mơ hình phân lớp tương hợp nhị phân MNB Multinomial Nạve Bayes Mơ hình Multinomial Nạve Bayes GNB Gaussian Naive Bayes Mơ hình Gaussian Nạve Bayes
ML-kNN Multi-Label k Nearest Neighbour Phương pháp phân lớp đa nhãn k Láng giềng gần nhất
Bộ TT&TT Ministry of Information and
Communications Bộ Thơng tin và Truyền thơng
Trang 9Phân lớp đa nhãn và ứng dụng cho bài tốn phân loại tin nhắn văn bản SMS Trang 1
B ng 1.1 ả Thố ng kê s lư ng tin nh n qu ng cáo t 2015-2017 (Ngu n VnCert) 8 ố ợ ắ ả ừ ồ
B ng 1.2 ả Thố ng kê s lư t phố ợ ản ánh tin rác qua các năm 2015-2018 (theo VnCert) 8
Bảng 1 So sánh các c u trúc Tin nh n SMS v 3 ấ ắ ới thư điệ ửn t (email) 14
B ng 2.1 ả Ví dụ 2 n i dung n i dung tin nh n cho n-gram 19 ộ ộ ắ
Bảng 2.2 V í dụ túi t v ng unigram 19 ừ ự
Bảng 2.3 Ví dụ vec-tơ đặc trưng của unigram 20
B ng 2.4 ả Ví dụ túi t v ng bi-grams 20 ừ ự
B ng 2.5 ả Ví dụ vec-tơ đặc trưng của bi-grams 20
B ng 2.6 ả Ví dụ bài tốn phân l p Binary Relevance 26 ớ
B ng 2.7 ả Các b phân nhãn nh ộ ị phân tương ứng với 4 nhãn 26
B ng 2.8 ả Ví dụ bài tốn phân l p Classifier Chain 28 ớ
Bảng 2.9 Các b ộ phân nhãn tương ứng v i 4 nhãn trong Classifier Chains 28 ớ
B ng 2.10 ả Các tham s s dố ử ụng đánh giá mơ hình phân lớp 41
Bảng 3 B ng s u th ng kê B d u th 1 ả ốliệ ố ộ ữliệ ực nghiệm 1 42
B ng 3.2 ả B ng s u th ng kê B d u thả ốliệ ố ộ ữliệ ực nghiệm 2 42
B ng 3.3 ả D u phân l p 43 ữliệ ớ
Bảng 3.4 Phân bố ữ liệ d u th c nghi m vào các nhĩm nhãn 44 ự ệ
B ng 3.5 ả B t ộ ừ điển chu n hĩa t ẩ ừviết tắ ế t ti ng Vi t 51 ệ
B ng 4.1 ả C u hình ph n c ng th c nghi m 56 ấ ầ ứ ự ệ
B ng 4.2 ả Các gĩi thư viện x lý chính 56 ử
B ng 4.3 ả So sánh chất lượng phân l p c a thuớ ủ ật tốn Binany Relevance sử ụ d ng 3
mơ hình Gaussian Nạve Bayes, SVC và Logistic Regression 60
B ng 4.4 ả Chỉ ố đánh giá dự s a trên nhãn c a thu t tốn BR s d ng GNB 61 ủ ậ ử ụ
B ng 4.5 ả Chỉ ố đánh giá dự s a trên nhãn c a thu t tốn BR s d ng SVC 62 ủ ậ ử ụ
B ng 4.6 ả Chỉ ố đánh giá dự s a trên nhãn c a thu t tốn Binary Relevance s d ng ủ ậ ử ụ
Logistic Regression 63
B ng 4.7 ả Các độ đo dựa trên m u c a thu t tốn Classifier Chains 64 ẫ ủ ậ
B ng 4.8 ả Chỉ ố đánh giá dự s a trên nhãn c a Classifier Chains v i GNB 64 ủ ớ
B ng 4.9 ả Các tiêu chí đánh giá dựa trên m u c a thu t tốn ML-kNN 65 ẫ ủ ậ
B ng 4.10 ả Chỉ ố đánh giá dự s a trên nhãn c a thu t tốn ML-kNN 65 ủ ậ
B ng 4.11 ả B ng so sánh chả ất lượng phân l p sau khi tớ ối ưu mơ hình 66
B ng 4.12 ả So sánh chất lượng phân l p các thuớ ật tốn trên bộ ữ liệ d u thực nghiệm 1 67
B ng 4.13 ả So sánh chất lượng phân l p các thuớ ật tốn trên bộ ữ liệ d u thực nghiệm 2 67
B ng 4.14 ả So sánh chất lượng phân loại trước và sau khi cải tiến cơng đoạ n chu n ẩ
hĩa t ng Vi t 69 ừtiế ệ
Trang 10Phân lớp đa nhãn và ứng dụng cho bài tốn phân loại tin nhắn văn bản SMS Trang 2
DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Thố ng kê tin nh n rác t các nhà m ng Viắ ừ ạ ệt Nam năm 2018 9 Hình 1.2 Các thành ph n c a m t tin nhầ ủ ộ ắn SMS được gửi đi .13 Hình 1.3 C u trúc m t tin nh n SMS 13 ấ ộ ắ
Hình 2.1 X lý ngơn ng t nhiên là vử ữ ự ấn đề khĩ c a AI 15 ủ
Hình 2.2 Ví dụ cơng đoạ n tách t trong ti ng Vi t 16 ừ ế ệ
Hình 2.3 Ví dụ ừ điể t n StopWords 21 Hình 2.4 T n suầ ất xuất hiệ n của 50 StopWords thường g p trong các cu n sách 21 ặ ố
Hình 2.5 Mơ hình x lý phân nhãn d u nh phân 22 ử ữliệ ị
Hình 2.6 Thuậ t tốn phân l p Binary Relevance 27 ớ
Hình 2.7 Mơ hình thuật tốn chuỗi bộ phân l p Classifier Chains 29 ớ
Hình 2.8 Thuậ t tốn Classifer Chains 29 Hình 2.9 Thuật tốn ML-kNN 30 Hình 2.10 Mơ tả ề v siêu ph ng trong SVM 33 ẳ
Hình 2.11 Mơ tả ề v đư ng biên trong SVM 34 ờ
Hình 2.12 Mơ tả ề đườ v ng biên cĩ margin trong SVM .34 Hình 2.13 Phương pháp mộ t-ch i-t t cả ọ ấ (one vs - -all) 35 Hình 2.14 Logistic Regression v i 2 nhĩm (class) 35 ớ
Hình 2.15 Đồ ị th hàm sigmoid 36 Hình 3.1 Giả đị nh m i quan h gi a các nhãn 44 ố ệ ữ
Hình 3.2 Phân b tin nh n theo nhãn 45 ố ắ
Hình 3.3 Phân b tin nhố ắn đa nhãn 45 Hình 3.4 Sơ đồ WordCloud th hi n t n su t xu t hiệể ệ ầ ấ ấ n c a các t khĩa theo nhãn 46 ủ ừ
Hình 4.1 Mơ hình t ng quát bài tốn 55 ổ
Hình 4.2 Module t ng phân loự độ ại đa nhãn tin nhắn 58 Hình 4.3 Chiến lượ c tìm ki m tham s tế ố ối ưu của Grid Search 59 Hình 4.4 Biểu đồ so sánh các ch s ỉ ố đánh giá theo mẫu c a thu t tốn Binary ủ ậ
Relevance trên 3 mơ hình Gaussian Nạve Bayes, SVC và Logistic Regression .60 Hình 4.5 Biểu đồ các ch s ỉ ố đánh giá theo nhãn thuật tốn Binary Relevance trên 3
mơ hình Gaussian Nạve Bayes, SVC và Logistic Regression 61 Hình 4.6 Biểu đồ so sánh s ự ảnh hưởng độ ớ l n d li u (2 gĩi th c nghi m) lên các ữ ệ ự ệ
chỉ ố s Hamming-Loss, One-Error, Ranking loss và Average Presision .68 Hình 4.7 Biểu đồ so sánh s ự ảnh hưởng độ ớ l n d li u (2 gĩi th c nghi m) lên các ữ ệ ự ệ
chỉ ố s Accuracy Score, Precision Score, Recall Score và f1 Score 68 Hình 4.8 So sánh ảnh hưởng của độ ớ l n d u ữliệ đối với thờ i gian chạy các thuậ t tốn .68
Trang 11Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 3
PHẦN MỞ ĐẦU
Nội dung:
Phần này sẽ giới thiệu khái quát về mục tiêu của Đề tài và vai trò của việc
nghiên cứu “Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản
SMS” trong bài toán phân loại, trích rút thông tin từ tin nhắn tiếng Việt nói riêng và các bài toán khác trong ngành xử lý ngôn ngữ tự nhiên nói chung
1 Lý do chọn đề tài
Khám phá tri thức và khai phá dữ liệu ngày càng được ứng dụng rộng rãi nhằm khám phá các thông tin hữu dụng trong các cơ sở dữ liệu (databases) hay kho dữ liệu (data respositories) nhằm tìm kiếm các mẫu hay các quy luật (pattern) mới và hữu dụng
mà chưa từng được biết trước đó
Hiện nay hầu hết các thiết bị di động đều bị ảnh hưởng bởi lượng lớn tin nhắn quảng cáo, tin nhắn rao vặt, tin nhắn rác Thực sự không phải tin nhắn nào cũng không hữu ích, mà cần theo dõi đánh giá theo cả ngữ cảnh của người dùng Ví dụ, nếu người dùng thiết bị di động làm trong lĩnh vực marketing, bất động sản thì các tin nhắn này lại không được coi là tin nhắn rác vì nó chứa thông tin mà người dùng quan tâm Khái niệm lọc ở đây là lọc các thông tin hữu ích với người dùng phân theo các đề mục khác nhau và làm thế nào để rút trích được những tri thức cần thiết, biến chúng có thể trở lên có ích, đó cũng là các vấn đề chính của luận văn này
Các kỹ thuật học máy hiện nay dựa trên cơ sở các mô hình xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP), trong đó ngôn ngữ tiếng Việt là đối tượng nghiên cứu Các tin nhắn văn bản SMS tiếng Việt có đặc điểm đặc biệt là hầu hết là tiếng Việt không dấu, do đó rất khó áp dụng cho các các mô hình NLP hoặc độ chính xác không cao
Các phần mềm lọc tin nhắn hiện nay hoặc không đủ mạnh hoặc chưa hiệu quả đối với các tin nhắn tiếng Việt, do đó cần nghiên cứu một hướng tiếp cận mới để ngoài việc lọc tin nhắn còn có thể khai thác các thông tin hữu ích ẩn chứa trong tin nhắn sms Một số nghiên cứu gần đây như “Chặn tin nhắn rác (Spam) với Bayes ngây thơ - RPubs” [10], giới thiệu một giải pháp hoàn chỉnh đã được Viettel phát triển thành sản phẩm thương mại Tuy nhiên, giải pháp mới áp dụng cho các tin nhắn tiếng Anh và
Trang 12Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 4
chưa có nội dung tiếng Việt
Yêu cầu đặt ra là tìm một phương pháp phân loại tin nhắn tiếng Việt một cách hiệu quả, phục vụ cho nhiều mục đích: phân loại thông minh, lọc spam, trích rút thông tin cho các mục đích nghiên cứu, kinh doanh, tự động phân loại đối tượng,
Chính vì các lý do nêu trên, tác giả chọn hướng nghiên cứu “Phân lớp đa nhãn
và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS” làm đề tài cho luận văn
của mình
2 Mục đích nghiên cứu
Tìm hi u các k ể ỹthuậ ọt h c máy ng d ng trong bài toán phân loứ ụ ại thư rác, đặc
biệt là các kỹ thuật gán đa nhãn và các công nghệ liên quan
Xây d ng t p d u (t 400-500) tin nh n cá nhân, qu ng cáo, rao v t, lự ậ ữ liệ ừ ắ ả ặ ừa đảo… tiếng Vi t (ho c ti ng Vi t không d u) làm tiệ ặ ế ệ ấ ền đề cho quá trình h c máy ọnày
Gắn đa nhãn cho các dữliệu để chuẩn b cho viị ệc huấn luy n và test ệ
S d ng b lử ụ ộ ọc thông minh để ọc nhữ l ng tin nh n h u ích ắ ữ
Ứng d ng các k thu t phân lụ ỹ ậ ớp đa nhãn để ế ớ ti n t i xây d ng m t ng d ng ự ộ ứ ụ
có khả ă n ng phân lo i, trích rút thông tin t các tin nh n spam m t cách t ng ạ ừ ắ ộ ự độ
3 Đối tượng, phạm vi nghiên cứu, phương pháp nghiên cứu
Đố i tượng nghiên cứu của luận văn là các tin nhắn văn bản Tiếng Việt, các kỹ thuật
học máy ứng dụng trong bài toán xử lý ngôn ngữ tự nhiên trong miền dữ liệu văn bản tiếng Việt, đặc biệt là các kỹ thuật gán đa nhãn và các công nghệ liên quan
Phạm vi nghiên cứu của luận văn được giới hạn ở phương pháp tiền xử lý dữ liệu,
lựa chọn đặc trưng và áp dụng thuật toán phân lớp đa nhãn văn bản tiếng Việt, tập trung vào miền ứng dụng gán đa nhãn và trích rút các thông tin từ các tin nhắn văn bản tiếng Việt
Phương pháp nghiên cứu của luận văn là nghiên cứu lý thuyết, tìm hiểu các kỹ thuật học máy ứng dụng cho bài toán phân loại tin nhắn văn bản SMS: kỹ thuật phân lớp đơn nhãn, đa nhãn, đặc biệt là kỹ thuật gán đa nhãn (multi label classification) Luận văn cũng nghiên cứu các thuật toán, mô hình, các kỹ thuật tối ưu, ứng dụng trong bài toán đặt ra như Binary Revelance, Classifier Chains, ML-
Trang 13Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 5
kNN, để áp dụng trong quá trình thực nghiệm
Sau khi nghiên cứu lý thuyết về các mô hình phân loại, luận văn sử dụng các thuật toán, mô hình đã nghiên cứu để cài đặt thực nghiệm trên kho dữ liệu tin nhắn tiếng Việt đã gán nhãn để kiểm chứng đánh giá các đề xuất của luận văn
4 Bố cục của luận văn
Bố cục của luận văn gồm phần mở đầu và bốn chương nội dung, phần kết luận
và danh mục các tài liệu tham khảo
✓ Mở đầu: Trình bày một cách khái quát về luận văn, nhiệm vụ cũng nhưcác phương pháp tiếp cận giải quyết vấn đề đặt ra
✓ Chương 1 Tổng quan vể dữ liệu Tin nhắn rác (Spam SMS) và các
phương pháp phân loại Spam SMS: Trình bảy tổng quan về đối tượng nghiên cứu là các tin nhắn văn bản tiếng Việt (SMS), các vấn đề cần giải quyết và các
ph ng pháp ươ phân loại tin nhắn spam SMS
Chương 2 Cơ sở lýthuyết: Sơ lược các khái niệm, các kỹ thuật xử lý dữ liệu văn bản tiếng Việt, các mô hình xử lý ngôn ngữ, các cơ sở ngôn ngữ thống kê, xác xuất, Chương này cũng giới thiệu về các thuật toán được lựa chọn, các tiêu chí để đánh giá mô hình phân lớp đa nhãn trong quá trình thực nghi m ệ
✓ Chương 3 Thu thập và tiền xử lý dữ liệu:Mô t ả công đoạn thu th p và ti n x lý ậ ề ử
d u tin nhữliệ ắn văn bản SMS Sau khi phân tích các đặc điểm, đặc trưng, phân chia các b d u, l a ch n các phân l p và gán nhãn cho các d u, luộ ữ liệ ự ọ ớ ữ liệ ận văn thực
hiện các công đoạn ti n x ề ửlý dữ liệu trước khi tiến hành cài đặt thực nghiệm
✓ Chương 4 Cài đặt thực nghiệm và đánh giá: Chương này mô tả chi tiết phương pháp gi i quy t vả ế ấn đề cho bài toán phân lo i tin nhạ ắn văn bản SMS và tri n khai ểcác thi t k ế ế cài đặt thu t toán và các mô hình x ậ ử lý Sau khi thu được các k t qu ế ảthực nghi m, luệ ận văn tiến hành phân tích, nhận xét, đánh giá các kết qu rút ra t ả ừquá trình th c nghi m v i mong muự ệ ớ ốn đề xu t mô hình phù h p v i bài toán và ấ ợ ớhướng c i tiả ến trong tương lai
✓ Kết luận và Hướng phát triển: T ng k t các kổ ế ết quả ủ c a luận văn, những h n ch ạ ế
và hướng nghiên c u phát triứ ển trong tương lai
Trang 14Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 6
5 Đóng góp của luận văn
Luận văn hướng tới mục tiêu đưa nhìn ra cái tổng quát cho bài toán phân loại và trích rút thông tin từ tin nhắn văn bản SMS tiếng Việt Luận văn cũng đã thu thập và xây dựng được một CSDL tin nhắn văn bản SMS giúp giải quyết vấn đề kho dữ liệu các bài toán xử lý ngôn ngữ tự nhiên trong điều kiện chúng ta chưa có một kho dữ liệu chuẩn được công bố rộng rãi cho các nghiên cứu trong lĩnh vực tương tự
Luận văn cũng đề xuất một hướng giải quyết cho bài toán tiền xử lý dữ liệu tin nhắn văn bản tiếng Việt trong thực tế dữ liệu có nhiều điểm đặc thù như phổ biến các
từ viết tắt, cố tình sai chính tả, lách luật, “teen code”,
Bên cạnh đó, luận văn đã nghiên cứu, thực nghiệm các mô hình xử lý ngôn ngữ
tự nhiên và cố gắng cài đặt, triển khai hướng tiếp cận giải quyết bài toán phân loại đa nhãn và các nhãn có mối liên hệ với nhau Luận văn cũng cố gắng thử nghiệm các phương pháp tối ưu các mô hình với mong muốn cải tiến hiệu quả của các mô hình trong tương lai
Để đánh giá sự phù hợp của mô hình trong các bài toán cụ thể ở đây là bài toán - phân loại đa nhãn văn bản tiếng Việt trên bộ dữ liệu đã thu thập, luận văn thực hiện việc phân tích, so sánh các tiêu chí đánh giá trên mỗi mô hình lựa chọn thông qua quá trình thực nghiệm; từ đó rút ra sự đánh giá độ phù hợp và đề xuất mô hình ưu việt nhất cho bài toán đặt ra
Luận văn cũng hướng tới xây dựng một ứng dụng ngoài mục đích ngăn chặn tin nhắn rác theo hướng tiếp cận mới, còn có thể phân tích đánh giá, thu thập các tri thức
từ các thông tin tưởng chừng như vô ích, mở ra một hướng mới trong việc khai phá tri thức và ứng dụng xử lý ngôn ngữ trên máy tính
Trang 16Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 7
CHƯƠNG 1 - TỔNG QUAN VỀ DỮ LIỆU TIN NHẮN RÁC
VÀ CÁC PHƯƠNG PHÁP PHÂN LOẠI TIN NHẮN RÁC
Nội dung:
Chương này tập trung vào việc tìm hiểu đối tượng nghiên cứu là dữ liệu tin nhắn văn bản tiếng Việt (gồm cả có dấu và không dấu) và cách thức giải quyết bài toán phân loại, khai thác thông tin (data mining) từ đối tượng tin nhắn này
1.1 Tin nhắn rác và thực trạng tin nhắn rác ở Việt Nam
Khi dịch vụ tin nhắn trên thiết bị di động (Short Message Services SMS) trở - nên phổ biến và ngày càng phát triển thì cũng là lúc tin nhắn rác tràn ngập các mạng viễn thông Giống như thư rác, tin nhắn rác không chỉ gây phiền toái, khó chịu cho người sử dụng mà còn gia tăng áp lực lên hạ tầng viễn thông và còn được
sử dụng như một công cụ để thực hiện việc lừa đảo, phát tán vi rút, mã độc… Cho đến thời điểm này, tin nhắn rác vẫn là một vấn nạn và công tác ngăn chặn tin nhắn rác của các nhà mạng lẫn cơ quan chức năng vẫn gặp không ít khó khăn
-Theo nghị định 90/2008/NĐ CP ngày 13/08/2008 về chống thư rác và nghị định 77/2012/NĐ CP về việc “Sửa đổi, bổ sung một số điều của Nghị định số -90/2008/NĐ CP” ngày 05/10/2012 của Chính phủ về chống thư rác, thì tin nhắn -rác cũng như thư rác nói chung là “thư điện tử, tin nhắn được gửi đến người nhận
-mà người nhận đó không mong muốn hoặc không có trách nhiệm phải tiếp nhận theo quy định của pháp luật” Nghị định này cũng phân loại tin nhắn rác gồm những tin nhắn với mục đích lừa đảo, quấy rối hoặc phát tán virus máy tính, phần mềm gây hại… hoặc là những tin nhắn quảng cáo nhưng lại vi phạm các nguyên tắc gửi tin nhắn quảng cáo theo quy định của luật (chỉ được gửi khi người nhận đã đồng ý trước đó, không được gửi trong khoảng thời gian 22h đến 7h sáng, không gửi quá
5 tin nhắn/ngày, phải có gắn nhãn và mã số quản lý )
Thực tế hiện nay, rất nhiều tin nhắn bị xem là rác nhưng vẫn có thể lách theo quy định của luật (gửi 4 tin nhắn/ngày) đồng thời cũng có nhiều trường hợp người dùng nhắn tin bình thường nhưng vẫn bị liệt vào diện phát tán tin nhắn rác
Theo Cục An toàn thông tin (Bộ TT&TT), trong sáu tháng đầu năm 2016, đã chặn
252 triệu tin nhắn rác, khóa hơn 2 triệu thuê bao Như vậy, lượng tin nhắn rác bị chặn đã tăng gần 300 lần (từ 0,96 triệu tin lên tới 25 triệu tin), số thuê bao bị khóa tăng hai lần (từ 1 triệu lên 2 triệu) Sau khi Luật An toàn thông tin mạng có hiệu lực từ ngày 1/7/2016,
Trang 18Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 8
ngay tháng đầu, Bộ TT&TT đã xử phạt 10 doanh nghiệp cung cấp dịch vụ nội dung số
vì hành vi phát tán tin nhắn “rác”, với số tiền 735 triệu đồng Bên cạnh quá trình rà soát, thu hồi 12 triệu sim “rác” trôi nổi trên thị trường, cơ quan chức năng đang yêu cầu các nhà mạng ngưng cung cấp dịch vụ những số điện thoại rao vặt sai quy định, số điện thoại phát tán tin nhắn “rác”, số điện thoại có liên hệ trong tin nhắn “rác” Về các nhà mạng, ứng dụng Viettel-Antispam bắt đầu được Viettel sử dụng từ tháng 10 2015 và đã chặn -thành công hơn 40 triệu tin nhắn “rác”, tương đương 439.000 tin nhắn bị chặn mỗi ngày, đồng nghĩa Viettel phải chấp nhận giảm hàng chục tỷ đồng doanh thu mỗi quý Số lượng phản ánh của khách hàng về việc bị nhận tin nhắn “rác” cũng giảm mạnh, từ trung bình
131 phản ánh/ngày xuống còn 4 phản ánh/ngày…
Tuy nhiên, đó chỉ là một số kết quả bước đầu trong chiến dịch bài trừ nạn sim “rác”, tin nhắn “rác”, và còn quá sớm để tin rằng, các hoạt động trên sẽ đạt hiệu quả tích cực
về lâu dài Năm 2013, có 12 triệu sim “rác” bị thu hồi, nhưng trong năm 2014, thuê bao
di động tại Việt Nam lại tăng lên tới 140 triệu tài khoản Sau khi Thông tư 82/CT-BTTTT
về ngăn chặn tin nhắn “rác”, tin nhắn lừa đảo, tăng cường quản lý thông tin trên mạng
có hiệu lực (năm 2015), số lượng thuê bao di động giảm còn 120 triệu tài khoản Song, chỉ trong 3 quý của năm 2016, con số này lại lên đến 128,3 triệu thuê bao Trước khi Luật An toàn thông tin mạng có hiệu lực, Bộ TT&TT cũng đã xử phạt hàng chục doanh nghiệp phát tán tin nhắn “rác”, với số tiền hàng tỷ đồng (Nguồn: nhandan.com.vn1) Bảng 1.1 Thống kê số lượng tin nhắn quảng cáo từ 2015 2017 (Nguồn VnCert - 2 )
STT Năm Số lượng tin nhắn quảng cáo
Bảng Thố 1.2 ng kê s lư t phố ợ ản ánh tin rác qua các năm 2015-2018 (theo VnCert 3 )
STT Năm Số lượt phản ánh tin nhắn rác
1 Báo Nhân dân điệ ử, Kiên quy n t ết hơn trong xử lý sim “rác”, tin nhắn “rác”,
h p://www.nhandan.com.vn/binhluan/binh-luan- phe xu- -sim-%E2%80%9Crac%E2%80%9D- n-nhan-%E2%80%9Crac%E2%80%9D.html ly
-phan/item/31404802-kien-quyet-hon-trong-2 Theo s ố liệu VnCert đượ c công b ố trên báo chí qua các năm, h p://vncert.vn
3 Tuổ i Tr online, ẻ 2018: tin nh n rác gi m m ắ ả ạnh, h ps://congnghe.tuoitre.vn/2018- n-nhan- rac manh-20190102074940855.htm
Trang 20-giam-Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 9
Hình 1.1 Thố ng kê tin nh n rác t các nhà m ng Viắ ừ ạ ệt Nam năm 2018
Như vậy, tin nhắn rác hiện nay là một vấn nạn và bài toán lọc và phân loại tin nhắn là bài toán cấp thiết không chỉ ở Việt Nam mà còn là cả Thế giới Đó cũng là mục tiêu chính của luận văn này
1.2 Đặc điểm của tin nhắn văn bản tiếng Việt
1.2.1 Đặc điểm tin nhắn văn bản tiếng Việt
Tin nhắn văn bản tiếng Việt (Vietnamese SMS) có một đặc điểm khác biệt hoàn toàn với các nội dung email hoặc các nội dung văn bản, tài liệu trên mạng đó
là bao gồm cả tiếng Việt có dấu và không dấu, trong đó số lượng tin nhắn tiếng Việt không dấu khá phổ biến Điều này thực sự gây khó khăn cho việc xử lý ngôn ngữ tự nhiên vì hiện tại tất cả những công cụ NLP cho tiếng Việt đều dựa trên tiếng Việt có dấu nếu có, thì cũng làm giảm hiệu quả và độ chính xác của thuật toán - Ngoài ra, theo nghiên cứu [11], tin nhắn văn bản tiếng Việt còn có các đặc điểm đặc trưng sau:
Trong các tin nhắn tiếng Việt, từ tiếng Anh cũng được được sử dụng phổ biến như một cách diễn đạt khác hoặc thể hiện một cách ngắn ngọn, dễ nhớ Ví dụ: “hello”/“hi” (chào), “bye” (tạm biệt),“good” (tốt), “like” (thích), “love” (yêu),
“no” (không), “yes” (vâng), “ok” (đồng ý), “cool” (mát mẻ), “free” (miễn phí),
“good” (tốt),…
Vinaphone 47.47%
Mobifone 21.43%
Vie el 25.85%
VietnamMobile 4.90%
G-Mobile 0.36%
Thống kê tin nhắn rác các nhà mạng năm 2018 (Nguồn VnCert)
Vinaphone Mobifone Vie el VietnamMobile G-Mobile
Trang 22Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 10
Tin nhắn tiếng Việt do thói quen hoặc giới hạn của tin nhắn, rất nhiều từ
viết tắt, “teen code”, hoặc cách nhắn tin cố tình “lách luật” Ví dụ như:
- Chuyển đổi kí tự đối với nguyên âm đơn Cụ thể: “i” → “j”, “ê” → “j”/“i”
, “ , ô”→ “0”, “ , ă” → “e”, “ô” →“u”.Chuyển một số chữ cái sang chữ cái khác: ph -> f; ng ->g/q; gi/d/ ->j/z; ->k; qu ->w, r ->z; h -c >k…
Ví dụ: gì → gj, chết → chjt/chit, cảm n → cum un/cum on/kum on, sao →
seo, đ i/đối → d0j, lắm/làm → lem, rồi → rui/ruj/roj
- Giản lược ký tự đối với những phụ âm được biểu hiện bằng hai hoặc ba con chữ Cụ thể: gh → g, ngh → ng, kh → k, ph → p, ch → c
Ví dụ: không → ko, phòng → pog, ghét → get, nghỉ/nghĩ → ngi, chị → cj
- Chuyển đổi kí hiệu phụ âm đầu Hiện dạng này gồm: “ph” → “f”, “gi” →
“j”, “b” → “p”, “c” → “k”, “qu” → “w”, “đ” → “d”,
Ví dụ: phải → fai, giá → ja, bà → pa, cái → kai, quán → wan, rồi →
zoj/goy, vậy → zay/dzay
1.2.2 Cách phân loại tin nhắn spam SMS
Các tin nhắn rác (spam SMS) theo Nghị định 90/2008/NĐ CP thường tập trung vào các hình thức (phân nhóm) sau:
- Quảng cáo sản phẩm, hàng tiêu dùng, rao vặt, mua bán sim số đẹp,
Quảng cáo các ứng dụng, dịch vụ, tổng đài giải trí, website,
Quảng cáo bất động sản, các gói khuyến mại liên quan đến bất động sản,
Quảng cáo các dịch vụ tài chính: Ngân hàng, thẻ, Visa, cho vay, tín chấp,
Giới thiệu các chương trình khuyến mãi mua sắm trực tuyến, giảm giá,
Một hình thức phổ biến của spam SMS là các tin nhắn có nội dung độc hại như giả mạo Ngân hàng, tổ chức, mạng xã hội, nhà cung cấp, thậm chí các cơ quan pháp luật, để đề nghị người dùng cung cấp các thông tin Thẻ/Tài khoản ngân hàng, mật khẩu và các thông tin cá nhân
Một số tin nhắn có mã, hoặc liên kết đến các trang web độc hại nhằm cài đặt Virus, trojan, gây tổn hại cho người nhận
Các phân loại (phân nhóm) này cũng là cơ sở cho việc xác định phân lớp để gán
đa nhãn cho dữ liệu tin nhắn văn bản tiếng Việt trong luận văn này
Trang 24Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 11
1.3 Tác hại của tin nhắn rác (spam SMS)
Theo thống kê của Công ty an ninh mạng BKAV4, 90% người dùng thường xuyên bị tin nhắn rác làm phiền, trong đó 43% là nạn nhân của tin rác hằng ngày, gần gấp đôi con số của năm 2013 Phát tán tin nhắn rác thực sự đã trở thành một ngành "công nghiệp đen"
Với số lượng người dùng khổng lồ, liên tục gia tăng trên toàn thế giới, người dùng điện thoại đã và đang trở thành những “con mồi béo bở” để những kẻ phát tán tin nhắn rác, những nhà cung cấp dịch vụ quảng cáo, marketting tha hồ tấn công, lợi dụng để truyền tải thông tin, giới thiệu dịch vụ, sản phẩm Theo thống kê của Trung tâm ứng cứu khẩn cấp máy tính Việt Nam (VNCERT), mỗi ngày có hàng triệu tin nhắn rác được gửi đi, tương đương với hàng triệu thuê bao bị tấn công bởi những thông tin không có giá trị; đồng thời gây ra áp lực rất lớn lên hạ tầng viễn thông di động trong nước
Bên cạnh tin nhắn rác, người sử dụng cũng phải đối mặt với nguy cơ bị mã độc "móc túi" hằng ngày Cũng theo thống kê của Bkav, ước tính số tiền thiệt hại
do mã độc gửi tin nhắn đến đầu số thu phí lên tới 3,9 tỷ đồng mỗi ngày
Dưới đây, mô tả một số tác hại cụ thể rõ ràng nhất của spam SMS :
Gây thiệt hại về kinh tế tài chính cho người nhận tin nhắn, người nhận trả tiền cho băng thông, dịch vụ
Lãng phí thời gian cho việc mở tin nhắn và xóa tin nhắn khỏi hộp tin nhắn
và có thể làm quá tải hộp tin nhắn của người nhận, dẫn đến việc thất lạc những tin nhắn đến sau, gây cản trở diễn tiến công việc của người sử dụng
Spam SMS có thể gây tâm lý xấu đối với người sử dụng tin nhắn khi gửi những thông tin vô giá trị hoặc lợi dụng, xuyên tạc
Spam chiếm một phần lớn đường truyền và làm tiêu tốn thời gian xử lý của các thiết bị tổng đài
Spam còn có thể nguy hiểm, chứa virus, trojan hay các loại phần mềm gây hại khác, tạo ra các lỗ hổng bảo mật trong máy tính và thiết bị nhận Ngoài ra, spam SMS còn được xem là phương tiện lừa đảo người dùng
4 Bkav, T ng k t an ninh m ổ ế ạng năm 2014 và dự báo xu hướng 2015,
h p://www.bkav.com.vn/ko/cac-muc-canh-bao/-/chi_ et/287112/tong-ket- -ninh-mang-nam- an 2014- - -bao- -huong-2015 va du xu
Trang 26Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 12
1.4 Phương pháp phân loại spam SMS
1.4.1 D a vào nự guồn phát tán tin nhắn rác
Tương tự quá trình lọc spam mail, phương pháp phổ biến nhất là các nhà mạng (và thậm chí cả người dùng) thiết lập các danh sách đen (black-list) và danh sách trắng
(white-list) để chặn/lọc các đầu số phát tán tin nhắn rác Danh sách đen sẽ chứa các địa
chỉ (số điện thoại của người gửi/nơi gửi) thường xuyên g i spam SMS Ngử ược ại, l danh sách tr ng ắ tin nhắn thường là các địa chỉ tin cậy và an toàn Địa chỉ này có thể là số điện thoại cá nhân, brandname hay số điện thoại/tổng đài Kỹ thuật lọc này thường được sử
d g ụn ở phía tổng đài hay thiết bị cá nhân (có sẵn trong HĐH của thiết bị hay cài đặt thêm phần mềm) và nó được xem là một một sự bổ sung cho phương pháp khác hiệu quả hơn Một dạng tương tự của danh sách đen mà một số thiết bị di động cho phép người dùng có thể cấu hình để nhận/chặn các tin nhắn từ các số trong/không có trong danh bạ, hoặc những quy luật cụ thể được thiết lập sẵn
Khi một SMS được gửi đến, bộ lọc sẽ phân tích địa chỉ người gửi và so sánh địa chỉ có trong danh sách địa chỉ bị chặn/cho phép Nếu trùng trong danh sách đen thì sẽ lập tức được đánh dấu là spam, bị nhà cung cấp dịch vụ tin nhắn từ chối và ngược lại Thông thường, các nhà mạng có thể kiểm soát các địa chỉ này trước khi cho vào danh sách trắng Danh sách này cũng có thể do một bên thứ ba chuyên tổng hợp và phân tích đưa ra (ví dụ Bộ Thông tin và Truyền thông)
Danh sách đen và danh sách trắng có nhiều ưu điểm: thực hiện quá trình kiểm tra này thường rất nhanh chóng và dễ cài đặt Ưu điểm của danh sách đen là các nhà cung cấp sẽ lọc được khá nhiều nguồn SMS spam từ danh sách cho trước Ưu điểm của danh sách trắng so với danh sách đen là số lượng địa chỉ trong danh sách trắng sẽ ít hơn rất nhiều và sẽ giải quyết tình trạng chặn nhầm Thực hiện điều này góp phần giảm tải băng thông cũng như có bước lọc cơ bản đầu tiên trước khi sử dụng các phương pháp khác Các danh sách này cũng có thể được cập nhật và chia sẻ giữa các nhà mạng với nhau Bên cạnh ưu điểm vừa nêu trên, cả hai danh sách đều có khuyết điểm riêng: Đối với danh sách đen, các nguồn spam thường sử dụng các số điện thoại rác, hoặc và tìm cách lách luật bằng cách gửi giới hạn số lượng cho mỗi số điện thoại để gửi spam Do vậy, danh sách đen tin nhắn thường chỉ chặn được một số spam SMS được gửi đi, và có thể làm mất rất nhiều tin nhắn hợp lệ nếu cho nhầm một số vào danh sách Một khuyết điểm nữa của danh sách đen là khó cập nhật danh sách khi số điện thoại đó đã bị thu hồi, chuyển chủ, tương tự như danh sách trắng
Trang 28Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 13
1.4.2. Lọc tin nhắn dựa vào nội dung
1.4.2.1 Cấu trúc tin nhắn SMS
Cấu trúc của 1 tin nhắn SMS được gửi đi chia làm 5 phần như sau:
Hình 1.2 Các thành phầ n c a m t tin nhủ ộ ắn SMS được gửi đi Trong đó:
Instructions to air interface: chỉ thị giao tiếp với giao diện vô tuyến
Instructions to SMSC: chỉ thị giao tiếp với trung tâm tin nhắn SMSC
Instructions to handset: chỉ thị dữ liệu của thiết bị
Instructions to SIM (optional): chỉ thị dữ liệu kết nối, nhận biết SIM
Message Body: nội dung tin nhắn SMS
Chi tiết tin nhắn được mô tả từ các đơn vị giao thức PDU (Protocol Description Unit) dưới hình thức của một chuỗi hệ thập lục phân và bán số thập phân Sau đây là
ví dụ về cấu trúc một tin nhắn gửi đi theo định dạng PDU:
Hình 1.3 C u trúc m t tin nh n SMSấ ộ ắTrong ví dụ trên, tin nhắn có chiều dài 160 ký tự, trong đó một ký tự được xác định bởi 7 bits trong bảng chữ cái GSM Mỗi 7 bits là kết quả trong 128 ký tự có sẵn, - -
số, và các dấu châm câu Ví dụ, 48656C6C6F trong bảng chữ cái GSM sẽ tương đương với từ “Hello”
Trang 30Phân lớp đa nhãn và ứng dụng cho bài toán phân loại tin nhắn văn bản SMS Trang 14
Bảng 1.3 So sánh các cấu trúc Tin nhắn SMS với thư điện tử (email)
Yếu tố Thư điện tử Tin nhắn SMS
Độ dài Không giới hạn 160 ký tự (Tin nhắn không dấu, 7-bit) 70 ký tự (tin nhắn tiếng Việt, 16bit)
Nội dung Tự do tình sai chính tả và phổ biến nội dung không Xu hướng viết tắt, lược bỏ văn phạm, sai/cố
dấu (SMS tiếng Việt)
Dữ liệu Người gửi, người nhận, thời gian, tiêu
đề, CC, nội dung, file đính kèm, ảnh SĐT gửi/nội dung, trung tâm nhắn tin, bộ mã hóa BrandName, SĐT nhận, thời gian,
1.4.2.2 Lọc tin nhắn dựa vào nội dung
Các hệ thống xử lý tin nhắn ngày nay thường sử dụng mộ phần mềmt quét t ng hôtin ong n i dung tr ộ tin nhắn để g p phát hiiú ện và lọc tin nhắn rác (spam SMS) ra kh i ỏ
hệ thống Ph ng ph này ph ch nươ áp ân tí ội dung c ủa SMS để nhận diện từ óa liên khquan đến spam, tần suất của các từ lặp đi lặp lại để xác định spam và có thể chuyển chúng vào những nơi mà sau đó có thể xem lại hay xóa bỏ chúng
C ph ng ph ác ươ áp thống kê thường được sử ụ d ng để ph ch và l ân tí ọc SMS,những ph ng ươ pháp ày n chuyển bài toán l spam ành bài to phân l p và tọc th án ớ có hể
sử dụng i u nh ề kỹ thuật phân lớp, d a ên t ng t ự tr hô in thống kê h đã ọc từ dữ ệ li u SMS
th c t C th bài toán l ự ế ụ ể, ọc tin nhắn spam tin nhắn thường được coi bài toán phân là
l ớp văn ả b n (classify x d a ên te t), ự tr cơ sở là tất cả các SMS ch a n có ứ ội dung văn bản Những kỹ thu này ật hiện nay đang được ứng dụng rộng rãi và khá thành công mặc dù còn hạn chế về mặt dữ liệu chuẩn để kiểm tra và độ chính xác để có thể so sánh
và đánh giá Một số phương pháp thống kê để giải quyết bài toán phân lớp văn bản được
áp dụng bao gồm: Naive Bayes, SVM, Logistic Regression,
Tổng kết chương 1
Trong chương 1, lu n v n ậ ă đã giới thiệu tổng quan về đối tượng nghiên cứu là
dữ liệu tin nhắn rác cũng như một số phương pháp phòng chống spam SMS đang được
sử dụng rộng rãi Trong đó, phần nội dung tin nhắn là yếu tố quyết định dùng để phân biệt tin nhắn rác và phương pháp lọc tin nhắn theo nội dung hiện vẫn là phương pháp ứng dụng rộng rãi và cho kết quả tối ưu nhất vì tất cả các phương pháp khác đều
có thể vượt qua bởi đối tượng phát tán Trong chương tiếp theo, luận văn sẽ đi sâu vào các cơ sở lý thuyết của việc phân tích ngôn ngữ áp dụng trong bài toán phân loại tin nhắn văn bản làm tiền đề cho quá trình thực nghiệm trong luận văn này
Trang 32Trang 15
CHƯƠNG 2 - CƠ SỞ LÝ THUYẾT 2.1 Cơ sở lý thuyết về xử lý ngôn ngữ
2.1.1. Xử lý ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) là một nhánh
của Trí tuệ nhân tạo (Artificial Intelligence - AI) tập trung vào các ứng dụng trên ngôn
ngữ của con người Trong Trí tuệ nhân tạo thì xử lý ngôn ngữ tự nhiên là một trong
những phần khó nhất vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ công cụ -
hoàn hảo nhất của tư duy và giao tiếp (theo wikipedia 5) Cái khó nằm ở chỗ làm sao
cho máy được hiểu ngôn ngữ con người, từ việc hiểu nghĩa từng từ trong mỗi hoàn
cảnh cụ thể, đến việc hiểu nghĩa một câu, rồi hiểu cả văn bản
Hình 2.1 X lý ngôn ng t nhiên là vử ữ ự ấn đề khó c a AI ủMáy tính chủ yếu làm việc với dữ liệu có cấu trúc, đó là dữ liệu được tổ chức,
lập chỉ mục và tham chiếu, thường là trong cơ sở dữ liệu Trong NLP, chúng ta thường
xử lý dữ liệu phi cấu trúc: Các bài đăng trên mạng xã hội, tin tức, email, tin nhắn và
đánh giá sản phẩm là những ví dụ về dữ liệu phi cấu trúc dựa trên văn bản Để xử lý
văn bản như vậy, NLP phải học cấu trúc và ngữ pháp của ngôn ngữ tự nhiên Và quan
trọng là: 80% dữ liệu thương mại là phi cấu trúc
Ngôn ngữ của con người không chính xác và rõ ràng như ngôn ngữ máy tính:
ngôn ngữ con người có rất nhiều phức tạp như cụm từ mơ hồ, thông tục, ẩn dụ, chơi
chữ hoặc châm biếm Cùng một từ hoặc câu có thể có nhiều nghĩa tùy thuộc vào ngữ
cảnh Ngôn ngữ cũng phát triển theo thời gian Tệ hơn nữa, chúng ta giao tiếp không
5 X lý ngôn ng t nhiên, ngu n Wikipedia®, ử ữ ự ồ
h ps://vi.wikipedia.org/wiki/X%E1%BB%AD_l%C3%BD_ng%C3%B4n_ng%E1%BB%AF_t%E1%BB%B1 _nhi%C3%AAn
Trang 33Trang 16
hoàn hảo (lỗi chính tả, ngữ pháp hoặc dấu câu) nhưng vẫn có thể hiểu được Điều này
rất tự nhiên đối với giao tiếp của con người nhưng rất phức tạp đối với máy tính
Lĩnh vực nghiên cứu của luận văn thuộc phạm vi Xử lý ngôn ngữ tự nhiên, cụ
thể là ứng dụng các kỹ thuật NLP để nghiên cứu, khám phá tri thức trong dữ liệu tin
nhắn văn bản tiếng Việt
2.1.2. Kỹ thuật tách từ (Words segmentation)
Tách từ được xem là bước xử lý quan trọng đối với các hệ thống Xử lý ngôn
ngữ tự nhiên, đặc biệt là đối với các ngôn ngữ thuộc vùng Đông Á và tiếng Việt Với
các ngôn ngữ thuộc loại hình này, ranh giới từ không chỉ đơn giản là những khoảng
trắng (space) như trong tiếng Anh…, mà có sự liên hệ chặt chẽ giữa các tiếng với
nhau, một từ có thể cấu tạo bởi một hoặc nhiều tiếng Vấn đề này tưởng chừng đơn
giản với con người nhưng đối với máy tính, đây là bài toán rất khó giải quyết
Kỹ thuật tách từ là một quá trình xử lý nhằm mục đích xác định ranh giới của
các từ trong câu văn, cũng có thể hiểu đơn giản rằng tách từ là quá trình xác định các
từ đơn, từ ghép… có trong câu Đối với xử lý ngôn ngữ, để có thể xác định cấu trúc
ngữ pháp của câu, xác định từ loại của một từ trong câu, yêu cầu nhất thiết đặt ra là
phải xác định được đâu là từ trong câu
Bài toán tách từ hiện nay có 3 phương pháp tiếp cận chính :
Tiếp cận dựa vào từ điển cố định
Tiếp cận dựa vào thống kê thuần túy
Tiếp cận dựa trên cả hai phương pháp trên
Xét ví dụ sau:
Trường đạ ọi h c Bách Khoa Hà N i đư c thành lộ ợ ập tháng 10 năm 1956
Trường đại h c ọ Bách Khoa Hà N i ộ được thành l p ậ tháng 10 năm 1956
Trường đại_h c Bách_Khoa Hà_Nội được thành_lập tháng 10 năm 1956 ọ
Danh từ Danh từ danh t ừriêng danh t riêng ừ động Trợ
Trang 34Trang 17
Tách từ chính xác hay không là công việc rất quan trọng, nếu không chính xác
rất có thể dẫn đến việc ý nghĩa của câu sai, ảnh hưởng đến tính chính xác của chương
trình Để giải quyết bài toán này cần một lượng lớn dữ liệu, dữ liệu đó đòi hỏi sự
chính xác cao và tốn rất nhiều công sức
Chúng ta sẽ tìm hiểu các phương pháp tiếp cận này trong các nội dung tiếp theo
của luận văn
2.1.3. Một số phương pháp trích chọn đặc trưng
2.1.3.1 Phương pháp túi đựng từ (Bag of Words - BOW)
Phương pháp túi đựng từ giả sử bạn có một loạt các túi và mỗi túi tượng trưng
cho một từ trong từ điển mà chúng ta vừa tạo ra Để thực hiện nó, ta duyệt từ đầu đến cuối văn bản, gặp từ nào thì ném nó vào túi tương ứng, cuối cùng chúng ta sẽ thu được
vector thuộc tính Từ đây chúng ta tiến hành khởi tạo vector thuộc tính cho từng file
trong bộ dữ liệu Mỗi vector sẽ có độ dài chính bằng số từ trong từ điển
BagOfWord học được một bộ từ vựng từ tất cả các văn bản, rồi model các văn
bản bằng cách đếm số lần xuất hiện của mỗi từ trong văn bản đó BagOfWords không
quan tâm đến thứ tự từ trong câu và cũng không quan tâm đến ngữ nghĩa của từ, do
đó 2 câu sau được coi là như nhau: “Khuyến mãi nhân dịp năm mới” và “Nhân dịp
năm mới, khuyến mãi”
Ta thấy rằng nếu một tin có chứa các từ khuyến mại, giảm giá, trúng thưởng,
miễn phí, quà tặng, tri ân, … thì nhiều khả năng đó là một tin nhắn rác Do đó phương
pháp đơn giản nhất là đếm xem trong tin đó có bao nhiêu từ thuộc vào các từ trên, nếu
nhiều hơn 1 ngưỡng nào đó thì ta quyết định đó là tin rác (Tất nhiên bài toán thực tế
phức tạp hơn nhiều khi các từ có thể được viết dưới dạng không dấu, hoặc bị cố tình
viết sai chính tả, hoặc dùng ngôn ngữ teen, ) Với các loại văn bản khác nhau thì
lượng từ liên quan tới từng chủ đề cũng khác nhau Từ đó có thể dựa vào số lượng
các từ trong từng loại để làm các vector đặc trưng cho từng văn bản
BoW vẫn tồn tại khuyết điểm, nên phương pháp từ điển và đánh trọng số TF
-IDF là phương pháp khắc phục Ta sẽ nghiên cứu việc ứng dụng BoW + TF IDF vào
việc tìm kiếm, phân loại tài liệu, lọc và phân loại tin nhắn văn bản cũng như ý định
của người dùng trong mục tiếp theo
Trang 35Trang 18
2.1.3.2 Sử dụng từ điển và đánh trọng số TF IDF (thống kê tần suất xuất hiện
-của từ)
Máy tính chỉ xử lý được những thông tin dạng số, do đó tất cả các từ trong văn
bản cần được chuyển thành dạng biểu diễn số Cách đơn giản nhất ta thường làm là
xây dựng một bộ từ điển rồi sau đó thay thế từ đó bằng thứ tự xuất hiện trong từ điển
Trong hầu hết các ngôn ngữ, một số từ xuất hiện thường xuyên nhưng không
mang nhiều thông tin như trong tiếng Anh có "is", "the" tiếng Việt có các từ "là",
"của", "cứ" Vì vậy nếu chỉ xét theo tần số xuất hiện của từng từ thì việc phân loại
văn bản rất có thể cho kết quả sai dẫn đến tỷ lệ chính xác thấp Do đó, người ta thường
sử dụng một phương pháp thống kê có tên là -TF IDF (viết tắt của từ Term Frequency Invert Document Frequency): giá trị TF-IDF của một từ là một số thu được qua thống
kê thể hiện mức độ quan trọng của từ này trong một văn bản, mà bản thân văn bản
đang xét nằm trong một tập hợp các văn bản
Trước tiên ta tìm hiểu TF IDF là một kỹ thuật trích chọn đặc trưng (feature
-extraction) dùng trong text mining và information retrieval TF-IDF bao g m 2 thành ồ
ph n là tf (term frequency) và idf (inverse document frequency): ầ
TF là tần su t xuấ ất hi n c a mệ ủ ột từ trong văn bản:
Trong đó:
- f(t,d) - số lần xuất hiện từ t trong văn bản d
- max{f(w,d):w d} - s l n xu t hi n nhi u nh t c a m t t b t k ố ầ ấ ệ ề ấ ủ ộ ừ ấ ỳtrong văn b n ả
IDF (Inverse Document Frequency): Tần số nghịch c a 1 t trong tủ ừ ập văn
b n (corpus) ả
Trong đó:
- |D|: T ng s ổ ố văn bản trong t p D ậ
- : số văn bản chứa từ nhất định, với điều kiện t ấxu t
hiện trong văn bản d (tf(t,d)≠0) Nế ừ đó không xuấu t t hi n bệ ở ất cứ 1 văn
b n nào trong t p thì m u s s b ng 0 phép chia cho không không hả ậ ẫ ố ẽ ằ → ợp
Trang 36Trang 19
l , vì th ệ ế người ta thường thay b ng m u thằ ẫ ức
Khi đó công thức tf-idf cuối cùng sẽ là:
Ví dụ: Một tài liệu 100 từ chứa từ cat 3 lần → tf = = 0.03
Giả sử ta có 100.000 tài liệu mà từ cat xuất hiện trong 1.000 tài liệu
→ idf(cat) = 0.03 log( ) = 0.06
2.1.3.3 Phươ ng pháp n-gram
Đây là mô hình phổ ế bi n nh t và d áp dấ ễ ụng vì tính đơn giản c a nó Mô hình ủ
có th áp dể ụng v i h u h t bài toán phân loại nói chung đểớ ầ ế xây d ng vec-ự tơ đặc trưng
V i mô hình n-ớ grams, ta định nghĩa một mẫu các t ừ có độ dài n Giá tr n có th ị ể
thay đổ ới v i n =1,2,3, Ta có th ể thay đổi nhi u giá tr ề ị n khác nhau để tìm ra k t qu ế ả
tối ưu nhất Với n = 1 còn được gọi là Unigram hay Bag Of Words, n = 2: bigram, n =
3: trigram Mô hình này r t t t trong vi c trích chấ ố ệ ọn đặc trưng trong văn bản, và đặc
bi t phù h p v i th c t các tin nh n rác s d ng các t vi t t t, c tình sai chính tệ ợ ớ ự ế ắ ử ụ ừ ế ắ ố ả,
“teen code” để lách lu t hi n nay Ch ng hậ ệ ẳ ạn “Q/C”, “QC”, “QK”, “KM”, là những
m u có giá tr cao trong vi c phân loẫ ị ệ ại văn bản Để ểu hơn về hi cách trích chọn đặc
trưng này, ta xét một ví d xây d ng vec-ụ ự tơ cụ ể dưới đây th
Bảng Ví dụ 2.1 2 n i dung n i dung tin nh n cho n-gram ộ ộ ắ
1 (QC) MIEN PHI 10 phut goi noi mang qua 1319
2 (QC) MIEN PHI 100% 3G/4G cho Quy khach
V i n = 1 (unigram) Túi t vớ ừ ựng được xây d ng t 2 tin nhự ừ ắn trên như sau:
Bảng 2.2 Ví dụ túi t v ng unigram ừ ự
Vec-tơ đặc trưng được định nghĩa là giá trị có xu t hi n t vấ ệ ừ ựng đó trong tin
nh n hay không (0 hoắ ặc 1)? Như vậy vec-tơ đặc trưng uni gram trong trườ- ng h p này ợ
được bi u diể ễn dướ ại d ng sau:
Trang 37Vậy ta được 02 vec-tơ đặc trưng trong mô hình trích chọn đặc trưng uni-gram
của 02 tin nh n là Vắ 1, V2được biểu diễn dướ ại d ng:
PHI
10
PHI 100%
10 phut
100%
3G/4G
phut goi
goi noi
noi mang
3G/4G cho
cho Quy
Quy khach
Trang 38Trang 21
2.1.3.4. Từ loại (StopWords)
Từ loại (từ dừng) hay StopWords là những từ xuất hiện nhiều trong ngôn ngữ tự
nhiên, tuy nhiên lại không mang nhiều ý nghĩa và người ta thường loại bỏ để tăng tốc
độ cũng như chất lượng tìm kiếm Trong tiếng việt StopWords là những từ như: để,
này, kia Tiếng anh là những từ như: is, that, this
Có rất nhiều cách để loại bỏ StopWords nhưng có 2 cách chính là:
Dùng từ điển
Dựa theo tần suất xuất hiện của từ
Dùng từ điển
Cách này đơn giản nhất, chúng ta tiến hành filter văn bản, loại bỏ những từ xuất
hiện trong từ điển StopWords:
Ví dụ:
Hình 2.3 Ví dụ ừ điể t n StopWords
Dựa theo tần suất xuất hiện của từ
Với cách này, ta tiến hành đếm số lần xuất hiện của từng từ trong dữ liệu sau đó
sẽ loại bỏ những từ xuất hiện nhiều lần (cũng có thể là ít lần) Khoa học đã chứng
minh những từ xuất hiện nhiều nhất thường là những từ không mang nhiều ý nghĩa
Xét ví dụ dưới đây:
Hình 2.4 T n suầ ất xuất hiệ n của 50 StopWords thường g p trong các cu n sách ặ ố
Món ăn ôi sao mà ngon thế kia
Món ăn ngon
Trang 39Trang 22
Trong ví dụ trên là top 50 từ xuất hiện nhiều nhất trong mỗi cuốn sách Dễ dàng
nhận thấy chúng không mang nhiều ý nghĩa, vì thế ta sẽ tiến hành bỏ những từ này
2.2 Phân lớp nhị phân/đơn nhãn (Binary Classification/Single Label
Classification)
Phân lớp đơn nhãn (Single Label Classification) hay Binary Classification là bài
toán phân loại các phần tử của một tập hợp các đối tượng ra thành 2 nhóm dựa trên
cơ sở là chúng có một thuộc tính nào đó hay không (hay còn gọi là tiêu chí)
Phân lớp đơn nhãn thường một xử lý bao gồm hai bước (Hình 2.5) Ở bước đầu
tiên, xây dựng mô hình mô tả một tập cho trước các lớp dữ liệu Mô hình này có được
bằng cách phân tích các bộ cơ sở dữ liệu Mỗi bộ được giả định thuộc về một lớp cho
trước, các lớp này chính là các giá trị của một thuộc tính được chỉ định, gọi là thuộc
tính nhãn lớp Các bộ dữ liệu để xây dựng mô hình gọi là bộ dữ liệu huấn luyện Do
nhãn lớp của mỗi mẫu huấn luyện đã được gán bằng tay trước nên bước này cũng
được biết đến như là học có giám sát Điều này trái ngược với học không có giám sát,
trong đó các mẫu huấn luyện chưa biết sẽ thuộc về nhãn lớp nào và số lượng hay tập
các lớp được học chưa biết trước
Hình 2.5 Mô hình x lý phân nhãn d u nh phân ử ữliệ ị
Trang 40Trang 23
Mô hình học được biểu diễn dưới dạng các luật phân loại, cây quyết định hay
công thức toán học Ví dụ, cho trước một cơ sở dữ liệu thông tin về độ tín nhiệm của
khách hàng, các luật phân loại được học để nhận biết các khách hàng có độ tín nhiệm
là tốt hay không tốt (Hình 2.5a) Các luật được dùng để phân loại các mẫu dữ liệu
tương lai cũng như cung cấp cách hiểu tốt hơn về nội dung cơ sở dữ liệu
Trong bước thứ hai (hình 2.5b), mô hình được dùng để phân loại Trước tiên,
đánh giá độ chính xác dự đoán của mô hình (hay phân loại) Phần cuối của chương
này (mục 2.5) sẽ mô tả một số phương pháp đánh giá độ chính xác phân loại Phương
pháp holdout (kỹ thuật chia bộ dữ liệu thành tập kiểm tra và tập test) là một kỹ thuật
đơn giản sử dụng một tập kiểm tra các mẫu đã được gắn nhãn lớp Các mẫu này được
chọn lựa ngẫu nhiên và độc lập với các mẫu huấn luyện Độ chính xác của mô hình
trên một tập kiểm tra cho trước là phần trăm các mẫu của tập kiểm tra được mô hình
phân loại đúng Đối với mỗi mẫu kiểm tra, nhãn lớp đã biết được so sánh với dự đoán
lớp của mô hình đã học cho mẫu đó Nếu độ chính xác của mô hình được đánh giá
dựa trên bộ dữ liệu huấn luyện, sự đánh giá này có thể là tối ưu, do vậy mô hình học
có khuynh hướng quá phù hợp dữ liệu, bởi vậy ta cần dùng một tập kiểm tra
Nếu độ chính xác của mô hình là chấp nhận được, mô hình có thể được sử dụng
để phân loại các bộ hay các đối tượng dữ liệu tương lai mà chưa biết nhãn lớp Ví dụ,
các luật phân loại học trong hình 2.5a: việc phân tích dữ liệu khách hàng từ các khách
hàng đã tồn tại có thể được dùng để dự đoán độ tín nhiệm của các khách hàng mới
2.3 Phân lớp đa nhãn (Multi-Label Classification)
2.3.1. Bài toán phân lớp đa nhãn tổng quát
Phân loại đa nhãn là một đối tượng không chỉ được gán nhãn phân loại với một
lớp duy nhất mà có khả năng được gán nhãn với nhiều phân loại khác nhau, các nhãn
này có thể được sắp xếp theo một thứ tự nhất định
Gọi C là bộ dữ liệu huấn luyện và c là danh sách nhãn phân loại Bộ phân loại
H xác định hàm T C, trong đó mỗi đối tượng iT được gán một hoặc nhiều nhãn