Hằng ngày mỗi người chúng ta đều có thể nhận được một lượng lớn email, khi email được gửi đến hộp thư, nếu để ngườidùng phải đọc tất cả các email thì sẽ tốn rất nhiều thời gian vì trong
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
TRONG VIỆC TÌM HIỂU CÁC PHƯƠNG PHÁP
PHÂN LOẠI VĂN BẢN – EMAIL
Giảng viên hướng dẫn: GS-TSKH Hoàng Kiếm
Sinh viên thực hiện: Trần Thị Diễm Trang – CH0901057
Lớp: Cao học CNTTQM – Khóa 4
Trang 2Tp Hồ Chí Minh – Tháng 03/2014
Trang 3ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
TRONG VIỆC TÌM HIỂU CÁC PHƯƠNG PHÁP
PHÂN LOẠI VĂN BẢN – EMAIL
Giảng viên hướng dẫn: GS-TSKH Hoàng Kiếm
Sinh viên thực hiện: Trần Thị Diễm Trang – CH0901057
Lớp: Cao học CNTTQM – Khóa 4
Trang 4Tp Hồ Chí Minh – Tháng 03/2012
Trang 5MỤC LỤC
LỜI CẢM ƠN 4
LỜI NĨI ĐẦU 5
CHƯƠNG I: TỔNG QUAN 7
I Yêu cầu đặt ra 7
II Các cách thức con người xử lý với spam 7
III Các phương pháp tiếp cận phân loại văn bản - email 8
1 Ý tưởng của một số phương pháp tiếp cận 8
2 Phương pháp tiếp cận Máy học (Machine Learning) 9
CHƯƠNG II: TÌM HIỂU MỘT SỐ THUẬT TỐN PHÂN LOẠI VĂN BẢN – EMAIL 11
I Thuật tốn cây quyết định (Decision Tree) 11
1 Định nghĩa 11
2 Thuật tốn 11
3 Ưu – Nhược điểm của phương pháp cây quyết định: 14
II Thuật tốn K-NN (K-Nearest Neighbors algorithm) 15
1 Giới thiệu 15
2 Thuật tốn K-NN 15
3 Ưu – Nhược điểm của phương pháp K-NN: 16
CHƯƠNG III: THUẬT TỐN NẠVE BAYES VÀ ADABOOST - ỨNG DỤNG TRONG PHÂN LOẠI EMAIL 17
I Thuật tốn Nạve Bayes 17
1 Giới thiệu 17
2 Phân loại email bằng phương pháp Nạve Bayes 18
3 Ưu – nhược điểm của phương pháp phân loại Nạve Bayes: 20
Trang 62 Thuật toán AdaBoost 21
3 AdaBoost trong phân loại văn bản nhiều lớp 22
4 Ứng dụng AdaBoost trong phân loại email 23
5 Ưu – nhược điểm của phương pháp phân loại AdaBoost 28
CHÖÔNG IV: ĐÁNH GIÁ - KẾT LUẬN 29
TÀI LIỆU THAM KHẢO 30
* * *
Trang 7LỜI CẢM ƠN
Công nghệ tri thức ngày nay đóng vai trò hết sức quan trọng trong ngành côngnghệ máy tính Chính nhờ nó mà máy tính có thể “hiểu”, giải quyết nhiều bài toánphức tạp trong nhiều ngành khoa học cũng như các nhu cầu trong đời sống hằng ngày
Qua Seminar chuyên đề “Công nghệ tri thức”, tôi cũng như các bạn cùng lớp đãđúc kết được rất nhiều kiến thức bổ ích cho bản thân Tuy thời gian nghiên cứu chochuyên đề không nhiều nhưng những thông tin mới mẻ cũng như xu hướng phát triểncủa tri thức hiện nay mà Thầy Hoàng Kiếm cung cấp trong môn học đã giúp chúng tôihình thành những cái nhìn sâu hơn, mới hơn về công nghệ tri thức cũng như các ứngdụng của chúng vào trong thực tế
Trong thời gian học tập cũng như làm báo cáo seminar này, bản thân tôi và cácbạn cùng lớp đã nhận được sự chỉ dạy, hướng dẫn rất nhiệt tình và khoa học của GS-TSKH Hoàng Kiếm, Thầy đã hỗ trợ bài giảng, tài liệu, cũng như luôn theo dõi, hướngdẫn và động viên chúng tôi kịp lúc Chúng em rất cảm ơn và xin kính chúc Thầy nhiềusức khỏe, thành công
Cũng xin gởi lời cảm ơn chân thành đến quý Thầy Cô của Phòng Sau ĐH,cũng như tất cả quý Thầy Cô của trường Đại Học Công Nghệ Thông Tin đã tận tìnhhướng dẫn, giảng dạy và truyền đạt kiến thức cho chúng em trong suốt quá trình học.Xin cám ơn các bạn cùng lớp Cao học CNTTQM khóa 4 đã giúp đỡ tôi trong thời gianhọc tập, nghiên cứu, trao đổi bài học trên diễn dàn
Cuối cùng, xin tri ân gia đình, nơi có những người thân yêu luôn ở bên cạnhchia sẻ, giúp đỡ và động viên tôi về tinh thần cũng như vật chất trong quãng thời gianhơn hai năm học tập
Trân trọng
Trần Thị Diễm Trang
Trang 8LỜI NÓI ĐẦU
Phân loại văn bản là một vấn đề quan trọng trong lĩnh vực xử lý ngôn ngữ,nhiệm vụ của nó là gán các tài liệu văn bản vào nhóm các chủ đề cho trước Đây làmột bài toán rất thường gặp trong thực tế, một ví dụ điển hình cho việc phân loại vănbản thường thấy là việc phân loại email, và đây là giới hạn cho phạm vi nghiên cứucủa đề tài này
Thời đại ngày nay là thời đại bùng nổ thông tin, việc sử dụng Internet trở nênquen thuộc và không thể thiếu trong cuộc sống mỗi người, mỗi quốc gia Các dịch vụtrên Internet đã trở nên rất phổ biến, trong đó có email, là dịch vụ nhận/gửi thư điện tử
có chi phí rất thấp, nhanh chóng và hiệu quả nhất Hằng ngày mỗi người chúng ta đều
có thể nhận được một lượng lớn email, khi email được gửi đến hộp thư, nếu để ngườidùng phải đọc tất cả các email thì sẽ tốn rất nhiều thời gian vì trong đó có những emailcần thiết, hữu ích; nhưng cũng có những email vô bổ, chứa nội dung mà ta không quantâm, không muốn nhận; ta gọi các email đó là email spam Ngược lại, những emailkhông phải spam gọi là non-spam – email hợp lệ được người dùng chấp nhận
Spam chính là những email được phát tán rộng rãi không theo bất cứ một yêucầu nào của người nhận, với số lượng lớn, nhiều nhất là những email quảng cáo, đínhkèm virus, … Spam đã và đang gây tác hại đến người sử dụng dịch vụ email và tốc độđường truyền Internet, gây thiệt hại rất lớn về kinh tế Với người sử dụng email, spamgây cho họ cảm giác bực bội và phải mất thời gian và công sức để xóa chúng, đôi khi
bị xóa nhầm và do đó họ còn có thể mất đi những email quan trọng khác Tốc độđường truyền của Internet cũng bị spam làm cho chậm lại vì số lượng spam đượcchuyển đi là cực lớn
Cho dù được nhận diện là “kẻ thù cộng đồng” (public enemy), nhưng spam đã
và đang mang lại lợi nhuận cho một số nhà đầu tư Trong số 100.000 email spam pháttán, chỉ cần một email nào có phản hồi là đã có thể bù đắp chi phí đầu tư
Trang 9Trong thời gian vài năm trở lại đây chúng ta đã chứng kiến sự bùng nổ của sốngười sử dụng Internet Và cũng từ đây spam đã phát triển một cách nhanh chĩng, do
đĩ những kỹ thuật ngăn chặn spam phải ngày một nâng cấp và cải tiến hơn và cần cĩmột hệ thống phân loại hiệu quả đâu là email spam và đâu là email non-spam
Để ngăn chặn spam, nhiều nhà khoa học, các tổ chứ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 văn bản nĩi chung và email nĩi riêng.Tuy nhiên, các spammer – những người tạo và phát tán spam – cũng tìm mọi cáchvượ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 spamvẫn đang cịn 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 Để giải bài tốnnày đã cĩ rất nhiều phương pháp được đưa ra như: Nạve Bayes, K-NN (K-Nearest-Neighbor), Cây quyết định (Decision Tree), Mạng Neuron nhân tạo (Artificial NeuralNetwork) và SVM (Support Vector Machine), AdaBoost, … Mỗi phương pháp đềucho kết quả khá tốt, tuy nhiên để cĩ được sự so sánh đầy đủ, ở các phần sau chúng ta
sẽ đi vào tìm hiểu từng phương pháp
Xuất phát từ thực trạng trên, tơi chọn đề tài báo cáo seminar chuyên đề Cơngnghệ tri thức là “Ứng dụng cơng nghệ tri thức trong việc tìm hiểu các phương phápphân loại văn bản – email”
Đề tài thực hiện gồm các chương:
Chương I: Tổng quan
Chương II: Tìm hiểu một số thuật tốn phân loại văn bản - email
Chương III: Thuật tốn Nạve Bayes và AdaBoosting –
Ứng dụng trong phân loại emailChương IV: Đánh giá – Kết luận
* * *
Trang 10CHÖÔNG I: TỔNG QUAN
I Yêu cầu đặt ra
Việc phân loại văn bản (cụ thể giới hạn trong đề tài này là email) và ngăn chặnemail spam là phân biệt được email đó là spam hay non-sam, từ đó sẽ có biện phápngăn chặn được email spam Hiệu quả việc phân loại spam phải khả quan, tuy nhiêncần tránh việc cho rằng email non-spam là email spam vì có thể gây hậu quả nghiêmtrọng hơn là khả năng lọc spam thấp Bởi vì cùng với việc tăng khả năng, hiệu quảphân loại spam thì khả năng nhận nhầm email non-spam là email spam cũng tỉ lệ theo
Do đó yêu cầu đặt ra đối với một hệ thống phân loại spam là phải nhận ra được emailspam càng nhiều càng tốt và giảm thiểu lỗi nhận sai email non-spam là spam
II Các cách thức con người xử lý với spam
Khi ta nhận được một email mới gửi đến, khi đó ta dựa vào một số đặc điểmhay thuộc tính nào đó của email để tăng khả năng phân loại chính xác email đó Cácđặc điểm của một email như: tiêu đề, nội dung, có tập tin đính kèm hay không… Càngnhiều những thông tin như vậy xác suất phân loại đúng càng lớn, tất nhiên còn phụthuộc vào kích thước của tập mẫu huấn luyện
Hiện nay đã có nhiều công ty, tổ chức, cá nhân phát triển hệ thống với nhiềucách thức khác nhau để giải quyết vấn nạn spam, như:
- 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; các email đến từ các tên miền này hoàn toàn bị khóa(block out)
- Căn cứ vào header của email (như nơi gửi (from), chủ đề (subject), …) vàloại bỏ những email có địa chỉ xuất phát từ spammer
- Dựa vào nội dung của email với những dấu vết cho thấy sự tồn tại của email(như email có quá nhiều dấu chấm than, số chữ cái được viết hoa nhiều một cách bấtbình thường, …)
Tuy nhiên để đối phó với các hệ thống lọc, các spammer sẽ ngày càng tinh vi,các kỹ thuật cải tiến spam ngày càng được đổi mới, và chính những cải tiến này ngàycàng thôi thúc các spammer trở nên tinh vi và khó lường hơn… Kết quả là hiện nay
Trang 11các email spam gần giống với email thông thường Tuy nhiên email spam có một đặcđiểm không bao giờ thay đổi, đó là bản chất nội dung của nó Những email spam luôn
có nội dung là quảng cáo sản phẩm hay dịch vụ nào đó Cho nên đây chính là cơ sởcho phương pháp lọc spam dựa trên nội dung (content based filterng) Theo đó hệthống lọc cố gắng phát hiện ra các ngôn ngữ dùng để quảng cáo thay vì chú ý đến cácchỉ số thống kê của email
III Các phương pháp tiếp cận phân loại văn bản - email
1 Ý tưởng của một số phương pháp tiếp cận
Có rất nhiều phương pháp tiếp cận phân loại văn bản - email đã được nghiêncứu như:
- Complaining to Spammers’ ISPs: Tìm cách tăng chi phí gửi spam của cácspammer 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 (ISP)
- Mail Blacklists/Whitelists: Một danh sách đen các địa chỉ email hay cácmáy chủ email (mail server) chuyên dùng của các spammer sẽ được thiếtlậ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
- Mail volume: Bộ lọc 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 Nếu sốlượ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
- Signature/Checksum Schemes: Đây là một trong những phương pháp phânloạ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 những email cósẵn trên Internet Email sẽ được xem là spam nếu giá trị
“Signature/checksum” của nó giống với bất kỳ giá trị nào trong cơ sở dữliệu
Trang 12- Genetic Algorithms: Bộ lọc dựa trên thuật tốn di truyền sử dụng các bộnhận dạng đặc trưng để ghi điểm cho mỗi email để phân biệt email cĩ làspam hay khơng.
- Rule-Based (Heuristic): 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 của email khơng đúng với thựctế
- Challenge-Response: Khi bạn nhận được một email từ người mà chưa hềgửi cho bạn trước tới giờ thì hệ thống lọc Challenge-Response gửi ngượclại một email yêu cầu người đĩ phải đến một trang web và điền đầy đủthơng tin vào form trước khi email chuyển cho người dùng
- Machine Learning (Máy học): Áp dụng các phương pháp máy học trongcác bài tốn phân loại, đặc biệt là phân loại văn bản vào bài tốn phân loạiemail Các thuật tốn máy học như: Nạve Bayes, Decision Tree (Câyquyết định), Maximun Entropy Modeling (Mơ hình xác xuất Entropy tốiđại), KNN (K-Nearest-Neighbor), Suppor Vector Machine (Máy vectơ hỗtrợ), AdaBoost, … đã được sử dụng trong lĩnh vực phân loại văn bản, nhậndạng, … với hiệu quả cao Ý tưởng là tìm cách xây dựng một bộ phân loạinhằm phân loại cho một mẫu mới bằng cách huấn luyện cho những mẫu
đã cĩ sẵn
Các phương pháp tiếp cận đã nghiên cứu trong bài tốn phân loại như: dựatrên lý thuyết đồ thị, cách tiếp cận sử dụng lý thuyết tập thơ, cách tiếp cận thống kê…Tuy nhiên, tất cả các phương pháp trên đều dựa vào các phương pháp chung là máyhọc, đĩ là: học cĩ giám sát, học khơng giám sát và học tăng cường
2 Phương pháp tiếp cận Máy học (Machine Learning)
Đây là phương pháp cĩ hiệu quả cao, đồng thời cũng rất khĩ bị các spammervượt qua Phương pháp này cĩ những ưu điểm sau:
- Hiệu quả trong lĩnh vực phân loại văn bản, nhận dạng đã được kiểm chứng
là khá cao
- Thích hợp cho từng người dùng
Trang 13- Cĩ khả năng tự học để phân loại đúng.
- Hướng tiếp cận cịn khá mới
Trong chương tiếp theo sau chúng ta sẽ tìm hiểu một số thuật tốn tiếp cậnMachine Learning để thấy được tính chất, các ưu-nhược điểm của từng phương pháp
Từ đĩ ta cĩ cơ sở để tìm hiểu sâu hơn, chi tiết hơn vào hai thuật tốn phổ biến là Nạve
Bayes và AdaBoost.
* * *
Trang 14CHÖÔNG II: TÌM HIỂU MỘT SỐ THUẬT TOÁN
PHÂN LOẠI VĂN BẢN – EMAIL
IV Thuật toán cây quyết định (Decision Tree)
1 Định nghĩa
Một cây quyết định là một cấu trúc cây, trong đó mỗi node trong biểu thị chomột phép phân nhánh tương ứng cho một thuộc tính, mỗi nhánh biểu thị cho một kếtquả của một phép thử, các node lá biểu thị cho lớp hoặc các phân bố lớp Node trêncùng trên một cây được gọi là node gốc Để phân lớp một mẫu chưa biết, những giá trịthuộc tính của mẫu đó được thử ngược lại trên cây quyết định Một đường dẫn từ gốcđến một node lá là cơ sở cho việc dự đoán lớp của một mẫu Cây quyết định có thể dễdàng chuyển đổi sang một tập các luật phân lớp
3 Thuật toán
Cơ sở toán học của cây quyếy định là thuật toán tham lam (greedy algorithm),thuật toán này đã xây dựng cây quyết định đệ qui từ trên xuống dưới, theo phươngpháp chia để trị Thuật toán phát sinh cây quyết định dựa vào dữ liệu học như sau:
Dữ liệu vào: Tập dữ liệu D, tập danh sách thuộc tính, tập nhãn lớp
Dữ liệu ra: Mô hình cây quyết định
Thuật toán: Tạocây(Tập dữ liệu E, tập danh sách thuộc tính F, tập nhãn lớp)
8 Đặt V = {v| v thoả điều kiện là phần phân chia xuất phát từ Nútgốc}
9 Lặp qua từng tập phân chia v V
10 Đặt Ev = {e | Nútgốc.điềukiệnkiểmtra(e) = v và e E}
Trang 15Đặt F = F \ {các giá trị của điều kiện để phân chia v}
Gọi hàm Tạocây (E, tập danh sách thuộc tính của E, tập nhãn lớp)
Giải thích thuật toán:
Đây là một thuật toán kiểu đệ qui tạo cây quyết định
- Tại hàm chính, gọi hàm đệ qui Tạocây() với ba tham số vào là tập dữ liệu E,tập danh sách thuộc tính của E và tập nhãn Thuật toán làm việc bằng cách đệ qui chọngiá trị thuộc tính tốt nhất để chia, lưu ý là chọn giá trị của thuộc tính sao cho điều kiệnchia tốt nhất (bước 7), tiếp tục tiến hành mở rộng nút con bằng cách gọi đệ qui cho đếnkhi điều kiện dừng (ở bước 1) được thỏa mãn Dưới đây là phần giải thích chi tiết thuậttoán:
- Dòng đầu tiên sẽ kiểm tra điều kiện dừng, nếu được thỏa mãn nghĩa là đã đệqui để tạo ra được đến nút lá Điều kiện dừng chỉ xảy ra khi:
+ Tất cả các dòng trong tập dữ liệu E thuộc về cùng một lớp duy nhất (1).+ Không có bất cứ dòng nào trong tập E, điều này có thể xảy ra khi tập conđược tạo ở bước phân chia các tập con là rỗng (2)
Trong trường hợp (1) chỉ việc tiến hành tạo nút lá bằng hàm createNode() vàtiến hành gán nhãn cho nút lá này bằng cách gán nhãn duy nhất cho thuộc tính nhãncủa nút vừa được tạo này
Trường hợp (2) sẽ trả về nút lá bằng rỗng và tiến hành gán nhãn cho nút cha lànhãn lớp xuất hiện nhiều nhất như sau:
Nhãn lớp = max (tổng của từng giá trị nhãn lớp riêng biệt trong E)
Hàm Phânlớp(E) thực hiện việc xác định nhãn cho một tập dữ liệu E, nó tựđộng xác định và trả về đúng giá trị nhãn cho cả hai trường hợp trên
Trang 16mà tập D không còn chứa thuộc tính để phân chia, trả về nút lá là giá trị nhãn xuất hiệnnhiều nhất trong D.
- Xét dòng 5, nếu thuật toán chưa thỏa mãn điều kiện để dừng, tiếp tục xétbằng cách tìm kiếm điểm chia tốt nhất Để tìm điểm chia tốt nhất cần sử dụng một hàmđánh giá, kết quả của hàm này sẽ trả về thuộc tính được chọn tương ứng Về các tiêuchuẩn đánh giá cũng như chọn điểm chia sẽ được giải thích rõ hơn trong các phần bêndưới
- Xét dòng 6, sau khi đã chọn được điểm chia tốt nhất, tiến hành phân chia tập
D thành các tập con Di, cập nhật lại danh sách các thuộc tính
- Dòng 7 và 8: lặp qua danh sách các tập con Di và tiến hành gọi đệ qui hàmTạocây() với tham số mới tương ứng
Như vậy rõ ràng có thể thấy rằng với khung sườn thuật toán tổng quát trên, cácbước quyết định chính là bước xác định điểm phân chia tốt nhất dựa trên tiêu chí chotrước và bước tiến hành phân chia Hai bước này không những quyết định tốc độ củathuật toán mà quan trọng nhất là tính chính xác của kết quả Bước kiểm tra điều kiệndừng tuy cũng có ảnh hưởng đến tốc độ thuật toán nhưng tương đối rất ít so với haibước trên
Trong lý thuyết quyết định, một cây quyết định là một đồ thị những quyếtđịnh và những kết quả có khả năng của chúng (bao gồm cả giá phải trả và độ rủi ro)được sử dụng để tạo ra một đường đi tới đích Cây quyết định là một dạng đặc biệtcủa cấu trúc cây được xây dựng để trợ giúp việc ra quyết định
Trong lĩnh vực máy học, cây quyết định là một mô hình dự đoán, có nghĩa là
từ việc quan sát các item để rút ra kết luận về giá trị đích của item đó Mỗi nút bêntrong tương đương với một biến, mỗi cung đi tới một nút con tương ứng với giá trị cóthể của biến đó Các là tương ứng với giá trị đích được dự đoán cho các biến Kỹ thuậthọc máy sử dụng việc xây dựng cây quyết định trên tập dữ liệu được gọi là học câyquyết định hay đơn giản chỉ là cây quyết định
Cây quyết định được mô tả bằng cách tính toán xác suất có điều kiện Câyquyết định cũng có thể được mô tả như là một kỹ thuật tính toán và hỗ trợ toán học, kỹ