Hơn nữa, bài toán phân loại văn bản không chỉ giúp giảm bớt thời gian xử lý dữ liệu thủ công mà còn tăng tính chính xác và hiệu quả trong công việc.. Nhiệm vụ của đề tài Tìm hiểu tổng q
Trang 1PHAN LOAI VAN BAN TIENG VIET
Giảng viên hướng dẫn: Vũ Hoài Nam
Nhóm lớp tín chỉ :O1 Nhóm bài tập lớn :26
Thành viên:
Nguyên Hoàng An B21DCCN134
HÀ NỘI - 2024
Trang 2
LOI CAM ON
Trước tiên, chúng em xin gửi lời cảm ơn chân thành và sâu sắc đến Thầy — người đã tận tâm, nhiệt huyết hướng dẫn chúng em và các bạn trong suốt quá trình học tập môn Nhập môn Khoa học Dữ liệu Môn học không chỉ trang bị cho chúng em những kiến thức nền tảng về lĩnh vực đây tiềm năng này mà còn mở ra cho chúng em góc nhìn mới mẻ, sâu sắc về cách đữ liệu có thế được khai thác và áp dụng để giải quyết các vấn đề trong thực tiền
Nhờ sự giảng dạy rõ ràng, dễ hiểu của Thay, chung em da hiểu được cách thức tổ chức, tiền xử lý dữ liệu và ứng dụng các công cụ hiện đại như Python, pandas, hay scikit-
learn Không chỉ vậy, những bài giảng của Thây luôn truyền tải sự hứng thú, khơi dậy
tinh than tim toi va sang tao trong mỗi bài tập hay dự án nhóm
Đặc biệt, chúng em trân trọng sự kiên nhẫn và sự hỗ trợ tận tình của Thay khi chung em gap kho khan trong việc áp dụng lý thuyết vào thực hành Thầy không chỉ giúp chúng
em vượt qua những trở ngại, mà còn giúp chúng em có thêm sự tự tin để phát triển kỹ
năng của mình trone lĩnh vực Khoa học Dữ liệu
Kết thúc môn học này, chúng em không chỉ nhận được kiến thức, mà còn học được từ
Thay thái độ làm việc khoa học, cân trong va tinh than cau tién Đây sẽ là hành trang
quý 214 ma chung em mang theo trong hanh trinh học tập và làm việc sau này
Một lần nữa, chúng em xin chân thành cảm ơn Thầy và kính chúc Thây thật nhiều sức
khỏe, niềm vui, và thành công trong sự nghiệp giảng dạy!
Trang 3DANH MUC CAC THUAT NGU, CHU VIET TAT
Từ viết tắt Tiếng Anh Nghĩa tiếng Việt
AI Artificial Intelligence Tri tué nhan tao
NLP Natural Language Xu ly ngôn ngữ tự nhiên
Processing
ML Machine Learning Học máy, sử dụng thuật toán dé hoc tir
đữ liệu và đưa ra dự đoán
TF-IDF Term Frequency-Inverse Phương pháp đánh 914 murc độ quan
Document Frequency trọng của tử trong tài liệu
BoW Bag of Words Tui tir, biéu diễn van ban bang cach
đếm số lần xuất hiện từ trong tài liệu
MLP Multilayer Perceptron Mạng nơ-ron đa tâng, mô hình học
sâu với một hoặc nhiều lớp an
ReLU Rectified Linear Unit Hàm kích hoạt phi tuyến thường dùng
trong mang no-ron
PCA Principal Component Phan tich thanh phan chinh, giam
Analysis chiều dữ liệu bằng cách tìm trục
chính
t-SNE t-Distributed Stochastic Nhung hang xom phan tán, trực quan
Neighbor Embedding hóa dữ liệu trong không gian thấp
hơn
BERT Bidirectional Encoder Mô hình ngôn ngữ học sâu tiên tiền,
Representations from hiểu ngữ cảnh từ cả hai chiều
Transformers RoBERTa A Robustly Optimized Biến thể tối ưu hóa mạnh mẽ hơn của
BERT Pretraining Approach | mé hinh BERT
SMOTE Synthetic Minority Kỹ thuật cân bằng dữ liệu bang cach
Oversampling Technique tạo thêm đữ liệu lớp thiểu số
HTML Language HyperText Markup Ng6n ngit ding dé tao va dinh dang cac trang web
II
Trang 4
URL Uniform Resource Locator Duong dẫn hoặc liên kết đến tài
nguyên trên Internet
CSV Comma-Separated Values Dinh dang tệp văn bản lưu trữ đữ liệu
dạng bảng, ngăn cách bằng dấu phẩy NFD/NFC/ Normalization Forms of Cac dang chuẩn hóa Unicode dam bảo
Trang 5DANH MUC HINH ANH
Hinh 1.1: Report on text classIfÍCafIOH ác c2 291211211 1111111 111111111111 110111 11 me 4
Hình 1.2: Giới thiệu tiền xử lý trong xử lý ngôn ngữ tự nhiên 525222 c2 5 Hình 1.3:Quy trình thực hiện bài toán phân loại văn bản 5 2c 2 222cc 6 Hình 2.1: Thiết lập mô trường và import thư viện s52 s22 1511111121111 ,txe §
Hinh 3.1: Import data ec 10
Hinh 3.2: In ra m6t 86 mu det LSU ccccccccececscscscsccccecececscscsesvevsvevevsssssevsvevevevevecseees 10
Hình 3.3: Kích thước và kiểu đữ liệu -.55: 22222 22221222211122211122211 211 rtre 11
Hình 3.4: Kiểm tra dữ liệu gay tring Map cccccccceceeceeessesseseesesesesstssessessesesecees: ll
Hình 3.5: Kiểm tra dữ liệu thiếu 225::222+222211221112221112211121111 11 re 12
Hình 3.6: Hàm chuẩn hóa Unicodk 2 22 s x+22225222122121121122127121221122212 c2 12 Hình 3.7: Tiền xử lý đữ liệu hàng loạt +52 21t 2E 12211211 1112120 11212121 ru 12 Hinh 3.8: Đọc ra các lớp của dữ liệu - 2 222122211211 12111211111 1111121118128 18kg 13 Hình 3.9: Tạo pipeline xử lý đữ liệu tuần tỰ sa acc TS 1 T211 HH HH Ha 14 Hình 4.1: Ví dụ về đám mây từ 1S s11 E111 11 1E n1 1121112111112 g 15 Hinh 4.2: Tao dam may từ cho đữ liệu - 2L 20 2222112211121 1 1211112111181 1 1281k 16 Hình 4.3: Đám mây từ của đữ liệu đầu vảo - 5 c1 11111 121121211 11 gen l6 Hinh 4.4: Công thức tính ø1â trị DE - - c1 2011211211121 12111211 111111111111 11 2221111211 xe 17 Hinh 4.5: Công thức tính giá trị IIDE - - c1 2222211211121 1231 12 111811111181 11111511 11188 xay 18
lạì0: SJA60058i)i3ãi0)i090)0) 08 ẽa 18
Hinh 4.7: Vector hóa tệp dữ liệu -.- G0 1211211211121 111 12011221 1011111211112 11111881 k ky 18 Hình 4.8: Áp dụng Chỉ-square s5 + 2s E11 1121111111111 21 21 1122111 g re 19 Hình 4.9: Các phân lớp chia nhiễu giá trỊ - 2-2 s1 EE15E122121111212711121121 1x xe 20
lại: 0c c cao ii 0200/00) 0 e 23 Hinh 4.11: Sparse Matrix với ChIi-SqUAFe 2 2112012112 1111 1111 1111111111111 1 111 xe 23
Hinh 5.1: Xay dựng và đánh giá m6 hinh Naive Bayes on nhe 24 Hình 5.2: Confusion matrix của mô hình NaIve Bayes S2 S S22 25 Hình 5.3: Xây dựng và đánh giá mô hình Logistic Repression -c 52c 225352 26 Hình 5.4: Confsion matrix của mô hình LopIstic Repression - 5- 525cc 55s s52 26
Hinh 5.5: Xây dựng và đánh gia m6 hinh Neural Network (MLP Regression) 27
Hinh 5.6: Confusion matrix cua m6 hinh Neural Network (MLP Regression) 28
IV
Trang 6Kết quả dự đoán của mô hình Neural Network (Các nguồn dữ liệu khác) 34 Kết quả dự đoán của mô hình Neural Network (Các nguồn dữ liệu khác) 34
Trang 7MUC LUC
LỜI CẢM ƠN 2 2 221221222122112112211112121221221121212121212121 2e i DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮTT 22222E+2E£2E£2E2E2221.222.zce ii DANH MUC HINH ANH ccccccccsssessesssesssessesesesseeterseressectisetseteretiisseesasetiesevaenseeees iii MỤC LỤC - 52 212212212712 111211121 1121121212121 11tr 1
MG DAU Lo cocccccccccsesssesseessesesesseetsessressetinsaresstessessretersssistietareasssieraretsistittiesinsseseseeseetes 4
1 Lý do chọn đề tài TT ng ng HH HH HH HH HH rya 4
2 Nhiệm vụ của để tải 5 5221 221221121121121121121112112111121121212121122 re 5
3 NOI dung cia du a e 5 CHUONG I: TONG QUAN VE BAI TOAN PHAN LOAI VAN BAN CO BAN 6
1 Mô hinh khái quát cho bài toán phân lớp - 2 22 222121112211 1121 121511112112 xe 6
2 Quy trình tong quan hiện thực bài toán phân loai co ban cece 6
3 Quy trình thực hiện cụ thể bài toán phân loại văn bản 2c 22c cesS2 8
4 Xử lý văn bản và thư viện NLP - 2 2220112111211 1121 1112111521112 11 18111181 ra 8 CHƯƠNG II: THU THẬP DỮ LIỆU VÀ PHẦN TÍCH DỮ LIỆU - 2552 10
1 Tổng quan về đữ liệu - 5 1 221121111111 11 1121121 111121212120 21221 rrg 10
2 _ Thực hiện craw dữ liệu 0010201100111 11111111 SnTEnn n1 111151115115 xxx 10
b Phan tích HTML và lấy đữ liệu từ bài báo - 5-52 tt E12 212 2 tr cre 11
CHƯƠNG III: TIEN XU LY BUGC DAU, PHAN NHAN VA TAO PIPELINE XỬ
LY TONG THE DU LIEU oe cccccccccccccsseeccsesssesessessessnsssevsnssisevsstsssesesivstsesevsnsvensseciee 12
1 Tid xth ly Bue dau ccccccccccccsesececsecscsessesessesecsssssessesessissesivsnseseresevevees 12
a Tong quan vé tién xtr ly dt HQu oie ceccccccceccceeseeseeseescseeseseesseseesecsesseeeess 12
b Timport datan 12
c Kich thudc va kiéu dit Gu cecccsseceessessccsessesecsesesecssscseseessseseseeseses 13
Trang 8d Kiểm tra và chuẩn hoá 5á 1s 3912153115351 11115111215111211121111111181 1188 xre 13
2 Phân nhãn và tạo pipeline xử lý tổng thế đữ liệu 2-2 E2 E2 2222 zxe2 14
a Phân nhãn L2 122 22211211 1211221 1211111111111 111111011 1111111111111 1 11kg 14
b Tao pipeline xtr ly tông thế đữ liệu - 2 5s 222 1212127111212 6 15
CHƯƠNG IV : TRỰC QUAN HOÁ DỮ LIỆU ©22222222E12122122122121211222ee 17
1 Tổng quan về trực quan hoá đữ liệu +52 9S 1EE1E2121122111111 E111 xe 17
2 Giới thiệu về Word Clouds -: 2s+2222xt122211122211222211211.211 1e 17
a _ Tổng quan về word cÏ0udl s:- + s21 2182111511211111211121112121 21 xe 17
b Đánh giá kết quả 55c: 2 2221112211122 21 19
3 Giới thiệu về TF-IDE s: 22 2 22111221 1e 19
i51 19 S1) PO —- 20
d Ứng dụng của TF-IDE vào mô hình 2c 5s E2 1221155 111111E71E1 111g 20
e Ap dung gia tri Chi-Square (Chi2) và mức ý nghĩa p-value để chọn lọc đặc
¡i0 c cece ecnecneceeeseeceeeeceeeeceeecsaecssaeceseeesaeeceeecseaecssaeceeeeseaeaeeeneeeeeeeneeaeeees 21
f két qua va dah gia ccc cccccccccesesesseseeseesecseescesessessesscsresecsesensevseeseseses 22
CHƯƠNG V: TÌM HIẾU VÀ XÂY DỰNG MÔ HỈÌNH 22222222222 26
1 Tổng quan về mô hình xử lý ngôn ngữ tự nhiên -2 2 5c 1S SE222122222cxe2 26 Pin 0n c7: Sa 26 3 Mô hinh LogIstic ÑepressIon c0 121121112112 11201111 11111111511 1181111 xk 27
4 Mô hình Neural Network (MLP Regresslon) - c2 212211121 12211122 cey 28
5 Mô hình Neural Network (MLP Regression) kết hợp sử dụng kỹ thuật bagging 30 CHƯƠNG VI: THỬ NGHIỆM PHẦN LỚP VĂN BẢN -2cccccccrrrrree 33
1 Lựa chọn mô hình sử dụng -.- - - 2 2222011211221 122111211151 1111 1111111111111 1111112 kg 33
2 Thử nghiệm với một số bải báo từ nhiều nguồn khác nhau - 2-22 522 33
3 Thứ nghiệm với dữ liệu khác - - 2 0 2222221211221 1221 1111111111 1581 2111811 xe 34
E6 nh 37
Trang 9b Neural Network (MLP RegressIoN)) - c0 1211211211121 112111211211 chay 37
c Kết luận 2222020 0021211201121 2121 5115 HH HH are 37 KẾT LUẬN VÀ PHƯƠNG HƯỚNG PHÁTT TRIỂN -222s 1221271222111 52cEx te 38
1 Crawl Data LQQ Qn n1 TH HH ng k1 nnn ng 1111 n E111 211111112 1 22x12 38
2 Tiền xử lý đữ liệu c-Sn tt SE E11 1E1112111111221112121 111tr 38
3 Trực quan hóa đữ liệu - L2 2212211221121 1 121111112 1111101110112 11 2111111111 xk 38
4 Xây dựng và thử nghiệm mô hìỉnh - G2 222221221123 11 2311121111551 22x se, 38 Phương hướng phát triỂn S1 S1 11121271112112111111 0111122211212 121 1 1c 39
1 Cải thiện chất lượng và phân bô dữ liệu 2 S121 1 131151715212, xe 39
2 Nâng cấp tiền xử lý đữ liệu 2-52 s12 11211212111112212121 121121 ga 39 3 Nâng cao trực quan hóa đữ liệu 222 22212211221 1221 1251181115111 1 12k 39
4 Áp dụng các mô hình hiện đại hơn 2 c2 2212211221121 1 151131532152 22xcx 39 5 Đánh øg1á và cải thiện mô hỉnh 2 0 222222112212 221151 1151111111115 151 11118111 k2 39
7 Mở rộng phạm vi ứng dụng - c2 221121121112 11111811181 1111 1111111811112 k2 40 DANH MỤC TÀI LIỆU THAM KHẢO - 5c 2121 211211212711121111112 11121 va 41
Trang 10MỞ ĐẦU
1 Lý do chọn đề tài
Trong thời đại công nghệ 4.0, dữ liệu ngày cảng trở thành một trong những tài
nguyên quan trọng nhất, đóng vai trò then chốt trong việc định hình và phát triển xã hội Với sự phát triển nhanh chóng của trí tuệ nhân tạo (AI) và hoc may (Machine Learning), nhu cau khai thac va xử lý dữ liệu để mang lại giá trị thực tiễn đã trở nên cấp thiết hơn bao giờ hết Trong số đó, xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP)
là một lĩnh vực đặc biệt quan trọng, giúp máy tính hiểu và tương tác với ngôn ngữ con
người Ngôn ngữ tiếng Việt, với sự phức tạp về cấu trúc và ngữ nghĩa, là một thách thức
lớn nhưng đồng thời cũng mở ra nhiều cơ hội nghiên cứu vả ứng dụng
Ở Việt Nam, việc xử lý dữ liệu văn bản không chỉ phục vụ các mục tiêu học thuật
mà còn mang lại lợi ích thực tiễn trong nhiều lĩnh vực, từ kinh doanh, giáo dục, truyền
thông đến quản lý nhà nước Ví dụ, trong kinh doanh, NLP có thê giúp phân tích phản hồi khách hàng, phân loại ý kiến và dự đoán xu hướng thị trường Trong truyền thông,
các hệ thống tự động phân loại và tóm tat tin tức đã trở thành công cụ hỗ trợ đắc lực
Tuy nhiên, một thực tế đáng lưu ý là ngôn ngữ tiếng Việt có những đặc điểm khác biệt
so với nhiều ngôn ngữ phổ biến khác trên thế giới, như tiếng Anh hay tiếng Trung
Những đặc điểm như dâu câu, cầu trúc câu phức tạp, và sự đa dang trong cach su dung
từ vựng khiến cho các mô hình NLP phát triển đựa trên ngôn ngữ khác khó có thé ap
dụng trực tiếp vào tiếng Việt mà không cần điều chỉnh
Nhóm nhận thấy rằng, các nghiên cứu va ứng dụng hiện có về xử lý ngôn ngữ tự
nhiên tiếng Việt vẫn còn nhiều hạn chế Trong khi đó, nhụ cầu tự động hóa các tác vụ
liên quan đến văn bản tiếng Việt ngày cảng gia tăng, đặc biệt là trong việc phân loại văn bản Đây là một bải toán quan trọng, có thé ap dụng trong nhiều trường hợp cụ thế như phân loại email spam, lọc thông tin quan trọng trong tin tức, hoặc hỗ trợ công cụ tìm
kiếm thông minh Hơn nữa, bài toán phân loại văn bản không chỉ giúp giảm bớt thời
gian xử lý dữ liệu thủ công mà còn tăng tính chính xác và hiệu quả trong công việc
Mặt khác, với sự phát triển vượt bậc của các kỹ thuật học máy và mô hình học sâu, nhiều công cụ và thư viện mã nguồn mở mạnh mẽ đã xuất hiện, tạo điều kiện thuận lợi
để xây dựng và phát triển các hệ thống NLP hiệu quả Chắng hạn, các mô hình ngôn
ngữ như Transformer hay cac thuật toán dựa trên vector hoa van ban nhu TF-IDF,
Word2Vec, đã mang lại những bước tiến lớn trong khả năng hiểu ngôn ngữ của máy
tính Việc áp dụng những công cụ hiện đại này, vào bải toán phân loại văn bản tiếng Việt không chỉ giúp nâng cao hiệu quả giải quyết vấn đề mà còn giúp nhóm hiểu rõ hơn về
cách các công nghệ nảy hoạt động và tác động ra sao trong thực tiễn
Ngoài ra, việc thực hiện đề tải này cũng là cơ hội để nhóm củng cô và áp dụng
những kiến thức đã học trong các môn học như xử lý dữ liệu, trí tuệ nhân tạo và lập
trình học máy vào một dự án thực tế Thông qua quá trình nghiên cứu, chúng tôi không chỉ học cách tiếp cận bài toán một cách khoa học mà còn phát triển ky nang lam việc
nhóm, tư duy giải quyết vấn đề, và khả năng ứng dụng công nghệ để mang lại giá tri
thực tiến
Đề tài này không chỉ dừng lại ở mức xây dựng một hệ thống cơ bản mà còn mở ra
cơ hội phát triển các ứng dụng mở rộng hơn trong tương lai Từ một hệ thống phân loại
Trang 11văn bản đơn giản, chúng ta có thê tiến tới xây dựng các hệ thông phức tạp hơn như phân tích cảm xúc, nhận diện chủ đẻ, hoặc các ứng dụng hỗ trợ khách hàng thông minh Đây
là những lĩnh vực đang được quan tâm rất lớn trong cả nghiên cứu và thực tiễn
Với những lý do trên, chúng tôi quyết định chọn đề tài “Phân loại văn bản tiếng
Việt” làm nội dung chính cho dự án Đề tài khong chi mang y nghia hoc thuat ma con
có tiềm năng ứng dụng lớn trong thực tế, giúp giải quyết những thách thức hiện tại trong việc xử lý ngôn ngữ tự nhiên tiếng Việt và đóng góp vào sự phát triển của lĩnh vực này
tại Việt Nam
2 Nhiệm vụ của đề tài
Tìm hiểu tổng quan về xử lý ngôn ngữ tự nhiên vả bải toán phân loại văn bản
Tìm hiểu tổng quan về xử lý ngôn ngữ tự nhiên vả bải toán phân loại văn bản
Tìm hiểu các công đoạn chính trong bài toán phân loại văn bản:
- Thu thap và tiền xử lý dữ liệu
- _ Trích xuất đặc trưng từ dữ liệu văn bản
- Huấn luyện và đánh giá mô hình học máy
Thực nghiệm bằng cách xây dựng 1 mô hình phân loại văn bản tiếng việt cơ bản
3 Nội dung của dự án
Dựa trên nhiệm vụ đã nêu, nội dung đề tài sẽ bao gồm các phần sau:
- Tìm hiểu tông quan về ngôn ngữ tiếng Việt va bai toán phân loại văn bản
- Xác định bài toán và xây dựng hướng giải quyết phù hợp
- Nghiên cứu các kỹ thuật xử lý ngôn ngữ tự nhiên và học máy như tiền xử lý đữ liệu, vector hóa văn bản, và các mô hình phân loại
- Thực nghiệm thông qua xây dựng hệ thống phân loại văn bản tiếng Việt: Thu
thập dữ liệu văn bản từ các nguồn đáng tin cậy Tiền xử lý dữ liệu, bao
gồm loại bỏ stopwords, chuẩn hóa văn bản Huấn luyện mô hình học máy và đánh giá hiệu quả
- Kết luận dự án và đề xuất hướng phát triển trong tuong lai
Trang 12CHUONG I: TONG QUAN VE BAI TOAN PHAN LOAI VAN
Document, => EEE=E=) Predictive =» Expected
- Huấn luyện: Dùng bộ Training Text (data train) rút trích thành các bộ Features
vector đưa vào Machine Learnine Alsorithm từ đó thành một Predictrive Model dùng
để phân loại sau này, cuối cùng kết quả sẽ thu được Expect Label tên lớp cần phân loại
- Hiện thực kết quả: Dùng Text (data test) rút trích thành các bộ Features vector đưa vao Predictive Model sé nhan được Expect Label tên lớp cần phân loại
Mô hình bải toán phân lớp khá đơn giản, bao gồm các thành phân:
- Training text: Day 1a van ban dau vao thong qua do mé hinh supervised learning
có thể hoc (learn) va dy doan (predict) duoc phan lép/ phan loai (categories/classes)
- Feature vector : là một vector chứa thông tin mô tả các đặc điểm của đữ liệu đầu
- Predictive Model: Một mô hình đã được train/learn dựa trên bộ dữ liệu train và
mô hình này có thê thực hiện dự đoán nhận biết được nhãn (catesories/classes) nào khi nhập từ bộ dữ liệu test
2 Quy trình tông quan hiện thực bài toán phân loại cơ bản
Trang 13Luong xu ly co ban: Crawl data (cao dữ liệu) -> data preprocessing (tiền xử lý đữ liệu) -
> text normalization (chuẩn hóa dữ liệu) -> features (trích xuất đặc trưng) -> learn/train model (chon model machine learning va huan luyén) -> evaluation/results (đánh giá kết qua)
Trong do:
Crawler data (cao dit liệu): Là công đoạn chuẩn bị tập dataset (bộ đữ liệu đề sử
dung) duoc lay tir nhiều nguôn khác nhau như website VÍ dụ, lây 3 triệu bài báo từ 5
trang web tin tức nỗi tiếng, nhất Việt Nam
Data preprocessing (tiên xử lý dữ liệu): Chuyên dữ liệu/ văn bản nhận được ở giai
đoạn trên thành dữ liệu đầu vào (data input) thích hợp cho đúng với mô hình (model
machine learning) sur dung phan loại văn bản Ví dụ, các công việc cần thực hiện trước khi đưa vào thuật toán phân loại văn bản tiếng Việt như: tách từ, chuẩn hóa từ, loại bỏ stopword
Text normalization (chuân hóa đữ liệu): Công đoạn loại bỏ các thành phần không cần thiết, có thê hiểu là làm sạch đữ liệu xóa đi dữ liệu rác cuối củng nhận được đoạn văn bản chỉ có text Ví dụ, xóa đi tap HTML, xóa link, xóa ký tự đặc biệt "An \t
@", -stopwords, vector héa tr Day la c6ng doan quan trong trong bai toan phan loai van ban
Features (trich xuất đặc trưng): Với bài toán phân loại trên thực tế, khi muốn phân loại cần phải dựa theo một đặc điểm nào đó như giới tính, hình dạng, kích thước dựa trên sự quan sát hoặc số liệu cụ thể Trong bài toán phân loại cũng vậy, nhưng nó đòi hỏi việc phải tự động phát hiện ra các đặc điểm của đối tượng rồi mới thực hiện phân loại cho phù hợp Ví dụ, phân loại hoa Hồng, phải phát hiện ra mỗi hoa đó có đặc điểm như thế nào xét cả về hình dạng, màu, kích thước, giống, mùi hương Một đối tượng có
rất nhiều đặc điểm, vậy dựa trên một hoặc nhiều đặc điểm nảo để : phân loại? Vì the công
đoạn này sẽ rút trích hay lựa chọn bộ đặc điểm nào tối ưu nhất, dễ nhận dạng nhất, dé phát hiện ra đôi tượng đó nhất Cuối cùng công đoạn này sẽ thu được một tập đữ liệu đã được trích xuất sau đó đưa vào thuật toán machine learnine phân loại Có 2 loại feature:
- Feature Selection (chon lựa đặc trưng): là chọn ra một tập đặc trưng con từ không gian đặc trưng gốc
- Feature Extraction (rút trích đặc trưng): là biến đôi (transform) không gian đặc trưng gốc thành một không gian đặc trưng nhỏ hơn để giảm số chiều đặc trưng So với phương pháp chọn đặc trưng, rút trích không chỉ giảm số chiều mà còn thành công trong việc giải quyết vẫn đề tính nhiều nghĩa (polysemy) vả tính đồng nghĩa (synonym) của từ ở mức độ có thê chấp nhận
Learn/train model (chon model machine learning va huấn luyện): Lựa chọn một
thuật toán tối ưu nhất cho bài toán phân loại văn bản
Evaluation/results (đánh giá kết quả): Công đoạn cuối, đánh giá kết quả nhận được
3 Quy trình thực hiện cụ thể bài toán phân loại văn bản
Trang 14
| Hình l3: Quy trình thực hiện bài toán phân loại văn ban
Hầu hết các phương pháp máy học áp dụng cho bài toán phân loại văn bản đều sử dụng cách biểu diễn văn bản dưới đạng véc tơ đặc trưng Điểm khác biệt duy nhất chính
là không gian đặc trưng được chọn lựa Tuy nhiên ở đây ta thay nảy sinh một vấn đề cơ bản: Số lượng từ xuất hiện trong văn bản sẽ rất lớn Như vậy, môi véc tơ có thể có hàng
ngàn đặc trưng, hay nói cách khác mỗi véc tơ sẽ có số chiều rất lớn Do vậy các véc tơ
sé khéng dong nhat về kích thước.-H]
Đề giải quyết vấn đề thông thường chúng ta sẽ chọn lựa những đặc trưng được dánh giá là hữu ích, bỏ đi những đặc trưng không quan trọng Đối với phân loại văn bản, quá trình này rat quan trong bởi vì véc tơ văn bản có số chiều rất lớn
(>>10000), trong đó so thanh phan dư thừa cũng rat nhiéu Vĩ vậy các phương
pháp chọn lựa đặc trưng rất hiệu quả trong việc giảm chiều của véc tơ đặc trưng văn bản, chiều của véc to van bản sau khi được giảm chỉ còn lại khoảng 1000 đến
5000 mà không mat di do chinh xac phan loai
4, Xử lý văn bản và thư viện NLP
Xử lý văn bản là một nhánh con trong xử lý ngôn ngữ tự nhiên (NLP), tập
trung vào việc xử lý và phân tích dữ liệu dạng văn bán Mục tiêu của xử lý văn bản
là chuyền đổi dữ liệu phi cấu trúc thành dữ liệu có cấu trúc, dễ phân tích hơn
Các bước chính trong xử lý văn bản bao gồm:
Tiền xử lý:
-_ Xử lý các ký tự đặc biệt, loại bỏ dấu câu, chữ viết hoa
| - X6a cac tir dirng (stopwords) nhu "la", "cua", "va"
- Chuẩn hóa văn bản, như chuyển doi về dang gốc (stemming) hoac dang tir dién (lemmatization)
Trang 15
Trích xuất đặc chưng: Sử dụng các kỹ thuật như Bag of Words (BoW), TE- IDF (Term Frequency-Inverse Document Frequency), hoặc các mô hình nhúng từ (Word Embeddings) nhu Word2Vec, FastText, hoac BERT
Thư viện hồ trợ xử lý văn bản: Hiện nay, có nhiều thư viện mã nguồn mở hồ trợ mạnh mẽ việc xử ly văn bản và xây dựng mô hình NLP, bao gồm:
- NLTK (Natural Language Toolkit): Thu vién Python phố biến cho NLP
- spaCy: Một thư viện Python nhanh và hiện dại cho NLP
- Scikit-learn: Hỗ trợ các thuật toán học máy và tiền xử lý dữ liệu văn bản
- Hugsging Face Transformers: Chuyên dùng cho các mồ hình ngôn ngữ tiên
tiến như BERT, GPT
Trang 16CHUONG II: THU THAP DU LIEU VA PHAN TICH DU LIEU
1 Tổng quan về dữ liệu
Bộ dữ liệu sử dụng bao gồm các bài báo được thu thập từ trang điện tử tuổi trẻ online (_https://tuoitre.vn/ ) Đây là một nguồn dữ liệu phong phú, chứa các nội dung đa dạng thuộc nhiều lĩnh vực như chính trị, giáo dục, xã hội, khoa học, văn hóa, giải trí, thể thao, và công nghệ Các bài viết được biên soạn chính thức, có cầu trúc rõ ràng, đảm bảo tính chính xác và chất lượng thông tin, là nền tảng lý tưởng
để áp dụng các phương pháp học máy và xử lý ngôn ngữ tự nhiên.Kích thước và các cột của bảng dữ liệu
2 Thực hiện craw dữ liệu
a Thiết lập mô trường
Dau tiên, thiết lập môi trường và import các thư viện cần thiệt:
Trang 17hoa dir ligu
modeling)
import matplotlib.pyplot as plt
plt.rcParams[‘figure.figsize'] = [12, 8]
plt.rcParams['figure.dpi'] = 125 import seaborn as sns import pandas as pd
# Thu vién dé request va parse HTML import requests
from bs4 import BeautifulSoup
# Các thư viện liên quan tới ngôn ngữ và NLIP - from pyvi import ViTokenizer # Thư viện NLP tiêng Việt import gensim
import unicodedata # Thư viện unicode
# Trực quan hóa mô hình dự đoán văn bằn from lime import lime_text
# Dùng đề tưu lai model import pickle
# Thư viện Liên quan của Scikit-Learn
from sklearn.model_selection import train_test_split
from sklearn.metrics import ConfusionMatrixDisplay
from sklearn.preprocessing import LabelEncoder from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer from sklearn.decomposition import TruncatedSVD
from sklearn import feature_selection
# Tao pipeline from sklearn.preprocessing import FunctionTransformer from sklearn.base import BaseEstimator, TransformerMixin from sklearn.pipeline import Pipeline
from sklearn.compose import make_column_transformer, make_column_selector
# Các mô hình học from sklearn.naive_bayes import MultinomialNB from sklearn.linear_model import LogisticRegression
from sklearn.neural_network import MLPClassifier
from sklearn.ensemble import BaggingClassifier # Phuong phap bagging
Hình 2.1: Thiết lập mé trong va import thư viện Cấu hình matplotlib và seaborn dùng để vẽ biểu đồ và tùy chỉnh trực quan
Các thư viện bao gồm:
pandas, numpy: Xử lý dữ liệu, tính toán
BeautifulSoup, requests: Ding dé crawling va phan tich HTML
pyvi: Một thư viện NLP hỗ trợ xử lý tiếng Việt
scikit-learn: Cho cac tac vu hoc may (feature extraction, pipeline, lime: Đề trực quan hóa các mô hình học máy
pickle: Dùng đề lưu trữ và tải lại các mô hình học máy
b Phân tích HTML và lấy dữ liệu từ bài báo ;
Sử dụng BeautifulSoup đề tìm-các phần tử HTML lién quan dén bai bao (div,
a, p)
Trích xuất các thông tin:
link: URL bai bao
Trang 18title: Tiéu dé bài báo
description: Tém tat bai báo
class: Loai bai bao (thé thao, chinh tri )
contnet: nội dung chỉ tiết bài báo
Trang 19
CHUONG III: TIEN XU LY BUOC BAU, PHAN NHAN VA TAO
PIPELINE XU LY TONG THE DU LIEU
1 Tiền xử lý bước đầu
a Tổng quan về tiền xử lý dữ liệu
Trong lĩnh vực khoa học dữ liệu, tiền xử lý dữ liệu là một bước không thể thiếu
và thường chiếm một phần lớn thời gian trong toàn bộ quy trình phân tích dữ liệu Tiền xử lý dữ liệu là một quá trình quan trọng giúp làm sạch, chuẩn bị và biến đối
dữ liệu thô thành một định dạng phù hợp và sẵn sàng cho việc phân tích Tiền xử
lý dữ liệu không chỉ giúp tăng dộ chính xác và hiệu quả của các mồ hình phân tích sau này mà còn đảm bảo rằng kết quả phân tích là đáng tin cậy và có thể được
Hinh 3.1: Import data
- File dữ liệu được lưu trữ trong thư mục raw đa(a/ với tên dang crawling_{i}.csv (40 file từ 0 đến 39)
- pd.read_csv(): Đọc từng file và lưu vào danh sách dĩ
- pd.concat(df): Nối tất cả các DataFrame trong danh sách df thành một DataFrame duy nhất
- reset_index(drop=True): Dat lai chi số (index) cho dữ liệu mới
- data_df.head(): Hiến thị 5 dòng đầu tiên để kiểm tra cấu trúc dữ liệu
Sau đó sẽ cho ra kết quả:
links title description class content
9 _ Nttps://tuoitre.vn/dien-bien-moi- Diễn biến mới tháo gỡ _ Chù tịch Đà Nẵng là tổ trường Thời sự UBNO thành phố Đà Nẵng
thao-go-vuong vướng mắc các dự án, đất tổ công tác của Yo vừa có quyết định thành
4 https://tuoitre.vn/xe-tai-xe-ben- Xe tài, xe ben chạy ầm ám Xe tài, xe ben phóng nhanh, Bạn đọc Theo ghi nhận của Tuồi Trẻ
chay-am-am-su suốt ngày đêm, sinh bóp còi inh di làm làm báo Online, những chiếc
„ — hitps://tuoitre.vn/ba-nguyen-thi- Bà Nguyễn Thị Hồng Hạnh Giám đốc Sở Tư pháp TP.HCM Thời sự _ Sáng 14-11, tại kỳ họp thứ
hong-hanh-duo được bầu làm ủ ủy viên U Nguyễn Thị Hồng Hạn * 19, HĐND TP.HCM khó
3 https:/ftuoitre.vn/tong-thong- _ Tổng thống Subianto tuyên Tân Tổng thống Indonesia Thế giới Theo Hãng tin Reuters,
indonesia-tuyen- bố Indonesia sẽ bảo Prabowo Subianto tuyê 9 bình luận nói trên của
4 https://tuoitre.vn/ba-melania- Bà Melania Trump sẽ làm _ Một nguồn tin thân cận với bà Thế giới Bà Melania Trump có kế
trump-se-lam-de- đệ nhất phu nhân bán t Melania Trump - hoạch chia quỹ thời gia
Hình 3,2: In ra một số mâu dữ liệu
Trang 20
c Kích thước và kiểu dữ liệu
# Kích thước của dữ Liệu —— (100001, 5) data_ df shape
Links object title object
# kiều dữ liệu › description object
content object dtype: object
Hình 3.3: Kích thước và kiểu dữ liệu
- data_df.shape: Hién thị số lượng dòng và cột trong dữ liệu
- Két qua: 160001 x 5 (160,001 dòng và 5 cột)
- data_df.dtypes: Kiểm tra kiểu dữ liệu của từng cột:
- links: Đường dan bai viet (kiéu object)
- title: Tiéu dé bai viet (kiểu object)
- description: M6 ta ngan (kiéu object)
- class: Phan loai bai viet (kiểu object)
- content: Noi dung bai viet (kieu object)
d Kiém tra va chuan hoa
- Kiểm tra dữ liệu trùng lặp: Các dữ liệu trùng có mdex cách nhau không quá lớn Như vậy rất có thể xuất hiện dữ liệu trùng là do trang web cập nhật bài báo mới, làm dữ liệu trong lúc thu thập bị đây xuông gây trùng lặp
# Kiểm tra dữ Liệu trùng
data_df [data_df Guplicated(keep=Fatse) | sort_values(by=[‘links*'])
|
links title description class content
3864 du-an-di i Kinn ($390 27-3, UBND tn
« gio-nghin-ti- ku kh6 mat bang, ¢ vốn đầu tư hơn 1000 doanh — Quảng Tr|tổ chức cuặc
= & & 5 A, Kinh Sáng 27-3, UBND tỉnh
gio-nghin-ti- kêu khó mặt bằng, c vốn đầu tư hơn 1000 doanh Gung Tt ete one
131842 Bane ae eee 0 người chết, T1 người bị TTO - Vin phong Uy ban AN ssteeagc tau
131529 ==“ 10 người chốt, 11 người bị _ TTO - Văn phòng ỦybanAn yyy: guy 56 lifu trên được thống kê
10 ö tô bán chạy nhất ake
https:/Jtuoitre.vn/10-o-to-ban~ 7 Xpander tiép tuc duy tri vj tri
129987 chay-nhat-thang tháng 8: 5e căm cho số 1 thị trườn xe NaN
Xử phạt nhiều tiệm vàng
'https:/tuoitre.vr/xu-phat-nhi: Các ð Cắn Tho Kinh Ngày 4-7, Quên lý thị
tiem-vangro-c Scheie không dâm thông niềm với nọ danh "tường TPCẩnThớeh
gạo H05/fuftevnlesntieng-ee Ma ngon Chương tịnh nhệ thi đốc vụn yạ, — Xuân Tư Said
112030 ÂN Z4fiolOINiDISE VESO SA Vẻ với Trường Sa hà Chương vn none i ak đặc Văn hóa ae ane ii ra
129343 TẾ eo secce Sanh Hà Ngọt ng CN geinatn Nhàđất Nó nói hai là tạ
‘120332 NỔ tưng cân ở Pah ferret S~.2^127<7tš hà đất Sone ee
2482 rows x 5 columns
Hình 3.4: Kiêm tra dữ liệu gây trùng lặp
Trang 21-_ Kiểm tra dữ liệu thiếu
Hình 3.5: Kiển tra dữ liệu thiếu
- Hàm chuẩn hoá unicode: Trong Unicode, ký tự tổ hợp còn có thể được tổ hợp từ những thành phần nhỏ hơn như ký tw ASCII, ký tự dấu nguyên âm và ký
# Hàm tiền xử Lý dữ Liệu cho bước khám phá cuôi cùng
def batch_preprocess():
total_files = 40 text_attrs = ["title","description","content","class"]
for index in tqdm(range(total_files) ):
df=pd.read_csv(dir_1_new + f'crawling_{index}.csv')
# Xóa dòng thiêu
df=df [~((df[‘title'].isnull()) | (df['description'].isnull()) | (df['content'].isnull()))] for attr in text_attrs:
df [attr]=df [attr] apply(covert_unicode)
df [attr]=df [attr] str lower()
df [attr] =df [attr] apply(chuan_hoa_dau_cau_tieng_viet) df.to_csv(dir_2 + f'crawling_{index}.csv', index=False) batch_preprocess()
Hình 3.7: Tiền xử lý dữ liệu hàng loạt
2 Phân nhãn và tạo pipeline xử lý tổng thể dữ liệu
a Phân nhãn
Việc đọc và cộng dồn số lượng mẫu của từng lớp trong dữ liệu giúp nắm bắt sự phân bố và cân bằng giữa các lớp, từ đó dưa ra quyết định phù hợp cho quá trình tiền xử lý Đây là bước quan trọng để xác định các lớp có quá it mẫu, có thể dẫn đến mắt cân bằng dữ liệu, hoặc những lớp không có tính phân loại rõ ràng cần loại
15
Trang 22for ¡ ín tqdm( range(40) | : + thể giới 17425
= pd csv(đir_2 + f'crawling_{i}.c:
class_stat = class_stat.add(df ["class'} Seen fill_value=8) 2 thểthao 14947
# Sort tai và chuyển về 1at SN E19 nhi 00s
€\ass_stat = cLass_stat.sort_vaLues(ascending=Fatse) astype ( "1nt64') 4 pháp luật 11357
liệu thành file để thuận tiện cho quá trình khám phá —— ~ -
bol au to_csvidir_3 + “class_statistic.csv” re er ‘utf-8", header=False) 106 cầu nối 1
®| | 8/48 [00:08<2, ?it/s] 90400 D009 eee es
T08 chuyên phác đình 1
si ee Pea tem liệu wo box ảnh 1 clas: = pd.read_csv(dir_3 + “class_statistic.csv", header=None) 0 th cầu í
te Ti columns = ["class", “count"]
Hinh 3.8: Đọc ra các lớp của dữ liệu class_stat là một Series dùng để lưu trữ số lượng mẫu của từng lớp
Duyệt qua các tệp CSV (crawling_0.csv đến crawling 39.csv) trong thư mục dir_2:
- df]'class'].value_counts(): Dém số lượng mẫu trong mỗi lớp (cột class)
- class_stat.add(): Cong don sé lượng mầu của từng lớp từ các tệp khác nhau vào class_stat
Sau khi cộng dồn, dữ liệu trong class stat được sắp xếp theo thứ tự giảm dần (lớp có số mẫu lớn nhất ở trên) và chuyền kiểu dữ liệu về int64 để phù hợp với yêu cầu Kết quả thống kê phân lớp được lưu vào tệp class_stafistic.csv trong thư mục dir_3
b Tạo pipeline xử lý tổng thể dữ liệu
Pipeline tiền xử lý cho dữ liệu văn bản là một cách thức tổ chức các bước tiền
xử lý dữ liệu một cách tuần tự và có cấu trúc Pipeline giúp đảm bảo rằng các bước
xử lý được thực hiện chính xác, dễ dàng kiểm tra và tái sử dụng Pipeline cho dữ liệu văn bản có mục tiêu chuẩn bị văn bản thô (như các bài viết, bài báo, v.v ) để có thé sir dụng cho các mô hình học máy, chang hạn như mô hình phân loại văn bản: Unicode Standardization (covert_unicode)
Muc dich: Chuan héa van ban vé một dạng Unicode nhất quan Dieu này giúp trảnh những vấn đề phát sinh khi văn bản có nhiều đạng Unicode khác nhau (NEC, NED, NEKC, NEKD) Dạng chuẩn hóa này đảm bảo răng các ký tự đặc biệt hoặc dấu không bị ảnh hướng khi xử lý
Ví dụ: á và á (có dấu) đều được chuẩn hóa thành một dạng á
Chuyển thành chữ thường (lowercase_conv)
Mục đích: Chuyển toàn bo văn bản thành chữ thường dé loại bỏ sự phân biệt giữa các ký tự viết hoa và viết thường Việc này giúp giảm sự phức tạp trong văn bản, đồng thời giúp tránh sự phân biệt không cần thiết trong quá trình phân tích
Vi du: Van ban "Hoc may" va "hoc May" sé được chuyén thanh "hoc may", giúp mô hình không bị phân biệt giữa chữ hoa và chữ thường
Chuẩn hóa tiếng Việt (vn_std) -
Mục dích: Tiên hành chuân hóa các ký tự đặc biệt của tiêng Việt, đảm bảo các
ký tự tiếng Việt được xử lý chính xác, giúp tăng hiệu quả (rong các bước tiếp theo
16
Trang 23
_ Ví dụ: Chữ y có thể trở thành ý nếu cần thiết, chuẩn hóa các từ có dấu sao cho
đề dàng phân tích
Loại bỏ ký tự không cần thiết (rm_unnecessary)
Muc dich: Loại bỏ các ký tự không liên quan đến nội dung văn bản như số, ký
tự đặc biệt, dấu câu, v.v Chỉ giữ lại các từ (chữ cái)
Ví dụ: Văn bản "Học máy!!!" sẽ trở thành "Học máy", loại bỏ dấu chấm than
và các ký tự không cần thiết
Tách từ (Tokenization) (word_ tokenize)
Mục dích: Tách câu thành các từ (tokens) _ Day là bước quan trọng trong xử lý ngôn ngữ tự nhiên (NLP) để mô hình có thể hiểu được các phần nhỏ của văn bản
Ví dụ: Câu "Học máy” sẽ được tách thành các từ [ “Học”, "máy"”]
Loại bỏ từ dừng (Stopword Removal) (rm_stopwords)
Mục dích: Loại bỏ các từ dừng (stop vores) — những từ có tần suất cao nhưng không có giá trị phân loại, chẳng hạn như "và", "là", "của", "the", Việc loại bỏ các từ này giúp giảm sự nhiễu trong quá trình huấn luyện mô hình
Ví dụ:Câu "Học máy là rất thú vị" sau khi loại bố stopwords sẽ trở thành
"Hoc may thu vi"
# pipeline xu ly di liéu cho cét content
preprocess_pipe_str = PipeLine( [
("unicode_standardize", unicode_std), ("lowercase_conv", lowercase_conv), ("vn_standardize", vn_std), ("rm_unescesary", rm_unescesary), ("word_tokenize", word_tokenize) , ("rm_stopwords", rm_stopwords) 1)
# Tạo function transformer áp dụng tiền xử lý lên từng phần tử trong dãy
preprocess_list_str = FunctionTransformer (np.vectorize(preprocess_pipe_str.transform) )
# pipeline xử Lý dữ Liệu cho cột class
[ (“unicode_standardize", unicode_std), ("towercase_conv", lowercase_conv), ("vn_standardize", vn_std) ])
# Tao function transformer 4p dung tiền xử lý lên từng phần tử trong class
class_preprocess_List_str = FunctionTransformer (np vectorize(cLass_preprocess_pipe_str.transform) )
Hình 3.9: Tạo pipeline xử lý dữ liệu tuần tự Kết hợp các bước thành Pipeline: Pipeline là một chuỗi các bước xử lý được áp dụng tuần tự và tự động cho toàn bộ dữ liệu Các bước này được đóng gói trong một đối tượng Pipeline của scikit-learn, giúp dễ dàng áp dụng cho toàn bộ tập dữ liệu và duy trì tính nhất quán trong việc xử lý
Trang 24
CHUONG IV : TRUC QUAN HOA DU LIEU
1 Tổng quan về trực quan hoá dữ liệu
Trực quan hóa dữ liệu là quá trình sử dụng các yếu tổ hình ảnh như đồ thị, biểu đỗ hoặc bản đồ để trình bày dữ liệu Quá trình này chuyển đối dữ liệu phức tạp, có dung lượng lớn hoặc dữ liệu số thành hình ảnh trình bày trực quan có thể
xử lý dễ dàng hơn Các công cụ trực quan hóa dữ liệu cải thiện và tự dong hoa qua trinh giao tiếp bằng hình ảnh nhằm đảm bảo độ chính xác va chi tiết
2 Giới thiệu về Word Clouds
a, Tong quan vé word clouds
Word Cloud được định nghĩa là một hình ảnh điện tử hiển thị các từ được sử dụng trong một đoạn văn bản điện tử hoặc một chuỗi văn bản cụ thể Các từ có kích thước khác nhau tùy theo tần suất chúng được sử dụng trong văn bản
Ý nghĩa quan trọng là tạo ra một hình ảnh hóa dữ liệu về ngôn ngữ được sử dụng trong một văn bán đã chọn cho các từ quan trọng hơn dựa trên cách sử dụng của một tac gia Điều này có thể được sử dụng dé tom tắt một bài báo, tim cam xuc cua tac gia hoac cho diém lựa chọn từ Cơ sở cho hình ảnh Word Cloud là một phương pháp sắp xếp và xếp hạng từ Xử lý ngôn ngữ tự nhiên (NLP) được chuyển thành hình ảnh mình họa
Trang 25Ví dụ sử dụng văn bản từ Wikipedia về trực quan hóa dữ liệu cho đám mây
từ bằng Word Clouds Điều này cho thấy ba từ hàng đầu được sử dụng là “Dữ
liệu”, “Hình ảnh” và “Sử dụng” Đây là những từ có tần suất cao và phù hợp với
kỳ vọng từ văn bản đã chọn