Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
335,62 KB
Nội dung
ĐẠ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 Mục lục 2 I. Tổng quan 1. 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. Quá trình này gồm hai bước. Ở bước thứ nhất, 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. Ở đây, 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. 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. Ở bước thứ hai, 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, k láng giềng gần nhất (kNN), cây quyết định (Decision Tree),… 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ể. 2. Ứ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. 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. Sau đó lấy tất cả những văn bản thuộc nhóm có ích, nhóm còn lại bị loại bỏ. Các ứng dụng cụ thể như: lọc thư rác, lọc trang web phản động,… 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, ứ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. Tóm lại, với tất cả ý nghĩa thực tế trên, 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, 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. Dựa trên nhu cầu cấp thiết đó, 3 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. II. Phương pháp giải quyết bài toán Như đã đề cập ở phần I, 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, điển hình là các phương pháp Naïve Bayes, cây quyết định, Entropy cực đại,… Trong các phương pháp đó, chúng em chọn phương pháp phân lớp Naïve Bayes. 1. Phương pháp Naïve Bayes - Là phương pháp học phân lớp có giám sát - Dựa trên mô hình (hàm) xác suấ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 - 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 - Dựa trên định lý Bayes 1.1. Định lý Bayes Trong đó: - h: giả thiết (phân lớp). - D: tập dữ liệu. - P(h): xác suất trước (prior probability) xảy ra giả thiết (phân lớp) h là đúng. - P(D): xác suất trước của tập dữ liệu D quan sát được. - 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. - 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. Ví dụ ta có tập dữ liệu như sau: 4 Trong ví dụ trên, 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. - Giả thiết (phân lớp) h: một người có chơi tennis. - 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). - 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(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. - 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. 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. Với một tập các giả thiết (các phân lớp) h có thể, 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. 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 - MAP): 5 1.2. Phân loại Naïve Bayes - Biểu diễn bài toán phân loại: o Một tập học D_train, trong đó mỗi ví dụ học x được biểu diễn là một vectơ n chiều: (x 1 , x 2 ,…, x n ) o Một tập xác định các nhãn lớp: C = {c 1 , c 2 ,…, c m } 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? - Mục tiêu: xác định phân lớp phù hợp nhất với z. Vì xác suất P(z 1 , z 2 ,…, z n ) 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, các thuộc tính là độc lập có điều kiện đối với các lớp. 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 1.3. Phân loại Naïve Bayes – Giải thuật - Giai đoạn học: ta sử dụng 1 tập học. Đối với mỗi phân lớp có thể C: o Tính xác suất trước P(c i ) o Đối với mỗi giá trị thuộc tính x j , 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 c i : P(x j | c i ) - Giai đoạn phân lớp, đối với mỗi 1 ví dụ mới: o Đối với mỗi phân lớp C, tính giá trị likehood: o Xác định phân lớp của z là có thể nhất: 1.4. 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, 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 = {(d k , c i )} o Một tập các nhãn lớp xác định: C = {c i } - Giai đoạn học: o Từ tập các văn bản trong D_train, ta trích ra tập các từ khóa T = {t j }. o Gọi D_c i ( D_train) là tập các văn bản trong D_train có nhãn lớp là c i . o Đối với mỗi phân lớp c i : Tính giá trị xác suất trước của phân lớp c i : Đối với mỗi từ khóa t j , tính xác suất từ khóa t j xuất hiện đối với lớp c i theo công thức : 7 Trong đó: n(d k , t j ) là số lần xuất hiện của từ khóa t j trong văn bản d k - 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, xác suất xuất hiện của từ khóa t j đối với lớp c i là độc lập đối với vị trí của từ khóa đó trong văn bản. o Đối với mỗi phân lớp c i , ta tính giá trị likehood của văn bản d đối với lớp c i o Văn bản d sẽ được phân vào lớp c* có giá trị likehood lớn nhất: 8 2. Á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 đó: - Tập dữ liệu huấn luyện D_train: trong khuôn khổ BTL, 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.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. - Tách từ: trong bước này, 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. - 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. Các từ này được gọi là stop-word. 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. Danh sách các stop-word được thống kê trong bảng sau: 9 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 - Tập các từ khóa: là tập các từ được tách sau khi loại bỏ stop-word. - Đưa vào CSDL: là bước đưa các từ khóa ở trên vào CSDL. 5 bước ở trên là 5 bước tiền xử lý được thực hiện trước. 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. Sau khi có tập dữ liệu huấn luyện D_train và tập các từ khóa T, 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, 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, kinh doanh,… 2 Giáo dục edu Các nội dung liên quan đến giáo dục 3 Văn hóa, giải trí ent Các nội dung liên quan đến nghệ thuật, âm nhạc, điện ảnh. 4 Sức khỏe hel Các nội dung liên quan đến sức khỏe. 5 Chính trị, xã hội plt Các nội dung liên quan đến tình hình chính trị, xã hội,… 6 Khoa học sci Các nội dung liên quan đến khoa học. 10 [...]... thao 8 Công nhệ tec Các nội dung liên quan đến công nghệ Bảng các lớp tin tức 11 III 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 Giao diện chương trình Giao diện trang chủ Giao diện hiển thị kết quả 12 2 Cấu trúc mã nguồn các lớp chính của chương trình 13 Kết luận Độ chính xác của... 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 Trong thời gian tớ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 Chúng em rất mong nhận được sự góp ý của cô Em cảm ơn! IV Tài liệu tham khảo [1] Bài giảng môn Trí tuệ nhân tạo – TS Nguyễn Nhật Quang, Viện CNTT&TT ĐHBK Hà Nội [2] Bài giản môn Xử lý ngôn ngữ tự nhiên – TS Lê Thanh Hương, Viện... Viện CNTT&TT ĐHBK Hà Nội [2] Bài giản môn Xử lý ngôn ngữ tự nhiên – TS Lê Thanh Hương, Viện CNTT&TT ĐHBK Hà Nội [3] Chương trình vnTagger version 4.0 – tác giả Lê Hồng Phương, ĐHKHTN – ĐHQG Hà Nội [4] Website: http://vi.wikipedia.org Và một số trang web tham khảo khác 14 . 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. 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. Quá trình này gồm hai bước. Ở bước thứ nhất, một mô hình phân lớp (classfication. toán phân lớp văn bản - Dựa trên định lý Bayes 1.1. Định lý Bayes Trong đó: - h: giả thiết (phân lớp) . - D: tập dữ liệu. - P(h): xác suất trước (prior probability) xảy ra giả thiết (phân lớp)