Để giải bài toán này đã có rất nhiều phương pháp được đưa ra như : thuật toán Naïve Bayes, KNN (KNearestNeighbor), Cây quyết định (Decision Tree), Mạng Neuron nhân tạo (Artificial Neural Network) và SVM (Support Vector Machine). Mỗi phương pháp đều cho kết quả khá tốt cho bài toán này, tuy nhiên phương pháp phân loại văn bản bằng thuật toán Bayes được sử dụng phổ biến hơn cả và dễ dàng cài đặt. Trong bài tiểu luận này em xin trình bày về phương pháp “Phân loại văn bản bằng thuật toán Naïve Bayes” . Nội dung bài tiểu luận gồm có ba phần:Chương 1: Giới thiệu chung về phân loại văn bảnChương 2: Trình bảy về thuật toán Naïve BayesChương 3: Ví dụ áp dụng
Trang 1MỤC LỤC
MỤC LỤC i
LỜI NĨI ĐẦU ii
CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ PHÂN LOẠI VĂN BẢN 1
1.1 Giới thiệu 1
1.2 Định nghĩa 1
1.3 Quy trình phân loại văn bản 2
1.4 Khái niệm cơ bản trong phân loại văn bản 3
1.4.1 Tập văn bản huấn luyện (Training documents set) 3
1.4.2 Từ khĩa 3
1.4.3 Thuật ngữ 3
1.4.4 Từ dừng 3
1.4.5 Trọng số 3
1.4.6 Tiền xử lý (Preprocessing) 3
1.4.7 Đánh chỉ số (Indexing) 4
1.4.8 Trích chọn đặc trưng (Feature selection) 4
CHƯƠNG 2: THUẬT TỐN NẠVE BAYES 5
2.1 Định lý Bayes 5
2.2 Mơ hình Nạve Bayes 7
2.2.1 Giới thiệu 7
2.2.2 Cơ chế hoạt động 7
2.2.3 Ưu điểm 9
2.2.4 Nhược điểm 10
CHƯƠNG 3: VÍ DỤ ÁP DỤNG 11
3.1 Bài tốn 11
3.2 Bước huấn luyện 11
3.3 Bước phân lớp 11
3.4 Kết quả 12
KẾT LUẬN 13
TÀI LIỆU THAM KHẢO 14
Trang 2Lời nĩi đầu
LỜI NĨI ĐẦU
Nhiều năm trở lại đây, các loại thơng tin đã phát triển khơng ngừng về cả số lượng
và chất lượng Do đĩ số lượng văn bản số hĩa ngày nay đang tăng dần theo cấp số nhân, cùng với sự gia tăng của số lượng văn bản, nhu cầu tìm kiếm văn bản cũng tăng theo, khi đĩ phân loại văn bản tự động là một yêu cầu cấp thiết được đặt ra Phân loại văn bản là một vấn đề quan trọng trong lĩnh vực xử lý ngơn ngữ Nhiệm vụ của bài tốn này là gán các tài liệu văn bản vào nhĩm các chủ đề cho trước Đây là một bài tốn rất thường gặp trong thực tế điển hình như : một nhà chuyên phân tích thị thường chứng khốn, anh ta cần phải tổng hợp rất nhiều tài liệu, bài viết về thị trường chứng khốn để đọc và đưa ra phán đốn của mình Tuy nhiên, anh ta khơng thể đọc tất cả các bài viết, bài báo hay các tài liệu để rồi phân loại chúng đâu là tài liệu chứng khốn sau đĩ anh ta mới đọc kỹ chúng cho mục đích của anh ta Lý do của vấn đề này là bởi
vì số lượng bài viết, bài báo hiện nay rất nhiều, đặc biệt là trên Internet, nếu để đọc hết được tất cả tài liệu đĩ thì sẽ mất rất nhiều thời gian
Để giải bài tốn này đã cĩ rất nhiều phương pháp được đưa ra như : thuật tốn Nạve Bayes, K-NN (K-Nearest-Neighbor), Cây quyết định (Decision Tree), Mạng Neuron nhân tạo (Artificial Neural Network) và SVM (Support Vector Machine) Mỗi phương pháp đều cho kết quả khá tốt cho bài tốn này, tuy nhiên phương pháp phân loại văn bản bằng thuật tốn Bayes được sử dụng phổ biến hơn cả và dễ dàng cài đặt Trong bài tiểu luận này em xin trình bày về phương pháp “Phân loại văn bản bằng thuật tốn Nạve Bayes” Nội dung bài tiểu luận gồm cĩ ba phần:
Chương 1: Giới thiệu chung về phân loại văn bản
Chương 2: Trình bảy về thuật tốn Nạve Bayes
Chương 3: Ví dụ áp dụng
Trang 3Chương 1: Giới thiệu chung về phân loại văn bản
CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ PHÂN LOẠI VĂN BẢN
1.1 Giới thiệu
Nhiều năm trở lại đây, các loại thơng tin đã phát triển khơng ngừng về cả số lượng và chất lượng Các nghiên cứu về khai phá dữ liệu dạng văn bản đang được quan tâm hơn trong thời gian gần đây vì số lượng các tài liệu điện tử tăng nhanh chĩng
từ nhiều nguồn khác nhau Khơng kể tới những văn bản cĩ cấu trúc, số lượng các văn bản khơng cấu trúc và cấu trúc cũng tăng lên quá lớn Phân loại văn bản giúp sẽ giúp chúng ta tìm kiếm thơng tin một cách nhanh chĩng hơn thay vì phải tìm lần lượt trong từng văn bản, hơn nữa khi mà số lượng văn bản đang gia tăng một cách nhanh chĩng thì thao tác tìm lần lượt trong từng văn bản sẽ mất rất nhiều thời gian, cơng sức và là một cơng việc nhàm chán và khơng khả thi Chính vì thế nhu cầu phân loại văn bản tự động là thực sự cần thiết Mục đích chính của việc khai phá dữ liệu văn bản là cho phép người dùng trích xuất thơng tin của các nguồn văn bản và sử dụng chúng thơng qua các cơng cụ như: tra cứu, hỏi đáp, phân loại và tĩm tắt sử dụng ngơn ngữ tự nhiên
Cĩ rất nhiều cơng trình nghiên cứu về phân loại văn bản như: Support Vector Machine, K–Nearest Neighbor, Linear Least Squares Fit, Neural Network, Nạve Bayes, Centroid Base… Điểm chung của các phương pháp này đều dựa vào xác suất thống kê hoặc dựa vào trọng số của các từ, cụm từ trong văn bản Trong mỗi phương pháp đều cĩ cách tính tốn khác nhau, tuy nhiên các phương pháp này đều phải thực hiện một số bước chung như: đầu tiên mỗi phương pháp sẽ dựa vào thơng tin về sự xuất hiện của các từ trong văn bản (tần số xuất hiện trong tập văn bản,…) để biểu diễn thành dạng vector, sau đĩ tùy từng bài tốn cụ thể mà chúng ta sẽ quyết định chọn áp dụng phương pháp nào, cơng thức tính tốn nào cho phù hợp để phân loại tập văn bản dựa trên tập các vector đã xây dựng được ở bước trên, nhằm mục đích đạt được kết quả phân loại tốt nhất
1.2 Định nghĩa
Bài tốn phân loại văn bản (text classification) là bài tốn cơ bản của lĩnh vực khai phá văn bản (text mining) Phân loại văn bản là sự phân loại khơng cấu trúc các tài liệu văn bản dựa trên một tập hợp của một hay nhiều loại văn bản đã được định nghĩa trước Quá trình này thường được thực thi bằng một hệ thống tự động gán cho các tài liệu văn bản một loại nào đĩ
Phân loại văn bản tức là gán văn bản vào một hoặc một số nhĩm văn bản đã được biết trước Phân loại văn bản chính là gán nhãn (lớp/chủ đề) một cách tự động dựa vào nội dung của văn bản Phân loại văn bản được ứng dụng trong nhiều lĩnh vực như tìm kiếm thơng tin, lọc văn bản, tổng hợp tin tức tự động, thư viện điện tử
Trang 4Chương 1: Giới thiệu chung về phân loại văn bản
bản D = {d1, d2, …, dn}, được gọi là tập huấn luyện, trong đó các tài liệu di được gán nhãn chủ đề ci với ci thuộc tập các chủ đề C = {c1, c2, …, cn} để xây dựng bộ phân lớp Nhiệm vụ của bộ phân lớp là gán đúng nhãn chủ đề ck cho một tài liệu mới dk bất kỳ, trong đó ck thuộc vào tập chủ đề C
Minh họa trực quan nhất cho việc phân loại văn bản này đó chính là việc sắp xếp các tin tức trên báo vào các danh mục tương ứng như thể thao, giải trí, xã hội như các tờ báo điện tử thường làm Việc này có thể được thực hiện thủ công bởi các biên tập viên tuy nhiên nó rất là mất thời gian và công sức Thay vào đó chúng ta sẽ sử dụng một số kĩ thuật học máy để tiến hành phân loại tự động các tin tức đó
Đặc điểm nổi bật của bài toán này là sự đa dạng của chủ đề văn bản và tính đa chủ đề của văn bản Tính đa chủ đề của văn bản làm cho sự phân loại chỉ mang tính tương đối và có phần chủ quan, nếu do con người thực hiện, và dễ bị nhập nhằng khi phân loại tự động Rõ ràng một bài viết về Giáo dục cũng có thể xếp vào Kinh tế nếu như bài viết bàn về tiền nong đầu tư cho giáo dục và tác động của đầu tư này đến kinh
tế - xã hội Về bản chất, một văn bản là một tập hợp từ ngữ có liên quan với nhau tạo nên nội dung ngữ nghĩa của văn bản Từ ngữ của một văn bản là đa dạng do tính đa dạng của ngôn ngữ (đồng nghĩa, đa nghĩa, từ vay mượn nước ngoài,…) và số lượng từ cần xét là lớn Ở đây cần lưu ý rằng, một văn bản có thể có số lượng từ ngữ không nhiều, nhưng số lượng từ ngữ cần xét là rất nhiều vì phải bao hàm tất cả các từ của ngôn ngữ đang xét
1.3 Quy trình phân loại văn bản
Quy trình phân loại chung cho các phương pháp phân loại:
phân loại sẵn Tiến hành học cho bộ dữ liệu, xử lí và thu thập được dữ liệu của quá trình học là các đặc trưng riêng biệt cho từng chủ đề
trưng được học trước đó để phân loại và đưa ra kết quả Dữ liệu đầu vào cho quá trình học máy hay dữ liệu đầu vào để phân loại đều là dạng văn bản đã qua công đoạn tiền xử lí Công đoạn tiền xử lí này rất quan trọng và cần thiết, nó làm tối ưu hóa dữ liệu trong việc lưu trữ và xử lí Các công đoạn trong quá trình tiền xử lí văn bản bao gồm: tách từ tiếng Việt, loại bỏ các từ dừng, từ tầm thường lấy các danh từ Sau đó, rút trích đặc trưng và biểu diễn văn bản
Trang 5Chương 1: Giới thiệu chung về phân loại văn bản
1.4 Khái niệm cơ bản trong phân loại văn bản
1.4.1 Tập văn bản huấn luyện (Training documents set)
Tập văn bản huấn luyện là một tập hợp các dữ liệu được sử dụng trong các quá trình tìm kiếm những quan hệ, các luật để dùng cho dự đoán hoặc dự báo sau này
1.4.2 Từ khóa
Từ khóa: là các từ xuất hiện trong một văn bản có nghĩa trong từ điển
1.4.3 Thuật ngữ
Thuật ngữ: là các từ khóa có nghĩa liên quan đến một số lĩnh vực nào đó ví dụ:
"máy tính", "công nghệ phần mềm", "tính toán song song" Các thuật ngữ này thuộc về lĩnh vực "tin học"
1.4.4 Từ dừng
Từ dừng: Nhiều từ được dùng để biểu diễn cấu trúc câu, xuất hiện thường xuyên trong các văn bản, nhưng hầu như không mang ý nghĩa về mặt nội dung, chẳng hạn các giới từ, liên từ, … những từ đó được gọi là từ dừng Ví dụ: Có thể, nếu, vì vậy, sau khi, thì, một số, với lại, quả thật, hầu như, …
1.4.5 Trọng số
Trọng số của từ là độ quan trọng hay hàm lượng thông tin mà từ đó mang lại chovăn bản Trọng số của từ là đại lượng dùng để đo sự khác biệt giữa văn bản chứa nó với các văn bản khác
1.4.6 Tiền xử lý (Preprocessing)
Tiền xử lý là một bước quan trọng trước khi nhận diện văn bản hoặc thực hiện việc gán nhãn cho tập văn bản huấn luyện Đầu tiên cần biểu diễn văn bản dưới dạng các từ (word) rõ ràng Các văn bản được chuẩn bị thực hiện phân loại thường có số chiều đặc trưng là khá lớn Thông thường, các bước tiền xử lý bao gồm:
Trang 6Chương 1: Giới thiệu chung về phân loại văn bản
Tokenization: Văn bản được coi như là một chuỗi, do đó cần phân chia thành danh sách các tokens (token ở đây có thể là ký tự, từ, )
Loại bỏ các từ dừng: Loại bỏ các từ dừng được coi như là một bước giúp lọc bỏ các nhiễu, giúp hạn chế các sai số trong quá trình tính toán và cũng giảm bớt được số chiều của đặc trưng Các từ dừng như “và”, “thôi”, “này”
1.4.7 Đánh chỉ số (Indexing)
Biểu diễn văn bản là một trong những kỹ thuật tiền xử lý, nó được sử dụng để giảm
độ phức tạp của văn bản và dễ dàng trong lưu trữ và xử lý, văn bản có thể biến đổi từ dạng chữ đầy đủ thành một véc tơ văn bản Thông thường nhất sử dụng mô hình véc tơ không gian Các văn bản được biểu diễn bằng các véc tơ từ
1.4.8 Trích chọn đặc trưng (Feature selection)
Sau khi tiền xử lý và đánh chỉ số, bước quan trọng tiếp theo của phân loại văn bản
là trích chọn đặc trưng để xây dựng véc tơ không gian, để làm tăng chất lượng, độ chính xác của phân loại văn bản Ý tưởng chính của trích chọn đặc trưng là lựa chọn ra tập các đặc trưng từ trong văn bản gốc Trích chọn đặc trưng được thực hiện bằng cách giữ lại các từ có chỉ số cao theo một độ đo đã được xác định trước Bởi bài toán phân loại văn bản thường là những bài toán có số chiều đặc trưng cao Một số các độ đo đánh giá đặc trưng theo độ lợi ích thông tin (information gain), tần suất từ (term frequency), độ tương hỗ thông tin (mutual information)
Đối với bài toán phân loại đối tượng nói chung và bài toán phân loại văn bản nói riêng, giai đoạn trích chọn đặc trưng là quan trọng Đại đa số các công trình vừa nêu
sử dụng toàn văn nội dung của văn bản cho giai đoạn trích chọn đặc trưng, điều này có thể là nguyên nhân của 2 hạn chế: (1) số lượng đặc trưng lớn sẽ dẫn đến độ phức tạp cao, (2) khi số lượng đặc trưng quá lớn có thể sẽ chứa nhiễu dẫn đến độ chính xác của giai đoạn phân lớp bị hạn chế
Trang 7Chương 2: Thuật tốn Nạve Bayes
CHƯƠNG 2: THUẬT TỐN NẠVE BAYES
2.1 Định lý Bayes
2.1.1.1 Lý thuyết
Naive Bayes là thuật tốn phân loại dựa trên định lý Bayes Định lý Bayes thường được dùng trong lý thuyết xác suất, cho phép tính xác xuất xảy ra sự kiện Y khi biết sự kiện liên qua X đã xảy ra
Đây là thuật tốn được xem là đơn giản nhất trong các phương pháp Bộ phân lớp Bayes cĩ thể dự báo các xác suất là thành viên của lớp, chẳng hạn xác suất mẫu cho trước thuộc về một lớp xác định Chúng giả định các thuộc tính là độc lập nhau (độc lập điều kiện lớp)
Thuật tốn Nạve Bayes dựa trên định lý Bayes được phát biểu như sau :
Trong đĩ:
Y đại diện một giả thuyết, giả thuyết này được suy luận khi cĩ được chứng cứ mới X
P(X) : xác xuất X xảy ra (Xác suất biên duyên của X)
P(Y) : xác xuất Y xảy ra (Điều kiện tiên nghiệm của Y)
P(X|Y) : xác xuất X xảy ra khi Y xảy ra (xác suất cĩ điều kiện, khả năng X khi Y đúng)
P(Y|X) : xác suất hậu nghiệm của Y nếu biết X
Áp dụng trong bài tốn phân loại, các dữ kiện cần cĩ :
D: tập dữ liệu huấn luyện đã được vector hố dưới dạng =( x1, x2, … , xn ) Ci: tập các tài liệu của D thuộc lớp Ci với i={1,2,3,…}
Các thuộc tính x1,x2,…xn độc lập xác suất đơi một với nhau
Theo định lý Bayes :
Theo tính chất độc lập điều kiện :
Khi đĩ, luật phân lớp cho các tài liệu mới Xnew ={x1, x2, … , xn} là:
Trang 8Chương 2: Thuật tốn Nạve Bayes
Trong đĩ :
P(Ci) : được tính dựa trên tần suất xuất hiện tài liệu trong tập huấn luyện
P(xk|C) : được tính từ những tập thuộc tính đã được tính trong quá trìn huấn luyện
2.1.1.2 Ví dụ
Khi cĩ thơng báo về dự báo thời tiết, câu hỏi đặt ra ở đây là chúng ta cần phán đốn nội dung để đưa ra quyết định là cĩ nên đi chơi hay khơng
Chúng ta thực hiện phân tích câu thơng báo để tìm các từ quan trọng và mapping với các quyết định dự kiến và tổ chức thành bảng dữ liệu bên dưới
Áp dụng cơng thức đã nêu ở trên, chúng ta tính tốn được các giá trị như sau P(“đi”) = (số từ “đi”) / (tổng số từ trong giả thuyết) = = 0.4
P(“khơng đi”) = (số từ “khơng đi”) / (tổng số từ trong giả thuyết) = = 0.6
Giả sử đầu vào là câu “trời nắng đẹp”
Tính xác suất:
P(“đi”|“nắng”) = P(“đi”) * (số từ “nắng” mà cĩ giải thuyết “đi”) / (số từ cĩ giả thuyết “đi”) = 0.4 * (1 / 2) = 0.2
P(“khơng đi” | “nắng”) = P(“khơng đi”) * (số từ “nắng” mà cĩ giả thuyết “khơng đi”) / (số từ trong giả thuyết “khơng đi”) = 0.6 * (0 / 3) = 0.0
Với kết quả tính tốn trên, chúng ta nhận thấy rằng: P(“đi” | “nắng”) > P(“khơng đi”|“nắng” ) => ở bước dự đốn chúng ta được gợi ý “nên đi chơi”
Trang 9Chương 2: Thuật tốn Nạve Bayes
2.2 Mơ hình Nạve Bayes
2.2.1 Giới thiệu
Thuật tốn Nạve Bayes dựa trên định lý Bayes được phát biểu như sau:
Áp dụng trong bài tốn phân loại, các dữ kiện gồm cĩ:
D: tập dữ liệu huấn luyện đã được vector hĩa dưới dạng
Ci: phân lớp i, với i = {1,2,…,m}
Các thuộc tính độc lập điều kiện đơi một với nhau
Theo định lý Bayes:
Theo tính chất độc lập điều kiện:
Trong đĩ:
là xác suất thuộc phân lớp i khi biết trước mẫu X
xác suất là phân lớp i
xác suất thuộc tính thứ k mang giá trị xk khi đã biết X thuộc phân lớp i
Các bước thực hiện thuật tốn Nạve Bayes:
Bước 1: Huấn luyện Nạve Bayes (dựa vào tập dữ liệu), tính và
Bước 2: Phân lớp , ta cần tính xác suất thuộc từng phân lớp khi đã biết trước
Xnew Xnew được gán vào lớp cĩ xác suất lớn nhất theo cơng thức
2.2.2 Cơ chế hoạt động
Ý tưởng cơ bản của cách tiếp cận Nạve Bayes là sử dụng xác suất cĩ điều kiện giữa từ và chủ đề để dự đốn xác suất chủ đề của một văn bản cần phân loại Điểm quan trọng của phương pháp này chính là ở chỗ giả định rằng sự xuất hiện của tất cả các từ trong văn bản đều độc lập với nhau Giả định đĩ làm cho việc tính tốn Naive Bayes hiệu quả và nhanh chĩng hơn các phương pháp khác vì khơng sử dụng việc kết hợp các từ để đưa ra phán đốn chủ đề Kết quả dự đốn bị ảnh hưởng bởi kích thước tập dữ liệu, chất lượng của khơng gian đặc trưng…
Một tài liệu văn bản bao gồm một chuỗi các câu, và mỗi câu bao gồm một chuỗi các từ Tuy nhiên, do sự phức tạp của việc mơ hình hĩa các chuỗi từ và các mối quan
hệ của chúng, một số giả thiết được tạo ra trong dẫn xuất của trình phân loại Bayes
Trang 10Chương 2: Thuật tốn Nạve Bayes
Cụ thể, phân loại Naive Bayesian xử lý từng tài liệu như một “túi” của các từ Văn bản đầu vào cho việc huấn luyện và phân lớp cĩ cấu trúc plain text Mơ hình túi
từ (BoW- Bag of Words) được sử dụng để biểu diễn văn bản Mơ hình này chỉ quan tâm đến trọng số một từ chỉ mục nào đĩ trong văn bản mà khơng quan tâm đến vị trí xuất hiện của từ chỉ mục đĩ Đối với mơ hình túi từ, hai cơng việc cần phải giải quyết
là tách từ và gán trọng số:
1 Các từ của một tài liệu được tạo ra độc lập với ngữ cảnh của chúng, nghĩa là, độc lập với các từ khác trong cùng một tài liệu cho nhãn lớp Đây là giả định Naive Bayes quen thuộc sử dụng trước đĩ
2 Xác suất của một từ độc lập với vị trí của nĩ trong tài liệu Ví dụ, khả năng nhìn thấy những từ “sinh viên” ở vị trí đầu tiên của tài liệu cũng giống như nhìn thấy
nĩ ở bất kỳ vị trí khác
3 Độ dài tài liệu độc lập với lớp tài liệu
Mơ tả vector đặc trưng của văn bản: Là vector cĩ số chiều là số đặc trưng trong tồn tập dữ liệu, các đặc trưng này đơi một khác nhau Nếu văn bản cĩ chứa đặc trưng
đĩ sẽ cĩ giá trị 1, ngược lại là 0
Thuật tốn gồm 2 giai đoạn huấn luyện và phân lớp:
2.2.2.1 Huấn luyện: tính và
số vector đặc trưng trong tập huấn luyện, N là số đặc trưng của vector)
Tập nhãn/lớp cho từng vector đặc trưng của tập huấn luyện
Các giá trị xác suất và
Cơng thức tính đã làm trơn Laplace
Trong đĩ:
|docsi|: số văn bản của tập huấn luyện thuộc phân lớp i
|total docs|: số văn bản trong tập huấn luyện
Cài đặt: