Văn bản tiếng việt rất đa dạng và phong phú. Đề tài trình bày phương áp dụng dụng Naïve Bayes nhằm phân loại văn bản dựa trên những tri thức đã được học từ dữ liệu huấn luyện. Đề tài này được cung cấp đầy đủ source code được phát triển bằng java cho các bạn tham khảo.
Trang 1Trường Đại Học Bách Khoa TP Hồ Chính Minh
Khoa Khoa Học Máy Tính
Đề tài:
Áp Dụng Nạve Bayes Phân Loại Văn Bản
Tiếng Việt
Người thực hiện: Lâm Bảo Vương -12073142 Người hướng dẫn: TS Cao Hồng Trụ
Trang 3I Giới thiệu đề tài
Phân loại văn bản được coi quá trình xác định văn bản thuộc vào những thể loại văn bản (hay cịn gọi là lớp văn bản) nào đã cho trước Hiện nay cĩ nhiều phương pháp phân loại văn bản như Support vector Machine (SVM), K–Nearest Neighbor (kNN), Neural Network…Những phương pháp phân loại này tìm một hàm f(x) để phân loại văn bản Nạve Bayes là phương pháp văn phân loại văn bản dựa vào thống kê và xác suất
Bài báo cáo này sẽ trình bày cơ bản về giải thuật Nạve Bayes và áp dụng giải thuật vào
để xác định văn bản đĩ thuộc loại văn bản thuộc thể loại là thể thao hoặc văn bản khơng thuộc loại văn bản thể thao
Nạve Bayes là giải thuật dựa trên xác suất, do đĩ bài báo cáo này sẽ áp dụng giải thuật
để xây dựng chương trình phân loại văn bản.Ý tưởng của chương trình là sẽ tính xác suất
cĩ điều kiện các từ xuất hiện trong văn bản cần xác định thuộc về loại văn bản nào đã được học trước đĩ Nếu xác suất thuộc về lớp nào lớn hơn thì văn bản đĩ thuộc về lớp đĩ
Để phân loại được văn bản thì chúng ta phải cho máy tính học thế nào là văn bản thuộc thể thao (gọi tắc là lớp Thể Thao) -thế nào là văn bản khơng phải văn bản thể thao (gọi tắc là lớp khơng phải Thể Thao) Bước cho máy tính học được gọi là bước huấn luyện (train) Bước phân loại văn bản thuộc lớp nào được gọi là bước phân lớp( test) Nội dung chi tiết của từng bước sẽ được mơ tả trong mục IV của bài báo cáo
III Giới thiệu thuật tốn Nạve Bayes
Nạve Bayes (NB) là phương pháp phân loại dựa vào xác suất cĩ điều kiện và được ứng dụng rất rộng rãi bởi tính dễ hiểu và dễ triển khai
1 Thuật tốn Nạve Bayes:
Thuật tốn Nạve Bayes dựa trên định lý Bayes được phát biểu như sau [5]:
Áp dụng trong bài tốn phân loại, các dữ kiện gồm cĩ:
Trang 4Theo 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
2 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
IV Chương trình áp dụng
Thuật tốn gồm 2 bước : huấn luyện và phân lớp [4,1]
Bước 1: huấn luyện:
Ở bước huấn luyện này chủ yếu là tính và
Đầu vào của chương trình là đoạn văn bản đươc gán nhãn thuộc về một chủ đề đã được lựa chọn Trong báo cáo này thì chủ để được lựa chọn là thể thao Do đĩ những đoạn văn bản thuộc về chủ đề thể thao thì được gán nhãn là 1, những đoạn văn bản khơng thuộc chủ đề thể thao được gán nhãn là 0
Đầu ra của chương trình là các trị xác suất và
Bước 2: Phân lớp:
Đầu vào của chương trình là đoan văn bản cần phân loại
Đầu ra là nhãn / lớp của văn bản cần phân loại
Trang 5V Đánh giá:
Sau khi phân lớp cho các văn bản chúng ta phải xem xét xem chương trình áp dụng giải thuật này phân lớp văn bản đúng được bao nhiêu phần trăm [1] Để đánh giá độ chính xác, thường thì lập bản thống kê sau:
Actual class (observation)
predicted class (expectation)
tp
(true positive) Correct result
fp
(false positive) Unexpected result
fn
(false negative) Missing result
tn
(true negative) Correct absence of result Trong đó:
a: là số lương đối tượng thuộc về lớp đang xét được phân đúng vào lớp
b là số lượng đối tượng không thuộc về lớp đang xét nhưng được phân vào lớp đó
c: là số đối tượng thuộc về lớp đang xét nhưng được bộ phân lớp loại khỏi lớp đó
d: là số lượng đối tượng không thuộc vào lớp đang xét và được bộ phân lớn loại khỏi lớp đó
Để đánh giá chất lượng độ phân lớn Trong bài báo cáo này sử dụng 2 độ đo là độ chính xác (Precision) và độ phủ (Recall)
VI Hướng dẫn sử dụng chương trình phân lớp văn bản.
Chương trình phân lớp văn bản thuộc thể loại thể thao và không thuộc loại thể thao
Trang 61 Giao diện chương trình
Hình 1: Giao diện của chương trình
3 Định dạng
Dữ liệu huấn luyện và dữ liệu phân lớp văn bản là gồm nhiều file có cấu trúc là < văn bản> | <class>;
Trong đó:
• Nội dung văn bản cần phân loại thuộc lớp nào
• Class =1 là thuộc thể loại thể thao Class=0 là không thuộc loại thể thao
Trong chương trình có tạo sẵn 50 file huấn luyện và 50 file phân lớp
Ví dụ :
Trước đó, trong suốt trận đấu với Galatasaray hôm thứ tư vừa qua, khoảng 45.000 CĐV Real chọn cách đeo mặt nạ Ronaldo để thể hiện sự ủng hộ dành cho siêu sao người Bồ Đào Nha.Đây là điều chưa từng xảy ra với một ngôi sao bóng đá và được xem là một nguồn động viên tinh thần lớn lao cho CR7, khi anh đang rất cần sự ủng hộ trong cuộc đua tranh Quả Bóng Vàng FIFA 2013.Tuy nhiên, Ribery không hề ganh tị với Ronaldo, bởi anh cảm nhận rõ tình cảm lớn hơn nhận được từ các CĐV Bayern tại Allianz Arena mỗi dịp cuối tuần.Với đóng góp to lớn vào chiến công ăn ba của Bayern mùa vừa qua cũng như chiếc Siêu Cup châu Âu mà đội này đoạt được hồi cuối hè, Ribery nổi lên như
là một ứng viên nặng ký đoạt Quả Bóng Vàng FIFA 2013 | 1
Trang 7Black Friday (Ngày thứ Sáu đen) là lễ hội mua sắm lớn nhất trong năm của người Mỹ,
mở màn cho mùa shopping trước Lễ Giáng sinh Theo truyền thống, sự kiện này được tổ chức ngay sau ngày Lễ Tạ Ơn Các cửa hàng, siêu thị trên khắp nước Mỹ sẽ đồng loạt mở cửa sớm, tung khuyến mãi để thu hút người tiêu dùng Tuy nhiên, năm nay, hầu hết các hãng bán lẻ lớn đều khởi động Black Friday sớm một ngày | 0.
4 Cấu trúc project
Cấu trúc package
1 naivebayes.gui Chứa các class về giao diện của chương trình
2 naivebayes.gui.dto Chứa các class Data Transfer Object
3 naivebayes.process Chứa các class xử lý chính phân loại văn bản sử
dụng Nạve Bayes
4 naivebayes.gui.resources Chứa Resource của chương trình
Cấu trúc Class
ST
T
1 naivebayes.gui.ComponentID Class chứa ID của các Button
2 naivebayes.gui.GuiCreate Class tạo giao diện
3 naivebayes.gui.GuiListener Class xử lý sự kiện Button…
4 naivebayes.gui.GuiMain Class hàm main
5 naivebayes.gui.GuiProcess Class xử lý chung
6 naivebayes.gui NaiveBayesTabPanel Class TabPanel
7 naivebayes.gui.dto.VocabularyDTO Class đối tượng Data Transfer
Object
8 naivebayes.gui.resources.Resources Class chứa tài nguyên của chương
trình.( Hình ảnh )
9 naivebayes.process NaiveBayesProcess Class xử lý cho huấn luyện và test
Nạve Bayes
Trang 8Một số hình ảnh
Hình 2: Kết quả huấn luyện
Hình 3 : Kết quả phân lớp
Trang 9VII Tài liệu tham khảo
[1] Pat Langley, Stephanie Sage: Induction of Selective Bayesian Classifiers In
Proceedings of the 10thUAI 1994: 399-406
[2] S.L Ting, W.H Ip, Albert H.C Tsang Is Nạve Bayes a Good Classifier for
Document Classification? International Journal of Software Engineering and Its
Applications Vol 5, No 3, July, 2011
[3] http://nlp.stanford.edu/IR-book/html/htmledition/text-classification-and-naive-bayes-1.html
[4] http://www.stanford.edu/class/cs124/lec/naivebayes.pdf