1. Trang chủ
  2. » Công Nghệ Thông Tin

Nghiên cứu giải thuật naїve bayes trong bài toán phân loại văn bản

68 536 1

Đ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 68
Dung lượng 40,01 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

● C Categories là tập hợp các lớp chứa các văn bản ● là không gian kết hợp mỗi văn bản d i với một lớp các văn bản c j có Hàm sẽ thực hiện: Một số điều cần lưu ý với bài toán: ● Việc

Trang 1

LUẬN VĂN THẠC SĨ KHOA HỌC CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC

GS.TS Nguyễn Thanh Thuỷ

Trang 2

DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT III

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ IV

LỜI MỞ ĐẦU 1

CHƯƠNG 1 TỔNG QUAN VỀ BÀI TỐN PHÂN LOẠI VĂN BẢN 2

1.1 SỰ CẦN THIẾT CỦA VIỆC PHÂN LOẠI VĂN BẢN 2

1.1.1 Phân loại văn bản cùng với các ứng dụng 2

1.1.2 Nội dung văn bản thành phần chủ chốt để xác định văn bản 3

1.2 BÀI TỐN PHÂN LOẠI VĂN BẢN 4

1.2.1 Định nghĩa 4

1.2.2 Phát biểu bài tốn 4

1.2.3 Phân loại 5

1.3 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 5

1.3.1 Sự cần thiết xây dựng hệ thống cĩ khả tự “học” 6

1.3.2 Khai phá dữ liệu, một lớp của hệ thống tự “học” 7

1.3.3 Phương pháp gần đúng để giải quyết bài tốn phân loại văn bản 10

CHƯƠNG 2 GIẢI THUẬT NẠVE BAYES VỚI BÀI TỐN PHÂN LOẠI VĂN BẢN 16

2.1 PHÂN BỐ MULTINOMIAL 16

2.2 CƠNG THỨC XÁC SUẤT BAYES 17

2.2.1 Phát biểu định lý 17

2.2.2 Các dạng khác của định lý Bayes 17

2.2.3 Định lý Bayes với hàm mật độ xác suất 18

2.3 PHƯƠNG PHÁP NAIVE BAYES GIẢI BÀI TỐN PHÂN LOẠI VĂN BẢN 18

2.4 MỘT SỐ HEURISTIC PHÁT TRIỂN CHO MULTINOMIAL NAIVE BAYES 20

2.4.1 Thực hiện một số cải thiện để nâng cao hiệu quả của thuật tốn 21

2.4.2 Sơ đồ cho giải thuật mới cho giải thuật TWCNB: 27

CHƯƠNG 3 GIẢI THUẬT SVM TRONG BÀI TỐN PHÂN LOẠI VĂN BẢN 28

3.1 PHÂN TÁCH TUYẾN TÍNH KHƠNG GIAN DỮ LIỆU 28

3.2 LÝ THUYẾT VỀ TỐI ƯU PHI TUYẾN 29

3.2.1 Điều kiện Karush-Kuhn-Tucker (KKT) 30

Trang 3

3.3 GIẢI THUẬT SVM (SUPPORT VECTOR MACHINE) 35

3.3.1 Giai đoạn huấn luyện SVM 35

3.3.2 Giai đoạn nhận dạng 38

3.4 SVM VỚI CÁC TẬP MẪU KHÔNG PHÂN TÁCH TUYẾN TÍNH 39

3.4.1 Gần tuyến tính, sử dụng lề mềm – Soft margin 39

3.4.2 Phi tuyến – Sử dụng hàm nhân 41

3.4.3 SVM cho vấn đề nhận dạng đa lớp 45

3.5 KỸ THUẬT THỰC HIỆN SVM 47

3.5.1 Gom cụm (Chunking) 49

3.5.2 Phân rã (Decomposition) 50

3.5.3 Cực tiểu tuần tự (Sequential Minimal Optimization - SMO) 51

3.5.4 Đánh giá giải thuật SMO 53

CHƯƠNG 4 KẾT QUẢ THỬ NGHIỆM 54

4.1 Các bộ dữ liệu được sử dụng trong quá trình thử nghiệm 54

4.1.1 Bộ dữ liệu 20 newsgroups 54

4.1.2 Bộ dữ liệu WebKB 55

4.1.3 Bộ dữ liệu Reuters-21578 57

4.2 Cài đặt của 02 giải thuật 59

4.2.1 Cài đặt cho giải thuật TWCNB 59

4.2.2 Cài đặt cho giải thuật SVM 59

4.3 Đánh giá kết quả thử nghiệm 60

4.3.1 Phương pháp đánh giá kết quả thử nghiệm 60

4.3.2 Kết quả thực hiện và đánh giá 61

KẾT LUẬN VÀ KIẾN NGHỊ 62

TÀI LIỆU THAM KHẢO 63

Trang 4

DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT

Trang 5

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Hình 1 Các bài viết trên trang web được sắp xếp theo mục 2

Hình 2 Tháp mô tả quá trình đúc rút tri thức từ dữ liệu 8

Hình 3 Phân bố xác xuất văn bản với xuất hiện của từ 24

Hình 4 Phân bố khi d = 1 25

Hình 5 Phân bố xác xuất suất hiện với số lần xuất hiện của từ khi độ dài văn bản khác nhau 26

Hình 6 Lát cắt phân loại được tạo bởi siêu phẳng trong không gian phân loại được biểu diễn thông qua vector w và b 29

Hình 7 Hàm f(x) đạt cực đại tại x 0 S 29

Hình 8 Ý nghĩa hình học của điều kiện KKT 31

Hình 9 Lựa chọn đường thẳng cho d lớn 37

Hình 10 Tập mẫu gần phân tách tuyến tính (không thể phân tách tuyến tính được) 39

Hình 11 Phân tách phi tuyến nhưng chuyển đổi không gian để trở về tuyến tính 42

Hình 12 Thể hiện của không gian cũ trong không gian mới 42

Hình 13 Phân hoạch phi tuyến có nhiễu 44

Hình 14 Chuyển thành siêu phẳng với hàm Gaussian RBF 45

Hình 15 One-vs-rest với 4 lớp 46

Hình 16 Các phân loại với SVM (1,4) 47

Hình 17 One-vs-one với 4 lớp 47

Hình 18 Quá trình gom cụm để xây dựng siêu phẳng 50

Hình 19 Các trường hợp có thể xảy ra với u 1 và u 2 52

Hình 20 Các trường hợp đạt cực trị của hàm 53

Hình 21 Cây thư mục của dữ liệu WebKb 56

Trang 6

LỜI MỞ ĐẦU

Sự phát triển của khoa học cơng nghệ, đặc biệt là mạng truyền thơng, khơng chỉ đáp ứng nhu cầu thơng tin hàng ngày, mà cịn tạo ra những dịch vụ trợ giúp cho mọi người Việc người dùng trên mạng truyền thơng trong đổi thơng tin qua những tin nhắn, email, diễn đàn (forum), … ngày càng trở nên phổ biến Cùng với sự phát triển của dịch vụ gửi các thơng tin qua các dịch vụ, cũng ngày càng xuất hiện của những tin nhắn, thư rác với vơ vàn loại nội dung khác nhau nhưng đa phần đều gây phiền nhiễu cho người dùng khi phải nhận được những thơng tin này Để hỗ trợ người sử dụng tự động phân loại các tin nhắn, email như vậy, hiện cĩ rất nhiều phần mềm cũng như dịch vụ hỗ trợ, các chương trình hiện tại thường sử dụng những từ khố, blacklist để phân loại, những cách làm này cĩ hiệu quả, nhưng khơng triệt để Vì vậy cần đưa ra giải pháp phân loại các tin nhắn, email như vậy dựa trên nội dung văn bản Chính lý do trên, luận văn sẽ tập trung tìm hiểu về bài tốn phân loại văn bản (Text Categorization)

Với Luận văn này, em tập trung nghiên cứu sâu vào bài tốn cùng với 02 phương pháp để thực hiện phân loại văn bản đĩ là Nạve Bayes, và Support Vector Machine (SVM) Thực hiện phân loại trên các tập dữ liệu mẫu, và đánh giá kết quả thu được

Các nội dung cơ bản thực hiện trong quá trình nghiên cứu:

● Nghiên cứu giải thuật SVM nĩi chung và áp dụng cho bài tốn phân loại văn bản nĩi riêng

● Tìm hiểu các cải tiến của giải thuật Nạve Bayes, cho kết quả phân loại tốt gần với giải thuật SVM

Phương pháp thực hiện:

● Xây dựng chương trình mơ phỏng giải thuật

● Thực hiện kiểm nghiệm trên các bộ dữ liệu mẫu

Trang 7

CHƯƠNG 1 TỔNG QUAN VỀ BÀI TOÁN

PHÂN LOẠI VĂN BẢN

1.1 SỰ CẦN THIẾT CỦA VIỆC PHÂN LOẠI VĂN BẢN

1.1.1 Phân loại văn bản cùng với các ứng dụng

Quá trình phân loại văn bản nhằm mục đích xác định một văn bản (document) cho trước thuộc lớp ngữ nghĩa được xác định trước Với mục đích ấy, việc phân loại văn bản được áp dụng rất nhiều trong cuộc sống hiện tại, ứng dụng cụ thể nhất

đó là sắp xếp lại tập các văn bản, thành các nhóm để có thể thuận lợi cho việc tra cứu, tìm kiếm Đơn giản như khi vào thư viện, người đọc có thể xác định được nhanh chóng quyển sách mình muốn tìm dựa vào các phân loại sách trong thư viện Một trang web tin tức với các bài viết được sắp xếp theo nội dung sẽ giúp người đọc thuận tiện cho chuyên mục mình thích, cũng như giúp họ có thể nhanh chóng tìm đến những bài báo với nội dung mong muốn

Hình 1 Các bài viết trên trang web được sắp xếp theo mục

Việc thực hiện phân loại ngoài mục đích trên còn có thể giúp những người làm việc nhiều với các hệ thống email, tin nhắn có thể phân loại các thông tin mình nhận được thành các nhóm một cách tự động từ đó có thể dễ dàng tìm được những

Trang 8

được ưa thích nhất, ưa thích ít hơn, kém ưa thích hoặc các thư làm phiền Hơn thế nữa, một ứng dụng cũng được sử dụng tương đối nhiều của phân loại văn bản Đó

là thực hiện phân loạinhững email, tin nhắn nhận được là các email spam, tin nhắn rác Email spam ở đây chính là những email với nội dung xấu, không lành mạnh, hoặc những email lừa đảo, hay đơn giản là những email quảng cáo sản phẩm gây phiền nhiễu cho người dùng Với những nội dung tương tự những tin nhắn rác được gửi qua đường SMS đến người dùng cũng gây phiền nhiễu không kém, cũng có thể được phân loại nhờ áp dụng việc phân loại văn bản

1.1.2 Nội dung văn bản thành phần chủ chốt để xác định văn bản

Khi tiếp xúc với một văn bản, để xác định được sơ lược nội dung trong thời gian ngắn, chúng ta thường tìm hiểu tiêu đề của văn bản Cách làm này tỏ ra khá hiệu quả với người, vì việc này có thể giúp chúng ta phân loại văn bản một cách nhanh chóng hơn mà không cần thiết phải đọc hết nội dung của văn bản Trong trường hợp đoạn văn bản không có tiêu đề hoặc chỉ là trích dẫn, chúng ta sẽ sử dụng ý chính của văn bản thông qua câu chốt, thường nằm ở đầu hay cuối đoạn văn

Nhưng đối với cách phương pháp phân tích tự động bằng máy tính cách làm này trở nên kém hiệu quả và không chính xác, bởi những câu tiêu đề của văn bản được tóm tắt sơ lược theo ý hiểu của con người, vì vậy để phân tích được kỹ, chính xác nội dung đòi hỏi phải có một lượng tri thức lớn Ví dụ như bài báo với tiêu đề

“10 phòng VIP 5 sao ‘khủng’ nhất thế giới”, một tiêu đề khá phổ biến, thường gặp trên các báo mạng, tiêu đề đưa ra những từ ‘VIP’, ‘khủng’ là những từ có ý nghĩa đặc biệt, đòi hỏi chương trình phân tích tự động phải có tri thức riêng mới có thể xác định được ngữ nghĩa Tương tự, với những câu chốt của văn bản, để xác định được chính xác câu chốt của văn bản cũng đòi hỏi một lượng tri thức riêng Bên cạnh đó, khi phân tích phục vụ cho bài toán phân loại văn bản với mục đích phân loại các SPAM email (email rác) cũng gặp rất nhiều trường hợp phần tiêu đề của văn bản không thể hiện nội dung của văn bản, mà mang một nghĩa hoàn toàn khác, nhằm đánh lừa người dùng email, hay các chương trình phân loại

Từ đó ta thấy rõ ràng rằng, để xây dựng một hệ thống phân loại văn bản một cách tự động, ít phải tác động từ phía con người, cần dựa trên việc phân tích nội dung toàn bộ văn bản, việc phân tích như vậy sẽ làm tăng được độ chính xác của quá trình phân loại văn bản cũng như tăng cường tri thức của hệ thống phân loại, hỗ trợ cho các phân loại say này

Trang 9

1.2 BÀI TOÁN PHÂN LOẠI VĂN BẢN

1.2.1 Định nghĩa

Phân loại văn bản (Text Classification, hay còn có tên khác là Text Categorization hoặc Topic spotting ở đây được viết tắt là TC) là hệ thộng tự động phân loại và gán cho văn bản một tên lớp (Categorization, Class, hoặc Topic) đã được định nghĩa từ trước

Xây dựng một hệ thống phân loại văn bản là sự kết hợp của hệ thống trích rút thống tin (Information Retriveal – viết tắt IR) và hệ thống học máy (Machine Learning – viết tắt ML)

1.2.2 Phát biểu bài toán

Để tiện trong quá trình thực hiện trình bày các thuật toán cũng như phương pháp giải bài toán, trong phần này luận văn đưa ra một cách phát biểu bài toán

Phân loại văn bản thực tế là xây dựng hàm phân loại  như sau:

Trong đó:

● D(Documents) là tập hợp các văn bản cần được phân loại,

(với n là số lượng văn bản)

● C (Categories) là tập hợp các lớp chứa các văn bản

là không gian kết hợp mỗi văn bản d i với một lớp các văn bản c j

Hàm sẽ thực hiện:

Một số điều cần lưu ý với bài toán:

● Việc phân loại văn bản thực hiện dựa trên nội dung của văn bản (text only), mà không dựa trên những thông tin thêm như tên văn bản hoặc các metadata để thực hiện phân loại

● Việc phân loại văn bản trong thực tế cũng là một vấn đề có tính chủ quan

Trang 10

một lớp nào đó Vì vậy, việc xây dựng hệ thống phân loại sẽ được xây dựng là một hệ thống học có giám sát (Supervised Learning) trong lĩnh vực học máy hay có thể nói là các văn bản sẽ được phân loại dựa trên một lượng các văn bản đã được phân loại sẵn

1.2.3 Phân loại

Với một văn bản bất kỳ, mỗi khi được phân loại vào các lớp, văn bản sẽ được gán nhãn (label) Việc thực hiện phân loại có thể là đơn nhãn (single-label tức là mỗi văn bản chỉ thuộc vào một lớp nào đó) hoặc đa nhãn (multi-label tức là mỗi

văn bản d i có thể thuộc vào một hoặc nhiều lớp khác nhau)

Với bài toán TC đơn nhãn ta có thể đưa ra khẳng định mỗi văn bản có duy nhất

một lớp c j sao cho Vì vậy ta có thể viết lại hàm  trở thành hàm

có một tham số:

Bài toán TC nhị phân (binary TC) là một bài toán đơn nhãn đặc biệt, ở đây mỗi văn bản được phân loại thuộc lớp c hay không Vì vậy ta có thể viết lại hàm 

trở thành:

Đối với bài toán TC đa nhãn có thể được coi như một tập hợp |C| các bài toán

TC nhị phân mỗi hàm sẽ thực hiện phân loại có thuộc lớp c i hay không:

1.3 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU

Khả năng xây dựng một máy có khả năng “học” từ những kinh nghiệm đã là một đề tài tranh luận giữa các nhà khoa học Nhờ xuất hiện máy tính điện tử, việc xây dựng những cỗ máy có khả năng “học” đã được hỗ trợ rất nhiều và đem lại nhiều kết quả mới Những kết quả này đã thể hiện được rằng có thể thiết kế được những máy có thể thể hiện một cấp độ nào đó của khả năng “học”, nhưng những định nghĩa rõ ràng về danh giới của việc thể hiện này vẫn còn đang được làm rõ

Trang 11

Việc xây dựng những hệ thống có khả năng “học” là vô cùng quan trọng, bởi

có những vấn đề phức tạp không thể giải quyết được bằng những kĩ thuật lập trình

cổ điển, cũng như không có mô hình toán học nào sẵn có có thể thể hiện được Một

ví dụ điển hình cho vấn đề này là xây dựng một chương trình máy tính có thể nhận dạng được chữ viết tay Xây dựng một mô hình toán học để kiểm tra tính toán đưa

ra các kết quả nhận dạng các chữ viết tay như vậy là vô cùng phức tạp Tuy vậy, các mẫu viết sẵn, “mẫu” có thể dễ dàng xây dựng Chính vì vậy, một cách đơn giản

và tự nhiên, ta sẽ, thay vì xây dựng một mô hình tính toán phức tạp, xây dựng một phương pháp “huấn luyện” để máy tinh có thể nhận dạng được chữ viết tay từ những mẫu được đưa ra sẵn, đó cũng chính là cách con người thực hiện việc “học” đọc chữ viết Trong phần nội dung của luận văn này sẽ sử dụng hướng tiếp cận này

để giải bài toán đã được đưa ra

1.3.1 Sự cần thiết xây dựng hệ thống có khả tự “học”

Khi sử dụng máy tính để giải quyết một vấn đề, công việc của người xây dựng

hệ thống máy tính chính là tạo ra một hướng dẫn bao gồm một chuỗi các thao tác

cụ thể để máy tính có thể làm theo trong một khoảng thời gian nhất định để đưa ra được kết quả đầu ra từ một đầu tập các yếu tố đầu vào được mô tả một cách rõ ràng

Bằng cách đó, việc tính toán của máy tính các trở nên tốt hơn, giải quyết được những bài toán ngày càng phức tạp hơn, nhưng vẫn còn một lượng rất lớn các bài toán, vấn đề hiện tại vẫn chưa thể tìm được một phương pháp tính toán, cũng như phương pháp tính toán hiện tại còn tốn rất nhiều tài nguyên cũng như thời gian tính toán quá lớn Điển hình cho các bài toán như vậy là việc mô phỏng hiện tượng xảy

ra của các phản ứng hoá học mà độ chính xác của phản ứng từ các chất tham gia chưa được biết, một ví dụ khác đó là phân loại các protein dựa trên các chuỗi DNA cấu tạo nên…

Những tính toán này hiện chưa thể thực hiện bằng các phương pháp tính toán, lập trình cổ điển, vì vậy các lập trình viên, kỹ sư hệ thống không thể đưa ra một cách chính xác hệ thống có thể xác định kết quả ra đúng từ việc tính toán các kết quả đầu vào Có một hướng tiếp cận khác nhằm giải quyết các vấn đề trên, đó là thực hiện học các cặp dữ liệu input/output từ các ví dụ có sẵn, hệt như cách dậy một đứa trẻ có thể nhận ra những chiếc xe thể thao một các đơn giản thông qua cho chúng nhìn thấy một loạt các ví dụ về các xe thể thao (đơn giản hơn rất nhiều so với việc đưa ra mô tả chính xác về một chiếc xe thể thao) Hướng tiếp cận để xây dựng nên các chương trình, hệ thống tính toán này được gọi là phương pháp “học”

Trang 12

input/output được gọi là học có giám sát (supervised learning) Các bộ dữ liệu

input/output được gọi là dữ liệu huấn luyện (training data)

Các cặp dữ liệu input/output thường được thể hiện bởi một hàm quan hệ cho phép xác định kết quả output dữ liệu input, nhưng trong thực tế rất ít trường hợp có thể xác định được rõ hàm nhờ các cặp dữ liệu input/output, bởi các cặp dữ liệu thu thập được này còn bị ảnh hưởng bởi nhiễu, làm tròn,… khiến các kết quả thu được không còn chính xác vì vậy ảnh hưởng đến việc xác định đúng được hàm cho phép tính toán được kết quả output từ input Vì vậy cần có những phương pháp cho phép xác định hàm đúng từ các bộ kết quả input/output, các phương pháp, thuật toán được dùng cho phép tính toán đó được gọi là các giải thuật học Các giải thuật này thực tế là giải thuật tìm kiếm cho phép chọn được một hàm phù hợp nhất trong không gian của các hàm ánh xạ từ không gian input đến không gian output Với một không gian tìm kiếm lớn như vậy, chúng ta sẽ giảm bớt không gian tìm kiếm bằng cách chọn một lớp các hàm cụ thể có thể thích hợp nhất với hàm đích, lớp

hàm này được gọi là giả thuyết (hypothese) Ví dụ, Cây Quyết Định (Decision

Tree) là một giả thuyết cho rằng hàm tìm kiếm nằm trong lớp hàm có thể được biểu diễn bằng cây nhị phân với các hàm quyết định tại các nhánh và kết quả đầu ra từ kết quả đầu vào được thể hiện ở các nút lá Vì vậy, ta có thể coi như việc lựa chọn giả thuyết sẽ mang tính quyết định rất nhiều đến chiến lược học Bên cạnh đó, thuật toán được dùng để tìm kiếm hàm đích từ các dữ liệu huấn luyện dựa trên giả thuyết

đã được lựa chọn từ trước chính là nhân tố quan trọng thứ hai Thuật toán này còn được gọi là giải thuật học

1.3.2 Khai phá dữ liệu, một lớp của hệ thống tự “học”

a) Khai phá dữ liệu

Với sự phát triển của hệ thống công nghệ thông tin, người dùng, cũng như các doanh nghiệp, đều lưu trữ một lượng lớn dữ liệu trong suốt quá trình hoạt động kinh doanh, quản lý,… Những dữ liệu này ngày một phát triển theo thời gian, khiến việc tìm kiếm, sử dụng dữ liệu này vào mục đích giúp ích cho các hoạt động trong tương lai trở nên khó khăn Vì vậy ngày càng nhiều đơn vị có nhu cầu cần xây dựng một phương pháp hiệu quả để có thể khai thác dữ liệu để xác định mối quan

hệ giữa các dữ liệu, tác động qua lại giữa dữ liệu, quy luật trong tập dữ liệu, thông tin có ích, và cao hơn nữa là các tri thức… Quá trình đó có thể gọi là “khai phá dữ liệu” (data mining), được thể hiện như hình dưới đây:

Trang 13

Hình 2 Tháp mô tả quá trình đúc rút tri thức từ dữ liệu

Ta có thể thấy, việc thực hiện trích rút thông tin của “khai phá dữ liệu” được thực hiện qua các tầng với hình tháp nhọn tại đỉnh:

● Data (tầng dưới cùng) đây là tầng dưới cùng, là các dữ liệu ghi lại các hoạt động, các sự kiện thực tế của doanh nghiệp, người dùng

● Information (tầng tiếp theo) là tầng tiếp theo, là các dữ liệu được sắp xếp lại, chuẩn hoá lại, phân loại nhằm mục đích nào đó

● Knowledge (tầng tri thức) tầng tri thức thể hiện những kinh nghiệm, được đúc rút từ tầng information, được xây dựng bằng cách tính toán những dữ liệu ở tầng dưới

● Wisdom: tầng cao nhất, thể hiện những khẳng định luôn đúng, với mục đích đưa ra những dự đoán, những quyết định trong tương lai

Từ đó khai phá dữ liệu có thể được mô tả như sau:

Khai phá dữ liệu là một tập các kỹ thuật được sử dụng để tự động khai thác và tìm ra các mối quan hệ tương hỗ của dữ liệu từ một tập dữ liệu rất lớn và phức tạp, tìm ra những mẫu tiềm ẩn trong tập dữ liệu đó

b) Phân biệt công cụ truy vấn và công cụ khai phá dữ liệu

Chúng ta thường hay nhầm lẫn giữa công cụ truy vấn (Querry Tool) và khai phá dữ liệu (Data Mining) Sở dĩ có điều này là do cả hai công cụ này đều rút ra dữ liệu từ cơ sở dữ liệu, song chúng lại có sự khác biệt rất rõ ràng Chúng ta xét ví dụ sau để phân biệt sự khác nhau giữa 2 công cụ này:

Trang 14

● Với công cụ hỏi - đáp, người sử dụng chỉ có thể đặt ra truy vấn có dạng như: “Khối lượng hàng hoá bán được ở miền Bắc hơn khối lượng hàng hoá

ở miền Nam là bao nhiêu?” Từ đó tự suy luận ra khối lượng hàng hoá bán

ra phụ thuộc vào sự biến động của thị trường

● Với khai phá dữ liệu có thể giải quyết những mục đích cơ bản và rộng lớn hơn Đối với câu hỏi như trên, thay vì chỉ ra mối quan hệ giữa lượng hàng hoá bán ra ở 2 địa điểm, nó còn có thể cho ta biết các nhân tố có ý nghĩa nhất liên quan đến nguyên nhân khối lượng hàng hoá bán ra thấp, trung bình hay cao và các nhân tố đó hoàn toàn ta chưa biết trước Người sử dụng

có thể đưa ra các câu hỏi yêu cầu để quá trình khai phá dữ liệu phát hiện ra những nhân tố ảnh hưởng đến khối lượng hàng bán được Nó không cần sự chỉ dẫn nào của người sử dụng, mà sẽ tự khám phá ra các mối quan hệ, các mẫu tiềm ẩn mà những mẫu, mối quan hệ này không phải dễ dàng thấy được

c) Phân lớp và phân đoạn dữ liệu

Sự khác nhau của các phương pháp khai phá dữ liệu đó là việc xây dựng mô hình để biểu diễn dữ liệu và các giải thuật tác động trên dữ liệu Về các giải thuật thì thông dụng nhất là các thuật toán học máy (bao gồm cây quyết định, mạng nơron, các thuật toán học không giám sát ) và các thuật toán di truyền Các thuật toán này chủ yếu là các thuật toán phân đoạn và phân lớp dữ liệu

● Phân lớp dữ liệu:

Con người thường có ý tưởng phân sự vật thành các nhóm khác nhau, ví dụ sinh vật thì được phân chia thực vật và động vật Người thì được chia thành người già, trẻ em, thanh niên

Phân lớp dữ liệu là chia một tập dữ liệu vào các lớp khác nhau Chẳng hạn

ta có một tập các trang HTML chứa các thông tin và có các lớp thông tin là kinh tế, văn hóa, khoa học, xã hội, thể thao Việc xem một trang HTML thuộc lĩnh vực nào trong các lĩnh vực trên chính là phân lớp dữ liệu

Các thuật toán trong phân lớp dữ liệu thường là các thuật toán học có giám sát

● Phân cụm dữ liệu:

Rất nhiều người nhầm lẫn phân đoạn dữ liệu và phân lớp dữ liệu, bởi vì phân đoạn dữ liệu rất giống với phân lớp dữ liệu Phân đoạn dữ liệu là việc nhóm các dữ liệu giống nhau thành một nhóm Giống nhau ở đây được quy định bởi một tập các thuộc tính được xét, số các nhóm có thể không biết trước, khác với giải thuật phân lớp, số lớp là hoàn toàn xác định trước

Trang 15

Ví dụ: khi xét đến các thực thể là các loại quả Có một tập các quả, ta không biết tên của chúng, tập các thuộc tính được xét ở đây là màu sắc (vàng, trắng, xanh, đỏ), mùi (thơm, không thơm), vị (ngọt, chua, chát), kích thước (lớn, bé) Sự giống nhau ở đây chính là sự bằng nhau giữa các trị của cùng một thuộc tính, hai quả có số các thuộc tính bằng nhau càng nhiều thì

sự giống nhau càng lớn Các thuật toán phân đoạn dữ liệu thường là các thuật toán học không giám sát

1.3.3 Phương pháp gần đúng để giải quyết bài toán phân loại văn bản

Như đã thấy việc giải bài toán phân loại văn bản cần phải sử dụng các giải thuật học máy để thực hiện trích rút thông tin từ những dữ liệu ban đầu, quá trình này chính là quá trình khai phá dữ liệu Sau đây luận văn sẽ giới thiệu kỹ hơn về khai phá dữ liệu và những giải thuật áp dụng trong quá trình khai phá tri thức có thể được áp dụng vào bài toán

Để thực hiện giải bài toán, tức là tìm hàm  thỏa mãn yêu cầu một cách chính xác là khó khăn và không thể thực hiện được vì việc phân lớp các văn bản còn nhiều lúc mang cảm tính, ngay cả khi việc xác định 1 văn bản bất kỳ có thuộc một lớp cho trước nào đó hay không cũng nhiều lúc gây khó khăn cho con người Chính

vì những lý do trên, để thực hiện giải quyết bài toán phân loại văn bản này, giải pháp được đưa ra là sử dụng phương pháp giải gần đúng Thay vì xác định được chính xác hàm , người ta sẽ thực hiện tìm hàm ’, gần đúng hàm  theo một tỉ lệ đúng nào đó Có rất nhiều phương pháp tìm kiếm hàm nhưng trong phạm vi luận văn phương pháp tìm kiếm được đưa ra để tìm kiếm hàm ’ thông qua phương pháp Học máy (Machine Learning)

Với phương pháp Học máy, hàm ’ sẽ được xây dựng dưới các mô hình cụ thể như hình cây quyết định, mạng nơ-ron,… Các mô hình này sẽ được “huấn luyện” (training) dựa trên các “mẫu” để tăng dần độ chính xác của hàm ’ trong việc phân loại văn bản

Cả quá trình thực hiện phân loại văn bản sẽ được thực hiện thông qua 3 pha sau:

● Đánh chỉ mục văn bản (Document indexing): đây là pha sử dụng các lý thuyết của IR (trích rút thông tin) sau khi thực hiện pha này các văn bản sẽ được tách thành các từ và thu gọn lại phục vụ cho các pha sau

● Học phân loại (Classifier learning): đây là pha sử dụng các lý thuyết của

ML (học máy) ở pha này trước hết các văn bản đã được phân loại sẵn –

Trang 16

model (mô hình) phân loại Khi đã xây dựng được model phân loại thì từ sau các văn bản sẽ được thực hiện phân loại dựa trên mô hình này

● Đánh giá phân loại (Classifier eveluation): Đây là pha sử dụng cách đánh giá của phương pháp ML (học máy) dựa trên những kết quả phân loại đã thực hiện các tỉ lệ để đánh giá độ tốt của model phân loại đã xây dựng lại, hoặc cũng có thể dựa vào đó để quyết định có cần thiết phải học lại hay không

b) Đánh chỉ mục văn bản

Đây là pha đầu tiên khi văn bản được đưa vào hệ thống phân loại, sau đó mỗi văn bản này sẽ được biểu diễn dưới dạng một vector nhiều chiều, mỗi chiều là 1 trọng số của từng term<w1j, w2j, … ,w|T|j>, với 0 ≤ wij≤ 1

Để thực hiện được việc này, ta cần phải là 2 bước:

● Bước thứ nhất là định nghĩa một term trong văn bản Cách đơn giản nhất

có thể là ta sẽ thực hiện coi mỗi từ (words) chính là một term Nhưng khi

đó ta sẽ thấy rằng có một số từ với số lần xuất hiện trong văn bản lớn nhưng nó lại không đóng vai trò lắm trong nội dung của văn bản Do đó cũng không ảnh hưởng đến việc phân loại cho văn bản Trong thực tế những từ như vậy lại rất hay gặp và có khá nhiều trong các văn bản Vì vậy, để giảm số lượng term cần xử lý ta sẽ thực hiện loại bỏ các từ như vậy khi xét đến các term, để làm được cần phải xây dựng một danh sách cho trước các từ có tính chất trên để so sánh với các từ tách được từ văn bản Danh sách này được gọi là stop-list Khi các từ xuất hiện trong văn bản có thể xuất hiện dưới dạng khác nhau do thêm vào các tiền tố hoặc các hậu tố Trong đa phần các trường hợp như vậy, các tiền tố cũng như hậu tố này dài

và làm tăng kích thước của một term Vì vậy thay vì lưu trữ từ cụ thể người

ta sẽ tìm cách kiểm tra và tách lấy các steam (từ gốc) của từ đã cho như vậy

ngoài việc giảm nghĩa từ còn có thể giảm được kích thước của vector văn

bản xuống do các từ khác nhau do cùng steam tạo thành có thể được coi như là một thành phần Ngoài ra việc định nghĩa term còn có thể được định

nghĩa như những cụm từ ở những lĩnh vực khác nhau khi đó mỗi cụm từ sẽ mang một ý nghĩa đặc biệt và người ta có thể dựa vào đó để định nghĩa một

term khi đó một term không chỉ là một từ nữa mà là một cụm từ vì vậy có

thể giảm một lượng khá lớn kích thước của vector của mỗi văn bản vào

● Bước thứ hai là thực hiện tính trọng số của các term Việc tính trọng số

của các term khá quan trọng, vì nó sẽ giúp cho việc học và phân loại các

Trang 17

văn bản tốt hơn Trọng số của term có thể là nhị phân (w kj∈ {0, 1}), hay số

thực (0 ≤ w kj ≤ 1) Việc tính trọng số của từng term có thể đơn giản nếu trọng số chỉ là 0 hoặc 1 tuỳ thuộc term có xuất hiện trong văn bản hay không Với trường hợp trọng số của term là số thực, giá trị này sẽ được tính tính theo công thứcTF×IDF (với TF là Term Frequence, IDF là Inverse Document Frequency) Ta có thể hiểu được rất rõ cách tính này nhờ hai đặc tính sau của tần suất xuất hiện:

◦ Nếu xác suất xuất hiện của term t k trong văn bản dj càng lớn, thì term t k càng quan trọng trong văn bản d j đối với việc phân loại văn bản này

◦ Nếu số lượng văn bản mà term t k càng lớn, thì term t k càng kém quan trọng đối với việc phân loại các văn bản này

Ngoài các bước trên, khi phân loại văn bản, ta còn thực hiện công việc giảm không gian (dimensionality reduction) Công việc này thực tế là giảm kích thước của văn bản (số từ biểu diễn văn bản) cho đến một ngưỡng được xác định từ trước Cách thực hiện việc giảm không giản này là thực hiện lựa chọn từ thích hợp: mỗi

term được sẽ được tính điểm bằng cách lưu lại bậc quan hệ giữa từ với lớp c j và chỉ

những từ có điểm cao nhất mới được sử dụng để biểu diễn văn bản

c) Học phân loại

Bộ phân loại văn bản thực hiện theo phương pháp quy nạp, bằng cách sử dụng một lượng lớn những văn bản đã được thực hiện phân loại từ trước Dựa trên một cách thức nào đó (cách thức này tùy thuộc vào giải thuật học được áp dụng) để lưu trữ lại những thông tin Những thông tin này sẽ được thực hiện phân loại những văn bản sau này (chưa có trong bộ văn bản phân loại mẫu ban đầu)

Để làm được điều này (xây dựng một bộ phân loại văn bản vào các lớp C), ta

sẽ lập một tập Ω các văn bản mà giá trị của hàm (d i ,c j) đã được xác định cho tất

cả các giá trị (d i ,c j) ∈ Ω × C Trong thực nghiệm người ta phân tập Ω ra thành 3 tập

con rời nhau:

Trang 18

● Tr – Tập trainning: Đây là tập hợp những văn bản để bộ phận phân loại sẽ

thực hiện học (xây dựng một model phân loại với các tham số cụ thể)

● Va – Tập Validation: Đây là tập hợp các văn bản dùng để tinh chỉnh bộ

phân loại để tránh trường hợp bộ phân loại quá thích nghi với bộ dữ lệu training Việc thực hiện chỉnh sửa được thực hiện bằng cách cho bộ phân loại, để xây dựng được từ tập training phân loại các văn bản trong bộ dữ liệu Validation, sau đó sẽ chỉnh sửa lại tham số phù hợp để nâng cao kết quả phân loại này

● Te – Tập Test: Đây là tập hợp các văn bản dùng để thực hiện đánh giá bộ

phân loại đã xây dựng được từ hai tập dữ liệu trên từ đó biết được chất lượng phân loại của bộ phân loại xây dựng được

Ở đây việc thực hiện phân loại (được thực hiện trong quá trình sử dụng các tập

Va và Te) chính là sử dụng các phần nội dung của các văn bản để đưa vào bộ phân loại rồi nhận kết quả phân loại được thực hiện từ bộ phận này, sau đó thực hiện so sánh với kết quả được phân loại từ trước rồi đánh giá hoặc kiểm tra tùy từng bộ dữ liệu cụ thể và mục đích sử dụng của các bộ dữ liệu này

Với mỗi bộ phân loại áp dụng các giải thuật khác nhau thì việc phân loại cũng

có khác một chút Có những giải thuật việc đưa ra kết quả phân loại cho từng lớp

sẽ dưới dạng nhị phân (0 – 1, True – False) Nhưng cũng có những bộ phân loại mà kết quả phân loại này lại được cho dưới dạng những số thực biến thiên trong khoảng [0, 1] vì vậy để đưa ra kết quả phân loại cuối cùng người ta cũng phải đưa

ra ngưỡng để từ đó chuyển sang kết quả dưới dạng nhị phân Việc xác định ngưỡng này cũng là một công việc cũng khá khó khăn và được thực hiện trong quá trình học của giải thuật

d) Đánh giá học phân loại

Để đánh giá kết quả của một bộ phân loại khi được xây dựng thành công người ta thường sử dụng 3 tham số sau:

● Training efficiency được tính bằng khoảng thời gian trung bình để thực

hiện xây dựng bộ phân loại dựa trên bộ dữ liệu cho trước

● Classification efficiency được tính bằng khoảng thời gian trung bình để

thực hiện phân loại một văn bản sử dụng bộ phân loại

● Effectiveness được tính bằng tỉ lệ phân loại đúng trung bình của các bộ

phân loại

Trong quá trình nghiên cứu bài toán phân loại văn bản, tham số Effectiveness

là quan trọng nhất, vì đây là tham số để đánh giá độ hiệu quả khi áp dụng từng giải

Trang 19

thuật khác nhau vào việc phân loại văn bản Đối với hai tham số còn lại thì lại phụ thuộc khá nhiều vào hệ thống phần cứng, phần mềm mà hệ thống phân loại được cài đặt lên Nhưng nhìn chung, nếu chúng cùng được cài đặt lên một hệ thống phần cứng và phần mềm giống nhau thì hai tham số này cũng phụ thuộc vào giải thuật được áp dụng vào để phân loại văn bản nên ta cũng chỉ cần chú trọng vào tham số Effectiveness

Đối với những ứng dụng của bài toán này, cả ba tham số đều quan trọng, vì vậy chúng ta cần cân đối giữa các tham số này khi xây dựng ứng dụng Ví dụ, với một ứng dụng có tương tác với người dùng thì tham số Classification efficiency khá quan trọng, nhưng đối với một ứng dụng áp dụng bài toán đa nhãn, với số lượng các lớp khá lớn (hàng nghìn lớp) thì việc học lúc này lại khá vất vả và tham số Training efficiency lại được chú tâm hơn Nhưng dù vậy thì Effectiveness cũng có

xu hướng trở thành yếu tố quan trọng trong việc xây dựng những ứng dụng, và những ứng dụng người dùng thường được để ý đến những chỉ số Classification efficiency và Effectiveness

Đối với bài toán phân loại đơn nhãn, thì chỉ số Effectiveness được tính bằng accuracy, nó chính bằng phần trăm các văn bản được phân loại đúng (còn error được tính bằng phần bủ cùa giá trị accuracy này ) Ngược lại, đối với các bài toán phân loại nhị phân, người ta lại không thể sử dụng accuracy để tính, bởi lẽ với các ứng dụng của bài toán phân loại nhị phân thì thông thường dữ liệu sẽ không cân bằng giữa hai lớp và sẽ có một lớp có số lượng dữ liệu nhiều hơn Nếu như vậy ta có thể xây dựng một số bộ phân loại có xu hướng ưu tiên phân loại các văn bản vào lớp phổ biến hơn khiến cho accuracy tăng lên, những bộ phân loại như vậy sẽ có accuracy cao nhưng khả năng phân loại không tốt vì chỉ hướng về việc phân loại cho một lớp, do vậy những ứng dụng trong thực tế sẽ không thể dùng những bộ phân loại như vậy

Để đánh giá kết quả phân loại của bộ phân loại nghị phân người ta sử dụng hai tham số precision viết là ( ) hay viết là ( ) thay cho accuracy, bởi lý do đã nêu trên Để hiểu hơn về hai tham số này ta sẽ dựa vào bảng sau:

Từ đó, ta có thể đưa ra công thức của precision và recall như sau:

Trang 20

Với ý nghĩa của từng công thức như sau:

● Precision: tỉ lệ giữa những văn bản được phân loại thuộc về lớp trong

số những văn bản thực tế thuộc về lớp này

● Recall: tỉ lệ của những văn bản thuộc về lớp trong số những những văn

bản đã được phân loại thuộc về lớp này

Đối với những bài toán phân loại đa nhãn, để tính được effectiveness cho tất

cả các lớp khác nhau người ta cần tổng hợp từ những kết quả phân loại cụ thể cho từng lớp sau đó tính trung bình bằng một số cách khác nhau Các cách tính đó cũng được thể hiện trong bảng sau:

Trong đó giá trị của khi công thức đã cho trở thành

đây chính là trung bình điều hòa của precision và recall

Trong một số bài toán thì mức độ quan trọng của precision và recall có khác nhau, ví dụ như đối với bài toán lọc spam, ở đây các văn bản sẽ được phân thành

hai loại spam và không spam, đối với việc phân loại này thì tỉ lệ precision quan

trọng hơn recall nhiều bởi lẽ đối với việc phân loại như vậy thì những văn bản không spam nhưng bị phân loại thành spam sẽ gây nên những lỗi nghiêm trọng hơn nhiều so với những văn bản spam nhưng lại bị phân loại thành không spam

Trang 21

CHƯƠNG 2 GIẢI THUẬT NẠVE BAYES VỚI BÀI TỐN

PHÂN LOẠI VĂN BẢN

2.1 PHÂN BỐ MULTINOMIAL

Ta đã khá quen thuộc với một phân bố khá nổi tiếng trong lý thuyết xác suất

đĩ là phân bố nhị phân (binomial distribution), phân bố multinomial được coi là một mở rộng của phân bố nhị phân

Phân bố nhị phân là một loại phân bố xác suất của số lần “thành cơng” trong

tổng số n phép thử Bernoulli độc lập, với tỉ lệ “thành cơng” ở mỗi lần thử là như

nhau Với phân bố multinomial, giá trị phân bố Bernoulli là một tập hợp các giá trị, với mỗi lần thử xác suất xuất hiện của từng giá trị đĩ sẽ là một xác xuất xác định

(p1, p1, …pk) với với và ), trong số n phép thử độc lập Ta gọi biến là số lần của kết quả thứ xuất hiện trong tổng số phép thử, thì vector chính là một phân bố multinomial với các tham số

đã cho tính theo phân bố Multinomial Đây chính là cách để áp dụng phân bố xác suất vào một văn bản bất ký được áp dụng vào phương pháp Naive Bayes (sẽ được trình bầy phía dưới)

Trang 22

2.2 CÔNG THỨC XÁC SUẤT BAYES

Định lí Bayes là một định lý khá quan trọng của lí thuyết xác suất Nó đề cập đến phân bố xác suất có điều kiện của biến ngẫu nhiên A khi đã xuất hiện biến ngẫu nhiên B, thông qua một số xác suất khác

Theo định lí Bayes, xác suất xảy ra A khi biết B sẽ phụ thuộc vào 3 yếu tố:

● Xác suất xảy ra A của riêng nó, không quan tâm đến B Kí hiệu là P(A) và

đọc là xác suất của A Đây được gọi là xác suất biên duyên hay xác suất tiên nghiệm, nó là "tiên nghiệm" theo nghĩa rằng nó không quan tâm đến

bất kỳ thông tin nào về B

● Xác suất xảy ra B của riêng nó, không quan tâm đến A Kí hiệu là P(B) và

đọc là "xác suất của B" Đại lượng này còn gọi là hằng số chuẩn hóa

(normalising constant), vì nó luôn giống nhau, không phụ thuộc vào sự kiện A đang muốn biết

● Xác suất xảy ra B khi biết A xảy ra Kí hiệu là P(B|A) và đọc là "xác suất của B nếu có A" Đại lượng này gọi là khả năng (likelihood) xảy ra B khi biết A đã xảy ra Chú ý không nhầm lẫn giữa khả năng xảy ra A khi biết B

và xác suất xảy ra A khi biết B

● Khi biết ba đại lượng này, xác suất của A khi biết B cho bởi công thức:

● Từ đó dẫn tới

2.2.2 Các dạng khác của định lý Bayes

Định lý Bayes thường cũng thường được viết dưới dạng

Hay

Trang 23

trong đó AC là biến cố bù của biến cố A (thường được gọi là "không A") Tổng quát hơn, với {Ai} tạo thành một phân hoạch của không gian các biến cố,

Với phân hoạch {Aj}

Công thức này còn được biết dưới tên công thức xác suất đầy đủ

2.2.3 Định lý Bayes với hàm mật độ xác suất

Một dạng của định lý Bayes đối với các phân bố liên tục Đối với chúng, thay cho các xác suất trong định lý Bayes, ta dùng mật độ xác suất Như vậy, ta có các công thức tương tự định nghĩa xác suất điều kiện

và công thức tương tự công thức xác suất đầy đủ:

Ý nghĩa của các thành phần trong các công thức trên là f(x, y) là mật độ phân phối của phân phối đồng thời của các biến ngẫu nhiên X và Y, f(x|y) là mật độ phân phối xác suất hậu nghiệm của X với điều kiện Y=y, f(y|x) = L(x|y) là (một hàm của x) hàm khả năng của X với điều kiện Y=y, và f(x) và f(y) là các mật độ phân phối của X và Y tách biệt nhau, với f(x) là mật độ phân phối tiền nghiệm của X

Điều kiện mặc định trong các công thức là hàm f khả vi và các tích phân công thức tồn tại

2.3 PHƯƠNG PHÁP NAIVE BAYES GIẢI BÀI TOÁN PHÂN LOẠI VĂN BẢN

Xuất phát từ công thức tính xác suất điều kiện của định lý Naive Bayes:

Ý tưởng là sẽ phân loại một thực thể theo lớp có khả năng lớn nhất mà ta thấy được từ bộ dữ liệu ban đầu Ta có thể hình dung nếu coi B là các thực thể dữ liệu cần phân loại, và A là các lớp trong phép phân loại, khi đó ta sẽ tính lần lượt từng xác suất điều kiện để thuộc vào lớp A khi đã có sự xuất hiện của thực thể B Sau đó lớp B sẽ thuộc vào lớp mà có xác suất điều kiện là lớn nhất, khi đó ta có thể có được công thức để tìm lớp phân loại như sau:

Trang 24

Trong đó D là thực thể dữ liệu cần phân loại, còn là các lớp để phân loại thực thể dữ liệu này Ở đây ta thấy rằng do đang xét đến một thực thể dữ liệu cụ thể nên giá trị với mọi lớp là như nhau Vì vậy, ta có thể bỏ ở dưới mẫu

mà không làm ảnh hưởng đến kết quả phân loại cuối cùng

Trong một số trường hợp, vì các lớp khá tương đồng nên ta có thể coi xác suất tiên nghiệm của các lớp là như nhau vì vậy còn có thể bỏ được thành phần

trong công thức trên Việc quan trọng trong thuật toán Naive Bayes ở đây là thực hiện tính những xác suất điều kiện như thế nào Và cách tính các xác suất điều kiện này sẽ phụ thuộc vào từng bài toán cụ thể

Đối với bài toán phân loại văn bản sử dụng phương pháp xác suất (tức là sử dụng công thức Naive Bayes) ta có thể coi mỗi văn bản là một tập hợp các từ độc lập không liên quan đến nhau, hay một “túi” các từ Như vậy, thứ tự xuất hiện của các từ trong văn bản bây giờ không còn quan trọng nữa Văn bản bây giờ trở thành một tập hợp chứa tất cả các từ trong từ điển, mỗi từ có một xác suất xuất hiện nhất định (nếu không xuất hiện thì xác suất này bằng 0)

Ta gọi mỗi phần tử là một lớp để thực hiện phân loại, như vậy

m sẽ là số lượng các lớp Với mỗi lớp ta sẽ có một vector tham số:

Với n là kích thước của từ điển các từ Và

Trong đó là khả năng từ thứ i xuất hiện trong class c Ta thấy rằng đối với mỗi lớp, văn bản có thể được coi là một phân bố multinomial của các từ trong từ điển, từ tương ứng trong văn bản chính là một lần của phép thử và khả năng từ đó

là từ thứ i trong từ điển là Vì vậy phép phân loại văn bản ở đây có tên gọi là Multinomial Naive Bayes Từ đó ta có công thức thể hiện khả năng của mỗi văn bản d khi biết lớp c như sau:

trong đó fi là tần suất xuất hiện trong văn bản d của từ thứ i trong từ điển (nếu xác xuất này bằng 0 thì giá trị tương ứng của lũy thừa đó là 1) Như ta đã biết phép nhân các số nhỏ sẽ tạo ra những số rất nhỏ vì vậy chúng có thể gây ra những sai số

và tạo lỗi trong phép phân loại

Để tối thiểu lỗi thì phép phân loại văn bản d sẽ thực hiện như sau:

Trang 25

Trong đó b c được gọi là ngưỡng của loại văn bản c, w ci được gọi là trọng số

của từ i trong văn bản được phân loại thuộc lớp c

Việc tính được là khó, bởi ta không thể có hết tất cả các văn bản đê thực hiện tính tham số này vì vậy ta sử dụng công thức gần đúng dựa vào những dữ liệu của bộ huấn luyện:

Với:

● đây là số lần từ i xuất hiện trong các văn bản của class c

● số lần xuất hiện của các từ trong class c

● là hệ số làm trơn của giải thuật, thông thường được gán bằng 1

● được gán bằng tổng của các ( )

Từ công thức tính ở trên ta cũng thấy được rằng

Vậy ta có công thức phân loại với phép phân loại của Naive Bayes:

Nếu coi các lớp là cân bằng thì ta có thể bỏ qua giá trị trong công thức và công thức trở nên đơn giản hơn nưh sau:

2.4 MỘT SỐ HEURISTIC ĐỐI VỚI MULTINOMIAL NAIVE BAYES

Giải thuật Naive bayes là một giải thuật cơ sở được sử dụng trong việc phân loại văn bản bởi đây là một giải thuật khá dễ cài đặt và đạt tốc độ cao khi thực thi Các giả thuyết của giải thuật giúp cho ta có thể xây dựng được một bộ phân loại khá tốt, nhưng chính những thiên kiến đó cũng ảnh hưởng khá lớn đến kết quả phân loại của những bộ phân loại này Nhưng bộ phân loại MNB vẫn được sử dụng khá nhiều bởi tốc độ thực hiện và đơn giản trong cài đặt của nó Các phương pháp cho hiệu quả phân loại cao hơn, lại có tốc độ thực thi khá chậm, Hơn nữa khá phức tạp trong khi cài đặt Để cải thiện hiệu quả phân loại của bộ phân loại ta thực hiện tìm những nguyên nhân gây nên kết quả này và tìm cách cải thiện bằng các heuristic đơn giản để không làm giảm tốc độ xây bộ phân loại, cũng như tốc độ phân loại các văn bản Việc cải thiện dựa trên những vấn đề mang tính hệ thống của giải thuật:

Trang 26

Trước hết, với những class có lượng dữ liệu huấn luyện lớn hơn các class khác thì giải thuật Naive Bayes sẽ có xu hướng chọn những class này, để cải thiện vấn đề trên, ở đây khái niệm “complement class” sẽ được đưa ra cùng với công thức để áp dụng cho Naive Bayes

Thứ hai, với giả định các từ phải độc lập với nhau nhưng như những kết quả thu được ta thấy được rằng ngay cả khi những từ thực sự không liên quan đến nhau thì với mỗi từ người ta cũng thấy được những ảnh hưởng không giống nhau lên kết quả phân loại Vì vậy, ta tìm cách “normalize” (đồng hóa) trọng số phân loại của các từ

Thêm nữa, thuật toán Naive Bayes cũng chưa thực sự phù hợp với text vì vậy

ta cũng tìm cách thực hiện biến đổi dữ liệu vào để tăng cường khả năng của bộ phân loại, bằng cách thay các luật lũy thừa trong các phép tính xác suất bằng những phép tính gần với tần suất xuất hiện của các từ hơn

Ngoài ra, để giúp tăng hiệu của cho giải thuật phân loại ta cũng thực hiện xây dựng theo hệ thống phân loại văn bản thông thường như đã nói ở Chương 1 Đó là cần phải có quá trình IR Để thực hiện điều này ta sẽ thêm vào quá trình tính trọng

số các từ phép biết đổi IDF

2.4.1 Thực hiện một số cải thiện để nâng cao hiệu quả của thuật toán

a) Những cách thiện để tránh một lớp được ưa thích hơn các lớp khác

i) “Complement Naive Bayes”

Việc chỉ đếm các từ trong một lớp cụ thể c như giải thuật MNB sẽ ảnh hưởng rất lớn đến kết quả phân loại, vì có thể các thực thể dữ liệu của một lớp c khá lớn so với các lớp còn lại sẽ khiến cho lớp này có trọng số lớn hơn so với các lớp còn lại

Khi thực hiện phân loại nếu chỉ dựa vào tìm giá trị max của sẽ khiến cho lớp có nhiều thực thể dữ liệu hơn được ưu tiên, mặc dù ta coi các lớp phân loại là đồng đều nhau

Vì vậy để cải thiện việc này thay vì đếm các từ trong một lớp c cụ thể ta sẽ đếm những từ không nằm trong lớp c (phần bù của lớp c – Complement of c) để tính giá trị trọng số của các từ, lúc này ta sẽ thấy những từ có trọng số càng nhỏ (tức là xác suất xuất hiện ở các lớp khác lớp c càng lớn) thì càng có ít ý nghĩa khi văn bản thuộc lớp c Như vậy ta sẽ có công thức sau để sử dụng trong phép phân loại:

Trang 27

Nhưng việc áp dụng công thức phân loại này cũng không cho hiệu quả tốt hơn công thức phân loại của CNB vì vậy ở đây ta nên sử dụng CNB

Như đã nói ở giải thuật MNB, nếu ta coi các lớp là đồng đều nhau như vậy giá trị sẽ không có ý nghĩa trong phép phân loại vì vậy công thức để thực hiện CNB có thể rút ngắn lại thành

i) Thay đổi trọng số của các từ để giảm sai số (normalize weight)

Nếu như ở phần trước ta nói về sự ảnh hưởng do bộ dữ liệu có kích thước không đồng đều thì ở đây ta sẽ nói đến ảnh hưởng của thiên kiến khá quan trọng trong giải thuật MNB đó là các từ xuất hiện một cách độc lập mà không liên hệ với nhau Sở dĩ xảy ra điều này là do có thể với một lớp nào đó thì việc xuất hiện liên tục của một cụm từ, mặc dù cụm từ này có thể có xác suất bằng với những từ khác của các lớp khác, nhưng một cụm từ này gồm nhiều từ vì vậy xác suất này được nhân lên nhiều lần khiến cho vector trọng số của lớp này lớn hơn nhiều so với vector trọng số của lớp khác Như vậy mặc dù coi các lớp là tương đồng nhau và số lượng các văn bản thuộc các lớp là đều nhau thì việc ưa thích một lớp vẫn có thể xảy ra

Ví dụ: Ta cần phân loại các văn bản vào hai lớp nói về thành phố Huế và thành

Trang 28

suất xuất hiện từ “Huế” trong các văn bản liên quan đến thành phố Huế bằng với xác suất xuất hiện từ “Hà Nội” trong các văn bản liên quan đến thành phố Hà Nội Như vậy trọng số của từ “Huế” sẽ bằng với trọng số của các từ “Hà”, “Nội” Như vậy tổng trọng số của văn bản liên quan đến thành phố Huế có xác suất xuất hiện của từ “Huế” lớn hơn xác suất xuất hiện của từ “Hà Nôi” một chút sẽ có xu hướng lớn hơn nếu được phân loại là thành phố Hà Nội do trọng số của từ “Hà Nội” bị nhân đôi bởi được tính làm hai lần ở từ “Hà” và từ “Nội”

Việc ưa thích này cũng có thể xảy ra ngay cả với phương pháp CNB Vì vậy

để giải quyết vấn dề này ta cần phải thực hiện đồng hóa (Nomarlize) trọng số các

từ Thay vì gán trọng số , ta sử dụng công thức gán trọng số sau:

Khi đó do bị chia trên tổng số các trọng số, nên những trọng số của các cụm từ cũng vì thế bị chia nhỏ ra, nên khi tính tổng trọng số với một văn bản không còn xảy ra hiện tượng nêu trên

Kết hợp với phương pháp Completment Naive Bayes với Weight-normalize ta

có phương pháp WCNB (Weight-normalized Complement Naive Bayes) đây là một phương pháp khá hiệu quả được dùng để cải thiện kết quả cho MNB đơn thuần

b) Các biến đối giúp phương pháp xác suất phù hợp hơn khi làm việc với các văn bản

Để thực hiện cải thiện thêm hiệu quả của giải thuật MNB khi thực hiện phân loại văn bản ta cũng cần quan tâm đến tần số xuất hiện của các từ trong văn bản Những sự phân bố này cũng gây ảnh hưởng rất lớn đến kết quả của bộ phân loại

i) Thay đổi số tần số xuất hiện của một từ

Để giúp cho MNB có thể thực hiện tốt quá trình phân loại văn bản, ta tìm cách thay đổi tần số xuất hiện của một từ Ta nhận thấy rằng với một văn bản bất ký, ngay cả khi có điều kiện sự xuất hiện của các từ độc lập với nhau thì khi một từ đã xuất hiện một số lần nào đó thì khả năng tiếp tục xuất hiện của từ đó trong văn bản

sẽ cao lên, chứ không tuyến tính như giả thuyết phân bố của multinomial

Để thực hiện đo sự tương ứng giữa phân bố multinomial với một văn bản thông thường người ta kiểm tra mối liên hệ giữa khả năng xảy ra (Probability kí hiệu là ) một văn bản sẽ xuất hiện một tần số f nào đó của một từ cụ thể (Term Frequence kí hiệu là ) Theo như multinomial thì sự phụ thuộc này là một hàm tuyến tính theo số mũ của xác suất xuất hiện hay nói là khả năng xảy ra sẽ là một hàm mũ theo tần số f của từ:

Trang 29

Ta quy ước cách nói này như sau:

Nhưng trong thực tế lại không như vậy, sự phụ thuộc này cũng không tuyến tính như vậy Như trên đã nói, do một từ khi xuất hiện nhiều lần thì khả năng xuất hiện tiếp của từ đó trong văn bản tăng lên rất nhiều Ta có histogam như sau:

Hình 3 Phân bố xác xuất văn bản với xuất hiện của từ

Từ đó ta thầy rằng sự phụ thuộc giữa số mũ của và tần số không tuyến tính mà theo một hàm lũy thừa hay có thể ký hiệu:

Khi đó nếu d bằng 1 thì hàm này sẽ khá gần với phân bố thực của các văn bản với nhỏ được thể hiện trong hình sau:

Trang 30

Hình 4 Phân bố khi d = 1

Để thay đổi sự phuộc này cho gần với hàm tuyến tính, ta thực hiện sự biến đối sau:

Trong đó d thông thường bằng 1

Khi đó sự phụ thuộc này không hẳn đã tuyến tính nhưng khá gần tuyến tính với những nhỏ

i) Biến đổi IDF

Một trong những biến đổi cần thực hiện tiếp theo đó là việc đưa phương pháp

IR vào trong các trọng số của các từ Ta thấy rằng một từ khi xuất hiện rất nhiều trong một văn bản nhưng nó là một từ mà cũng đồng thời xuất hiện rất nhiều trong các văn bản khác nhau, như vậy tần số xuất hiện của từ này có thể khá cao nhưng đóng góp của nó vào ý nghĩa của văn bản lại không cao, thậm chí là rất thấp (nhất

là những từ hầu như xuất hiện trong các văn bản như những từ trong danh sách Stoplist) Chính vì sự quan trọng của sự xuất hiện ở nhiều văn bản khác nhau mà ta cần coi tham số xuất hiện tại nhiều văn bản khác nhau của một từ như là một tham

số để xây dựng nên trọng số của từ, tham số này càng lớn thì trọng số này càng nhỏ

Trang 31

và ngược lại, đặc biệt khi tham số này bằng với số lượng văn bản thì từ này không

có nghĩa

Một heuristic được sử dụng để thực hiện biến đổi trong IR đó chính là biến đổi IDF (Inverse Document Frequency) Đây là một nhân tử làm giảm trọng số của từ khi xác suất xuất hiện trong các văn bản khác nhau lớn Các thông dụng để thực hiện sự biến đổi này như sau:

Với bằng 1 khi từ i xuất hiện trong văn bản j bằng 0 nếu ngược lại Theo công thức trên thì ta cũng thấy rằng những từ hiếm sẽ được làm tăng trọng số trong khi những từ phổ biến sẽ bị giảm trọng số

ii) Thay đổi dựa trên độ dài của văn bản

Như đã nói trong một văn bản khi một từ xuất hiện một lần thì khả năng từ đó xuất hiện thêm lần nữa sẽ lớn hơn Nhưng đối với MNB thông thường có một thiên kiến đó là sự xuất hiện này là độc lập và không liên quan đến nhau

Hình 5 Phân bố xác xuất suất hiện với số lần xuất hiện của từ khi

độ dài văn bản khác nhau

Như hình trên ta thấy được rằng đối những văn bản càng dài thì khả năng xuất hiện của các từ nhiều lần càng lớn vì vậy để tránh lỗi trong quá trình phân loại văn

Trang 32

Cách biến đổi như trên thực chất là làm giảm trọng số của các từ theo độ dài của văn bản chứa chúng, văn bản càng lớn thì lượng giảm đi càng nhiều

2.4.2 Sơ đồ cho giải thuật mới cho giải thuật TWCNB:

Sau một quá trình đưa ra những biến đổi và những lý do giúp cho việc thay đổi đạt hiệu quả hơn so với MNB Việc biến đổi như vậy đem đến cho ta một giải thuật mới TWCNB giải thuật này có thể kế thừa những đặc tính tốt của MNB như thời gian thực hiện nhanh và dễ dàng cài đặt, đồng thời cũng cải thiện được một số nhược điểm của MNB Sơ đồ thuật giải cuối cùng như sau:

 Cho là tập các văn bản với d ij là số lượng từ i trong văn bản

o Với là văn bản cần phân loại và t i là số lượng của từ i

o Class của văn bản t được phân loại theo công thức sau:

Trang 33

CHƯƠNG 3 GIẢI THUẬT SVM TRONG BÀI TOÁN

PHÂN LOẠI VĂN BẢN

3.1 PHÂN TÁCH TUYẾN TÍNH KHÔNG GIAN DỮ LIỆU

Như đã biết, trong các bài toán học có giám sát (supervised learning), toàn bộ

hệ thống được xây dựng lên với mục đích từ một tập các thành thần đầu vào (các đối tượng dữ liệu vào, với các trường dữ liệu tương ứng) sẽ được thực hiện đánh nhãn (phân loại) thành các lớp khác nhau Các đối tượng dữ liệu với các trường dữ liệu tương ứng được thể hiện dưới cấu trúc của một vector nhiều chiều, vì vậy không gian đầu vào sẽ được tính như một không gian nhiều chiều Để thực hiện làm được việc phân loại các lớp dữ liệu này có vô vàn cách được đưa ra, nhưng đơn giản và dễ dàng tưởng tượng nhất đó là sử dụng một đường thẳng – không gian 2 chiều; mặt phẳng – không gian 3 chiều; siêu phẳng – không gian n chiều để thực hiện việc phân loại này Các phương pháp phân loại truyền thống cũng thường thực hiện phân tách 2 lớp với nhau thông qua việc xây dựng sêu phẳng như thế Những siêu phẳng được xây dựng bằng những phương pháp cụ thể và được tinh chỉnh sao cho phù hợp vơi bộ dữ liệu của hệ thống nhất Đường thẳng phân loại này trong nhiều cách khác nhau có thể được biểu diễn dưới nhiều dạng, và đây chính là kết quả của quá trình học phân loại 2 lớp Phương pháp Support Vector Machine được xây dựng từ ý tưởng này, tập trung chính và việc biểu diễn, và tinh chỉnh đường thẳng như vậy

Thông thường, đường thẳng có thể được biểu diễn dưới dạng một hàm thực:

Và hàm này sẽ thực hiện phân loại không gian dữ liệu theo cách sau:

Đầu vào x = {x1, x2, …, xn}’ sẽ được gán vào lớp dương nếu như f(x) ≥ 0, còn nếu ngược lại đầu vào này sẽ được phân loại vào lớp âm

Như đã nói ở trên, giả định hàm f sẽ có dạng là một hàm bậc nhất với dữ liệu

đầu vào (để có dạng một đường thẳng – không gian 2 chiều; mặt phẳng – không gian 3 chiều; siêu phẳng – không gian n chiều), nghĩa là với biến số , thì hàm f(x) có công thức tổng quát như sau:

Trang 34

Trong đó, bộ là các tham số để xác định chính xác hàm phân loại (hàm quyết định) được đưa ra bởi giá trị , với quy ước của hàm dấu

Theo cách thể hiện trên thì bộ tham số này sẽ được “học” từ toàn bộ tập dữ liệu đầu vào cùng với các phân loại mẫu có sẵn tương ứng, và không gian X sẽ được phân thành hai phần bởi “lát cắt” như hình dưới:

Hình 6 Lát cắt phân loại được tạo bởi siêu phẳng trong không gian phân loại

được biểu diễn thông qua vector w và b

3.2 LÝ THUYẾT TỐI ƯU PHI TUYẾN

Bài toán tối ưu được phát biểu như sau:

Cho hàm và là miền xác định của x Tìm sao cho là bé nhất ( trong trường hợp muốn tìm cực đại thì có thể thay f(x) bằng -f(x))

Hình 7 Hàm f(x) đạt cực đại tại x0 S

Chúng ta đã biết trong trường hợp x không bị giới hạn, thì: nếu x0 là cực trị thì

đạo hàm của f(x) tại x0 bằng 0: (điều kiện Fermat) Tuy nhiên trong

trường hợp x bị giới hạn bởi một tập S nói chung thì cực trị có thể xảy ra tại biên của S.Tại đó không bắt buộc đạo hàm phải bằng không

Ngày đăng: 26/07/2017, 21:02

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
6. Salton, G. &amp; Buckley, C. (1988), Term-weighting approaches in automatic text retrieval. Information Processing and Management, 24(5), pp. 513–523 Sách, tạp chí
Tiêu đề: Term-weighting approaches in automatic text retrieval
Tác giả: Salton, G. &amp; Buckley, C
Năm: 1988
1. C. Apte, F. Damerau, and S.M. Weiss (1994), Automated Learning of Decision Rules for Text Categorization Khác
2. Fra kes, W.B., Stemming algorithms. Information Retrieval: Data Structures and Algorithms, eds. W.B. Frakes &amp; R. Baeza-Yates, Prentice Hall: Englewood Cliffs, US, pp. 131–160, 1992 Khác
5. Zobel, J. &amp; Moffat, A. (1998), Exploring the similarity space. SIGIR Forum, 32(1),pp. 18–34 Khác
7. Jason D. M. Rennie jrennie@mit.edu La wrence Shih kai@mit.edu Jaime Teevan teevan@mit.edu David R. Karger karger@mit.edu (ICML-2003) Tackling the poor assumptions of Naive Bayes Text Classifiers Khác
8. Nello Cristianini and John Shawe-Taylor (2000), An Introduction to Support Vector Machines and Other Nhân-based Learning Methods Khác
9. Edgar E. Osuna, Robert Freund, Fererico Girosi (1997). Support Vector Machine: Training and Application. AI Laboratory, MIT Khác
10. David D. Lewis (2004), Reuters-21578 text categorization test collection Distribution 1.0 Khác

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w