Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 53 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
53
Dung lượng
1,92 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐỒ ÁN CHUYÊN NGÀNH ĐỀ TÀI: HỆ THỐNG NHẬN DIỆN VÀ LỌC SPAM SMS SỬ DỤNG MACHINE LEARNING Sinh viên thực : TRẦN THANH QUANG TRẦN BÌNH MINH 17IT3 TS.NGUYỄN SĨ THÌN Lớp : Giảng viên hướng dẫn: Đà nẵng, tháng năm 2021 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐỒ ÁN CHUYÊN NGÀNH ĐỀ TÀI: HỆ THỐNG NHẬN DIỆN VÀ LỌC SPAM SMS SỬ DỤNG MACHINE LEARNING Đà Nẵng, tháng năm 2021 MỞ ĐẦU Công nghệ thông tin giai đoạn phát triển vũ báo lĩnh vực hoạt động khắp nơi giới Điều xảy vòng vài năm qua Việt Nam đầu tư ạt vào công nghệ Tin học vấn đề thiếu công ty Đặc biệt tin học ngày giữ vai trò quan trọng vấn đề quản lý tổ chức lĩnh vực thu thập thông tin Tuy ngành công nghệ thông tin nước ta phát triển vài năm trở lại bước phát triển bước phát triển cho thấy tiềm lớn lao lĩnh vực công nghệ thông tin nước ta, phát triển hệ thống thông tin mạnh đất nước Hệ thống thông tin giúp công việc quản lý dễ dàng hơn, nâng cao hiệu sản xuất, tiết kiệm lượng lớn thời gian công sức Qua thời gian tìm hiểu thực tế để xác định đề tài đồ án, em nhận thấy hệ thống nhận diện lọc Spam sms sử dụng Machine Learning vấn đề quan trọng việc ứng dụng vào sống người Bởi hệ thống nhận diện lọc Spam sms sử dụng Machine Learning thành phần khơng thể thiếu để đời sống hoạt động phát triển LỜI CẢM ƠN Trong thời gian làm đồ án chuyên ngành 2, nhóm em nhận nhiều giúp đỡ, đóng góp ý kiến bảo nhiệt tình thầy Em xin gửi lời cảm ơn chân thành đến T.S Nguyễn Sĩ Thìn, giảng Khoa CNTT TT người tận tình hướng dẫn, bảo nhóm em suốt q trình làm báo cáo Em xin chân thành cảm ơn thầy giáo trường nói chung, thầy Bộ mơn Lập trình mạng,lập trình di động nói riêng dạy dỗ cho em kiến thức môn đại cương môn chuyên ngành, giúp em có sở lý thuyết vững vàng tạo điều kiện giúp đỡ em suốt trình học tập Cuối cùng, em xin chân thành cảm ơn gia đình bạn bè, ln tạo điều kiện, quan tâm, giúp đỡ, động viên em suốt q trình học tập hồn thành báo cáo NHẬN XÉT ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… MỤC LỤC GIỚI THIỆU 11 Tổng quan 11 Phương pháp, kết .11 Cấu trúc đồ án 12 CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN 13 1.1 Giới thiệu ngôn ngữ, công cụ .13 1.1.1 Ngơn ngữ lập trình Swift .13 1.1.2 iOS Extension 14 1.1.3 Hiểu cách hoạt động iOS Extension: 15 1.1.4 Cách iOS Extension giao tiếp 16 1.1.5 Message Filter App Extension .18 1.1.6 Call Directory Extension .21 1.1.7 CoreML 22 1.1.8 Ngôn ngữ lập trình Python 23 1.1.9 SailsJS 24 1.1.10 Realm database 25 1.1.11 MongoDB 26 1.2 Machine Learning 28 1.2.1 Machine Learning 28 1.2.2 Học máy có giám sát .29 1.2.3 Học không giám sát .31 1.3 Natural language processing 33 1.3.1 Xử lý ngôn ngữ tự nhiên 33 1.3.2 Xử lý ngôn ngữ tự nhiên cho tiếng Việt 33 CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG .35 2.1 Giải pháp nhận diện tin nhắn rác 35 2.1.1 Xử lý ngôn ngữ tự nhiên 35 2.1.2 Thuật tốn Nạve Bayes 37 2.1.3 Mơ hình Bernoulli 38 2.2 Phân tích thiết kế hệ thống 42 CHƯƠNG 3: TRIỂN KHAI XÂY DỰNG .44 3.1 Giới thiệu .44 3.2 Dataset 44 3.3 Model 47 3.4 Ứng dụng iOS 48 3.5 Xây dựng Server 49 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 51 1. Kết 51 Hạn chế 51 Hướng phát triển 51 DANH MỤC CÁC BẢNG Bảng 1: Ví dụ liệu với tin nhắn 38 Bảng 2: Ví dụ liệu với tin nhắn rác 38 Bảng : Ví dụ liệu với tin nhắn tin nhắn rác .39 DANH MỤC HÌNH Hình Swift logo 13 Hình Tiện ích mở rộng ứng dụng iOS 15 Hình Vịng đời tiện ích mở rộng ứng dụng .16 Hình iOS Extension giao tiếp trực tiếp với ứng dụng chủ .17 Hình Tiện ích mở rộng ứng dụng giao tiếp gián tiếp với ứng dụng chứa 18 Hình Tạo App Group trong Xcode 18 Hình Chuyển truy vấn đến Message Filter App Extension để nhận trạng thái tin nhắn 19 Hình Mơ hình hoạt động Message Filter App Extension 20 Hình Tiện ích mở rộng danh bạ gọi 21 Hình 10 Python 24 Hình 11 SailsJs 25 Hình 12 Cơ sở liệu Realm 26 Hình 13 MongoDB 28 Hình 14: Mơ hình chung cho thuật tốn học máy có giám sát 30 Hình 15 Mơ hình chung cho thuật tốn học máy khơng giám sát 32 Hình 16 Sơ đồ trình 35 Hình 17 Quy trình làm tin nhắn .36 Hình 18 Quy trình chuẩn hóa tin nhắn 36 Hình 19 Quy trình loại bỏ các từ khơng có nghĩa 37 Hình 20 Quy trình hoạt động ứng dụng 42 Hình 21 Xuất tin nhắn công cụ iMazing .45 Hình 22 Dataset sử dụng dự án 45 Hình 23 Tỷ lệ thư rác - lượng thư dự án .46 Hình 24 Top 30 từ sử dụng nhiều tin nhắn rác 46 Hình 25 Top 30 từ sử dụng nhiều tin nhắn khơng phải tin rác 47 Hình 26 Màn hình 48 Hình 27 Màn hình BlockList 48 Hình 28 Màn hình Bộ lọc thư 48 Hình 29 Thêm keyword 48 Hình 30 Thêm số điện thoại bị chặn 49 Hình 31 Xóa số điện thoại .49 Hình 32 Văn có nội dung khơng phải thư rác gửi đến máy chủ 49 Hình 33 Văn có nội dung spam gửi đến máy chủ .50 10 Mục tiêu bộ phân loại xác suất nào , với tính năng X thông qua X nvà lớp Y 1thông qua Y n, để xác định xác suất tính xảy lớp trả lớp có khả xảy Vì thế , cho lớp học, chúng tơi muốn để tính tốn P¿ | X , …, X n ¿ Để làm điều này, sử dụng quy tắc Bayes. Nhớ lại quy tắc Bayes sau: P ( y| x )= P(x ∨ y) P( y ) (1) P(x) Giả sử chiamột dấu x thành thành phần khác X , X , X … X n Và giả định địa X , X , X 3… X n thành phần độc lập Từ ta tính được: P( y ∨x)=P( x ∩ x2 ∩ xn ∨ y)=P (x 1∨ y) P(x 2∨ y ) P(x n∨ y ) Từ có công thức n P( y ∨x)∝ P( y ) ∏ P( x i∨ y )(3) x=1 Trong thực tế, khơng thể có liệu mà tất độc lập thành phần của mỗi người khác nhưng giả định giúp dễ dàng tính tốn, nhanh chóng đào tạo mang lại kết tuyệt vời với vấn đề định Mơ hình thuật tốn Naive Bayes: Một toán tiếng hiệu sử dụng NBC tốn phân loại text, phổ biến toán phân loại thư rác Trong toán này, văn thể thành dạng bag of words, hiểu nôm na thể xem có từ xuất tần suất xuất văn bản, bỏ qua thứ tự từ Các từ tần suất xuất coi feature vector, theo giả thiết Naive Bayes coi thành phần độc lập mà khơng ảnh hưởng đến Có mơ hình thuật tốn Naive Bayes thường sử dụng là: mơ hình Bernoulli mơ hình Multinomial 39 2.1.3 Mơ hình Bernoulli Cơng thức: Tại mơ hình, vectơ đặc trưng giá trị nhị phân 0, Trong đại diện cho từ xuất hiện trong văn bản, đại diện cho từ không xuất văn Xác suất P ( x i| y ) tính: P( x i∨ y )=P(i∨ y)× x i+(1−P( i∨ y))×(1−xi ) Trong đó: - P(i∨ y ) tỷ lệ số lần từ xuất tất tập liệu đào tạo có nhãn y Ví dụ: Ta có training data gồm 10 email, đánh nhãn: Spam (S) Not Spam (N) Ta định nghĩa bảng từ vựng gồm từ sau: V = [w1 , w2 , w3 , w , w5 ] Cần phân loại email E11 thuộc loại Bảng 1: Ví dụ liệu với tin nhắn Dữ liệu Tin nhắn w1 w2 w3 w4 w5 nhãn E1 1 N E2 1 0 N E3 1 S E4 1 1 S E5 1 S E6 0 1 N E7 0 S E8 1 S E9 0 1 N E10 1 S E11 0 1 ? đào tạo Kiểm tra liệu 40 Để dễ phân biệt, xếp tập training data riêng thành bảng sau: Bảng 2: Ví dụ liệu với tin nhắn rác Tin nhắn w1 w2 w3 w4 w5 nhãn E3 1 S E4 1 1 S E5 1 S E7 0 S E8 1 S E10 1 S Bảng : Ví dụ liệu với tin nhắn khơng phải tin nhắn rác Messages w1 w2 w3 w4 w5 Label E1 1 N E2 1 0 N E6 0 1 N E9 0 1 N Theo liệu trên, ta có : 6 P (S) = 10 , P (N) = 10 Số lần xuất từ ứng với hai nhãn S N sau: N S ( W )=4, N S ( W )=4 N S ( W ) =3, N S ( W ) =3 N S ( W ) =2 N S ( W )=4, N S ( W )=4 N S ( W ) =3, N S ( W ) =3 N S ( W ) =2 41 Ta tính tốn xác suất từ xuất sau: 2 P ( W 1∨S ) = , P ( W 2∨S ) = , P ( W 3∨S ) = 3 1 P ( W ∨S ) = , P ( W ∨S )= 1 P ( W 1∨N ) = , P ( W 2∨N ) = , P ( W 3∨N ) = 2 P ( W ∨N )= , P ( W ∨N )= Với liệu thử nghiệm E11= { W 1=1 , W = 1, W =1}, Ta tính tốn xác suất tương ứng E11 cho loại sau: P(S| E11) P(N| E11) ∝ P(S)∏ P (w i∨S )× wi +(1−P(w i∨S))×(1−w i) i=1 ∝ 1 1 ×( × × × × ) 10 3 2 ∝ 0.0111 ∝ P(N)∏ P (w i∨S )× wi +(1−P(w i∨S))×(1−w i) ∝ 1 ×( × × × × ) 10 2 ∝ 0.0094 i=1 Ta tính xác suất tương ứng sau: P(S| E11) ¿ 0.0111 ≈ 0.54 0.0111+ 0.0094 P(N| E11) ¿ 0.0094 ≈ 0.46 0.0111+ 0.0094 Do đó, E11là văn spam 42 2.2 Phân tích thiết kế hệ thống Hình 20 Quy trình hoạt động ứng dụng Quá trình hoạt động bao gồm bước sau: - Điện thoại nhận tất tin nhắn, gọi từ hệ thống liên lạc - Hệ thống gửi đến ứng dụng chủ (Phone & Messages) - Ứng dụng chủ chuyển cho iOS extension để xử lý nhận kết từ iOS extension - Tại iOS extension kiểm tra tin nhắn gọi có hợp lệ hay khơng: + Cuộc gọi: iOS extension kiểm tra gọi có hợp lệ hay không dựa vào nguồn liệu database trả kết chặn hay không + Tin nhắn: iOS extension kiểm tra tin nhắn có hợp lệ hay khơng qua lớp: Kiểm tra tin nhắn có chứa keyword không hợp lệ dựa vào keyword mà người dùng thêm vào thông qua ứng dụng 43 Kiểm tra tin nhắn có phải spam hay không dựa vào ML Model cung cấp cho iOS extension Nếu ML Model khơng nhận diện tin nhắn đó, gửi request lên server chũng ta cấu hình cho extension để kiểm tra bước cuối cùng, server trả kết xem tin nhắn có hợp lệ hay không - Hệ thống đồng liệu lên máy chủ đồng ý người dùng 44 3.1 Giới thiệu CHƯƠNG 3: TRIỂN KHAI XÂY DỰNG Chương trình bày quy trình bước triển khai thực dự án: - Cung cấp dataset - Thực traning model - Xây dựng ứng dụng iOS - Xây dựng Server Các cơng cụ lập trình được sử dụng : - Xcode - iMazing - Realm Studio - Pycharm - WebStorm 3.2 Dataset Để training cho model, cần dataset SMS text messages iMazing là cơng cụ miễn phí và dễ sử dụng Chúng ta sử dụng công cụ để lấy tất nội dung tin nhắn sử dụng làm dataset 45 Hình 21 Xuất tin nhắn công cụ iMazing Trong dự án này, iMazing sẽ giúp nhận tin nhắn từ nhà phát triển tất tập liệu xuất từ số thiết bị sưu tập từ internet Hình 22 Dataset sử dụng dự án Hình 22 cho thấy liệu tin nhắn hiển thị trong Pycharm IDE, có 9707 tin nhắn có nội dung spam và 1636 tin nhắn rác 46 Hình 23 Tỷ lệ thư rác - lượng thư dự án Hình 24 Top 30 từ sử dụng nhiều tin nhắn rác 47 Hình 25 Top 30 từ sử dụng nhiều tin nhắn tin rác 3.3 Model Model train có độ xác gần 92% True Positive 90,4% True Negative 91,25% False Positive 8,75% False Negative 9,6% Trong đó: - True Positive: Tỷ lệ tin nhắn SMS hợp lệ phân loại xác - True Negative: Tỷ lệ tin nhắn rác SMS phân loại xác. - False Positive: Tỷ lệ tin nhắn SMS hợp lệ bị phân loại sai thành tin nhắn rác. - False Negative: Tỷ lệ tin nhắn SMS rác bị phân loại sai thành tin nhắn hợp pháp 48 3.4 Ứng dụng iOS Hình 26 Màn hình chính Hình 27 Màn hình BlockList Hình 28 Màn hình Bộ lọc thư 49 Hình 29 Thêm keyword Hình 30 Thêm số điện thoại bị chặn Hình 31 Xóa số điện thoại 3.5 Xây dựng Server Hình 32 Văn có nội dung khơng phải thư rác gửi đến máy chủ 50 Hình 33 Văn có nội dung spam gửi đến máy chủ Trong hình 32 33 cho thấy tin nhắn văn gửi đến máy chủ trả cho kết xác 1. Kết KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Chúng ta đề xuất phương pháp lọc tin nhắn cho điện thoại sử dụng ngơn ngữ tiếng Việt, tìm hiểu cách hoạt động ứng dụng trên thiết bị iOS, cách thiết bị iOS tương tác với mơ hình học máy Kết kiểm tra: 51 - Model lọc tin nhắn rác xác - Ứng dụng chạy hầu hết điện thoại apple Hạn chế Mặc dù đạt số kết định đồ án số mặt cần hoàn thiện: - Dữ liệu người dùng nên chưa mang lại kết tốt cho người dùng - Cần phát triển thêm sang nhiều ngôn ngữ khác để cung cấp cho tất người quy mô lớn Hướng phát triển Cải thiện phần xử lý ngôn ngữ tự nhiên ̣(Natural Language Processing – NLP) phù hợp hiệu với tiếng việt Nâng cao cải thiện Machine Learning nhận diện tin nhắn spam xác Mở rộng phát triển ứng dụng chạy hệ điều hành Android Thêm chức giúp người sử dụng ứng dụng chia sẻ nguồn tin nhắn rác gọi spam với Nâng cấp Machine Learning sever Python tiếp tục học mẫu tin nhắn rác để cải thiện độ xác TÀI LIỆU THAM KHẢO [1] Question - BKAV, http://www.bkav.com.vn/hoi-dap/-/chi tiet/383980/tong-ket-anninh-mang-nam-2015-va-du-bao-xu-huong-2016 , accessed 10/10/2020 [2] Natural Language, https://en.wikipedia.org/wiki/Natural_language_processing, accessed 10/10/2020 52 [3] El Naqa I., Murphy M.J (2015) What Is Machine Learning? In: El Naqa I., Li R., Murphy M (eds) Machine Learning in Radiation Oncology Springer, Cham, accessed 13/10/2020 [4] Turing test, https://en.wikipedia.org/wiki/Natural_language_processing, accessed 14/10/2020 [5] Vietnamese Language, https://en.wikipedia.org/wiki/Vietnamese_language, accessed 14/10/2020 [6] Naive Bayes Classification (NBC) gì?, https://1upnote.me/post/2018/11/ds-mlnaive-bayes/, accessed 14/10/2020 [7] Introduce Swift , https://www.geeksforgeeks.org/introduction-to-swift-programming/, accessed 17/10/2020 [8] App Extension Programming Guide , https://developer.apple.com/library/archive/documentation/General/Conceptual/ ExtensibilityPG/ExtensionCreation.html, accessed 17/10/2020 [9] SMS and MMS Message Filtering, https://developer.apple.com/documentation/sms_and_call_reporting/sms_and_mms_mess age_filtering, accessed 20/10/2020 [10] Block and Identify Calls with Call Directory App Extension, https://agostini.tech/2019/07/14/block-and-identify-calls-with-call-directory-appextension/ , accessed 22/10/2020 [11] Understand Core ML on iOS in Minutes, https://medium.com/@dmennis/understand-core-ml-on-ios-in-5-minutesbc8ba5411a2d#:~:text=Core0MListhemachine,orvideoonthedevice., accessed 20/10/2020 [12] Zen of Python, https://en.wikipedia.org/wiki/Zen_of_Python, accessed 20/10/2020 53