● 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 1LUẬ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 2DANH 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 33.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 4DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT
Trang 5DANH 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 6LỜ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 7CHƯƠ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 91.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 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 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 10mộ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 11Việ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 12input/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 13Hì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 15Ví 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 16model (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 17vă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 19thuậ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 20Vớ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 21CHƯƠ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 222.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 23trong đó 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 24Trong đó 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 25Trong đó 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 26Trướ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 27Như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 28suấ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 29Ta 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 30Hì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 31và 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 32Cá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 33CHƯƠ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 34Trong đó, 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