LỜI MỞ ĐẦUPhâ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
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN HỌC MÔN HỆ CHUYÊN GIA
TỰ ĐỘNG VÀ ÁP DỤNG VÀO BÀI TOÁN PHÂN LOẠI
VĂN BẢN THEO NAVIE BAYS
Giảng viên hướng dẫn: NGUYỄN THỊ THU HÀ
Sinh viên thực hiện:
TRẦN VĂN ĐẠI NGUYỄN VĂN LINH
VŨ VĂN TUẤN
Hà Nội, 06-2013
Trang 2MỤC LỤC
Trang 3DANH MỤC BẢNG
Trang 4DANH MỤC TỪ VIẾT TẮT
VLSP Nghiên cứu phát triển một số sản phẩm thiết yếu về xử lí tiếng nói và
văn bản tiếng Việt - Đề tài thuộc Chương trình Khoa học Công nghệ cấpNhà nước KC01/06-10
CRFs Conditional Random Fields
VTB Viet Tree Bank
JRE Java Runtime Environment
XML eXtensible Markup Language - Ngôn ngữ Đánh dấu Mở rộng
RSS Rich Site Summary (RSS 0.91), RDF Site Summary (RSS 0.9 and 1.0),
Really Simple Syndication (RSS 2.0.0)
UTF-8 8-bit Unicode Transformation Format - Định dạng chuyển đổi Unicode
8-bit
Trang 5LỜI MỞ ĐẦU
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ântí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ơngthể đọ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ệuchứ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ào 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 Một ví dụ kháctrong thực tế là việc phân loại spam mail Khi một mail được gửi đến hộp thư, nếu đểngười dùng phải đọc tất cả các mail thì sẽ tốn rất nhiều thời gian vì spam mail rấtnhiều Vì vậy, cần cĩ một hệ thống phân loại đâu là spam mail và đâu là mail tốt
Để giải bài tốn này đã cĩ rất nhiều phương pháp được đưa ra như: thuật tốnNạve Bayes, K-NN (K-Nearest-Neighbor), Cây quyết định (Decision Tree), MạngNeuron nhân tạo (Artificial Neural Network) và SVM (Support Vector Machine) Mỗiphươ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ânloạ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 Việc cài đặt dựa vào thuật tốn nào thì một trong những cơng đoạn khĩ khắn nhất
là phân tách được các từ trong văn bản để đưa vào huấn luyện Do lượng từ vựng là rấtlớn, phong phú về mặt ngữ pháp nên việc tách từ này là rất khĩ khăn trong việc xâydựng nên một CSDL từ cần thiết Việc này cần phải được thực hiện một cách tự độngvới độ chính xác cao giúp cho cơng việc phân tách được dễ dàng Để thực hiện đượcđiều này thì ý tưởng chính là tích hợp một hệ thống tách từ vào mã nguồn của mình
Chính vì vậy chúng em lựa chọn đề tài: “Tích hợp gĩi mã nguồn mở tách từ tự động
và áp dụng vào bài tốn phân loại văn bản theo Navie Bays “ làm đề tài kết thúc
mơn học của mình
Chúng em xin chân thành cảm ơn các thầy, cơ bộ mơn đã tận tình giảng dạy emtrong suốt thời gian học tập vừa qua Nhờ cĩ sự chỉ dạy tận tình của cơ Nguyễn ThịThu Hà trực tiếp hướng dẫn giảng dạy, cùng sự đào tạo của các thầy cơ bộ mơn kháctrong thời gian qua giúp chúng em hồn thành bài báo cáo này Do đây là lần đầu tiêntriển khai một hệ thống cĩ tính thực tiễn cao, nên quá trình triển khai cĩ thể cịn nhiềusai sĩt Mong các thầy cơ đĩng gĩp ý kiến giúp chúng em hiểu rõ hơn về bài tốn.Một lần nữa chúng em xin chân thành cảm ơn các thầy cơ!
Trang 6CHƯƠNG 1 BÀI TỐN PHÂN LOẠI VĂN BẢN
1.1 Giới thiệu
Ngày nay, sự bùng nổ thơng tin do bị tác động bởi sự xuất hiện của các siêuphương tiện và World Wide Web (WWW) đã làm cho khơng gian dữ liệu gia tăngthường xuyên, điều này tạo ra một thách thức cho các hệ thống truy vấn thơng tin saocho cĩ hiệu quả Một trong những khĩ khăn mà các hệ thống thơng tin thường phảigặp đĩ là tần suất cập nhật của các thơng tin quá lớn Phương thức sử dụng giấy tronggiao dịch đang dần được số hĩa, do nhiều tính năng vượt trội mà phương thức nàymang lại, như là cĩ thể lưu trữ lâu dài, cập nhật, sửa đổi, tìm kiếm một cách nhanhchĩ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ùngvớ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 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ầnlượ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áchnhanh 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ânloại văn bản tự động là thực sự cần thiết
Cĩ rất nhiều cơng trình nghiên cứu về phân loại văn bản và đã cĩ được nhữngkết quả đáng khích lệ, như là: Support Vector Machine, K–Nearest Neighbor, LinearLeast Squares Fit, Neural Network, Nạve Bayes, Centroid Base… Điểm chung củacá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, tuynhiê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ỗiphươ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àitố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ínhtố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 qủa phân loại tốt nhất
Do nhiều vấn đề, điều kiện khách quan, bài báo cáo này khơng cung cấp hướngdẫn chi tiết để xây dựng ứng dụng một cách hồn chỉnh Bài báo cáo chỉ trình bày cáckhái niệm thuật tốn và các cơng cụ hỗ trợ trợ giúp để xây dựng chương trình này
Trang 71.2 Phát biểu bài toán
Bài toán phân loại văn bản có thể được phát biểu như sau: Cho trước một tập vănbản D={d1,d2,…,dn} và tập chủ đề được định nghĩa C={c1,c2,…,cn} Nhiệm vụ củabài toán là gán lớp di thuộc về cj đã được định nghĩa Hay nói cách khác, mục tiêu củabài toán là đi tìm hàm f:
(1.1)
1.3 Mô hình tổng quát
Có rất nhiều hướng tiếp cận bài toán phân loại văn bản đã được nghiên cứu như:tiếp cận bài toán phân loại dựa trên lý thuyết đồ thị, cách tiếp cận sử dụng lý thuyết tậpthô, cách tiếp cận thống kê… Tuy nhiên, tất cả các phương pháp trên đều dựa vào cácphương pháp chung là máy học đó là: học có giám sát, học không giám sát và học tăngcường
Vấn đề phân loại văn bản theo phương pháp thống kê dựa trên kiểu học có giámsát được đặc tả bao gồm 2 giai đoạn: giai đoạn huấn luyện và giai đoạn phân lớp
- Giai đoạn huấn luyện
Chúng ta có một tập huấn luyện, mỗi phần tử trong tập huấn luyện được gán vàomột hoặc nhiều lớp mà chúng ta sẽ thể hiện chúng bằng một mô hình mã hoá Thôngthường, mỗi phần tử trong tập huấn luyện được thể hiện theo dạng ,c).Trong đó, làvector biểu diễn cho văn bản trong tập huấn luyện
Sau đó, chúng ta định nghĩa một lớp mô hình và một thủ tục huấn luyện Lớp môhình là họ các tham số của bộ phân loại, thủ tục huấn luyện là một giải thuật (hay thuậttoán) để chọn ra một họ các tham số tối ưu cho bộ phân loại
Hình 1.1: Mô hình giai đoạn huấn luyệnĐầu vào: ngữ liệu huấn luyện và thuật toán huấn luyện
Đầu ra: mô hình phân lớp (bộ phân lớp – classifier)
Các bước trong giai đoạn huấn luyện:
Trang 8Hình 1.2: Các bước trong giai đoạn huấn luyệnTrong đó :
Ngữ liệu huấn luyện: kho ngữ liệu thu thập từ nhiều nguồn khác nhau
Tiền xử lý: chuyển đổi tài liệu trong kho ngữ liệu thành một hình thức phù hợp
để phân loại
Vector hoá: mã hoá văn bản bởi một mô hình trọng số
Trích chọn đặc trưng: loại bỏ những từ (đặc trưng) không mang thông tin khỏi tàiliệu nhằm nâng cao hiệu suất phân loại và giảm độ phức tạp của thuật toán huấn luyện.Thuật toán huấn luyện: Thủ tục huấn luyện bộ phân lớp để tìm ra họ các tham sốtối ưu
Đánh giá: bước đánh giá hiệu suất (chất lượng) của bộ phân lớp
- Giai đoạn phân lớp
Sau khi đã hoàn thành giai đoạn huấn luyện, mô hình phân lớp sẽ được áp dụngcho các văn bản mới cần phân loại
Hình 1.3: Mô hình giai đoạn phân lớpCác bước trong giai đoạn phân lớp:
Trang 9Hình 1.4: Các bước trong giai đoạn phân lớp
1.4 Mục đích và phạm vi nghiên cứu
Mục đích:
+ Tìm hiểu thuật toán Navie Bayes và phạm vi ứng dụng của nó trong phânloại văn bản
+ Nắm rõ hơn về cơ chế học tập và huấn luyện máy học
+ Xây dựng một chương trình có khả năng phân loại văn bản sau khi tìmhiểu thuật toán
Phạm vi nghiên cứu: chương trình thực hiện trong một quy mô nghiên cứu lớnvới một số lượng văn bản nhiều vào khoảng 700 văn bản và số lượng từ khoảng trên
3000 từ
Trang 10CHƯƠNG 2 CƠ SỞ XÂY DỰNG CHƯƠNG TRÌNH
2.1 Chương trình sử dụng
2.1.1 Microsoft SQL 2012
Microsoft SQL 2012 là một hệ quản trị cơ sở dữ liệu tương tác với người sử dụngchạy trên môi trường Windows, nó tăng thêm sức mạnh trong công tác tổ chức và tìmkiếm thông tin, các qui tắc kiểm tra dữ liệu, giá trị mặc định, khuôn nhập dữ liệu củaMicrosoft SQL 2012 hoàn toàn đáp ứng yêu cầu Quản lý được khối lượng dữ liệu lớnvới tần suất truy cập dữ liệu cao, đáp ứng các dịch vụ trực tuyến và đảm bảo các yêucầu về an toàn dữ liệu Với việc hỗ trợ các chuẩn cơ sở dữ liệu(CSDL) sẽ giúp hệthống dữ liệu mạnh hơn với khả năng kết nối, nâng cấp và bảo trì
2.1.2 Microsoft Visual Studio 2012
Microsoft Visual Studio 2012 là ngôn ngữ hoàn thiện và hoạt động theo hướng đối tượng.
Microsoft Visual Studio 2012 là ngôn ngữ lập trình thông dụng trên Windows,
hỗ trợ quản lý Cơ sở dữ liệu, lập trình Internet
Microsoft Visual Studio 2012 có nhiều tính năng mới, các điều khiển mới chophép ta viết các chương trình ứng dụng kết hợp các giao diện, cách xử lý và tính năngcủa Office và trình duyệt Web, ngoài ra khi dùng Microsoft Visual Studio 2012 sẽ tiếtkiệm thời gian và công sức so với các ngôn ngữ lập trình khác khi xây dựng cùng mộtứng dụng
Microsoft Visual Studio 2012 gắn liền với khái niệm lập trình trực quan (Visual),nghĩa là khi thiết kế chương trình ta nhìn thấy ngay kết quả qua từng thao tác và giaodiện khi chương trình thực hiện Đây là thuận lợi lớn so với các ngôn ngữ lập trìnhkhác
Bên cạnh đó, Microsoft Visual Studio 2012 còn hỗ trợ tính năng kết nối môitrường dữ liệu Access, SQL, việc liên kết dữ liệu có thể thực hiện bằng nhiều cách
2.1.3 Bộ code mã nguồn mở xử lý văn bản
Để có thể có được kết quả huấn luyện và phân loại tốt các văn bản (phân loạichính xác), chúng ta cần có một hệ từ vựng chuẩn Việc tách các từ và gán nhãn từ loạicho các cụm từ này trên thực tế là rất khó khăn và đòi hỏi sử dụng đến nhiều thuật toán
Trang 11khác nhau do vậy việc xây dựng một modul như vậy là không khả thi Thay vào đóchúng ta có thể tích hợp các hệ thông nghiên cứu khác vào hệ thống giúp cho việc xâydựng chương trình nhanh chóng và thuận tiện hơn
Năm 2010, nhánh đề tài "Xử lí văn bản tiếng Việt" là một phần của đề tàiKC01.01/06-10 "Nghiên cứu phát triển một số sản phẩm thiết yếu về xử lí tiếng nói vàvăn bản tiếng Việt" Đây là đề tài liên kết giữa các nhóm nghiên cứu xử lí tiếng Việtđến từ các trường đại học, viện nghiên cứu trong nước và quốc tế Các sản phẩm đượctrình diễn bao gồm:
- SP7.2: Từ điển tiếng Việt dùng cho xử lí ngôn ngữ tự nhiên
Thực hiện: Vũ Xuân Lương, Hồ Tú Bảo, Nguyễn Thị Minh Huyền
- SP7.3: Kho ngữ liệu câu tiếng Việt có chú giải
Thực hiện: Nguyễn Phương Thái, Vũ Xuân Lương, Nguyễn Thị Minh Huyền
- SP7.4: Hai kho ngữ liệu câu Anh-Việt phổ quát-chuyên ngành
Thực hiện: Hồ Bảo Quốc, Cao Hoàng Trụ
- SP8.2: Hệ phân đoạn từ tiếng Việt
Thực hiện: Nguyễn Thị Minh Huyền, Hồ Bảo Quốc
- SP8.3: Hệ phân loại từ tiếng Việt
Thực hiện: Phan Xuân Hiếu, Lê Minh Hoàng
- SP8.4: Hệ phân cụm từ tiếng Việt
Thực hiện: Nguyễn Lê Minh, Cao Hoàng Trụ
- SP8.5: Hệ phân tích câu tiếng Việt
Thực hiện: Lê Thanh Hương, Nguyễn Phương Thái
Trong chương trình của chúng ta cần tách được các danh từ để đưa vào CSDLnên chúng ta sử dụng hệ tách từ tiếng Việt và hệ gán nhãn từ loại tiếng Việt nằn trongnhánh SP8.3 để tích hợp vào hệ thống
• Hệ gán nhãn từ loại tiếng Việt
- Gói cài đặt: VietTagger
- Ngày phát hành: 16/08/2010
Trang 12- Dựa trên các mô hình học máy Maximum Entropy và CRFs;
- Được huấn luyện sử dụng dữ liệu treebank tiếng Việt (20,000 câu đã được gán nhãn từloại)
- Độ chính xác trên 93%
2.2 Cơ sở lý thuyết
2.2.1 Tiền xử lý văn bản
Văn bản trước khi được vector hoá, tức là trước khi sử dụng, cần phải được tiền
xử lý Quá trình tiền xử lý sẽ giúp nâng cao hiệu suất phân loại và giảm độ phức tạpcủa thuật toán huấn luyện
Tuỳ vào mục đích bộ phân loại mà chúng ta sẽ có những phương pháp tiền xử lývăn bản khác nhau, như:
- Chuyển vẳn bản về chữ thường
- Loại bỏ dấu câu (nếu không thực hiện tách câu)
- Loại bỏ các kí tự đặc biệt biệt([ ],[.], [,], [:], [“], [”], [;], [/], [[]], [~], [`], [!],[@], [#], [$],[%],[^],[&],[*],[(],[)]), các chữ số, phép tính toán số học
- Loại bỏ các stopword (những từ xuất hiện hầu hết trong các văn bản) không có
ý nghĩa khi tham gia vào phân loại văn bản
- …
2.2.2 Phương pháp biểu diễn văn bản
Một trong những nhiệm vụ đầu tiền trong việc xử lý phân loại văn bản là chọnđược một mô hình biểu diễn văn bản thích hợp Một văn bản ở dạng thô (dạng chuỗi)cần được chuyển sang một mô hình khác để tạo thuận lợi cho việc biểu diễn và tínhtoán Tuỳ thuộc vào từng thuật toán phân loại khác nhau mà chúng ta có mô hình biểudiễn riêng Một trong những mô hình đơn giản và thường được sử dụng trong nhiệm
vụ này là mô hình không gian vector Một văn bản trong nhiệm vụ này được biểu diễntheo dạng , với là một vector n chiều để đo lường giá trị của phần tử văn bản
2.2.3 Mô hình không gian vector
Mô hình không gian vector là một trong những mô hình được sử dụng rộng rãinhất cho việc tìm kiếm (truy hồi) thông tin Nguyên nhân chính là bởi vì sự đơn giảncủa nó
Trong mô hình này, các văn bản được thể hiện trong một không gian có số chiềulớn, trong đó mỗi chiều của không gian tương ứng với một từ trong văn bản Phươngpháp này có thể biểu diễn một cách hình tượng như sau: mỗi văn bản D được biểu diễndưới dạng (vector đặc trưng cho văn bản D) Trong đó, =( x1, x2, … , xn ), và n là số
Trang 13lượng đặc trưng hay số chiều của vector văn bản, xi là trọng số của đặc trưng thứ i (với1≤ i ≤n)
Như vậy, nếu trong kho ngữ liệu của quá trình huấn luyện nhiều văn bản, ta kíhiệu Dj, là văn bản thứ j trong tập ngữ liệu, và vector j=( x1j , x2j , … , xnj ) là vector đặctrưng cho văn bản Dj, và xij là trọng số thứ i của vector văn bản j
từ đó trong văn bản Tuy nhiên vẫn có nhiều cách khác nhau để tính trọng số dạng này
Có ba thông tin được sử dụng trong cách tính trọng số bằng tần suất từ là: termfrequency ( tfij số lần suất hiện của từ wi trong văn bản dj ), document frequency (dfi sốvăn bản có chứa từ wi), collection frequency ( cfi số lần suất hiện của từ wi trong cả tậpngữ liệu) Trong đó, dfi ≤ cfi và ∑j tfij =cfi
Thông tin được nắm bắt bởi term frequency là sự nổi bật của thông tin (hay từ)trong một văn bản Term frequency càng cao (số lần xuất hiện càng nhiều trong vănbản) thì đó là từ miêu tả tốt cho nội dung văn bản Giá trị thứ hai, document frequency,
có thể giải thích như là một bộ chỉ định nội dung thông tin Một từ được tập trung ngữnghĩa thường xảy ra nhiều lần trong một văn bản nếu nó cũng xuất hiện trong tất cảcác văn bản khác Nhưng từ không được tập trung ngữ nghĩa trải đều đồng nhất trongtất cả các văn bản
Để thể hiện trọng số phản ánh hết thông tin của từ, thường ta sẽ kết hợp cả hailoại trọng số là tf và df trong một đơn vị chung Dạng biểu diễn trọng số này được gọi
là tf * idf Công thức kết hợp hai giá trị trọng số :
(2.1)Trong đó, N là tổng số văn bản Biểu thức thứ nhất áp dụng cho các từ có xuấthiện trong văn bản, còn biểu thức thứ hai cho các từ không xuất hiện trong văn bản
Trang 14CHƯƠNG 3 PHÂN TÍCH VÀ THIẾT KẾ
Chương trình có một giao diện thân thiện dễ sử dụng với người dùng
Việc thêm văn bản có thể thêm nhiều văn bản cùng một lúc để việc quản lý tiếtkiệm thời gian hơn
Có thể thêm văn bản tự động bằng cách lọc tự động từ những trang tin tức haycác link RSS(Really Simple Syndication)
Có thể sử lý với các loại văn bản txt hoặc doc
- Về quản lý từ vựng:
Việc lấy từ vựng phải được lấy tự động do ngữ liệu từ vựng là rất lớn, từ cựnglấy về phải là các danh từ và hạn chế thấp nhất các từ gây nhiễu hoặc không chính xác
Trang 15Sử dụng tách từ tự động từ các văn bản được bĩc tách về thơng qua hệ mã nguồn
mở tách từ tiếng Việt và gán nhãn từ vựng tiếng Việt
Chương trình được xây dựng theo mơ hình 3 lớp
- Về tổng quan chương trình được xây dựng cĩ các trang chức năng sau:+ Về mặt quản lý:
Trang quản lý văn bản nhằm quản lý các văn bản và thơng tin liên quan
Trang quản lý từ vựng nhằm quản lý các từ vựng phục vụ cho việc phân loạiTrang quản lý lĩnh vực nhằm quản lý các lĩnh vực được phân loại
Trang lấy tin tự động và tách từ tự động đưa vào CSDL
Các trang quản lý mã hĩa, quản lý huấn luyện, quản lý chi tiết huấn luyện, quản
lý link RSS… nhằm lưu và quản lý các thơng tin trong mỗi lần huấn luyện
+ Về chức năng:
Trang Huấn luyện nhằm huấn luyện và quản lý các văn bản huấn luyện
Trang phân loại nhằm phân loại văn bản
3.2.2 Thuật tốn sử dụng
• Định lý Bayes
Đâ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ớpBayes 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 chotrướ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 (độclậ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:
Trang 16(3.1)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 toá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 hoá 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 :
(3.2)Theo tính chất độc lập điều kiện :
(3.3)Khi đó, luật phân lớp cho các tài liệu mới Xnew ={x1, x2, … , xn} là:
(3.4)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ìnhhuấn luyện
Trang 17Xét một ví dụ kinh điển là ví dụ dự đoán xem quyết định của người chơi có đichơi Tennis hay không với các điều kiện về thời tiết đã được biết trước Trong ví dụnày, ta có một bảng dữ liệu huấn luyện như sau :
Day Outlook Tem
p.
Humi dity
Wind Play
Tennis
NoD7 Overcast Cool Norm
al
YesD12 Overcast Mild High Stron
Trang 18- Với thuộc tính Temp: cĩ các giá trị Hot, Cold, Mild
P(yes)*P(Xnew|yes) = 0.005
P(no)* P(Xnew|no) = 0.021
→ Xnew thuộc vào lớp No
• Áp dụng trong phân loại văn bản
Để áp dụng thuật tốn Nạve Bayes vào phân loại văn bản, ta cần thực hiện cácbước tiền xử lý và vector hố các văn bản trong tập huấn luyện Các phương pháp tiền
xử lý và vector hố đã được trình bày ở những phần trước Tuy nhiên,do thuật tốnNạve Bayes dựa trên xác suất văn bản và xác suất đặc trưng, do đĩ ở phương phápnày, chúng ta sẽ sử dụng phương pháp vector hố bằng cách đếm tần suất từ (Wordfrequency weighting)
Trang 19Sau khi đã vector hoá các văn bản, ta cần thực hiện rút chọn các đặc trưng chocác văn bản huấn luyện Ta cũng có rất nhiều cách để thực hiện rút chọn đặc trưng như
sử dụng các độ đo, sử dụng Heuristic, sử dụng từ điển…
Sau khi đã rút chọn đặc trưng, ta sẽ thực hiện thuật toán huấn luyện Ta có thểtóm tắt các bước như sau:
Bước 1: Huấn luyện
- Từ tập huấn luyện, ta rút trích tập từ vựng (các đặc trưng)
- Tính xác suất P(Ci) và P(xk|Ci)
(3.5)docsi: số tài liệu của tập huấn luyện thuộc lớp ci
total#documents: số tài liệu có trong tập huấn luyện
(3.6)Hoặc
(3.7)(làm mịn với luật Laplace)
- n: tổng số từ đôi một khác nhau của lớp ci
- nk: tổng số từ xk trong tập từ vựng trong lớp Ci
- |Texti|: tổng số từ vựng (không phân biệt đôi một) trong lớp Ci
Bước 2: Phân lớp
(3.8)
- positions: tập từ vựng trong bộ huấn luyện
Xét ví dụ: ta có tập tài liệu để huấn luyện sau khi đã vector hoá (sử dụng phươngpháp đơn giản đếm sô lần xuất hiện) và rút trích đặc trưng như sau:
- Bộ từ vựng (đặc trưng): var, bit, chip, log