Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
182,13 KB
Nội dung
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN o0o BÀI THU HOẠCH MÔN KHAI PHÁ DỮ LIỆU PHÂN ĐA LỚP VĂN BẢN BẰNG PHƯƠNG PHÁP SVM Giảng viên hướng dẫn: PGS.TS. Đỗ Phúc Sinh viên thực hiện: Lê Minh Trí CH1101149 Lớp: Cao học khóa 6 Mục lục Trang 2 LỜI MỞ ĐẦU Ngày này, cùng với sự phát triển công nghệ thông tin cũng như sự bùng nổ của internet làm cho khối lượng thông tin trong việc lưu trữ và trao đổi đang ngày càng lớn. Vì thế, việc xử lý, phân loại thông tin bằng cách thủ công trở nên khó khăn. Do đó, đòi hỏi phải có cách tổ chức, phân loại thông tin tự động. May mắn là tốc độ xử lý của máy tính càng ngày càng lớn và thực sự trở thành một công cụ đắc lực, hỗ trợ con người trong nhiều lĩnh vực, trong đó có phân loại thông tin. Máy tính trở thành một công cụ hữu hiệu cho việc phân loại tự động thông tin bằng cách học, hay còn gọi là máy học và được áp dụng trong việc phân lớp văn bản. Trước hết, em xin gửi lời cảm ơn chân thành tới PGS.TS. Đỗ Phúc. Qua những buổi giảng dạy và hướng dẫn tận tình của thầy trong môn Khai phá dữ liệu đã giúp em hiểu biết thêm nhiều kiến thức. Qua đó em xin trình bày trong bài tiểu luận này bài toán phân đa lớp văn bản dựa trên thuật toán vector hỗ trợ (Support Vector Machine). Hi vọng bài luận có thể góp phần nào giải quyết bài toán tổ chức và phân loại thông tin tự động. Trang 3 I. TỔNG QUAN BÀI TOÁN PHÂN LỚP VĂN BẢN I.1. Giới thiệu bài toán phân lớp văn bản Phân lớp văn bản là việc gán một văn bản tài liệu được biểu diễn trong ngôn ngữ tự nhiên vào một hoặc nhiều lớp đã được xác định trước. Đầu tiên, người ta xây dựng một mô hình miêu tả một tập hợp ban đầu các văn bản dựa trên một tập các dữ liệu huấn luyện. Tập dữ liệu huấn luyện là tập các trang văn bản đã được gán nhãn lớp tương ứng cho chúng. Quá trình xây dựng tập dữ liệu huấn luyện này thường được thực hiện bằng con người. Sau đó, mô hình được sử dụng để phân lớp các trang văn bản chưa được gán nhãn. Bộ phân lớp có thể được xây dựng bằng tay dựa vào các kỹ thuật ứng dụng tri thức hoặc có thể được xây dựng một cách tự động bằng các kỹ thuật học máy thông qua một tập các dữ liệu huấn luyện được định nghĩa trước phân lớp tương ứng. Nhiệm vụ của bài toán phân lớp dữ liệu là cần xây dựng một bộ phân lớp để khi có một dữ liệu mới vào thì mô hình phân lớp sẽ cho biết dữ liệu đó thuộc lớp nào. Có nhiều bài toán phân lớp dữ liệu, như phân lớp nhị phân, phân lớp đa lớp, …. Phân lớp nhị phân là quá trình tiến hành việc phân lớp dữ liệu vào một trong hai lớp khác nhau dựa vào việc dữ liệu đó có hay không một số đặc tính theo quy định của bộ phân lớp. Phân lớp đa lớp là quá trình phân lớp với số lượng lớp lớn hơn hai. Như vậy, tập hợp dữ liệu trong miền xem xét được phân chia thành nhiều lớp chứ không đơn thuần chỉ là hai lớp như trong bài toán phân lớp nhị phân. Về bản chất, bài toán phân lớp nhị phân là trường hợp riêng của bài toán phân lớp đa lớp. I.2. Mô hình phân lớp văn bản Phân lớp văn bản định nghĩa thống nhất như là việc xác định tên các chủ đề của văn bản dựa trên nội dung của nó. Phân lớp văn bản là công việc được sử dụng để hỗ trợ trong quá trình tìm kiếm thông tin, chiết lọc thông tin, lọc văn bản hoặc tự động dẫn đường cho các văn bản tới những chủ đề xác định trước. Để phân lớp văn bản, người ta sử dụng phương pháp học máy có giám sát. Tập dữ liệu được chia ra làm hai tập là tập huấn luyện và tập kiểm tra, trước hết phải xây dựng mô hình thông qua các mẫu học bằng các tập huấn luyện, sau đó kiểm tra sự chính xác bằng tập dữ liệu kiểm tra. Trang 4 Một hệ thống phân lớp văn bản bao gồm ba thành phần chính: • Biểu diễn văn bản, tức là chuyển các dữ liệu văn bản thành một dạng có cấu trúc nào đó, tập hợp các mẫu cho trước thành một tập huấn luyện. • Thực hiện việc sử dụng các kỹ thuật học máy để học trên các mẫu huấn luyện vừa biểu diễn. Như vậy việc biểu diễn ở giai đoạn thứ nhất sẽ là đầu vào cho giai đoạn thứ hai. • Thực hiện bổ sung các kiến thức thêm vào do người dùng cung cấp để làm tăng độ chính xác trong biểu diễn văn bản hay trong quá trình học máy. Trong nhiều trường hợp, các phương pháp học hệ thống phân lớp có thể bỏ qua thành phần này. Như vậy thành phần thứ ba được coi là trung tâm của một hệ thống phân lớp văn bản. Trong phần này, có nhiều phương pháp học máy được áp dụng như mô hình mạng Bayes, cây quyết định, phương pháp K người láng giềng gần nhất, mạng Neuron, SVM, mô hình Maximum Entropy. I.3. Quá trình xây dựng bộ phân lớp văn bản Quá trình phân lớp dữ liệu thường gồm hai bước: xây dựng bộ phân lớp và sử dụng mô hình đó để phân lớp dữ liệu. Các công cụ phân lớp được xây dựng dựa trên một thuật toán phân lớp qua bước học quy nạp. Bước 1: Xây dựng mô hình. Một mô hình sẽ được xây dựng dựa trên phân tích các đối tượng dữ liệu đã được phân lớp từ trước. Tập các mẫu dữ liệu này còn được gọi là tập dữ liệu huấn luyện. Các lớp của tập dữ liệu huấn luyện được xác định bởi con người trước khi xây dựng mô hình, vì vậy phương pháp này còn được gọi là học có giám sát. Trong bước này, ta còn phải tính độ chính xác của mô hình, mà còn phải sử dụng một tập dữ liệu kiểm. Nếu độ chính xác là chấp nhận được, mô hình sẽ được sử dụng để xác định nhãn lớp cho các dữ liệu khác mới trong tương lại.Tồn tại nhiều phương pháp phân lớp dữ liệu để giải quyết bài toán phân lớp tùy thuộc vào cách thức xây dựng mô hình phân lớp như phương pháp Bayes, phương pháp cây quyết định, phương pháp k người láng giềng gần nhất, phương pháp SVM, phương pháp Maximum Entropy… Các phương pháp phân lớp khác nhau chủ yếu về mô hình phân lớp. Mô hình phân lớp còn được gọi là thuật toán phân lớp. Bước 2: Sử dụng mô hình. Sử dụng mô hình được xây dựng ở bước 1 để phân lớp dữ liệu mới. Như vậy, thuật toán phân lớp là một ánh xạ từ miền dữ liệu đã có sang một miền giá trị cụ thể của thuộc tính phân lớp, dựa vào giá trị các thuộc tính của dữ liệu. Trang 5 I.4. Phương pháp biểu diễn văn bản Trong bài toán phân lớp văn bản, cách biểu diễn văn bản đóng vai trò rất lớn. Một tài liệu được biểu diễn dưới dạng một tập hợp các từ, mỗi từ được xem là một thuộc tính hoặc đặc trưng của văn bản tương ứng với một vector đặc trưng. Đôi khi, thay vì những từ đơn, các đặc trưng có thể được biểu diễn bằng các cụm từ hoặc chuỗi n từ với n >= 2. Theo các nghiên cứu về phương pháp biểu diễn văn bản khác nhau, đặc biệt là khi so sánh ảnh hưởng và hiệu quả của nó thì không có cách biểu diễn văn bản nào tốt hơn cách biểu diễn bằng tập các từ riêng biệt được lấy ra từ văn bản gốc. Sau khi xác định được các đặc trưng, chúng ta cần tính giá trị đặc trưng (hoặc trọng số từ khóa) cho mỗi văn bản. Mỗi từ khóa t i trong một tài liệu D j được gán một trọng số w ij và do đó, mỗi tài liệu được biểu diễn như một vector. Trọng số từ khóa có thể được tính toán bằng nhiều cách khác nhau. Cách đơn giản nhất theo mô hình Boolean là gán trọng số bằng một giá trị nhị phân chỉ ra từ khóa có mặt hay không có mặt trong văn bản, tức là giá trị trọng số w ij là 1 nếu từ khóa ti xuất hiện ít nhất một lần trong tập tài liệu D j và w ij là 0 trong trường hợp ngược lại. Phương pháp khác là tính số lần xuất hiện của từ khóa trong một tài liệu gọi là tần suất từ khóa. Tần suất từ khóa được tính theo công thức: Trong đó N là tổng số từ khóa của tài liệu D j và occ(t k , D j ) là số lần xuất hiện của từ t k trong văn bản D j . Phương pháp này được gọi là phương pháp dựa trên tần số từ khóa (TF – Term Frequency). Phương pháp này có vẻ rất trực quan nhưng mặt hạn chế của phương pháp này là nếu một từ xuất hiện nhiều lần trong tài liệu sẽ có tần xuất cao. Tuy nhiên nếu những từ này đều xuất hiện trong tất cả các văn bản thì nó sẽ không mang nhiều thông tin ngữ nghĩa của văn bản và do đó độ quan trọng của nó giảm đi. Thông thường tần suất của các từ khóa trong văn bản không đồng đều nhau. Một số từ khóa xuất hiện rất thường xuyên, trong khi đó, một nửa số từ khóa xuất hiện chỉ một lần. Để giải quyết hạn chế này, Phương pháp dựa trên nghịch đảo tần số văn bản (IDF – Inverse Document Frequency) với tần suất logarit (tương tự với tần suất từ khóa). Với phương pháp này, giá trị wij được tính như sau: Trang 6 −= = 0 )log()log(log i i ij hm h m w Trong đó, m là số lượng văn bản, h i là số các văn bản có chứa thuật ngữ t i Phương pháp dựa trên nghịch đảo tần số văn bản IDF được sử dụng phổ biến hơn phương pháp dựa trên tần số IF, nhưng phương pháp này vẫn chưa giải quyết triệt để hạn chế của phương pháp tần số từ khóa. Theo đó, một từ xuất hiện nhiều lần có tần suất cao, từ xuất hiện ít có tần số thấp. Phương pháp chuẩn thường được sử dụng là Term Frequency Inverse Document Frequency (IFIDF), hàm tính trọng số từ khóa được xác định bởi công thức: [ ] ≥ + = 0 1log)log(1 i i ij ij h h m f w Trọng số TFIDF của một từ khóa biểu diễn độ quan trọng của từ khóa. TFIDF của một từ khóa trong một tài liệu sẽ giảm nếu như từ đó xuất hiện trong hầu hết các văn bản. Vì vậy, một từ xuất hiện quá ít hoặc quá nhiều được đánh giá ít quan trọng hơn so với các từ xuất hiện cân bằng. Trang 7 nếu t i xuất hiện trong d j nếu ngược lại II. PHƯƠNG PHÁP PHÂN LỚP SVM II.1. Phân lớp SVM nhị phân Thuật toán máy vector hỗ trợ (Support Vector Machines - SVM) được Corters và Vapnik giới thiệu vào năm 1995. SVM rất hiệu quả để giải quyết các bài toán với dữ liệu có số chiều lớn như các vector biểu diễn văn bản. Thuật toán SVM ban đầu chỉ được thiết kế để giải quyết bài toán phân lớp nhị phân tức là số lớp hạn chế là hai lớp. Hiện nay, SVM được đánh giá là bộ phân lớp chính xác nhất cho bài toán phân lớp văn bản, bởi vì đó là bộ phân lớp tốc độ rất nhanh và hiệu quả đối với bài toán phân lớp văn bản. Ý tưởng của SVM là tìm một mặt phẳng sao cho cận trên của xác suất lỗi là nhỏ nhất. Đối với dữ liệu không thể phân tách tuyến tính, SVM ánh xạ dữ liệu từ không gian đầu vào vào không gian đặc trưng dựa trên hàm nhân. Các ứng dụng của SVM trong thực tế cho hiệu quả phân lớp rất cao so với các phương pháp phân loại máy học khác và được ứng dụng trong rất nhiều lĩnh vực: Phân lớp văn bản: Nhiệm vụ của phân lớp văn bản là phân loại những tài liệu văn bản tự nhiên thành một số loại được định nghĩa trước dựa trên nội dung. Đặc trưng của các vector văn bản là có số chiều rất lớn, do đó rất thích hợp để áp dụng phương pháp SVM. Nhận dạng ảnh: Hiện nay có một số lượng hình ảnh rất lớn trên Internet hoặc trên những cơ sở dữ liệu chuyên dụng. Những kỹ thuật của việc nhận dạng ảnh được ứng dụng trong rất nhiều lĩnh vực như: rút trích thông tin, lọc dữ liệu trên Internet, ứng dụng trong y học, phát hiện vật thể, an ninh Nhận dạng chữ viết: Nhận dạng chữ viết là một trong những ứng dụng rất rộng rãi của SVM, nó có thể ứng dụng trong các ngành như: bưu điện (phân loại thư theo mã bưu điện), số hóa các văn bản (nhận dạng chữ viết của một văn bản được scan lên máy tính), Bài toán phân loại văn bản bằng SVM nhị phân: Cho một văn bản, dựa vào nội dung kiểm tra xem văn bản đó thuộc vào loại gì trong hai loại đã cho trước. Sau khi trích chọn đặc trưng, mỗi văn bản được biểu thị dưới dạng một vector . Mỗi vector là một điểm trong không gian n chiều. Các văn bản huấn luyện thuộc 2 lớp (được đánh nhãn là +1 và -1) là các điểm trong không gian đầu vào n chiều. SVM sẽ tìm một mặt phẳng tốt nhất phân tách 2 tập điểm +1 và -1. Mặt phẳng đó sẽ là hàm phân lớp để quyết định một mẫu mới sẽ thuộc lớp nào. Tổng quát bài toán: “Cho một tập huấn luyện các Trang 8 vector trong không gian n chiều. Các vector thuộc một trong hai lớp +1 và -1. Khi có một vector mới, phải xác định được nó thuộc lớp nào trong hai lớp đã cho”. II.1.1.Phân lớp tuyến tính Xét một tập huấn luyện S gồm l phần tử: Với y i thuộc 1 trong 2 giá trị là +1 và -1 có nghĩa x i thuộc 1 trong 2 lớp. Ta phải tìm một hàm số thực: Sao cho Khi phân lớp một mẫu . x được phân vào lớp dương (+1) nếu f(x) >= 0 và lớp âm (- 1) nếu ngược lại Xét trường hợp f(x) là hàm tuyến tính (siêu phẳng tuyến tính). Ta có: Với: được gọi là trọng số (weight) của siêu phẳng được gọi là ngưỡng (threshold) Hình - Phân lớp tuyến tính Bài toán được đặt ra là tìm bộ (w, b) sao cho siêu phẳng có thể phân tách được dữ liệu huấn luyện II.1.2. SVM với siêu phẳng có lề cực đại Cho bộ dữ liệu huấn luyện , siêu phẳng , ta có một số định nghĩa sau : Trang 9 − Lề hàm số (functional margin) của một mẫu (x i , y i ) đối với một siêu phẳng (w, b) được định nghĩa: − Lề hình học (geometric margin) là lề hàm số với các trọng số được chuẩn hóa Ý nghĩa thực tế của lề hình học là khoảng cách từ mẫu đến siêu phẳng phân tách Khi đó lề của một siêu phẳng đối với bộ dữ liệu S là lề hình học nhỏ nhất trong số các lề hình học của các điểm thuộc S đối với siêu phẳng Bài toán SVM được định nghĩa như sau: Tìm siêu phẳng tuyến tính (tìm bộ (w,b)) có thể phân tách được bộ dữ liệu huấn luyện S sao cho lề cực đại Hình - Phân lớp tuyến tính với lề cực đại Các điểm nằm trên 2 lề của siêu phẳng được gọi là các support vector. Chỉ có những điểm này mới ảnh hưởng đến kết quả phân lớp (ảnh hưởng đến siêu phẳng). Các điểm khác có thể bỏ đi mà không làm ảnh hưởng đến kết quả của siêu phẳng. Đây là một ưu điểm của SVM vì để lưu kết quả hay xử lý tính toán ta chỉ cần thao tác trên các support vector. Hai lề của siêu phẳng phân tách có thể được chuẩn hóa theo dạng: với lề bên phía các điểm thuộc lớp +1 và được gọi là mặt phẳng (+) với lề bên phía các điểm thuộc lớp -1 và được gọi là mặt phẳng (-) Do 2 mặt phẳng này song song nên khoảng cách giữa 2 mặt phẳng cũng là khoảng cách từ 1 điểm trên mặt phẳng này đến mặt phẳng kia. Gọi x 0 là điểm thuộc mặt phẳng (+), khoảng cách từ x 0 đến mặt phẳng Do đó để khoảng cách giữa 2 lề là cực đại thì ||w|| phải đạt cực tiểu với điều kiện Trang 10 [...]... toán phân lớp văn bản và các vấn đề liên quan đến phân lớp văn bản như biểu diễn đặc trưng, vector hóa văn bản Ngoài ra, tiểu luận cũng đã trình bày về phương pháp phân lớp Support Vector Machines, một phương pháp phân lớp có hiệu quả rất cao cùng với các vấn đề liên quan Nhược điểm của phương pháp SVM là nó chỉ có khả năng phân lớp nhị phân Do đó đã có rất nhiều phương pháp kết hợp các bộ phân lớp. .. dùng lớn − SVM chỉ được thiết kế cho phân lớp nhị phân Tuy nhiên trong thực tế cần phải phân loại nhiều lớp II.2 Phân loại đa lớp Một số phương pháp phân loại đa lớp sử dụng SVM phổ biến hiện nay là: Oneversus-All (OvA), One-against-One (OvO), và phương pháp dựa trên cây nhị phân DDAG II.2.1 One-versus-All Phương pháp này là phân một lớp với các lớp còn lại Phương pháp này chia bộ Trang 13 huấn luyện... khuyết điểm của SVM Ưu điểm: − Ưu điểm của SVM là độ chính xác phân lớp rất cao Vì thế, SVM là một trong những phương pháp phân lớp phổ biến hiện nay − SVM có thể được áp dụng cho nhiều bài toán như: Nhận dạng kuôn mặt, nhận dạng chữ, phân lớp văn bản, … − SVM cho thời gian phân lớp tương đối nhanh Khuyết điểm: − Thời gian để huấn luyện theo phương pháp SVM lâu, không gian bộ nhớ sử dùng lớn − SVM chỉ được... luyện module này sẽ xuất ra các file huấn luyện − Phân lớp: các văn bản cần phân lớp được đưa vào module tiền xử lý văn bản, module này sẽ xử lý và xuất ra các vector của các văn bản Vector này được đưa vào module phân lớp, module này sẽ xác định lớp kết quả của văn bản Sau khi qua giai đoạn tiền xử lí dữ liệu và huấn luyện để có thể phân lớp một đoạn văn bản thuộc thể loại nào, chương trình cần các thông... luyện: file này được tạo ra ở giai đoạn huấn luyện phân loại văn bản • File kết quả và thư mục bộ phận lớp là các thông tin về mô hình cây và bộ phân lớp theo mô hình cây • Các key file và class file là các file chức các thông tin về các từ khóa của văn bản và các lớp (thể loại) văn bản • Sau khi nhập văn bản và nhấn nút Phân lớp, máy sẽ tự động nhận diện văn bản thuộc thể loại nào Trang 15 Trang 16 IV KẾT... mẫu thuộc lớp i, các mẫu âm là các mẫu còn lại Sau đó ta sẽ huấn luyện tập này Gọi hàm phân lớp của lớp thứ i là: Di(x) = wiTx + b Đối với một vector x cần được phân lớp, ta tính tất cả các hàm Di(x) Luật phân lớp là: Nếu Di(x) > 0 thì x thuộc lớp i, ngược lại x không thuộc lớp i II.2.2 One-Against-One Trong phương pháp này là ta sẽ phân từng cặp lớp với nhau Đối với bài toán phân lớp k lớp ta xây... lớp k lớp ta xây dựng k(k-1)/2 bộ phân lớp SVM nhị phân Đối với mỗi cặp lớp i, j, ta lấy các mẫu thuộc lớp i gán cho nhãn dương (+1), các mẫu thuộc lớp j gán cho nhãn âm (-1) Sau đó phân lớp bộ dữ liệu này Gọi hàm phân lớp cho mỗi cặp lớp i, j là: Dij(x) = wijTx + b Các thử nghiệm thực tế đã chứng tỏ rằng phương pháp OvO cho kết quả có độ chính xác cao hơn phương pháp OvA II.2.3 DDAG(Decision Directed... Đến khi nào danh sách chỉ còn một lớp thì dữ liệu x được phân vào lớp đó III CHƯƠNG TRÌNH: Chương trình gồm 3 phần − Tiền xử lý: có nhiệm vụ chính là nhận vào file văn bản thô, sau đó tiến hành xử lý để xuất ra file chứa các vector tương ứng với các văn bản đầu vào − Huấn luyện: các văn bản sau khi xử lý, sẽ xuất ra các file chứa các vector được vector hóa từ các văn bản Sau đó các file này được đưa... các vấn đề liên quan Nhược điểm của phương pháp SVM là nó chỉ có khả năng phân lớp nhị phân Do đó đã có rất nhiều phương pháp kết hợp các bộ phân lớp nhị phân SVM để giải quyết vấn đề phân đa lớp Tiểu luận cũng đã trình bày một số phương pháp phân đa lớp thông dụng, phổ biến hiện nay Trang 17 Tài liệu tham khảo: • An Introduction to Support Vector Machines and Other Kernel-based Learning Methods - Nello... Lagrange được tìm bằng cách phân tích, do đó tránh được bài toán tối ưu hóa toàn phương Đây cũng chính là điểm mạnh của SMO so với các phương pháp còn lại Giải thuật SMO bao gồm 2 thành phần: − Phần phương pháp phân tích để giải bài toán tối ưu của 2 nhân tử Lagrange Trang 12 − Phần Heuristic để chọn 2 nhân tử để tối ưu Các bước chính trong giải thuật SMO: Bước 1: Khởi tạo mảng alpha bằng 0 Khởi tạo . mô hình phân lớp sẽ cho biết dữ liệu đó thuộc lớp nào. Có nhiều bài toán phân lớp dữ liệu, như phân lớp nhị phân, phân lớp đa lớp, …. Phân lớp nhị phân là quá trình tiến hành việc phân lớp dữ. Bayes, phương pháp cây quyết định, phương pháp k người láng giềng gần nhất, phương pháp SVM, phương pháp Maximum Entropy… Các phương pháp phân lớp khác nhau chủ yếu về mô hình phân lớp. Mô hình phân. QUAN BÀI TOÁN PHÂN LỚP VĂN BẢN I.1. Giới thiệu bài toán phân lớp văn bản Phân lớp văn bản là việc gán một văn bản tài liệu được biểu diễn trong ngôn ngữ tự nhiên vào một hoặc nhiều lớp đã được