Tóm tắt khóa luậnHiện nay dai dịch covid-19 hiện đang là một trong những đại dịch nguy hiểm va gây thiệt hại nặng nề nhất trong cộng đồng trên toàn thế giới, chính vì vậy để phục vụ việc
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HỆ THÓNG THÔNG TIN
NGUYEN BA MINH HOANG
NGUYEN GIA HUY
AN APPLICATION OF COVID-19 NEWS CLASSIFICATION ON
THE TWITTER SOCIAL NETWORK
KY SU NGANH HE THONG THONG TIN
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HỆ THÓNG THÔNG TIN
NGUYEN BA MINH HOÀNG - 16520435
NGUYEN GIA HUY - 16520517
KHOA LUAN TOT NGHIEP
XAY DUNG UNG DUNG PHAN LOAI TIN TUC
COVID-19 TREN MANG XA HOI TWITTER
AN APPLICATION OF COVID-19 NEWS CLASSIFICATION ON
THE TWITTER SOCIAL NETWORK
KY SU NGANH HE THONG THONG TIN
GIANG VIEN HUONG DAN
TS NGUYEN LUU THUY NGAN THS NGUYEN THI KIM PHUNG
Trang 3DANH SÁCH HỘI ĐÒNG BẢO VỆ KHÓA LUẬN
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
"¬————— ngày của Hiệu trưởng Trường Dai học Công nghệ
Thông tin.
Loe cece cece eect ne ene ee ene ene ene ene eaes — Chủ tịch.
2“ ene eaeeneeaeneeneeneenenaes — Thu ky.
Boece e cence ence eee eee ee — Uy viên.
Trang 4LỜI CẢM ƠN
Lời đầu tiên, nhóm tác giả xin gửi lời cảm ơn chân thành đến quý Thầy Cô trường Đại học Công nghệ thông tin, đặc biệt là quý Thầy Cô Khoa Hệ thống thông tin - những người đã dùng tri thức và tâm huyết của mình dé truyền đạt cho chúng em vốn kiến thức vô cùng quý báu trong khoảng thời gian học tập tại trường Những kiến
thức mà Thay Cô truyền đạt là bước đệm quan trọng giúp chúng em có thé hoàn thành
đề tài tốt hơn Đặc biệt, nhóm tác giả xin gửi lời cảm ơn chân thành và lòng biết ơn sâu sắc đến TS Nguyễn Luu Thuy Ngân, ThS Nguyễn Thị Kim Phung; cảm ơn hai
Cô đã tận tình hướng dẫn và tạo điều kiện tốt nhất cho nhóm hoàn thành đề tài này Những lời động viên, góp ý chân tình của hai Cô là động lực quý báu dé nhóm tiếp thu được nhiều kiến thức bổ ích cũng như vượt qua những khó khăn khi tìm hiểu và
thực hiện khóa luận.
Trong thời gian thực hiện đề tài, nhóm tác giả đã cô găng vận dụng những kiến thức nên tang đã học, kết hợp học hỏi và tìm hiểu công nghệ mới dé ứng dụng xây dựng
đề tài khóa luận tốt nghiệp Tuy nhiên trong quá trình thực hiện, do kiến thức và kinh nghiệm còn nhiều hạn chế, nên khó tránh khỏi những thiếu sót Chính vì vậy, nhóm
tác giả rất mong nhận được sự góp ý từ quý Thay Cô Khoa Hệ thống thông tin dé
nhóm hoàn thiện những kiến thức đã tích luỹ trong quá trình học tập tại trường, làm hành trang quý báu đề nhóm thực hiện các dự án thực tế trong tương lai.
Xin chân thành cảm ơn quý Thầy Cô!
Nhóm tác giả
Trang 5MỤC LỤC
Danh sach Bink sa
Danh mục bang - - - 5 + 1119301119101 93019 10190 TH HT ng t
Danh mục từ viét tẮ( G- St St E131 1111111111111 111111 1111111111111 111111111 cE
Danh sach Wink 0 4
Damh Mmuc bang T0 6
Danh mục từ viét tat ceccecccccccssccscscssessesscssssecsessessesessessrssssecsessesessucsesansessucstsavsussesatsasseeaeees 7Tóm tắt khóa luận . -+++2©+++2EE +21 TT Errrirreriee |Chương 1: Tổng Quan 2-5252 SE9SESE£EE£EEEEEEEE12112212112117171717171711212 11111 cre 2
1.1 Đặt vấn đề ch HH HH HH HH HH Hiệu 2
L.A PHAM Vi eee ốẼẽ ứđ “` ` — 3
1.5 Bố cục báo cáo - sex x91 1E kE E1 E1111111 111111111 1111111111111 111111111 cvet 4
1.6 Công cụ SỬ dỤng - - - c + Sà 1v TH“ HH HH HH ki 4
Chương 2: Cơ sở lý thUYẾT 2-52: E9SE99E2E2E2E12E1E21211E71717171121121121121111 1111 re 5
2.1 Giới thiệu ngôn ngữ PythOh tk HH TH HT HT TT nghệ 5
2.2 Một số van dé trong xử lý ngôn ngữ tự nhiên 2-2 5+5 E£EzEczzzzzecrez 5
2.2.1 MG hinh tii tt 11
2.2.2 Không lan V€CfOT - - c3 S1 SH TH HH He 12
2.3 Một số thuật toán YOM CỤIH1 - 5c S199 vn ng 13
2.3.1 Gì 13 2.3.2 Agglomerative CÏUSf€TITE - - <6 3119 111v HH kt 15
"040 17
"940917 22
Trang 62.3.7 GAUSSIAN MIXCULES 20.0 S 22 2.3.8 Mini Batch 0n 23
Chương 3: Phương pháp thực hiỆn - - G6 5 S1 21199119119 119111 1 1 ng ng rệt 29
3.1 M6 ta Dai COM 0 4 29
3.2 Tiền xử lý dit iG ecccccccsessessecssssesessessessessessssessessessussssssssssssessessesseesesseeseesess 29
3.2.1 Thu thập dữ liệu - ¿S12 212121121151 151 1111111112 11111111 T1 HH HH 29
3.2.2 Lam sạch dữ OU - - + 22 E131 322111111EE2531 111199231 111119511111 vết 32
3.2.3 Vector hoá dit liệu với chỉ số T-IIDE - 2k + +EE+E£EE+EeErkererxsrers 35
3.3 Các bước thực hiện gom cụm dữ lIỆU 5< +5 +32 +*++EEseseerseseereexse 36
3.3.1 Lựa chọn thuật toán øom CỤI - 5 <6 + E* +2 E**EE+EEEEEsEESrkksrkkrrskrerkee 36
3.3.2 Xây dựng mô hình gom cụm dựa trên dữ liệu đã thực hiện tiền xử lý 38
3.3.3 Đánh giá mô hình gom cụm bằng Silhouette, Calinski-Harabasz và
Davies-Bouldin Metrics - 5 56 E111 E91 911 44
3.4 Xây dựng ứng dung phân loại một tin tức có hashtag - ‹ s«+-++s+++ 44
Chương 4: Cài đặt và triển khai hệ thống - 2 2 2 2 ++EE+EE+EE+EEeEEeEEerEerrerreee 45
4.1 Các bước triỀn khai : s+ t2 tt nghe 45
'SNN ca 45
4.1.2 COng CU SU UNG eee 45 AV.3 XW án .Ỏ 46 4.1.4 Vector hóa dữ liệu sử dung thuật toán 'TTF-IIDDE +55 +< << £+c£+seesee 50
4.1.5 Tìm số k tối ưu cho các thuật toán 00001117 51
Trang 74.3 Xây dung ứng dụng phân loại bài viết dựa vào hashtag - ¿52 2552 66
Churong 5 Két an 88 72
5.1 Két UA Cat QUOC 0 72
5.2 Định hướng phát triỀn đề tài ¿- 2© 2SE+ESEE£EEEEEEEEEEEEEEEEEEEEEEEEErkrrrrerkee 72
Tài liệu tham khảO - óc c6 132221111323 113191 11191111 1111181111101 11 011118 11g 1n yn 73
Trang 8Danh sách hình
Hình 2.1 Khử nhiễu dữ liệu -. - 5-22 giàu 6Hình 2.2 Chuẩn hoá từ - -22222+++22E221xtE.22 11t 1 8
Hình 2.3 Mô hình không gian V€CfOT - 6 5E 2133111211 E<51 1< 11 911191 9v ng rệt 13
Hình 2.4 Sơ đồ luồng xử lý thuật toán K-Means -2-©22 ++2zz+cxccxevrxrrrserxee 14Hình 2.5 Sơ đồ luồng xử lý thuật toán Agglomerative Clustering ‹ - 16
Hình 2.6 Mô tả quá trình xử lý của thuật toán BIRCH -5<++s<+s<++ex+ss2 18
Hình 2.7 Mô tả quá trình xử lý của thuật toán DBSCAN - nhi 20
Hình 3.1 Trang web cung cấp dữ liệu -2- 2-5 S£+E£2E£+E£+EE£EEtEEEEEEEEerkrrkerkerreee 30
Hình 3.2 Bảng kết quả phân cụm K-Means - + 252 £+S££EE£E+EEeEEezEerErrerreee 39Hình 3.3 Kết quả phân cụm của thuật toán K-Mean trên đồ thị phân tán 39Hình 3.4 Đầu vào ví dụ thuật toán BIRCH -cc¿¿+£EEvkerrrtrrrkkrrrrrrrrriee 40Hình 3.5 Kết quả phân cụm của thuật toán BIRCH 2-2 52s +2£s+zx+zxz2sz+2 41Hình 3.6 Đầu vào ví dụ thuật toán Agglomerative Clustering -. -‹ 42Hình 3.7 Kết quả của Vi dỤ ¿252 ++2292E+EE£EE£EEEEE21121121121122121 111111111 42Hình 3.8 Kết quả chạy thực nghiệm - 2-2-2 2£ +E£+E££E£+EE+EE£EE+EEEEEEEEeEErrkerrerreee 43Hình 4.1 Dữ liệu hashtag sau khi đã được tách ra từ dữ liệu ban đầu cccce: 46Hình 4.2 Dữ liệu thô ban đầu . ¿ 2+++++2E + reo 47
Hình 4.3 Hashtag sau khi đã được tách riêng - 5 Sc + Essssirrereseeerrsee 47
Hình 4.4 Dữ liệu trước khi loại các dòng lỗi font chữ 2-5 25s+c+cs+x+cszxeẻ 48
Hình 4.5 Dữ liệu khi đã thực hiện loại bỏ các dòng lỗi font chữ - 5+: 48
Hình 4.6 Kết quả sau khi tách hashtag thành các từ có nghĩa -¿¿5¿ 49
Hình 4.7 Cài đặt vector hoá văn ban với Skearn_TFIDF_Vectorizer - 50
Hình 4.8 Kết quả Elbow Method ccccsssesssssesssessesssessesssecssessecsusssecsusssecsusssessusesecsseeses 51
Hình 4.9 K-Means - Cụm Ú -.- s1 ng nu HT nh Hết 52
Trang 9Hinh 08 C (810i (::ÔEỌÐÔ 53 Hinh 4.12 K-Meanss 010) 53 Hình 4.13 K-Means - Cum 4 - 1 1111611111111 1111111 00111111180 111kg vn ưyy 53 Hình 4.14 K-Means - Cụm Š c1 10126110111 1111931 1111110 111111100 111kg vế 54 Hình 4.15 Agglomerative Clustering — Cụm 0 0 ecceeeceesceesceceneesceseeeeeaeeescessaeeeaeeeaee 55 Hình 4.16 Agglomerative Clustering — Cum Ï, +-++++xk++skkssesseeesereers 56 Hình 4.17 Agglomerative Clustering — Cụm 2 - + s+++x*++*skiseikrrkrerkre 57 Hình 4.18 Agglomerative Clustering — Cụm Ô3 - +s + *+x+svEsskseksseesersree 57 Hình 4.19 Agglomerative Clustering — Cum 4( -. «+5 + ++s xxx nghi, 58 Hình 4.20 Agglomerative Clustering — CUM 5 - «ss xxx riec 59 Hình 4.21 BIRCH — Cụm Ú - ¿5 25 t1 21 21151111 111111111111 121111 g1 HH Hàn Hit 60 Hinh 4.22 BIRCH — Cum 1017 ˆ 61 Hình 4.23 BIRCH — Cụm 2 - 5c 2c 2121321151151 111 8511151111111 1111 T1 HH net 62 Hình 4.24 BIRCH — Cụm 3 - - (c2 2c 20 21121151851 11111 1111111111111 T1 HH Hit 63 Hinh 4.25 BIRCH — Cum 1 ỤO 63 Hình 4.26 BIRCH — Cụm 5 - G24 25 211v TH Hàn Hàng ngàng 64 Hình 4.27 Giao diện chính của Ung dụng - - 56 + SE +EseEsseseesseesrssee 66 Hình 4.28 Giao diện chon file dữ liệu trên file expÏOTeT 5+5 +++s++sex+sss+ 67
Hình 4.29 Giao diện chính sau khi đã chọn file - 52555 + +22 c++zzeeeeeeezz 68
Hình 4.30 Kết quả ứng dụng — Cụm I -¿-2¿++2++2+++EE+t2Extzrxerxrsrxeerseees 69
Hình 4.31 Kết qua ứng dụng — Cụm 2 -2- ¿5£ ++£+E£+E£+E£+EE£EE£EEEEEEEEerkerkrrkerreee 69Hình 4.32 Kết quả ứng dụng — Cụm 3 -¿- 2-5 +S£+E2E£+E+EE£EE£EEEEEEEEtrkrrkrrkrrreee 70
Hình 4.33 Kết quả ứng dụng — Cụm 4 +- ¿+ +E£+E£E££E+EE£EE+EEeEEEEEerEerkerkerreee 70Hình 4.34 Kết quả ứng dụng — Cụm 5 -:- 2-22 £+E£+E£+EE£EE+EEEEEeEEerEerkerkerreee 71
Trang 10Danh mục bảng
Bảng 3.1 Mô tả chỉ tiết dit liệu - 2-©52SS£SE2£EE£EEEEEEEEEEEEEEEEEEEEEEEE2121 2121 31
Bảng 3.2 Chuyển từ mảng các hashtag thành các hashtag đơn lẻ - 32
Bang 3.3: Loại bỏ các hashtag có chứa dấu câu va dit liệu kiểu số - 32
Bảng 3.4: Loại bỏ các dòng hashtag lỗi font ¿5-55 522S2x+2+2E2Eezxerxzxrzxerxee 33
Bảng 3.5: Tach hashtag thành những từ có ngha - s5 + + +skseessersrresee 33
Bảng 3.6: Loại bỏ Stopwords và chuyền kí tự hoa thành thường - 34
Bảng 3.7: Ví dụ K-Means - .- <1 1H TH TH 38
Bang 4.1: Kết quả đánh giá thuật toán dựa trên ba độ đo - 5c 5c2s25z25z+: 65
Trang 11Danh mục từ viết tắt
Từ viết tắt Nội dung
AHC Agglomerative Hierarchical Clustering
BIRCH Balanced Iterative Reducing and Clustering using Hierarchies
DBSCAN | Density-based spatial clustering of applications with noise
OPTICS Ordering points to identify the clustering structure
BCSM Between cluster scatter matrix
WCSM Within cluster scatter matrix
TF-IDF Term Frequency — Inverse Document Frequency
TF Term frequency
IDF Inverse document frequency
CF Clustering feature
LS The linear sum
SS The square sum of data points
Trang 12Tóm tắt khóa luận
Hiện nay dai dịch covid-19 hiện đang là một trong những đại dịch nguy hiểm va gây
thiệt hại nặng nề nhất trong cộng đồng trên toàn thế giới, chính vì vậy để phục vụ việcnắm bắt được tình hình, các mối quan tâm và lo ngại của người dân, cho các cơ quannghiên cứu và các tổ chức có thẩm quyền, nhóm đã quyết định thực hiện dé tài khóa luận
“Xây dựng ứng dụng phân loại tin tức covid-19 trên mang xã hội twitter” nhằm mục dichgom nhóm và phân tích các tin tức từ các bài đăng của người dùng mạng xã hội nhằm
mục đích đưa ra các giải pháp kip thời hoặc khoanh vùng các vùng dịch cho các cơ quan
và tổ chức nhằm ứng phó kịp thời trong tình hình dịch bệch covid-19 đang diễn ra ngày
càng nhiêu trên phạm vi toàn câu.
Đề tài tập trung vào việc phân tích, so sánh và lựa chọn trong các thuật toán gom cụmcho ra kết quả tối ưu nhất cho bộ đữ liệu chứ các từ hashtags từ mạng xã hội twitter xungquanh chủ dé covid- I9
Trang 13Chương 1: Tong Quan
nguôn tin hoặc/hay từ nơi xảy ra các sự kiện có trong tin.
Twitter sở hữu cơ chế cho phép người dùng đánh dấu và phân loại bài viết của bản thânthông qua các hashtag - một đoạn văn bản có ý nghĩa được đánh dấu bang kí tự “#” Khimột người dùng đánh dấu bài viết của mình bằng hashtag, bài viết đó sẽ được gom nhóm
chung với các bài viết khác có chứa hashtag tương tự Số lượng hashtag trong một bài
đăng là không bị giới hạn và có thể đặt ở bất kì đâu trên bài viết Và những từ có mặttrong số lượng lớn hashtag, thường sẽ là một chủ đề xu hướng tại một thời điểm nhất
cụ tốt nhất cung cấp dữ liệu cho các ứng dụng trên chính là dữ liệu từ các mạng xã hội
mà tiêu biêu là Twitter.
Trang 141.2 Khảo sát
e Dựa trên nhu cầu quan sát dữ liệu về Covid-19 thực tế
e Dựa trên các bài báo khoa học liên quan.
e Dựa trên các hệ thống sẵn có
1.3 Mục tiêu luận văn
Đáp ứng nhu cầu phân loại các bài viết trên nền tảng mạng xã hội Twitter hỗ trợ các tổ
chức, cơ quan có thê xác định được nhanh chóng các vùng dịch, theo dõi các phản ứng của người dân đối với dịch v.v Đề tài sử dụng dữ liệu hashtag của các bài đăng liên
quan dịch bệnh Covid-19 trên mạng xã hội Twitter dé huấn luyện và kiến tạo các cụm
phục vụ phân loại bài viết, giúp chính phủ và các tô chức y tế quan ly dit liệu Covid-19
và kiểm soát tốt các vùng dịch
1.4 Phạm vi
Do thời gian thực hiện dé tài có giới hạn, cũng như kiên thức của nhóm còn hạn chê, nên
trong phạm vi khóa luận, nhóm thực hiện chi sử dụng một sô nét co bản của công nghệ như sau:
Ngôn ngữ lập trình: Python (3.8)
Thư viện: Pandas, scikit-learn
Package: wordninja
Trang 151.5 Bô cục báo cáo
Chương 1: Giới thiệu tổng quan về đề tài Nội dung chương một bao gồm: Đặt van dé
và lý do chọn đề tài, và đưa ra nhận xét, đánh giá, mục tiêu và phạm vi nghiên cứu, công
cụ xây dựng hệ thông và bô cục của báo cáo.
Chương 2: Cơ sở lý thuyết, trong đó trình bày lý thuyết và phân tích các thuật toán sẽ sửdụng trong đề tài
Chương 3: Trình bày phương pháp và các bước thực hiện xử lí thực hiện của đề tài
Chương 4: Thực nghiệm và đánh giá các phương pháp, chọn mô hình gom cụm tối ưu
nhất cho dữ liệu dé sử dụng cho ứng dụng về sau.
Chương 5: Tóm tắt lại những kết quả mà nhóm đã đạt được khi thực hiện đề tài, những điểm mới của để tài và định hướng phát triển cho đề tài.
1.6 Công cụ sử dụng
Trong quá trình thực hiện đề tài, nhóm đã sử dụng ngôn ngữ lập trình Python ở môi
trường phiên bản Python 3.8.
Các thư viện sử dụng:
e© Scikit-learn
e Pandas
e Wordninja
Trang 16Chương 2: Cơ sở lý thuyết
2.1 Giới thiệu ngôn ngữ Python
Python là ngôn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, được tạo ra bởi Guidovan Rossum Nó dé dàng dé tìm hiểu và đang nỗi lên như một trong những ngôn ngữ lậptrình nhập môn tốt nhất cho người lần đầu tiếp xúc với ngôn ngữ lập trình Python hoàn
toàn tạo kiểu động và sử dụng cơ chế cấp phát bộ nhớ tự động Python có cấu trúc dữ
liệu cấp cao mạnh mẽ và cách tiếp cận đơn giản nhưng hiệu quả đối với lập trình hướngđối tượng Cú pháp lệnh của Python là điểm cộng vô cùng lớn vì sự rõ ràng, dé hiểu vàcách gõ linh động làm cho nó nhanh chóng trở thành một ngôn ngữ lý tưởng dé viếtscript và phát trién ứng dụng trong nhiều lĩnh vực, ở hầu hết các nền tảng
Nhiều thư viện Khoa học dữ liệu / Phân tích dữ liệu như Pandas, StatsModels, NumPy,
SciPy và Scikit-Learn, là một số thư viện nồi tiếng có sẵn cho những người tham giatrong cộng đồng Khoa học dữ liệu
2.2 Một số van đề trong xử lý ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên (natural language processing - NLP) là một nhánh của trí tuệ
nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của con người Trong trí tuệ nhân tạo
thì xử lý ngôn ngữ tự nhiên là một trong những phần khó nhất vì nó liên quan đến việcphải hiểu ý nghĩa ngôn ngữ-công cụ hoàn hảo nhất của tư duy va giao tiếp
Khử nhiễu dữ liệu
Mục đích bước này là loại bỏ noise trong data Đa phần noise là các thẻ HTML,JavaScript, và đương nhiên nếu cứ dé noise đề tiến hành xử lý sẽ dẫn đến kết qua xử lýkhông tốt
Trang 17Thông thường chúng ta hay loại bỏ noise là các thẻ HTML và JS như trên tuy nhiên thực
tế noise có thể không chỉ là HTML, JS, cũng có thé là những cum từ không cần thiết,
hay ký tự không có ý nghĩa ($%&##").
Ví dụ:
raw word cleaned word stemmed word
0 trouble trouble troubl
1 trouble< trouble troubl
2 trouble! trouble troubl
3 <a>trouble</a> trouble troubl
4 1.trouble trouble troubl
Hình 2.1: Khử nhiễu dữ liệu
Tách từ
Trên thực tế đôi khi các từ trong văn bản có thể sẽ được viết liền nhau (ví dụ như cáchashtags) chính vì vậy đề xử lý ngôn ngữ một cách tốt nhất thì tách từ là một phần khôngthê thiếu Tách từ chính xác hay không là công việc rất quan trọng, nếu không chính xácrất có thé dẫn đến việc ý nghĩa của câu sai, ảnh hưởng đến tính chính xác của chương
trình.
Trang 18Chuẩn hóa từ
Mục đích của chuân hóa từ là đưa văn bản từ các dạng không đông nhât vê cùng một
dạng Dưới góc độ tối ưu bộ nhớ lưu trữ và tính chính xác cũng rất quan trọng
nhiều dữ liệu, ảnh hưởng dén tính chính xác của mô hình sau này.
Một bước tiền xử lý rất dễ bị bỏ qua đó là quá trình chuyên đôi một văn bản thành mộtdạng chuẩn (chuẩn) Ví dụ: từ “gooood” và “gud” có thể được chuyên thành “good”,dạng chuẩn của nó, đây là bước cực kì quan trọng đặc biệt đối với các loại văn bản trên
mạng xã hội
Trang 19Ví dụ:
Raw Normalized
2moro tomorrow 2mrrw
2morrow 2mrw
so sánh băng” dé kiểm tra, nhưng thực tế thì không phải là như vậy Đối với một số ngôn
ngữ, tiêu biểu là tiếng Anh, mỗi từ có thé có nhiều biến thé khác nhau Điều này làm cho việc so sánh giữa các từ là không thé mặc dù về mặc ý nghĩa cơ bản là như nhau Ví dụ các từ “walks“, “walking“, “walked” đều là các biến thé của từ “walk” và đều mang ý
nghĩa là “đi bộ” Vậy làm sao để so sánh các từ như thế với
nhau? Lemmatization va Stemming chính là 2 kỹ thuật thường được dùng cho việc này.
Trang 20Kỹ thuật Stemming
Stemming là kỹ thuật dùng dé biến đổi 1 từ về dạng gốc (được gọi là stem hoặc rootform) bằng cách cực kỳ đơn giản là loại bỏ 1 số ký tự nằm ở cuối từ mà nó nghĩ rằng làbiến thể của từ Ví dụ như chúng ta thấy các từ như walked, walking, walks chỉ khácnhau là ở những ký tự cuối cùng, bang cách bỏ đi các hậu tố —ed, —ing hoặc —s, chúng ta
sẽ được từ nguyên gốc là walk Người ta gọi các bộ xử lý stemming là Stemmer
Bởi vì nguyên tắc hoạt động của stemmer rất là đơn giản như vậy cho nên tốc độ xử lý
của nó rat là nhanh, và kết quả stem đôi khi không được như chúng ta mong muốn Chang hạn như từ goes sẽ được stem thành từ goe (bỏ chữ s cuối từ) trong khi đó stem của
từ go vẫn là go, kết quả là 2 từ “goes” và “go” sau khi được stem thì vẫn không giốngnhau Một nhược điểm khác là nếu các từ dạng bất quy tắt như wenthay spoke thì stemmer sẽ không thé đưa các từ này về dạng sốc là go hay speak
dạng như nhau Người ta gọi bộ xử lý lemmatization là lemmatizer
Nhược điểm của lemmatization là tốc độ xử lý khá chậm vì phải thực hiện tra cứu từtrong cơ sở dit liệu Trong các ứng dụng xử lý NLP mà cần độ chính xác cao hơn và thờigian không quan trọng, người ta có thé sử dụng Lemmatization
Trang 21Vector hóa văn bản
Vector hoá dữ liệu văn bản là một bước quan trọng của quy trình xử lý ngôn ngữ tự nhiên
(natural language processing) Hầu hết các thuật toán gom cụm đều nhận đầu vào là cácvector n chiều (n tuỳ vào kiểu dit liệu, quá trình tiền xử lý) Do đó ngôn ngữ tự nhiêncần một phương pháp dé xử lý chuyển đổi chúng trở thành đầu vào phù hop cho cácthuật toán máy học (machine learning) mà trước đó chỉ được sinh ra dé xử lý các dạng
đữ liệu vector.
Trang 222.2.1 Mô hình túi từ
Mô hình túi từ là một phương pháp biéu diễn từ đơn giản được sử dụng trong xử lý ngônngữ tự nhiên và truy vấn thông tin (IR) Trong mô hình này, một văn bản sẽ được biểudiện như một túi các từ tạo nên văn bản đó, bỏ qua về mặt cú pháp và trật tự các từ nhưngvan giữ lại được tính chất đa dạng
Mô hình túi từ thường được sử dụng trong phân lớp văn bản khi mà tần suất xuất hiện
của mỗi từ sẽ được sử dụng làm đặc trưng cho bộ phân lớp
"Phuc", "thích"; "xem", "phim", "Dat" "cũng", "thích", "xem", "phim"
"Bich" "cũng" "thích" "xem" "các" "tran" "bóng" "da"
Sau khi chuyền đổi văn bản thành một "túi từ", chúng ta có thé tìm các biện pháp khácnhau dé mô tả văn bản Loại đặc điểm hoặc tinh năng phô biến nhất được tính toán từ
mô hình túi từ là tan số thuật ngữ, cụ thể là số lần một thuật ngữ xuất hiện trong văn ban
Từ ví dụ trên, có thé biéu diễn lại thành hai vector văn bản như sau:
Trang 23(1) [1, 2, 2, 2, 1, 1, 9, 9, 9, 9, @]
(2) [9, 1, 1, 9, 9, 1, 1, 1, 1,.1, 1]
2.2.2 Không gian vector
Nói một cách ngắn gọn, Vector space model (Mô hình không gian vector) là một môhình đại số (algebraic model) thé hiện thông tin văn bản như một vector, các phần tử củavector nay thé hiện mức độ quan trọng của một từ và cả sự xuất hiện hay không xuất
hiện (Bag of words) của nó trong một tài liệu.
Mô hình này biéu diễn văn bản như những điểm trong không gian Euclid n-chiéu, mỗichiều tương ứng với một từ trong tập hợp các từ Phan tử thứ i, là di của vector văn bảncho biết số lần mà từ thứ ¡ xuất hiện trong văn bản Sự tương đồng của hai văn bản đượcđịnh nghĩa là khoảng cách giữa các điểm, hoặc là góc giữa những vector trong không
gian.
Mỗi từ trong không gian vector sẽ có một trọng số, có nhiều phương pháp xếp hạng khác
nhau, nhưng tf-idf (term frequency—inverse document frequency) là một phương pháp
phổ biến dé đánh giá và xếp hạng một từ trong một tài liệu MySQL fulltext search cũng
sử dụng phương pháp này Về cơ bản thì tf-idf là một kỹ thuật (cụ thể là ranking function)giúp chuyên đồi thông tin đưới dang văn bản thành một Vector space model thông qua
các trọng số Vector space model và tf-idf được phát triển bởi Gerard Salton vào đầu
thập niên 1960s.
Mặc dù đơn giản, nhưng mô hình không gian vector và những biên thé của nó hiện nay
vân là cách phô biên đê biêu diễn văn bản trong Data mining và Information retrieval.
Trang 24Tuy nhiên, một trong những điểm yếu của vector space model số chiều lớn dimensonal), có khoảng cỡ chục triệu chiều trong không gian vector nếu như chúng ta
(high-áp dụng nó vào web search engine.
Hình 2.3 Mô hình không gian vector
2.3 Một số thuật toán gom cụm
Phương pháp Clustering là một phương pháp quan trọng và ứng dụng phô biến trong các
dự án phân tích đặc thù của dữ liệu, bang cach tập hợp dữ liệu thành nhiều cụm (nhóm)
khác nhau.
2.3.1 K-Means
K-Means là thuật toán rất quan trọng và được sử dụng phổ biến trong kỹ thuật phân cụm
Tư tưởng chính của thuật toán K-Means là tìm cách phân nhóm các đối tượng (objects)
Trang 25đã cho vào K cụm (K là số các cụm được xác đỉnh trước, K nguyên dương) sao cho tôngbình phương khoảng cách giữa các đối tượng đến tâm nhóm (centroid ) là nhỏ nhất.
Thuật toán K-Means thực hiện qua các bước chính sau:
B1: Chọn ngẫu nhiên K tâm (centroid) cho K cụm (cluster) Mỗi cụm được đại diện
băng các tâm của cụm.
B2: Tính khoảng cách giữa các đối tượng (objects) đến K tâm (thường dùng khoảng
cách Euclidean)
B3: Nhóm các đối tượng vào nhóm gần nhất
B4: Xác định lại tâm mới cho các nhóm
B5: Thực hiện lại bước 2 cho đến khi không có sự thay đổi nhóm nảo của các đối
tượng
Sơ đồ luồng xử lí K-Means
Number of Cluster K
Trang 262.3.2 Agglomerative clustering
Agglomerative Aapproach (bottom up approach) là | phương pháp trong kỹ thuật phan
nhóm theo thứ bac (Hierarchical Clustering Techniques) Ban đầu, chúng ta xem mỗi đốitượng là 1 nhóm (cluster) và nhóm 2 đối tượng gần nhất thành 1 cluster Quá trình nàylặp lại cho đến khi tất cả các đối tượng được nhóm vào 1 cluster cuối cùng
Các bước trong kỹ thuật phân cụm Agglomerative Approach như sau:
BI: Chuyền đôi các đặc trưng (thuộc tính - Features) của đối tượng (objects) vào ma trận
Trang 27Thuật toán Agglomerative Hierarchical Clustering (gọi tắt là AHC) được mô tả như sau
Trang 282.3.3 BIRCH
BIRCH (Balanced Iterative Reducing and Clustering using Hierarchies) là thuật toán
phân cụm phân cấp sử dung chiến lược Top Down
Phương pháp Top Down: Bắt đầu với trạng thái là tất cả đối tượng được xếp trong cùng
một cụm
Mỗi vòng lặp thành công, một cụm được tách thành các cụm nhỏ hơn theo giá trị củamột phép đo độ cho đến khi điều kiện dừng thỏa mãn
Y tưởng của thuật toán là không cần lưu toàn bộ đối tượng dữ liệu của các cụm trong bộ
nhớ mà chỉ lưu các đại lượng thống kê
Đối với mỗi cụm dữ liệu, BIRCH chỉ lưu một bộ ba (n, LS, SS)
Trong đó:
n: là số đối tượng trong cụm
LS: là tổng các giá trị thuộc tính của các đối tượng trong cụm
SS: là tổng bình phương các giá trị thuộc tính của các đối tượng trong cụm
Các bộ ba này được gọi là các đặc trưng của cụm kí hiệu CF (Cluster Features) và được lưu trong một cây được gọi là cây CF
Trang 29mow oon na~
Leaf node
Hình 2.6 Mô tả thuật toán gom cum BIRCH
Một cây CF bao gồm 2 tham số đặc trưng:
Yếu tố nhánh B: Nhằm xác định số tối đa các nút con của mỗi nút trong cây
Ngưỡng T: Khoảng cách tối đa giữa bất kỳ một cặp đối tượng trong nút lá của cây,
khoảng cách này còn gọi là đường kính của các cụm con được lưu tại các nút lá
Trang 30Các bước trong thuật toán BIRCH:
BI: Duyệt tất cả các đối tượng trong CSDL và xây dựng một cây CF khởi tạo Một đối
tượng được chèn vào nút lá gần nhất tạo thành cụm con Nếu đường kính của cụm con
này lớn hơn T thì nút lá được tách Khi một đối tượng thích hợp được chèn vào nút lá,
tất cả các nút trỏ tới gốc của cây được cập nhật
B2: Thực hiện phân cụm, các nút lá của cây CF lưu giữ các đại lương thống kê của các
cụm con.
B3: Phân phối lại các đối tượng dữ liệu bằng cách dùng các đối tượng trọng tâm cho các
cụm từ B2
Khi hòa nhập 2 cụm ta có: CF=CF¡+CFa = (nitn2; LSI+LSa, SSi+SS2)
Khoảng cách giữa các cụm có thé đo bằng khoảng cách Euclid, Manhatta
Trang 312.3.4 DBSCAN
Là kỹ thuật phân cụm dựa trên mật độ, ý tưởng chính đằng sau DBSCAN là một điểm
thuộc về một cụm nêu nó gan với nhiêu diém từ cụm đó.
Có hai tham sô chính của DBSCAN:
e eps: Khoảng cách chỉ định các vùng lân cận Hai điêm được coi là hàng xóm nêu
khoảng cách giữa chúng nhỏ hơn hoặc bang eps
« minPts: Số điểm dữ liệu tối thiểu để xác định một cụm.
« Diém cot lõi: Một điêm là điêm cot lõi nêu có ít nhât sô diém minPts (bao gôm
cả chính điêm đó) trong khu vực xung quanh của nó với bản kính eps.
« Diém biên giới: Một điêm là điêm biên giới nêu nó có thê tiép cận được từ một
điêm cot lõi và có sô điêm nhỏ hơn minPts trong khu vực xung quanh của nó.
« - Điêm ngoại lệ: Diém là điêm ngoại lệ nêu nó không phải là diém cot lõi và không
Hình 2.7 Mô tả quá trình xử lý của thuật toán DBSCAN
Trang 32Trong trường hợp này, minPts là 4 Điểm màu đỏ là điểm cốt lõi vì có ít nhất 4 điểmtrong khu vực xung quanh của chúng với bán kính eps Khu vực này được hiển thị vớicác vòng tròn trong hình Các điểm màu vàng là các điểm biên giới vì chúng có thê tiếpcận được từ một điểm chính và có ít hơn 4 điểm trong vùng lân cận của chúng Có thểtiếp cận có nghĩa là ở trong khu vực xung quanh của một điểm cốt lõi Các điểm B và C
có hai điểm (bao gồm cả chính điểm đó) trong phạm vi tân sinh của chúng (tức là khu
vực xung quanh có bán kính eps) Cuối cùng N là điểm ngoại lệ vì nó không phải là điểm cốt lõi và không thê đạt được từ điểm cốt lõi.
Trong đó:
e minPts va eps được xác định.
« Điểm bat đầu được chon ngẫu nhiên tại khu vực lân cận của nó được xác định
băng cách sử dụng bán kính eps Nếu có số điểm ít nhất minPts trong vùng lâncận, điểm đó được đánh dau là điểm cốt lõi và bắt đầu hình thành cụm Nếu không,điểm được đánh dấu là nhiễu Khi bắt đầu hình thành cụm (giả sử cụm A), tất cảcác điểm trong vùng lân cận của điểm ban đầu sẽ trở thành một phần của cụm A.Nếu các điểm mới này cũng là điểm cốt lõi, thì các điểm nằm trong vùng lân cận
của chúng cũng được thêm vào cụm A.
« - Bước tiếp theo là chọn ngẫu nhiên một điểm khác trong số các điểm chưa được
thăm ở các bước trước Sau đó, quy trình tương tự được áp dụng.
¢ Qua trình này kết thúc khi tat cả các điểm được truy cập
Bằng cách áp dụng các bước này, thuật toán DBSCAN có thể tìm thấy các vùng có mật
độ cao và tách chúng khỏi các vùng có mật độ thâp.
Trang 33Một cụm bao gôm các diém cot lõi là lang giêng (tức là có thê tiép cận được với nhau)
và tat cả các diém biên giới của các diém cot lõi này Điêu kiện bắt buộc dé tạo thành một cụm là phải có ít nhât một diém cot lõi Mac dù rat khó xảy ra, chúng ta có thê có một cụm chỉ có một diém cot lõi và các diém biên giới của nó.
Giống như DBSCAN, OPTICS yêu cầu hai tham số, mô tả bán kính khoảng cách tối đa
để xem xét và MinPts, mô tả số lượng điểm cần thiết dé tạo thành một cụm Điểm plađiểm cốt lõi nếu ít nhất các điểm MinPts được tìm thay trong vùng lân cận Ne(p) bao
gồm chính điểm p
2.3.6 Spectral clustering
Gom cụm quang phô (Spectral clustering) là một kĩ thuật thuộc nhóm EDA có kha năngchuyền hóa bộ dit liệu đa chiều phức tạp thành các cụm dữ liệu có ít chiều hơn ban dau.Trọng tâm của thuật toán này hướng đến việc gom cụm toàn bộ quang phổ (spectrum)của các điểm dữ liệu chưa được tô chức trên chiều không gian vector vào các cụm dựa
vào các đặc thù của chúng.
2.3.7 Gaussian mixtures
Thuật toán Gaussian Mixture sử dung lý thuyết về Tối đa hóa kỳ vọng (Expectations
Maximization) để xây dựng các mô hình hỗn hợp Gauss (Gaussian Mixture Models)
Thuật toán này còn có khả năng vẽ ra các elip tin cậy (confidence ellipsoids) cho các mô
hình đa chiều và cả tính toán Chỉ số thông tin Bayes nhằm mục đích tìm ra số cụm trong
bộ dữ liệu.
Trang 342.3.8 Mini Batch
MiniBatchKMeans là một biến thé của thuật toán KMeans sử dụng các lô nhỏ dé giamthời gian tính toán, trong khi van cô gang tối ưu hóa cùng một hàm mục tiêu Các lô nhỏ
là các tập hợp con của dữ liệu đầu vào, được lấy mẫu ngẫu nhiên có kích thước cô định
dé chúng có thé được lưu trữ trong bộ nhớ Mỗi lần lặp, một mẫu ngẫu nhiên mới từ tập
dữ liệu được thu thập và được sử dụng để cập nhật các cụm và điều này được lặp lại chođến khi hội tụ Mỗi lô nhỏ cập nhật các cụm bằng cách sử dụng kết hợp lồi của các giátrị của nguyên mẫu và dữ liệu, áp dụng tốc độ học giảm theo số lần lặp Các lô nhỏ nàylàm giảm đáng ké số lượng tính toán cần thiết dé hội tụ thành một giải pháp cục bộ
2.3.9 Mean-Shift
MeanShift clustering nhằm mục đích khám phá các đóm màu 6 mật độ mịn của các mẫu
N6 là một thuật toán dựa trên trọng tâm, hoạt động bằng cách cập nhật các ứng cử viên
cho trọng tâm là giá trị trung bình của các điềm trong một khu vực nhất định Nhữngđiểm trọng tâm nay sau đó được lọc trong một giai đoạn xử lý hậu kỳ dé loại bỏ các bảnsao gần như trùng lặp đề tạo thành tập hợp các trọng tâm cuối cùng
Trang 352.4 Tiêu chuẩn đánh giá thuật toán gom cụm
Ba phương pháp phô biến thường được sử dụng trong đánh giá thuật toán gom cụm bao
x
b
gôm
2.4.1 Silhouette Score
Silhouette là một phương pháp giải thích va tính nhất quán trong các cụm dữ liệu Giá
tri silhoutte là thang do mức độ của một đối tượng với cụm của chính nó so với các cụm
khác.
Giá trị của silhouette score sẽ nam trong khoảng từ -1 đến 1
Silhouette score nam gan 1 nghĩa là ví dụ dang được phân cụm chính xác, xa các cum
khác
Silhouette score gần 0 nghĩa là vi dụ đang nằm gần đường bao của cụm
Silhouette score gần -1 nghĩa là ví dụ đang bi phân sai cum
e ala khoảng cách trung bình tới các vi dụ khác ở trong cùng một cum
« b là khoảng cách trung bình tới các ví dụ trong cụm gần nhất
Trang 36- Tham số trace (BCSM) được tinh bằng tổng bình phương khoảng cách giữa tâm
của các cụm với tâm của toàn bộ dữ liệu, được g1a trọng bằng kích thước của cụm
- Tham số trace (WCSM) là tông bình phương khoảng cách giữa tâm của mỗi cum
với tất cả các điểm còn lại của cụm đó
- _N là số dòng đữ liệu của dữ liệu ban dau
- k là sô cụm được phân ra từ dit liệu ban đâu.
Diém sô Calinski-Harabasz càng cao khi mà các cụm được phân hoạch tot.
Calinski-Harabasz sử dung tâm của các cụm dé tính toán độ phân tán giống với
Davies-Bouldin Tuy nhiên đối với phương pháp Calinski-Harabasz, độ phân tán được tính làkhoảng cách so với tâm của toàn bộ dữ liệu thay vì là tâm của các cụm cụ thể Hệ sốchuẩn hoá (N - k)/ (k - 1) đóng vai trò giảm đi kết quả của Calinski-Harabasz khi k tăng
^
lên.
Trang 372.4.3 Davies-Bouldin Score
Davies-Bouldin biểu thị độ 'tương tự' trung bình giữa các cụm, trong đó độ tương tự là
thước do so sánh khoảng cách gitta các cụm với kích thước của chính các cụm đó
Giá trị càng gần 0 cho thấy phân vùng đó càng tốt
Trang 382.5 Giới thiệu thư viện Sklearn Cluster
Scikit-Learn
Scikit-Learn là một tập hợp các công cụ dé thực hiện các tác vụ liên quan đến khai thác
và phân tích dữ liệu Nền tảng của nó được xây dựng dựa trên SciPy, NumPy vàMatplotlib Nó bao gồm các mô hình phân loại, phân tích hồi quy, nhận dang hình anh,các phương pháp giảm dữ liệu, lựa chọn và điều chỉnh mô hình, và nhiều thứ khác
NumPy
Nó là một thư viện Python mở rộng được sử dung cho các tính toán khoa hoc.
NumPy thúc đây việc bạn sử dung các hàm phức tạp, đối trong mảng N-chiéu, các công
cụ để tích hợp mã C /€ ++ và Fortran, các khái niệm toán học như dai 36 tuyén tinh, kha
năng số ngẫu nhiên, v.v Bạn có thé sử dụng nó như một vùng chứa đa chiều dé xử lý dữ
liệu chung của mình Nó cho phép bạn tải dữ liệu sang Python và xuất dữ liệu từ cùng
Matplotlib
Day là một thư viện vẽ đồ thị phd biến của Python được các Nha khoa học dữ liệu sửdụng rộng rãi để thiết kế nhiều số liệu ở nhiều định dạng tùy thuộc vào khả năng tương
Trang 39biêu đô phân tán, biêu đô, biêu đô thanh, v.v của riêng mình Nó cung câp một bản vẽ
2D chất lượng tốt và một bản đồ 3D cơ bản với mức sử dụng hạn chế
Pandas
Pandas là thư viện mã nguồn mở mạnh mẽ nhất của Python để thao tác dữ liệu Nó đượcgọi là Thư viện phân tích dữ liệu Python Nó được phát triển trên gói NumPy.DataFrames được coi là cấu tric dit liệu được sử dụng nhiều nhất trong Python, giúp bạn
xử lý và lưu trữ đữ liệu từ các bảng bằng cách thực hiện các thao tác trên các hàng vàcột Pandas rất hữu ích trong việc hợp nhất, định hình lại, tổng hợp, tách và chọn dữ liệu
Trang 40Chương 3: Phương pháp thực hiện
3.1 Mô tả bài toán
Twitter là một nền tang micro-blogging sở hữu hàng triệu ngươi dùng trên toàn thé giới,nơi tập hợp hàng loạt các nội dung mà người dùng có thể đăng tải và trao đôi qua lại cáctin nhắn với độ dài tối đa lên đến 140 kí tự (hay còn được gọi là các “tweet”) Do đó, đây
có thê được xem là một trang tin tức với khối lượng thông tin không lồ trên toàn thế giới
trong thời gian thực, là nguồn dữ liệu vô cùng tốt cho các công việc nghiên cứu đặc biệt
là với các sự việc gây ảnh hưởng tới toàn cầu như dai dịch Covid-19 trong năm nay Đặcbiệt với các trang mạng xã hội như twitter người dùng có thé phân loại bài viết của bản
thân thông qua các hashtag, điều này khiến cho việc phân nhóm các từ khóa hashtag trở
thành một công cụ hỗ trợ các nhà nghiên cứu, các cơ quan và các tô chức có thé nghiêncứu, khoanh vùng cũng như nắm bắt được phản ứng của người dân để hỗ trợ ra quyết
định thực hiện các biện pháp, hành động hợp li là điều vô cùng quan trọng Chính vì vậy
mà nhóm đã quyết định tiến hành nghiên cứu va áp dụng các thuật toán trong xử lý dữliệu dé tìm ra thuật toán nào cho ra kết quả tốt nhất
3.2 Tiền xử lý dữ liệu
3.2.1 Thu thập dữ liệu
Twitter hiện đang cung cấp công cụ “Twitter API” với đường dẫn sau:
https://developer.twitter.com/en/use-cases/listen-and-analyze
Tuy nhiên, vì lý do bao mật, an toàn thông tin người dùng nên công cụ trên chi được
cung cấp cho các đối tác thoả mãn các chính sách về bảo mật thông tin của Twitter Mặc
dù Twitter API có hỗ trợ cho nghiên cứu trong môi trường giáo dục, tuy nhiên Việt Nam
không phải là quốc gia được hỗ trợ và điều này khiến cho việc thu thập dit liệu chỉ có