Luan van ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA LÊ QUANG HÒA ỨNG DỤNG THUẬT TOÁN K LÁNG GIỀNG GẦN NHẤT TRONG PHÂN LOẠI VĂN BẢN TIN TỨC THEO CHỦ ĐỀ Chuyên ngành Khoa học máy tính Mã số 8480101 LUẬN V[.]
Trang 1ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
LÊ QUANG HÒA
ỨNG DỤNG THUẬT TOÁN K- LÁNG GIỀNG GẦN NHẤT TRONG PHÂN LOẠI VĂN BẢN TIN TỨC
THEO CHỦ ĐỀ
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 2018
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan số liệu và kết quả nghiên cứu trong luận văn này là trung thực Mọi sự giúp đỡ cho việc thực hiện luận văn này đã được cảm ơn và các thông tin trích dẫn trong luận văn đã được chỉ rõ nguồn gốc rõ ràng và được phép công bố
Người thực hiện luận văn
Lê Quang Hòa
Trang 3MỤC LỤC
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 2
3 Mục tiêu và nhiệm vụ 2
4 Đối tượng và phạm vi nghiên cứu 3
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: TỔNG QUAN BÀI TOÁN PHÂN LOẠI VĂN BẢN 5
1.1 Khái niệm phân lớp văn bản 5
1.1.1 Khái niệm 5
1.1.2 Phân loại bài toán phân lớp văn bản 7
1.2 Mô hình phân lớp văn bản dùng tiếp cận học máy 7
1.3 Th thập iệ .9
1.3.1.Trình thu thập thông tin web 9
1.3.2 Thống kê d liệu 10
1.4 Tiền xử ý văn bản 11
1.4.1 Làm sạch 12
1.4.2 Tách từ 13
1.4.3 Chuẩn hóa từ 14
1.4.4 Loại bỏ StopWords 14
Trang 41.5 Biểu diễn văn bản ưới dạng vector 17
1.5.1.Túi từ (Bag-of-words) 17
1.5.2 Term Frequency – Inverse Document Frequency (TF-IDF) 19
CHƯƠNG 2: THUẬT TOÁN K LÁNG GIỀNG GẦN NHẤT 23
2.1 Khai phá d liệu 23
2.2 Thuật toán K láng giềng gần nhất 24
2.2.1.Giới thiệu chung 24
2.2.2 Nội dungthuật toán 24
2.2.3 Đánh trọng số cho các điểm lân cận 26
2.2.4 Ư điểm của KNN 26
2.2.5 Nhược điểm của KNN 26
2.2.6 Các tham số quan trọng của thuật toán KNN 27
CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ HỆ THỐNG 28
3.1 Môi trường triển khai thử nghiệm 28
3.2 Mô tả d liệu 28
3.3 Sơ đồ phân lớp văn bản dùng KNN 29
3.4 Cấu hình tham số phân loại văn bản bằng KNN 30
3.5 Kết quả thực nghiệm 30
3.5.1 Đánh giá th ật toán KNN 30
3.5.2 So sánh với thuật toán phân loại Naive Bayes 31
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 36
TÀI LIỆU THAM KHẢO 37 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
Trang 5TRANG TÓM TẮT LUẬN VĂN
ỨNG DỤNG THUẬT TOÁN K LÁNG GIỀNG GẦN NHẤT TRONG PHÂN LOẠI
VĂN BẢN TIN TỨC THEO CHỦ ĐỀ
Học viên: Lê Quang Hòa Chuyên ngành: Ngành Khoa Học Máy Tính
Mã số: 8480101 Khóa: 34 Trường Đại học Bách khoa – ĐHĐN
Tóm tắt:Việc phân loại văn bản theo chủ đề đã có nhiều trên thế giới và ở Việt Nam
Qua việc phân loại văn bản có thể nắm bắt được xu thế xã hội ở các website và ở cộng đồng
mạng Việc phân loại này có thể giúp được chúng ta có thể ra các quyết định, các chính sách
hay các hành động phù hợp để thích ứng với xã hội hiện nay, khi mà sự vận động của xã hội
thay đổi không ngừng, đặc biệt là trong thời kỳ cách mạng công nghiệp 4.0 Thuật toán phân
loại văn bản bằng KNN là một trong nh ng thuật toán để bổ trợ cho chúng ta thực hiện mục
đích trên Với KNN, ta có thể tận dụng được các ư điểm của thuật toán nhằm công sức, tận
dụng được sức mạnh của máy móc cũng như giảm được thời gian khi chúng ta thực hiện phân
loại văn bản Trong bài luận văn, tôi nê các ý th yết iên q an đến thuật toán, cách áp dụng
trong việc phân loại văn bản sử dụng ngôn ng Python Q a đó, đưa ra các kết quả đánh giá
khi áp dụng thuật toán này trong thực tế
Từ khóa:Thuật toánKNN; Phân loại văn bản; Học máy
THE RESEARCH OF APPLYING THE K-NEAREST NEIGHBOR
ALGORITHM IN TEXT CLASSIFICATION INTO TOPICS Summary: Text Classification or Text Categorizer into topic has been introduced in
Viet Nam and all over the world Thanks to Text Classification, we can grasp the social trend
in the website and even in the community Moreover, it helps us make the exact decisions,
policies or actions in order to catch up with the constant changes of society, especially during
the Industrial Revolution 4.0 The KNN text classification algorithm is one of the algorithms
that supports us to fulfill our purposes With KNN, we can take advantage of the algorithm to
work, take advantage of the power of the machine, and reduce the time when we do the
classification of text By using KNN, we can take advantage of the algorithm as well as the
power of the machine to reduce the amount of time which we spend carrying out the work of
text classification In this research paper, the theories related to this algorithm and the
methods to classify texts using the Python language are presented All things considered, the
evaluation results are shown so as to apply this algorithm in reality
Keywords:knn algorithm; text classification;Machine Learning.
Trang 7DANH MỤC CÁC BẢNG
Bảng 3.1 Số ượng văn bản theo chủ đề được dùng trong thực nghiệm 29Bảng 3.2 Độ chính xác nhận dạng theo số chiều của vectơ đặc trưng và K thay
đổi (đơn vị tính %) 31Bảng 3.3 Độ chính xác của Naive Bayes theo số chiều của vec tơ đặc trưng 32
Trang 8DANH MỤC CÁC HÌNH
Hình 1.1 Bài toán phân lớp văn bản theo chủ đề 5
Hình 1.2 Sơ đồ khung một hệ thống phân lớp văn bản dùng Học máy 8
Hình 1.3 Kiến trúc của trình thu thập d liệu web 10
Hình 1.4 Số bài báo được thu thập theo chủ đề 11
Hình 1.5 Các bước tiền xử ý văn bản 12
Hình 1.6 Ví dụ bước làm sạch văn bản 12
Hình 1.7 Ví dụ tách từ 13
Hình 1.8 StopWords tiếng Việt 15
Hình 1.9 Ví dụ dùng từ điển loại bỏ StopWords 16
Hình 1.10 Ví dụ dựa theo tần suất xuất hiện của từ 16
Hình 1.11 Mô hình Bag-of-words 17
Hình 1.12 Thuật toán để xác định tính năng nhị phân của văn bản 18
Hình 2.1 Các ĩnh vực iên q an đến khai phá d liệu 23
Hình 2.2 KNN cho bài toánphân lớp[9] 25
Hình 3.1 Sơ đồ phân lớp văn bản dùng KNN 29
Hình 3.2 So sánh độ chính xác cao nhất gi a hai thuật toán phân loại 33
Hình 3.3 Kết quả phân loại ”Giáo ục” 33
Hình 3.4 Kết quả phân loại ”Thể thao” 33
Hình 3.5 Kết quả phân loại ”Khoa học – Công nghệ” 34
Hình 3.6 Kết quả phân loại ”Sức khỏe” 34
Hình 3.7 Kết quả phân loại ”Tin tức” 35
Trang 9
Ở bất kỳ một tổ chức nào, với bất kỳ một mô hình hay q y mô nào cũng đều có
nh ng nhu cầu về ư tr và khai thác thông tin Đã có nhiều hệ thống phân loại tin tức trên thế giới cũng như ở Việt Nam đã đáp ứng được phần nào đó nh cầu phân loại tin tức để ra quyết định
Việc phân loại tin tức đã đem ại thành tựu nhất định, cụ thể:
- Xác định được xu thế của cộng đồng mạng khi mà cộng đồng này chiếm ngày càng đông trong xã hội Q a đó xác định được xu thế về mặt ngắn hạn của xã hội, hỗ trợ cho người sử dụng ra các quyết định phù hợp
- Việc phân loại tin tức cũng được ứng dụng trên các website thương mại nhằm nắm bắt được xu thế tiêu dùng của người sử dụng
Một trong nh ng thuật toán để ứng dụng công việc phân loại d liệu của các website tin tức tiếng Việt đó à th ật toán k-láng giềng gần nhất; thuật toán này có ư điểm: Độ phức tạp của quá trình huấn luyện bằng 0.Việc dự đoán kết quả của d liệu mới rất đơn giản, không cần giả sử gì về phân phối của các lớp Tuy nhiên, thuật toán này cũng có nhược điểm là nhạy cảm với nhiễu khi k nhỏ
Vì thuật toán k- láng giềng gần nhất này mọi tính toán đều nằm ở giai đoạn kiểm thử cho nên việc tính toán khoảng cách đến từng điểm d liệu tốn nhiều thời gian, đặc biệt đối với cơ sở d liệu lớn và có nhiề điểm d liệu
Để việc áp dụng thuật toán k- láng giềng gần nhất trong việc ứng dụng phân loại tin tức giảm được chi phí về mặt thời gian và độ phức tạp cần phải tăng tốc và khăc phục nhược điểm cho thuật toán này Đề tài nghiên cứu này nhằm vận dụng thuật toán k- láng giềng gần nhất theo cách tối ư nhất dựa trên
Trang 102
các cơ sở lý thuyết
2 Mục đích và ý nghĩa đề tài
Mục đích
Mục đích nghiên cứu của đề tài:
- Nghiên cứ và đề xuất các phương pháp phân oại văn bản theo chủ đề dựa trên thuật tốn k- láng giềng
- Tích hợp các giải pháp vào một hệ thống phân loại văn bản theo chủ đề và đánh giá hiệu quả
Ý nghĩa khoa học thực tiễn của đề tài
- Đĩng gĩp về mặt phương pháp ận và thực nghiệm vào ĩnh vực phân oại văn bản, một nhánh nghiên cứ của xử ý ngơn ng tự nhiên
- Cải tiến chất ượng hệ thống phân oại văn bản hiện cĩ để nâng cao q ản
Để đạt được nh ng mục tiêu trên thì nhiệm vụ đặt ra của đề tài là:
- Th thập iệ mẫ từ các trang Web tiếng Việt
- Nghiên cứ các phương pháp biể iễn văn bản ưới ạng vec-tơ để đưa
vào áp ụng th ật tốn k- áng giềng gần nhất
- Phát biể , phân tích và cài đặt giải th ật cho bài tốn trong hệ thống phân
oại tin tức
- Đánh giá so sánh kết q ả phân oại với các th ật khác như Nạve Bayes
và Support Vector Machine
Trang 113
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ĩ th ộ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:
- Xây ựng phương pháp biể iễn văn bản ưới ạng vec-tơ và áp ụng
th ật toán k- áng giềng phục vụ cho hệ thống phân oại tin tức
- Đánh giá giải pháp đề x ất trên cơ sở tích hợp vào hệ thống phân oại tin
tức
5 Phương pháp nghiên cứu
Phương pháp lý thuyết
- Tiến hành th thập và nghiên cứ các tài iệ có iên q an đến đề tài
- So sánh, đánh giá các phương pháp phân oại tin tức
Phương pháp thực nghiệm
- Nghiên cứ và khai thác các công cụ phần mềm hỗ trợ
- Nghiên cứ đề x ất giải pháp tối ư trong việc biể iễn và phân oại văn
bản
- Kiểm tra, thử nghiệm, nhận xét và đánh giá kết q ả
6 Kết luận
- Xây ựng được một hệ thống phân oại văn bản tin tức tiếng Việt
- Thiết ập được q y trình phân oại văn bản chặt chẽ, thông s ốt, theo đúng
chủ đề, th ận tiện cho việc tìm kiếm, tra cứ , theo õi khi cần thiết
7 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ư sa :
● MỞ ĐẦU
Nê bối cảnh nghiên cứ , ý o chọn đề tài và mục tiê nghiên cứ
● CHƯƠNG 1:TỔNG QUAN BÀI TOÁN PHÂN LOẠI VĂN BẢN
+ Khái niệm phân ớp văn bản
+ Mô hình phân ớp văn bản ùng tiếp cận học máy
+ Th thập iệ
Trang 124
+ Tiền xử ý văn bản
+ Biể iễn văn bản trong không gian vec-tơ bằng BOW và T -IDF
● CHƯƠNG 2: THUẬT TOÁN K- LÁNG GIỀNG GẦN NHẤT (kNN) Trong chương này trình bày khái niệm về khai phá iệ (Data mining) các th ật toán được ùng trong Data mining, đặc biệt à th ật toán k- láng giềng Các ư nhược điểm của th ật toán này
● CHƯƠNG3:TRIÊNKHAIVÀĐÁNHGIÁHÊ THỐNG
Trong chương này trình bày các thử nghiệm được tiến hành, trình bày về tập mẫ , tập thử nghiệm và tập kiểm tra để đánh giá hiệ s ất của th ật toán
● KẾTLUẬNVÀHƯỚNGPHÁTTRIỂN
● TÀILIỆUTHAMKHẢO
Trang 135
CHƯƠNG 1: TỔNG QUAN BÀI TOÁN PHÂN LOẠI VĂN BẢN
1.1 Khái niệm phân lớp văn bản
1.1.1 Khái niệm
Phân lớp văn bản(Text classification) là quá trình gán nhãn(tên lớp / nhãn lớp) các văn bản ngôn ng tự nhiên một cách tự động vào một hoặc nhiều lớp cho truớc
Phân lớp văn bản à bài toán cơ bản trong khai phá d liệ văn bản Bài toán phân lớp văn bản là việc gán tên các chủ đề (tên lớp/nhãn lớp) đã được xác định trước, vào các văn bản dựa trên nội dung của chúng Phân lớp 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 hoặc tự động dẫn đường cho các văn bản tới nh ng chủ đề xác định trước Phân lớp 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 Các hệ thống phân lớp có thể ứng dụng trong việc phân loại tài liệu của các thư viện điện tử, phân loại văn bản báo chí trên các trang tin điện tử… nh ng hệ thống tốt, cho ra kết quả khả quan, giúp ích nhiề cho con người[5]
Hình 1.1 Bài toán phân lớp văn bản theo chủ đề
Thông thường, các lớp cho truớc là các chủ đề nào đó, nh ng cũng có nhiều ứng dụng mà các lớp đ ợc thiết lập theo nh ng tiêu chí khác, nhu phân lớp theo
độ ưu tiên, phân lớp theo chủ đề Hầu hết các bài toán này sẽ tốn rất nhiều thời
Trang 146
gian, công sức và đôi khi không chính xác nế được phân loại một cách thủ công - tức à đọc từng văn bản và gán vào một lớp nào đó Đặc biệt với số lượng tài liệu cần phân lớp cực kỳ lớn nhu hiện nay thì việc phân lớp thủ công là một điều không thể Phân loại nh ng đối tuợng mới vào các lớp bằng phương pháp thủ công gặp phải nh ng khó khăn sa :
- Đối với các ĩnh vực đặc biệt, phân loại các đối tuợng mới (như cơ sở d liệu về y tế, pháp luật, tài chính, ngân hàng ) vào các lớp cho truớc cần có hiểu biết về các ĩnh vực đó
- Phân loại bằng tay đôi khi không chính xác vì q yết định phụ thuộc vào sự hiểu biết và động cơ của nguời thực hiện
- Quyết định của hai chuyên gia khác nhau có thể nảy sinh bất đồng ý kiến
Vì vậy nh ng công cụ để tự động phân lớp văn bản vào các lớp sẽ rất h u ích với công việc này nhất là khi thông tin tràn ngập như ngày nay Một số phuong pháp phân lớp thống kê và kĩ th ật học máy như Bayesian, máy vector hỗ trợ (Support Vector Machines), K láng giềng gần nhất, mạng noron đ ợc áp dụng
để giải quyết bài toán này
Chính vì nh ng nhuợc điểm của phương pháp thủ công nên việc xây dựng một bộ phân lớp văn bản tự động là một điều rất quan trọng và cần thiết, đặc biệt
là khi hầu hết các thông tin đ ợc sinh ra và luu tr điện tử Các bài báo khoa học
và giải trí là nh ng ví dụ về tập các tài liệ điện tử Với sự phát triển ngày càng mạnh mẽ của mạng internet và intranet đã tạo ra nguồn thông tin vô cùng phong phú Các kỹ thuật phân lớp văn bản sẽ giúp cho nguồn d liệ này đã đ ợc lư
tr tự động một cách hiệu quả và đ ợc tìm kiếm nhanh chóng
Phân lớp văn bản đ ợc xuất hiện từ nh ng năm 1960, nhưng chỉ 15 năm sa ,
nó đã trở thành ĩnh vực nghiên cứu chính trong hệ thống thông tin bởi sự đa dạng của các ứng dụng Phân lớp 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 (Information Retrieval), chiết lọc thông tin (Information Extraction), lọc văn bản hoặc tự động dẫn đường cho các văn bản
Trang 157
tới nh ng chủ đề xác định truớc Một ứng dụng khác của phân lớp văn bản là trong ĩnh vực hiể văn bản Phân lớp văn bản có thể đ ợc sử dụng để lọc văn bản hoặc một phần văn bản chứa d liệu cần tìm mà không làm mất đi tính phức tạp của ngôn ng tự nhiên
1.1.2 Phân loại bài toán phân lớp văn bản
Tùy vào nh ng ràng buộc khác nha để phân loại bài toán phân lớp văn bản Nhìn chung có thể phân biệt bài toán phân lớp theo hai cách sau:
- Phân lớp văn bản nhị phân / đa ớp: Bài toán phân lớp văn bản được gọi là nhị phân nếu số lớp là 2, gọi à đa ớp nếu số lớp lớn hơn 2
- Phân lớp văn bản đơn nhãn / đa nhãn: Bài toán phân lớp văn bản được gọi
à đơn nhãn nếu mỗi tài liệ được gán vào chính xác một lớp Bài toán phân lớp văn bản được gọi à đa nhãn nếu một tài liệu có thể được gán nhiề hơn một nhãn
Trên thực tế, phân lớp hai lớp (phân lớp nhị phân) chỉ là một trường hợp đặc biệt của bài toán phân lớp song do xuất xứ cho nên phân lớp nhị phân có vị trí riêng cả về đặt bài toán lẫn về các giải pháp
1.2 Mô hình phân lớp văn bản dùng tiếp cận học máy
Th ật ng học máy đề cập đến việc phát hiện tự động có ý nghĩacác mẫ trong iệ Học máy à ập trình máy tính để họ có thể "tìm hiể " từ đầ vào
có sẵn cho máy tính Đầ vào của th ật toán học máy à iệ h ấn yện chứa các kiến thức, tri thức mà chúng ta cần cho máy học Đầ ra chính à các thông
số được tính toán trong q á trình học máy mà chúng ta có thể sử ụng để àm các việc khác phục vụ cho mục đích mà chúng ta m ốn máy thực hiện thông q a việc học máy[8]
Phân ớp văn bản được các nhà nghiên cứ định nghĩa thống nhất như à việc gán tên các chủ đề (tên ớp / nhãn ớp) đã được xác định cho trước vào các văn bản text ựa trên nội ng của nó Phân ớp văn bản à công việc được sử ụng
để hỗ trợ trong q á trình tìm kiếm thông tin (Information Retrieva ), chiết ọc