Nội dung của đề tài này là tìm hiểu thuật tốn Nạve Bayes, qua đĩ áp dụng thuật tốn Nạve Bayes vào bài tốn phân lớp văn bản, xây dựng chương trình demo và minh họa quá trình huấn luyện, k
Trang 1TÊN ĐỀ TÀI:
ỨNG DỤNG THUẬT TỐN NẠVE BAYES CHO BÀI TỐN PHÂN LỚP VĂN BẢN
Giảng viên hướng dẫn:
GS.TSKH Hồng Văn Kiếm Học viên thực hiện:
Võ Anh Tuấn – CH1301113
TP.HCM, 10/10/2014
Trang 2I GIỚI THIỆU 1
1 Giới thiệu đề tài: 1
1.1 Mục tiêu đề tài 1
1.2 Phạm vi thực hiện 1
II CƠ SỞ LÝ THUYẾT 1
1 Định lý Bayes 1
2 Thuật tốn phân lớp Nạve Bayes 2
3 Áp dụng thuật tốn Nạve Bayes trong bài tốn phân lớp văn bản 4
4 Đánh giá 6
III ỨNG DỤNG PHÂN LỚP VĂN BẢN 7
1 Giới thiệu 7
2 Yêu cầu 8
3 Cài đặt và sử dụng 8
4 Thử nghiệm 14
IV KẾT LUẬN 16
V TÀI LIỆU THAM KHẢO 17
Trang 3I GIỚI THIỆU
1 Giới thiệu đề tài:
Đề tài “Ứng dụng thuật tốn Nạve Bayes cho bài tốn phân lớp văn bản” là
đề tài thuộc lĩnh vực máy học Nội dung của đề tài này là tìm hiểu thuật tốn Nạve Bayes, qua đĩ áp dụng thuật tốn Nạve Bayes vào bài tốn phân lớp văn bản, xây dựng chương trình demo và minh họa quá trình huấn luyện, kiểm nghiệm trên một tập dữ liệu, từ đĩ cĩ thể dự báo lớp cho dữ liệu mới nhập vào
1.1 Mục tiêu đề tài
tốn Nạve Bayes
1.2 Phạm vi thực hiện
Bayes, được viết bằng C# và chạy trên mơi trường Windows
II. CƠ SỞ LÝ THUYẾT
1 Định lý Bayes
Định lý Bayes cho phép tính xác suất xảy ra của một sự kiện ngẫu nhiên A khi biết sự kiện liên quan B đã xảy ra Xác suất này được ký hiệu là P(A|B),
và đọc là “xác suất của A nếu cĩ B” Đại lượng này được gọi xác suất cĩ điều
kiện hay xác suất hậu nghiệm vì nĩ được rút ra từ giá trị được cho của B hoặc
phụ thuộc vào giá trị đĩ
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ố:
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
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
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:
Trang 4Từ đĩ dẫn tới
2 Thuật tốn phân lớp Nạve Bayes
Thuật tốn này dựa trên định lý Bayes, nĩ tính ra xác suất một mẫu X thuộc
về một lớp nào đĩ dựa vào xác suất xuất hiện của các thuộc tính cĩ trong X Phương pháp này giả định rằng các thuộc tính là độc lập xác suất, nghĩa là sự xuất hiện của các thuộc tính khơng phụ thuộc lẫn nhau
Thuật tốn Nạve Bayes dựa trên định lý Bayes được phát biểu như sau:
P (Y|X )= P( X∨Y )P(Y )
P (X )
Trong đĩ:
chứng cứ mới X
năng của X khi Y đúng)
Thuật Tốn Nạve Bayes được ứng dụng rất nhiều trong thực tế Một trong những ứng dụng cụ thể là ứng dụng bài tốn phân lớp
Đây là thuật tốn được xem là đơn giản nhất trong các phương pháp phân lớ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
Với mỗi lớp dữ liệu trong bộ huấn luyện, ta tính xác suất phụ thuộc của văn bản cần phân loại:
loại
(k=1n; i=1,2,3…)
Trang 5* Áp dụng trong bài tốn phân loại, các dữ kiện gồm cĩ:
⃗
x=(x1, x2, … , x n)
Theo định lý Bayes:
P(C i|X)=P(X ∨C i)P(C i)
P(X )
Theo tính chất độc lập điều kiện:
P(X|C i)=∏
k=1
n
P(x k|C i)
Trong đĩ:
phân lớp i
Các bước thực hiện thuật tốn Nạve Bayes:
P(x k∨C i)
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:
max
C i ∈C(P(C i)∏
k=1
n
P(x k|C i) )
Ví dụ:
Cho bảng dữ liệu “Chơi bĩng đá”
Trang 6U_ám Ấm_áp Cao Cĩ P
Ta cĩ thể tính các xác suất sau:
Thời tiết
Nhiệt độ
Độ ẩm
Giĩ
Cuối cùng ta cĩ P(p) = 9/14 và P(n) = 5/14
Với bảng dữ liệu trên Cho phân lớp X chưa được tìm thấy như sau X= < mưa, nĩng, cao, khơng>
Phân lớp X :
Một mẫu chưa được gặp X = <mưa, nĩng, cao, khơng>
P(X|p)P(p) = P(mưa|p)P(nĩng|p)P(cao|p)P(khơng|p)P(p) =
(3/9)*(2/9)*(3/9)*(6/9)*(9/14)=0.010582
P(X|n)P(n)= P(mưa|n)P(nĩng|n)P(cao|n)P(khơng|n)P(n) =
(2/5)*(2/5)*(4/5)*(2/5)*(5/14)=0.018286
Vậy mẫu X được phân vào lớp n (khơng chơi bĩng đá)
3 Áp dụng thuật tốn Nạve Bayes trong bài tốn phân lớp văn bản
Phương pháp phân loại Bayes thực hiện việc phân loại bắt đầu với việc phân tích văn bản bằng cách trích những từ được chứa trong văn bản Để thực hiện việc phân tích này, một thuật tốn trích từ đơn giản để lấy ra những từ khác nhau trong văn bản Những từ này sẽ được lưu vào một danh sách dùng để tính xác suất mỗi từ thuộc về mỗi loại Danh sách từ sau đĩ sẽ được sử dụng
để sinh ra một bảng chứa xác suất của từ đĩ thuộc về một loại Bảng này sẽ gồm một cột “word” chứa các từ trong văn bản và một số cột xác suât của từ
đĩ cho mỗi loại, tức là cĩ bao nhiêu loại văn bản thì sẽ cĩ bấy nhiêu cột xác suất Giá trị của cột xác suất sẽ tính theo cơng thức Bayes mà sẽ được trình bày ở bên dưới
Trang 7Trước khi tính xác của từ thuộc về một loại nào, từ đó cần phải được huấn luyện bằng một tập dữ liệu huấn luyện được tổ chức, định dạng theo một qui chuẩn Mỗi từ phân biệt từ các văn bản huấn luyện trong cùng một loại sẽ đưa vào danh sách xuất hiện từ cho loại đó
Dựa vào danh sách xuất hiện của từ, việc phân loại theo xác suất sẽ tiến hành tính toán xác suất hậu nghiệm của từ đó thuộc về một loại cụ thể bằng cách
sử dụng công thức (2) Từ xuất hiện càng nhiều cho một loại thì xác suất càng càng cao, việc phân loại càng chính xác
Công thức trên cho thấy rằng bằng cách quan sát giá trị của một từ cụ thể wj, xác suất của một loại cụ thể Ci, Pr(Ci) có thể được chuyển thành xác suất hậu nghiệm Pr(Ci|wj) Pr(Ci|wj) là xác suất của từ wj thuộc về loại Ci Pr(Ci) có thể được tính bằng công thức sau:
Pr(wj) có thể được tính bằng công thức sau:
Theo công thức Bayes trong phân loại văn bản, với giá trị của xác suất Pr(Category), Pr(Word|Category) và Pr(Word), xác suất hậu nghiệm Pr(Category | Word) của mỗi từ trong văn bản thuộc về một loại có thể được xác định
Xác suất hậu nghiệm của một từ thuộc về mỗi loại sẽ được điền vào bảng xác suất bên dưới
Trang 8Sau khi các ô xác suất được điền vào, xác suất tổng thể của một văn bản thuộc về một loại cụ thể Ci được tính bằng cách chia tổng mỗi cột xác suất cho tổng số từ trong văn bản
trong đó w1, w2, w3, …., w n-1, wn là những từ được trích trong văn bản
Loại nào có xác suất Pr(Category | Document) cao nhất thì văn bản sẽ thuộc
về loại đó theo luật phân loại Bayes
4 Đánh giá
Mô hình phân lớp Naive Bayes là mô hình phân lớp dựa trên xác suất Trong một số lĩnh vực, khả năng áp dụng của nó có thể so sánh với các phương pháp khác như mạng nơron hoặc cây quyết định Trong thực tế, mô hình phân lớp Naive Bayes thực hiện rất tốt trong phân lớp văn bản như hệ thống phân loại văn bản Rainbow, hay trong các hệ thống phân loại email
Các thuật toán Bayes tính toán các khả năng cụ thể đối với các giả định, chẳng hạn như bộ phân lớp Naive Bayes là một trong các cách tiếp cận thực
tế nhất đối với các kiểu học chắc chắn Michie đã đưa ra một nghiên cứu chi tiết việc so sánh giữa bộ phân lớp Naive Bayes với các thuật toán máy học khác trong đó có cả các thuật toán theo cây quyết định và mạng noron Các nhà nghiên cứu đã chứng minh rằng bộ phân lớp Naive Bayes là tương đối mạnh và trong một số trường hợp nó còn cho kết quả tốt hơn Bên cạnh đó, việc thiết kế một hệ thống phân lớp Naive Bayes trong thực tế thường dễ dàng hơn so với phương pháp phân lớp khác vì tính đơn giản của nó và thời gian thực hiện phân lớp một văn bản mới cho kết quả nhanh hơn nhiều
Trang 9Một số đặc điểm của phương pháp Naive Bayes:
bằng cách đếm tần suất của các kết hợp dữ liệu khác nhau trong tập dữ liệu huấn luyện để tính xác suất
một giả định là đúng đắn Điều này cho ta một cách tiếp cận thiết kế một hệ thống học uyển chuyển hơn các thuật tốn khác và loại trừ hồn tồn một giả định nếu nĩ thấy cĩ sự khơng nhất quán với bất kỳ mẫu đơn lẻ nào
định khả năng của một giả định Trong đĩ kiến thức biết trước cĩ được bằng cách phân phối xác suất trên tồn bộ dữ liệu quan sát được cho mỗi giả định cĩ thể cĩ
mới được phân lớp bằng cách kết hợp dự đốn của nhiều giả định
thiết
vẫn cĩ thể cung cấp một chuẩn để tạo quyết định tối ưu so với các phương pháp khác
phí xuất hiện của giá trị các thuộc tính
với các phương pháp khác
học ban đầu
Dựa trên những đặc điểm của các phương pháp phân lớp nêu trên, ta chọn phương pháp phân lớp xác suất Naive Bayes làm mơ hình phân lớp văn bản
III ỨNG DỤNG PHÂN LỚP VĂN BẢN
1 Giới thiệu
NạveBayesClassifier là ứng dụng phân lớp văn bản demo sử dụng thuật tốn
Nạve Bayes Ứng dụng gồm 2 chức năng chính, đĩ là huấn luyện văn bản và phân loại văn bản Dữ liệu huấn luyện sẽ được lưu lại theo một chuẩn và cĩ thể được sử dụng cho những lần huấn luyện tiếp theo
Trang 10 Huấn luyện văn bản (training):
Thơng qua giao diện huấn luyện, người dùng sẽ nhập một số văn bản
cụ thể cho một số loại (Category) cụ thể và huấn luyện nĩ Các văn bản này sẽ thơng qua Learning Facility để chia nhĩm ra theo từng loại.
Nhĩm các văn bản này sẽ được lưu trữ lại và sau đĩ thơng qua bộ
Training data gerneration facility để sinh ra danh sách số lần xuất hiện
của từ Danh sách này sẽ được dùng trong việc tính xác suất Bayes
trong cơng thức phân loại văn bản
Để tiến hành phân loại văn bản, người dùng cũng sẽ nhập văn bản cần phân loại thơng qua giao diện chương trình Văn bản này sẽ được đưa
vào bộ phân tích từ gọi là Input Document Analysis để sinh ra một
danh sách số lần xuất hiện của từ Danh sách này sẽ tính tốn trong
cơng thức Nạve Bayes để tính xác suất đúng cho loại của văn bản
nhập vào
2 Yêu cầu
(http://www.microsoft.com/en-us/download/details.aspx?id=21)
3 Cài đặt và sử dụng
Chương trình được đĩng gĩi thành tập tin NaiveBayesClassifier.exe, người
dùng cĩ thể double click vào tập tin để chạy chương trình mà khơng cần cài đặt
Hình 3.1: Icon chương trình Màn hình giao diện chính của chương trình:
Trang 11Hình 3.2: Giao diện chính
3.1 Xử lý văn bản
Để tiến hành huấn luyện hay phân loại văn bản, trước hết văn bản cần phải được đưa qua bộ xử lý văn bản Nhiệm vụ chủ yếu của bộ xử lý văn bản là tách những từ riêng biệt trong văn bản và đưa vào một danh sách Những từ được tách trong văn bản là những từ có chiều dài tối thiểu tùy thuộc vào chương trình qui định Trong chương trình demo này thì những từ cần xử lý là những từ có chiều dài tối thiểu là 3 ký từ
Vì những từ có có chiều dài quá ngắn sẽ không mang nhiều ý nghĩa trong văn bản
Bộ xử lý văn bản cũng cần xử lý những từ thường xuyên xuất hiện nhưng không mang ý nghĩa gì trong văn bản Những từ này gọi là STOP LIST, chẳng hạn như các từ the, a, an, is… Việc loại bỏ những
từ này sẽ góp phần cho dữ liệu huấn luyện được chính xác hơn
3.2 Huấn luyện văn bản
Từ giao diện chính của chương trình, click vào menu Traning > Training để mở hộp thoại huấn luyện văn bản
Trang 12Hình 3.3: Menu Training Hộp thoại huấn luyện văn bản sẽ xuất hiện
Hình 3.4: Giao diện huấn luyện văn bản Việc huấn luyện bao gồm các bước sau:
Hinh 3.5: Các bước huấn luyện
Trang 13 Bước 1: Nhập văn bản huấn luyện Người dùng có 2 cách để nhập văn bản huấn luyện:
1 Nhập trực tiếp vào text box.
2 Import văn bản từ file text (.txt).
Hình 3.6: Import văn bản từ file text
Sau khi click vào menu File > Import data from file, hộp thoại select file sẽ xuất hiện
Hình 3.7: Hộp thoại select file
Chọn file văn bản muốn huấn luyện và click Open, nội dung
file văn bản này sẽ được hiển thị lên text box
các bước từ 1 đến 3 để huấn luyện cho các văn bản khác
quá trình huấn luyện
Vì mục đích demo, chương trình chỉ hổ trợ một số loại văn bản: Sport,
News, Entertainment, Business, Laws, Education, Science…Những
văn mang nội dung thể thao như bóng đá, bóng rỗ, quần vợt… sẽ
thuộc về loại Sport Những văn bản mang tính chất tin tức như tin thế giới, thời sự… sẽ thuộc về loại News Những văn bản mang nội dung
Trang 14giải trí như âm nhạc, điện ảnh, thời trang … sẽ thuộc về loại
Entertainment Những văn bản mang nội dung kinh tế, thị trường,
chứng khoán… sẽ thuộc về Business Những văn bản nào mang tích chất pháp luật thì thuộc về Laws Những văn bản nào có nội dung về giáo dục sẽ thuộc về loại Education Những loại văn bản mang nội dung khoa học sẽ thuộc về Science.
Việc huấn luyện cần phải thực hiện chính xác cho mỗi loại, tức là văn bản thuộc về loại nào thì cần phải chọn đúng loại cho văn bản đó Việc huấn luyện này càng nhiều thì chương trình sẽ phân loại càng chính xác
Sau khi huấn luyện xong, nhấn nút Finish để kết thúc quá trình huấn
luyện văn bản Chương trình sẽ tạo ra một tập tin dữ liệu huấn luyện
“Data/TrainingData.txt” cùng với thư mục chạy của chương trình.
Người dùng có thể lưu tập tin này để sử dụng cho những lần huyến luyện tiếp theo
Người dùng có thể khám phá tập tin dữ liệu huấn luyện
“Data/TrainingData.txt” bằng cách mở tập tin này bằng một chương
trình soạn thảo văn bản (notepad hay notepad++) Tập tin này chứa tất
cả các từ mà người dùng đã huấn luyện cùng với số lần xuất hiện cho mỗi loại
3.3 Phân lớp văn bản
Có 2 cách nhập văn bản cần phân lớp:
1 Nhập trực tiếp văn bản vào text box
Trang 15Hình 3.8: Nhập trực tiếp văn bản cần phân loại vào text box
2 Import văn bản từ file txt bằng cách click vào menu File >
Import data from file
Hình 3.9: Import văn bản cần phân loại từ file txt
Kết quả phân lớp văn bản sẽ hiển thị ngay bên dưới đoạn văn bản tương tự như hình sau
Trang 16Hình 3.10: Kết quả phân loại nhận được sau khi click Clarify
văn bản mới vào để tiếp tục phân loại
4 Thử nghiệm
Chương trình đã tiến hành huấn luyện dữ liệu từ trang tin tức CNN
Quá trình huấn luyện:
Kết
quả
phân
lớp:
Entertainmen
t
Trang 17Kết quả phân loại trên chỉ mang tính tương đối vì việc huấn luyện được thực hiện trong một phạm vi nhỏ Đối với các văn bản mà người dùng đã huấn luyện thì việc phân loại là khá chính xác Tuy nhiên, để việc dự đoán lớp trở nên chính xác thì cần một tập dữ liệu huấn luyện đủ lớn
IV KẾT LUẬN
1 Kết quả đạt được
Trang 18 Trình bày được thuật tốn Nạve Bayes.
Cài đặt được ứng dụng demo và chạy thử trên tập dữ liệu huấn luyện, phân lớp và kiểm thử tính chính xác
2 Hạn chế và tồn tại
Do hạn chế về thời gian, nên kết quả vẫn cịn nhiều tồn tại như sau:
Chỉ mới chạy thử nghiệm trên tập dữ liệu chưa đủ lớn và trong phạm vi hẹp
Kết quả chạy thử nghiệm cịn yếu nên chưa đáng tin tưởng lắm Nguyên nhân cĩ thể là do chưa tối ưu được thuật tốn trong quá trình cài đặt
3 Hướng phát triển
Nạve Bayes chỉ là một trong số rất nhiều thuật tốn, bài tốn phân lớp chỉ là một trong số các bài tốn của lĩnh vực khai phá dữ liệu, khám phá tri thức Vì vậy hướng phát triển tiếp theo cho chúng ta nên là: Tìm hiểu các thuật tốn phân loại khác và
so sánh ưu nhược điểm của chúng, quan trọng nhất là hiểu được phạm vi ứng dụng của chúng đối với từng loại dữ liệu để áp dụng cho hợp lý
V TÀI LIỆU THAM KHẢO
Trang 19[1] Bài giảng môn Công nghệ tri thức và ứng dụng của GS.TSKH Hoàng Văn Kiếm
[2] Luận văn “Thuật toán Bayes và ứng dụng” của Nguyễn Văn Huy – ĐHQG
Hà Nội