Trong đề tài này chúng tôi sử dụng công cụ VnTokenizer để cắt từ, r i xây dựng các véc-tơ dựa trên ph ơng pháp TF-IDF, sau đó dùng th viện Weka hỗ trợ tiến hành phân lo i tin t c bằng c
Trang 2Mọi sao chép không hợp lệ, vi ph m quy chế hay gian trá chúng tôi xin chịu hoàn toàn trách nhiệm
Nhóm sinh viên thực hiện đề tài
Trang 3ii
L I C M N
Trong hơn b n năm học tập t i tr ng Đ i học Bách Khoa, đặc biệt là trong giai đo n làm luận văn t t nghiệp, chúng tôi đư nhận đ ợc sự ng hộ, h ớng dẫn, giúp đỡ tận tình c a gia đình, th y cô, b n bè Chúng tôi xin gửi l i c m ơn sâu sắc đến họ, những ng i đư góp công
s c không nhỏ trong việc hoàn thành luận văn này
Tr ớc hết, là gia đình, đặc biệt là cha mẹ, những ng i đư sinh thành, nuôi d ỡng chúng tôi
ăn học Hỗ trợ, ng hộ chúng tôi hết mình về mặt vật chất và tinh th n Ng i mà chúng tôi biết ơn su t đ i
Tiếp đến là Th c sĩ Võ Thanh Hùng, gi ng viên trực tiếp h ớng dẫn Luận văn T t nghiệp c a chúng tôi Chúng tôi vô cùng biết ơn sự tình tận h ớng dẫn c a th y Nh có sự định h ớng
rõ ràng, dõi theo sát sao, thúc đ y m nh mẽ c a th y mà chúng tôi mới có thể hoàn thành đề tài này
Cu i cùng, xin gửi l i c m ơn chân thành nhất đến những th y cô đư gi ng d y chúng tôi trong su t hơn b n năm học qua những ng i đư trang bị nền t ng kiến th c, kĩ năng quý báu cho chúng tôi và những ng i b n cùng với sự nhiệt tình giúp đỡ c a họ
Xin trân trọng c m ơn
Nhóm sinh viên thực hiện đề tài Tp.H Chí Minh, ngày 23 tháng 11 năm 2014
Trang 4ABTRACT
Today, the rapid development of Information Technology has changed the life a lot In Data mining and Machine learning, there are especially changes It has been applying in most of areas of the life such as the diagnosis of illness, the classification of DNA sequences in medical, stock market analysis, automatic translation, data retrieval, identification of speech and handwriting, etc In communication, the publication of newspapers has much changed With its benefits, online news is increasing in both quantity and quality Classification of Topics Posts is meaningful in finding and storing data Most of this work currently done by hand and is subjective to the agent Topic of team is exploring methods of machine learning to classify news Vietnamese and using some support libraries to build program automatically classify information
Due to the multiple topics of a Vietnamese news and the limited time, our program can classify only seven threads, which have relatively independent content with each other They are world, sports, life, law, finance – economics, technology and automotive – motorcycle Most of news is stored in natural language and untructed data To classify automatically, we need to convert them into a structured data The most common way is using vector space, each news will be represented as a vector of keywords However, to create vector of information, we need pre-process the information The works we have to do are cutting word, removing punctuation and stop word In this topic, we use VnTokenizer to cutting word, and then build the véc-tơ method based on TF-IDF, then use the Weka library to support classify information in machine learning algorithms
In general, we have completed the basic objectives of this project are exploring methods of machine learning and implementing construction programs classified information Besides, there are still aspects that need to be improved further as the number of threads still less (7 topics), the amount of news initially used to train a lot less (more than 1500), the threads have independent content with each other; have not found the relationship between title, introduction, content and article topics
Proposed expansion are increasing the number of threads and the number of original articles
in the training set; resolving the problem that is a news can belong to many topics; exploring the relationship between the article name, introduction, content and the subject of news
Trang 5iv
TÓM T T
Ngày nay, sự phát triển nhanh chóng c a Công nghệ thông tin (CNTT) đư làm thay đổi cuộc
s ng rất nhiều Đặc biệt là lĩnh vực khai phá dữ liệu và học máy Nó đ ợc ng dụng vào mọi lĩnh vực trong cuộc s ng, từ việc ch n đoán bệnh, phân lo i chuỗi ADN trong y khoa, hay phân tích thị tr ng ch ng khoán đến dịch tự động, truy tìm dữ liệu, nhận d ng tiếng nói, chữ
viếtầTrong lĩnh vực truyền thông, việc xuất b n báo chí, tin t c cũng có nhiều thay đổi Với
những u thế c a mình, tin t c trực tuyến ngày càng tăng c về s l ợng và chất l ợng Việc phân lo i ch đề bài viết mang nhiều ý nghĩa trong việc tìm kiếm và l u trữ dữ liệu H u hết công việc này hiện nay đ ợc làm bằng tay và mang tính ch quan c a ng i thực hiện Đề tài nhóm thực hiện là tìm hiểu các ph ơng pháp học máy dùng để phân lo i tin t c tiếng Việt và dùng một s th viện hỗ trợ để xây dựng ch ơng trình phân lo i tin t c tự động
Do tính đa ch đề c a tin t c tiếng Việt, một tin t c có thể thuộc một hay nhiều ch đề, và h n chế về mặt th i gian cùng với giới h n luận văn, ch ơng trình phân lo i tin t c c a chúng tôi chỉ phân lo i trên 7 ch đề, có nội dung t ơng đ i độc lập nhau: thế giới, thể thao, đ i s ng, pháp luật, tài chính – kinh tế, công nghệ và ô tô - xe máy H u hết tin t c đều đ ợc l u trữ
d ới d ng ngôn ngữ tự nhiên, d ng dữ liệu phi cấu trúc Để phân lo i tự động đ ợc, chúng ta
c n ph i chuyển chúng sang d ng dữ liệu có cấu trúc Cách phổ biến nhất là sử dụng không gian véc-tơ, mỗi tin t c sẽ đ ợc biểu diễn thành một véc-tơ c a các từ khóa Tuy nhiên để véc-tơ hóa thông tin, chúng ta c n tiền xử lý các tin t c đó Các công việc cụ thể c n ph i làm
là cắt từ, xóa dấu câu và lo i bỏ stop word Trong đề tài này chúng tôi sử dụng công cụ
VnTokenizer để cắt từ, r i xây dựng các véc-tơ dựa trên ph ơng pháp TF-IDF, sau đó dùng
th viện Weka hỗ trợ tiến hành phân lo i tin t c bằng các gi i thuật học máy
Nhìn chung, chúng tôi đư hoàn thành các mục tiêu cơ b n c a đề tài là tìm hiểu các ph ơng pháp học máy và thực hiện xây dựng ch ơng trình phân lo i tin t c Bên c nh đó cũng còn
một s khía c nh mà c n ph i c i thiện thêm nh : s l ợng ch đề vẫn còn ít (7 ch đề), s
l ợng tin t c ban đ u dùng để huấn luyện ch a nhiều (hơn 1500 bài), các ch đề g n nh có
sự độc lập với nhau về mặt nội dung nên ít x y ra vấn đề một tin t c thuộc nhiều ch đề; ch a tìm ra m i liên hệ giữa tiêu đề bài viết, giới thiệu đ u bài, nội dung bài viết với ch đề bài viết
H ớng đề xuất m rộng là: tăng thêm s l ợng ch đề và s l ợng bài viết ban đ u trong tập
huấn luyện; gi i quyết vấn đề một tin t c có thể thuộc nhiều ch đề khác nhau; tìm hiểu m i liên hệ giữa tên bài viết, giới thiệu đ u bài, nội dung và ch đề c a bài viết đó
Trang 6M C L C
L i cam đoan i
L i c m ơn ii
Abtract iii
Tóm tắt iv
Danh mục hình vii
Danh mục b ng viii
Danh mục từ viết tắt ix
Ch ơng 1 Giới thiệu 1
1.1 Giới thiệu đề tài 1
1.2 Mục tiêu đề tài 1
1.3 B cục luận văn 1
Ch ơng 2 Tổng quan về bái toán phân lo i tin t c bằng ph ơng pháp học máy 3
2.1 Tổng quan về khai phá dữ liệu 3
2.1.1 Khai phá dữ liệu (data mining) 3
2.1.2 Khai phá dữ liệu văn b n (textmining) 4
2.2 Học máy (machine learning) 4
2.3 Bài toán phân lo i văn b n tự động bằng học máy 4
Ch ơng 3 Các công trình nghiên c u liên quan 6
3.1 Phân lo i văn b n với máy học véc-tơ hỗ trợ và cây quyết định 6
3.2 Xây dựng hệ th ng phân lo i tài liệu tiếng việt 7
3.3 Phân lo i email spam bằng matlab áp dụng 6 gi i thuật 9
3.3.1 Giới thiệu 9
3.3.2 Tiền xử lý dữ liệu và mô hình hóa văn b n 9
3.3.3 Xây dựng tập huấn luyện và kiểm thử, kết qu thực nghiệm 10
Ch ơng 4 Quy trình phân lo i tin t c 11
4.1 Tiền xử lý dữ liệu 11
4.1.1 Đặc điểm c a ngôn ngữ tiếng việt 11
4.1.2 Nhập nhằng trong tách từ tiếng việt 12
4.1.3 Tách từ 12
4.1.4 Lo i bỏ stop word 15
4.2 Chuyển đổi tin t c từ d ng ngôn ngữ tự nhiên sang mô hình không gian véc-tơ 15
4.2.1 Binary véc-tơ 15
4.2.2 TF-IDF véc-tơ 15
4.2.3 Độ t ơng đ ng giữa các véc-tơ 17
Trang 7vi
4.3 Các ph ơng pháp phân lo i văn b n bằng học máy 18
4.3.2 Ph ơng pháp SVM (support véc-tơ machine) 18
4.3.3 Ph ơng pháp nạve bayes 19
4.3.4 Ph ơng pháp cây quyết định (classification and regression trees) 21
4.3.5 K-nearest neighbor (KNN) 23
4.3.6 Linear least square fit (LLSF) 23
4.4 Các thơng s đánh giá gi i thuật 24
Ch ơng 5 Hiện thực ch ơng trình phân lo i tin t c tiếng Việt 26
5.1 Phân tích yêu c u đề tài 26
5.2 Quy trình phân lo i tin t c tự động bằng học máy 27
5.3 Thu thập dữ liệu 28
5.4 Tiền xử lý dữ liệu 32
5.4.2 Tách từ 32
5.4.3 Lo i bỏ dấu câu 33
5.4.4 Chuyển đổi tin t c thành chuỗi s 34
5.4.5 Véc-tơ hĩa dữ liệu 35
5.4.6 Phân lo i tin t c dựa trên mơ hình phân lớp 38
5.5 Phân lo i tin t c bằng học máy 39
Ch ơng 6 Giao diện ch ơng trình & cách sử dụng 43
Ch ơng 7 Kết qu thực nghiệm và đánh giá 49
7.1 Kết qu thực nghiệm 49
7.1.2 Kết qu thực nghiệm 1 49
7.1.3 Kết qu thực nghiệm 2 50
7.1.4 Kết qu thực nghiệm 3 50
7.1.5 Kết qu thực nghiệm 4 50
7.1.6 Kết qu thực nghiệm 5 51
7.2 Đánh giá 51
Ch ơng 8 Kết luận 52
8.1 Kết luận 52
8.2 Kiến nghị 52
Tài liệu tham kh o 53
Phụ lục 1 54
Phụ lục 2 56
Phụ lục 3 57
Trang 8DANH M C HÌNH
Hình 3.1 Quy trình phân loại văn bản của [6] 6
Hình 3.2 Quy trình phân loại văn bản theo [4] 7
Hình 3.3 Trình tự phân loại văn bản của [4] 8
Hình 4.1 Ví dụ siêu phẳng với lề cực đại trong không gian hai chiều[6] 18
Hình 4.2 Cây quyết định phân lớp mức lương 21
Hình 5.1 Quy trình phân loại tin tức tự động 27
Hình 5.2 Quy trình tách từ của VnTokenizer 32
Hình 5.3 Giao diện Weka 39
Hình 5.4 Giao diện tab Preprocess của Weka 40
Hình 5.5 Giao diện tab Classify của Weka 41
Hình 5.6 Giao diện Weka sau khi phân loại 42
Hình 6.1 Giao diện chương trình ban đầu 43
Hình 6.2 Giao diện chương trình sau khi phân loại một bài viết 44
Hình 6.3 Giao diện tính năng phân loại thông qua url 45
Hình 6.4 Giao diện sau khi phân loại một bài viết từ url 46
Hình 6.5 Giao diện tính năng phân loại nhiều bài viết từ thư mục 47
Hình 6.6 Kết quả sau khi phân loại nhiều bài viết từ thư mục 48
Trang 9viii
DANH M C B NG
Bảng 3.1 Kết quả phân loại của [6] 7
Bảng 3.2 Kết quả phân loại văn bản [4] 8
Bảng 3.3 Kết quả phân loại theo [12] 10
Bảng 5.1 Cấu trúc bảng lưu trữ dữ liệu nguồn 31
Bảng 5.2 Tỉ lệ dữ liệu lấy về đúng 31
Bảng 5.3 Bảng thống kê tập dữ liệu tin tức 32
Bảng 5.4 Cấu trúc bảng lưu trữ sau khi cắt từ và xóa dấu câu 33
Bảng 5.5 Cấu trúc bảng sau khi chuyển đổi sang chuỗi số 35
Bảng 5.6 Kết quả kiểm nghiệm chỉ số Max 36
Bảng 5.7 Kết quả kiểm nghiệm chỉ số Min 36
Bảng 5.8 Cấu trúc bảng lưu các từ khóa 37
Bảng 7.1 Bảng so sánh kết quả chạy thử nghiệm với nhiều giải thuật khác nhau 49
Bảng 7.2 Kết quả thực nghiệm 1 49
Bảng 7.3 Kết quả thực nghiệm 2 50
Bảng 7.4 Kết quả thực nghiệm 3 50
Bảng 7.5 Kết quả thực nghiệm 4 50
Bảng 7.6 Kết quả thực nghiệm 5 51
Trang 10DANH M C T VI T T T
lo i tin t c Là những từ phổ biến hoặc hiếm gặp
Trang 111
Ch ng 1 GI I THI U
1.1 GI I THI U Đ TÀI
Trong th i đ i CNTT hiện nay chỉ với vài cú click chuột là b n có thể biết đ ợc tin t c thuộc
mọi thể lo i, từ khắp nơi trên thế giới Với hàng lo t tính năng u việt c a tin t c s nh : l u trữ gọn nhẹ, th i gian l u trữ lâu dài, dễ dàng sửa đổi và thuận tiện trao đổiầ thì việc xem tin
t c trên m ng đư tr thành một ph n tất yếu trong cuộc s ng c a nhiều ng i, đặc biệt là giới
trẻ Kéo theo đó là sự bùng nổ về s l ợng tin t c trên world-wide-web S l ợng tin ngày càng nhiều, t c độ thay đổi thông tin thì vô cùng nhanh chóng Với l ợng tin t c đ sộ nh
vậy, một yêu c u lớn đặt ra là làm sao tổ ch c, tìm kiếm thông tin có hiệu qu nhất Việc l u trữ, phân lo i hợp lý là h ớng gi i quyết phù hợp nhất cho vấn đề đó Nh ng thực tế công việc đó đang đ ợc thực hiện th công, t n nhiều th i gian và công s c do đó việc phân lo i tự động đư tr nên c n thiết hơn
Từ nhu c u thực tiễn trên, trong đề tài luận văn t t nghiệp này, chúng tôi tìm hiểu các b ớc để
tiến hành phân lo i tin t c bằng học máy, các ph ơng pháp phân lo i tin t c áp dụng với tập
dữ liệu là tin t c thuộc một s thể lo i nhất định lấy từ các trang tin t c trực tuyến tiếng Việt
Từ tập dữ liệu đó, chúng tôi sẽ tiến hành xây dựng ch ơng trình thực nghiệm áp dụng các
ph ơng pháp đư tìm hiểu tiến hành phân lo i và đo độ chính xác c a các gi i thuật
1.2 M C TIểU Đ TÀI
Các mục tiêu và nhiệm vụ đ ợc đặt ra c a đề tài g m:
Tìm hiểu các ph ơng pháp học máy ng dụng cho phân tích tin t c tiếng Việt
Sử dụng các th viện sẵn có để hỗ trợ xây dựng ch ơng trình phân lo i tin t c
1.3 B C C LU N VĂN
Nội dung c a đề tài luận văn t t nghiệp này đ ợc trình bày thành 8 ch ơng Trong đó 2
ch ơng đ u giới thiệu đề tài, các khái niệm liên quan từ tổng quát đến cụ thể Hai ch ơng tiếp theo trình bày cơ s lý thuyết Hai ch ơng kế tiếp trình bày về việc xây dựng ch ơng trình phân lo i tin t c sử dụng các ph ơng pháp học máy và hai ch ơng cu i là kết qu kiểm thử, đánh giá, kết luận Nội dung cụ thể từng ch ơng nh sau:
Ch ơng 1 giới thiệu khái quát đề tài, b i c nh CNTT hiện nay dẫn đến nhu c u c a việc phân
lo i tin t c bằng các ph ơng pháp học máy, mục tiêu c n đ t đ ợc và b cục c a luận văn t t nghiệp này
Ch ơng 2 trình bày tổng quan về bài toán phân lo i tin t c sử dụng các ph ơng pháp học máy
từ tổng quát đến cụ thể Ch ơng này đ a ra các khái niệm: khai phá dữ liệu, bài toán phân lo i văn b n, học máy
Ch ơng 3 trình bày các đề tài nghiên c u liên quan, nêu khái quát đặc điểm các ph ơng pháp
đ ợc sử dụng t i mỗi b ớc c a quy trình phân lo i c a các đề tài nghiên c u đó và kết qu
thực nghiệm c a đề tài
Ch ơng 4 trình bày kiến th c nền t ng, cơ s lý thuyết sử dụng trong luận văn theo b cục từng b ớc phân lo i tin t c tiếng Việt sử dụng các ph ơng pháp học máy Cụ thể là trình bày
Trang 12các gi i thuật, ph ơng pháp trong 3 b ớc sau: tiền xử lý dữ liệu, mô hình hóa văn b n và phân
lo i văn b n dùng học máy
Ch ơng 5 trình bày về việc hiện thực ch ơng trình phân lo i tin t c, các công việc đư làm, các
th viện sẵn có đư sử dụng, các gi i thuật, ph ơng pháp đư dùng
Ch ơng 6 trình bày giao diện ch ơng trình thử nghiệm, các ch c năng, cách sử dụng
Ch ơng 7 trình bày về các kết qu đ t đ ợc, kết qu thử nghiệm và đánh giá kết qu
Ch ơng 8 trình bày kết luận và kiến nghị, ph ơng h ớng phát triển c a đề tài
Ngoài ra báo cáo còn có các ph n tóm tắt, phụ lục, tài liệu tham kh o, các ph n còn l i khác
Trang 13Ch ơng này trình bày tổng quan về khai phá dữ liệu (data Mining); bài toán phân lớp văn b n
với một s đặc điểm, ng dụng c a nó; giới thiệu về học máy và đ a ra quy trình phân lớp văn b n chung cho h u hết các ph ơng pháp phân lo i văn b n theo h ớng học máy
2.1 T NG QUAN V KHAI PHÁ D LI U
Trong b i c nh bùng nổ CNTT hiện nay, l ợng dữ liệu ngày càng tăng lên c về s l ợng và
chất l ợng Tuy nhiên, chỉ một ph n nhỏ trong kh i dữ liệu khổng l đó là có giá trị sử dụng Nhu c u tìm kiếm và khai thác tri th c từ kh i dữ liệu đó đư m ra một khía c nh mới c a ngành công nghệ thông tin đó là Khai thác tri th c từ cơ s dữ liệu (Knowledge Discovery from Data hay KDD) [11]
Khai phá dữ liệu là một b ớc trong quá trình khai thác tri th c [11] Bao g m:
Xác định vấn đề và không gian dữ liệu để gi i quyết vấn đề (problem understanding and data understanding)
Chu n bị dữ liệu (data preparation), bao g m các quá trình làm s ch dữ liệu (data cleaning), tích hợp dữ liệu (data integration), chọn dữ liệu (data selection), biến đổi dữ liệu (data transformation)
Khai thác dữ liệu (data mining): xác định nhiệm vụ khai thác dữ liệu và lựa chọn kỹ
thuật khai thác dữ liệu Kết qu cho ta một ngu n tri th c thô
Đánh giá (evaluation): dựa trên một s tiêu chí tiến hành kiểm tra và lọc ngu n tri th c thu đ ợc
Triển khai (deployment)
Quá trình khai thác tri th c không thực hiện tu n tự từ b ớc đ u tiên đến b ớc cu i cùng mà
đó là một quá trình lặp đi lặp l i nhiều l n
Khai phá dữ liệu có thể hiểu đơn gi n là quá trình chắt lọc và khai thác tri th c từ một kh i dữ liệu lớn Việc này c n sử dụng kiến th c từ nhiều ngành và nhiều lĩnh vực khác nhau nh
th ng kê, trí tuệ nhân t o, cơ s dữ liệu, tính toán song song,ầ Đặc biệt, nó rất g n gũi với lĩnh vực th ng kê, sử dụng các ph ơng pháp th ng kê để mô hình hóa dữ liệu và phát hiện các
mẫu ng dụng c a khai phá dữ liệu có thể kể đến nh : cung cấp tri th c, hỗ trợ ra quyết định,
dự báo, khái quát dữ liệu
Các ph ơng pháp khai phá dữ liệu:
Bài toán phân lớp (classification): Ánh x một mẫu dữ liệu vào một trong các lớp cho
Trang 14 Bài toán tổng hợp (summarization): Là việc đi tìm kiếm một mô t chung tóm tắt từ một tập dữ liệu con
Mô hình ràng buộc (dependency modeling): Là việc đi tìm một mô hình mô t sự phụ thuộc giữa các biến hay giữa các giá trị c a các tính năng trong tập dữ liệu
Dò tìm biến đổi và độ lệch (change and deviation dectection): Là việc tìm những thay đổi lớn nhất trong tập dữ liệu
Khai phá dữ liệu văn b n là quá trình khai phá các tri th c đáng quan tâm hay có giá trị từ các tài liệu văn b n phi cấu trúc Bài toán Khai phá dữ liệu văn b n là một bài toán đa lĩnh vực bao g m nhiều kĩ thuật và các h ớng nghiên c u khác nhau : thu thập thông tin (information retrieval), phân tích văn b n (text analysis), chiết xuất thông tin (information extraction), lập
đo n (clustering), phân lo i văn b n (categorization)ầTrong ph n tiếp theo, chúng tôi sẽ trình bày sâu hơn về bài toán Phân lo i văn b n (categorization) nội dung c a đề tài luận văn này
2.2 H C MÁY (MACHINE LEARNING)
Học máy là một ngành khoa học thuộc lĩnh vực trí tuệ nhân t o, nghiên c u và xây dựng các
kĩ thuật cho phép các hệ th ng “học” tự động từ dữ liệu để gi i quyết những vấn đề cụ thể Những kĩ thuật này ho t động bằng cách xây dựng một mô hình dựa trên tập dữ liệu đ u vào
và sử dụng nó để tiến hành dự đoán hay đ a ra quyết định Học máy có liên quan mật thiết tới
th ng kê, vì c hai lĩnh vực đều nghiên c u việc phân tích dữ liệu nh ng khác với th ng kê, học máy tập trung vào sự ph c t p c a các gi i thuật trong việc thực thi tính toán
Học máy có ng dụng rộng khắp trong h u hết mọi lĩnh vực c a cuộc s ng: Xử lý ngôn ngữ
tự nhiên, tìm kiếm (search engine), ch n đoán y khoa, phát hiện thẻ tín dụng gi , phân tích thị
tr ng ch ng khoán, phân lo i các chuỗi ADN, nhận d ng tiếng nói và chữ viết, dịch tự độngầvà phân lo i văn b n tự động
2.3 BÀI TOÁN PHÂN LO I VĂN B N T Đ NG B NG H C MÁY
Phân lo i tin t c là một d ng c a bài toán phân lo i văn b n Phân lo i văn b n là một bài toán xử lí văn b n cổ điển, đó là ánh x một văn b n vào một ch đề đư biết trong một tập hữu
h n các ch đề dựa trên ngữ nghĩa c a văn b n Theo Yang & Xiu (1999)[13] “Phân loại văn
b ản tự động là việc gán các nhãn phân loại lên một văn bản mới dựa trên mức độ tương tự
c ủa văn bản đó so với các văn bản đã được gán nhãn trong tập huấn luyện” Ví dụ một tin
t c trong một t báo có thể thuộc một hoặc nhiều ch đề (nh thể thao, s c khỏe, công nghệ thông tin,ầ) Việc tự động phân lo i văn b n vào một ch đề nào đó giúp cho việc sắp xếp,
l u trữ và truy vấn tài liệu dễ dàng hơn về sau
Bài toán phân lo i văn b n có nhiều ng dụng ng dụng lớn nhất c a nó là phân lo i và áp dụng vào bài toán lọc nội dung Trong bài toán lọc nội dung, các văn b n sẽ đ ợc chia ra hai
lo i có ích và không có ích, sau đó giữ l i các văn b n có ích và lo i bỏ các văn b n không có ích Cụ thể nh phân lo i email spam, lọc trang web có nội dung không phù hợp, lọc các tài
liệu không có íchầVới ng dụng phân lo i, bài toán này giúp phân lo i tin t c trên một trang web, phân lo i tài liệu trong công ty Tự động phân lo i văn b n là một ng dụng thực tiễn hết s c to lớn c a bài toán phân lớp văn b n Nó gi i phóng các tổ ch c, công ty khỏi việc phân lo i th công kho tài liệu c a họ, một việc mà có thể sẽ mất rất nhiều tiền c a, hoặc đơn
Trang 155
gi n là khơng thể làm đ ợc do những ràng buộc về vấn đề th i gian hoặc s tài liệu liên quan Ngồi ra bài tốn này cịn hỗ trợ trong việc tìm kiếm trên Internet, giúp định vị nội dung thơng tin c n tìm nhanh chĩng và dễ dàng hơn
Đặc điểm nổi bật c a bài tốn này là sự đa d ng c a ch đề văn b n và tính đa ch đề c a văn
b n S ch đề các lo i văn b n g n nh là khơng cĩ giới h n Một s ch đề phổ biến trong tin t c Tiếng Việt nh : chính trị, kinh tế, xã hội, giáo dụcầ Một s ch đề là “con” c a một hoặc một s ch đề khác Ví dụ ch đề bĩng đá ngo i h ng Anh, ch đề bĩng đá Tây Ban Nha
là con c a ch đề bĩng đá và bĩng đá là con c a ch đề thể thao Tính đa ch đề c a văn b n làm cho sự phân lo i chỉ mang tính chất t ơng đ i và cĩ ph n ch quan c a ng i thực hiện,
dẫn đến sự nhập nhằng khi phân lo i tự động Rõ ràng một bài viết về giáo dục cũng cĩ thể
xếp vào kinh tế nếu nh bài viết bàn về tiền b c đ u t cho giáo dục và tác động c a đ u t này đến kinh tế - xã hội Hay một bài viết về thể thao cũng cĩ thể xếp vào s c khỏe nếu nh
nĩ bàn về việc tập luyện, chấn th ơng, h i phục c a các vận động viên Về b n chất, một văn
b n là một tập hợp từ ngữ cĩ liên quan với nhau t o nên nội dung, ý nghĩa c a văn b n Từ
ngữ c a một văn b n rất đa d ng do tính đa d ng c a ngơn ngữ (đ ng nghĩa, đa nghĩa, từ ghép,
từ đơn, từ vay m ợn n ớc ngồi,ầ) và s l ợng từ c n xét là lớn đây c n l u ý rằng, một văn b n cĩ thể cĩ s l ợng từ ngữ khơng nhiều, nh ng s l ợng từ ngữ c n xét là rất nhiều vì
ph i bao hàm tất c các từ c a ngơn ngữ đang xét Trên thế giới đư cĩ nhiều cơng trình nghiên
c u đ t những kết qu kh quan, nhất là đ i với phân lo i văn b n tiếng Anh Theo tìm hiểu
c a chúng tơi, một s ph ơng pháp phân lo i thơng dụng hiện nay là: Support Véc-tơ Machine – Joachims 1998, k-Nearest Neighbor – Yang 1994, Linear Least Squares Fit – Yang and Chute 1994, Neural Network – Wiener et al 1995, Nạve Bayes – Baker and Mccallum
2000, Centroid- based – Shankar and Karypis 1998 Các ph ơng pháp trên đều dựa vào xác
suất th ng kê hoặc thơng tin về trọng s c a từ trong văn b n Tuy vậy, các nghiên c u và ng
dụng đ i với văn b n tiếng Việt cịn nhiều h n chế do khĩ khăn về tách từ và câu
Trang 16Ch ng 3 CÁC CÔNG TRÌNH NGHIÊN C U LIÊN QUAN
Phân lo i văn b n nói chung hay phân lo i tin t c nói riêng là một lĩnh vực đư có rất nhiều công trình nghiên c u, bài báo, luận văn, đ án, đề cập đến Các công trình đó đều đ t đ ợc những kết qu hết s c kh quan và có nhiều điểm để học hỏi Trong ch ơng này chúng tôi sẽ trình bày ba công trình nghiên c u mà theo đánh giá ch quan c a chúng tôi là t ơng đ i đơn
gi n, và chúng tôi tìm hiểu nhiều nhất để hoàn thành đ án này
3.1 PHÂN LO I VĂN B N V I MÁY H C VÉC-T H TR VÀ CÂY
QUY T Đ NH
Công trình nghiên c u đ u tiên chúng tôi tham kh o là bài báo nghiên c u khoa học c a hai tác gi Tr n Cao Đệ và Ph m Nguyên Khang công tác t i Đ i học C n Thơ, đ ợc đăng trên
T p chí Khoa học 2012:21a 52-63 Nh tác gi đư viết trong [6]: “Bài viết này nghiên cứu
máy h ọc véc-tơ hỗ trợ (SVM), áp dụng nó vào bài toán phân loại văn bản và so sánh hiệu quả
c ủa nó với hiệu quả của giải thuật phân lớp cổ điển, rất phổ biến đó là cây quyết định.”
Ngoài ra để áp dụng có hiệu qu gi i thuật SVM, tác gi đư sử dụng kĩ thuật phân tích giá trị đơn (SVD - Singular Value Decomposition) để rút ngắn s chiều c a không gian đặc tr ng, từ
đó gi m nhiễu quá trình phân lo i
Tác gi tiến hành phân lo i văn b n theo trình tự nh sau:
Hình 3.1 Quy trình phân lo ại văn bản của [6]
Trong giai đo n tiền xử lý dữ liệu, tác gi sử dụng gi i thuật MMSEG để tiến hành tách từ Đây là gi i thuật đ ợc dùng phổ biến để tách từ tiếng Trung Qu c với độ chính xác 99%[6]
và
đư đ ợc áp dụng vào tách từ Tiếng Việt thành công trong nhiều công trình Theo nghiên c u
c a tác gi gi i thuật này khi áp dụng vào tách từ tiếng Việt sẽ cho độ chính xác trên 95%[6]
Sau khi tách từ tác gi tiến hành mô hình hóa văn b n thành d ng véc-tơ, sử dụng TF-IDF véc-tơ hóa; tiến hành phân lo i văn b n với hai gi i thuật SVM và cây quyết định trong ph n mềm Weka Với tập dữ liệu là 7842 văn b n thuộc 10 ch đề khác nhau, ng với mỗi ch đề, tác gi chọn ra 500 văn b n một cách ngẫu nhiên để tiến hành huấn luyện, s văn b n còn l i
để kiểm ch ng độc lập Để huấn luyện SVM, tập ngữ liệu đang xét sẽ đ ợc phân tích giá trị đơn và rút ngắn s chiều Kết qu về hiệu qu phân lo i văn b n với cây quyết định và máy học SVM đ ợc tác gi thể hiện qua b ng III.1:
Tiền xử lý dữ liệu
Véc-tơ hóa văn b n
Phân lo i văn
b n bằng học máy
Tách từ bằng MMSEG
TF-IDF Véc-tơ
Weka (SVM, cây quyết định)
Trang 177
Hình 3.2 Quy trình phân lo ại văn bản theo [4]
B ảng 3.1 Kết quả phân loại của [6]
tr ng đư nâng cao hiệu qu phân lớp SVM
3.2 XÂY D NG H TH NG PHÂN LO I TÀI LI U TI NG VI T
Cơng trình th hai mà chúng tơi tham kh o là Bài báo Nghiên c u Khoa học c a hai tác gi
Tr n Thị Thu Th o và Vũ Thị Chinh cơng tác t i Khoa Cơng nghệ thơng tin, tr ng Đ i học
L c H ng[4] Đề tài này áp dụng ph ơng pháp Nạve Bayes thực hiện phân lo i trên đ i
t ợng là các bài báo khoa học thuộc 9 chuyên ngành trong lĩnh vực Cơng nghệ thơng tin Trong bài báo tác gi đ a ra các b ớc xử lý chung c a quy trình phân lo i văn b n qua sơ đ :
Trang 18Hình 3.3 Trình t ự phân loại văn bản của [4]
Sau đĩ tác gi tiến hành phân lo i văn b n theo trình tự hình III.3:
Tác gi tiến hành xây dựng module tách từ theo mơ hình N-gram, sau đĩ mơ hình hĩa văn b n
đư đ ợc tách từ bằng véc-tơ TF-IDF Với tập dữ liệu đư đ ợc mơ hình hĩa thành véc-tơ, tác
gi tiến hành phân lo i dựa trên ph ơng pháp Nạve Bayes Tác gi xây dựng ph n mềm phân
lo i, tích hợp thêm các ch c năng qu n lý, sửa, xĩa bài báo để tiến hành thử nghiệm trên tập
dữ liệu là 281 bài báo khoa học thuộc các chuyên ngành c a lĩnh vực CNTT Kết qu phân
lo i đ ợc thể hiện trong b ng III.2:
B ảng 3.2 Kết quả phân loại văn bản [4]
T l (%)
Tiền xử lý dữ
liệu
Véc-tơ hĩa văn b n
Phân lo i văn
b n
Tách từ bằng N-gram
TF-IDF Véc-tơ
Gi i thuật Nạve Bayes
Trang 199
3.3 PHÂN LO I EMAIL SPAM B NG MATLAB ÁP D NG 6 GI I THU T
Đây là đ án cu i khóa Phân Lo i Email Spam môn Học Máy c a hai tác gi Shahar Yifrah
và Guy Lev[12] Toàn bộ dữ liệu và source code c a đ án đ ợc đ a lên và t i miễn phí t i http://www.cs.tau.ac.il/~shaharyi/ml_final_project_2013.html
Trong đ án này, tác gi sử dụng 6 gi i thuật để tiến hành phân lo i email spam bằng Matlab
và so sánh hiệu suất giữa chúng Sáu gi i thuật đó bao g m:
Tác gi đánh giá hiệu suất phân lo i c a các gi i thuật dựa trên hai khía c nh:
Error rate: tỉ lệ để sót email spam
False positive ratio: (number of false positives) / (number of ham messages) Tỉ lệ phân lo i sai email bình th ng thành email spam trên tổng s email bình th ng
Với tập dữ liệu là 5172 email, trong đó 29% email spam và 71% email th ng Tác gi xây dựng một Python script tiến hành tiền xử lý dữ liệu và véc-tơ hóa các email
Tiền xử lý dữ liệu hay tách từ là công việc khá đơn gi n với ngôn ngữ tiếng Anh, b i các từ
đ ợc phân biệt với nhau bằng kho ng trắng
Cách véc-tơ hóa email: tác gi chọn ra 100 từ trong tập dữ liệu Mỗi email đ ợc biểu diễn bằng t n suất xuất hiện c a 100 từ đó trong chính nó Những từ đ ợc chọn có thể là một trong
những kí tự đặc biệt nh ;([!$# Cách chọn ra 100 từ để xây dựng véc-tơ c a tác gi :
Đ u tiên với mỗi từ riêng biệt xuất hiện trong tập dữ liệu Tác gi xếp h ng chúng theo thuộc
tính Spamicity Đ ợc tính theo công th c:
| | |
Trong đó:
| : Xác suất từ w xuất hiện trong email spam
| : Xác suất từ w xuất hiện trong email th ng
Các xác suất này đ ợc ớc l ợng thông qua tập huấn luyệning
Những từ có Spamicity càng g n 1 thì càng là những từ đ i diện cho email th ng và ng ợc
l i, spamicity c a từ đó càng g n 0 thì từ đó th ng đ i diện cho email spam Do đó những từ
Trang 20có giá trị spamicity càng xa 0.5 (lớn hơn hoặc nhỏ hơn) thì xếp h ng càng cao Tuy nhiên trong tr ng hợp các xác suất | | quá nhỏthì những từ đórất khó đ ợc chọn cho dù nó có giá trị spamicity phù hợp Để gi i quyết vấn đề đó tác gi đ a ra trình tự lựa
chọn 100 từ nh sau:
Lọc ra những từ có | – |
Lọc ra những từ hiếm, t n suất xuất hiện nhỏ hơn 1% trong toàn bộ tập dữ liệu
Với những từ ch a đ ợc lọc ra, tính giá trị | | | |
Chọn 100 từ có giá trị | | | | lớn nhất
NGHI M
Ngoài việc véc-tơ hóa các email thì Python script còn t o ra 90 cặp tập huấn luyện và tập
kiểm thử Tác gỉa chọn tỉ lệ kích th ớc tập huấn luyện so với kích th ớc tập dữ liệu tăng d n
từ 0.1, 0.2, 0.3ầ đến 0.9 ng với mỗi tỉ lệ, l i chọn ra ngẫu nhiên 10 cặp tập huấn luyện và tập kiểm thử để tiến hành kiểm thử Kết qu đ t đ ợc thể hiện trong b ng III.3:
B ảng 3.3 Kết quả phân loại theo [12]
Minimizing Error (%) Minimizing False Positive Ratio (%)
Trang 2111
Ch ng 4 QUY TRÌNH PHÂN LO I TIN T C
Sau khi tìm hiểu về các công trình liên quan, chúng tôi rút ra đ ợc nhiều ph ơng pháp áp dụng vào từng b ớc c a quy trình phân lo i tin t c Nội dung ch ơng này trình bày cụ thể nền
t ng kiến th c, các cơ s lý thuyết sử dụng trong đ án theo từng b ớc c a quy trình phân lo i tin t c
4.1 TI N X LÝ D LI U
Nh đư nói trên, văn b n là ngôn ngữ phi cấu trúc, để máy có thể hiểu đ ợc và tiến hành phân lo i tự động, ta c n chuyển chúng về d ng thích hợp, d ng ngôn ngữ có cấu trúc Giai
đo n tiền xử lý dữ liệu này là b ớc đệm để việc chuyển đổi văn b n hay véc-tơ hóa văn b n
b ớc sau đ ợc tiến hành thuận lợi và có hiệu suất cao nhất cho quá trình phân lo i sau này Các việc chính trong giai đo n này là: Tách từ và lo i bỏ stop word
Tiếng Việt là lo i hình ngôn ngữ đơn lập Nghĩa là mỗi tiếng đ ợc phát âm tách r i nhau và
đ ợc thể hiện bằng một chữ viết Mỗi từ có thể đ ợc cấu thành b i một hoặc nhiều tiếng
Tiếng, về hình th c, nó trùng với một đo n phát âm tự nhiên gọi là âm tiết Về nội dung nó là đơn vị nhỏ nhất có nội dung đ ợc thể hiện Về ý nghĩa, có những tiếng tự thân nó đư mang
một ý nghĩa, ph n ánh một đ i t ợng hoặc khái niệm, ví dụ: cây, tr i, cỏ, lá, ăn, nói, c iầ
Có những tiếng không ph n ánh hay thể hiện một ngữ nghĩa hay đ i t ợng nào c Nh ng b n thân sự có mặt c a nó trong từ có thể t o nên một sự khác biệt lớn Nghĩa là nó kết hợp với
một hay nhiều tiếng khác có nghĩa để t o nên từ (ví dụ: tiếng “sá” trong từ “đ ng sá”, “e” trong từ “e lệ”, “khúc” trong từ “khúc mắc”ầ) hoặc kết hợp với tiếng khác nh ng cũng không có nghĩa và t o nên từ có nghĩa, tr ng hợp này th ng ít gặp, đa s là các từ vay
m ợn n ớc ngoài (ví dụ: cát-sét, ti-vi, phẹt-mơ-tuyaầ)
Từ trong tiếng Việt đ ợc cấu thành b i một hay nhiều tiếng tổ hợp l i Có hai lo i từ chính là
từ đơn và từ ghép Từ đơn là những từ đ ợc cấu thành bằng một tiếng, ví dụ: đi, ch y, c i, đùa, vui, bu n, tôi, b nầTừ ghép là từ đ ợc cấu thành từ hai hay nhiều tiếng, mà những tiếng
đó có quan hệ ngữ nghĩa với nhau, ví dụ: chợ búa, bếp núc, cơ quan, tr ng học, cây c nh, hợp tác xưầ
Từ là đơn vị cấu thành nên câu trong tiếng Việt, ch không ph i từ “tiếng” cho nên việc tách
từ trong giai đo n tiền xử lý dữ liệu sẽ cho hiệu qu phân lo i cao hơn so với việc “tách tiếng” Tuy nhiên, khác với tiếng Anh “từ là nhóm kí tự có nghĩa được tách biệt với nhau bởi khoảng
tr ắng trong câu” (Webster Dictionary), do đó tách từ tiếng Anh là công việc rất đơn gi n
Còn từ tiếng Việt nh đặc điểm đư đ ợc nêu trên không đ ợc mặc định là đ ợc tách với nhau
b i kho ng trắng Ví dụ: school, student, market là những từ tiếng Anh với các từ tiếng Việt
t ơng đ ơng là tr ng học, học sinh, chợ Nếu tiến hành tách từ tiếng Việt theo kho ng trắng
sẽ không giữ đ ợc ngữ nghĩa c a từ, việc này cũng t ơng đ ơng với việc tách tiếng Cho nên
việc tách từ trong tiếng Việt là một công việc khó khăn đ y thú vị
Trang 224.1.2 NH P NH NG TRONG TÁCH T TI NG VI T
Nếu chúng ta tiến hành tách từ th công, thì việc nhập nhằng rất khó x y ra Do ta đư hiểu
đ ợc ngữ nghĩa c a câu và tách từ dựa trên ngữ nghĩa c a từ trong câu Tuy nhiên việc tách từ bằng tay là điều không thể thực hiện đ ợc với tập dữ liệu khổng l trên Internet Mà máy tính thì không thể hiểu hết ngữ nghĩa c a câu, nên việc nhập nhằng x y ra là tất yếu
Nhập nhằng trong tách từ tiếng Việt có thể chia làm hai lo i:
Nh ập nhằng chồng chéo: chuỗi “a b c” bị nhập nhằng ch ng chéo khi mà c “a b” và “b c”
đều xuất hiện trong từ điển Ví dụ: “Máy bay l ợn ba vòng trên không tr ớc khi đáp xu ng.” Trong chuỗi “máy bay l ợn” thì “máy bay” và “ bay l ợn” đều có trong từ điển
Nh ập nhằng kết hợp: chuỗi “a b c” bị nhập nhằng kết hợp khi mà c “a”,”b”,”a b” đều xuất
hiện trong từ điển Ví dụ: “Đàn gà mới n hôm qua chết mất hai con.” Các từ ”đàn”, “gà”,
“đàn gà” đều có nghĩa trong từ điển
Ngoài vấn đề nhập nhằng, khi tách từ tiếng Việt còn gặp các khó khăn trong việc xác định các
từ ch a biết tr ớc (đ i với máy tính) nh danh từ riêng, từ vay m ợn n ớc ngoài, từ chỉ s , các câu thành ngữ, từ láyầ
M c độ gi i quyết t t hai vấn đề trên sẽ quyết định hiệu suất c a một ph ơng pháp tách từ và quyết định nó có t t hay không
Một s n ớc châu Á có ngôn ngữ với cấu trúc, hình thái g n t ơng đ ng với ngôn ngữ Tiếng
Việt nh tiếng Nhật, tiếng Trung, tiếng Hàn đư xây dựng thành công nhiều ph ơng pháp tách
từ với kết qu khá t t Những ph ơng pháp đó có thể áp dụng vào trong việc tách từ tiếng
Việt Trong luận văn này chúng tôi chỉ trình bày những ph ơng pháp tách từ đư đ ợc áp dụng vào tiếng Việt
a) PHƯƠNG PHÁP MAXIMUM MATCHING
Ph ơng pháp khớp t i đa (maximum matching) hay còn gọi là Left Right Maximum Matching Trong ph ơng pháp này, chúng ta sẽ duyệt một câu từ trái qua ph i, sau đó chọn từ
có nhiều âm tiết nhất trong câu mà có mặt trong từ điển, r i tiếp tục với các từ còn l i trong câu đến khi hết câu và hết văn b n Thuật toán này có hai d ng
D ng đơn gi n: Gi sử chúng ta có một câu S = {l1, l2, l3ầ, lm} với l1, l2, l3ầ, lm là các âm tiết đơn đ ợc tách nhau b i kho ng trắng trong câu Chúng ta sẽ bắt đ u duyệt từ đ u chuỗi Xét xem l1 có ph i là từ có trong từ điển không, sau đó tới l1-l2, l1-l2-l3ầ, l1-l2-l3ầ-ln với n là
s âm tiết lớn nhất c a một từ có thể có nghĩa (có trong từ điển tiếng Việt) thông th ng sẽ là
4 hoặc 5 đ i với tiếng Việt Sau đó chúng ta chọn từ có nhiều âm tiết nhất mà có trong từ điển
và đánh dấu từ đó, r i tiếp tục quy trình trên với ph n còn l i c a câu và toàn bộ văn b n
D ng này khá đơn gi n nh ng nó sẽ gặp ph i nhiều nhặp nhằng trong tiếng Việt
D ng ph c t p: d ng này cũng thực hiện quy trình gi ng nh d ng đơn gi n Tuy nhiên, d ng này có thể tránh đ ợc một s nhập nhằng gặp ph i trong d ng đơn gi n Gi sử khi duyệt câu
và chúng ta có l1 và l1-l2 đều là từ có trong từ điển thì thuật toán sử dụng chiến thuật 3 từ t t
Trang 23u điểm c a ph ơng pháp này có thể thấy rõ là đơn gi n, dễ hiểu, ch y nhanh và chỉ c n dựa vào từ điển để thực hiện Tuy nhiên nh ợc điểm c a nó cũng chính là từ điển Nghĩa là độ chính xác khi thực hiện tách từ phụ thuộc hoàn toàn vào tính đ , tính chính xác c a từ điển
Và cũng vì sử dụng từ điển mà thuật toán này gặp ph i rất nhiều nhập nhằng cũng nh không
có chiến l ợc gì với các từ ch a biết (các từ không có trong từ điển)
b) PHƯƠNG PHÁP TRANSFORMATION-BASED LEARNING (TBL)
Ph ơng pháp TBL (Transformation-Based learning) còn gọi là ph ơng pháp học c i tiến,
đ ợc Eric Brill giới thiệu l n đ u vào năm 1995 [10] Ý t ng c a ph ơng pháp này là tiếp
cận dựa trên tập đư đánh dấu Nghĩa là chúng ta sẽ huấn luyện cho máy tính biết cách nhận
diện ranh giới giữa các từ trong tiếng Việt từ đó có thể tách từ đ ợc chính xác Để thực hiện điều đó chúng ta sẽ cho mấy học các câu mẫu trong tập ngữ liệu đư đ ợc đánh dấu, tách từ đúng Sau khi học xong máy sẽ xác định đ ợc các tham s (bộ luật) c n thiết cho mô hình nhận diện từ
Ph ơng pháp TBL có nh ợc điểm là t n rất nhiều th i gian để cho máy học và không gian
nhớ do trong quá trình học máy sẽ sinh ra các bộ luật trung gian Ngoài ra việc xây dựng một
bộ luật đ y đ để phân đo n từ là công việc hết s c khó khăn do bộ luật đ ợc máy học t o nên dựa trên tập ngữ liệu đư đ ợc đánh dấu Cho nên sẽ có khá nhiều nhập nhằng trong việc
x y ra Tuy nhiên sau khi sinh ra đ ợc bộ luật thì TBL tiến hành phân đo n khá nhanh Hơn nữa, ý t ng c a ph ơng pháp này là rút ra quy luật ngôn ngữ từ những mẫu sẵn có và “sửa sai” liên tục trong quá trình học là phù hợp với bài toán xử lý ngôn ngữ tự nhiên
c) PHƯƠNG PHÁP WEIGHTED FINITE-STATE TRANSDUCER (WFST)
Ph ơng pháp WFST (Weighted Finite-State Transducer) còn gọi là ph ơng pháp chuyển dịch
tr ng thái hữu h n có trọng s Ý t ng c a ph ơng pháp này vào phân đo n tiếng Việt là các
từ sẽ đ ợc gán trọng s bằng xác suất xuất hiện c a từ đó trong ngữ liệu Dùng WFST duyệt qua câu c n xét, cách duyệt có trọng s bé nhất sẽ đ ợc chọn là cách tách từ Ho t động c a WFST có thể chia thành 3 b ớc nh sau
Trang 24Xây dựng từ điển có trọng s : theo mô hình WFST việc phân đo n từ đ ợc xem nh là một sự chuyển dịch tr ng thái có xác suất Chúng ta miêu t từ điển D là một đ thị biến đổi tr ng thái hữu h n có trọng s Gi sử:
o H là tập các âm tiết c a tiếng Việt (các tiếng)
o P là tập các từ lo i c a Tiếng Việt
o Mỗi cung D có thể là:
Từ một ph n tử H đến một ph n tử c a H
Từ ph n tử ε (xâu rỗng) đến một ph n tử c a P
Mỗi từ trong D sẽ đ ợc biểu diễn b i một chuỗi các cung, bắt đ u bằng một cung t ơng ng
với một ph n tử c a H Và kết thúc bằng một cung có trọng s t ơng ng với một ph n tử c a
ε x P Trọng s biểu diễn chi phí ớc l ợng (estimated cost) đ ợc cho bằng công th c:
( ) f: tần số xuất hiện của từ N: kí h hước tập mẫu Xây dựng các kh năng phân đo n từ: b ớc này th ng kê tất c kh năng phân đo n c a một câu Gi sử câu có n tiếng, sẽ có 2n-1cách phân đo n khác nhau Để gi m sự bùng nổ c a các cách phân đo n, thuật toán sẽ lo i bỏ ngay những nhánh phân đo n c a những từ không xuất hiện trong từ điển
Lựa chọn kh năng phân đo n t i u: sau khi liệt kê tất c các kh năng phân đo n từ, thuật toán sẽ chọn cách phân đo n t t nhất, đó là cách phân đo n có trọng s bé nhất
Ví dụ: Input = “ t c độ truyền thông tin sẽ tăng cao” (theo [9]) Trong từ điển trọng s chúng
Ta sẽ có các cách phân đo n câu trên nh sau:
ID 1 = “ t c độ # truyền thông # tin # sẽ # tăng # cao “ = 8.68 + 12.31 + 7.33 + 6.09 + 7.43 +6.95 = 48.79
ID 2 = “ t c độ # truyền # thông tin # sẽ # tăng # cao “ = 8.68 + 12.31 + 7.24 + 6.09 + 7.43 + 6.95 = 48.7
Do ID 2 nhỏ hơn ID 1 nên ID 2 là lựa chọn t t hơn ID 1
u điểm c a ph ơng pháp này là cho độ chính xác khá cao, ngoài ra mô hình còn cho kết qu tách từ với độ tin cậy kèm theo (trọng s và xác suất) Tuy nhiên cũng nh ph ơng pháp TBL,
để xây dựng tập ngữ liệu có xác suất là vô cùng công phu và t n chi phí
Trang 2515
Stop word hay còn gọi là từ dừng là những từ xuất hiện nhiều trong tất c các văn b n thuộc mọi thể lo i trong tập dữ liệu, hay những từ chỉ xuất hiện trong một và một vài văn b n Nghĩa là stop word là những từ xuất hiện quá nhiều l n và quá ít l n Chúng không có ý nghĩa
và không ch a thông tin đáng giá để chúng ta sử dụng Ví dụ nh các từ: thì, là, mà, và, hoặc,
b iầ
Trong việc phân lo i văn b n thì sự xuất hiện c a những từ đó không những không giúp gì trong việc đánh giá phân lo i mà còn nhiễn và gi m độ chính xác c a quá trình phân lo i Trong luận văn này chúng tôi tiến hành tách stop word dựa trên t n suất xuất hiện c a từ, và
kết qu phân lo i sau khi lo i bỏ stop word hiệu qu hơn nhiều so với không thực hiện (sẽ
đ ợc trình bày cụ thể trong ch ơng 5)
4.2 CHUY N Đ I TIN T C T D NG NGÔN NG T NHIÊN SANG MÔ
Theo mô hình này, mỗi tin t c sẽ đ ợc biểu diễn thành một véc-tơ Mỗi thành ph n c a véc-tơ
là một từ riêng biệt trong tập tin t c g c và đ ợc gán một giá trị là trọng s c a từ đó trong tin
t c đó Do s l ợng từ trong tập tin t c là rất nhiều, từ đó khi biểu diễn véc-tơ sẽ dẫn đến một
vấn đề đó là tính nhiều chiều c a véc-tơ Để gi i quyết vấn đề này, chúng tôi chỉ đ a ra
ph ơng pháp lo i bỏ stop word để gi m bớt các từ không c n thiết, rút ngắn chiều c a véc-tơ
và nâng cao hiệu suất phân lo i tin t c
Từ tập tin t c g c ban đ u đư đ ợc phân ch đề, sau khi tiến hành tách từ và lo i bỏ stop word chúng tôi tiến hành xây dựng tập từ khóa dựa trên các từ riêng biệt còn l i Gi sử chúng ta có
một tập tin t c g m m tin t c, và ta có tập từ khóa g m n từ Gọi là ma trận trọng s , trong đó là giá trị trọng s c a
từ titrong văn b n dj Sau đây chúng tôi sẽ trình bày hai ph ơng pháp xây dựng véc-tơ từ một tin t c dựa trên tập từ khóa đó
Đây là mô hình biểu diễn véc-tơ với cách tính trọng s c a mỗi thành ph n véc-tơ cho ra hai giá trị duy nhất là 0 và 1 Nếu trong tin t c đó xuất hiện từ ti thì giá trị trọng s c a từ đó trong véc-tơ đ i diện sẽ là 1 và ng ợc l i là 0 Ta có thể biểu diễn nó thành công th c nh sau:
{
Tf – Idf (Term Frequency – Inverse Document Frequeny) là một độ đo, cũng có thể xem nh
là một gi i thuật để xác định th h ng về một tiêu chí nào đó c a từ (cụm từ) Gi i thuật này
Trang 26cùng với mô hình không gian véc-tơ đ ợc sử dụng phổ biến rộng rãi trong nhiều lĩnh vực:
Search engine, text miningầ
Nguyên lý cơ b n c a gi i thuật này là độ quan trọng c a một từ sẽ tỉ lệ thuận với s l n xuất hiện c a nó trong một tin t c và tỉ lệ nghịch với s l n xuất hiện c a nó trong các tin khác trong tập dữ liệu Tùy mục đích sử dụng mà có nhiều công th c tính Tf-Idf, trong luận văn này, chúng tôi chỉ trình bày và sử dụng công th c phổ biến nhất
Ngoài công th c trên còn có một công th c đơn gi n khác để tính tf đó là công th c t n s tăng c ng:
:
Tử s là t n suất xuất hiện c a từ t trong văn b n d Mẫu s là t n suất xuất hiện c a từ xuất hiện nhiều nhất trong văn b n d Để cho đơn gi n, trong luận văn này chúng tôi sử dụng công
th c đ u
Độ đo tf chỉ là tính độ quan trọng c a từ m c độ cục bộ một tập tin Ch a thế hiện đ ợc
m c độ quan trọng c a từ đó trong toàn bộ tập tin, do có nhiều stop word xuất hiện rất nhiều
l n trong bất kì tập tin nào, vì thế chúng ta tiến hành tính idf để h n chế m c độ quan trọng
c a những từ đó
b) IDF (INVERSE DOCUMENT FREQUENY)
Độ đo Idf là t n s nghịch c a 1 từ trong tập tin Nó thể hiện m c độ quan trọng c a một từ
m c độ toàn cục Tính idf để gi m giá trị c a những từ phổ biến
( : ) Trong đó D là s l ơng tập tin có trong tập dữ liệu và d là s l ợng tập tin có trong tập dữ liệu
mà nó ch a từ t
Trong tr ng hợp nếu t không xuất hiện trong bất kì văn b n d nào c a tập D Thì mẫu s
bằng 0, phép chia không hợp lệ, vì thế ng i ta th ng thay mẫu th c bằng 1+ (d D: t d)
việc này không làm nh h ng nhiều đến kết qu tính toán
Chúng ta có thể nhận thấy rằng nếu một từ xuất hiện càng nhiều trong các tập tin c a tập dữ liệu thì giá trị idf c a nó càng nhỏ và ng ợc l i Nghĩa là từ có IDF nhỏ có thể là từ quan trọng,
Trang 27Từ có độ đo TF-IDF càng lớn thì nó càng đáng giá và nh h ng càng nhiều đến việc phân
lo i tin t c Trong TF-IDF véc-tơ, nếu một từ ti xuất hiện trong văn b n dj thì trọng s c a từ
đó trong véc-tơ đ i diện sẽ là giá trị TF-IDF(ti, dj), ng ợc l i là 0 Ta có thể biểu diễn nó thành công th c nh sau:
{
Sự t ơng đ ng là đ i l ợng ph n ánh c ng độ m i quan hệ giữa hai đ i l ợng hay hai đặc
tr ng Trong không gian véc-tơ, mỗi tin t c đ ợc biểu diễn thành một véc-tơ Vì thế để tính
độ t ơng đ ng giữa các tin t c ta đi tính độ t ơng đ ng c a 2 véc-tơ đ ợc chu n hóa từ hai
tập tin đó
Phát biểu bài toán tính độ t ơng đ ng nh sau: Xét 2 văn b n di và dj Tính độ t ơng đ ng
giữa hai văn b n đó là tìm ra một giá trị c a hàm S(di, dj) Hàm S(di, dj) đ ợc gọi là độ t ơng
đ ng giữa hai văn b n di và dj Trên thực tế rất khó để tính đ ợc độ t ơng đ ng có độ chính xác cao vì ngữ nghĩa chỉ có thể đ ợc hiểu đ y đ trong một ngữ c nh cụ thể Trong luận văn này chúng tôi trình bày hai p ơng pháp đo độ t ơng đ ng giữa các véc-tơ là Cosin và Euclid
Gi sử ta đi ta có hai véc-tơ c n tính độ t ơng đ ng v1 và v2
Giá trị sim có giá trị là -1 nghĩa là hai véc-tơ hoàn toàn khác nhau và càng g n về một thì độ
t ơng đ ng giữa hai véc-tơ càng cao
Tính theo độ đo Euclid
√
Trang 28Hình 4.1 Ví d ụ siêu phẳng với lề cực đại trong không gian hai chiều[6]
Giá trị sim theo độ đo Euclid có giá trị từ 0 đến 1 Khi giá trị sim càng nhỏ thì hai véc-tơ có
độ t ơng đ ng càng cao Độ đo Euclid đánh giá độ t ơng đ ng giữa hai véc-tơ bằng việc sử dụng kho ng cách giữa hai véc-tơ Điều đó dẫn đến một nh ợc điểm đó là khi mà độ dài các véc-tơ quá lớn thì độ lệch giữa các véc-tơ có thể bị sai dẫn đến việc tính toán độ t ơng đ ng không chính xác
4.3 CÁC PH NG PHÁP PHỂN LO I VĂN B N B NG H C MÁY
Máy học véc-tơ hỗ trợ (SVM) là một gi i thuật học máy đ ợc xây dựng dựa trên lý thuyết học
th ng kê do Vapnik và Chervonenkis xây dựng [3] Có nhiều tiềm năng phát triển về mặt lý thuyết cũng nh ng dụng trong thực tiễn
Ý t ng c a ph ơng pháp này là cho tr ớc một tập huấn luyện đ ợc biểu diễn trong không gian véc-tơ, trong đó mỗi văn b n đ ợc xem nh là một điểm trong không gian này Ph ơng pháp này tìm ra một mặt siêu phẳng h 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, t m gọi là lớp + (d ơng) và lớp – (âm) Nh vậy,
bộ phân lo i SVM là một mặt siêu phẳng tách các mẫu thuộc lớp d ơng ra khỏi cách mẫu thuộc lớp âm với độ chênh lệch lớn nhất Độ chênh lệch này hay còn gọi là kho ng cách biên
đ ợc xác định bằng kho ng cách giữa mẫu d ơng và mẫu âm g n mặt siêu phẳng nhất (hình) Kho ng cách này càng lớn các mẫu thuộc hai lớp càng đ ợc phân chia rõ ràng, nghĩa là sẽ đ t
đ ợc kết qu phân lo i t t Mục tiêu c a thuật toán SVM là tìm đ ợc kho ng cách biên lớn
nhất để t o đ ợc kết qu phân lo i t t
Ph ơng trình mặt siêu phẳng ch a véc-tơ x trong không gian đ i t ợng nh sau:
Trong đó w là véc-tơ trọng s , b là độ dịch H ớng và kho ng cách từ g c tọa độ đến mặt siêu
phẳng thay đổi khi thay đổi w và b Bộ phân lo i SVM đ ợc định nghĩa nh sau:
Trang 29
ớ ẫ ư
ớ ẫ
Cĩ thể gộp l i thành:
ớ Khi đĩ để tìm mặt siêu phẳng h ta sẽ gi i bài tốn tìm Min||w|| với w và b thỏa điều kiện sau:
:
Nạve Bayes đư đ ợc nghiên c u rộng rãi từ những năm 1950 Đ ợc dùng l n đ u tiên trong lĩnh vực phân lo i vào đ u những năm 1960 Sau đĩ nĩ tr nên phổ biến và đ ợc sử dụng rộng rưi trong lĩnh vực này cho đến ngày nay
Ý t ng cơ b n c a cách tiếp cận này là sử dụng xác suất cĩ điều kiện giữa từ hoặc cụm từ và
ch đề để dự đốn xác suất ch đề c a một tập tin c n phân lo i Điểm quan trọng c a ph ơng pháp này chính là chỗ gi định rằng sự xuất hiện c a tất c các từ trong tập tin đều độc lập với nhau Ví dụ một lo i trái cây cĩ thể đ ợc cho là qu táo nếu nĩ đỏ, trịn và đ ng kính là 10cm Gi i thuật Nạve Bayes sẽ cho rằng mỗi tính năng này đều đĩng gĩp một cách độc lập
để xác suất trái cây này là qu táo bất kể sự hiện diện hay vắng mặt c a các tính năng khác Thuật tốn Nạve Bayes dựa trên định lý Bayes đ ợc phát biểu nh sau
| | Trong đĩ:
P(Y|X) là xác suất X thuộc lớp Y
Trang 30P(X|Y) xác suất một ph n tử thuộc lớp Y, và ph n từ đĩ cĩ đặc điểm X
P(Y) xác suất x y ra lớp Y, m c độ th ng xuyên lớp Y xuất hiện trong tập dữ liệu
P(X) xác suất x y ra X
Ví dụ: Gi sử ta cĩ hai lớp Y1 = Nam, Y2 = nữ Và một ng i khơng biết giới tính là Ph ơng,
X = Ph ơng Việc xác định Ph ơng là Nam hay Nữ t ơng đ ơng với việc so sánh xác suất P(Nam/Ph ơng) và P(Nữ/Ph ơng) Theo thuật tốn Nạve Bayes ta cĩ cơng th c nh sau:
| ư ư | ư Trong đĩ: P(Nam|Ph ơng): Xác suất Ph ơng là Nam
P (Ph ơng|Nam): xác suất những ng i phái nam đ ợc gọi Ph ơng (cĩ tên Ph ơng)
P(Nam): xác suất phái nam trong tập dữ liệu
P(Ph ơng): xác suất tên Ph ơng trong tập dữ liệu
Nh vậy Ph ơng là Nữ cĩ xác suất cao hơn nên Ph ơng đ ợc phân vào lớp nữ khi phân lo i
Áp dụng vào bài tốn phân lo i tin t c:
Tập dữ liệu đư đ ợc véc-tơ hĩa D = (d1, d2, ầdn)
Trang 31Với | xác suất thuộc tính th k mang giá trị xk khi đư biết X thuộc phân lớp i
u điểm c a gi i thuật này đó là việc gi định rằng sự xuất hiện c a tất c các từ trong tập tin đều độc lập với nhau làm cho việc tính toán Naive Bayes hiệu qu và nhanh chóng vì không
sử dụng việc kết hợp các từ để đ a ra phán đoán ch đề Một lợi thế nữa c a Naive Bayes là
nó chỉ đòi hỏi một l ợng nhỏ dữ liệu huấn luyện để ớc l ợng các tham s c n thiết để phân
lo i B i vì các biến đ ợc gi định độc lập với nhau, nên chỉ có các ph ơng sai c a các biến cho mỗi lớp c n ph i đ ợc xác định và không ph i là toàn bộ ma trận hiệp ph ơng sai Tuy nhiên nh ợc điểm c a ph ơng pháp này cũng chính là gi định đó, vì nó rất khó x y ra trong thực tế
REGRESSION TREES)
Học máy cây quyết định là sử dụng mô hình cây quyết định để dự đoán kết qu về giá trị mục tiêu c a một sự vật, hiện t ợng Nghĩa là ánh x từ các quan sát c a một sự vật, hiện t ợng đến các kết luận về giá trị mục tiêu c a sự vật, hiện t ợng Cây quyết định là một trong những cách tiếp cận đ ợc sử dụng rộng rãi trong th ng kê, khai phá dữ liệu và học máy Nó là một trong những kĩ thuật thành công nhất trong việc học máy phân lo i Trong mô hình cây phân
lo i, các nút lá là các phân lớp, các nhánh là các liên từ, tính năng dẫn đến các lớp đó
Ví dụ: cây quyết định phân lớp m c l ơng
Trang 32Có nhiều thuật toán xây dựng cây quyết định nh CLS, ID3, C4.5,CARTầ nh ng nhìn chung quá trình xây dựng cây quyết định đều đ ợc chia thành ba giai đo n cơ b n:
Xây dựng cây: thực hiện chia một cách đệ quy tập mẫu dữ liệu huấn luyện cho đến khi các mẫu mỗi nút lá thuộc cùng một lớp
Cắt tỉa cây: nhằm t i u hóa cây Công việc chính là trộn một cây con vào trong một nút lá Đánh giá cây: đánh giá độ chính xác c a cây kết qu Tiêu chí đánh giá là ph n trăm s mẫu phân lớp đúng trên tổng s mẫu đ a vào
Việc chọn thuật toán nào để có hiệu qu phân lớp cao tuy thuộc vào rất nhiều yếu t , trong đó cấu trúc dữ liệu nh h ng rất lớn đến kết qu c a các thuật toán Chẳng h n nh thuật toán ID3 và CART cho hiệu qu phân lớp rất cao đ i với các tr ng dữ liệu s (quantitative value) trong khi đó các thuật toán nh J48, C4.5 có hiệu qu hơn đ i với các dữ liệu Qualititive value (ordinal, binary, nominal) Trong ph n này chúng ta chỉ đi vào tìm hiểu gi i thuật CART (Classification and Regression Tree)
Gi i thuật CART [11] chấp nhận sự tham lam (nonbacktracking) cách tiếp cận cây quyết định
đ ợc xây dựng từ trên xu ng một cách đệ quy, bắt đ u với một bộ dữ liệu huấn luyện tập và các nhãn lớp c a họ H u hết gi i thuật cây quyết định đều theo cách tiếp cận từ trên xu ng
Tập dữ liệu huấn luyện đ ợc phân vùng một cách đệ quy thành tập hợp con nhỏ hơn trong lúc cây đ ợc xây dựng
Algorithm 1: Simple CART (Classification and Regression Trees)
Generate_decision_ tree Generate a decision tree from the huấn luyệning tuples of data partition D
Input:
Data partition, D, which is a set of huấn luyệning tuples and their associated class lable; attribute list, the set of candidate attributes;
Attribute selection method, a procedure to determine the splitting criterion that “best”
par-titions the data tuples into individual classes This criterion consists of a slitting attribute and, possibly, either a split point or splitting subset
Output: A decision tree
Method:
(1) create a note N;
(2) if tuple in D are all of the same class, C then
(3) return N as a leaf node labeled with the class C;
(4) if attribute list is empty then
(5) return N as a leaf node labeled with the majority class in D; // majority voting
(6) apply Attribute selection method (D, attribute list) to find the “best” splitting criterion; (7) lable node N with splitting criterion;
(8) if splitting attribute is discrete-valued and multiway splits allowed then // not restricted to binary trees
(9) attribute_list <- attribute - splitting attribute; // remove splitting attribute
(10) for each outcome j of splitting criterion //partition the tuples and grow subtrees for each
Trang 3323
partition
(11) let Dj be the set of data tuples in D satisfying outcome j;// a partition
(12) if Dj is empty then
(13) attach a leaf labeled with the majority class in D to node N;
(14) else attach the node returned by Generate decision tree( Dj, attribute list) to node N; endfor
(15) return N;
Đ i với các ph ơng pháp phân lo i khác, cây quyết định t ơng đ i dễ hiểu, đòi hỏi m c tiền
xử lý dữ liệu đơn gi n Tuy nhiên hiệu qu phân lớp c a cây quyết định, phụ thuộc rất nhiều vào huấn luyệning data
K- Nearest Neighbor hay còn gọi là K láng giềng g n nhất là ph ơng pháp phân lo i dựa trên
h ớng tiếp cận th ng kê Nó là một trong những ph ơng pháp t t nhất từ th i kì đ u c a phân
lo i văn b n
Ý t ng c a ph ơng pháp này là khi c n phân lo i một văn b n mới, thuật toán sẽ tính toán kho ng cách c a tất c các văn b n trong tập huấn luyện đến văn b n này để tìm ra tập K láng giềng g n nhất Sau đó dùng kho ng cách này đánh trọng s cho tất c các ch đề Khi đó
trọng s c a một ch đề chính là tổng kho ng cách tất c các văn b n nằm trong tập K láng
giềng có cùng ch đề Những ch đề mà không xuất hiện bất kì văn b n nào trong tập K láng
giềng thì có trọng s bằng 0 Sau đó các ch đề sẽ đ ợc sắp xếp theo giá trị trọng s gi m n,
ch đề có trọng s cao sẽ đ ợc chọn làm ch đề c a văn b n phân lo i
Để tính kho ng cách có thể áp dụng các công th c nh độ đo Cosin(4.8), độ đo Euclid (4.9), hay công th c Manhattan:
| | | | | |
Trong đó:
j = (xj1, xj2, , xjn) là véc-tơ đặc tr ng đ i diện cho văn b n th j trong tập huấn luyện
A = (Aj1, Aj2, , Ajn) là véc-tơ đặc tr ng c a văn b n mới c n phân lo i
Linear Least Square Fit là ph ơng pháp phân lo i dựa trên cách tiếp cận ánh x LLSF sử
dụng ph ơng pháp h i quy để học từ tập huấn luyện và các ch đề có sẵn Tập huấn luyện
đ ợc biểu diễn d ới d ng một cặp véc-tơ đ u vào và đ u ra nh sau:
Véc-tơ đ u vào một văn b n bao g m các từ và trọng s
Véc-tơ đ u ra g m các ch đề cùng với trọng s nhị phân c a văn b n ng với véc-tơ đ u vào
Gi i ph ơng trình các cặp véc-tơ đ u vào/ đ u ra, ta sẽ đ ợc ma trận đ ng hiện c a hệ s h i quy c a từ và ch đề (matrix of wordcategory regression coefficients) Ph ơng pháp này sử
dụng công th c: