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 kh
Trang 1ĐẠ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
Trang 2LỜ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
Trang 3MỤ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
Trang 42.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 5TRANG 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 tố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 (Nạ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, Nạ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
Trang 6DANH 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
Trang 7DANH 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ủ đề 24Bảng 3.2 Tập dữ liệu training và testing 24Bả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 27Bảng 3.4 Kết quả đánh giá SVM với hàm nhân linear 33Bảng 3.5 So sánh kết quả phân loại Nạve Bayes và SVM Linear 35
Trang 8DANH 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
Trang 9MỞ ĐẦ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 tố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 tốn máy vec-tơ hỗ trợ qua các dữ liệu kiểm tra và
so sánh với thuật tốn phân loại khác như Nạve Bayes
Trang 10Ý 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
Trang 115 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 tố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 tố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 tố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 TỐ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 TỐN MÁY VEC-TƠ HỖ TRỢ TRONG PHÂN LOẠI VĂN BẢN
+ Thuật tốn máy vec-tơ hỗ trợ
+ Ứng dụng trong phân loại văn bản
● CHƯƠNG3:KẾTQUẢVÀĐÁNHGIÁ
+ 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 tốn Nạve Bayes
+ Đánh giá
● KẾTLUẬNVÀHƯỚNGPHÁTTRIỂN
● TÀILIỆUTHAMKHẢO
Trang 12CHƯƠNG 1: BÀI TOÁN PHÂN LOẠI VĂN BẢN
1.1 Phân loại văn bản
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 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ử
Trang 13Ví 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
tìm y 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 :
Dữ liệu học gồm N mẫu : ( ,x y1 1),(x y2, 2) ,….(x N,y N)
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:
Trang 14Phâ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à
Trang 15đú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:
Trang 16Hì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 đó
Trang 17Mô 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
pre-processing)[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ô
Trang 181.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
Trang 19Hì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ự
Trang 20Hì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
Trang 211.4.2 Biểu diễn văn bản dưới dạng vec-tơ đặc trưng
Bước đầu tiên trong 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 Tức là biến đổi văn bản từ chuỗi ký tự về dạng phù hợp với các giải thuật học máy Đặc điểm chung của nguồn dữ liệu văn bản là không có cấu trúc (độ dài khác nhau) trong khi đa số các giải thuật đòi hỏi dữ liệu huấn luyện phải có cấu trúc [4] Tùy 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ểu diễn riêng Một trong những mô hình đơn giản, thường được sử dụng trong việc phân loại văn bản là mô hình không gian vec-tơ Một văn bản sẽ được biểu diễn theo dạng , với là một vec-tơ n chiều để đo lường giá trị của phần tử văn bản Cụ thể các văn bản đầu vào được biểu diễn như sau:
Mỗi văn bản x là một đối tượng cần phân loại, thông thường x được chuyển thành một biểu diễn vec-tơ như sau: x ( ,x x1 2, x D) với x j R Các thành phần
, 1, 2, , D
j
x j được gọi là trọng số của đặc trưng thứ j của vec-tơ văn bản , D là số chiều vec-tơ Có nhiều cách để trích xuất đặc trưng văn bản Trong luận án này sẽ sử
dụng Bag of Words (BoW) và Term Frequency – Inverse Document Frequency
(TF-IDF) để biểu diễn văn bản dưới dạng vec-tơ
Trang 22(1) The cat sat on the hat
(2) The dog ate the cat and the hat
Từ điển tạo ra từ hai văn bản này là {‘the’,’cat’,’sat’,’on’,’hat’,’dog’,’ate’,’and’}
Độ lớn của từ điển là 8, do đó với mỗi văn bản ta sẽ tạo ra một vec-tơ đặc trưng
có số chiều bằng 8, mỗi phần tử đại diện cho số từ tương ứng xuất hiện trong văn bản
đó Với hai văn bản trên ta sẽ có hai vec-tơ đặc trưng là [2,1,1,1,1,0,0,0] và [3,1,0,0,1,1,1,1]
1.4.2.2 Term Frequency – Inverse Document Frequency
Trong BoW chỉ xét đến tần suất xuất hiện của từng từ do đó việc phân loại văn bản rất có thể cho kết quả sai vì có nhiều từ có xu hướng xuất hiện thường xuyên nhưng ý nghĩa lại không bằng những từ tần suất ít hơn Do đó, phương pháp phổ biến
là sử dụng một phương pháp thống kê có tên là TF-IDF Giá trị TF-IDF của một từ là một con số thu được qua thống kê thể hiện mức độ quan trọng của từ này trong một văn bản, mà bản thân văn bản đang xét nằm trong một tập hợp các văn bản
+ TF (Term Frequency) [17] là số lần từ xuất hiện trong văn bản, vì các văn bản
có thể có độ dài ngắn khác nhau nên một số từ có thể xuất hiện nhiều lần trong một văn bản dài hơn là một văn bản ngắn Thông tin được nắm bở 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ăn bản) thì đó là từ miêu tả tốt cho nội dung văn bản Như thế giá trị TF thường được chia cho số lần xuất hiện nhiều nhất của một từ bất kỳ trong văn bản:
( , )( , )
f t d - số lần xuất hiện từ t trong văn bản d
max{f(w, ) : wd d} - số lần xuất hiện nhiều nhất của một từ bất kỳ trong văn bản
+ IDF (Inverse Document Frequency) [17] đánh giá tầm quan trọng của một từ,
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 trong tất cả các văn bản Khi tính toán TF tất cả các từ được coi như có độ quan trọng như
Trang 23nhau Nhưng một số từ thường xuất hiện nhiều lần nhưng độ quan trọng là không cao Mỗi từ chỉ có 1 giá trị IDF duy nhất trong tập văn bản:
Ví dụ, cho tập gồm 2 văn bản sau tách từ như sau:
D1=” chó vận_chuyển chuyến_bay hàng_hóa”
D2=” gửi hành_lý vận_chuyển đường hàng_hóa”
Thực hiện vec-tơ hóa văn bản bằng mô hình BoW, kết hợp với thuật toán TF-IDF
để xác định trọng số, cho kết quả như sau:
D1= {0.08, 0.08, 0.00, 0.00, 0.00, 0.00, 0.00}
D2= {0.00, 0.00, 0.06, 0.06, 0.00, 0.06, 0.00}
Giá trị TF-IDF: tfidf t d D( , , ) tf t d( , )*idf t D (1.3) Những từ có giá trị TF-( , )IDF cao là những từ xuất hiện nhiều trong văn bản này và xuất hiện ít trong các văn bản khác Việc này giúp lọc ra những từ phổ biến và giữ lại những từ có giá trị cao (từ khóa của văn bản đó)
1.4.3 Giảm chiều dữ liệu
Việc biểu diễn văn bản dưới dạng vector đặc trưng có nhiều ưu điểm, nhưng có một nhược điểm là số chiều của vector tăng lên rất nhiều tùy thuộc vào độ dài của văn bản Đây là một vấn đề rất lớn của vector đặc trưng Số chiều cao sẽ dẫn đến ứng dụng
sử dụng nhiều tài nguyên hệ thống hơn
Do vậy cần phải có phương pháp để giảm số chiều của vector này Trong nhiều trường hợp việc giảm chiều dữ liệu cho kết quả tốt hơn dữ liệu trong không gian ban đầu Để nâng cao hiệu năng tính toán và tăng độ chính xác của việc phân loại
Các phương pháp giảm chiều phổ biến đó là: PCA (Principle Component
Analysis) cho bài toán giảm chiều dữ liêu vẫn giữ được tối đa lượng tho ng tin và
LDA (Linear Discriminant Analysis) cho bài toán giữ lại những đạ c trưng quan
trọng nhất cho viêc phân lớp
Trang 24CHƯƠNG 2: THUẬT TOÁN MÁY VEC-TƠ HỖ TRỢ TRONG
PHÂN LOẠI VĂN BẢN 2.1 Thuật toán máy vec-tơ hỗ trợ
2.1.1 Lý thuyết máy vec-tơ hỗ trợ
Bài toán phân loại/phân lớp (Classification) và dự đoán (Prediction) là hai bài
toán cơ bản và có rất nhiều ứng dụng trong tất cả các lĩnh vực như: học máy, nhận dạng, trí tuệ nhân tạo, vv Trong luận án này sẽ sử dụng phương pháp Máy vec-tơ hỗ trợ - Support Vector Machines (SVM), một phương pháp rất hiệu quả hiện nay
Máy vec-tơ hỗ trợ là một giải thuật học máy có giám sát được sử dụng phổ biến
ngày nay trong các bài toán phân lớp hay hồi quy (regression) Phương pháp SVM dựa
trên lý thuyết học thống kê do Vapnik và Chervonenkis xây dựng vào năm 1963 được coi là công cụ mạnh cho những bài toán phân lớp phi tuyến tính Ý tưởng của phương pháp như sau:
Cho trước một tập huấn luyện, được biểu diễn trong không gian vec-tơ, trong đó mỗi tài liệu là một điểm, phương pháp này tìm ra một siêu phẳng quyết định tốt nhất
có thể chia các điểm trên không gian này thành hai lớp riêng biệt tương ứng là lớp + và lớp - Chất lượng của siêu phẳng này được quyết định bởi khoảng cách (gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này Khi đó khoảng cách biên càng lớn thì mặt phẳng quyết định càng tốt, đồng thời việc phân loại càng chính xác Mục đích của phương pháp SVM là tìm được khoảng cách biên lớn nhất, điều này được minh họa như sau:
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
2.1.2 Nội dung phương pháp SVM
Trang 25hoạch tối ưu cho phép chia các điểm này thành hai phần sao cho các điểm cùng một lớp nằm về một phía với siêu phẳng này [2]
Hình 2.2 Bài toán phân loại các điểm sử dụng SVM
Cho tập mẫu {( ,x y1 1) ,( ,x y2 2) ,…,( ,x y n n) } với n
i
x R thuộc vào hai lớp nhãn {-1,1}
i
y là nhãn lớp tương ứng của các x i (-1 biểu thi lớp I, 1 biểu thị lớp II) Ta có
phương trình siêu phẳng chứa vec-tơ x i trong không gian : x i.w b 0 (2.1)
Như vậy, f x( )i biểu diễn sự phân lớp của x ivào hai lớp như đã nêu Khi đó để
có siêu phẳng f ta sẽ phải giải bài toán sau:
Tìm min || w || với w thỏa mãn điều kiện sau: y x i( wi b) 1 (2.3) với i 1,n
Việc mở rộng thuật toán SVM để phân đa lớp hiện nay đang tiếp cận vấn đề theo phương pháp xây dựng và kết hợp nhiều bộ phân lớp SVM nhị phân Để phân nhiều lớp thì kỹ thuật SVM nguyên thủy sẽ chia không gian dữ liệu thành 2 phần và quá trình này lặp lại nhiều lần Khi đó hàm quyết định phân dữ liệu vào lớp thứ i của tập n sẽ là:
fi(x) = wiix + bi
Những phần tử x là support vector sẽ thõa mãn điều kiện:
Trang 26Như vậy, bài toán phân nhiều lớp (đa lớp) sử dụng phương pháp SVM hoàn toàn
có thể thực hiện giống như bài toán hai lớp Bằng cách sử dụng chiến lược “một- đối – một” (1-vs-1) (hình 2.3) Giả sử bài toán cần phân loại có k lớp (k>2), chiến lược
“một-đối-một” sẽ tiến hành k(k-1)/2 lần phân lớp nhị phân sử dụng phương pháp SVM Mỗi lớp sẽ tiến hành phân tách k-1 lớp còn lại để xác định k-1 hàm phân tách dựa vào bài toán phân hai lớp bằng phương pháp SVM Hoặc cũng có thể xây dựng theo phương pháp “một-đối-tất cả” (1-vs-all) (hình 2.4) xây dựng k mô hình SVM nhị phân, mô hình thứ i tách lớp i ra khỏi các lớp khác
Hình 2.3 Phương pháp 1-vs-tất cả cho máy học SVM đa lớp
Trang 27Hình 2.4 Phương pháp 1-vs-1 cho máy học SVM đa lớp
Là một kỹ thuật phân lớp khá phổ biến, SVM thể hiện được nhiều ưu điểm trong
số đó có việc tính toán hiệu quả trên các tập dữ liệu lớn
Xử lý trên không gian số chiều cao: SVM là công cụ tính toán hiệu quả trong không gian chiều cao trong đó đặc biệt áp dụng cho bài toán phân loại văn bản
và phân tích quan điểm nơi chiều có thể cực kỳ lớn
Tiết kiệm bộ nhớ: Do chỉ có một tập hợp con của các điểm được sử dụng trong quá trình huấn luyện và ra quyết định thực tế cho các điểm dữ liệu mới nên chỉ
có những điểm cần thiết mới được lưu trữ trong bộ nhớ khi ra quyết định
Tính linh hoạt: Phân lớp thường là phi tuyến tính Khả năng áp dụng Kernel mới cho phép linh động giữa các phương pháp tuyến tính và phi tuyến tính từ
đó khiến cho hiệu suất phân loại lớn hơn
Tuy nhiên, SVM cũng tồn tại các nhược điểm đó là:
Số chiều cao: Trong một số trường hợp số thuộc tính của tập dữ liệu lớn hơn rất nhiều so với số lượng dữ liệu thì SVM cho kết quả khá tồi
Chưa thể hiện rõ tính xác suất: Việc phân lớp của SVM chỉ là việc cố gắng tách các đối tượng vào hai lớp được phân tách bởi siêu phẳng SVM Điều này chưa giải thích được xác suất xuất hiện của một thành viên trong một nhóm là như thế nào Tuy nhiên hiệu quả của việc phân lớp có thể được xác định dựa vào khái niệm margin từ điểm dữ liệu mới đến siêu phẳng phân lớp