ĐẠI HỌC BÁCH KHOA HÀ NỘI

Viện Công Nghệ Thông Tin và Truyền Thông

BÁO CÁO BÀI TẬP LỚN
XỬ LÝ NGÔN NGỮ TỰ NHIÊN
Đề tài: Phân lớp văn bản - phân loại website

Nhóm sinh viên thực hiện :
Đinh Quang Huy

– 20081124

Nguyễn Hữu Hạnh

– 20080903

Nguyễn Đức Yên

– 20083244

Doãn Đình Việt

– 20083124

Giáo viên hướng dẫn :
TS. Lê Thanh Hương

Hà Nội, Tháng 4 năm 2012
1

................................................... Giao diện chương trình ................................................................................................4 1..................................... Chương trình Demo................... Tài liệu tham khảo .................................. Tổng quan............3 II......................................................................Mục lục I............................................................................................. Định lý Bayes .................................................................7 1................... Phân loại văn bản bằng phương pháp Naïve Bayes ..............................3....................................15 2 ......... Phương pháp giải quyết bài toán ......... Phương pháp Naïve Bayes .................4 1.. Phân loại Naïve Bayes – Giải thuật ..................................................4.........3 2..2....................................................................................................9 III..................4 1.................................7 2.........................................................................3 1..... Ứng dụng .............15 V.....................14 IV...12 1........................................................................................1...............12 2......................... Áp dụng vào bài toán phân lớp trang web...6 1............ Cấu trúc mã nguồn các lớp chính của chương trình ............. Phân loại Naïve Bayes ............. Bài toán phân lớp văn bản ...................................... Kết luận .........

3 . Tổng quan 1. ứng dụng này rất hữu ích vì nó định vị nội dung thông tin cần tìm kiếm nhanh và dễ dàng hơn.… Một ứng dụng khác của bài toán phân lớp là xây dựng bộ phân lớp sau tìm kiếm. 2. với tất cả ý nghĩa thực tế trên. phân lớp văn bản luôn là vấn đề đáng được quan tâm để có thể phát triển và xây dựng được những công cụ ngày càng hữu dụng hơn. lọc trang web phản động. mô hình phân lớp xây dựng ở bước đầu sẽ được sử dụng để phân lớp cho những văn bản (chưa được phân loại) trong tương lai. Bước đầu tiên được xem như là việc học có giám sát mà chúng ta có thể sử dụng rất nhiều các kĩ thuật học máy đã có như: Naïve Bayes. Bước này còn gọi là bước xây dựng huấn luyện (training process) hay ước lượng mô hình phân lớp. tri thức kinh nghiệm chính là một tập dữ liệu huấn luyện (training dataset) được cung cấp bởi con người bao gồm một tập văn bản và phân lớp tương ứng của chúng. nhóm còn lại bị loại bỏ.I. Trong bài toán lọc nội dung: một văn bản được phân loại vào nhóm: có ích hoặc không có ích. một lần nữa có thể khẳng định rằng trong thời đại Internet được coi là một phần không thể thiếu trong cuộc sống. Bài toán phân lớp văn bản Phân lớp văn bản được coi là quá trình phân loại một văn bản bất kì vào một hay nhiều lớp cho trước. một mô hình phân lớp (classfication model) được xây dựng dựa trên tri thức kinh nghiệm. k láng giềng gần nhất (kNN).… Mục tiêu của bài toán phân lớp là nhằm xây dựng mô hình có khả năng gán nhãn cho một văn bản bất kì với độ chính xác cao nhất có thể. Dựa trên nhu cầu cấp thiết đó. Các ứng dụng cụ thể như: lọc thư rác. Tóm lại. Ở đây. Quá trình này gồm hai bước. Ứng dụng Ứng dụng lớn nhất của bài toán phân lớp văn bản là áp dụng vào bài toán phân loại hay lọc nội dung. Sau đó lấy tất cả những văn bản thuộc nhóm có ích. cây quyết định (Decision Tree). Ở bước thứ hai. Ở bước thứ nhất.

Việc phân loại dựa trên các giá trị xác suất của các khả năng xảy ra của các giả thiết . điển hình là các phương pháp Naïve Bayes. chúng em chọn phương pháp phân lớp Naïve Bayes. D: tập dữ liệu. Entropy cực đại.chúng em chọn đề tài “Phân lớp văn bản – phân loại trang web” để có thể nghiên cứu và phát triển ứng dụng này.Là một phương pháp thường được sử dụng trong các bài toán phân lớp văn bản . 4 .Là phương pháp học phân lớp có giám sát . Phương pháp Naïve Bayes . II. 1.Dựa trên định lý Bayes 1. P(h): xác suất trước (prior probability) xảy ra giả thiết (phân lớp) h là đúng. . Định lý Bayes Trong đó: - h: giả thiết (phân lớp).P(h|D): xác suất giả thiết h là đúng với điều kiện tập dữ liệu D được quan sát.… Trong các phương pháp đó.Dựa trên mô hình (hàm) xác suất . Phương pháp giải quyết bài toán Như đã đề cập ở phần I.1. hiện nay đã có khá nhiều kĩ thuật học máy được áp dụng để giải quyết bài toán phân lớp. P(D): xác suất trước của tập dữ liệu D quan sát được. cây quyết định. P(D|h): xác suất của việc quan sát được (thu được) tập dữ liệu D với điều kiện giả thiết h là đúng.

Giả thiết h tìm được này gọi là giả thiết cực đại hóa xác suất có điều kiện (maximum a posteriori . Vậy phương pháp phân lớp Naïve Bayes dựa trên xác suất có điều kiện này. Giả thiết (phân lớp) h: một người có chơi tennis.MAP): 5 . P(D|h): xác suất của một ngày có thuộc tính Outlook nhận giá trị Sunny và thuộc tính Wind nhận giá trị Strong với điều kiện một người có chơi tennis.Ví dụ ta có tập dữ liệu như sau: - Trong ví dụ trên. Xác suất trước P(D): xác suất của một ngày có thuộc tính Outlook nhận giá trị Sunny và thuộc tính Wind nhận giá trị Strong. P(h|D): xác suất một người chơi tennis vơi điều kiện thuộc tính Outlook nhận giá trị Sunny và thuộc tính Wind nhận giá trị Strong. hệ thống học sẽ tìm giả thiết có thể xảy ra nhất đối với dữ liệu quan sát được D. Xác suất trước P(h): xác suất 1 người chơi tennis (không phụ thuộc vào các thuộc tính Outlook và Wind). Với một tập các giả thiết (các phân lớp) h có thể. giả sử rằng: Tập dữ liệu D: là tập các ngày mà thuộc tính Outlook có giá trị Sunny và thuộc tính Wind có giá trị Strong.

Vậy: Và phân loại Naïve Bayes tìm phân lớp có thể nhất đối với ví dụ mới z là: 6 . z2. zn) là như nhau đối với các lớp nên ta cần tìm: Trong phương pháp phân loại Naïve Bayes. cm} o Với một ví dụ mới z thì cần xác định xem z sẽ được phân vào lớp nào? .….Biểu diễn bài toán phân loại: o Một tập học D_train.2.…. xn) o Một tập xác định các nhãn lớp: C = {c1. trong đó mỗi ví dụ học x được biểu diễn là một vectơ n chiều: (x1. Phân loại Naïve Bayes . c2. các thuộc tính là độc lập có điều kiện đối với các lớp.Mục tiêu: xác định phân lớp phù hợp nhất với z.1.…. x2. Vì xác suất P(z1.

Giai đoạn phân lớp. tính xác suất xảy ra của giá trị thuộc tính đó với một phân lớp ci: P(xj | ci) . trong đó mỗi ví dụ học là một biểu diễn văn bản đã gắn với một nhãn lớp: D = {(dk. Phân loại Naïve Bayes – Giải thuật .3.4.Giai đoạn học: o Từ tập các văn bản trong D_train. tính giá trị likehood: o Xác định phân lớp của z là có thể nhất: 1. ci)} o Một tập các nhãn lớp xác định: C = {ci} . tính xác suất từ khóa tj xuất hiện đối với lớp ci theo công thức : 7 . Phân loại văn bản bằng phương pháp Naïve Bayes .Biểu diễn bài toán phân loại văn bản: o Tập học D_train.Giai đoạn học: ta sử dụng 1 tập học. o Gọi D_ci ( D_train) là tập các văn bản trong D_train có nhãn lớp là ci . Đối với mỗi phân lớp có thể C: o Tính xác suất trước P(ci) o Đối với mỗi giá trị thuộc tính xj. đối với mỗi 1 ví dụ mới: o Đối với mỗi phân lớp C. ta trích ra tập các từ khóa T = {tj}. o Đối với mỗi phân lớp ci:  Tính giá trị xác suất trước của phân lớp ci :  Đối với mỗi từ khóa tj.1.

ta tính giá trị likehood của văn bản d đối với lớp ci o Văn bản d sẽ được phân vào lớp c* có giá trị likehood lớn nhất: 8 .Giai đoạn phân lớp cho 1 văn bản mới d: o Từ văn bản d. trích ra tập T_d gồm các từ khóa được định nghĩa trong tập T (T_d T) o Giả sử rằng. o Đối với mỗi phân lớp ci. tj) là số lần xuất hiện của từ khóa tj trong văn bản dk .Trong đó: n(dk. xác suất xuất hiện của từ khóa tj đối với lớp ci là độc lập đối với vị trí của từ khóa đó trong văn bản.

Loại bỏ Stop-Word: bản chất của các ngôn ngữ tự nhiên là luôn có các từ xuất hiện nhiều nhưng không mang ý nghĩa để phân loại.2. chúng em có include chương trình vnTagger của tác giả Lê Hồng Phương – ĐHQG Hà Nội vào trong chương trình của mình để xử lý tách từ trong các văn bản thuộc tập dữ liệu huấn luyện D_train.Tách từ: trong bước này.Tập dữ liệu huấn luyện D_train: trong khuôn khổ BTL. .net (bỏ qua bước xử lý lấy phần nội dung này từ 1 trang web) và gán nhãn (lớp) cho chúng. Các từ này được gọi là stop-word. . Áp dụng vào bài toán phân lớp trang web Mô hình giải quyết bài toán của chúng em như sau: Mô hình quy trình giải quyết bài toán Trong đó: . Chúng em sẽ tiến hành loại bỏ những từ này từ tập những từ tách được ở bước trên để xây dựng 1 tập các từ khóa. do thời gian có hạn chúng em chọn tập dữ liệu huấn luyện D_train là phần nội dung của các bài viết trên trang vnexpress. Danh sách các stop-word được thống kê trong bảng sau: 9 .

Mỗi khi chạy chương trình thì chương trình sẽ không phải thực hiện lại các bước đó nữa. điện ảnh. .Tập các từ khóa: là tập các từ được tách sau khi loại bỏ stop-word. giải trí ent Các nội dung liên quan đến nghệ thuật.và Còn hay hoặc Không không những không chỉ mà còn nếu thì Nên hễ tuy Nhưng bả lại Giá vì bởi tại do Song dầu mặc dầu Dù dẫu dẫu cho chẳng lẽ làm như thế mà bậy mà có điều hơn nữa huống hồ huống gì huống nữa Ngay cũng chính cả Bảng danh sách các stop-word . chúng em đưa ra danh sách phân lớp tin tức như sau: STT Tên Nhãn Mô tả 1 Kinh tế nss Các nội dung liên quan đến thị trường.Đưa vào CSDL: là bước đưa các từ khóa ở trên vào CSDL. 4 Sức khỏe hel Các nội dung liên quan đến sức khỏe. chúng ta tiến hành áp dụng giải thuật phân lớp văn bản bằng phương pháp Naïve Bayes đối với 1 văn bản mới đầu vào để xác định lớp cho văn bản đó và đưa ra kết luận. Sau khi quan sát và nghiên cứu các trang tin. kinh doanh. âm nhạc. 10 . 5 bước ở trên là 5 bước tiền xử lý được thực hiện trước. Sau khi có tập dữ liệu huấn luyện D_train và tập các từ khóa T.… 2 Giáo dục edu Các nội dung liên quan đến giáo dục 3 Văn hóa.

… 6 Khoa học sci Các nội dung liên quan đến khoa học. Bảng các lớp tin tức 11 . xã hội plt Các nội dung liên quan đến tình hình chính trị.5 Chính trị. 8 Công nhệ tec Các nội dung liên quan đến công nghệ. 7 Thể thao spt Các nội dung liên quan đến thể thao. xã hội.

Giao diện chương trình Giao diện trang chủ 12 . Chương trình Demo Chúng em xây dựng chương trình phân loại website dựa trên công nghệ web-based. Sau đây là giao diện và cấu trúc mã nguồn chính của chương trình: 1.III.

Giao diện hiển thị kết quả 13 .

2. Cấu trúc mã nguồn các lớp chính của chương trình 14 .

Chúng em rất mong nhận được sự góp ý của cô. Viện CNTT&TT ĐHBK Hà Nội. [4] Website: http://vi. Tài liệu tham khảo [1] Bài giảng môn Trí tuệ nhân tạo – TS.0 – tác giả Lê Hồng Phương. Do thời gian có hạn nên chúng em chỉ mới thử nghiệm chương trình trên 1 tập D_train nhỏ và thực hiện luôn đối với phần nội dung chính của 1 trang web mà bỏ qua bước xử lý để lấy phần nội dung đó từ 1 địa chỉ trang web. 15 . Trong thời gian tới.org Và một số trang web tham khảo khác.Kết luận Độ chính xác của chương trình phụ thuộc nhiều vào số lượng của tập dữ liệu huấn luyện D_train và chương trình tách từ. Em cảm ơn! IV.wikipedia. [3] Chương trình vnTagger version 4. ĐHKHTN – ĐHQG Hà Nội. Viện CNTT&TT ĐHBK Hà Nội. chúng em sẽ cố gắng phát triển để hoàn thiện chương trình của mình hơn. [2] Bài giản môn Xử lý ngôn ngữ tự nhiên – TS. Nguyễn Nhật Quang. Lê Thanh Hương.