Đăng ký Đăng nhập
Trang chủ Phân loại văn bản tin tức dùng máy vec tơ hỗ trợ...

Tài liệu Phân loại văn bản tin tức dùng máy vec tơ hỗ trợ

.PDF
54
4
78

Mô tả:

ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA NGÔ HẢI NAM PHÂN LOẠI VĂN BẢN TIN TỨC DÙNG MÁY VEC-TƠ HỖ TRỢ Chuyên ngành: Khoa học máy tính Mã số: 8480101 LUẬN VĂN THẠC SĨ KỸ THUẬT Ngƣời hƣớng dẫn khoa học: TS. NINH KHÁNH DUY Đà Nẵng - Năm 2019 LỜI CAM ĐOAN Tôi xin cam đoan luận án thạc sĩ “Phân loại văn bản tin tức dùng máy vec-tơ hỗ trợ” là do tôi nghiên cứu dưới sự hướng dẫn của TS. Ninh Khánh Duy. Các kết quả trong luận án là hoàn toàn trung thực và chưa được công bố trong bất kỳ nghiên cứu nào. Các nguồn tài liệu tham khảo và kế thừa đều được trích dẫn và tham chiếu đầy đủ, phù hợp với các quy định của bộ Giáo dục và Đào tạo, trường Đại học Bách khoa Đà Nẵng. Ngƣời cam đoan Ngô Hải Nam MỤC LỤC TRANG BÌA LỜI CAM ĐOAN MỤC LỤC TRANG TÓM TẮT LUẬN VĂN DANH MỤC CÁC TỪ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH MỞ ĐẦU .................................................................................................................... 1 1. Lý do chọn đề tài ........................................................................................... 1 2. Mục đích và ý nghĩa đề tài ............................................................................. 1 3. Mục tiêu và nhiệm vụ .................................................................................... 2 4. Đối tƣợng và phạm vi nghiên cứu ................................................................. 2 5. Phƣơng pháp nghiên cứu ............................................................................... 3 6. Kết luận .......................................................................................................... 3 7. Bố cục của luận văn ....................................................................................... 3 CHƯƠNG 1. BÀI TOÁN PHÂN LOẠI VĂN BẢN .............................................. 4 1.1. Phân loại văn bản ........................................................................................ 4 1.1.1. Khái niệm .......................................................................................... 4 1.1.2. Bài toán phân loại văn bản ................................................................ 5 1.2. Mô hình phân loại văn bản dùng tiếp cận học máy .................................... 6 1.2.1. Khái niệm học máy ........................................................................... 6 1.2.2. Phân loại học máy ............................................................................. 6 1.2.3. Dữ liệu huấn luyện trong học máy .................................................... 7 1.2.4. Mô hình phân loại văn bản ................................................................ 7 1.3. Thu thập dữ liệu .......................................................................................... 8 1.4. Tiền xử lý văn bản ...................................................................................... 9 1.4.1. Xử lý ngôn ngữ tự nhiên ................................................................... 9 1.4.2. Biểu diễn văn bản dƣới dạng vec-tơ đặc trƣng ............................... 13 1.4.3. Giảm chiều dữ liệu .......................................................................... 15 CHƯƠNG 2. THUẬT TOÁN MÁY VEC-TƠ HỖ TRỢ TRONG PHÂN LOẠI VĂN BẢN ................................................................................................................ 16 2.1. Thuật toán máy vec-tơ hỗ trợ.................................................................... 16 2.1.1. Lý thuyết máy vec-tơ hỗ trợ ............................................................ 16 2.1.2. Nội dung phƣơng pháp SVM .......................................................... 16 2.1.3. Hàm nhân kernel trong SVM .......................................................... 20 2.2. Ứng dụng trong phân loại văn bản ........................................................... 22 CHƯƠNG 3. KẾT QUẢ VÀ ĐÁNH GIÁ ............................................................ 24 3.1. Dữ liệu thử nghiệm ................................................................................... 24 3.2. Triển khai chƣơng trình ............................................................................ 25 3.2.1. Các công cụ sử dụng ....................................................................... 25 3.2.2. Các bƣớc xây dựng mô hình phân loại văn bản .............................. 26 3.3. Kết quả thử nghiệm với SVM ................................................................... 27 3.4. So sánh với thuật toán Naive Bayes ......................................................... 34 3.4.1. Thuật toán Naive Bayes .................................................................. 34 3.4.2. Kết quả phân loại với Naive Bayes ................................................. 35 3.5. Đánh giá .................................................................................................... 36 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ............................................................ 37 TÀI LIỆU THAM KHẢO...................................................................................... 38 QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN THẠC SĨ (BẢN SAO). BẢN SAO KẾT LUẬN CỦA HỘI ĐỒNG, BẢN SAO NHẬN XÉT CỦA CÁC PHẢN BIỆN. Học viên Hoàng Đại Thọ TRANG TÓM TẮT LUẬN VĂN Tên đề tài: PHÂN LOẠI VĂN BẢN TIN TỨC DÙNG MÁY VEC-TƠ HỖ TRỢ Học viên: Ngô Hải Nam Chuyên ngành: Khoa Học Máy Tính - Mã số: 8480101 Khóa: 34 Trƣờng Đại học Bách khoa – Đại học Đà Nẵng Tóm tắt - Luận văn này thực hiện nghiên cứu, đánh giá việc phân loại văn bản tin tức dựa trên phƣơng pháp máy học Support vector machine (SVM) cùng với sự kết hợp giữa biểu diễn văn bản bằng mô hình túi từ BoW (Bag-of-Words) và thuật toán TF-TDF (Term frequency – Inverse document frequency). Một số phƣơng pháp máy học và khai phá dữ liệu văn bản phổ biến đƣợc áp dụng để huấn luyện tập dữ liệu cho phân loại văn bản nhƣ SVM, Bayes đơn giản (Naïve Bayes), Cây quyết định (Decision tree). Quá trình thực nghiệm phân loại văn bản tin tức với tập dữ liệu hơn 10.000 tin tức trong nhiều chủ đề đƣợc tổng hợp từ các nguồn báo chí trên Internet. Tập dữ liệu huấn luyện đƣợc trích xuất và tóm gọn trong một số chủ đề chính nhƣ: Thế giới, Giáo dục, Sức khỏe, Khoa học-Công nghệ…Kết quả thực nghiệm bƣớc đầu đã khẳng định tính khả thi của mô hình khi kết quả phân loại đạt đƣợc độ chính xác khoảng 87%. Từ khóa- Phân loại văn bản tiếng việt, máy vec-tơ hỗ trợ Abstract: This thesis studies and evaluates the categorization of news text based on the support vector machine (SVM) method together with the combination of text representation by bag-of-Words and TF-TDF (Term frequency - Inverse document frequency) algorithm. A number of popular machine learning and data mining methods are used to train data sets for text classification such as SVM, Naïve Bayes, decision tree ... The empirical process categorizes news texts with more than 10,000 multi-threaded news aggregated from Internet newspaper sources. Training data was extracted and summarized in a number of major topics such as: World, Education, Health, Science-Technology... The experimental results initially confirmed the feasibility of the model classification results are approximately 87% accurate. Keywords - Vietnamese text classification, Support vector machine DANH MỤC CÁC TỪ VIẾT TẮT SVM Support Vector Machines BoW Bag of Words TF-IDF Term frequency – Inverse document frequency URL Uniform Resource Locator HTML HyperText Markup Language ML Machine Learning NLP Natural Language Processing PCA Principle Component Analysis LDA Linear Discriminant Analysis DANH MỤC CÁC BẢNG Bảng 3.1. Tập dữ liệu tin tức đã thu thập theo các chủ đề ............................................24 Bảng 3.2. Tập dữ liệu training và testing ......................................................................24 Bảng 3.3. Kết quả đánh giá độ chính xác (Precision) với hàm nhân và số chiều vec-tơ đặc trƣng thay đổi.........................................................................................27 Bảng 3.4. Kết quả đánh giá SVM với hàm nhân linear .................................................33 Bảng 3.5. So sánh kết quả phân loại Naïve Bayes và SVM Linear ..............................35 DANH MỤC CÁC HÌNH Hình 1.1. Phân loại văn bản tin tức theo chủ đề ..............................................................4 Hình 1.2 Gmail tự động xác định xem email spam hay không .......................................5 Hình 1.3. Mô hình phân loại văn bản ..............................................................................8 Hình 1.4. Quá trình thu thập dữ liệu website ..................................................................9 Hình 1.5. Ví dụ về công đoạn làm sạch văn bản ...........................................................10 Hình 1.6. Minh họa kết quả của giai đoạn tách từ .........................................................11 Hình 1.7. Một số từ stopwords trong tiếng Việt ............................................................12 Hình 1.8. Cách sử dụng Bag of Words ..........................................................................13 Hình 2.1. Siêu phẳng phân chia dữ liệu thành 2 lớp + và – với khoảng cách biên lớn nhất. Các điểm gần nhất là các Support Vector .........................................16 Hình 2.2. Bài toán phân loại các điểm sử dụng SVM ...................................................17 Hình 2.3. Phƣơng pháp 1-vs-tất cả cho máy học SVM đa lớp ......................................18 Hình 2.4. Phƣơng pháp 1-vs-1 cho máy học SVM đa lớp ............................................19 Hình 2.5. Các điểm trong không gian phi tuyến ...........................................................20 Hình 2.6. Chuyển đổi không gian dữ liệu đầu vào bài toán SVM ................................20 Hình 2.7. Sự khác nhau khi phân loại dữ liệu của các kernel .......................................22 Hình 2.8. Mô hình ứng dụng phân loại văn bản ............................................................23 Hình 3.1. Các công đoạn tiền xử lý văn bản .................................................................26 Hình 3.2. Giao diện chính của chƣơng trình phân loại văn bản ....................................27 Hình 3.3. Tokenize văn bản tin tức ...............................................................................28 Hình 3.4. Giao diện phân loại văn bản tin tức ...............................................................28 Hình 3.5. Văn bản tin tức chủ đề “thể thao” .................................................................29 Hình 3.6. Kết quả phân loại tin tức chủ đề “Thể thao” .................................................29 Hình 3.7. Văn bản tin tức chủ đề “Kinh tế” ..................................................................30 Hình 3.8. Kết quả phân loại tin tức chủ đề “Kinh tế” ...................................................30 Hình 3.9. Mô hình hóa các chỉ số trong ML .................................................................31 Hình 3.10. Cách tính Precision và Recall ......................................................................32 Hình 3.11. Tỷ lệ chính xác dự đoán các chủ đề ............................................................34 1 MỞ ĐẦU 1. Lý do chọn đề tài Nhƣ chúng ta đã biết, hầu hết các thông tin hiện nay đều nằm dƣới dạng văn bản, có thể kể đến nhƣ các bài báo, tài liệu học tập, tài liệu sản xuất kinh doanh, các nghiên cứu khoa học. Với nhu cầu trao đổi thông tin ngày càng lớn hiện nay, thì việc ứng dụng các công cụ quản lý văn bản là một xu thế tất yếu. Tuy nhiên, đó chỉ là cách quản lý luồng dữ liệu văn bản, cung cấp các công cụ kho chứa, chƣa có giải pháp phân loại, trích lọc thông tin nhằm mục đích thống kê, phát hiên tri thức, ra quyết đinh trực tiếp trên các nguồn dữ liệu này. Với thực tế đó, vấn đề đặt ra là làm thế nào để chúng ta có thể khai thác đƣợc những thông tin hữu ích từ các nguồn tài liệu văn bản nói chung. Các nguồn dữ liệu này phải đƣợc xử lý nhƣ thế nào để ngƣời dùng có thể có những công cụ tự động hóa trợ giúp trong việc khai thác thông tin. Rõ ràng, chúng ta phải hiểu rõ bản chất của dữ liệu văn bản, các đặc trƣng của các dữ liệu loại này để có những phƣơng pháp luận cần thiết. Việc khai thác thông tin từ các nguồn dữ liệu văn bản Việt Nam sẽ dựa vào những kết quả nghiên cứu về văn bản nói chung. Tuy nhiên những văn bản tiếng Việt lại có những đặc trƣng riêng của nó: ví dụ sự khác biệt về cú pháp, ngữ pháp so với các ngôn ngữ phổ biến trên thế giới nhƣ tiếng Anh, tiếng Pháp…Để làm rõ vấn đề này, chúng ta sẽ đi vào một chủ đề thƣờng gặp nhất trong việc xử lý văn bản, đó là phân loại văn bản tiếng Việt. Đây cũng chính là nôi dung chính của đề tài “Phân loại văn bản tin tức dùng máy vec-tơ hỗ trợ” 2. Mục đích và ý nghĩa đề tài Mục đích Xây dựng chƣơng trình có khả năng phân loại văn bản tin tức theo chủ đề (các chủ đề nhƣ Giáo dục, Thể thao, Thế giới, Sức khỏe …) dựa trên việc xử lý văn bản, trích rút đặc trƣng và áp dụng máy vec-tơ hỗ trợ để học, phân loại dựa trên các đặc trƣng đó. Để thoả mãn mục tiêu này thì cần đạt đƣợc những mục tiêu cụ thể sau: Nghiên cứu các bƣớc giải quyết bài toán Machine Learning và lý thuyết phân lớp trong Máy vec-tơ hỗ trợ. Nắm vững cách trích chọn đặc trƣng văn bản tin tức tiếng Việt Xây dựng đƣợc phần mềm có thể phân loại văn bản một cách chính xác nhất. Đánh giá hiệu quả của thuật toán máy vec-tơ hỗ trợ qua các dữ liệu kiểm tra và so sánh với thuật toán phân loại khác nhƣ Naïve Bayes 2 Ý nghĩa khoa học thực tiễn của đề tài Đóng góp về mặt phƣơng pháp và thực nghiệm vào lĩnh vực phân loại văn bản, một nhánh nghiên cứu của xử lý ngôn ngữ tự nhiên. Nghiên cứu chuẩn hóa, trích rút đặc trƣng văn bản tin tức tiếng Việt cho bài toán phân loại văn bản. Xây dựng hƣớng tiếp cận cho bài toán phân loại tin tức, ứng dụng phục vụ cho các công tác quản lý thông tin văn bản. 3. Mục tiêu và nhiệm vụ Mục tiêu Mục tiêu chính của đề tài là nghiên cứu phƣơng pháp phân loại văn bản tin tức ứng dụng máy vec-tơ hỗ trợ thông qua ngôn ngữ Python. Để thỏa mãn mục tiêu này, cần đạt đƣợc các mục tiêu cụ thể sau: Thu thập cơ sở dữ liệu văn bản tin tức tiếng Việt. Nắm vững kiến thức lập trình Python nền tảng và thuật toán máy vec-tơ hỗ trợ Đề xuất giải pháp ứng dụng máy vec-tơ hỗ trợ vào việc phân loại văn bản tin tức và so sánh với các phƣơng pháp khác. Nhiệm vụ Để đạt đƣợc những mục tiêu trên thì nhiệm vụ đặt ra của đề tài là: Thu thập dữ liệu văn bản tin tức tiếng Việt. Phát biểu, phân tích và cài đặt giải thuật trên ngôn ngữ Python cho bài toán phân loại văn bản. Đánh giá kết quả theo yêu cầu của đề tài 4. Đối tƣợng và phạm vi nghiên cứu Trong khuôn khổ của luận văn thạc sĩ thuộc loại ứng dụng với thời gian thực hiện là 06 tháng, tôi giới hạn nghiên cứu các vấn đề sau: Thuật toán máy vec-tơ hỗ trợ và sử dụng ngôn ngữ Python. Ứng dụng thuật toán máy vec-tơ hỗ trợ trong việc phân loại văn bản tiếng Việt triển khai trên ngôn ngữ Python Đánh giá giải pháp thực hiện. 3 5. Phƣơng pháp nghiên cứu Phương pháp lý thuyết Tiến hành thu thập và nghiên cứu các tài liệu có liên quan đến đề tài. Nghiên cứu lý thuyết thuật toán máy vec-tơ hỗ trợ. Nghiên cứu việc mô hình hóa văn bản phù hợp với thuật toán 6. Phƣơng pháp thực nghiệm Lập trình chạy thử với các dữ liệu mẫu trên ngôn ngữ Python Kiểm tra, thử nghiệm, nhận xét và đánh giá kết quả. 7. Kết luận Xây dựng đƣợc công cụ phục vụ phân loại văn bản tin tức Tiếng Việt. Đánh giá hiệu quả của thuật toán máy vec-tơ hỗ trợ và so sánh với các phƣơng pháp khác. 8. Bố cục của luận văn Dự kiến luận văn đƣợc trình bày bao gồm các phần chính nhƣ sau : ● 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.1. Phân loại văn bản 1.1.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]. Hình 1.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 o o o Hiểu đƣợc ý nghĩa, đánh giá, bình luận của ngƣời dụng từ mạng xã hội. Phân loại email là spam hay không spam Tự động gắn thẻ cho những truy vấn, tìm kiếm của ngƣời dùng 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.1.2. 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,...K} .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. Ta cần h (.) 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 : tìm y 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. 1.2. Mô hình phân loại văn bản dùng tiếp cận học máy 1.2.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. 1.2.2. 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. 1.2.3. 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.2.4. 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. 1.3. 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.net, dantri.com, kenh14.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.4. Quá trình thu thập dữ liệu website Các trình thu thập thƣờng bắt đầu bằng cách chọn một số các đƣờng dẫn URL ứng với các trang web sẽ ghé thăm đầu tiên. Khi ghé thăm một trang, trình thu thập sẽ đọc nội dung trang web, lọc ra tất cả các siêu liên kết có trong trang web đó và đƣa các URL tƣơng ứng với chúng vào một danh sách. Dựa vào danh sách này, trình thu thập tiếp tục quá trình duyệt đệ quy để ghé thăm tất cả các URL chƣa đƣợc duyệt. Quá trình này chỉ dừng lại khi trình thu thập đã thu thập đủ số trang yêu cầu hoặc danh sách rỗng. 1.4. Tiền xử ý văn bản 1.4.1. Xử lý ngôn ngữ tự nhiên Các phƣơng pháp phân loại văn bản thƣờng không làm việc trực tiếp trên các tài liệu văn bản. Chính vì vậy, ta phải biến đổi các văn bản sang một dạng phù hợp với các giải thuật phân loại. Phép xử lý nhƣ vậy đƣợc gọi là tiền xử lý văn bản (text preprocessing)[19]. Quá trình này là để đƣa tập dữ liệu về dạng có cấu trúc sau đó đƣa vào các kỹ thuật học máy để xử lý phân loại. Trong nội dung luận văn, tôi sẽ đi lần lƣợt các bƣớc để xử lý văn bản thô 10 1.4.1.1. Làm sạch văn bản Đây bƣớc đầu tiên trong tiền xử lý văn bản. Mục đích của bƣớc này là loại bỏ các ký tự thừa trong dữ liệu, trong các văn bản tin tức đó chính là các thẻ HTML, JavaScript, các ký tự đặc biệt, khoảng trắng thừa…Ngoài ra trong văn bản còn có chữ viết hoa, viết thƣờng lẫn lộn tuy nhiên máy tính phân biệt khác nhau giữa chữ in hoa và chữ in thƣờng. Điều này làm tăng độ phức tạp khi xử lý mặc dù về cơ bản ý nghĩa khi viết hoa hay viết thƣờng vẫn không thay đổi. Ta sẽ thực hiện phƣơng pháp đó là biến đổi hết về các chữ cái thƣờng và loại bỏ các khoảng trắng thừa. Ví dụ quá trình làm sạch văn bản nhƣ sau: Hình 1.5 Ví dụ về công đoạn làm sạch văn bản 1.4.1.2. Tách từ trong câu Thuật ngữ “tách từ” trong tiếng Anh là “Word Segmentation” [13]. Tách từ về mặt biểu hiện là gom nhóm các từ đơn liền kề thành một cụm từ có ý nghĩa. Trong ngôn ngữ tiếng Việt, dấu cách không phải là kí tự để phân tách các từ mà chỉ là phân tách các âm tiết với nhau [6]. Lí do của điều này là trong tiếng Việt tồn tại các từ ghép nhƣ là: đất nước, con người…Nếu đi cùng với nhau thì các từ này có nghĩa hoàn toàn khác so với nghĩa độc lập của nó. Ví dụ trong câu: "Bài toán tách từ tiếng Việt" sau khi tách từ thì thành "Bài_toán tách_từ tiếng_Việt". Về hình thức, các từ đơn đƣợc gom nhóm với nhau bằng cách nối với nhau bằng ký tự gạch dƣới "_", trong trƣờng hợp này là các từ Bài_toán, tách_từ, tiếng_Việt. Sau khi thực hiện tách từ thì mỗi từ (token) trong câu đƣợc cách nhau bởi một khoảng trắng. Vì vậy chúng ta cần tách từ để có thể đảm bảo ý nghĩa của từ đƣợc toàn vẹn. Tách từ là một bƣớc quan trọng bậc nhất trong xử lý ngôn ngữ tự nhiên. Việc tách từ trong Tiếng Việt còn đặc biệt quan trọng hơn vì Tiếng việt không đơn giản nhƣ tiếng Anh. Trong tiếng Anh thì các từ phân cách nhau bằng dấu cách (space) nhƣng tiếng Việt dấu cách lại để tách các âm tiết với nhau. 11 Hình 1.6 Minh họa kết quả của giai đoạn tách từ Về mặt ngữ nghĩa, việc tách từ trong văn bản đầu vào trƣớc khi đƣa vào huấn luyện mô hình máy học là để giải quyết các bài toán liên quan đến ngữ nghĩa của văn bản. Tức là kết quả đầu ra mang tính suy luận dựa trên việc hiểu ý nghĩa của văn bản đầu vào. Tách từ chính xác hay không là công việc rất quan trọng, nếu không chính xác rất có thể dẫn đến việc ý nghĩa của câu sai, ảnh hƣởng đến tính chính xác của của việc phân loại. 1.4.1.3. Loại bỏ Stopwords Stopwords [14] là những từ xuất hiện nhiều trong văn bản nhƣng lại không mang nhiều ý nghĩa, nó chỉ là các từ nối. Mỗi ngôn ngữ có những stopwords khác nhau. Trong tiếng Việt các từ stopwords là: thì, là, này, kia…Trong tiếng Anh là những từ: is, this, that…Việc cần làm của việc tiền xử lý văn bản là loại bỏ các từ không có ý nghĩa, chỉ để lại những từ ngữ mang ý nghĩa thực sự. 12 Hình 1.7. Một số từ stopwords trong tiếng Việt Ƣu điểm của phép xử lý này là không chỉ các từ không có ý nghĩa bị loại bỏ và không can thiệp vào quá trình phân loại về sau mà kích thƣớc các tập tin tài liệu sẽ giảm đi khoảng 30 đến 50 phần trăm. Để loại bỏ các từ stopwords [14] trong văn bản có hai cách chính sau: o Dùng từ điển: Sử dụng danh sách các từ stopwords và dùng bộ lọc để loại bỏ các từ đó ra khỏi văn bản. Trong cách này, thì tùy vào lĩnh vực văn bản cần xử lý thì danh sách các từ stopwords sẽ khác nhau. Tức là xử lý tin tức văn bản sẽ có tập danh sách stopwords khác với xử lý các bài báo khoa học. o Dựa theo tần suất xuất hiện của từ: Tiến hành đếm số lần xuất hiện của từng từ trong dữ liệu văn bản sau đó sẽ tiến hành loại bỏ những từ có số lần xuất hiện nhiều nhất, vì những từ xuất hiện nhiều nhất thƣờng là những từ không mang nhiều ý nghĩa. Sau khi xử lý stopwords, văn bản có thể xem nhƣ là một tập hợp các đặc trƣng, đó là tập hợp các từ quan trọng còn lại để biểu diễn văn bản. Việc phân loại văn bản sẽ dựa trên các đặc trƣng này.
- Xem thêm -

Tài liệu liên quan