MỞ ĐẦU Nêu bối cảnh nghiên cứu, lý do chọn đề tài và mục tiêu nghiên cứu. ● CHƢƠNG 1: BÀI TOÁN PHÂN LOẠI VĂN BẢN + Phân loại văn bản. + Mô hình phân loại văn bản dùng tiếp cận học máy + Thu thập dữ liệu + Tiền xử lý văn bản + Biểu diễn văn bản dƣới dạng vec-tơ đặc trƣng ● CHƢƠNG 2: THUẬT TOÁN MÁY VEC-TƠ HỖ TRỢ TRONG PHÂN LOẠI VĂN BẢN + Thuật toán máy vec-tơ hỗ trợ + Ứng dụng trong phân loại văn bản ● CHƢƠNG 3: KẾT QUẢ VÀ ĐÁNH GIÁ + Dữ liệu thử nghiệm + Triển khai chƣơng trình + Kết quả thử nghiệm với SVM + So sánh với thuật toán Naïve Bayes + Đánh giá ● KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ● TÀI LIỆU THAM KHẢO 4 CHƢƠNG 1: BÀI TOÁN PHÂN LOẠI VĂN BẢN 1. Phân loại văn bản 1.
Khái niệm Phân loại văn bản hay còn gọi là Text Categorization [1] [10] hoặc Text Classification [1]. là một bài toán xử lý văn bản cổ điển thuộc về lĩnh vực Xử lý ngôn ngữ tự nhiên (Natural Language Processing) [1] [11]., đó là ánh xạ một văn bản mới vào một chủ đề (tên lớp/nhãn lớp) đã biết trong một tập các chủ đề dựa trên mức độ tƣơng tự của văn bản đó so với các văn bản trong cùng chủ đề đấy. Phân loại văn bản là công việc đƣợc sử dụng để hỗ trợ trong quá trình tìm kiếm thông tin, chiết lọc thông tin, lọc văn bản. Phân loại văn bản có thể thực hiện thủ công hoặc tự động sử dụng các kỹ thuật học máy có giám sát [1].
Phân loại văn bản tin tức theo chủ đề Mục tiêu của một hệ thống phân loại văn bản là nó có thể tự động phân loại một văn bản cho trƣớc, để xác định xem văn bản đó thuộc chủ đề nào. Một số ứng dụng của hệ thống phân loại nhƣ: o Hiểu đƣợc ý nghĩa, đánh giá, bình luận của ngƣời dụng từ mạng xã hội. o Phân loại email là spam hay không spam o Tự động gắn thẻ cho những truy vấn, tìm kiếm của ngƣời dùng o Phân loại chủ đề các bài báo điện tử 5 Ví dụ cụ thể về bài toán phân loại văn bản: Giả sử x là một bài báo do phóng viên viết gửi đăng trên trang báo điện tử VnExpress. Biên tập viên cần phải quyết định xem bài báo x đó thuộc chủ đề nào là thích hợp nhất trong các chủ đề: “chính trị- xã hội”, “quốc tế”, “thể thao”, “giải trí”.
Một trong những ví dụ nữa cơ bản nhất của phân loại văn bản đó là việc phân loại email, mỗi ngày ta nhận đƣợc hàng tram email, nhƣng số lƣợng email spam không nhỏ. Làm cách nào để viết một chƣơng trình lọc mail, quyết định xem một email gửi tới vào hộp thƣ đến hay spam? Hình 1.2 Gmail tự động xác định xem email spam hay không 1. Bài toán phân loại văn bản Ta có thể mô hình hóa toán học việc phân loại văn bản nhƣ sau: Cho x là một văn bản, biết x thuộc một trong các loại y {1, 2, 3,.Hãy tìm loại văn bản đúng nhất của x Gọi y h ( x) là hàm phân loại của x trong đó là tham số của hàm.) có khả năng phân loại tốt nhất. Để tìm h ta sử dụng phƣơng pháp học có hƣớng dẫn từ dữ liệu mẫu : Dữ liệu học gồm N mẫu : ( x1 , y1 ) , ( x2 , y2 ) ,….
( xN , yN ) Hàm h đƣợc xây dựng sao cho khớp nhất với dữ liệu huấn luyện này. Các bài toán phân loại văn bản nói chung có thể phân biệt theo hai cách nhƣ sau: 6 Phân loại văn bản nhị phân/ đa lớp: Bài toán phân loại văn bản gọi là nhị phân khi số lớp là 2, gọi là đa lớp nếu số lớp lớn hơn 2 Phân loại văn bản đơn nhãn/ đa nhãn: Bài toán phân loại văn bản đơn nhãn khi mỗi văn bản đƣợc gán vào chính xác một lớp. Ngƣợc lại nếu một văn bản có thể đƣợc gán nhiều nhãn hơn một nhãn thì đó là bài toán phân loại văn bản đa nhãn. Phân loại văn bản là một lĩnh vực đƣợc chú ý nhất và đã đƣợc nghiên cứu trong những năm gần đây.
Tuy nhiên các công trình nghiên cứu này phần lớn đều dành cho xử lý ngôn ngữ nƣớc ngoài, mà tiếng Anh là chủ yếu. Để áp dụng cho các văn bản tin tức tiếng Việt thì không có độ chính xác nhƣ mong muốn. Mô hình phân loại văn bản dùng tiếp cận học máy 1. Khái niệm học máy Học máy (Machine Learning) [15] [16]: Là một lĩnh vực của trí tuệ nhân tạo, liên quan đến các kỹ thuật giúp cho máy tính có thể tự học mà không cần phải cài đặt các luật quyết định [2].
Cụ thể, học máy là một phƣơng pháp để tạo ra các chƣơng trình máy tính bằng việc phân tích các tập dữ liệu. Về nguyên lý, học máy dựa trên các thuật toán, tức là tập hợp hữu hạn của các chỉ thị hay phƣơng thức đƣợc định nghĩa rõ ràng và cần thiết, để chúng tự thu thập kiến thức. Và sau mỗi lần hệ thống khởi động dữ liệu mới, các kết quả do nó đƣa ra sẽ trở nên ngày càng chính xác hơn. Theo đó, học máy chủ yếu dựa trên 4 thao tác: Phân loại/liệt kê thông tin; dự đoán những sự kiện nhất định trên cơ sở các mô hình đã đƣợc nhận dạng; phát hiện/nhận dạng các mô hình chƣa đƣợc biết đến và sự phụ thuộc giữa chúng; phát hiện sự bất thƣờng và các sự kiện chƣa đƣợc dự đoán.
Phân loại học máy Các giải thuật học máy đƣợc phân ra làm 2 loại chính là: Học có giám sát (Supervised Learning) [12]: Là phƣơng pháp sử dụng những dữ liệu đã đƣợc gán nhãn từ trƣớc để suy luận ra quan hệ giữa đầu vào và đầu ra [3]. Các dữ liệu này đƣợc gọi là dữ liệu huấn luyện và chúng là cặp các đầu vào- đầu ra. Học có giám sát sẽ xem xét các tập huấn luyện này để từ đó có thể đƣa ra dự đoán đầu ra cho một đầu vào mới chƣa gặp giờ. Ví dụ nhƣ dự đoán giá nhà, phân loại email.
Học phi giám sát (Unsupervised Learning) [3] [12]: Khác với học có giám sát, học phi giám sát sử dụng những dữ liệu chƣa đƣợc gán nhãn từ trƣớc để suy luận. Phƣơng pháp này thƣờng đƣợc sử dụng để tìm cấu trúc của tập dữ liệu. Tuy nhiên lại không co phƣơng pháp đánh giá đƣợc cấu trúc tìm ra đƣợc là 7 đúng hay sai. Ví dụ nhƣ phân cụm dữ liệu, triết xuất thành phần chính của một chất nào đó.
Học tăng cƣờng (Reinforcement Learning) [12]. Thuật toán học tăng cƣờng sẽ đƣợc áp dụng khi tƣơng tác với một môi trƣờng thay đổi nhằm thực hiện một nhiệm vụ nào đó (ví dụ như lái xe hay chơi cờ) [3]. Các thuật toán học tăng cƣờng cố gắng tìm một chiến lƣợc ánh xạ không gian trạng thái của môi trƣờng tới các hành động mà chƣơng trình nên chọn trong các trạng thái đó để cực đại hóa một khoản thƣởng (reward) nào đó về lâu dài. Dữ liệu huấn luyện trong học máy Bất cứ một bài toán học máy nào cũng đều cần có dữ liệu để huấn luyện, ta có thể coi nó là điều kiện tiên quyết.
Dữ liệu sau khi có đƣợc cần phải: Chuẩn hóa: Tất cả các dữ liệu đầu vào đều cần đƣợc chuẩn hóa để máy tính có thể xử lý đƣợc. Quá trình chuẩn hóa bao gồm số hóa dữ liệu, co giãn thông số cho phù hợp với bài toán. Việc chuẩn hóa này ảnh hƣởng trực tiếp tới tốc độ huấn luyện cũng nhƣ cả hiệu quả huấn luyện. Phân chia: Việc mô hình đƣợc chọn khớp với tập dữ liệu đang có không có nghĩa giả thuyết của ta là đúng mà co thể xảy ra tình huống dữ liệu thật lại không khớp.
Vì vậy khi huấn luyện học máy, ta sẽ chia dữ liệu ra thành 3 loại để có thể kiểm chứng đƣợc phần nào mức độ tổng quát của mô hình. Cụ thể 2 loại đó là: o Tập huấn luyện (Training set): chiếm khoảng từ 60%-90% tập dữ liệu dùng để học khi huấn luyện o Tập kiểm tra (Test set): chiếm khoảng từ 40%-10% dùng để kiểm tra xem mô hình đã phù hợp chƣa sau khi huấn luyện 1. Mô hình phân loại văn bản Để phân lớp văn bản tự động thƣờng sử dụng các kỹ thuật học máy có giám sát, dựa trên tập dữ liệu đầu vào đã đƣợc gán đúng nhãn [4]. Đầu tiên hệ thống đƣợc huấn luyện thông qua tập mẫu, sau đó đánh giá hiệu quả của hệ thống thông qua các dữ liệu kiểm thử.
Quá trình đó là huấn luyện và dự đoán dữ liệu và đƣợc mô phỏng nhƣ hình sau: 8 Hình 1.3: Mô hình phân loại văn bản o Quá trình huấn luyện(Training): Văn bản đầu vào có gán nhãn (chủ đề) đƣợc chuyển thành dạng cấu trúc nào đó thông qua trích chọn đặc trƣng. Sau đó chúng ta thực hiện các thuật toán học máy với tập các đặc trƣng đã đƣợc trích chọn. Kết quả của quá trình training là chúng ta đƣợc mô hình phân loại (classifier model) o Quá trình dự đoán (Prediction): Văn bản chƣa rõ nhãn đƣợc trích chọn đặc trƣng thông qua mô hình phân loại sẽ đƣợc dự đoán đúng nhãn. Các thuật toán học máy dùng trong phân loại văn bản đƣợc áp dụng có thể là: Cây quyết định, K làng giếng gần nhất, máy vec-tơ hỗ trợ, cây quyết định.
Thu thập d iệu Để có đƣợc nguồn dữ liệu văn bản đầu vào đã đƣợc gán nhãn cho bài toán phận loại văn bản tin tức, ta phải tiến hành thu thập dữ liệu thông qua các trang báo điện tử nhƣ vnexpress.vn…Những tin tức tại đây đã đƣợc xử lý và phân loại theo các chủ đề sẵn có. Với việc cần số lƣợng lớn các bài báo chúng ta không thể lấy nó thủ công đƣợc mà phải sử dụng các web crawler. Trình thu thập web (web crawler) là một chƣơng trình khai thác cấu trúc đồ thị của web di chuyển từ trang này qua trang khác, các tên gọi khác của trình thu thập web là bọ, rô-bốt, nhện web…Chức năng của web crawler là lấy thông tin từ website, trích xuất ra những thông tin ngƣời sử dụng cần, đồng thời cũng tìm những link có trong trang web đó và tự động truy cập vào những link đó. 9 Mô hình crawler web đơn giản gồm các bƣớc nhƣ sau: 1.
Chọn URL khởi đầu 2. Sử dụng HTML protocol để lấy trang web 3. Trích xuất ra các link và lƣu lại trong queue 4. Lặp đi lặp lai các bƣớc 2,3 Hình 1.