1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phân loại văn bản theo chủ đề bằng phương pháp support vector machines kết hợp với các kỹ thuật hỗ trợ

127 39 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 127
Dung lượng 1,1 MB

Nội dung

Đại Học Quốc Gia Tp Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA - NGUYỄN AN NHƠN PHÂN LOẠI VĂN BẢN THEO CHỦ ĐỀ BẰNG PHƯƠNG PHÁP SUPPORT VECTOR MACHINES KẾT HỢP VỚI CÁC KỸ THUẬT HỖ TRỢ Chuyên ngành : Công Nghệ Thông Tin Mã Số ngành : 01.02.10 LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng 10 năm 2005 LỜI CẢM ƠN Trước tiên xin bày tỏ lòng biết ơn sâu sắc đến PGS TS Phan Thị Tươi, người cho hội đến với chuyên ngành xử lý ngôn ngữ tự nhiên (Natural Language Processing) Cô người hướng dẫn suốt trình thực luận văn Luận văn hoàn thành hướng dẫn tận tình Cô tài liệu Cô cung cấp Tôi xin chân thành cảm ơn Thầy Cô Khoa Công Nghệ Thông Tin , Trường Đại Học Bách Khoa truyền đạt kiến thức quý báu suốt khoá học Tôi xin cảm ơn Thầy Cao Hoàng Trụ truyền đạt kiến thức kỹ thuật học máy nói chung phương pháp Support Vector Machines nói riêng Tôi xin cảm ơn đồng nghiệp công ty PSV chia công việc hỗ trợ mặt kỹ thuật để hoàn thành luận văn Tôi xin cảm ơn bạn học viên cao học CNTT K14 giúp đỡ đóng góp ý kiến việc hoàn thành đề tài Cuối cùng, xin cảm ơn gia đình hỗ trợ mặt tinh thần cho suốt thời gian khoá học, đặc biệt giai đoạn thực luận văn TÓM TẮT NỘI DUNG Việc phân loại văn tự động trở thành công việc quan trọng số lượng liệu dạng văn bùng nổ Các văn tồn trực tuyến Internet, mail điện tử, sở liệu, thư viện số Mục tiêu việc phân loại văn gán văn cho trước vào số chủ đề định nghóa trước Các thực nghiệm cho thấy phương pháp Support Vector Machines (SVMs) thích hợp cho việc phân loại văn Hiệu suất phương pháp tốt hẳn phương pháp phân loại văn phổ biến khác k-nearest neighbor (kNN), neural networks (NNet), Naive Bayes (NB) Mục tiêu phương pháp suy diễn luật suy diễn từ mẫu phân loại thuộc khái niệm khác tổng quát hoá mẫu huấn luyện Sử dụng giải thuật SMO, máy học Support Vector Machines thể độ xác cao tập kiểm tra Số lượng mẫu huấn luyện tối thiểu cần thiết để đạt độ xác tốt (khoảng 90%) khoảng 300 mẫu (150 mẫu dương 150 mẫu âm) Trong luận văn này, giải thuật SMO cải tiến điều kiện dừng công thức tính hàm mục tiêu Điều mang lại hiệu suất học cao độ xác phân loại tốt Trong khái niệm tiền xử lý văn bản, việc loại bỏ từ kết thúc không ảnh hưởng đến độ xác phân loại văn Ảnh hưởng việc chọn lựa từ khóa kiểm tra thông qua việc thay đổi ngưỡng độ lợi thông tin Loại từ có giá trị phân loại thấp giúp giảm số chiều không gian từ khóa, điều giúp tăng hiệu suất phân loại Một phương pháp khác để thu giảm không gian từ khoá gom nhóm từ văn Trong phương pháp này, văn huấn luyện gom nhóm đồng thời với việc gom nhóm từ khoá Phương pháp giúp giảm mức độ thưa liệu mẫu Đối với ngôn ngữ tiếng Việt, từ không phân cách khoảng trắng mà ta phải dựa vào nghóa chúng Để tăng hiệu suất phân loại giải thuật Support Vector Machines văn tiếng Việt, giải thuật phân đoạn từ N-gram sử dụng để phân đoạn văn thành từ theo ý nghóa Giải thuật kiểm tra với kết tốt ABSTRACT Text categorization is becoming increasingly important given the large volume of online text available through the Internet, electronic mail, corporate databases, medical patient records and digital libraries The goal of text categorization is to classify documents into a certain number of predefined categories Evidence shows that Support Vector Machines (SVMs) are well suited for text categorization, outperforming other well-known text categorization methods such as k-nearest neighbor (kNN), neural networks (NNet), and Naïve Bayes (NB) Support vector learning attempts to induce a decision rule from which to categorize examples of different concepts by generalizing from a set of training examples Using the SMO algorithm, linear support vector machines showed very good overall categorization accuracy on the test collection The minimum number of training examples required to achieve good classification accuracy (around 90%) was found to be a training set size of around 300 examples (150 positive and 150 negative instances) In this thesis, the SMO was improved by changing the stop conditions and the formula used to calculate target function This lead to a very good performance and accuracy In terms of document pre-processing, the exclusion of stemming, inclusion of stop-words did not significantly affect the classifier’s accuracy The effect of variations in feature selection was also tested, using information gain (IG) threshold Removal of rare terms reduces the dimensionality of the feature space, and can lead to an increase in text categorization performance However, excessive term removal is not recommended Another method was used to reduce the feature space is co-clustering of words and texts In this method, training texts are clustered, and at the same time, features are also clustered in order to tackle the data sparseness problem For Vietnamese language, the words are not separated by blank space but we must base on their meanings To accommodate the Support Vector Machines algorithm to Vietnamese documents, the N-gram segmentation algorithm was used to parse the documents to full meaning words This algorithm also was tested with an accurate result MỤC LỤC Phần PHAÙT BIỂU VẤN ĐỀ 1 - Giới thiệu - Đề tài nghiên cứu 3 - Những kết nghiên cứu liên quan 3.1 - Những đề tài nghiên cứu nước 3.2 - Những đề tài nghiên cứu nước - Kết đạt đóng góp Phaàn CƠ SỞ LÝ THUYẾT PHÂN LOẠI VĂN BẢN - Biểu diễn văn 1.1 - Phương pháp Boolean 1.2 - Phương pháp tần xuất từ (work frequency) 1.3 - Phương pháp tf x idf (term frequency x inverse document frequency) 10 1.4 - Phương pháp tfc (term frequency component) 10 1.5 - Phương pháp ltg (log term component) 10 1.6 - Phương pháp Entropy 11 - Chọn lựa từ khoá (feature selection) 11 2.1 - Phương pháp ngưỡng từ khóa văn 12 2.2 - Phương pháp độ lợi thông tin 12 2.3 - Phương pháp thông tin tương hỗ 13 2.4 - Phương pháp thống kê χ 14 2.5 - Phương pháp độ mạnh từ 14 - Chọn tập văn dùng để phân loại 15 3.1 - Taäp Reuters – 21578 15 3.2 - Taäp 20-newsgroup 16 - Các phương pháp đánh giá việc phân loại văn 17 4.1 - Phương pháp F-measure 17 4.2 - Phương pháp F-measure trung bình 19 Phaàn 20 CÁC GIẢI THUẬT PHÂN LOẠI VĂN BẢN 20 - Giải thuật Naive Bayes (NB) 20 1.1 - Giải thuật 20 1.2 - Đánh giaù: 22 - Giải thuật maïng Neural (Neural Network) 22 2.1 - Giải thuật 22 2.2 - Đánh giá: 25 - Giải thuật định 26 3.1 - Giải thuật phân loại 26 3.2 - Giải thuật xây dựng ñònh 27 3.3 - Đánh giá: 29 - Giải thuật Support Vector Machines 29 4.1 - Mô hình học máy tuyến tính 30 4.2 - Khái niệm Kernel 32 4.3 - Lý thuyết tổng quát hoá 36 4.4 - Lý thuyết tối ưu 40 4.5 - Lý thuyết Support Vector Machines 44 4.6 - Caùc öùng duïng Support Vector Machines 55 Phaàn 59 THIẾT KẾ VÀ HIỆN THỰC 59 - Đặc tả hệ thống 59 - Giải thuật huấn luyện 61 2.1 - Bieåu diễn văn 61 2.2 - Thieát kế giải thuật học máy SVMs 74 - Giaûi thuật phân loại 85 3.1 - Phân loại nhị phân 86 3.2 - Mở rộng hệ thống phân loại nhị phân thành đa chủ đề 87 - Hiện thực chương trình 88 4.1 - Giao diện chương trình 88 4.2 - Nhận xét kết 88 Phaàn 96 ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN 96 - Đánh giá 96 - Hướng phát triển đề tài 98 Phuï luïc A 99 MAÕ GIẢ GIẢI THUẬT SMO 99 Phuï luïc B 102 GIẢI THUẬT SMO ĐÃ CẢI TIẾN 102 Phuï luïc C 106 GIAO DIỆN CHƯƠNG TRÌNH 106 - Màn hình danh sách mô hình phân loại 106 - Màn hình thêm mô hình 107 - Màn hình thêm chủ đề 108 - Màn hình thêm văn 109 - Màn hình phân loại mẫu 110 TÀI LIỆU THAM KHẢO 111 DANH MỤC HÌNH Hình 2.1 Mô hình vector chiều Hình 2.2 Thống kê số chủ đề tập Reuters 16 Hình 2.3 Thống kê số chủ đề tập 20-newsgroup 17 Hình 3.1 Mô hình Perceptron 23 Hình 3.2 Mô hình mạng neural 24 Hình 3.4 Mô hình lan truyền liệu 25 Hình 3.5 Cây định cho chủ đề “earning” 27 Hình 3.6 Entropy tập S 28 Hình 3.7 Đường phân cách (w,b) cho tập huấn luyện hai chiều 31 Hình 3.8 Ánh xạ sang không gian đặc trưng 33 Hình 3.9 Biên hình học điểm 38 Hình 3.10 Biên hình học tập mẫu 38 Hình 3.11 Biến gia cố cho toán phân loại 39 Hình 3.12 Đường phân cách biên tối đại với điểm suppor vector tô đậm 46 Hình 3.13 Biên insensitive cho toán hồi qui chiều 51 Hình 3.14 Biên insensitive cho toán hồi qui phi tuyến 51 Hình 3.15 Sai số ε-insensitive tuyến tính cho ε = and ε != 53 Hình 3.16 Sai số ε-insensitive bậc hai cho ε = and ε != 54 Hình 4.1 Mô hình huấn luyện 61 Hình 4.2 Sơ đồ giải thuật phân đoạn từ 63 Hình 4.3 Xét vị trí k có phải điểm phân đoạn từ 65 Hình 4.4 Sơ đồ điểm phân đoạn từ 66 Hình 4.5 Ba phương pháp huấn luyện SVMs: Chunking, Osuna SMO 77 Hình 4.6 Ràng buộc hai hệ số Lagrange 78 Hình 4.7 Mô hình phân loại 86 Phân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi } if (a2 < 1e-8) a2 = else if (a2 > C-1e-8) a2 = C if (| a2 - alph2 | < eps*(a2+alph2+eps)) return a1 = alph1+s*(alph2-a2) Update threshold to reflect change in Lagrange multipliers Update weight vector to reflect change in a1 & a2, if linear SVM Store a1 in the alpha array Store a2 in the alpha array return endprocedure procedure examineExample(i2) y2 = target[i2] alph2 = Lagrange multiplier for i2 E2 = SVM output on point[i2] - y2 r2 = E2*y2 if ((r2 < -tol && alph2 < C) || (r2 > tol && alph2 > 0)) { if (number of non-zero & non-C alpha > 1){ i1 = result of second choice heuristic if takeStep(i1,i2) return } loop over all non-zero and non-C alpha, starting at random point{ i1 = identity of current alpha if takeStep(i1,i2) return } loop over all possible i1, starting at a random point{ 100 Phân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi i1 = loop variable if takeStep(i1,i2) return } } return endprocedure procedure svmLearn initialize alpha array to all zero initialize threshold to zero numChanged = 0; examineAll = 1; while (numChanged > | examineAll){ numChanged = 0; if (examineAll) loop i over all training examples numChanged += examineExample(i) else loop i over examples where alpha is not & not C numChanged += examineExample(i) if (examineAll == 1) examineAll = else if (numChanged == 0) examineAll = } endprocedure 101 Phaân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi Phụ lục B GIẢI THUẬT SMO ĐÃ CẢI TIẾN Các dòng in nghiêng, đậm phần cải tiến so với giả thuật SMO nguyên thuỷ procedure takeStep(i1,i2) if (i1 == i2) return alph1 = Lagrange multiplier for i1 y1 = target[i1] E1 = ecache[i1] E2 = ecache[i2] s = y1*y2 Compute L, H if (L == H) return k11 = kernel(point[i1],point[i1]) k12 = kernel(point[i1],point[i2]) k22 = kernel(point[i2],point[i2]) eta = 2*k12-k11-k22 if (eta < 0) { a2 = alph2 - y2*(E1-E2)/eta if (a2 < L) a2 = L else if (a2 > H) a2 = H }else{ objDiff = diffOF(L,H) if (objDiff > eps) a2 = L else if (objDiff < -eps) a2 = H 102 Phân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi else a2 = alph2 } if (a2 < 1e-8) a2 = else if (a2 > C-1e-8) a2 = C if (| a2 - alph2 | < eps*(a2+alph2+eps)) return a1 = alph1+s*(alph2-a2) Update threshold to reflect change in Lagrange multipliers Update weight vector to reflect change in a1 & a2, if linear SVM Store a1 in the alpha array Store a2 in the alpha array Update I_0, I_1, I_2, I_3, I_4 Update ecache: r r E knew = E kold + y1 (α1new − α1old )k ( x1 , x k ) + r r y (α 2new − α 2old )k ( x , x k ) + b old − b new Compute (i_low, b_low), (i_up, b_up) return endprocedure procedure examineExample(i2) y2 = target[i2] alph2 = Lagrange multiplier for i2 E2 = ecache[ì] if ((i2 in I_1 or I_2) && E2 < b_up) b_up = E2, i_up = i2 else if ((i2 in I_3 or I_4) && E2 > b_low) b_low = i2, i_low = i2 optimality = 103 Phân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi if (i2 in I_0, I_1 or I_2){ if (b_low - E2 > 2*tol) optimality = 0, i1 = i_low } if (i2 in I_0, I_3 or I_4){ if (E2 - b_low > 2*tol) optimality = 0, i1 = i_up } if (optimality == 1) return if (i2 in I_0){ if (b_low – E2 > E2 – b_up) i1 = i_low else i1 = i_up } if (takeStep(i1, i2)) return else return endprocedure procedure svmLearn initialize alpha array to all zero initialize threshold to zero initialize b_up = -1, i_up to any one index of class initialize b_low = 1, i_up to any one index of class numChanged = 0; examineAll = 1; while (numChanged > | examineAll){ numChanged = 0; if (examineAll) 104 Phaân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi loop i over all training examples numChanged += examineExample(i) else loop i over examples where alpha is not & not C{ numChanged += examineExample(i) if (b_up > b_low – * tol) at any i{ numChanged = break } } if (examineAll == 1) examineAll = else if (numChanged == 0) examineAll = } endprocedure 105 Phân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi Phụ lục C GIAO DIỆN CHƯƠNG TRÌNH - Màn hình danh sách mô hình phân loại Hình C.1 Danh sách mô hình Bảng C.1 Danh sách mô hình Thuộc tính Bảng mô hình Chú thích Bảng chứa tất mô hình tạo hệ thống Name Tên mô hình tạo (Link) Chọn link kết nối đến trang chi tiết mô hình Description Chú thích mô hình Add Nhấn vào nút kết nối đến trang tạo mô hình (Button) Delete Nhấn vào nút xoá mô hình chọn hệ (Button) thống 106 Phân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi - Màn hình thêm mô hình Hình C.2 Thêm mô hình Bảng C.2 Thông tin mô hình Thuộc tính Bảng thông tin mô hình Chú thích Bảng gồm thông tin mô hình cần tạo Name Tên mô hình cần tạo Description Chú thích mô hình Submit (Button) Nhấn vào nút lưu lại mô hình cần tạo Bảng C.3 Danh sách chủ đề Thuộc tính Bảng chủ đề Name Documents Description Add (Button) Chú thích Bảng gồm chủ đề mô hình tạo Tên chủ đề Số lượng văn chủ đề tạo Chú thích chủ đề Nhấn vào nút thêm chủ đề vào mô hình 107 Phân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi - Màn hình thêm chủ đề Hình C.3 Thêm chủ đề phân loại Bảng C.4 Thông tin chủ đề Thuộc tính Bảng thông tin chủ đề Chú thích Bảng gồm thông tin chủ đề cần tạo Name Tên chủ đề cần tạo Description Chú thích chủ đề cần tạo Submit (Button) Nhấn vào nút lưu lại chủ đề cần tạo Bảng C.5 Danh sách văn Thuộc tính Bảng văn Name Add (Button) Chú thích Bảng gồm danh sách văn chủ đề Tên văn Nhấn nút liên kết đến hình upload tập tin Delete (Button) Nhấn vào nút xoá văn chọn 108 Phân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi - Màn hình thêm văn Hình C.4 Chọn file để upload Bảng C.6 Chọn văn cần upload Thuộc tính File Upload Browse (Button) Submit (Button) Chú thích Vị trí file cần upload vào hệ thống Nhấn nút liên kết đến hình chọn vị trí tập tin Nhấn vào nút để upload file vào hệ thống thêm văn vào chủ đề 109 Phân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi - Màn hình phân loại mẫu Hình C.5 Gán chủ đề cho mẫu Bảng C.7 Danh sách mô hình Thuộc tính Chú thích Bảng mô hình Bảng gồm danh sách mô hình hệ thống Name Tên mô hình Description Chú thích mô hình Classify (Button) Nhấn vào nút gán chủ đề cho mẫu Bảng C.8 Danh sách mẫu Thuộc tính Chú thích Bảng danh sách mẫu Bảng gồm danh sách mẫu cần phân loại Name Tên văn Add (Button) Nhấn nút liên kết đến hình upload tập tin Delete (Button) Nhấn vào nút xoá mẫu chọn 110 Phân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi TÀI LIỆU THAM KHẢO [1] Nello Cristianini and John Shawe-Taylor, Support Vector Machines and other kernel-based learning methods, Cambridge University Press, 2000 [2] Hiroya Takamura, Clustering Approaches to Text Categorization, Nara Institute of Science and Technology, 2003 [3] Trần Minh Quang, Phân loại văn phương pháp định, Luận văn cao học trường Đại học Bách Khoa, 2004 [4] Trần Ngọc Tuấn, Phân đoạn từ tiếng Việt dùng corpus mô hình thống kê, Luận văn cao học trường Đại học Bách Khoa, 2004 [5] Kaibo Duan and Sathiya Keerthi, Multi-Category Classification by SoftMax Combination of Binary Classifiers, Deparment of Machanical Engineering National University of Singapore, 2003 [6] Edgar E Osuna, Robert Freund and Federico Girosi, Support Vector Machines: Training and Application, Massachusetts Institute of Technolory, 1996 [7] John C Platt, Fast Training of Suport Vector Machines using Sequential Minimal Optimization, Microsoft research, 1998 [8] Sathiya Keerthi and Chong Jin Ong, Two Efficient Methods for Computing Leave-One-Out Error in SVM Algorithms, Deparment of Machanical Engineering National University of Singapore, 2000 [9] Doulas Baker and Andrew Kachittes McCallum, Distributional Clustering of Words for Text Classification, Mellon University, 1999 [10] Noam Slonin and Naftali Tishby, Document Clustering using Word Clusters via the Information Bottleneck Method, Hebrew University, 2001 111 Phân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi [11] Yming Yang, Using Corpus Statistics to Remove Redundant Words in Text Categorization, National Center for Biotechnology Information National Library of Medicine Bethesda, 1995 [12] Ralf Klinkenberg, Text Categorisation Using Support Vector Machines, University of Dortmund, 2003 [13] Fabrizio Sebastiani, Machine Learning in Automated Text Categorisation, Consiglio Nazionale delle Ricerche, Italy, 2001 [14] George Siolas, Florence de Alche-Buc, Support Vector Machines based on a Semantic Kernel for Text Categorization, Marie Curie University, 2000 [15] Jason D M Rennie, Ryan Rifkin, Improving Multiclass Text Classi_cation with the Support Vector Machines, Massachusetts Institute of Technology, 2001 [16] David D Lewis, Reuters-21578 text categorization test collection, Reuters group, 2004 [17] 20-newsgroup, 20news-18828, 2003 [18] Christopher J.C Burges, A Tutorial on Support Vector Machines for Paterns Reconigtion, 1998 [19] C J van RIJSBERGEN, Information Retrieval, University of Glasgow, 2001 [20] Kamal Nigam, A comparison of Event Models for Naïve Bayes Text Categorization, Carnegie Mellon University, 1998 [21] D Michie, D.J Spiegelhalter, C Taylor, Machine Learning, Neural and Statistical Classification, University of Strathclyde, MRC Biostatistics Unit, Cambridge_ and University of Leeds, 1994 [22] Osuna, Improved Training Algorithm for Support Vector Machines, Proc IEEE NNSP 97, 1997 112 Phân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi [23] Vapnik, The Natural of Statistical Learning Theory, Spinger-Verlag, 1982 113 LÝ LỊCH TRÍCH NGANG Họ tên : Nguyễn An Nhơn Ngày, tháng, năm sinh : 28/04/1981 Địa liên lạc Nơi sinh: Tiền Giang : 212/158/94 Nguyễn Văn Nguyễn, Phường Tân Định, Quận 1, Tp HCM Điện thoại: 8-481-568 QUÁ TRÌNH ĐÀO TẠO Từ năm 1998 đến năm 2003: Khoa Công Nghệ Thông Tin Trường Đại Học Bách Khoa Tp HCM Khoá học: Kỹ sư Từ năm 2003 đến năm 2005: Khoa Công Nghệ Thông Tin Trường Đại Học Bách Khoa Tp HCM Khoá học: Cao học QUÁ TRÌNH CÔNG TÁC Từ năm 2003 đến nay: Công ty Paragon Solutions Vietnam Vị trí: Senior Software Engineering ... thống phân loại Phân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi Phần CƠ SỞ LÝ THUYẾT PHÂN LOẠI VĂN BẢN - Biểu diễn văn Hầu hết phương pháp phân loại văn dựa theo xác suất sử dụng phương pháp. .. nhiên phương pháp thuộc vào họ phân loại nhị phân, nghóa văn gán vào hai chủ đề cho trước Vì vậy, luận án tác giả mở rộng phương pháp Support Vector Machines thành phân loại đa chủ đề với số chủ đề. .. gồm chủ đề 19 Phân loại văn theo chủ đề GVHD: PGS.TS Phan Thị Tươi Phần CÁC GIẢI THUẬT PHÂN LOẠI VĂN BẢN Ngày hệ thống phân loại văn tự động phát triển nhiều Các giải thuật phân loại văn nghiên

Ngày đăng: 16/04/2021, 04:17

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w