Khóa luận Tìm hiểu các hướng tiếp cận phân loại email và xây dựng phần mềm Mail Client hỗ trợ Tiếng Việt

pdf 106 trang yendo 4450
Bạn đang xem 20 trang mẫu của tài liệu "Khóa luận Tìm hiểu các hướng tiếp cận phân loại email và xây dựng phần mềm Mail Client hỗ trợ Tiếng Việt", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfkhoa_luan_tim_hieu_cac_huong_tiep_can_phan_loai_email_va_xay.pdf

Nội dung text: Khóa luận Tìm hiểu các hướng tiếp cận phân loại email và xây dựng phần mềm Mail Client hỗ trợ Tiếng Việt

  1. ĈҤI HӐC QUӔC GIA TP. HӖ CHÍ MINH TRѬӠNG ĈҤI HӐC KHOA HӐC TӴ NHIÊN KHOA CÔNG NGHӊ THÔNG TIN %Ӝ MÔN Hӊ THӔNG THÔNG TIN LÊ NGUYӈN BÁ DUY –TRҪN MINH TRÍ TÌM HIӆU CÁC HѬӞNG TIӂP CҰN PHÂN LOҤI EMAIL VÀ XÂY DӴNG PHҪN MӄM MAIL CLIENT +Ӛ TRӦ TIӂNG VIӊT KHOÁ LUҰN CӰ NHÂN TIN HӐC TP. HCM, NĂM 2005 1
  2. ĈҤI HӐC QUӔC GIA TP. HӖ CHÍ MINH TRѬӠNG ĈҤI HӐC KHOA HӐC TӴ NHIÊN KHOA CÔNG NGHӊ THÔNG TIN %Ӝ MÔN Hӊ THӔNG THÔNG TIN LÊ NGUYӈN BÁ DUY -0112050 TRҪN MINH TRÍ -0112330 TÌM HIӆU CÁC HѬӞNG TIӂP CҰN PHÂN LOҤI EMAIL VÀ XÂY DӴNG PHҪN MӄM MAIL CLIENT +Ӛ TRӦ TIӂNG VIӊT KHOÁ LUҰN CӰ NHÂN TIN HӐC GIÁO VIÊN HѬӞNG DҮN THҪY LÊ ĈӬC DUY NHÂN NIÊN KHÓA 2001-2005 2
  3. /ӠI CҦM ѪN Trѭӟc tiên, chúng tôi xin chân thành cҧm ѫn thҫy Lê Ĉӭc Duy Nhân, ngѭӡi ÿã hѭӟng dүn chúng tôi thӵc hiӋn ÿӅ tài này. Nhӡ có sӵ hѭӟng dүn, chӍ bҧo tұn tình cӫa thҫy, chúng tôi ÿã hoàn thành khoá luұn này. Chúng con xin kính gӣi lòng biӃt ѫn, kính trӑng cӫa chúng con ÿӃn ông bà, cha mҽ và các ngѭӡi thân trong gia ÿình ÿã hӃt lòng nuôi chúng con ăn hӑc, luôn luôn ӣ bên chúng con,ÿӝng viên giúp ÿӥ chúng con vѭӧt qua khó khăn Chúng em xin cҧm ѫn tҩt cҧ các thҫy cô trѭӡng Ĉҥi hӑc Khoa Hӑc Tӵ Nhiên, ÿһc biӋt là các thҫy cô trong khoa Công NghӋ Thông Tin ÿã hӃt lòng giҧng dҥy, truyӅn ÿҥt nhiӅu kiӃn thӭc và kinh nghiӋm quý báu cho chúng em. Chúng em cNJng xin chân thành cҧm ѫn khoa Công NghӋ Thông Tin, bӝ môn HӋ Thӕng Thông Tin ÿã tҥo mӑi ÿLӅu kiӋn thuұn lӧi trong quá trình thӵc hiӋn khoá luұn cӫa chúng em. Chúng tôi xin chân thành cҧm ѫn bҥn bè trong lӟp cNJng nhѭ các anh chӏÿi trѭӟc ÿã giúp ÿӥ, ÿóng góp ý kiӃn cho chúng tôi. Vӟi thӡi gian nghiên cӭu ngҳn, trong vòng 6 tháng và năng lӵc cӫa nhӳng ngѭӡi làm ÿӅ tài, chҳc chҳn ÿӅ tài còn có nhiӅu thiӃu sót. Chúng tôi rҩt mong nhұn ÿѭӧc nhӳng góp ý, nhұn xét ÿӇÿӅ tài ÿѭӧc hoàn thiӋn hѫn. Thành phӕ Hӗ Chí Minh Tháng 7 năm 2005 Nhӳng ngѭӡi thӵc hiӋn: Lê NguyӉn Bá Duy – Trҫn Minh Trí. 3
  4. v Mөc lөc: Chѭѫng 1 : MӢĈҪU 9 1.1 Giӟi thiӋu: 10 1.2 Yêu cҫu bài toán: 12 1.3 Bӕ cөc khoá luұn : 12 Chѭѫng 2 : TӘNG QUAN 14 2.1 Các cách thӭc con ngѭӡi xӱ lý vӟi spam : 15 2.2 Các phѭѫng pháp tiӃp cұn: 16 2.2.1 Complaining to Spammers' ISPs : 16 2.2.2 Mail Blacklists /Whitelists: 16 2.2.3 Mail volume : 18 2.2.4 Signature/ Checksum schemes: 19 2.2.5 Genetic Algorithms: 20 2.2.6 Rule-Based (hay là Heuristic): 21 2.2.7 Challenge-Response: 22 2.2.8 Machine Learning ( Máy hӑc ): 23 2.3 Phѭѫng pháp lӵa chӑn : 24 2.4 Các chӍ sӕÿánh giá hiӋu quҧ phân loҥi email : 24 2.4.1 Spam Recall và Spam Precision: 24 2.4.2 TӍ lӋ lӛi Err (Error) và tӍ lӋ chính xác Acc(Accuracy) : 25 2.4.3 TӍ lӋ lӛi gia trӑng WErr (Weighted Error ) và tӍ lӋ chính xác gia trӑng (Weighted Accuracy): 25 2.4.4 TӍ sӕ chi phí tәng hӧp TCR (Total Cost Ratio ): 26 Chѭѫng 3 : GIӞI THIӊU CÁC KHO NGӲ LIӊU DÙNG KIӆM THӰ PHÂN LOҤI EMAIL 28 3.1 Kho ngӳ liӋu PU (corpus PU ): 29 3.1.1 Vài nét vӅ kho ngӳ liӋu PU: 29 3.1.2 Mô tҧ cҩu trúc kho ngӳ liӋu PU: 30 3.2 Kho ngӳ liӋu email chӳ: 31 Chѭѫng 4 : PHѬѪNG PHÁP PHÂN LOҤI NAÏVE BAYESIAN VÀ ӬNG DӨNG PHÂN LOҤI EMAIL 33 4.1 Mӝt vài khái niӋm xác suҩt có liên quan 34 4.1.1 Ĉӏnh nghƭa biӃn cӕ, xác suҩt : 34 4.1.2 Xác suҩt có ÿLӅu kiӋn, công thӭc xác suҩt ÿҫy ÿӫ – công thӭc xác suҩt Bayes35 4.2 Phѭѫng pháp phân loҥi Naïve Bayesian : 36 4.3 Phân loҥi email bҵng phѭѫng pháp Naïve Bayesian : 37 4.3.1 Phân loҥi email dӵa trên thuұt toán Naïve Bayesian 38 4.3.2 Chӑn ngѭӥng phân loҥi email : 39 Chѭѫng 5 : THӴC HIӊN VÀ KIӆM THӰ PHÂN LOҤI EMAIL DӴA TRÊN PHѬѪNG PHÁP PHÂN LOҤI NAÏVE BAYESIAN 41 5.1 Cài ÿһt chѭѫng trình phân loҥi email dӵa trên phѭѫng pháp phân loҥi Naïve Bayesian: 42 5.1.1 Khái niӋm “Token” : 42 5.1.2 Vector thuӝc tính : 42 5.1.3 Chӑn ngѭӥng phân loҥi : 43 5.1.4 Cách thӵc hiӋn : 43 4
  5. 5.2 Thӱ nghiӋm hiӋu quҧ phân loҥi 51 5.2.1 Thӱ nghiӋm vӟi kho ngӳ liӋu pu: 51 5.2.2 Thӱ nghiӋm vӟi kho ngӳ liӋu email chӳ : 60 5.3 Ѭu – nhѭӧc ÿLӇm cӫa phѭѫng pháp phân loҥi Naïve Bayesian: 61 5.3.1 Ѭu ÿLӇm : 61 5.3.2 KhuyӃt ÿLӇm : 62 Chѭѫng 6 : PHѬѪNG PHÁP ADABOOST VÀ ӬNG DӨNG PHÂN LOҤI EMAIL 63 6.1 Thuұt toán AdaBoost : 64 6.2 AdaBoost trong phân loҥi văn bҧn nhiӅu lӟp : 65 Thuұt toán AdaBoost MH phân loҥi văn bҧn nhiӅu lӟp : 66 6.3 Ӭng dөng AdaBoost trong phân loҥi email: 66 6.3.1 Thuұt toán AdaBoost.MH trong truӡng hӧp phân loҥi nhӏ phân 67 Giӟi hҥn lӛi huҩn luyӋn sai : 68 6.3.2 Phѭѫng pháp lӵa chӑn luұt yӃu : 70 Chѭѫng 7 : THӴC HIӊN VÀ KIӆM THӰ PHÂN LOҤI EMAIL DӴA TRÊN PHѬѪNG PHÁP ADABOOST 73 7.1 Cài ÿһt bӝ phân loҥi email dӵa trên phѭѫng pháp AdaBoost: 74 7.1.1 Tұp huҩn luyӋn mүu và tұp nhãn : 74 7.1.2 Xây dӵng tұp luұt yӃu ban ÿҫu : 75 7.1.3 Thӫ tөc WeakLearner chӑn luұt yӃu: 76 7.1.4 Phân loҥi email : 76 7.2 Thӱ nghiӋm hiӋu quҧ phân loҥi : 76 7.2.1 Thӱ nghiӋm vӟi kho ngӳ liӋu pu: 76 7.2.2 Thӱ nghiӋm vӟi kho ngӳ liӋu email chӳ: 79 7.3 Ѭu – nhѭӧc ÿLӇm cӫa phѭѫng pháp phân loҥi AdaBoost: 80 7.3.1 Ѭu ÿLӇm : 80 7.3.2 KhuyӃt ÿLӇm : 80 Chѭѫng 8 : XÂY DӴNG CHѬѪNG TRÌNH MAIL CLIENT TIӂNG VIӊT HӚ TRӦ PHÂN LOҤI EMAIL 82 8.1 Chӭc năng: 83 8.2 Xây dӵng bӝ lӑc email spam : 83 8.3 Tә chӭc dӳ liӋu cho chѭѫng trình : 84 8.4 Giao diӋn ngѭӡi dùng : 85 8.4.1 Sѫÿӗ màn hình : 85 8.4.2 Mӝt sӕ màn hình chính : 85 Chѭѫng 9 : TӘNG KӂT VÀ HѬӞNG PHÁT TRIӆN 94 9.1 Các viӋc ÿã thӵc hiӋn ÿѭӧc : 95 9.2 Hѭӟng cҧi tiӃn, mӣ rӝng : 95 9.2.1 VӅ phân loҥi và lӑc email spam: 95 9.2.2 VӅ chѭѫng trình Mail Client: 96 TÀI LIӊU THAM KHҦO 97 TiӃng ViӋt : 97 TiӃng Anh : 97 Phө lөc 99 5
  6. Phө lөc 1 : KӃt quҧ thӱ nghiӋm phân loҥi email bҵng phѭѫng pháp Bayesian vӟi kho ngӳ liӋu hӑc và kiӇm thӱ pu 99 Phө lөc 2 : KӃt quҧ thӱ nghiӋm phân loҥi email bҵng phѭѫng pháp AdaBoost vӟi kho ngӳ liӋu hӑc và kiӇm thӱ pu 103 1. KӃt quҧ thӵc hiӋn vӟi thuұt toán AdaBoost with real value predictions 103 2. KӃt quҧ thӵc hiӋn vӟi thuұt toán AdaBoost with discrete predictions 105 6
  7. Danh mөc các hình vӁ: Hình 3-1Email sau khi tách token và mã hoá (trong kho ngӳ liӋu pu) 29 Hình 5-1Mô tҧ cҩu trúc bҧng băm 48 Hình 5-2 Lѭӧc ÿӗ so sánh các chӍ sӕ spam recall (SR) và spam precision (SP) theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PU1 vӟi công thӭc 5-7 (l=9 ) 53 Hình 5-3 Lѭӧc ÿӗ chӍ sӕ TCR theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PU1 vӟi công thӭc 5-7 (l=9 ) 53 Hình 5-4 Lѭӧc ÿӗ so sánh các chӍ sӕ spam recall (SR) và spam precision (SP) theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PU2 vӟi công thӭc 5-5 (l=9 ) 55 Hình 5-5 Lѭӧc ÿӗ chӍ sӕ TCR theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PU2 vӟi công thӭc 5-5 (l=9 ) 55 Hình 5-6 Lѭӧc ÿӗ so sánh các chӍ sӕ spam recall (SR) và spam precision (SP) theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PU3 vӟi công thӭc 5-6 (l=9 ) 57 Hình 5-7 Lѭӧc ÿӗ chӍ sӕ TCR theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PU3 vӟi công thӭc 5-6 (l=9 ) 57 Hình 5-8 Lѭӧc ÿӗ so sánh các chӍ sӕ spam recall (SR) và spam precision (SP) theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PUA vӟi công thӭc 5-5 (l=9 ) 59 Hình 5-9 Lѭӧc ÿӗ chӍ sӕ TCR theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PUA vӟi công thӭc 5-5 (l=9 ) 59 7
  8. Danh mөc các bҧng: Bҧng 3-1Mô tҧ cҩu trúc kho ngӳ liӋu PU 31 Bҧng 5-1 KӃt quҧ kiӇm thӱ phân lӑai email bҵng phѭѫng pháp phân lӑai Naïve Bayesian trên kho ngӳ liӋu PU1 52 Bҧng 5-2 KӃt quҧ kiӇm thӱ phân lӑai email bҵng phѭѫng pháp phân lӑai Naïve Bayesian trên kho ngӳ liӋu PU2 54 Bҧng 5-3 KӃt quҧ kiӇm thӱ phân lӑai email bҵng phѭѫng pháp phân lӑai Naïve Bayesian trên kho ngӳ liӋu PU3 56 Bҧng 5-4 KӃt quҧ kiӇm thӱ phân lӑai email bҵng phѭѫng pháp phân lӑai Naïve Bayesian trên kho ngӳ liӋu PUA 58 Bҧng 5-5 KӃt quҧ kiӇm thӱ phân lӑai email bҵng phѭѫng pháp phân lӑai Bayesian trên kho ngӳ liӋu email chӳ 61 Bҧng 7-1 KӃt quҧ thӱ nghiӋm phân loҥi email vӟi ngӳ liӋu sӕ PU bҵng thuұt toán AdaBoost with real -value predictions 77 Bҧng 7-2 KӃt quҧ thӱ nghiӋm phân loҥi email vӟi ngӳ liӋu sӕ PU bҵng thuұt toán AdaBoost with discrete predictions 77 Bҧng 7-3 kӃt quҧ thӱ nghiӋm phân loҥi email vӟi ngӳ liӋu email chӳ bҵng thuұt toán AdaBoost with real-value predictions 79 Bҧng 7-4 KӃt quҧ thӱ nghiӋm phân loҥi email vӟi ngӳ liӋu email chӳ bҵng thuұt toán AdaBoost with discrete predictions 80 8
  9. Chѭѫng 1 : MӢĈҪU 9
  10. 1.1 Giӟi thiӋu: Thӡi ÿҥi ngày nay là thӡi ÿҥi bùng nә thông tin, Internet ÿã trӣ nên quen thuӝc và không thӇ thiӃu ÿӕi vӟi mӛi quӕc gia và xã hӝi. Liên lҥc qua Internet ÿã trӣ nên phә biӃn, và email là mӝt phѭѫng tiӋn liên lҥc có chi phí thҩp, nhanh chóng và hiӋu quҧ nhҩt trên Internet. Hҵng ngày mӛi ngѭӡi sӱ dөng email ÿӅu nhұn ÿѭӧc mӝt Oѭӧng lӟn email, tuy nhiên không phҧi tҩt cҧ các email mà ta nhұn ÿѭӧc ÿӅu chӭa thông tin mà ta quan tâm. Nhӳng email mà ta không muӕn nhұn ҩy là email Spam. Ngѭӧc lҥi, nhӳng email không phҧi là spam gӑi là non-spam – email hӧp lӋÿѭӧc ngѭӡidùng chҩp nhұn. Spam chính là nhӳng email ÿѭӧc phát tán mӝt cách rӝng rãi không theo bҩt cӭ mӝt yêu cҫu nào cӫa ngѭӡi nhұn vӟi sӕ lѭӧng lӟn (unsolicited bulk email (UBE)), hay nhӳng email quҧng cáo ÿѭӧc gӣi mà không có yêu cҫu cӫa ngѭӡi nhұn (unsolicited commercial email (UCE)) [1]. NhiӅu ngѭӡi trong chúng ta nghƭ rҵng spam là mӝt vҩn ÿӅ mӟi, nhѭng thӵc ra nó ÿã xuҩt hiӋn khá lâu – ít nhҩt là tӯ năm 1975. Vào lúc khӣi thӫy, ngѭӡi dùng hҫu hӃt là các chuyên gia vӅ máy tính, hӑ có thӇ gӣi hàng tá thұm chí hàng trăm email ÿӃn các nhóm tin (newsgroup) và spam hҫu nhѭ chӍ liên quan ÿӃn các email gӣi ÿӃn các nhóm tin Usenet, gây ra tình trҥng không thӇ kiӇm soát ÿѭӧc các email nhұn. Sau ÿó các biӋn pháp trӯng trӏ vӅ mһt xã hӝi và hành chính ÿã có tác dөng, thӫ phҥm ÿã bӏ trӯng phҥt , công khai hay bí mұt, nhӳng ngѭӡi này nhanh chóng ÿѭӧc ÿѭa vào mӝt danh sách, và mӝt kƭ thuұt lӑc spam sӟm nhҩt xuҩt hiӋn ÿó là ”bad sender” – lӑc email cӫa nhӳng ngѭӡi gӣi ÿѭӧc xem là xҩu. WWW(World-Wide Web) ÿã mang thӃ giӟi Internet ÿӃn nhiӅu ngѭӡi, và hӋ quҧ cӫa nó là nhiӅu ngѭӡi không phҧi là chuyên gia trong thӃ giӟi máy tính cNJng ÿѭӧc tiӃp xúc nhiӅu vӟi Internet, nó cho phép truy cұp ÿӃn nhӳng thông tin và dӏch vө mà trѭӟc ÿây là không ÿѭӧc phép. ChӍ trong vòng 2-3 năm chúng ta ÿã chӭng kiӃn sӵ bùng nә sӕ ngѭӡi sӱ dөng Internet và tҩt nhiên là nhӳng cѫ hӝi quҧng cáo trên ÿҩy. Và spam ÿã phát triӇn mӝt cách nhanh chóng tӯÿây, nhӳng kƭ thuұt ngăn 10
  11. chһn spam trѭӟc ÿây ÿã không còn thích hӧp. Spam thѭӡng theo sau nhӳng quҧng cáo thѭѫng mҥi chèo kéo khách hàng ( nhӳng email quҧng cáo thѭѫng mҥi ÿѭӧc gӣi mà không có yêu cҫu ) [2]. Spam ÿã và ÿang gây tác hҥi ÿӃn ngѭӡi sӱ dөng Internet và tӕc ÿӝÿѭӡng truyӅn Internet. Vӟi ngѭӡi sӱ dөng email, spam gây cho hӑ cҧm giác bӵc bӝi và phҧi mҩt thӡi gian và tiӅn bҥc ÿӇ xóa chúng,ÿôi khi hӑ có thӇ bӏ mҩt nhӳng email quan trӑng chӍ vì xóa nhҫm, tӕc ÿӝ trên mҥng xѭѫng sӕng cӫa Internet (Internet Backbone) cNJng bӏ spam là cho chұm lҥi vì sӕ lѭӧng spam ÿѭӧc chuyӇn ÿi trên mҥng là cӵc lӟn [3]. Theo thӕng kê cӫa ZDNet ӣ thӡi ÿLӇm năm 2004, mӛi ngày có khoҧng 4 tӹ email spam ÿѭӧc phát tán qua Internet, trên 40% Oѭӧng email trên mҥng là spam1, gҫn ÿây ÿã ÿҥt con sӕ 50%2. Cho dù ÿѭӧc nhұn diӋn là “kҿ thù cӫa cӝng ÿӗng“(“public enemy”) Internet, nhѭng spam ÿã và ÿang mang lҥi lӧi nhuұn. Trong sӕ 100.000 email spam phát tán, chӍ cҫn mӝt email có phҧn hӗi là ÿã có thӇ bù ÿҳp chi phí ÿҫu tѭ [4]. ĈӇ ngăn chһn spam, nhiӅu nhà khoa hӑc, các tә chӭc, các cá nhân ÿã nghiên cӭu và phát triӇn nhӳng kƭ thuұt phân loҥi và lӑc email, tuy nhiên các spammer - nhӳng ngѭӡi tҥo nên spam và phát tán chúng cNJng tìm mӑi cách vѭӧt qua các bӝ lӑc này. Cuӝc chiӃn giӳa các spammer và nhӳng ngѭӡi chӕng spam vүn còn ÿang tiӃp diӉn và dѭӡng nhѭ không có hӗi kӃt. Thӵc tӃ cho thҩy, nhu cҫu có mӝt phѭѫng pháp và công cө chӕng spam hӳu hiӋu là rҩt cҫn thiӃt. Xuҩt phát tӯ thӵc trҥng ÿó, nhóm chúng tôi chӑn hѭӟng nghiên cӭu ”Tìm hiӇu các hѭӟng tiӃp cұn cho bài toán phân loҥi email và xây dӵng phҫn mӅm Mail Client hӛ trӧ tiӃng ViӋt “ vӟi mөc ÿích tìm hiӇu, thӱ nghiӋm các phѭѫng pháp tiӃp cұn cho bài toán phân loҥi email , tӯ ÿó thӵc hiӋn phân loҥi email giúp ngăn chһn email spam hiӋu quҧ. 1 2 11
  12. 1.2 Yêu cҫu bài toán: Yêu cҫu ÿӕi vӟi mӝt hӋ thӕng phân loҥi email và ngăn chһn email spam ÿѭѫng nhiên là phân loҥi ÿѭӧc email là spam hay non-spam, tӯÿó sӁ có biӋn pháp ngăn chһn email spam, hiӋu quҧ phân loҥi email phҧi khҧ quan, tuy nhiên không thӇ ÿánh ÿәi hiӋu quҧ phân loҥi email spam cao mà bӓ qua lӛi sai cho rҵng email non- spam là spam, bӣi vì cùng vӟi viӋc tăng khҧ năng phân loҥi email spam thì khҧ năng xҧy ra lӛi nhұn nhҫm email non-spam thành email spam cNJng tăng theo. Do ÿó yêu cҫu ÿӕi vӟi mӝt hӋ thӕng phân loҥi email spam là phҧi nhұn ra ÿѭӧc email spam càng nhiӅu càng tӕt và giҧm thiӇu lӛi nhұn sai email non-spam là email spam. 1.3 Bӕ cөc khoá luұn : Chúng tôi chia khoá luұn làm 9 chѭѫng § Chѭѫng 1 Giӟi thiӋu vӅÿӅ tài, bài toán phân loҥi email. § Chѭѫng 2 Tәng quan : trình bày mӝt sӕ hѭӟng tiӃp cұn phân loҥi email và chӕng email spam,ÿӗng thӡi có sӵ nhұn xét ÿánh giá các phѭѫng pháp, tӯÿó có cѫ sӣÿӇ chӑn lӵa hѭӟng tiӃp cұn giҧi quyӃt vҩn ÿӅ. § Chѭѫng 3 : Giӟi thiӋu và mô tҧ vӅ cѫ sӣ dӳ liӋu dùng ÿӇ hӑc và kiӇm thӱ Hai chѭѫng tiӃp theo, chúng tôi trình bày cѫ sӣ lý thuyӃt và thӵc hiӋn phân loҥi email theo phѭѫng pháp Bayesian. § Chѭѫng 4: Trình bày cѫ sӣ lý thuyӃt cho hѭӟng tiӃp cұn dӵa trên phѭѫng pháp Bayesian. § Chѭѫng 5: Thӵc hiӋn phân loҥi email dѭҥ trên phѭѫng pháp Bayesian và kiӇm thӱ. Hai chѭѫng tiӃp theo, chúng tôi trình bày cѫ sӣ lý thuyӃt và thӵc hiӋn phân loҥi email theo phѭѫng pháp AdaBoost § Chѭѫng 6: Trình bày cѫ sӣ lý thuyӃt cho hѭӟng tiӃp cұn dӵa trên thuұt toán AdaBoost. § Chѭѫng 7: Thӵc hiӋn phân loҥi dѭҥ trên phѭѫng pháp AdaBoost và kiӇm thӱ. 12
  13. § Chѭѫng 8: Xây dӵng phҫn mӅm email Client tiӃng ViӋt hӛ trӧ phân loҥi email § Chѭѫng 9: Tәng kӃt, trình bày vӅ nhӳng vҩn ÿӅÿã thӵc hiӋn, nhӳng kӃt quҧÿҥt ÿѭӧc,ÿӅ xuҩt hѭӟng mӣ rӝng, phát triӇn trong tѭѫng lai. 13
  14. Chѭѫng 2 : TӘNG QUAN 14
  15. 2.1 Các cách thӭc con ngѭӡi xӱ lý vӟi spam : Trên thӃ giӟi ÿã có nhiӅu tә chӭc, công ty phát triӇn nhiӅu cách thӭc khác nhau ÿӇ giҧi quyӃt vҩn ÿӅ spam. Có nhiӅu hӋ thӕng ÿѭӧc xây dӵng sҹn mӝt “danh sách ÿen” (Blacklist ) chӭa các tên miӅn mà tӯÿó spam ÿѭӧc tҥo ra và phát tán, và dƭ nhiên là các email ÿӃn tӯ các tên miӅn này hoàn toàn bӏ khóa (block out). Mӝt sӕ hӋ thӕng căn cӭ vào header cӫa email (nhӳng trѭӡng nhѭ nѫi gӣi (from ), tiêu ÿӅ (subject) ) và loҥi bӓ nhӳng email có ÿӏa chӍ xuҩt phát tӯ nhӳng spammer (ngѭӡi phát tán spam). Vài hӋ thӕng khác lҥi tìm kiӃm trong nӝi dung cӫa email, nhӳng dҩu vӃt cho thҩy có sӵ tӗn tҥi cӫa spam chҷng hҥn email có quá nhiӅu dҩu than, sӕ chӳ cái ÿѭӧc viӃt hoa nhiӅu mӝt cách bҩt bình thѭӡng Tuy nhiên các spammer ngày càng tinh vi, vì thӃ các kӻ thuұt dùng ÿӇ chӕng spam cNJng phҧi ÿѭӧc cҧi tiӃn, và chính nhӳng cҧi tiӃn này càng thôi thúc các spammer trӣ nên ranh ma và tinh vi hѫn KӃt quҧ là nhѭ hiӋn nay, các email spam gҫn nhѭ giӕng vӟi mӝt email thông thѭӡng. Tuy nhiên email spam có mӝt ÿLӅu không bao giӡ thay ÿәi ÿó là bҧn chҩt cӫa nó. Bҧn chҩt ÿó chính là mөc tiêu quҧng cáo sҧn phҭm hay dӏch vө. Nó là cѫ sӣ cho phѭѫng pháp lӑc email dӵa trên nӝi dung (content based filtering).Theo ÿó, chúng ta cӕ gҳng phát hiӋn ra các ngôn ngӳ quҧng cáo (sales-pitch language) thay vì chú ý ÿӃn các chӍ sӕ thӕng kê cӫa email chҷng hҥn nhѭ có bao nhiêu lҫn xuҩt hiӋn chӳ “h0t chixxx!” Mӝt ÿLӅu quan trӑng cҫn phҧi cân nhҳc ÿӃn khi lӑc spam là cái giá phҧi trҧ khi lӑc sai. NӃu mӝt bӝ lӑc tӯ chӕi nhұn hҫu hӃt các email gӱi ÿӃn hoһc ÿánh dҩu mӝt email thұt sӵ quan trӑng nào ÿó là spam thì ÿiӅu ÿó còn tӋ hѫn cҧ viӋc nhұn tҩt cҧ email spam ÿѭӧc gӱi ÿӃn. Ngѭӧc lҥi, nӃu có quá nhiӅu email spam vѭӧt ÿѭӧc bӝ lӑc thì rõ ràng bӝ lӑc hoҥt ÿӝng không hiӋu quҧ, không ÿáp ӭng ÿѭӧc yêu cҫu cӫa ngѭӡi sӱ dөng. 15
  16. 2.2 Các phѭѫng pháp tiӃp cұn: 2.2.1 Complaining to Spammers' ISPs : · Ý tѭӣng : Tìm cách làm tăng chi phí gӱi spam cӫa các spammer bҵng nhӳng lӡi than phiӅn, phҧn ánh ÿӃn các nѫi cung cҩp dӏch vө mҥng (Internet Service Provider - ISP). Khi chúng ta biӃt chính xác nhӳng email spam thӵc sӵÿѭӧc gӱi ÿӃn tӯ dӏch vө ISP nào, ta sӁ phҧn ánh lҥi vӟi dӏch vөÿó và dӏch vө này sӁ tӯ chӕi cung cҩp dӏch vө cho các spammer dùng gӱi spam. · Ĉһc ÿLӇm : Ĉây cNJng là giҧi pháp chӕng spam ÿҫu tiên. Nhӳng lӡi than phiӅn cNJng có tác dөng cӫa nó. Nhӳng nѫi gӱi spam sӁ bӏ vô hiӋu hóa, khi ÿó các spammer phҧi ÿăng ký mӝt tài khoҧn mӟi vӟi nhà cung cҩp dӏch vө ISP ÿӇ có thӇ tiӃp tөc phát tán các email spam cӫa mình. Dҫn dҫn viӋc chuyӇn nѫi cung cҩp dӏch vө sӁ làm các spammer tӕn nhiӅu chi phí và khi chúng ta phát hiӋn càng sӟm thì chi phí trên cӫa các spammer càng tăng nhiӅu. Cách này cNJng gһp phҧi nhӳng khó khăn ÿó là không thӇ biӃt chính xác nhӳng email spam này thӵc sӵÿӃn tӯÿâu do các spammer ÿã khéo léo che giҩu ÿi phҫn header cӫa email ÿӇҭn ÿi nguӗn gӕc. Do ÿó cҫn phҧi hiӇu biӃt vӅ header cӫa email ÿӇ hiӇu rõ email spam này thұt sӵ ÿӃn tӯ ÿâu. 2.2.2 Mail Blacklists /Whitelists: · Ý tѭӣng: Mӝt danh sách ÿen (Blacklist) các ÿӏa chӍ email hay các máy chӫ email (mail server) chuyên dùng cӫa các spammer sӁÿѭӧc thiӃt 16
  17. lұp và dӵa vào ÿó ta có thӇ ngăn chһn nhұn email spam ÿѭӧc phát tán tӯ nhӳng nѫi này. ViӋc thiӃt lұp danh sách các ÿӏa chӍ email ÿen hay máy chӫ gӱi email này sӁ do mӝt nhóm tình nguyӋn xác nhұn. Mӝt sӕ nhà cung cҩp dӏch vө mҥng ISP sӁ dùng danh sách ÿen kiӇu này và tӵÿӝng tӯ chӕi nhұn email tӯ nhӳng máy chӫ hay email trong dánh sách ÿó. Nhѭ vұy, nhӳng email spam sӁÿѭӧc phân loҥi và chһn ngay tҥi máy chӫ nhұn email. · Ĉһc ÿLӇm: Phѭѫng pháp này bѭӟc ÿҫu loҥi ÿѭӧc khoҧng 50% [5] email spam. KhuyӃt ÿLӇm cӫa phѭѫng pháp này là chúng không thӇÿѭѫng ÿҫu vӟi hѫn mӝt nӱa sӕ server mà spam ÿang sӱ dөng hiӋn nay. Và nӃu xác nhұn sai danh sách ÿen này thì viӋc dùng nó ÿӗng nghƭa vӟi viӋc bӓ qua mӝt lѭӧng lӟn email hӧp lӋ. Phѭѫng pháp này có thӇ bӏ qua mһt nӃu nhѭ các spammer gӱi lҥi email thông qua mӝt máy chӫ SMTP (Simple email Transfer Protocol) có nguӗn gӕc hӧp pháp không kӇ tên trong danh sách “Blacklist”. Ngoài ra, danh sách này không chӍ tӯ chӕi nhұn email tӯ các ÿӏa chӍ IP (Internet Protocol) tӯ nhӳng nѫi chuyên dùng gӱi spam mà nó còn tӯ chӕi luôn cҧ nhӳng email mà có tên miӅn nҵm trong danh sách “Blacklist” này. Cách này ÿѭӧc áp dөng tҥi mӭc nhà cung cҩp dӏch vө mҥng (ISP), và thұt sӵ hӳu dөng vӟi ngѭӡi dùng nӃu hӑ sӱ dөng mӝt ISP ÿáng tin cұy. 17
  18. Ngѭӧc lҥi vӟi viӋc thiӃt lұp mӝt danh sách ÿen “Blacklist” ta còn có thӇ thiӃt lұp mӝt danh sách “Whitelist”. Vӟi nhӳng ÿӏa chӍ gӱi email (hoһc tên miӅn domains) nҵm trong danh sách này sӁÿѭӧc các ISP tӵÿӝng chҩp nhұn email gӱi tӯ nó. Mһc ÿӏnh tҩt cҧ nhӳng email khác sӁ bӏ tӯ chӕi NӃu các spammer gӱi email spam vӟi phҫn “sender” cӫa email có cùng tên miӅn ÿѭӧc chҩp nhұn trong “Whitelist” thì email spam vүn có thӇÿӃn ÿѭӧc tay ngѭӡi nhұn. 2.2.3 Mail volume : · Ý tѭӣng: Bӝ lӑc sӁ sӱ dөng thuұt toán ÿӇ kiӇm tra sӕ lѭӧng email nhұn ÿѭӧc tӯ mӝt máy chӫ (host) cө thӇ trong các lҫn kӃt nӕi sau cùng (cách này ÿã ÿѭӧc bӝ lӑc Spamshield 3 cӫa Kai sӱ dөng. NӃu sӕ Oѭӧng email nhұn ÿѭӧc lӟn hѫn mӝt ngѭӥng nào ÿó thì các email ÿó sӁÿѭӧc phân loҥi là spam. · Ĉһc ÿLӇm: Bӝ lӑc tӓ ra hiӋu quҧ trong viӋc phân loҥi ÿúng tҩt cҧ các email hӧp lӋ trong ÿiӅu kiӋn vӟi mӝt ngѭӥng phân loҥi ÿӫ cao.NӃu bӝ lӑc ÿѭӧc sӱ dөng cho cá nhân, thì nó hoҥt ÿӝng rҩt hiӋu quҧ. Có thӇ xem ÿây là mӝt ѭu ÿiӇm cӫa bӝ lӑc bӣi vì vӟi email cá nhân thì nhӳng kҿ gӱi email quҧng cáo phҧi thiӃt lұp nhiӅu kӃt nӕi hѫn ÿӇ gӱi mӝt sӕ Oѭӧng email giӕng nhau. ĈLӅu này làm cho các email quҧng cáo ÿó dӉ dàng bӏ phát hiӋn dӵa trên viӋc phân tích sӕ lѭӧng email. Mһt hҥn chӃ cӫa bӝ lӑc này là tӍ lӋ chҩp nhұn phân loҥi sai FAR (false acceptance rate) cӫa nó còn khá cao. Vӟi: 3 18
  19. n FAR = SN® n S nSN® : 6ӕ email spam mà bӝ lӑc nhұn là non-spam. nS : 6ӕ email spam thӵc sӵÿӃn bӝ lӑc 2.2.4 Signature/ Checksum schemes: · Ý tѭӣng: Ĉây là mӝt trong nhӳng phѭѫng pháp phân loҥi email dӵa trên nӝi dung. Khi mӝt email tӟi thì giá trӏ “Signature/ Checksum” sӁÿѭӧc tính toán cho mӛi email này và so sánh nó vӟi giá trӏ tính ÿѭӧc tӯ nhӳng email spam ÿһc trѭng trong tӯ nhӳng email spam có sҹn trên Internet. NӃu giá trӏ “signature/ checksum” cӫa nhӳng email tӟi giӕng vӟi bҩt kǤ giá trӏ nào trong cѫ sӣ dӳ liӋu thì email ÿó ÿѭӧc ÿánh giá là spam. Mӝt cách ÿѫn giҧn ÿӇ tính giá trӏ này là gán mӝt giá trӏ cho mӛi kí tӵ, sau ÿó cӝng tҩt cҧ chúng lҥi. SӁ là không bình thѭӡng nӃu 2 email khác nhau lҥi có chung mӝt giá trӏ “signature/ checksum”. · Ĉһc ÿLӇm: Cách tҩn công mӝt bӝ lӑc kiӇu này là thêm vào ngүu nhiên mӝt vài ký tӵ hay mӝt câu vô nghƭa trong mӛi email spam ÿӇ tҥo ra sӵ khác biӋt cӫa giá trӏ “signature”. Khi bҥn thҩy nhӳng thӭ hӛn tҥp chèn ngүu nhiên trong phҫn tiêu ÿӅ (subject) cӫa email, ÿó chính là cách ÿӇ tҩn công bӝ lӑc dӵa vào “signature/ checksum”. Các spammer dӉ dàng ÿӕi phó ÿӕi vӟi các bӝ lӑc dӵa trên “signature/ checksum” bҵng phѭѫng pháp trên. Khi mà nhӳng ngѭӡi viӃt các chѭѫng trình lӑc email tìm ÿѭӧc cách chӕng lҥi cách chèn 19
  20. ngүu nhiên này thì các spammer lҥi chuyӇn sang cách khác. Vì thӃ, cách chӕng spam dùng các bӝ lӑc “signature/checksum” chѭa bao giӡ là mӝt cách tӕt. Bӝ lӑc này ÿѭӧc ӭng dөng tҥi mӭc server,ÿѭӧc các nhà cung cҩp dӏch vө mҥng (ISP) sӱ dөng. Theo P.Graham [5], bӝ lӑc kiӇu này chӍ lӑc khoҧng 50-70% spam Ѭu ÿiӇm cӫa bӝ lӑc này là ít khi phân loҥi sai email non-spam. Brightmail4 là phҫn mӅm chӕng spam dӵa trên hѭӟng tiӃp cұn này. Cách hoҥt ÿӝng cӫa nó là tҥo ra mӝt mҥng lѭӟi các ÿӏa chӍ email giҧ. Bҩt kì email nào ÿѭӧc gӱi ÿӃn nhӳng ÿӏa chӍ này thì ÿӅu là spam vì vӟi nhӳng email hӧp lӋ thì hiӃm khi lҥi ÿѭӧc gӱi ÿӃn nhӳng ÿӏa chӍ giҧ này. Vì vұy, khi bӝ lӑc nhұn thҩy nhӳng email giӕng nhau gӱi ÿӃn mӝt ÿӏa chӍ giҧÿã ÿѭӧc tҥo ra này thì nó sӁ lӑc ra Bӝ lӑc phân biӋt nhӳng email giӕng nhau dӵa vào “signatures” cӫa chúng. 2.2.5 Genetic Algorithms: · Ý tѭӣng: Bӝ lӑc dӵa trên thuұt toán di truyӅn (Genetic Algorithms) sӱ dөng các bӝ nhұn dҥng ÿһc trѭng (“fearture detectors”) ÿӇ ghi ÿLӇm (score) cho mӛi email. Thӵc tӃ, nhӳng “fearture detectors” này là mӝt tұp các luұt ÿѭӧc xây dӵng dӵa trên các kinh nghiӋm ÿã có (empirical rules) và áp dөng vào mӛi email ÿӇ thu vӅ mӝt giá trӏ sӕ. Thuұt toán di truyӅn này ÿѭӧc biӇu diӉn là nhӳng cây (trees) và ÿѭӧc kӃt hӧp vӟi mӝt tұp huҩn luyӋn cùng vӟi mӝt hàm thích hӧp “fitness function”. 4 20
  21. &ѫ chӃ tiӃn hóa (Evolutionary mechanism) cӫa thuұt toán :thuұt tóan thӵc hiӋn hai thao tác cѫ bҧn là phép lai “crossover” và ÿӝt biӃn “mutation”. Mөc ÿích tiӃn trình này là tìm ra ÿѭӧc mӝt giá trӏ “score” nhӓ nhҩt dӵa vào hàm “fitness function”. Giá trӏ “score” sau ÿó sӁÿѭӧc sӱ dөng ÿӇ phân loҥi email là spam hay non-spam.[6] · Ĉһc ÿLӇm: Ĉây là hѭӟng tiӃp cұn phân loҥi email dӵa trên nӝi dung. +ѭӟng tiӃp cұn hiӋu quҧ nhҩt cho bӝ lӑc tҥi mӭc ISP ÿѭӧc ÿánh giá là dӵa trên thuұt toán di truyӅn “Genetic Algorithms” [6] ĈiӇm không thuұn lӧi cӫa thuұt toán di truyӅn là ÿòi hӓi khҧ Qăng xӱ lý phҧi lӟn. +ѭӟng tiӃp cұn này ÿѭӧc ӭng dөng trong trình lӑc spam Spamassassin5. Nó hoҥt ÿӝng rҩt hiӋu quҧ tҥi mӭc ISP và ÿѭӧc nhiӅu ngѭӡi ÿánh giá là mӝt trong nhӳng bӝ lӑc hoҥt ÿӝng hiӋu quҧ nhҩt tҥi mӭc ISP. ĈiӇm yӃu cӫa trình lӑc “Spamassassin” là hoҥt ÿӝng vӟi hiӋu quҧ chѭa cao tҥi mӭc ngѭӡi dùng cá nhân. 2.2.6 Rule-Based (hay là Heuristic): · Ý tѭӣng: Dӵa vào luұt tìm kiӃm các mүu có dҩu hiӋu là spam nhѭ các tӯ và ngӳ xác ÿӏnh, hàng loҥt các chӳ hoa và dҩu chҩm than, phҫn header cӫa email sai ÿӏnh dҥng, ngày trong email là ӣ tѭѫng lai hoһc quá khӭ.Ĉó là cách hҫu hӃt phҫn lӟn các trình lӑc spam hoҥt ÿӝng tӯ năm 2002. · Ĉһc ÿLӇm: 5 21
  22. HiӋu suҩt cӫa trình lӑc dӵa trên luұt (rule-based filters) khác nhau rҩt nhiӅu. Cách ÿѫn giҧn nhҩt là loҥi bӓ các email mà có chӭa nhӳng tӯ xҩu nào ÿó (ví dө nhӳng tӯ mà thѭӡng xuҩt hiӋn nhiӅu hay chӍ xuҩt hiӋn trong spam). Nhѭng ÿây cNJng là ÿiӇm yӃu ÿӇ các spammer có thӇ lӧi dөng ÿӇ qua mһt các bӝ lӑc kiӇu này bҵng cách cӕ gҳng tránh sӱ dөng nhӳng tӯ xҩu và thay bҵng nhӳng tӯ “tӕt” -ÿѭӧc sӱ dөng nhiӅu trong email non-spam. Trong khi ÿó các email non- spam thì bӏ loҥi bӓ nӃu vô tình chӭa mӝt vài tӯ “xҩu” dҥng này. ĈiӅu này, dүn ÿӃn khҧ năng lӑc sai còn cao. Mӝt ÿLӅu bҩt lӧi khác là các luұt dҥng này ÿӅu là tƭnh. Khi các spammer tìm ra ÿѭӧc mӝt phѭѫng pháp mӟi ÿӇ Yѭӧt qua thì nhӳng ngѭӡi viӃt trình lӑc lҥi phҧi viӃt nhӳng luұt mӟi ÿӇ lӑc các spam. Nhӳng spammer chuyên nghiӋp thì có thӇ kiӇm tra ÿѭӧc nhӳng email trên các hӋ thӕng lӑc dӵa trên luұt trѭӟc khi gӱi chúng ÿi. NӃu bӝ lӑc ÿѭӧc xây dӵng dӵa trên luұt phӭc tҥp thì vүn phát huy tác dөng lӑc spam hiӋu quҧ. Ví dө nhѭ trình lӑc Spamassassin lӑc lên ÿӃn 90-95% spam. Mӝt ÿLӅu thuұn lӧi là bӝ lӑc dӵa trên luұt tƭnh thì dӉ cài ÿһt. 2.2.7 Challenge-Response: · Ý tѭӣng: Khi bҥn nhұn ÿѭӧc email tӯ ai ÿó mà chѭa hӅ gӱi cho bҥn trѭӟc ÿó thì hӋ thӕng lӑc challenge-response 6 gӱi ngѭӧc lҥi 1 email yêu cҫu hӑ phҧi ÿӃn 1 trang web và ÿiӅn ÿҫy ÿӫ thông tin vào form trѭӟc khi email chuyӇn cho ngѭӡi dùng. · Ĉһc ÿLӇm: 6 22
  23. Lӧi thӃ cӫa hӋ thӕng này là ÿӇ lӑt lѭӟi rҩt ít spam. ĈLӅu bҩt lӧi cӫa nó can thiӋp thô bҥo ÿӃn ngѭӡi gӱi. Bҵng cách sӱ dөng hӋ thӕng này, ta cҫn xác ÿӏnh rõ ai là ngѭӡi gӱi email. Mӝt ÿLӇm bҩt lӧi khác cӫa hӋ thӕng này là có nhiӅu email non- spam bӏ loҥi bӓ và thӡi gian trì hoãn quá lâu. Ví dө nhѭ mӝt ngѭӡi muӕn mӡi bҥn ÿi dӵ tiӋc nhѭng ngѭӡi bҥn ҩy sӁ chӍ thҩy email trҧ lӡi cӫa bҥn vào ngày hôm sau và ÿӃn lúc ÿó thì ÿã quá trӉ. NhiӅu trѭӡng hӧp ngѭӡi gӱi sӁ không trҧ lӡi cho các thông ÿLӋp kiӇu này và email hӑ gӣi sӁ bӏ thҩt lҥc. Sӱ dөng phѭѫng pháp dҥng này chҷng khác nào ta ÿang tӵ cô lұp chính mình vӟi mӑi ngѭӡi xung quanh. HӋ thӕng này sӁ giӕng nhѭ bӭc Wѭӡng bao quanh thӃ giӟi luôn muӕn gӱi thông ÿLӋp cho ta. 2.2.8 Machine Learning ( Máy hӑc ): · Ý tѭӣng: Áp dөng các pKѭѫng pháp máy hӑc trong các bài toán phân loҥi, ÿһc biӋt là phân loҥi văn bҧn vào bài toán phân loҥi email, các thuұt toán máy hӑc nhѭ Naïve Bayesian [9],[17],[18] AdaBoost [13], Suppor Vector Machine[18], , ÿã ÿѭӧc sӱ dөng trong lƭnh vӵc phân loҥi văn bҧn, nhұn dҥng, vӟi hiӋu quҧ cao. Ý tѭӣng là tìm cách xây dӵng mӝt bӝ phân loҥi nhҵm phân lӑai cho mӝt mүu mӟi bҵng cách huҩn luyӋn nhӳng mүu ÿã có sҹn. · Ĉһc ÿLӇm Phѭѫng pháp này có thӇ áp dөng ӣ mӭc Server hay Client. Hҥn chӃ là cҫn phҧi có mӝt kho ngӳ liӋu (corpus) huҩn luyӋn ban ÿҫu ÿӇ cho máy hӑc, viӋc huҩn luyӋn mҩt nhiӅu thӡi gian. Mӝt hҥn chӃ nӳa là hiӋu quҧ phân loҥi phө thuӝc vào kho ngӳ liӋu dùng ÿӇ huҩn luyӋn. 23
  24. 2.3 Phѭѫng pháp lӵa chӑn : Trong nhӳng hѭӟng tiӃp cұn ÿã tìm hiӇu, chúng tôi chӑn hѭӟng tiӃp cұn phân loҥi email bҵng phѭѫng pháp máy hӑc, phѭѫng pháp này có hiӋu quҧ cao, ÿӗng thӡi cNJng rҩt khó bӏ các spammer vѭӧt qua. Ngoài ra, hѭӟng tiӃp cұn này có thӇ áp dөng ÿѭӧc ӣ mӭc Client Cө thӇ hѭӟng tiӃp cұn mà nhóm chúng tôi tìm hiӇu và thӱ nghiӋm là phân loҥi email dӵa trên thuұt toán huҩn luyӋn Naïve Bayes và Adaboost, hai phѭѫng pháp này có mӝt sӕ ѭu ÿiӇm sau: § HiӋu quҧ phân loҥi trong các lƭnh phân loҥi văn bҧn, nhұn dҥng ÿã ÿѭӧc kiӇm chӭng và khá cao § Thích hӧp cho tӯng ngѭӡi dùng cө thӇ và ӣ mӭc Client § Có khҧ năng tӵ hӑc ÿӇ phân loҥi ÿúng. § +ѭӟng tiӃp cұn còn khá mӟi. 2.4 Các chӍ sӕÿánh giá hiӋu quҧ phân loҥi email : 2.4.1 Spam Recall và Spam Precision: ĈӇ tiӋn lӧi cho viӋc so sánh, ngѭӡi ta ÿѭa ra hai chӍ sӕÿánh giá là spam recall và spam precision. Spam recall là tӍ lӋ phҫn trăm giӳa sӕ email –ÿѭӧc bӝ lӑc coi là spam - bӏ chһn lҥi và tәng sӕ email spam (thӵc sӵ ) ÿӃn bӝ lӑc Spam Precision là tӍ lӋ phҫn trăm giӳa sӕ email bӏ chһn thӵc sӵ là spam vӟi sӕ email bӏ chһn -ÿѭӧc bӝ lӑc coi là spam, spam precision ÿánh giá mӭc ÿӝ an toàn cӫa bӝ lӑc. Công thӭc tính Spam Recall (SR) và Spam Precision(SP) nhѭ sau: n SR = SS-> nnSS->+ SN -> Công thӭc 2-1 :Công thӭc tính Spam Recall 24
  25. n SP = SS-> nnSS->+ NS -> Công thӭc 2-2 : Công thӭc tính Spam Precesion Vӟi : ü n S ->S là sӕ email là spam mà bӝ lӑc nhұn ra là spam ü n S ->N là sӕ email là spam mà bӝ lӑc nhұn ra là email non-spam ü n N ->S là sӕ email non-spam mà bӝ lӑc nhұn ra là spam 2.4.2 TӍ lӋ lӛi Err (Error) và tӍ lӋ chính xác Acc(Accuracy) : Trong viӋc phân loҥi email, hiӋu quҧ phân loҥi dӵa vào tӍ lӋ chính xác (Acc) hoһc tӍ lӋ lӛi (Err). Công thӭc tính tӍ lӋ chính xác và tӍ lӋ lӛi nhѭ sau : nn+ Acc = NN-> SS -> NNNS+ Công thӭc 2-3 :công thӭc tính tӍ lӋ chính xác nn+ Err = NS-> SN -> NNNS+ Công thӭc 2-4 : công thӭc tính tӍ lӋ lӛi Vӟi · N N và N S là sӕ email non-spam và sӕ email spam cҫn phân loҥi · nN ->N là sӕ email là non-spam và ÿѭӧc bӝ lӑc nhұn ra là non- spam · nN ->S là sӕ email là non-spam mà bӝ lӑc nhұn ra là spam · nS ->S là sӕ email là spam mà ÿѭӧc bӝ lӑc nhұn ra là spam · nS ->N là sӕ email là spam mà ÿѭӧc bӝ lӑc nhұn ra là non-spam 2.4.3 TӍ lӋ lӛi gia trӑng WErr (Weighted Error ) và tӍ lӋ chính xác gia trӑng (Weighted Accuracy): Trong phân loҥi email có hai loҥi lӛi : lӛi nhұn spam ra non-spam (false negative) và lӛi nhұn non-spam ra spam(false positive) [3]. Lӛi thӭ hai là lӛi 25
  26. nghiêm trӑng hѫn, bӣi ngѭӡi dùng có thӇ chҩp nhұn mӝt email spam vѭӧt qua bӝ lӑc nhѭng khó mà chҩp nhұn mӝt email hӧp lӋ lҥi bӏ bӝ lӑc chһn lҥi.ĈӇ biӇu thӏ tác ÿӝng cӫa hai loҥi lӛi này ÿӕi vӟi tӍ lӋ chính xác và tӍ lӋ lӛi, ta sӁ xem mӛi mӝt email hӧp lӋ nhѭ là l email hӧp lӋ. Do ÿó khi mӝt email hӧp lӋ bӏ phân loҥi sai, thay vì xem nhѭ có mӝt lӛi, ta xem nhѭ là l lӛi, và khi phân loҥi ÿúng ta xem nhѭ là l lҫn thành công. Ta có hai tӍ lӋ : tӍ lӋ chính xác gia trӑng WAcc (Weighted Accuracy Rate ) và tӍ lӋ lӛi gia trӑng WErr (Weighted Error Rate) (WErr=1 -WAcc). lnn+ WAcc = NN-> SS -> lNNNS+ Công thӭc 2-5 TӍ lӋ chính xác gia trӑng lnn+ WErr = NS-> SN -> lNNNS+ Công thӭc 2-6 TӍ lӋ lӛi gia trӑng Vӟi : ü N N và N S là sӕ email non-spam và sӕ email spam cҫn phân loҥi ü nN ->N là sӕ email là non-spam và ÿѭӧc bӝ lӑc nhұn ra là non- spam ü nN ->S là sӕ email là non-spam mà bӝ lӑc nhұn ra là spam ü nS ->S là sӕ email là spam mà ÿѭӧc bӝ lӑc nhұn ra là spam ü nS ->N là sӕ email là spam mà ÿѭӧc bӝ lӑc nhұn ra là non-spam 2.4.4 TӍ sӕ chi phí tәng hӧp TCR (Total Cost Ratio ): Giá trӏ cӫa tӍ lӋ chính xác và tӍ lӋ lӛi thѭӡng có sӵ sai lӋch cao.ĈӇ thҩy rõ ÿѭӧc hiӋu quҧ cӫa cách phân loҥi, ngѭӡi ta thѭӡng so sánh tӍ lӋ chính xác hoһc tӍ lӋ lӛi giӳa bӝ phân loҥi vӟi trѭӡng hӧp ÿѫn giҧn nhҩt và ÿѭӧc xem là trѭӡng hӧp “ranh giӟi “(baseline).”Ranh giӟi” ÿѭӧc chӑn là trѭӡng hӧp không sӱ dөng mӝt bӝ lӑc nào, các email hӧp lӋ không bao giӡ bӏ chһn lҥi và các email 26
  27. là spam thì luôn luôn ÿi qua. Nhѭ vұy tӍ lӋ chính xác gia trӑng và tӍ lӋ lӛi gia trӑng cӫa trѭӡng hӧp “ranh giӟi “ là : lN WAccb = N lNNNS+ Công thӭc 2-7: TӍ lӋ chính xác gia trӑng cӫa trѭӡng hӧp "Ranh giӟi " N WErrb = S lNNNS+ Công thӭc 2-8: TӍ lӋ lӛi gia trӑng cӫa trѭӡng hӧp "Ranh giӟi " Vӟi : N N , N S , nN ->N , nN ->S , nS ->S , nS ->N có cùng ý nghƭa nhѭ ӣ mөc 2.4.1 và 2.4.2 TӍ sӕ chi phí toàn bӝ TCR ( total cost ratio) cho phép ta so sánh ÿѭӧc hiӋu quҧ cӫa trѭӡng hӧp sӱ dөng bӝ lӑc so vӟi trѭӡng hӧp “ranh giӟi”: WErrb N TCR == S WErrl nNS->+ n SN -> Công thӭc 2-9 Công thӭc tính tӍ sӕ chi phí tәng hӧp Giá trӏ TCR càng lӟn thì hiӋu quҧ phân loҥi càng cao, vӟi TCR nhӓ hѫn 1 thì rõ ràng không sӱ dөng bӝ lӑc còn tӕt hѫn. . 27
  28. Chѭѫng 3 : GIӞI THIӊU CÁC KHO NGӲ LIӊU DÙNG KIӆM THӰ PHÂN LOҤI EMAIL 28
  29. 3.1 Kho ngӳ liӋu PU (corpus PU ): 3.1.1 Vài nét vӅ kho ngӳ liӋu PU: Các nghiên cӭu vӅ phân loҥi Yăn bҧn có nhiӅu thuұn lӧi vì có sҹn các kho ngӳ liӋu công cӝng ÿӇ dùng chung, tuy nhiên sӱ dөng nhӳng kho ngӳ liӋu này vào viӋc lӑc spam lҥi gһp phҧi rҳc rӕi bӣi vҩn ÿӅ tính riêng tѭ, cá nhân. Nhӳng email spam thì không có vҩn ÿӅ gì, tuy nhiên không thӇ sӱ dөng nhӳng email hӧp lӋ mà không thӇ không vi phҥm ÿӃn sӵ riêng tѭ cӫa ngѭӡi gӣi và ngѭӡi nhұn cӫa nhӳng email này. Chúng tôi sӱ dөng kho ngӳ liӋu PU ÿӇ hӑc và kiӇm thӱ7 PU là mӝt kho ngӳ liӋu email chuҭn, gӗm có bӕn kho ngӳ liӋu nhӓ hѫn bao gӗm PU1, PU2, PU3 và PUA. Mӛi mӝt token sӁÿѭӧc thay thӃ tѭѫng ӭng bҵng mӝt con sӕ duy nhҩt nhѭ minh hӑa trong hình 3-1. Hình 3-1Email sau khi tách token và mã hoá (trong kho ngӳ liӋu pu) Hàm ánh xҥ tӯ văn bҧn sang các con sӕ không ÿѭӧc công bӕ, do ÿó viӋc khôi phөc lҥi văn bҧn ban ÿҫu là cӵc kǤ khó,ÿiӅu này ÿҧm bҧo ÿѭӧc tính bí mұt, riêng tѭ cӫa ngѭӡi gӣi và ngѭӡi nhұn. Nhӳng email giӕng nhau cNJng ÿѭӧc xem xét. Trong kho ngӳ liӋu PU1 và PU2, nhӳng email giӕng nhau và nhұn trong cùng mӝt ngày ÿѭӧc xóa thӫ công.Trong kho ngӳ liӋu PU3 và PUA quá trình này ÿѭӧc thӵc hiӋn tӵÿӝng, ӣ hai kho ngӳ liӋu này, khái niӋm khác nhau cӫa hai email ÿѭӧc xem xét nhѭ sau :hai email ÿѭӧc xem là khác nhau nӃu chúng có ít nhҩt 5 dòng khác nhau.Tҩt cҧ nhӳng email giӕng nhau, bҩt kӇ ngày nhұn,ÿӅu 7ĈӇ lҩy cѫ sӣ dӳ liӋu PU, vào trang web Internet CONtent Filtering Group, config/ 29
  30. bӏ xóa ÿi, chӍ giӳ lҥi mӝt email mà thôi.&ѫ chӃ này ÿѭӧc áp dөng cho cҧ email spam và email non-spam. Theo [18], trong quá trình tҥo kho ngӳ liӋu PU, mӝt vҩn ÿӅ phát sinh ÿó là có mӝt lѭӧng lӟn email là cӫa nhӳng ngѭӡi gӣi thѭӡng xuyên liên lҥc vӟi ngѭӡi tҥo kho ngӳ liӋu - nhӳng email RC (Relative Correspondence), nhӳng email này cNJng ÿѭӧc loҥi bӓ. 3.1.2 Mô tҧ cҩu trúc kho ngӳ liӋu PU: Nhӳng email hӧp lӋ trong PU1 là nhӳng email hӧp lӋ ngѭӡi tҥo ÿã nhұn ÿѭӧc trong vòng 36 tháng cho ÿӃn tháng 12 năm 2003, gӗm có 1182 email. Nhӳng email hӧp lӋ không có nӝi dung và nhӳng email RC sӁ bӏ loҥi bӓ, kӃt quҧ là có 618 email hӧp lӋ. Nhӳng email spam trong PU1 là email spam ngѭӡi tҥo ÿã nhұn ÿѭӧc trong khoҧng thӡi gian 22 tháng cho ÿӃn thӡi ÿLӇm 12-2003, bao gӗm nhӳng email không phҧi là email tiӃng Anh và nhӳng email giӕng nhau nhұn trong mӝt ngày. PU2 cNJng tѭѫng tӵ nhѭ PU1,ÿiӇm khác nhau ӣÿây là nhӳng email RC Ӣ PU3 và PUA,nhӳng email hӧp lӋ không phҧi là tiӃng Anh vүn ÿѭӧc giӳ lҥi TӍ lӋ non-spam :spam cӫa PU3 xҩp xӍ PU1, tuy nhiên sӕ lѭӧng cӫa PU3 nhiӅu gҩp 4 lҫn PU1, trong PU2 tӍ lӋÿó xҩp xӍ 4:1, ӣ PUA tӍ lӋÿó là 1:1 Trong tҩt cҧ các kho ngӳ liӋu PU, các tұp tin ÿính kèm, các thҿ HTML, các trѭӡng khác trong header cӫa email ÿӅu bӏ loҥi bӓ (ngoҥi trӯ trѭӡng tiêu ÿӅ (subject). Các dҩu chҩm câu, các kí tӵÿһc biӋt khác (!,$) cNJng ÿӵӧc xem xét . 30
  31. Tên Email Email Email Email Email Tәng TӍ lӋ non- hӧp lӋ RC hӧp lӋ hӧp lӋ spam sӕ spam:spam ban ÿҫu khác bӏ còn lҥi email xóa giӳ lҥi Pu1 1182 564 618 481 1099 1.28 Pu2 6207 5628 579 142 721 4.01 Pu3 8824 6253 258 2313 1826 4139 1.27 Pua 980 369 40 571 571 1142 1 %ҧng 3-1Mô tҧ cҩu trúc kho ngӳ liӋu PU Mӛi kho ngӳ liӋu pu lҥi ÿѭӧc chia ra làm 11 thѭ mөc tӯ part 1 ÿӃn part 10, và mӝt thѭ mөc unused, mӛi thѭ mөc tӯ part 1 ÿӃn part 10 chӭa sӕ lѭӧng email nhѭ nhau và sӕ lѭӧng email spam và email hӧp lӋ trong mӛi thѭ mөc part i (i=1, ,10) trên là nhѭ nhau, thѭ mөc unused chӭa nhӳng email không sӱ dөng. Chúng tôi sӱ dөng tӯ part 1 ÿӃn part 9 ÿӇ phөc vө cho viӋc hӑc.Ĉӕi vӟi viӋc kiӇm thӱ kӃt quҧ , chúng tôi sӱ dөng kho ngӳ liӋu ÿã ÿѭӧc hӑc (tӯ part 1 ÿӃn part 9 ) và kho ngӳ liӋu chѭa ÿѭӧc hӑc ÿӇ kiӇm thӱ.ĈӇ thӵc hiӋn viӋc kiӇm thӱ các thuұt toán ÿѭӧc tiӋn lӧi, chúng tôi tiӃn hành chia nhóm kho ngӳ liӋu hӑc.Vӟi mӛi kho ngӳ liӋu PU, chúng tôi phân loҥi email thành hai thѭ mөc, mӝt thѭ mөc chӭa các email spam tӯ part 1 ÿӃn part 9, thѭ mөc còn lҥi chӭa email hӧp lӋ tӯ part 1 ÿӃn part 9, vӟi part 10 chúng tôi cNJng tiӃn hành phân loҥi tѭѫng tӵ nhѭ trên 3.2 Kho ngӳ liӋu email chӳ: ĈӇ tҥo kho ngӳ liӋu email là chӳ, chúng tôi lҩy dӳ liӋu tҥi trang : Index of /publiccorpus Ngӳ liӋu gӗm nhӳng email ÿѭӧc thu thұp trong các năm 2002 và 2003, sӕ lѭӧng email spam 2398 là, sӕ Oѭӧng email 6951 31
  32. Chúng tôi tiӃn hành xӱ lý và phân lӑai email : lӑai bӓ nhӳng email có tұp tin ÿính kèm, phân loҥi email html và email văn bҧn trѫn (text/plain). Sӕ email spam là văn bҧn trѫn sau khi ÿã xӱ lý khӓang 600 email, email non- spam là văn bҧn trѫn sau khi ÿã xӱ lý là khoҧng 2500 mail Sӕ email non-spam là email html sau khi ÿã xӱ lý là gҫn 200 mail, sӕ email spam là email html sau khi ÿã xӱ lý khoҧng 1000 mail. Sau ÿó chúng tôi tҥo thành hai kho ngӳ liӋu email văn bҧn trѫn (text/plain) và email html. ViӋc tҥo kho ngӳ liӋu email văn bҧn trѫn (text/plain) thӵc hiӋn bҵng cách chӑn ngүu nhiên các email tӯ kho ngӳ liӋu sau khi ÿã qua xӱ lý, sӕ email spam dùng huҩn luyӋn là 517, sӕ lѭӧng email spam ÿӇ kiӇm thӱ là 98. Vӟi ngӳ liӋu email non-spam là văn bҧn trѫn (text/plain) sӕ lѭӧng dùng huҩn luyӋn là 528, sӕ lѭӧng dùng ÿӇ kiӇm thӱ là 100 ĈӇ tҥo kho ngӳ liӋu email html, chúng tôi cNJng xây dӵng tѭѫng tӵ nhѭ trên. Vӟi ngӳ liӋu email non-spam là html, chúng tôi dùng 141 email ÿӇ huҩn luyӋn, 50 email dùng ÿӇ kiӇm thӱ. Còn ngӳ liӋu emal spam là html, chúng tôi dùng 205 email ÿӇ huҩn luyӋn và 50 email ÿӇ kiӇm thӱ. 32
  33. Chѭѫng 4 : PHѬѪNG PHÁP PHÂN LOҤI NAÏVE BAYESIAN VÀ ӬNG DӨNG PHÂN LOҤI EMAIL 33
  34. 4.1 Mӝt vài khái niӋm xác suҩt có liên quan 4.1.1 Ĉӏnh nghƭa biӃn cӕ, xác suҩt : 4.1.1.1 Khái niӋm phép thӱ và biӃn cӕ: Gieo mӝt ÿӗng tiӅn trên mӝt mһt phҷng :ÿó là mӝt phép thӱ KӃt quҧ có thӇ xҧy ra khi gieo ÿӗng tiӅn : “Xuҩt hiӋn mһt sҩp” hoһc “Xuҩt hiӋn mһt ngӳa” “Xuҩt hiên mһt sҩp” -Ĉó là mӝt biӃn cӕ “Xuҩt hiӋn mһt ngӳa” -Ĉó là mӝt biӃn cӕ 4.1.1.2 Ĉӏnh nghƭa xác suҩt: Theo [8] có nhӳng ÿӏnh nghƭa xác suҩt sau: Dҥng cәÿLӇn : Xác sṷt cͯa bi͇n c͙ A là m͡t s͙ không âm,ký hi͏u P(A), bi͋u th͓ kh̫ Qăng x̫y ra bi͇n c͙ A và ÿ˱ͫc xác ÿ͓nh nh˱ sau : m PA()== Sӕ trѭӡng hӧp thuұn lӧi cho A / Sӕ trѭӡng hӧp có thӇ có n khi phép thӱ thӵc hiӋn (Nhӳng khҧ năng hoһc các biӃn cӕ sѫ cҩp – nӃu chúng xҧy ra thì suy ra A xҧy ra – gӑi là nhӳng trѭӡng hӧp thuұn lӧi cho A ). Ĉ͓nh nghƭa xác sṷt theo ph˱˯ng pháp th͙ng kê : Làm ÿi làm lҥi mӝt phép thӱ nào ÿó n lҫn mà có m lҫn biӃn cӕ A xuҩt hiӋn thì tӹ sӕ m/n gӑi là tҫn suҩt cӫa biӃn cӕ A Khi n thay ÿәi,tҫn suҩt m/n cNJng thay ÿәi nhѭng nó luôn dao ÿӝng quanh mӝt sӕ cӕÿӏnh ÿó. Sӕ cӕÿӏnh ҩy ÿѭӧc gӑi là xác suҩt cӫa biӃn cӕ A theo nghƭa thӕng kê. Trên thӵc tӃ khi n ÿӫ lӟn ta xҩp xӍ P(A) bӣi m/n 34
  35. 4.1.2 Xác suҩt có ÿLӅu kiӋn, công thӭc xác suҩt ÿҫy ÿӫ± công thӭc xác suҩt Bayes 4.1.2.1 Xác suҩt có ÿLӅu kiӋn Theo Ĉһng Hҩn [8]: Xác sṷt có ÿL͉u ki͏n cͯa bi͇n c͙ A vͣi ÿL͉u ki͏n bi͇n c͙ B ÿã x̫y ra là m͡t con s͙ không âm,ÿ˱ͫc ký hi͏u P(A/B) nó bi͉u th͓ kh̫ năng x̫y ra bi͇n c͙ A trong tình hu͙ng bi͇n c͙ B ÿã x̫y ra P() AB PAB(|)= PB() Công thӭc 4-1: công thӭc tính xác suҩt có ÿLӅu kiӋn Suy ra: PAB(|)´= PB () PB (|) A ´= PA () PAB ( ) Công thӭc 4-2 4.1.2.2 Công thӭc xác suҩt ÿҫy ÿӫ: Giҧ sӱ BBBB123, , , , n là mӝt nhóm ÿҫyÿӫ các biӃn cӕ. Xét biӃn cӕ A sao cho A xҧy ra chӍ khi mӝt trong các biӃn cӕ BBBB123, , , , n xҧy ra. Khi ÿó : n PA()= å PBPAB ().(/)ii i=1 Công thӭc 4-3 :công thӭc xác suҩt ÿҫy ÿӫ Công thӭc trên ÿѭӧc gӑi là công thӭc xác suҩt ÿҫy ÿӫ 4.1.2.3 Công thӭc xác suҩt Bayes: Tӯ các công thӭc:Công thӭc 4-1, Công thӭc 4-2 và Công thӭc 4-3, ta có: PAB( ) PB ().(/) PAB PBA( |)==k kk k PA() n å PBPAB().(/)ii i=1 Công thӭc 4-4 : công thӭc xác suҩt Bayes 35
  36. 4.2 Phѭѫng pháp phân loҥi Naïve Bayesian : Phân loҥi Bayesian là phѭѫng pháp phân loҥi sӱ dөng tri thӭc các xác suҩt ÿã qua huҩn luyӋn. Phѭѫng pháp này thích hӧp vӟi nhӳng lӟp bài toán ÿòi hӓi phҧi dӵÿoán chính xác lӟp cӫa mүu cҫn kiӇm tra dӵa trên nhӳng thông tin tӯ tұp huҩn luyӋn ban ÿҫu [16]. Theo Charles Elkan [16] cho XX1, , n là các thuӝc tính vӟi các giá trӏ rӡi rҥc ÿѭӧc dùng ÿӇ dӵÿoán mӝt lӟp riêng biӋt C cho mӝt mүu, tұp các lӟp mà mүu có thӇ thuӝc vӅ là C = {}ccc12, , , m . Cho mӝt mүu huҩn luyӋn vӟi giá trӏ các thuӝc tính Wѭѫng ӭng là xx1, , n , dӵÿoán mүu thuӝc vӅ lӟp c Î C khi xác suҩt PCcXxXx( =|11 =Ù=ÙÙ= 22 Xxnn) có giá trӏ lӟn nhҩt. Sӱ dөng công thӭc xác suҩt Bayes ta có : PXxXx( 11=Ù=ÙÙ== 22 XxCcnn | ) PCcXx( ==Ù|11 X 22= xÙ Ù Xnn= x) ==PCc() PXxXx( 11=Ù=ÙÙ= 22 Xxnn) Xác suҩt PCc( = )ÿѭӧc tính dӉ dàng tӯ tұp dӳ liӋu huҩn luyӋn. Xác suҩt PXxXx( 11=Ù=ÙÙ= 22 Xxnn) không thích hӧp ÿӇ dùng cho viӋc quyӃt ÿӏnh lӟp cӫa C bӣi vì giá trӏ này nhѭ nhau ÿӕi vӟi mӛi lӟp c. Nhѭ vұy căn cӭÿӇ dӵÿóan lӟp cӫa C là dӵa vào xác suҩt PXx( 11=Ù=ÙÙ== X 22 x Xnn xCc | ) .Tuy nhiên viӋc tính toán xác suҩt này rҩt phӭc tҥp [9] . Mӝt pKѭѫng pháp ÿѫn giҧn và ÿѭӧc ÿѭa ra sӟm nhҩt là phѭѫng pháp phân loҥi Naïve Bayesian, theo ÿó giҧ thiӃt rҵng mӛi X i ÿӝc lұp vӟi các X j (ij¹ ), nhѭ vұy ta sӁ có: n PXxXx( 11=Ù=ÙÙ= 22 XxCcnn | ==)(Õ PXxCc ii = | = ) i=1 Thұt vұy, sӱ dөng công thӭc xác suҩt Bayes ta có : PXx( 11=Ù=ÙÙ== X 22 x | Xnn xCc) =PXxXx( 1122 =| =ÙÙ= XxCcPXxnn , =)( 22 =ÙÙ= XxCc nn | =) 36
  37. Bҵng cách ÿӋ qui, viӃt thӯa sӕ thӭ hai trong tích trên nhѭ sau : PXx( 22=ÙÙ= XxCcnn | ==) PXxXx( 2233=| =ÙÙ= XxCcPXxnn , =) ( 33 =ÙÙ= XxCc nn | =) và cӭ tiӃp tөc nhѭ vұy. Phѭѫng pháp phân loҥi Naïve Bayesian giҧ thiӃt rҵng vӟi mӛi X i kӃt quҧ tác ÿӝng cӫa nó là ÿӝc lұp vӟi các X j khác, nhѭ vұy chúng ta thӯa nhұn rҵng: PXxXx( 112=| ,| =ÙÙ=== 2 XxCcPXxCcnn ) ( 11 ) và tѭѫng tӵ nhѭ vұy ÿӕi vӟi X 2 , , X n . Nhѭ vұy xác suҩt PXx( 11=Ù=ÙÙ== X 22 x Xnn xCc | ) = n PX(11== x| C cPX )( 22 == x | C c )( PXnn === x | C c )(Õ PX ii == x | C c ) i Mӛi mӝt thӯa sӕ trong tích trên có thӇÿѭӧc tính dӉ dàng tӯ tұp huҩn luyӋn ban ÿҫu, nhѭ vұy phѭѫng pháp Naïve Bayesian giҧm sӵ phӭc tҥp cӫa viӋc tính toán giá trӏ xác suҩt PXx( 11=Ù=ÙÙ== X 22 x Xnn xCc | ) 4.3 Phân loҥi email bҵng phѭѫng pháp Naïve Bayesian : Ӣÿây mӛi mүu mà ta xét chính là mӛi mӝt email, tұp các lӟp mà mӛi email có thӇ thuӝc vӅ là C ={spam, non-spam} Khi ta nhұn ÿѭӧc mӝt email, nӃu ta không biӃt mӝt thông tin gì vӅ nó, do ÿó khó có thӇ quyӃt ÿӏnh chính xác email này là spam hay không . NӃu nhѭ ta có thêm ÿһc ÿLӇm hay thuӝc tính nào ÿó cӫa email thì ta có thӇ nâng cao hiӋu quҧ nhұn ÿѭӧc email là spam Mӝt email có nhiӅu ÿһc ÿiӇm nhѭ : tiêu ÿӅ, nӝi dung, có ÿính kèm tұp tin hay không, Ta có thӇ dӵa vào các thông tin này ÿӇ nâng cao hiӋu quҧ phân lӑai email spam. Mӝt ví dө ÿѫn giҧn : nӃu ta biӃt ÿѭӧc rҵng 95 % email html là email spam, và ta lҥi nhұn ÿѭӧc mӝt email html, nhѭ vұy có thӇ dӵa vào xác suҩt biӃt trѭӟc 95% email html là email spam ÿӇ tính ÿѭӧc xác suҩt email mà ta nhұn ÿѭӧc là spam, nӃu xác suҩt này lӟn hѫn xác suҩt email ÿó là non-spam, có thӇ kӃt 37
  38. luұn rҵng email ÿó là spam, tuy nhiên kӃt luұn này không chính xác lҳm Nhѭng nӃu ta cóÿѭӧc nhiӅu xác suҩt biӃt trѭӟc nhѭ vұy, thì kӃt luұn sӁ trӣ nên ÿáng tin cұy hѫn. ĈӇ có ÿѭӧc các xác suҩt biӃt trѭӟc này, sӱ dөng phѭѫng pháp Naïve Bayesian huҩn luyӋn tұp mүu (email) ban ÿҫu, sau ÿó sӁ sӱ dөng các xác suҩt này ӭng dөng vào phân lӑai mӝt mүu (email) mӟi. 4.3.1 Phân loҥi email dӵa trên thuұt toán Naïve Bayesian Giҧ thiӃt mӛi mӝt email ÿѭӧc ÿҥi diӋn bӣi mӝt vector thuӝc tính r ÿһc trѭng xxxx= (12 , , ,n ) vӟi xxx12, , , n , là giá trӏ cӫa các thuӝc tính r X 1 , X 2 , , X n tѭѫng ӭng trong không gian vector ÿһc trѭng X . Theo M Sahami et al [9] ta sӱ dөng các giá trӏ nhӏ phân, X i =1 nӃu các ÿһc ÿLӇm cӫa X i có trong email, ngѭӧc lҥi X i =0. Ta tính giá trӏ tѭѫng hӛ MI (X,C) (Mutual Information) mà mӛi mӝt ÿҥi diӋn cӫa X thuӝc vӅ loҥi C nhѭ sau: PXxCc(,)== MIXC( , )=å PXxCc ( == , ).log x Î{}0,1 PXxPCc(== )() cÎ-{} spam, non spam Công thӭc 4-5 :công thӭc tính ÿӝ tѭѫng hӛ MI Sau ÿó ta chӑn các thuӝc tính có giá trӏ MI cao nhҩt.Các xác suҩt P(X), P(C), P(X,C)ÿѭӧc tính dӵa trên dӳ liӋu hӑc Dӵa vào công thӭc xác suҩt Bayes và công thӭc xác suҩt ÿҫy ÿӫ ta r có ÿѭӧc xác suҩt mӝt email vӟi vector ÿһc trѭng x r thuӝc vӅ loҥi c là: x uurr uurr PCcPXxCc().(|)= == PCcXx(|)= == uurr å PCkPXxCk().(|)= == kÎ-{} spam, non spam Vӟi C là e email ÿѭӧc xét, cÎ{} spam, nonspam Công thӭc 4-6 38
  39. u ur Thӵc tӃ thì rҩt khó tính ÿѭӧc xác suҩt PXC(|) bӣi vì giá trӏ sӕ Oѭӧng cӫa các vector rҩt nhiӅu và nhiӅu vector hiӃm khi hay thұm chí không xuҩt hiӋn trong tұp dӳ liӋu huҩn luyӋn.Nhѭÿã nói, phѭѫng pháp Naïve Bayesian giҧ thiӃt rҵng X 1 , X 2 , , X n là nhӳng biӃn cӕÿӝc lұp, do ÿó chúng ta có thӇ tính ÿѭӧc xác suҩt ӣ trên nhѭ sau: n PCc().(=Õ PXxCcii == |) i1= PCcXx(|)= == n å PCk().(=Õ PXxCkii == |) kÎ-{} spam, non spam i=1 Công thӭc 4-7 Vӟi PXC(i |) và PC()ÿѭӧc tính dӵa trên dӳ liӋu hӑc, viӋc tính này dӵa vào tұp huҩn luyӋn ban ÿҫu. Tӯ xác suҩt này, ta so sánh vӟi mӝt giá trӏ ngѭӥng t (trình bày ӣ mөc ) mà ta cho là ngѭӥng ÿӇ phân loҥi email spam hay không, nӃu xác suât này lӟn hѫn t, ta cho là email ÿó là spam, ngѭӧc lҥi ta xem email ÿó là non-spam. 4.3.2 Chӑn ngѭӥng phân loҥi email : Trong phân loҥi email, có hai loҥi sai lҫm : sai lҫm nhұn mӝt email là spam mһc dù thӵc tӃ nó là non-spam (false positive) và sai lҫm thӭ hai là nhұn mӝt email là non-spam mһc dù nó là spam (false negative). Rõ ràng là sai lҫm thӭ nhҩt là nghiêm trӑng hѫn bӣi vì ngѭӡi sӱ dөng có thӇ chҩp nhұn mӝt email spam vѭӧt qua bӝ lӑc nhѭng không chҩp nhұn mӝt email hӧp lӋ quan trӑng lҥi bӏ bӝ lӑc chһn lҥi. Giҧ sӱ N® S và S® N tѭѫng ӭng vӟi hai lӛi sai trên ÿây Sӱ dөng luұt quyӃt ÿӏnh Bayes dӵa trên chi phí [9], ta giҧ sӱ rҵng lӛi N® S có chi phí gҩp l lҫn lӛi S®N, chúng ta phân loҥi mӝt email là spam dӵa vào tiêu chuҭn sau: 39
  40. uurr P( C== spam )|) X x uurr> l P( C=-= non spam |) X x Công thӭc 4-8 uurr uurr Mà P( C===-=-= spam |)1( X x P C non spam |) X x Nên ta có: uurr l t P( C= spam |) X => x t vӟi t = và l= l +1 1- t Nhѭ vұy ngѭӥng phân loҥi ÿѭӧc chӑn là t tùy thuӝc vào giá trӏ l 40
  41. Chѭѫng 5 : THӴC HIӊN VÀ KIӆM THӰ PHÂN LOҤI EMAIL DӴA TRÊN PHѬѪNG PHÁP PHÂN LOҤI NAÏVE BAYESIAN 41
  42. 5.1 Cài ÿһt chѭѫng trình phân loҥi email dӵa trên phѭѫng pháp phân loҥi Naïve Bayesian: 5.1.1 Khái niӋm ³Token´ : ĈӇ xem xét nӝi dung email chúng tôi dùng khái niӋm “token” Các “token” có thӇ xem nhѭ là các tӯ cҫn xem xét mà ta tách ra tӯ nӝi dung cӫa email. Vӟi các kí tӵ chӳ, kí tӵ sӕ, kí tӵ ‘$', kí tӵ gҥch ngang ‘-’, kí tӵ gҥch dѭӟi ‘_’, kí tӵ nháy ÿѫn ‘’’ là nhӳng kí tӵ cҩu tҥo thành token. Còn nhӳng kí tӵ còn lҥi nhѭ khoҧng trҳng, kí tӵ ‘*’, kí tӵ ‘:’, ÿѭӧc xem là kí tӵ ÿӇ tách tӯ hay phân cách các tӯ. Vӟi nhӳng tӯ tách ÿѭӧc mà gӗm toàn kí sӕ thì không ÿѭӧc xem là token (ví dө: “12345”). Ví dө ta có các token sau: “qvp0045”, “ indira”, “mx-05”, “$7500”, “3d0725”, “ platinum”. NӃu ta có mӝt chuӛi sau: “ ” thì ta sӁ có các token tѭѫng ӭng là: “http”, “www”, “27meg”, “com”, “foo”. 5.1.2 Vector thuӝc tính : Nhѭÿã nói ӣ mөc 4.3.1, ta chuyӇn mӛi mӝt email sang mӝt r vector x =( x1 , x2 , , xn ) vӟi x1 , x2 , , xn là giá trӏ các thuӝc tính r X 1 , X 2 , , X n trong không gian vector ÿһc trѭng X . Các thuӝc tính có thӇ là mӝt token , nhóm các token Trong trѭӡng hӧp ÿѫn giҧn nhҩt, mӛi mӝt thuӝc tính ÿѭӧc thӇ hiӋn bӣi mӝt token ÿѫn và tҩt cҧ các thuӝc tính có giá trӏ luұn lý (Boolean), nhѭ vұy X i =1 nӃu email chѭá token, trѭӡng hӧp ngѭӧc lҥi X i =0. Chúng tôi chӑn thuӝc tính là token ÿѫn, nhѭng thay vì giá trӏ cӫa các thuӝc tính là giá trӏ luұn lý (boolean), chúng tôi chӑn là xác suҩt spam cӫa mӛi token. Xác suҩt spam cӫa mӛi token sӁ có giá trӏ trong ÿӑan [0, 1].Xác suҩt cho ta nhiӅu thông tin hѫn so vӟi giá trӏ luұn lý.Ví dө : xét 42
  43. token “$” xuҩt hiӋn trong email, nӃu ta sӱ dөng giá trӏ luұn lý, ta không ÿӫ cѫ sӣÿӇ nghi ngӡ email này là email spam, và nӃu email này khá dài thì càng khó kӃt luұn rҵng nó là spam. Tuy nhiên sӱ dөng xác suҩt, ta có thӇ biӃt ÿѭӧc khҧ năng email ÿó là spam là bao nhiêu,ÿiӅu này hӧp lý r Kѫn là chӍ sӱ dөng hai giá trӏ 0 và 1.Vӟi không gian vector ÿһc trѭng X , r chúng tôi chӑn n là sӕ các thuӝc tính cӫa X ÿӇ thӱ nghiӋm lҫn lѭӧt là 10, 15 và 20. Chӑn n sao cho không lӟn quá, nӃu n lӟn có khҧ năng nhӳng thuӝc tính không phҧi là ÿһc trѭng, nhѭ vұy sӁ làm “nhiӉu “ khҧ năng phân loҥi ÿúng.Ngѭӧc lҥi nӃu chӑn n quá nhӓ, ta sӁ không có ÿѭӧc sӕ cҫn thiӃt các thuӝc tính. 5.1.3 Chӑn ngѭӥng phân loҥi : Chúng tôi tiӃn hành thӱ nghiӋm vӟi giá trӏ l lҫn lѭӧt là 1, 9 và 999, nhѭ vұy ngѭӥng phân loҥi t xác ÿӏnh mӝt email là spam lҫn lѭӧt là 0.5, 0.9, 0.999. 5.1.4 Cách thӵc hiӋn : Chúng ta sӁ bҳt ÿҫu vӟi hai kho ngӳ liӋu email : kho ngӳ liӋu email spam và kho ngӳ liӋu email non-spam. Sӕ lѭӧng email trong mӛi kho ngӳ liӋu ban ÿҫu không hҥn chӃ. NӃu kho ngӳ liӋu càng lӟn thì hiӋu quҧ lӑc email sӁ càng cao. Tӯ hai kho ngӳ liӋu này, chúng tôi phân tích và duyӋt qua tҩt cҧ các token bao gӗm cҧ phҫn tiêu ÿӅ cӫa email.Ĉӕi vӟi nhӳng email html, chúng tôi thӵc hiӋn bóc tách các thҿ html ÿӇ lҩy nӝi dung giӳa các thҿ. Sau ÿó ta tính xác suҩt spam cӫa mӛi token ÿã ÿѭӧc phân tích, xác suҩt này chính là xác suҩt mӝt email chӍ chӭa token ÿó và là email spam. Nhѭ vұy mҩu chӕt ӣÿây là ta phҧi tính ra ÿѭӧc xác suҩt spam cӫa mӛi token. Theo Paulgraham [7], xác suҩt spam cӫa mӛi token ÿѭӧc tính dӵa trên sӕ lҫn xuҩt hiӋn cӫa mӛi token trong mӛi kho ngӳ liӋu hӑc ban ÿҫu. Ví dө mӝt token w có sӕ lҫn xuҩt hiӋn trong kho ngӳ liӋu spam là s, 43
  44. trong kho ngӳ liӋu non-spam là n, sӕ email tәng cӝng cӫa hai kho ngӳ liӋu spam và non-spam lҫn lѭӧt là N S và N N , thӃ thì xác suҩt spam cӫa token w ÿѭӧc tính nhѭ sau: s N P(,) X=== w C spam S sn + NNSN Công thӭc 5-1 Tuy nhiên, vì sӕ lҫn xuҩt hiӋn cӫa mӝt token trong mӛi kho ngӳ liӋu hӑc có khҧ năng vѭӧt quá kích thѭӟc cӫa kho ngӳ liӋu hӑc ÿó (tәng s s n sӕ email) do ÿó, trong công thӭc trên, thay bҵng Min(1, ) và N S N S N N n bҵng Min(1, ) N N Do ÿó Công thӭc 5-1viӃt lҥi nhѭ sau: Min(1,S ) N P(,) X=== w C spam S n Min(1,S )+ Min (1, ) NNSN công thӭc 5-2 Theo cách trên thì chúng ta ÿánh giá khҧ năng spam cӫa mӝt token xuҩt hiӋn trong mӝt kho ngӳ liӋu hӑc 100 lҫn ӣ 100 email khác nhau là bҵng vӟi khҧ năng spam cӫa mӝt token xuҩt hiӋn trong mӝt kho ngӳ liӋu hӑc 100 lҫn nhѭng chӍӣ trong mӝt email Chúng tôi ÿӅ xuҩt mӝt cách tính xác suҩt spam cӫa token khác nhѭ sau: thay vì dӵa vào sӕ lҫn xuҩt hiӋn cӫa token trong tӯng kho ngӳ liӋu hӑc, chúng tôi dӵa vào sӕ email chӭa token trong tӯng kho ngӳ liӋu hӑc. Công thӭc tính nhѭ sau : 44
  45. nS N P(,) X=== w C spam S nn SN+ NNSN công thӭc 5-3 Vӟi : ü nS là sӕ email có chӭa token trong kho ngӳ liӋu email spam ü nN là sӕ email có chӭa token trong kho ngӳ liӋu email non- spam ü N S là tәng sӕ email cӫa kho ngӳ liӋu hӑc spam ü N N là tәng sӕ email cӫa kho ngӳ liӋu hӑc non-spam Tuy nhiên, ta nhұn thҩy rҵng công thӭc trên ÿã ÿánh giá khҧ năng spam cӫa mӛi token là nhѭ nhau vӟi token xuҩt hiӋn 1 lҫn trong 1 email và token xuҩt hiӋn 100 lҫn trong 1 email, bӣi vì ӣ cҧ hai trѭӡng hӧp, ta ÿӅu chӍ tính thêm vào sӕ email chӭa token là 1 mà thôi Chúng ta có thӇ kӃt hӧp hai cách tính ӣ trên,ÿӇ có thӇ sӱ dөng ÿѭӧc nhiӅu thông tin vӅ token hѫn. Chúng tôi ÿӅ xuҩt thêm mӝt công thӭc nӳa - ÿѭӧc xem là sӵ kӃt hӧp giӳa hai công thӭc trên n S *b N P(,) X=== w C spam S nn SN bg+ NNSN công thӭc 5-4 Vӟi ü nS là sӕ email có chӭa token trong kho ngӳ liӋu email spam ü nN là sӕ email có chӭa token trong kho ngӳ liӋu email non- spam ü N S là tәng sӕ email cӫa kho ngӳ liӋu hӑc spam ü N N là tәng sӕ email cӫa kho ngӳ liӋu hӑc non-spam 45
  46. ü b là sӕ lҫn xuҩt hiӋn cӫa token trong kho ngӳ liӋu email spam ü g là sӕ lҫn xuҩt hiӋn cӫa token trong kho ngӳ liӋu email non- spam Còn ÿӕi vӟi các token chӍ xuҩt hiӋn kho ngӳ liӋu này mà không xuҩt hiӋn ӣ kho ngӳ liӋu kia thì ta không thӇ kӃt luұn rҵng mӝt token chӍ xuҩt hiӋn ӣ kho ngӳ liӋu spam thì không bao giӡ xuҩt hiӋn trong mӝt email non-spam, và ngѭӧc lҥi. Cách thích hӧp ӣ ÿây là ta sӁ gán cho chúng mӝt giá trӏ phù hӧp [7] Nhѭ vұy, vӟi nhӳng token chӍ xuҩt hiӋn trong kho ngӳ liӋu email spam thì ta sӁ gán khҧ năng xác suҩt spam cho nó là giá trӏ N gҫn vӟi 1 (chҷng hҥn 0.9999 )và ngѭӧc lҥi thì gán xác suҩt spam là giá trӏ M gҫn vӟi 0 (chҷng hҥn 0.0001). Nhѭ vұy ta ÿã xác ÿӏnh ÿѭӧc xác suҩt spam cӫa mӝt email có chѭá mӝt token nào ÿó hay xác suҩt spam cӫa mӝt token nhѭ sau: Tính theo công thӭc 5-2, ta có : æöæö Min(1,S ) ç÷ç÷N P= Maxç÷ M,, Minç÷ N S ç÷ç÷S n ç÷ç÷Min(1, )+ Min (1, ) èøèøNNSN Công thӭc 5-5 :công thӭc tính xác suҩt spam cӫa token dӵa trên sӕ lҫn xuҩt hiӋn Tính theo công thӭc 5-3, ta có : æöæönS ç÷ç÷N P= Maxç÷ M,, Minç÷ N S ç÷ç÷nnSN ç÷ç÷+ èøèøNNSN Công thӭc 5-6 :công thӭc tính xác suҩt spam cӫa token dӵa trên sӕ email chӭa token Tính theo công thӭc 5-4 46
  47. æöæön S * s ç÷ç÷N P= Maxç÷ M,, Minç÷ N S ç÷ç÷nnSN ç÷ç÷ sn+ èøèøNNSN Công thӭc 5-7 :ctính xác suҩt spam cӫa token dӵa trên sӕ lҫn xuҩt hiӋn và sӕ email chӭa nó Vӟi : ü s là sӕ lҫn xuҩt hiӋn cӫa token trong kho ngӳ liӋu hӑc spam ü n là sӕ lҫn xuҩt hiӋn cӫa token trong kho ngӳ liӋu hӑc non- spam ü nS là sӕ email chӭa token trong kho ngӳ liӋu hӑc spam ü n N là sӕ email chӭa token trong kho ngӳ liӋu hӑc non-spam ü N S là tәng sӕ email chӭa trong kho ngӳ liӋu hӑc spam ü N N là tәng sӕ email chӭa trong kho ngӳ liӋu hӑc non-spam Mӝt vҩn ÿӅ phӭc tҥp mà chúng tôi gһp phҧi trong quá trình thӵc hiӋn phân loҥi email dӵa trên thuұt toán Naïve Bayesian là viӋc tách token và tính xác suҩt spam cӫa token, bӣi vì sӕ token là khá lӟn, ӣÿây chúng tôi sӱ dөng cҩu trúc dӳ liӋu là bҧng băm.Ӭng vӟi mӛi kho ngӳ liӋu email spam và non-spam chúng tôi xây dӵng mӝt bҧng băm tѭѫng ӭng.Bҧng băm này sӁ bao gӗm token và sӕ email chӭa token hoһc sӕ lҫn xuҩt hiӋn cӫa token trong tӯng kho ngӳ liӋu tѭѫng ӭng, hoһc có thӇÿӗng thӡi chӭa ba thông tin này – tùy theo chúng ta áp dөng cách tính xác suҩt spam nào cho mӛi token. Nhѭ vұy mӛi token sӁ có mӝt giá trӏ băm (xác ÿӏnh bҵng hàm băm tӵÿӏnh nghƭa ) tѭѫng ӭng vӟi vӏ trí trên bҧng băm ÿӇ ta có thӇ truy xuҩt nhanh ÿӃn phҫn tӱ token trên bҧng. Mөc ÿích xây dӵng bҧng băm là ÿӇ tӕi ѭu hóa tӕc ÿӝ truy xuҩt các token trích tӯ email cNJng nhѭ tӕi ѭu thӡi gian xác ÿӏnh mӝt email là spam hay không. Mӛi phҫn tӱ cӫa bҧng băm lѭu trӳ token, sӕ lҫn xuҩt hiӋn (hoһc sӕ email có chӭa token ÿó ), hoһc xác suҩt spam cӫa nó, tùy theo mөc ÿích xӱ lý cө thӇ mà mӛi phҫn tӱ 47
  48. cӫa bҧng băm sӁ mang nhӳng thông tin khác nhau. Bҧng băm ÿѭӧc mô tҧ nhѭ sau: Hình 5-1Mô tҧ cҩu trúc bҧng băm Sau khi có 2 bҧng băm tѭѫng ӭng vӟi hai kho ngӳ liӋu email, ta sӁ xây dӵng bҧng băm thӭ ba. Mӛi phҫn tӱ trong bҧng băm này sӁ lѭu nhӳng thông tin gӗm: token và khҧ năng (xác suҩt) spam cӫa token.Tuy nhiên ÿӇ viӋc thӵc hiӋn tiӋn lӧi và không phҧi xét quá nhiӅu token, chúng tôi chӍ xem xét nhӳng token mà sӕ lҫn xuҩt hiӋn cӫa nó hoһc sӕ email chӭa nó trong cѫ sӣ dӳ hӑc ban ÿҫu lӟn hѫn mӝt ngѭӥng nào ÿó, vӟi nhӳng token mà tәng sӕ lҫn xuҩt hiӋn hoһc tәng sӕ email chӭa nó nhӓ hѫn ngѭӥng này, chúng tôi không tính xác suҩt cho token ÿó. ĈLӅu này là hӧp lý bӣi vì nhӳng token có tәng sӕ lҫn xuҩt hiӋn ( hoһc tәng sӕ email chӭa nó quá ít thì cNJng không ÿáng ÿӇ xem xét ÿӃn, do ÿó sӁ giúp giҧm bӟt sӕ token cҫn tính xác suҩt cNJng nhѭ dung lѭӧng lѭu trӳ cho dӳ liӋu ӣ bҧng băm thӭ ba này.Ӣÿây chúng tôi thӱ nghiӋm lҫn lѭӧt hai ngѭӥng 3 và 5, kӃt quҧ thӵc hiӋn ӣ hai ngѭӥng này gҫn nhѭ là tѭѫng ÿѭѫng nhau, cuӕi cùng chúng tôi chӑn giá trӏ 3. Theo Paulgraham [7] thì chúng ta cҫn hҥn chӃ loҥi lӛi false positive (nhұn email non-spam thành email spam ), do ÿó sӕ lҫn xuҩt hiӋn cӫa các token hoһc sӕ email chӭa token trong kho ngӳ liӋu non-spam sӁÿѭӧc 48
  49. nhân vӟi mӝt trӑng sӕ W,ÿiӅu này giúp phân biӋt ÿѭӧc giӳa nhӳng token thӍnh thoҧng xuҩt hiӋn trong các email hӧp lӋ vӟi nhӳng token hҫu nhѭ không xuҩt hiӋn, chúng tôi thӱ nghiӋm lҫn lѭӧt vӟi hai giá trӏ 1 và 2. Ví dө thông tin bҧng băm thӭ 3: Token: Khҧ năng spam : madam 0.99 promotion 0.99 republic 0.99 shortest 0.047225013 mandatory 0.047225013 standardization 0.07347802 Cách tính xác suҩt spam cho mӛi token ÿѭӧc thӵc hiӋn theo các công thӭc nhѭÿã nói ӣ trên. Cuӕi cùng ÿӇ xác ÿӏnh mӝt email mӟi ÿӃn có phҧi là spam không thì chúng tôi trích ra n token ӣ trong email ÿó.Cách chӑn mүu tұp thuӝc tính ÿӇ xét thông thѭӡng là chӑn ra n token mӝt cách ngүu nhiên, tuy nhiên nhұn thҩy rҵng nhӳng token trung tính ( khҧ năng spam là 0.4-0.6 thì không có tác dөng lҳm trong viӋc nhұn dҥng email spam ) nên ta chӑn n token này vӟi ÿӏnh hѭӟng là chӑn nhӳng token ÿһc trѭng cho mӝt email spam và email non-spam, chúng tôi chӑn nhӳng token có khҧ năng spam cao nhҩt và thҩp nhҩt. Nhѭ vұy chúng tôi chӑn n token có khoҧng cách giӳa xác suҩt spam cӫa chúng vӟi giá trӏ trung tính 0.5 là cao nhҩt Chúng ta gӑi giá trӏ này là giá trӏ “ÿһc trѭng”. Nhѭ vұy ta sӁ chӑn ÿѭӧc nhӳng token hoһc là có khҧ năng spam cao nhҩt (xác suҩt spam cao nhҩt ) hoһc là nhӳng token có khҧ năng non-spam cao nhҩt ( xác suҩt spam thҩp nhҩt ). NӃu có k (k ³ 2) token có cùng giá trӏ “ÿһc trѭng “, bӣi vì khҧ năng xuҩt hiӋn cӫa k token này ngang nhau, do ÿó hoàn toàn không mҩt tính tәng quát, chúng tôi chӑn token ÿҫu tiên trong k token có cùng giá trӏ “ ÿһc trѭng “này. Sau khi chӑn ÿѭӧc n token này chúng tôi sӁ tra trong bҧng 49
  50. Eăm thӭ 3 ( lѭu token và khҧ năng spam cӫa nó) ÿӇ lҩy ra khҧ năng spam riêng cӫa mӛi token. NӃu không tìm thҩy khҧ năng spam riêng cho token trong bҧng băm,có nghƭa là token này là mӟi – chѭa có trong cѫ sӟ dӳ liӋu token cӫa ta.Mӝt token chѭa tӯng xuҩt hiӋn trong kho ngӳ liӋu hӑc thì khҧ Qăng spam cӫa nó tѭѫng ÿӕi thҩp [7], chúng tôi lҩy giá trӏ trung tính 0.4. Tӯÿó chúng tôi tính khҧ năng tәng hӧp mӝt email chӭa n token này là spam. Cách tính khҧ năng tәng hӧp :chúng tôi dӵa vào Công thӭc 4-7 n PCc().( PXxCc |) uurr =Õ ii == i1= PCcXx(|)= == n å PCk().(=Õ PXxCkii == |) kÎ-{} spam, non spam i=1 ThӃ thì xác suҩt spam tәng hӧp cӫa mӝt email Cÿѭӧc xét là : n P( C= spam )( P X == x |) C c uurr Õ ii i=1 P( C= spam |) X == x n å PCk().(=Õ PXxCkii == |) kÎ-={ spam,1 non spam} i Ví dө Token: Xác sṷt (Probability): madam 0.99 promotion 0.99 shorstest 0.047225013 Xác suҩt mӝt email là Spam là :0.6 à Khҧ năng kӃt hӧp 0.99*0.99*0.047225013*0.6 = 0.6*0.99*0.99*0.047225013 + (1-0.6)*(1-0.99)(1-0.99)(1-0.047225013) Sau khi có khҧ năng tәng hӧp, chúng tôi so sánh vӟi các giá trӏ ngѭӥng ( ÿã nói ӣ mөc 4.3.1) ÿӇ phân loҥi email spam hay non-spam, nӃu xác suҩt spam tәng hӧp cӫa email lӟn hѫn ngѭӥng t chúng tôi kӃt luân email ÿó là spam, ngѭӧc lҥi email ÿó là non-spam. 50
  51. 5.2 Thӱ nghiӋm hiӋu quҧ phân loҥi 5.2.1 Thӱ nghiӋm vӟi kho ngӳ liӋu pu: Bӣi vì kho ngӳ liӋu hӑc và kiӇm thӱ là sӕ, do ÿó chúng tôi thay ÿәi vӅ cách lҩy token, ӣÿây chúng tôi xem token là các con sӕ, và dҩu hiӋu tách token là các khoҧng trҳng. 5.2.1.1 Kӏch bҧn kiӇm thӱ : Chúng tôi thӱ nghiӋm nhân trӑng sӕ non-spam W vӟi 1 và 2 Vӟi mӛi W, chúng tôi thӱ nghiӋm vӟi l lҫn lѭӧt vӟi các giá trӏ 1, 9, và 999 7ѭѫng ӭng vӟi mӛi giá trӏ l và W chúng tôi thӵc hiӋn tính xác suҩt spam theo các công thӭc :Công thӭc 5-5, Công thӭc 5-6 và Công thӭc 5-7 Sӕ token ÿѭӧc lҩy lҫn lѭӧt là 10, 15, 20 Chúng tôi kiӇm tra vӟi các kho ngӳ liӋu pu1, pu2, pu3 và puA 7ѭѫng ӭng vӟi mӛi kho ngӳ liӋu trên chúng tôi cho hӑc tӯ part1 ÿӃn part 9, sau ÿó chúng tôi thӱ nghiӋm phân loҥi trên part10, chӭa nhӳng email chѭa ÿѭӧc hӑc. 5.2.1.2 KӃt quҧ thӱ nghiӋm vӟi kho ngӳ liӋu pu : KӃt quҧ thӵc hiӋn: chúng tôi trình bày kӃt quҧ thӵc hiӋn vӟi trѭӡng hӧp nhân trӑng sӕ non-spam W=2, kӃt quҧ chi tiӃt vӟi W=1 xin xem phҫn phө lөc. 51
  52. v KӃt quҧ kiӇm thӱ trên PU1: Công thӭc 5-5 Công thӭc 5-6 Công thӭc 5-7 l 10 15 20 10 15 20 10 15 20 1 6ĺS 44 45 45 45 45 44 46 46 47 6ĺN 4 3 3 3 3 4 2 2 1 1ĺN 61 61 61 61 61 61 61 61 61 1ĺS 0 0 0 0 0 0 0 0 0 SR 91.67% 93.75% 93.75% 93.75% 93.75% 91.67% 95.83% 95.83% 97.92% SP 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% TCR 12 16 16 16 16 12 24 24 48 9 6ĺS 44 45 45 44 44 44 45 46 47 6ĺN 4 3 3 4 4 4 3 2 1 1ĺN 61 61 61 61 61 61 61 61 61 1ĺS 0 0 0 0 0 0 0 0 0 SR 91.67% 93.75% 93.75% 91.67% 91.67% 91.67% 93.75% 95.83% 97.92% SP 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% TCR 12 16 16 12 12 12 16 24 48 999 6ĺS 43 43 43 43 43 43 45 45 47 6ĺN 5 5 5 5 5 5 3 3 1 1ĺN 61 61 61 61 61 61 61 61 61 1ĺS 0 0 0 0 0 0 0 0 0 SR 89.58% 89.58% 89.58% 89.58% 89.58% 89.58% 93.75% 93.75% 97.92% SP 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% TCR 9.6 9.6 9.6 9.6 9.6 9.6 16 16 48 %ҧng 5-1 KӃt quҧ kiӇm thӱ phân lӑai email bҵng phѭѫng pháp phân lӑai Naïve Bayesian trên kho ngӳ liӋu PU1 52
  53. Hình 5-2 Lѭӧc ÿӗ so sánh các chӍ sӕ spam recall (SR) và spam precision (SP) theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PU1 vӟi công thӭc 5-7 ( l=9 ) Hình 5-3 Lѭӧc ÿӗ chӍ sӕ TCR theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PU1 vӟi công thӭc 5-7 ( l=9 ) 53
  54. v KӃt quҧ kiӇm thӱ trên PU2: Công thӭc 5-5 Công thӭc 5-6 Công thӭc 5-7 l 10 15 20 10 15 20 10 15 20 1SĺS 7 8 9 7 8889 5 6ĺN 7 6 5 7 6665 9 1ĺN 57 57 57 57 57 57 57 57 57 1ĺS 0 0 0 0 0000 0 SR 50.00% 57.14% 64.29% 50.00% 57.14% 57.14% 57.14% 64.29% 35.71% SP 100.00% 100.00% 100.00%100.00% 100.00% 100.00% 100.00% 100.00% 100.00% TCR 22.333333 2.8 22.3333332.3333332.333333 2.81.555556 9SĺS 7 8 8 7 8888 5 6ĺN 7 6 6 7 5666 9 1ĺN 57 57 57 57 57 57 57 57 57 1ĺS 0 0 0 0 0000 0 SR 50.00% 57.14% 57.14% 50.00% 61.54% 57.14% 57.14% 57.14% 35.71% SP 100.00% 100.00% 100.00%100.00% 100.00% 100.00% 100.00% 100.00% 100.00% TCR 22.3333332.333333 2 2.62.3333332.3333332.3333331.555556 999SĺS 7 8 8 7 6785 5 6ĺN 7 6 6 7 8769 9 1ĺN 57 57 57 57 57 57 57 57 57 1ĺS 0 0 0 0 0000 0 SR 50.00% 57.14% 57.14% 50.00% 42.86% 50.00% 57.14% 35.71% 35.71% SP 100.00% 100.00% 100.00%100.00% 100.00% 100.00% 100.00% 100.00% 100.00% TCR 22.3333332.333333 2 1.75 22.3333331.5555561.555556 %ҧng 5-2 KӃt quҧ kiӇm thӱ phân lӑai email bҵng phѭѫng pháp phân lӑai Naïve Bayesian trên kho ngӳ liӋu PU2 54
  55. Hình 5-4 Lѭӧc ÿӗ so sánh các chӍ sӕ spam recall (SR) và spam precision (SP) theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PU2 vӟi công thӭc 5-5 ( l=9 ) Hình 5-5 Lѭӧc ÿӗ chӍ sӕ TCR theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PU2 vӟi công thӭc 5-5 ( l=9 ) 55
  56. v KӃt quҧ kiӇm thӱ trên PU3: Công thӭc 5-5 Công thӭc 5-6 Công thӭc 5-7 l 10 15 20 101520101520 1SĺS 169 168 168 167 169 165 165 172 170 6ĺN 13 14 14 151317171012 1ĺN 228 228 227 228 228 229 226 222 224 1ĺS 33433 2 5 9 7 SR 92.86% 92.31% 92.31% 91.76% 92.86% 90.66% 90.66% 94.51% 93.41% SP 98.26% 98.25% 97.67% 98.24% 98.26% 98.80% 97.06% 95.03% 96.05% TCR 11.37510.7058810.1111110.11111 11.3759.5789478.2727279.5789479.578947 9SĺS 167 168 168 164 166 163 165 171 170 6ĺN 15 14 14 181619171112 1ĺN 229 228 227 228 229 229 227 222 225 1ĺS 23432 2 4 9 6 SR 91.76% 92.31% 92.31% 90.11% 91.21% 89.56% 90.66% 93.96% 93.41% SP 98.82% 98.25% 97.67% 98.20% 98.81% 98.79% 97.63% 95.00% 96.59% TCR 5.5151524.439024 3.644.0444445.3529414.9189193.4339621.9782612.757576 999SĺS 163 163 165 160 156 156 163 168 169 6ĺN 19 19 17 222626191413 1ĺN 229 229 229 229 229 229 227 225 225 1ĺS 22222 2 4 6 6 SR 89.56% 89.56% 90.66% 87.91% 85.71% 85.71% 89.56% 92.31% 92.86% SP 98.79% 98.79% 98.80% 98.77% 98.73% 98.73% 97.60% 96.55% 96.57% TCR 0.0902330.0902330.0903230.0900990.0899210.089921 0.045330.0302930.030298 %ҧng 5-3 KӃt quҧ kiӇm thӱ phân lӑai email bҵng phѭѫng pháp phân lӑai Naïve Bayesian trên kho ngӳ liӋu PU3 56
  57. Hình 5-6 Lѭӧc ÿӗ so sánh các chӍ sӕ spam recall (SR) và spam precision (SP) theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PU3 vӟi công thӭc 5-6 ( l=9 ) Hình 5-7 Lѭӧc ÿӗ chӍ sӕ TCR theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PU3 vӟi công thӭc 5-6 ( l=9 ) 57
  58. v .Ӄt quҧ kiӇm thӱ trên PUA: Công thӭc 5-5 Công thӭc 5-6 Công thӭc 5-7 l 10 15 20 10 15 20 10 15 20 1 6ĺS 46 46 46 43 42 41 50 48 46 6ĺN 11 11 11 14 15 16 7 9 11 1ĺN 57 56 57 57 57 57 56 56 57 1ĺS 0 1 0 0 0 0 1 1 0 SR 80.70% 80.70% 80.70% 75.44% 73.68% 71.93% 87.72% 84.21% 80.70% SP 100.00% 97.87% 100.00% 100.00% 100.00% 100.00% 98.04% 97.96% 100.00% TCR 5.181818 4.75 5.181818 4.071429 3.8 3.5625 7.125 5.7 5.181818 9 6ĺS 46 46 45 42 41 38 49 46 45 6ĺN 11 11 12 15 16 19 8 11 12 1ĺN 57 56 57 57 57 57 56 55 57 1ĺS 0 1 0 0 0 0 1 2 0 SR 80.70% 80.70% 78.95% 73.68% 71.93% 66.67% 85.96% 80.70% 78.95% SP 100.00% 97.87% 100.00% 100.00% 100.00% 100.00% 98.00% 95.83% 100.00% TCR 5.181818 2.85 4.75 3.8 3.5625 3 3.352941 1.965517 4.75 999 6ĺS 43 43 42 41 37 35 47 45 44 6ĺN 14 14 15 16 20 2 10 12 13 1ĺN 57 57 57 57 57 57 56 57 57 1ĺS 0 0 0 0 0 0 1 0 0 SR 75.44% 75.44% 73.68% 71.93% 64.91% 94.59% 82.46% 78.95% 77.19% SP 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 97.92% 100.00% 100.00% TCR 4.071429 4.071429 3.8 3.5625 2.85 18.5 0.056492 4.75 4.384615 %ҧng 5-4 KӃt quҧ kiӇm thӱ phân lӑai email bҵng phѭѫng pháp phân lӑai Naïve Bayesian trên kho ngӳ liӋu PUA 58
  59. Hình 5-8 Lѭӧc ÿӗ so sánh các chӍ sӕ spam recall (SR) và spam precision (SP) theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PUA vӟi công thӭc 5-5 ( l=9 ) Hình 5-9 Lѭӧc ÿӗ chӍ sӕ TCR theo sӕ token thӱ nghiӋm trên kho ngӳ liӋu PUA vӟi công thӭc 5-5 ( l=9 ) 59
  60. Nhұn xét :kӃt quҧ kiӇm thӱ trên các kho ngӳ liӋu PU là khá tӕt, hiӋu quҧ phân loҥi giӳa các công thӭc là không quá khác biӋt, vӟi cách chӑn l=9 và l=1 hiӋu quҧ hѫn vӟi l=999 , theo chúng tôi thì kho ngӳ liӋu không lӟn lҳm nên sӱ dөng l=999 thì không hiӋu quҧ bҵng. VӅ cách chӑn sӕ token, hiӋu quҧ phân loҥi khi chӑn sӕ token là 10, 15 hay 20 cNJng không khác biӋt lҳm. 5.2.2 Thӱ nghiӋm vӟi kho ngӳ liӋu email chӳ : 5.2.2.1 Kӏch bҧn kiӇm thӱ : Sau khi ÿã thӱ nghiӋm vӟi kho ngӳ liӋu sӕ, chúng tôi chӑn mӝt bӝ ( l , n, W) ÿӇ kiӇm thӱ vӟi kho ngӳ liӋu email chӳ. Chúng tôi thӱ nghiӋm vӟi bӝ dӳ liӋu l = 9, sӕ token là 15, trӑng sӕ non-spam là 2. Ngӳ liӋu hӑc và kiӇm thӱӣÿây gӗm ngӳ liӋu email là email văn bҧn trѫn (text/plain), và ngӳ liӋu email html. Ngӳ liӋu email văn bҧn trѫn có sӕ email dùng ÿӇ huҩn luyӋn là :517 email non-spam, 528 email spam. Ngӳ liӋu dung ÿӇ kiӇm thӱ gӗm 98 email spam, 100 email non-spam. Ngӳ liӋu email html có sӕ email dùng ÿӇ huҩn luyӋn là 141 email non-spam, 155 email spam, sӕ email dung ÿӇ kiӇm thӱ là 50 email spam, 50 email non- spam. 5.2.2.2 KӃt quҧ kiӇm thӱ : Ngӳ liӋu email văn bҧn trѫn: · Ngӳ liӋu hӑc :sӕ email spam :517, sӕ email non- spam:528 · Ngӳ liӋu kiӇm thӱ :sӕ email spam :98, sӕ email non- spam :100 Ngӳ liӋu email html, sӕ email kiӇm thӱ :Spam =50, non-spam=50 60
  61. Công thӭc 5-5 Công thӭc 5-6 Công thӭc 5-7 TEXT 6ĺS 96 94 96 6ĺN 2 4 2 1ĺN 99 99 99 1ĺS 1 1 1 SR 97.96% 95.92% 97.96% SP 98.97% 98.95% 98.97% TCR 32.66667 19.6 32.66667 HTML SĺS 32 24 23 6ĺN 18 26 27 1ĺN 50 50 50 1ĺS 0 0 0 SR 64.00% 48.00% 46.00% SP 100.00% 100.00% 100.00% TCR 2.777778 1.923077 1.851852 %ҧng 5-5 KӃt quҧ kiӇm thӱ phân lӑai email bҵng phѭѫng pháp phân lӑai Bayesian trên kho ngӳ liӋu email chӳ KӃt quҧ thӵc hiӋn vӟi ngӳ liӋu email văn bҧn (text/plain) khá tӕt, các chӍ sӕ spam recall, spam precision khá cao, tuy nhiên thӵc hiӋn vӟi kho ngӳ liӋu email html thì chӍ sӕ spam recall không ÿѭӧc cao trong khi chӍ sӕ spam precision vүn tӕt. KӃt quҧ này mӝt phҫn vì kho ngӳ liӋu email html cӫa chúng tôi không ÿѭӧc lӟn lҳm, sӕ lѭӧng email html dùngÿӇ huҩn luyӋn Wѭѫng ÿӕi ít. Email html có ÿһc ÿLӇm là nӝi dung cӫa nó hҫu hӃt là các thҿ html, nhӳng thҿ html này không cung cҩp ÿѭӧc nhiӅu thông tin trong viӋc phân lӑai, nӝi dung chӳ thұt sӵ tѭѫng ÿӕi ít, ÿLӅu này cNJng ҧnh Kѭӣng ÿӃn kӃt quҧ thӵc hiӋn cӫa thuұt tóan Naïve Bayesian 5.3 Ѭu ± nhѭӧc ÿLӇm cӫa phѭѫng pháp phân loҥi Naïve Bayesian: 5.3.1 Ѭu ÿLӇm : · Mӝt ѭu ÿiӇm cӫa bӝ lӑc Bayes là nó cho phép hӑc spam. Nghƭa là, khi có mӝt email spam vӵѫt qua ÿѭӧc bӝ lӑc thì ngѭӡi dùng có thӇÿánh dҩu spam cho email ÿó và bӝ lӑc sӁ tӵ phân tích email spam ÿó và cұp nhұt thêm vào kho ngӳ liӋu spam. · HiӋu quҧ phân loҥi là khá cao 61
  62. · Thӡi gian huҩn luyӋn nhanh, theo Charles Elkan [16] vӟi e mүu huҩn luyӋn và sӕ thuӝc tính là f thӡi gian cҫn thiӃt ÿӇ huҩn luyӋn phân lӑai Naïve Bayesian là hàm tuyӃn tính O(ef), không có thuұt tóan máy hӑc nào có thӇ khҧo sát vӟi cùng dӳ liӋu huҩn luyӋn ÿó nhanh hѫn Naïve Bayesian · Ngoài nhӳng bӝ lӑc ÿѭӧc xây dӵng sҹn dӵa trên kho ngӳ liӋu email có trѭӟc, thì vӟi mӛi ngѭӡi dùng sӁ có bӝ lӑc riêng ÿѭӧc xây dӵng dӵa trên kho ngӳ liӋu hӑc email cӫa chính hӑ. Do ÿó, viӋc ÿѭa spam vѭӧt qua ÿѭӧc bӝ lӑc xây dӵng sҹn thì không chҳc là nó có thӇ vѭӧt qua ÿѭӧc bӝ lӑc cӫa tӯng ngѭӡi dùng cө thӇ. 5.3.2 KhuyӃt ÿLӇm : · KhuyӃt diӇm cӫa phѭѫng pháp phân loҥi Bayes chính là viӋc phҧi huҩn luyӋn cho nó · KhuyӃt ÿLӇm thӭ hai là hiӋu quҧ phân lӑai phө thuӝc vào kho ngӳ liӋu huҩn luyӋn ban ÿҫu, nӃu ngӳ liӋu không ÿӫ lӟn, kӃt quҧ phân lӑai sӁ bӏ ҧnh hѭӣng. · Dӳ liӋu ÿã qua huҩn luyӋn là khá nhiӅu, làm tăng dung lѭӧng lѭu trӳ. 62
  63. Chѭѫng 6 : PHѬѪNG PHÁP ADABOOST VÀ ӬNG DӨNG PHÂN LOҤI EMAIL 63
  64. Thuұt toán Adaboost (Adaptive Boost)[15],ÿѭӧc giӟi thiӋu lҫn ÿҫu vào năm 1995 bӣi Freund và Schapire [10],[11], là mӝt trong các thuұt toán theo phѭѫng pháp Boosting. Boosting là mӝt trong các phѭѫng pháp mӟi nhҩt ÿѭӧc ÿӅ xuҩt dùng ÿӇ nâng cao khҧ năng dӵÿoán ÿúng [12]. Boosting ÿѭӧc áp dөng trong các bài toán phân loҥi và hӗi qui. Boosting kӃt hӧp các luұt “yӃu “ (weak rule) có ÿӝ chính xác dӵÿoán thҩp ÿӇ cho ra mӝt luұt có ÿӝ chính xác dӵÿoán cao [12]. Thông thѭӡng mӛi mӝt luұt yӃu là mӝt luұt ÿѫn giҧn, có thӇ dӵa vào ÿó ÿӇ dӵÿoán ÿӕi tѭӧng ÿѭӧc xét thuӝc vӅ loҥi nào, tuy nhiên ÿӝ chính xác cӫa dӵÿoán là không cao. Các luұt yӃu sӁÿѭӧc huҩn luyӋn tuҫn tӵ dӵa trên các mүu huҩn luyӋn rҩt khó dӵÿoán ÿúng nӃu chӍ căn cӭ vào các luұt ÿã có trѭӟc. Các thuұt toán boost gӗm AdaBoost, Uboost, LPBoost, LPUBoost .Ӣÿây chúng tôi tұp trung vào AdaBoost, và AdaBoost ӭng dөng trong lƭnh vӵc phân loҥi văn bҧn 6.1 Thuұt toán AdaBoost : Mô tҧ phác thҧo thuұt toán nhѭ sau: · Cho mӝt tұp huҩn luyӋn (xy11 , ),( xy 22 , ), ,( xymm , ) · yi Î-+{ 1,1} là nhãn ÿúng cӫa mӛi xi trong tұp X · Vӟi mӛi t, t=1, T o Xây dӵng hàm phân phӕi Dit () tѭѫng ӭng im=1 o Chӑn mӝt luұt yӃu hXt :®-+{ 1,1} vӟi lӛi e=¹Pr[()]hxylà nhӓ nhҩt bҵng thӫ tөc WeakLearner tDtiit · Ra : hàm dùng ÿӇ dӵÿoán H Hình 6-1 Mô tҧ thuұt toán AdaBoost Thuұt toán sӁ tìm ra mӝt tұp các luұt yӃu bҵng cách gӑi thӵc hiӋn lһp ÿi lһp lҥi mӝt thӫ tөc WeakLearner vӟi sӕ lҫn T. Nhӳng luұt yӃu này sӁÿѭӧc kӃt hӧp T tuyӃn tính lҥi ÿӇ cho ra mӝt luұt phân loҥi mҥnh hѫn : Hx()= å hxt (). Thӫ tөc t=1 64
  65. WeakLearner dùng ÿӇ chӑn ra luұt yӃu có lӛi phân loҥi sai nhӓ nhҩt tѭѫng ӭng trong mӛi bѭӟc chҥy t=1, T, kӃt quҧ là ta có ÿѭӧc tұp luұt ÿã huҩn luyӋn gӗm T luұt yӃu. Lӛi xҧy ra khi Hxy()ii¹ , thuұt toán AdaBoost xây dӵng thӫ tөc WeakLearner chӑn lӵa luұt yӃu sao cho tѭѫng ӭng vӟi luұt yӃu ÿѭӧc chӑn lӛi sai e ÿѭӧc giҧm tӕi ÿa. Thuұt toán tìm cách duy trì mӝt tұp các trӑng sӕ tѭѫng ӭng vӟi tұp mүu huҩn luyӋn. Mӭc ҧnh hѭӣng cӫa trӑng sӕ vӟi mүu hӑc i ӣ lҫn t là Dit () Trong quá trình hӑc, các trӑng sӕ sӁÿѭӧc cұp nhұt ÿӝng. NӃu phân loҥi sai trӑng sӕ sӁ tăng lên nhҩn mҥnh nhӳng mүu huҩn luyӋn bӏ phân loҥi sai, ngѭӧc lҥi, trӑng sӕ giҧm xuӕng [15]. 6.2 AdaBoost trong phân loҥi văn bҧn nhiӅu lӟp : Mӝt trong các lƭnh vӵc ӭng dөng quan trӑng cӫa thuұt toán AdaBoost là phân loҥi văn bҧn. Trong phân loҥi văn bҧn vӟi nhiӅu lӟp, có hai thuұt toán AdaBoost mӟi nhҩt là AdaBoost.MH và AdaBoost.MR, trong phҥm vi luұn văn này chúng tôi tұp trung nghiên cӭu thuұt toán AdaBoost.MH. Xét bài toán phân loҥi văn bҧn nhiӅu lӟp (nhãn ), X biӇu thӏ tұp các văn bҧn và Y là tұp có giӟi hҥn các nhãn hoһc lӟp.Ĉӏnh nghƭa kích thuӟc cӫa Y là k= | Y |. Trong trѭӡng hӧp phân loҥi nhiӅu lӟp, mӛi mӝt văn bҧn x Î X ÿѭӧc gán nhiӅu nhãn trong Y. Mӝt ví dө dӉ thҩy là phân loҥi tin tӭc là mӝt dҥng phân loҥi văn bҧn nhiӅu lӟp, mӛi mӝt tin có thӇ phù hӧp vӟi nhiӅu lӟp, chҷng hҥn mӝt tin có thӇ thuӝc vӅ nhiӅu loҥi nhѭ tin xã hӝi, kinh tӃ, văn hoá NKѭ vұy mӛi mүu sӁÿѭӧc gán nhãn là mӝt cһp (x,Y) vӟi YÍ Y là mӝt tұp các nhãn ÿѭӧc gán cho x. Vӟi YÎ Y,ÿӏnh nghƭa Y[l] cho lÎ Y là Y[l]= +1 nӃu l Î Y -1 nӃu lÏ Y Phân loҥi nhiӅu lӟp ӣÿây là tìm cách xӃp hҥng các nhãn mà x có thӇ có.Mөc ÿích cӫa viӋc huҩn luyӋn là thu ÿѭӧc mӝt hàm f: X´ Y ® R sao cho vӟi mӛi văn bҧn x, nhӳng nhãn trong Y sӁÿѭӧc sҳp xӃp theo thӭ tӵ fx( ,.) . Nhѭ vұy, nӃu 65
  66. fxl( ,,12) > fxl( ) thì l1 ÿѭӧc xem là có thӭ hҥng ѭu tiên xӃp loҥi cao hѫn l2 . Thuұt toán huҩn luyӋn ÿѭӧc xem là thành công nӃu vӟi mӛi x có tұp nhãn tѭѫng ӭng là Y thì thuұt toán sӁ xӃp hҥng các nhãn trong Y cao hѫn các nhãn không có trong Y Thuұt toán AdaBoost MH phân loҥi văn bҧn nhiӅu lӟp : Cho S là tұp mүu huҩn luyӋn (xY11, )()( , xY 22 , , , xYmm , ) vӟi xi Î X và Yi Í Y. Ӣ mӛi bѭӟc thӵc hiӋn t, thӫ tөc WeakLearner sӁ chӑn mӝt luұt yӃu h: X ´Y ® R,dҩu cӫa h(x, l) cho biӃt nhãn lÿѭӧc gán hay không gán cho x, còn giá trӏ | h(x, l)| ÿѭӧc xem là ÿӝ tin cұy cӫa dӵÿoán Thuұt toán AdaBoost MH phân loҥi văn bҧn vӟi nhiӅu lӟp [14] Cho (xY11,) ,( xY 22 ,) , ,( xYmm , ) , xi Î X và Yi Í Y. 1 · Khӣi tҥo D(,) il = 1 mk · Vӟi mӛi t =1, , T o Huҩn luyӋn tұp hӑc yӃu sӱ dөng Dt o Chӑn mӝt luұt yӃu ht : X ´Y ® R bҵng thӫ tөc WeakLearner o Chӑn a t Î R o Cұp nhұt Dilt( ,exp-,) ()at Ylh i[] ti( xl) Dt+1 ( il, ) = Zt Zt ÿѭӧc chӑn sao cho Dt+1 là hàm phân phӕi T Ra : Hx(),== signfx()() fx()()åatt hx t=1 Hình 6-2 Mô tҧ thuұt toán AdaBoost MH phân loҥi văn bҧn nhiӅu lӟp m Luұt yӃu ht ÿѭӧc chӑn sao cho giá trӏ Zt= åå D t() il, exp() -at Ylh i[] ti() xl , il=1 nhӓ nhҩt 6.3 Ӭng dөng AdaBoost trong phân loҥi email: Bài toán chúng ta ÿang xét là phân loҥi email, ӣÿây chúng ta chӍ phân loҥi email hoһc là loҥi spam hoһc là loҥi non-spam. Nhѭ vұy bài toán phân loҥi email là trѭӡng hӧp ÿһc biӋt cӫa phân loҥi văn bҧn nhiӅu lӟp, khi mӛi mүu huҩn luyӋn chӍ 66
  67. nhұn mӝt nhãn ÿѫn – thay vì mӝt tұp nhãn. Khi ÿó phân loҥi email vӟi hai lӟp spam và non-spam trӣ thành bài tóan phân loҥi văn bҧn nhӏ phân. 6.3.1 Thuұt toán AdaBoost.MH trong truӡng hӧp phân loҥi nhӏ phân Xét bài toán hai lӟp, mүu huҩn luyӋn là tұp S= {( xy11, )()( , xy 22 , , , xymm , )} gӗm m bӝ (,)xyiiÿã ÿѭӧc gán nhãn, xi là các mүu huҩn luyӋn thuӝc vӅ không gian mүu huҩn luyӋn X và yi Î {-1, +1} là lӟp hay nhãn tѭѫng ӭng gҳn vӟi xi . Mөc ÿích cӫa viӋc hӑc là có ÿѭӧc mӝt hàm H: X® R, sao cho vӟi mӛi mүu x, dҩu cӫa H(x) cho biӃt lӟp mà x thuӝc vӅ (-1 hay +1 ), và ÿӝ lӟn |H(x)| cho biӃt ÿӝ tin cұy ÿѭӧc dӵÿoán. Mӝt hàm nhѭ thӃ có thӇ dùng cho viӋc phân loҥi hay xӃp loҥi các mүu chѭa gһp. Mã giҧ cӫa AdaBoost.MH trong trѭӡng hӧp phân loҥi nhӏ phân nhѭ sau: 67
  68. Thӫ tөc Adaboost m Vào :S= {(xi , yi )}i=1 # S là tұp mүu huҩn luyӋn # khӣi tҥo hàm phân phӕi D1 (Cho tҩt cҧ i, 1 ” i ” m ) D1 (i)= 1/m Lһp :vӟi mӑi t : t:=1 T Huҩn luyӋn tұp hӑc yӃu sӱ dөng phân bӕ Dt Chӑn mӝt luұt yӃu ht :X® R dùng thӫ tөc WeakLearner Chӑn a t Î R, Cұp nhұt Dt ( cho tҩt cҧ i, 1 ” i ” m ) Dit( )exp(-a titi yhx ( )) Dit+1()= Zt # Zt là hӋ sӕ chuҭn hoá ( Zt ÿѭӧc chӑn sao cho Dt+1 là hàm #phân phӕi HӃt lһp æ T ö Ra: luұt kӃt hӧp H(x) = signçåa t ht (x)÷ è t=1 ø Hình 6-3 Mô tҧ thuұt toán AdaBoost.MH phân loҥi nhӏ phân Ban ÿҫu các trӑng sӕ D1 là nhѭ nhau, nhѭng thuұt toán boost cұp nhұt trӑng sӕӣ mӛi lҫn t theo hàm mNJ, luұt yӃu ht ÿѭӧc chӑn sao cho giá trӏ m Zt= å Di t()(()exp -at yhx iti ( ) )ÿҥt cӵc tiӇu. i=1 Giӟi hҥn lӛi huҩn luyӋn sai : T Ĉһt fx()= åatt hx (), thӃ thì H(x)=sign(f(x)), ÿһt ëûéù[]p =1 nӃu p ÿúng, t=1 ngѭӧc lҥi ëûéù[]p = 0 68
  69. Theo (Schapire &Singer 1998)[12] , giӟi hҥn lӛi huҩn luyӋn sai cӫa hàm H là : 1 T |{:(iHxyii¹£ )}|Õ Zt m t=1 1 Thұt vұy, vì D = , bҵng qui nҥp theo t ta có : 1 m exp- a yhx ( ) ( å t t ii) Di()= t t+1 mZ Õt t exp(-yfx ( )) = i i (1) mZ Õt t 1Ӄu Hxy()ii¹ (có lӛi xҧy ra ) thì ëûé[]Hxy()1ii ù¹= và yfxii()0£ nên exp(-yi fx (i ))³ 1 1Ӄu Hxy()ii= thì ëûéù[]Hxy()0ii¹= Nhѭ vұy luôn có ÿѭӧc : ëûéù[]Hx(iii )¹£ y exp(-yi fx ( )) (2) .Ӄt hӧp (1) và (2), ta có giӟi hҥn trên cӫa lӛi sai : 11 ëûé[]iHx:()iii y ù¹£åexp(-yi fx ( )) mmi=1 æö = åç÷Õ ZDitT+1() i èøt = Õ Zt t +Ӌ quҧ quan trӑng cӫa công thӭc trên là : thay vì phҧi cӵc tiӇu lӛi huҩn luyӋn, ta chӍ cҫn cӵc tiӇu giӟi hҥn trên Zt trong mӛi lҫn thӵc hiӋn boost, ta có thӇ áp dөng giӟi hҥn này phөc vө cho viӋc chӑn giá trӏ at và chӑn luұt yӃu ht ӣ mӛi bѭӟc chҥy t 69
  70. 6.3.2 Phѭѫng pháp lӵa chӑn luұt yӃu : Ӣ mӛi bѭӟc chҥy t, luұt yӃu ÿѭӧc lӵa chӑn sao cho lӛi sai ÿѭӧc cӵc tiӇu, dӵa vào giӟi hҥn trên cӫa lӛi sai, thay vì chӑn ht sao cho lӛi huҩnluyӋn là nhӓ nhҩt, ta chӑn ht sao cho Zt là nhӓ nhҩt Vӟi mӛi tӯ w,ÿӏnh nghƭa w Î x tѭѫng ÿѭѫng vӟi w có trong văn bҧn x.Ĉӏnh nghƭa luұt yӃu h nhѭ sau: hx()= c0 nӃu w Ï x và hx()= c1 nӃu w Î x Theo (Schapire &Singer )[14], có ba phѭѫng pháp lӵa chӑn luұt yӃu vӟi thuұt toán AdaBoost MH nhѭ sau: 6.3.2.1 AdaBoost.MH with discrete predictions : Vӟi cách thӵc hiӋn này , cjj ()Î{}0,1 sӁ có giá trӏ +1 hoһc -1, vӟi mӝt luұt w ta có thӇ cӵc tiӇu giá trӏ Zt bҵng cách sau : Ĉһt X0 =Ï{ xwx: } và X1 =Î{ xwx: } Vӟi giá trӏ phân phӕi hiӋn tҥi là Dt , ta có nhӳng giá trӏ tѭѫng ӭng vӟi mӛi j Î{0,1} và vӟi mӛi bÎ-+{ 1,1} nhѭ sau: m Wj = DixX()éùéù Î Ù= yb bå tëûëû i ji i=1 j Nhѭ vұy Wb là trӑng sӕ, ӭng vӟi phân phӕi Dt cӫa mүu huҩn luyӋn trong tұp Xjj ()Î{}0,1 thuӝc vӅ loҥi bb()Î-+{}1,1 . jj ThiӃt lұp csignWWj =-()+- jj Ĉһt rt =-å || WW+- jÎ{0,1} (Schapire &Singer, 1998 )[12] chӍ ra rҵng ÿӇ cӵc tiӇu giá trӏ Zt , ta chӑn 1 æö1+ rt at = ln ç÷ 21èø- rt 70
  71. 2 Dүn ÿӃn Zrt =-1 6.3.2.2 AdaBoost.MH with real -value predictions: Khác vӟi thuұt toán AdaBoost vӯa trình bày, ӣÿây cjj ()Î{}0,1 có giá trӏ thӵc chӭ không nhѭ phѭѫng pháp vӯa nói là cjj ()Î{}0,1 có giá tri là +1 hoһc -1. ĈӇ cӵc tiӇu giá trӏ Zt , giá trӏ cjj ()Î{}0,1 vӟi mӛi luұt ÿѭӧc tính nhѭ sau: Theo (Schapire &Singer,1998) [12], Zt ÿҥt giá trӏ cӵc tiӇu nӃu chӑn j 1 æöW+ c j = ln ç÷j 2 èøW- jj ThiӃt lұp at =1, suy ra Z=t 2 å WW+- jÎ{}0,1 jj Nhѭ vұy, luұt yӃu ht ÿѭӧc chӑn sao cho giá trӏ Zt = 2 å WW+- là jÎ{}0,1 nhӓ nhҩt, còn at trong trѭӡng hӧp này là 1 j j Tuy nhiên, các giá trӏ W+ ,W- có thӇ rҩt nhӓ hay bҵng 0,ÿiӅu này sӁ dүn ÿӃn các giá trӏ cjj ()Î{}0,1 có giá trӏ rҩt lӟn hay vô hҥn.Trong thӵc tӃ nhӳng giá trӏ này có thӇ gây ra các vҩn ÿӅ phӭc tҥp trong tính toán, gây tràn sӕ. Theo (Schapire &Singer)[14]ÿӇ giӟi hҥn các giá trӏ cjj ()Î{}0,1 không quá lӟn, cjj ()Î{}0,1 sӁÿѭӧc tính nhѭ sau : j 1 æöW+ + e c j = ln ç÷j 2 èøW- + e 1 Vӟi e = m 71
  72. 6.3.2.3 AdaBoost.MH with real -value predictions and abstainings Thuұt toán AdaBoost vӟi giá trӏ dӵÿoán thӵc (AdaBoost.MH with real -value predictions) gán mӝt giá trӏ biӇu thӏÿӝ tin cұy trong cҧ hai trѭӡng hӧp luұt xuҩt hiӋn hay không. Nhѭ vұy nó ngҫm cho rҵng mӝt luұt không thoҧ trong văn bҧn cNJng chӭa ÿӵng thông tin vӅ loҥi cӫa văn bҧn ÿó.Ta có thӇ loҥi bӓ giҧ thiӃt này và ép luұt yӃu không nhұn giá trӏ gì khi luұt không thoҧ văn bҧn.ĈiӅu này ÿѭӧc thӵc hiӋn mӝt cách ÿѫn giҧn chӍ bҵng cách gán cho mӛi luұt yӃu giá trӏÿӝ tin cұy là 0 nӃu không thoҧ văn bҧn. Vӟi mӝt luұt h, thuұt toán sӁ cho giá trӏ dӵÿoán c1 vӟi nhӳng văn bҧn (ӣÿây là email ) thoҧ luұt h, vӟi các văn bҧn còn lҥi, giá trӏ dӵÿoán c0 sӁ có giá trӏ là 0.Do ÿó, luұt h sӁ không có tác dөng gì ÿӃn viӋc phân loҥi nӃu văn bҧn không thӓa. ThiӃt lұp at =1 Xem W0 = å Dit () là trӑng sӕ cӫa tҩt cҧ các văn bҧn không thoҧ h ixX, iÎ 0 Theo (Schapire &Singer, 1998 )[12].thì jj Zt =+ W0 2 å WW+- jÎ{}0,1 Nhѭ vұy ӣ mӛi bѭӟc chҥy t, luұt yӃu ÿѭӧc chӑn sao cho jj Zt =+ W0 2 å WW+- nhӓ nhҩt Mӝt ѭu ÿiӇm cӫa phѭѫng pháp này so vӟi jÎ{}0,1 cách thӵc hiӋn trѭӟc là cҧi thiӋn tӕc ÿӝ thӵc hiӋn, thӵc tӃ tӕc ÿӝ thӵc hiӋn cӫa phѭѫng pháp này nhanh hѫn 15% so vӟi phѭѫng pháp thӵc hiӋn theo thuұt toán. AdaBoost.MH with real -value predictions. 72
  73. Chѭѫng 7 : THӴC HIӊN VÀ KIӆM THӰ PHÂN LOҤI EMAIL DӴA TRÊN PHѬѪNG PHÁP ADABOOST 73
  74. 7.1 Cài ÿһt bӝ phân loҥi email dӵa trên phѭѫng pháp AdaBoost: Chúng tôi tiӃn hành cài ÿһt bӝ phân loҥi email dӵa trên thuұt toán AdaBoost vӟi ba cách Ø Cách 1 : cài ÿһt theo thuұt toán AdaBoost MH With Discrete Value Prediction Ø Cách 2: cài ÿһt theo thuұt toán AdaBoost MH With Real Value Prediction Sau khi thӵc hiӋn, chúng tôi lѭu lҥi T luұt ÿã ÿѭӧc chӑn ÿӇ phân loҥi cho các mүu mӟi Chúng tôi xây dӵng mӝt cҩu trúc dӳ liӋu luұt nhѭ sau : Struct rule { Token :chuӛi //lѭu token c0 :sӕ thӵc //giá trӏ cӫa luұt khi token không có trong //email ÿѭӑc xét c1 :sӕ thӵc // giá trӏ cӫa luұt khi token có trong email //ÿѭӑc xét } 7.1.1 Tұp huҩn luyӋn mүu và tұp nhãn : Tұp huҩn luyӋn mүu chính là các email spam và email non-spam ÿѭӧc dung ÿӇ huҩn luyӋn, tұp nhãn là Y={-1,+1}, ӣÿây chúng tôi qui ÿӏnh -1 là spam và +1 là non-spam 74
  75. 7.1.2 Xây dӵng tұp luұt yӃu ban ÿҫu : Vӟi mӛi token8 w , ÿӏnh nghƭa w Î x tѭѫng ÿѭѫng vӟi w có trong email x.Ĉӏnh nghƭa luұt yӃu h nhѭ sau: hx()= c0 nӃu w Ï x và hxc()= 1 nӃu w Î x Chúng tôi tiӃn hành cài ÿһt thӱ nghiӋm thuұt toán AdaBoost vӟi hai cách khác nhau, do ÿó tѭѫng ӭng vӟi mӛi cách, cách lҩy giá trӏ c0 và c1 khác nhau, các giá trӏ c0 , c1 mà h(x) có thӇ nhұn ÿѭӧc tính nhѭÿã nói ӣ các mөc 6.3.2.1 và mөc 6.3.2.2. Sӕ lѭӧng cӫa tұp luұt yӃu ÿѭӧc dùng ÿӇ huҩn luyӋn theo nguyên tҳc là không hҥn chӃ, nhѭ vұy chúng ta có thӇ lҩy tҩt cҧ các token trong tұp hӑc. Tuy nhiên, chúng tôi nhұn thҩy ÿӇ lҩy hӃt tҩt cҧ các token thì rҩt mҩt thӡi gian và tӕc ÿӝ huҩn luyӋn cNJng chұm ÿi, vì thӃ chúng tôi chӍ chӑn ra mӝt sӕ các token thoҧ mãn mӝt tiêu chí nào ÿó ÿӇ xây dӵng luұt yӃu. Mӛi luұt yӃu ÿѭӧc chӑn nhѭ sau :chúng tôi duyӋt qua tҩt cҧ các mүu hӑc, tính sӕ lҫn xuҩt hiӋn cӫa mӛi token, nhӳng token có sӕ lҫn xuҩt hiӋn lӟn hѫn mӝt giá trӏ ngѭӥng nào ÿó (ÿѭӧc qui ÿӏnh ) sӁÿѭӧc lӵa chӑn, viӋc lӵa chӑn ngѭӥng ÿӇ quyӃt ÿӏnh luұt có ÿѭӧc chӑn hay không tuǤ thuӝc vào kho ngӳ liӋu hӑc. Chúng tôi chia thành hai tұp riêng, mӝt tұp gӗm các token xuҩt hiӋn trong các email spam, tұp kia gӗm các token xuҩt hiӋn trong email non-spam.Cách xây dӵng tұp luұt yӃu nhѭ vұy làm giҧm ÿáng kӇ sӕ luұt cҫn xét Khi huҩn luyӋn, chúng tôi sӁ quyӃt ÿӏnh sӕ lѭӧng các luұt yӃu cҫn chӑn, khi ÿó chúng tôi sӁ chӑn tұp luұt yӃu bҵng cách lҫn lѭӧt chӑn mӝt token chѭa có trong tұp ÿѭӧc chӑn tӯ tұp các token spam, rӗi lҥi chӑn mӝt token chѭa có trong tұp ÿѭӧc chӑn tӯ tұp các token non-spam cho ÿӃn khi ÿӫ sӕ Oѭӧng yêu cҫu ĈӇ thӵc hiӋn viӋc duyӋt các token và tìm kiӃm mӝt token vӟi tӕc ÿӝ nhanh, tѭѫng tӵ nhѭ thӵc hiӋn thuұt toán huҩn luyӋn Naïve Bayesian chúng tôi 8 Xem ÿӏnh nghƭa token ӣ mөc 5.1.1 75
  76. cNJng xây dӵng bҧng băm tѭѫng tӵ nhѭ bҧng băm ÿã ÿѭӧc sӱ dөng ӣ cách thӵc hiӋn theo phѭѫng pháp Naïve Bayesian. 7.1.3 Thӫ tөc WeakLearner chӑn luұt yӃu: Thӫ tөc WeakLearner ÿѭӧc xây dӵng nhҵm tìm luұt yӃu ht nhѭ sau : chӑn luұt yӃu ht ӣ bѭӟc chҥy t sao cho Zt nhӓ nhҩt, cách chӑn Zt và at ÿã ÿѭӧc ÿӅ cұp ӣ các mөc 6.3.2.1 và 6.3.2.2 7.1.4 Phân loҥi email : Khi nhұn ÿѭӧc mӝt email x, chúng tôi sӁ tiӃn hành so khӟp các luұt tӯ kho ngӳ liӋu các luұt ÿѭӧc chӑn sau quá trình huҩn luyӋn , tӯÿó tính giá trӏ f(x), nӃu f(x) >0 (cùng dҩu vӟi +1 ) chúng tôi cho email ÿó là non-spam, ngѭӧc lҥi (cùng dҩu vӟi -1 ) chúng tôi cho email ÿó là spam. 7.2 Thӱ nghiӋm hiӋu quҧ phân loҥi : 7.2.1 Thӱ nghiӋm vӟi kho ngӳ liӋu pu: 7.2.1.1 Kӏch bҧn kiӇm thӱ: Vói mӛi phiên bҧn AdaBoost ÿã cài ÿһt, chúng tôi chӑn tұp luұt yӃu vӟi sӕ lѭӧng là 2500 luұt, nhӳng luұt ÿѭӧc xem là ӭng cӱ viên nӃu sӕ lҫn xuҩt hiӋn cӫa token lӟn hѫn hay bҵng 10 lҫn. NӃu sӕ luұt yӃu ban ÿҫu không ÿӫ 2500, chúng tôi sӁ lҩy tҩt cҧ sӕ sҹn có.Chúng tôi thӱ nghiӋm vӟi T lҫn lѭӧt là 5, 10, 50, 100, 200 và 500. Chúng tôi lҫn lѭӧt kiӇm thӱ vӟi các pu, vӟi mӛi pu, chúng tôi cho hӑc tӯ part 1-ÿӃn part 9.Ĉӕi vӟi viӋc kiӇm thӱ chúng tôi kiӇm thӱ trên kho ngӳ liӋu chѭa ÿѭӧc huҩn luyӋn là part 10 cӫa mӛi pu 7.2.1.2 KӃt quҧ kiӇm thӱ: Chúng tôi trình bày kӃt quҧ kiӇm thӱ vӟi T=500, vӅ chi tiӃt kӃt quҧ kiӇm thӱ, xem phҫn phө lөc 76
  77. v KӃt quҧ thӵc hiӋn kiӇm thӱ vӟi thuұt toán ADaBoost with real value predictions Ngӳ liӋu6ӕ email hӑc Sӕ email kiӇm thӱS->S S->NN->NN->SSR SP SpamNon-spamSpam Non-spam PU1 432 549 48 61 48 0 58 3100.00% 94.12% 432 549 432 0 549 0100.00%100.00% PU2 126 513 14 57 12 256 1 85.71% 92.31% 126 513 126 0 513 0100.00%100.00% PU3 1638 2079 182 231 176 6 216 15 96.70% 92.15% 1638 20791638 0 2079 0100.00%100.00% PUA 513 513 57 57 56 1 38 19 98.25% 74.67% 513 513 513 0 513 0100.00%100.00% %ҧng 7-1 KӃt quҧ thӱ nghiӋm phân loҥi email vӟi ngӳ liӋu sӕ PU bҵng thuұt toán AdaBoost with real -value predictions v KӃt quҧ thӵc hiӋn kiӇm thӱ vӟi thuұt toán ADaBoost with discrete predictions Ngӳ liӋu6ӕ email hӑc Sӕ email kiӇm thӱS->S S->NN->NN->SSR SP SpamNon-spamSpam Non-spam PU1 432 549 48 61 46 2 57 4 95.83% 92.00% 432 549 432 0 549 0100.00%100.00% PU2 126 513 14 57 13 1 57 0 92.86%100.00% 126 513 126 0 513 0100.00%100.00% PUA 513 513 57 57 53 4 45 12 92.98% 81.54% 513 513 513 513 513 0 513 0100.00%100.00% PU3 1638 2079 182 231 173 9 216 15 95.05% 92.02% 1638 20791624 14 2074 5 99.15% 99.69% %ҧng 7-2 KӃt quҧ thӱ nghiӋm phân loҥi email vӟi ngӳ liӋu sӕ PU bҵng thuұt toán AdaBoost with discrete predictions Nhұn xét : theo Schapire & Singer [14], hiӋu quҧ phân loҥi cӫa thuұt toán AdaBoost with real value predictions cao hѫn cӫa thuұt toán AdaBoost with discrete predictions, tuy nhiên ӣÿây ta thҩy ÿLӅu ÿó không rõ rӋt. HiӋu quҧ phân loҥi cӫa cҧ hai thuұt toán trên các kho ngӳ liӋu là khá cao. Vӟi thuұt toán AdaBoost, lӛi phân loҥi sai trên các kho ngӳ liӋu ÿã huҩn luyӋn sӁ ngày càng giҧm khi T ngày càng tăng, tѭѫng ӭng vói các chӍ sӕ 77
  78. spam recall và spam precision ngày càng tăng, dѭӟi ÿây là biӇu ÿӗ thӇ hiӋn ÿiӅu ÿó % 120.00% 100.00% 80.00% 60.00% 40.00% SR 20.00% SP T 0.00% 1 33 65 97 129 161 193 225 257 289 321 353 385 417 449 481 Hình 7-1 Ĉӗ thӏ biӇu diӉn sӵ biӃn thiên cӫa spam recall (SR) và spam precision (SP) theo T (thuұt tóan AdaBoost.MH with discrete predictions) % 120.00% 100.00% 80.00% 60.00% 40.00% SR 20.00% SP T 0.00% 1 31 61 91 121 151 181 211 241 271 301 331 361 391 421 451 481 Hình 7-2 Ĉӗ thӏ biӇu diӉn sӵ biӃn thiên cӫa spam recall (SR) và spam precision (SP) theo T (thuұt tóan AdaBoost MH with real value predictions ) 78
  79. 7.2.2 Thӱ nghiӋm vӟi kho ngӳ liӋu email chӳ: 7.2.2.1 Kӏch bҧn kiӇm thӱ: Chúng tôi thӱ nghiӋm hai thuұt toán AdaBoost ÿã cài ÿһt vӟi T ÿѭӧc chӑn lҫn lѭӧt là 5, 10, 50, 100, 200, và 500. 7.2.2.2 KӃt quҧ kiӇm thӱ: Ngӳ liӋu email văn bҧn trѫn, sӕ email kiӇm thӱ : Spam =98, non- spam=100 Ngӳ liӋu email html, sӕ email kiӇm thӱ :Spam =50, non-spam=50 v KӃt quҧ thӵc hiӋn kiӇm thӱ vӟi thuұt toán ADaBoost with real value predictions Ngӳ liӋu T=5 T=10 T=50 T=100 T=200 T=500 HTML SàS 48 48 49 49 49 49 SàN 2 2 1 1 1 1 NàN 49 49 49 49 49 49 NàS 1 1 1 1 1 1 SR 96.00% 96.00% 98.00% 98.00% 98.00% 98.00% SP 97.96% 97.96% 98.00% 98.00% 98.00% 98.00% TEXT SàS 84 93 98 98 98 98 SàN 14 5 0 0 0 0 NàN 98 97 98 99 99 99 NàS 2 3 2 1 1 1 SR 85.71% 94.90% 100.00% 100.00% 100.00% 100.00% SP 97.67% 96.88% 98.00% 98.99% 98.99% 98.99% %ҧng 7-3 kӃt quҧ thӱ nghiӋm phân loҥi email vӟi ngӳ liӋu email chӳ bҵng thuұt toán AdaBoost with real-value predictions v KӃt quҧ thӵc hiӋn kiӇm thӱ vӟi thuұt toán ADaBoost with discrete predictions Ngӳ liӋu T=5 T=10 T=50 T=100 T=200 T=500 HTML SàS 48 49 50 50 50 50 SàN 2 1 0 0 0 0 NàN 49 49 49 49 49 49 NàS 1 1 1 1 1 1 SR 96.00% 98.00% 100.00% 100.00% 100.00% 100.00% SP 97.96% 98.00% 98.04% 98.04% 98.04% 98.04% 79
  80. TEXT SàS 91 91 95 97 96 97 SàN 7 7 3 1 2 1 NàN 98 98 98 98 99 99 NàS 2 2 2 2 1 1 SR 92.86% 92.86% 96.94% 98.98% 97.96% 98.98% SP 97.85% 97.85% 97.94% 97.98% 98.97% 98.98% %ҧng 7-4 KӃt quҧ thӱ nghiӋm phân loҥi email vӟi ngӳ liӋu email chӳ bҵng thuұt toán AdaBoost with discrete predictions Nhұn xét : hiӋu quҧ phân loҥi trên ngӳ liӋu email là chӳ cӫa thuұt toán AdaBoost khá tӕt, so vӟi phѭѫng pháp phân loҥi Naïve Bayesian thì ADaBoost phân loҥi email html tӕt hѫn, hiӋu quҧ phân loҥi trên email là Yăn bҧn trѫn cNJng tѭѫng ÿѭѫng vӟi Naïve Bayesian. 7.3 Ѭu ± nhѭӧc ÿLӇm cӫa phѭѫng pháp phân loҥi AdaBoost: 7.3.1 Ѭu ÿLӇm : · Mӝt ѭu ÿiӇm cӫa AdaBoost giӕng vӟi phѭѫng pháp phân loҥi Naïve Bayes là nó cho phép hӑc cұp nhұt, nghƭa là khi mӝt email spam vѭӧt qua ÿѭӧc bӝ lӑc thì ngѭòi dung có thӇÿánh dҩu email ÿó là spam và huҩn luyӋn lҥi bӝ lӑc · HiӋu quҧ phân loҥi là khá cao · ViӋc lѭu trӳ tұp luұt ÿã qua huҩn luyӋn khá gӑn nhҽ, trong khi ÿó vӟi phѭѫng pháp phân loҥi Naïve Bayes thì dӳ liӋu sau khi hӑc là khá lӟn n. Vӟi phѭѫng pháp phân loҥi Naïve Bayesian, dӳ liӋu huҩn luyӋn sӁ phình to sau mӛi lҫn huҩn luyӋn cұp nhұt thêm, ÿiӅu này vӟi cách thӵc hiӋn theo phѭѫng pháp AdaBoost là không ÿáng kӇ. 7.3.2 KhuyӃt ÿLӇm : · CNJng giӕng nhѭ các phѭѫng pháp máy hӑc cӫa phѭѫng pháp phân loҥi dӵa trên thuұt toán AdaBoost chính là viӋc phҧi huҩn luyӋn cho nó, viӋc huҩn luyӋn hiӋu quҧ hay không còn phҧi phө thuӝc vào kho ngӳ liӋu huҩn luyӋn ban ÿҫu 80
  81. · KhuyӃt ÿLӇm thӭ hai là thӡi gian huҩn luyӋn, so vӟi Naïve Bayesian,ÿӇ huҩn luyӋn cùng mӝt kho ngӳ liӋu thì phѭѫng pháp AdaBoost cҫn thӡi gian lâu hѫn rҩt nhiӅu, theo chúng tôi nhұn thҩy thì sӵ chênh lӋch ҩy khá lӟn. 81
  82. Chѭѫng 8 : XÂY DӴNG CHѬѪNG TRÌNH MAIL CLIENT TIӂNG VIӊT HӚ TRӦ PHÂN LOҤI EMAIL 82
  83. 8.1 Chӭc năng: Chúng tôi xây dӵng phҫn mӅm Mail Client vӟi các chӭc năng chính nhѭ sau: Ø Chӭc năng gӣi nhұn email Ø Luѭ trӳ email tѭѫng ӭng vӟi tӯng mөc Ø Soҥn email Ø Xây dӵng sәÿӏa chӍ Ø Lӑc email spam Ø Quҧn lý email nhѭ sao chép, chuyӃn, xóa email Ø Và mӝt sӕ công cө hӛ trӧ khác khác : ĈӇ hӛ trӧ cho viӋc kiӇm thӱ Mail Client chúng tôi xây dӵng chѭѫng trình Flood Mail gӣi mail hàng loҥt ÿӃn mӝt ÿӏa chӍ nhұn nào ÿó. 8.2 Xây dӵng bӝ lӑc email spam : Chúng tôi sӱ dөng bӝ lӑc dӵa trên thuұt toán hӑc Naïve Bayes và AdaBoost, vӟi Naivê Bayes chúng tôi sӱ dөng cách cài ÿһt theo cách tính xác suҩt spam cho mӛi token dӵa trên sӕ lҫn xuҩt hiӋn trong tұp huҩn luyӋn ban ÿҫu, chӑn sӕ token ÿӇ duyӋt mӝt email là 15, chӑn l=9 do ÿó ngѭõng phân loҥi email spam là t=0.9. Vӟi bӝ lӑc dӵa trên AdaBoost chúng tôi chӑn cách cài ÿһt theo AdaBoost.MH with real value predictions. Chúng tôi xây dӵng thành các component tích hӧp vào chѭѫng trình dѭӟi dҥng các dll. Chúng tôi cNJng xây dӵng chӭc năng lӑc email theo phѭѫng pháp BlackList và luұ do ngѭӡi dùng tӵÿӏnh nghƭa, phѭѫng pháp này sӁ hӛ trӧ cho bӝ lӑc email ngăn chһn email spam. 83
  84. 8.3 Tә chӭc dӳ liӋu cho chѭѫng trình : Dӳ liӋu chѭѫng trình :gӗm nӝi dung các email, các luұt do ngѭӡi dùng thiӃt lұp. /ѭu trӳ nӝi dung các email gӣi và nhұn : ÿѭӧc lѭu dѭӟi dҥng các tұp tin văn bҧn, vӟi mӛi thѭ mөc tѭѫng ӭng nhѭ hӝp thѭÿӃn, hӝp thѭÿi, sӁ có mӝt tұp tin lѭu nӝi dung các email trong các thu mөc này, lѭu trӳ dѭӟi dҥng xml, cҩu trúc tұp tin nhѭ sau : Các thông tin liên quan ÿӃn mӝt email mà chúng tôi lѭu trӳ gӗm có : thuӝc tính ÿӏnh danh email (trѭӡng MessageID ), tiêu ÿӅ email (Subject ), ÿӏa chӍ ngѭӡi gӣi ( trѭӡng from ),ÿӏa chӍÿӗng gӣi ( trѭӡng Cc), ÿӏa chӍÿӗng gӣi ҭn ( trѭӡng Bcc ), nӝi dung email ( trѭӡng body),có ÿính kèm tұp tin ( trѭӡng Attach ), mӭc ÿӝ quan trӑng ( Prority), ngày tháng ( Date) Các luұt do ngѭӡi dùng thiӃt lұp cNJng ÿѭӧc lѭu trӳ duӟi dҥng xml 84
  85. · ѬѭÿiӇm cӫa cách tә chӭc dӳ liӋu xml: Xml là cách lѭu trӳ dӳ liӋu ÿѭӧc tә chӭc vӟi cҩu trúc cây, xml ÿѭӧc các ngôn ngӳ lұp trình hiӋn ÿҥi hӛ trӧ khá tӕt, nhѭ vұy viӋc thao tác vӟi dӳ liӋu chѭѫng trình rҩt thuұn lӧi. Xml là chuҭn giao tiӃp giӳa các hӋ thӕng vӟi các cách lѭu trӳ dӳ liӋu khác nhau, sӱ dөng xml tiӋn lӧi cho viӋc giao tiӃp vӟi hӋ thӕng bên ngoài nhѭ chuyӇn ÿәi hay thu nhұn thông tin. · KhuyӃt ÿLӇm :Dӳ liӋu ÿѭӧc lѭu dѭӟi dҥng văn bҧn, không bҧo mұt 8.4 Giao diӋn ngѭӡi dùng : 8.4.1 Sѫÿӗ màn hình : Hình 8-1:Sѫÿӗ màn hình cӫa chѭѫng trình 8.4.2 Mӝt sӕ màn hình chính : 85
  86. 5 4 1 2 3 Hình 8-2 Màn hình chính cӫa chѭѫng trình Mail Client Bҧng chú thích cho màn hình chính: DiӉn giҧi 1 /ѭӟi hiӇn thӏ danh sách các email gӱi cho ngѭӡi dùng. Các sӵ kiӋn ÿi kèm: § Nh̭p ÿ˯n chu͡t trên dòng: Ĉӑc email nhanh. § Nh̭p ÿôi chuôt trên dòng: Ĉӑc email chi tiӃt. § Ĉánh ḓu ch͕n trên dòng: Ĉánh dҩu email cҫn xóa. § : Thông báo thѭ có ÿính kèm. § : Thông báo email chѭa ÿӑc. 2 Khung hiӇn thӏ cây thѭ mөc lѭu trӳ các hӝp thѭ cӫa ngѭӡi dùng: 86
  87. § H͡p th˱ nh̵n: Lѭu thѭ gӱi ÿӃn cho ngѭӡi dùng. § H͡p th˱ ch˱a g͵i: Lѭu thѭÿã soҥn nhѭng chѭa gӱi § H͡p th˱ÿã g͵i: Lѭu thѭÿã ÿѭӧc gӱi ÿi. § H͡p th˱ spam: Lѭu thѭ spam (tӵÿӝng) § H͡p th˱ xóa: Lѭu thѭ bӏ xóa bӣi ngѭӡi dùng. 3 Khung hiӇn thӏ nhanh nӝi dung email khi ngѭӡi dùng click chӑn mӝt email trên lѭӟi hiӇn thӏ danh sách email. 4 Thanh công cө. § Nhұn thѭ: Nhұn thѭ tӯ email server. § Soҥn thѭ: Soҥn thѭ mӟi. § Sәÿӏa chӍ: Tra cӭu sәÿӏa chӍ liên lҥc. § Trҧ lӡi thѭ: Soҥn thѭ trҧ lӡi. § Xóa thѭ: Xóa các thѭÿѭӧc ÿánh dҩu chӑn. § Xem: HiӇn thӏ danh sách email trên lѭӟi theo tiêu chí xem. § Tìm kiӃm: Tìm kiӃm email theo tiêu ÿӅ /nӝi dung /ngѭӡi gӣi. 5 Thӵcÿѫn chính. Tұp tin: § Tҥo mӟi thѭ: Soҥn thѭ mӟi. § Tҥo mӟi thѭ mөc: Tҥo thѭ mөc mӟi (hӝp thѭ mӟi) trên cây thѭ mөc. § Ĉәi tên thѭ mөc: Ĉәi tên thѭ mөc (hӝp thѭ) trên cây thѭ mөc. § Xóa thѭ mөc: Xóa thѭ mөc (hӝp thѭ) trên cây thѭ mөc (Xóa luôn nӝi dung bên trong tKѭ mөc). § Mӣ thѭÿã lѭu: Mӣ thѭÿã lѭu dҥng tұp tin (.eml) HiӋu chӍnh: § Chӑn tҩt cҧ: Chӑn tҩt cҧ thѭ trên lѭӟi hiӇn thӏ thѭ gӱi cho 87
  88. ngѭӡi dùng. § Tìm kiӃm: Tìm kiӃm email theo tiêu ÿӅ /nӝi dung /ngѭӡi gӣi. § ChuyӇn ÿӃn thѭ mөc: ChuyӇn thѭÿӃn thѭ mөc ÿѭӧc chӑn § Sao chép ÿӃn thѭ mөc: Tҥo bҧn sao thѭÿӃn thѭ mөc ÿѭӧc chӑn. § Xóa thѭ: Xoá thѭÿѭӧc chӑn. § Xóa thѭ trong thѭ mөc xóa: Xóa tҩt cҧ thѭ có trong hӝp thѭ xoá. Công cө: § Sәÿӏa chӍ: Tra cӭu danh sách ÿӏa chӍ liên lҥc. § Thêm liên lҥc: Thêm liên lҥc mӟi(tên liên lҥc, ÿӏa chӍ email ) § Qui ÿӏnh (Rules): Qui ÿӏnh lӑc thѭ tӟi vào thѭ mөc ÿӏnh trѭӟc (hoһc xóa). Thѭ: § Soҥn thѭ mӟi: Soҥn thѭÿӇ gӱi ÿi. § Trҧ lӡi thѭ: Trҧ lӡi thѭÿӃn ngѭӡi gӱi thѭ tӟi. § Thêm qui ÿӏnh: Thêm qui ÿӏnh nhұn thѭ gӱi tӟi. § Chһn ngѭӡi gӱi: Không nhұn thѭ cӫa ngѭӡi gӱi có trong danh sách. Trӧ giúp: § Giӟi thiӋu: Ngѭӡi thӵc hiӋn. § +ѭѫng dүn: Hѭӟng dүn sӱ dөng chѭѫng trình. 88
  89. 4 3 1 2 Hình 8-3 Màn hình "Ĉӑc email" v Bҧng chú thích cho màn hình “Ĉӑc email”: Mã DiӉn giҧi 1 HiӇn thӏ thông tin vӅ email. 2 Khung hiӇn thӏ nӝi dung email. 3 Thanh công cө. § Nhұn thѭ: Nhұn thѭ tӯ email server. § Soҥn thѭ: Soҥn thѭ mӟi. § Sәÿӏa chӍ: Tra cӭu sәÿӏa chӍ liên lҥc. § Trҧ lӡi thѭ: Soҥn thѭ trҧ lӡi. § Xóa thѭ: Xóa các thѭÿѭӧc ÿánh dҩu chӑn. § /ѭu thѭ: Lѭu thѭ xuӕng ә cӭng dҥng tұp tin(.eml). 89
  90. § Thѭ trѭӟc: Ĉӑc thѭ liӅn trѭӟc. § Thѭ kӃĈӑc thѭ liӅn sau. § Spam: Ĉánh dҩu spam vѭӧt qua bӝ lӑc (Yêu cҫu hӑc spam). 4 Thӵc ÿѫn chính. Tұp tin: § Tҥo mӟi thѭ: § Tҥo mӟi liên lҥc: § Mӣ thѭÿã lѭu: § /ѭu thѭ: HiӋu chӍnh: § Tìm kiӃm thѭ: § ChuyӇn ÿӃn thѭ mөc: § Sao chép ÿӃn thѭ mөc: § Xóa thѭ: Xóa thѭÿѭӧc chӑn. Công cө: § Sәÿӏa chӍ: § Thêm liên lҥc: § Qui ÿӏnh (Rules): Thѭ: § Soҥn thѭ mӟi § Trҧ lӡi thѭ: § Thѭ trѭӟc: § Thѭ kӃ: § /ѭu tұp tin ÿính kèm: Lѭu tұp tin ÿính kèm trong thѭ xuӕng ÿƭa cӭng. § Xóa tұp tin ÿính kèm: Xóa tұp tin ÿính kèm ÿѭӧc chӑn trong danh sách ÿính kèm. 90
  91. 4 3 1 5 2 Hình 8-4 Màn hình gӣi email v Bҧng chú giҧi cho màn hình “Gӣi email”: Mã DiӉn giҧi 1 Khung nhұp thông tin vӅ email: gӱi tӯÿâu, gӱi ÿӃn ÿâu, gӱi cho nhiӅu ngѭӡi (CC), gӱi nhiӅu ngѭӡi nhѭng ҭn ÿӏa chӍ gӱi (BCC). Chӭc năng ÿi kèm: § Chӑn ÿӏa chӍ gӱi ÿӃn tӯ danh sách. § Chӑn danh sách ÿӏa chӍ gӱi cùng lúc. § Chӑn danh sách ÿӏa chӍ gӱi cùng lúc (ҭn ÿӏa chӍ ngѭӡi gӱi). 2 Khung soҥn thҧo email. 91
  92. 3 Thanh công cө. § Gӱi thѭ: Thӵc hiӋn gӱi thѭÿӃn ngѭӡi nhұn. § Sәÿӏa chӍ: Tra cӭu sәÿӏa chӍ liên lҥc. § /ѭu thѭ: Lѭu thѭ xuӕng ә cӭng dҥng tұp tin(.eml). § Ĉính kèm: Mӣ và thêm tұp tin ÿính kèm. 4 Thӵc ÿѫn chính. Tұp tin: § Tҥo thѭ mӟi: § Mӣ thѭÿã lѭu: § /ѭu thѭ: § /ѭu mӟi thѭ: Lѭu lҥi thѭ xuӕng ÿƭa cӭng vӟi tên mӟi. HiӋu chӍnh: § Chӑn tҩt cҧ: Chӑn tҩt cҧ nӝi dung văn bҧn (text). § Tìm kiӃm thѭ: § ChuyӇn ÿӃn thѭ mөc: § Sao chép ÿӃn thѭ mөc: § KiӇu chӳ: Chӑn kiӇu chӳ cho văn bҧn soҥn. Xem: § HiӇn thӏ thanh công cө: Chӑn hiӇn thӏ hay ҭn thanh công cө. Công cө: § Sәÿӏa chӍ: § Thêm liên lҥc: Thѭ: § Soҥn thѭ mӟi: § /ѭu thѭ: § Gӣi thѭ: Gӱi thѭÿӃn ngѭӡi nhұn. § Thêm tұp tin ÿính kèm: Thêm tұp tin ÿinh kèm vào trong thѭ gӱi ÿi. 92
  93. § Xóa tұp tin ÿính kèm: Trӧ giúp: § Giӟi thiӋu: § +ѭѫng dүn: 5 Danh sách tұp tin ÿính kèm sӁ gӱi. 93
  94. Chѭѫng 9 : TӘNG KӂT VÀ HѬӞNG PHÁT TRIӆN 94
  95. 9.1 Các viӋc ÿã thӵc hiӋn ÿѭӧc : Trong khoá luұn này chúng tôi ÿã trình bày các hѭӟng nghiên cӭu, tiӃp cұn trong phân loҥi email và chӕng spam. Chúng tôi cNJng ÿã tұp trung ÿi sâu vào Kѭѭóng tiӃp cұn phân loҥi email dѭҥ trên nӝi dung.Ӣÿây chúng tôi trình bày hai phѭѫng pháp phân loҥi email khá mӟi và hiӋu quҧ là phân loҥi email dӵa trên thuұt toán huҩn luyӋn Naïve Bayes và dӵa trên thuұt toán AdaBoost.KӃt quҧ thӱ nghiӋm vӟi dӳ liӋu sӕ và dӳ liӋu văn bҧn trѫn là khá hiӋu quҧ, tuy nhiên ÿӕi vӟi email html thì vүn chѭa ÿѭӧc nhѭ mong muӕn, ÿLӅu này là do kho ngӳ liӋu email html chѭa ÿӫ lӟn, mһt khác email html có nhӳng ÿһc ÿLӇm cӫa riêng nó mà chúng tôi chѭa khҳc phөc ÿѭӧc nhѭ nӝi dung chӫ yӃu là các hình ҧnh. Chúng tôi cNJng ÿã xây dӵng thӱ nghiӋm phҫn mӅm Mail Client hӛ trӧ lӑc email. Bӝ lӑc email ÿѭӧc tính hӧp vào chѭѫng trình ÿѭӧc xây dӵng theo nhӳng Kѭӟng ÿã tiӃp cұn.Chѭѫng trình hӛ trӧ mӝt sӕ chӭc năng chính cӫa mӝt phҫn mӅm Mail Client thông thѭӡng nhѭ gӟi, nhұn email, tìm kiӃm, quҧn lý email 9.2 Hѭӟng cҧi tiӃn, mӣ rӝng : Vì thӡi gian có hҥn, do ÿó vүn còn nhӳng ÿLӅu chúng tôi muӕn thӵc hiӋn nhѭng chѭa thӇ thӵc hiӋn ÿѭӧc.Dӵa trên nhӳng kӃt quҧÿã ÿҥtÿѭӧc, chúng tôi ÿӅ xuҩt nhӳng hѭӟng cҧi tiӃn, mӣ rӝng cho chѭѫng trình 9.2.1 VӅ phân loҥi và lӑc email spam: a) VӅ cách rút trích các token : Có thӇ cҧi tiӃn cách lҩy token, thay vì cách chӑn token ÿѫn, có thӇ chӑn token nhѭ là mӝt ngӳ ( gӗm nhiӅu tӯ) – token gӗm hai hay nhiӅu token ÿѫn tҥo thành,ÿiӅu này giúp viӋc nhұn biӃt chính xác hѫn. 95
  96. b) Mӣ rӝng vӟi email là tiӃng ViӋt thay vì chӍ thӵc hiӋn vӟi email tiӃng Anh , tuy nhiên vҩn ÿӅ phân loҥi email tiӃng ViӋt có mӝt sӕ ÿLӇm khó khăn là không có sҹn mӝt kho ngӳ liӋu email tiӃng ViӋt phөc vө cho viӋc hӑc Thêm nӳa tiӃng ViӋt là mӝt tѭѫng ÿӕi ngôn ngӳ phӭc tҥp và ÿa dҥng, do ÿó viӋc phân loҥi email tiӃng ViӋt lҥi liên quan ÿӃn vҩn ÿӅ tách tӯ (tách token ), ÿây là bài toán phӭc tҥp. c) Có thӇ xây dӵng bӝ lӑc thành các phҫn mӅm riêng rӁ và tích hӧp (plug in ) vào các phҫn mӅm email Client hiӋn có nhѭ Outlook Express, Mozzila ThunderBird. d) Áp dөng bӝ lӑc email tҥi mӭc Server, ngăn chһn email spam ngay tҥi các Server email. e) Có thӇ sӱ dөng kӃt hӧp hai bӝ lӑc theo hai phѭѫng pháp Naïve Bayesian và AdaBoost, khi ÿó viӋc xây dӵng tұp luұt yӃu dùng ÿӇ chӑn lӑc ban ÿҫu có thӇ dӵa vào nhӳng token có xác suҩt spam cao và xác suҩt non- spam thҩp tӯ dӳ liӋu huҩn luyӋn cӫa Naïve Bayesian. 9.2.2 VӅ chѭѫng trình Mail Client: Chѭѫng trình hiӋn chӍ mӟi ÿѭӧc xây dӵng vӟi mӝt vài chӭc năng chính, vүn còn nhiӅu hҥn chӃ. Vӟi mong muӕn xây dӵng hoàn thiӋn mӝt phҫn mӅm Mail Client hӛ trӧ tiӃng ViӋt thì bên cҥnh viӋc hoàn thiӋn nhӳng cái ÿã có , chúng tôi dӵÿӏnh xây dӵng thêm mӝt sӕ chӭc năng: Ø Hӛ trӧ bҧo mұt : dӳ liӋu cӫa chѭѫng trình ÿѭӧc lѭu dҥng tұp tin Yăn bҧn,ÿiӅu ÿó không bҧo mұt. Có thӇ cài tiӃn ÿLӅu này bҵng cách mã hoá tұp tin, lѭu dѭӟi dҥng nhӏ phân Ø Hӛ trӧ nhiӅu tài khoҧn (Account) trên MailClient, hiӋn tҥi chѭѫng trình chӍ hӛ trӧ mӝt tài khoҧn . 96