TÓM TẮT KHÓA LUẬNKhoá luận với đề tài “Xây Dựng Website Báo Điện Tử Tích Hợp Hệ Thống Khuyến Nghị Nội Dung” là một hệ thống với hai nghiệp vụ chính là quản lý các bàibáo điện tử và cung
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN
KHOA HE THONG THONG TIN
VO THÀNH ĐÔ - 19521365
KHÓA LUẬN TÓT NGHIỆP
XÂY DỰNG WEBSITE BAO ĐIỆN TỬ TÍCH HỢP HE THONG
KHUYEN NGHỊ NỘI DUNG
BUILD AN ONLINE NEWS WEBSITE WITH A CONTENT
RECOMMENDATION SYSTEM
KY SU NGANH HE THONG THONG TIN
GIANG VIEN HUONG DAN THS THAI BAO TRAN
Trang 2LỜI CẢM ƠN
Em xin gửi lời cảm ơn đến các thầy cô giáo của Trường Đại học Công Nghệ Thông
Tin đã dạy bảo và truyền đạt cho em những kiến thức chuyên môn và nén tảng trongsuốt quá trình học tập
Em xin gửi lời cảm ơn chân thành đến Cô Thái Bảo Trân, giảng viên hướng dẫn
của em trong quá trình thực hiện khoá luận tốt nghiệp với đề tài: Xây Dựng Website
Báo Điện Tử Tích Hợp Hệ Thống Khuyến Nghị Nội Dung (Build An Online News
Website With A Content Recommendation System) Cô đã tận tình hỗ trợ, chi bao và
động viên em trong suốt quá trình nghiên cứu và hoàn thiện khoá luận Nhờ có sự
hướng dẫn của cô, em đã có thêm nhiều kiến thức và kinh nghiệm quý báu về ngành
Hệ Thống Thông Tin
Em xin cảm ơn gia đình, bạn bè và những người đã ủng hộ và động viên em trong
quá trình hoàn thành khoá luận này.
Cuối cùng, em xin gửi lời cảm ơn đến các Anh Chị và các bạn sinh viên trường
Dai học Công nghệ Thông tin đã nhiệt tình hỗ trợ, chia sẻ ý kiến, góp ý giúp em trongsuốt thời gian thực hiện khóa luận Một lần nữa, em xin chân thành cảm ơn và xin
gửi lời chúc sức khỏe đến quý Thầy Cô Kính chúc khoa Hệ Thống Thông Tin ngàycàng phát triển và thành công
Vì thời gian có hạn nên khóa luận không tránh khỏi những sai sót Em rất mong
nhận được những ý kiến đóng góp của quý thầy cô và các bạn
TP Hồ Chí Minh, tháng 06 năm 2023
Sinh viên thực hiện
V6 Thành Đô
Trang 3MỤC LỤC
TOM v90 4 000/9077 1
CHUONG 1 TONG QUAN viesesssesssssssssssssseeeeeessesesssssssmmmmtnsnnnnsnnssssssseeeeeeeeeeeeeee 2
1.1 Dat VAN AG ae eeeccccccccccseesssnsssnssnnnnnseessseeeeeceeececceccesessnnnnnntnnnnmnsssesseeseeeeeee 2
1.3.2 Mot số website đọc báo trực tuyến thế giới
1.3.2.1 The New York Times 6-5-5252 Sctstsrrrrrrrrerrree 5 1.3.2.2 BBC News.
1.3.3 Đánh giá chung -SĂS+Strớy 8
1.4 Lý do chọn đề thi cecccccccccsseeesssssessesssssessssssssecsssuscesssssecessseeessssnecesssineeees §1.5 Đối tượng và phạm vi nghiên cứu .-. -: cvc+z++trrvrreecee 81.5.1 Đối CUO voeecsssecessssseesssssseessosssecsssssusccsssssesessssscesssusecssssuesessssessessseess 8
Trang 42.443 REST APH à 22222 24 2.4.4 Django Rest Framework 6-6-5 SeS+cstskerrerrkrkeree 25
2.45 MySQIGG,t À 26
CHƯƠNG 3 DE XUẤT XỬ LÝ THUẬT TOÁN -+¿ 28
3.1 Thu thập dữ liệu c¿cccccEEEEEErttttiiiirrrrrrrrrrrrre 28
3.2 Thiết kế hệ thống khuyến nghị -c+c++222cvvsccccezrrrz 29
3.2.1 _ Xử lý trên tập Datase( -c- sec 29
3.2.1.1 Sơ đồ Hee 293.2.1.2 Mô tả các thành phần -:: -+2222222EEErkrrkrrrrrercvee 29
3.2.2 Xử lý khi có thêm dit liệu mới -ccvvcvvvvvvcccccc+ 30
3.2.2.1 Sơ đồ luồng dit liệu 2222cccccrrrrrrrrrrrrrrrrrrrrrree 30
3.2.2.2 Mô tả các thành phần :: -+22222ccerrrrrrkrrrrrerrvee 30
3.3 Hệ thống khuyến nghị -22¿22VE+2+tSEEESEtEEEEEEErrtrrkkrrrrrkrree 31
Trang 53.3.2 Trích xuất đặc trưng : -cc+cc2cvvrrerrrvvrrerrrrrrrrrr 343.3.2.1 Lan đầu tiên
3.3.2.2 Thêm dữ liệu mới - +5+5+5++c+sc+tsxsxervserrxe 35
3.3.3 Đưa ra khuyến nghi
3.3.4 Lưu trữ kết quả khuyến nghị -2¿©2+c222v++crecrrseccrrr 36
CHƯƠNG 4 PHAN TÍCH THIET KE VÀ TRIEN KHAI
4.1 Mô tả nghiệp Vu we ec eceeeesescecesesesescstenessseseseensscsssesssseeacseesenene DD
4.1.1 Yéu cầu chức năng
4.1.2 Yêu cầu phi chức năng -22+++22++ztcvcvvrrrrrrrrrrrrrrer 374.2 Thiết kế kiến trúc ceeeeeeeceerrrrrrrrrkiiiiiiiiiirrirrirrrrrre 384.2.1 Sơ đồ kiến trúc htrtiiiiiiiiirrrrirrrrrre 38
4.2.2 Mô tả các thành phần của kiến trúc -.-c -++ 384.3 Thiết kế các Use case tre 39
4.3.1 Sơ đồ Use case àằĂecccceeerrrereeerreee Ð
4.3.2 Danh sách các AC(Or -cc+c+csceeercece 20)
4.3.3 Danh sách các Ủsecase -.ccc tr 40
4.3.4 Đặc ta các Use case và sơ đồ hoạt động (Activity Diagram) 4I
4.3.4.1 Đọc bài báo càng HH Hư 4I
4.3.4.2 Tìm kiếm bài báo -¿-222++++2222++ttEEEEerrrrrrkrrerrrrrrccre 42
4.3.4.3 Gửi bình luận cc Set nhe 43 4.3.4.1 Quản lý bài báo che 44 4.3.4.2 Quản lý bình luận oo sees ee ee ceseseecsesteseseeesreneneseeeeee! 46
Trang 64.4.2 Tìm kiếm bài báo -.:¿:©2222+t22EvvrttEEEkvrrrtrrtrrrrrrrrrrrrrkev 49
4.5.2.1 Bang Commens -.¿5+5555+S2+cx+xsecxerrekeree 55
4.5.2.1 Bảng Relateds ch Hướ 55
4.6 Mô tả khái quát các thành phan trong hệ thống - 56
4.6.1 Sơ đồ các thành phần trong hệ thống -2 564.6.2 Mô tả các thành phan trong hệ thống -2 56
4.7 Công cụ hỗ trợ -222c22 x22 t2 tt 57
4.7.1 Visual Studio COde - «St ShStH HH gưưn 57
4.7.2 Jupyter notebook c+cc+ccseserieekerererrrerrree 57
4.7.3 POstman Ăn HH HH gướ 57
4.8 Triển khai Website h0: - 58
4.8.1 | Danh sách màn hình Website đọc báo -¿ +++scxsss+ss+ 58
Trang 74.8.2.3 Trang tìm kiếm 2¿c2222+2t2CEEvvrtErrvrrrrrrrvrrerrrrrrcrl 634.8.2.4 Trang phân theo thể loại
4.9 Hệ thống quản lý nội dung ¿¿-2++22v+z+etvvxvererrrsreerr 65
4.9.1 Danh sách màn hình quản lý nội dung
4.9.2 Mô tả chỉ tiết các màn hình quản lý nội dung - 664.9.2.1 Trang quản lý bài viết
4.9.2.2 Trang quản lý bình luận -. - -++s+s+<+<+<+xece+ 67
4.9.2.3 Trang tạo bài viết
4.9.2.4 Trang sửa bài viẾt -csccc22cvccrScErrrtrrrtrrrrrrrrrrerrrrrrce 69
CHƯƠNG 5 KÉT LUẬN VÀ HƯỚNG PHÁT TRIẺN 70
5.1 - Kết quả đạt được -cccccccccceceErrkererrrkrrerrkreerrer 70
5.2 Ưu điểm và hạn chế -222+¿2222V2vv+rretrrrrrrrrrrrrrrrrrrrree 7I
5.3 _ Thuận lợi và khó khăn ¿5:5 ¿5+ +2 tt + £Evxereketeterrerrrrrexer 72 5.3.1 Thuận lợi -c-cccccccccccccvverrrrrrrrrrkrrerrrrrrer 72
5.3.2 Khó khăn -cccccccccccECCEverrrrrrrrrrrkrrererrrrer 72
5.4 Hướng phát triỂn .-:5222++t2CEkvrteErrkrretrrrtrrerrrrrrrrer 73
5:00 (ÄAÁä ,ÔỎ 74
Phụ lục 1 Một số màn hình trên thiết bị di động - -= 74TÀI LIEU THAM KHẢO -.22-222222222222+222E2E222223E2222231222221222222exee 84
Trang 8.1 Trang chủ VnEXpT€SS - ¿532222 St 2v 3221 121112101111 1e 3
.2 Các bài báo được khuyến nghị trên VnExpress - -cc-ccc2 3
.3 Trang chủ 24h ¿- - + ST E12 21212121 11012 1 010101 ng 4
.4 Các bài báo được khuyến nghị trên 24h 2¿©22+++evcvvzrcrre 4
.5 Trang chủ The New York Times ¿-¿ ¿5+5 + stketekrrkrrre 5
.6 Các bài báo được khuyến nghị trên The New York Times 5
.7 Trang chủ BBC News chàng Hit 6
.8 Một số câu chuyện được gợi ý trên BBC News ccccieekec 7
2.1 Các bài báo có cùng nội dung
2.2 Sử dụng KNN đề dự đoán mức độ tương tự giữa các bài viÊt 122.3 Sử dụng TF-IDF dé chuyền văn bản thành ma trận đặc trưng 17
3.2 Thiết kế hệ thống khuyến nghị trên tập Dataset - 29
3.3 Thiết kế hệ thông khuyến nghị khi có thêm dữ liệu mới - 303.4 Kết quả chèn dữ liệu và database c¿2222zctvccvvrretrrvrrrrrrrrree 323.5 Dữ liệu sau khi chuẩn hoá ©22-55scserterteerteerrerrrerrrrrr 33
3.6 Lấy dữ liệu mới trong database . :5ccccccccvsecscrrrseccerrseecee 23.7 Kết quả dự đoán và hệ số khớp nhau -.2¿¿©2¿+22+zz+2ccvscee 36
4.1 Sơ đồ Use case tổng quất -222¿222+2+t2222++eEEEErrrtrkkrrerrrkrrrrrr 39
Trang 9Hình 4.6 Sơ đồ hoạt động Use case quan lý bình luận - 47
Hình 4.7 Sơ đồ tuần tự của Use case đọc bài báo +scscxsscsssrrrrrresrsee 48
Hình 4.8 Sơ đồ tuần tự của Use case tìm 10a 49Hình 4.9 Sơ đồ tuần tự của Use case gửi bình luận - - - sc++s+x+cee 50
Hình 4.10 Sơ đồ tuần tự của Use case quản lý bài báo . -cccc+ccsscez 51Hình 4.11 Sơ đồ tuần tự của Use case quản lý bình luận .-:-¿ 52
Hình 4.12 Sơ đồ cơ sở dữ TIỆU - 1 1S HH HH ghế 53Hình 4.13 Khái quát các thành phần của hệ thống -.-: ¿¿+++ 56
Hình 4.14 Logo Visual Studio COde ¿-¿- + +S+S++t+xterertrkrkerrrerkrkrkrree 57
Hình 4.15 Logo Jupyter not€bOOk - ‹- - - + 5* St EEk2k SE vưy 57
Hình 4.16 Logo PostIman ¿- - + ¿5< * 6E E$EEEEEEEEkEEEEEETv 11110111 1 111111 57
Hình 4.24 Màn hình trang quản lý bình luận «¿+ - <2 <sc<++z++<+s<++ 67
Hình 4.25 Màn hình trang tạo bài Vist cc.ccscseessssssesssssssessssssecsecsssecssssseesssesseescessees 68Hình 4.26 Màn hình trang sửa bài Vi6t eeceeessssseeecccccssssseessccecssssteeeeeecesssnneeseecessen 69
Hình 0.1 Màn hình trang chủ mobiÏe ¿-¿- - ¿5< 55+ k‡*‡EvEvrkekerekerrkrketee 74
Hình 0.2 Màn hình trang thê loại mobile ¿ - 5 2 25++++ss+£e£++xzx+evzsr+ 75
Hình 0.3 Màn hình trang thể loại mobile ¿¿©2z++22++z++22+zzrrrrxscee 76
Hình 0.4 Màn hình trang tìm kiếm mobile - : 2£ ©+z++222v+zz+2vvszcezz Hi
Hình 0.5 Màn hình khi đang load mobile ¿-¿- 5-5252 52>++++c+ss£z+zxses> 78
Hình 0.6 Màn hình các thể 0u 90111 79
Trang 10Hình 0.9 Màn hình gửi nhận xét mobile
Hình 0.10 Màn hình các bai báo được đề xuất mobile
Trang 11-DANH MỤC BẢNG
Bảng 4.1 Bảng mô tả các thành phần kiến trúc .: ¿©2222 38
Bang 4.2 Danh sách các AC(OT tt vs Eskrrerrrerrksrkrrrrrerrrrrrrsvrercre OD
Bang 4.3 Danh sách các Use Case ¿5-6 5S S* 2 3 v2 2y 40
Bảng 4.4 Đặc tả Use case đọc bài báo -c- set ướn 4I
Bảng 4.5 Đặc tả Use case tìm kiếm bài báo -©222+c2222xzrerrrkecrrrrreerrrr 42
Bảng 4.6 Đặc ta Use case gửi bình luận -¿-¿- + c5 Sx xe 43
Bang 4.7 Đặc ta Use case quan lý bài báo - 5 +5+5c+c+scsccxexsrerre 44
Bảng 4.8 Đặc tả Use case quản lý bình luận - es < +5+++cc+xerzxexsrerre 46 Bang 4.9 Bang POS( St nh HT HH HH Hit 54
Bảng 4.10 Bảng SeT 5c 52 S22 2.2 17121221212101 1112121010101 re 54 Bang 4.11 Bang Cat€EOFICS St S1 TH TH HH HH Hư 54
Bang 4.12 Bảng ComimefIS - ¿+ - +5: 52525 2S *E‡E‡EeEeEeErkrkrkerrrkrkrkerrree 55
Bảng 4.13 Bảng Relateds
Bang 4.14 Bảng mô tả các thành phan trong hệ thống - 56
Bảng 4.15 Bảng danh sách các màn hình Website đọc báo -. - - «+ 58
Bang 4.16 Bang mô tả màn hình trang chủ - eseseeeenenesseneneseneeeeeeees 59
Bảng 4.17 Bang mô tả màn hình đọc báo — tiêu đề -ccz+ccssceeex 60
Bảng 4.18 Bang mô tả màn hình đọc báo — nội dung chính 61
Bang 4.19 Bang mô tả man hình đọc báo — g6p ý ¿-¿- - 5+ Sc++xzxscercr+ 62
Bảng 4.20 Bang mô tả màn hình tìm kiếm -2¿¿©+zc+222vvzevevvseceeex 63
Bang 4.21 Bang mô tả màn hình thể loại -ccc+22222vvvvvrrerrrrrrrrrrercee 64
Trang 12Bảng 4.25 Bảng mô tả màn hình trang tạo bài viết
Bảng 4.26 Bảng mô tả màn hình sửa bài viết
Trang 13DANH MỤC TU VIET TAT
KNN: K-Nearest Neighbors
NRS: News Recommender System
TF-IDF: Term Frequency — Inverse Document Frequency
Admin — Quan trị viên — Nhà quản quan lý nội dung: người quan lý nội dung trang báo
Người dùng trực tuyến — Người dùng: người sử dụng trang web dé đọc báo
Bài viết — Bài báo: một bài báo bat kỳ
Trang 14TÓM TẮT KHÓA LUẬN
Khoá luận với đề tài “Xây Dựng Website Báo Điện Tử Tích Hợp Hệ Thống
Khuyến Nghị Nội Dung” là một hệ thống với hai nghiệp vụ chính là quản lý các bàibáo điện tử và cung cấp nền tảng đọc báo trực tuyến thông qua internet có tích hợp
hệ thống đề xuất bài viết tiếp theo có nội dung tương tự với bài viết hiện tại
Khoá luận bao gồm 5 chương bao gồm:
— Chương 1: Tổng quan
Chương này bao gồm các mục đích, đặt vấn đề và khảo sát hiện trạng của đề tài
Khảo sát hiện trạng bao gồm việc xem xét các website đọc báo trực tuyến ở Việt Nam
và trên thế giới, như vnexpress.net, 24h, The New York Times Chương cũng trình
bay lý do chọn dé tài và đối tượng, phạm vi nghiên cứu
— Chương 2: Cơ sở lý thuyết
Chương này giới thiệu về hệ thống khuyến nghị và các phương pháp thực hiện
Ngoài ra, còn giới thiệu các công nghệ được sử dụng trong khóa luận.
— Chương 3: Đề xuất xử lý thuật toán
Chương này mô tả dữ liệu và thuật toán xử lý khuyến nghị, các bước chuẩn hoá dữ
liệu trước khi đưa vào mô hình khuyến nghị
— Chương 4: Phân tích thiết kế và triển khai
Chương này mô tả nghiệp vụ và yêu cầu của hệ thống Thiết kế kiến trúc và mô tảcác thành phan của kiến trúc, thiết kế cơ sở dit liệu, công cụ hỗ trợ Mô tả về hệ thông
Website đọc báo và hệ thống quản lý nội dung
— Chương 5: Kết luận và hướng phát triển
Trang 15CHUONG 1 TONG QUAN
Chương đầu tiên sẽ khái quát van đề đặt ra va mục tiêu của dé tài, cùng với đó là
khảo sát hiện trạng và trình bày những nội dung sẽ thực hiện trong khóa luận.
1.1 Đặt vấn đề
Trong thời đại công nghệ 4.0, sự phát triển của công nghệ thông tin và internet đãmang đến một cuộc cách mạng trong việc truyền tải thông tin Hiện nay, hầu hết mọi
người đọc tin tức thông qua hình thức trực tuyến, nơi họ có thé truy cập hàng triệu
bài báo từ nhiều nguồn khác nhau được tạo ra liên tục hàng ngày Một số lượng thôngtin không lồ đang được tạo ra mỗi ngày, và điều này tạo ra một thách thức lớn cho
người dùng khi cố gắng tìm kiếm và tiếp cận những nội dung mà họ quan tâm
Dé giúp người dùng tìm kiếm và tiếp cận thông tin một cách hiệu quả, các hệ thống
gợi ý tin tức (NRS) đã được phát triển Mục tiêu của NRS là đề xuất những tin tức cóthé thu hút sự quan tâm của người đọc dựa trên các thông tin và sở thích của họ Tuy
nhiên, việc xây dựng một NRS hiệu quả và chính xác là một thách thức lớn do nhiều
yếu tố phức tạp
1⁄2 Mục đích
Mục đích của đề tài này là xây dựng một hệ thống gợi ý tin tức trực tuyến dựa trên
nội dung của các bài báo Hệ thống sẽ sử dụng các đặc trưng của bài báo như thé loại,tác giả, tiêu đề và nội dung tóm tắt để tính toán độ tương đồng giữa các bài báo và đề
xuất những bài báo có nội dung gần giống với bài báo hiện tại mà người dùng đang
đọc.
Mục tiêu của hệ thống là giúp người dùng khám phá được nhiều nội dung hap dẫn
và phù hợp với sở thích của họ, cũng như tăng lượng truy cập cho trang web tin tức.
Trang 161.3 Khảo sát hiện trạng
1.3.1 Một số website đọc báo trực tuyến Việt Nam
1.3.1.1 VnExpress
ẤM Thờisự Gocrhin Thágới Video Podcasts inh doanh Bấnđộng sin Khoahoc GIẢùi Thổao Phaplugt Giiodye Suckhde Đờisống Dulch Sỏhda Xe Yến Tamsy Thưgăn
Cuộc chiến sở hữu ở
chung cư
BJ ang cnuc ew dan CTS nu a0
Cổ huê (Bác Từ êm, Ha NH cả
‘em không ng để cạn go tàng
hàm và cóc bên ch ưa gant
Tranh chấp ten quan đện ie, hạ
ting lên (ch thuộc sở hữu chứng.
Mỹ thách thức lin ranh đỏ của An Độc Góc ntin
Nga Ukraine thảm kịch tàu hỏa Khai báo nghề nghiệp.
mát vi ly kh được
etd tanh gối nhưng yen edn an he lại oma
thách hace ra 8 ‘aim 206 tạ Ant 32 an
Hinh 1.1 Trang chu VnExpress
VnExpress là một trang web tin tức trực tuyến nhiều người xem nhất Việt Nam,
cung cấp các tin tức về thời sự, chính trị, kinh tế, xã hội, thé thao, giải trí, du lịch,khoa học, giáo dục, sức khỏe, ôtô - xe máy, pháp luật, số hóa, nhà đất, cộng đồng và
thé giới,
2 boanh nghiệp kêu khó bán nhà vì lãi suất neo cao
Nhiều công ty địa ốc 6 tháng qua không bán được nhà cho người mua để ở
(đã trừ nhóm đầu tư, đầu cơ rời thị trường) do lãi suất neo cao 13-14% một
năm 217
Nam thanh khoản nhà ở kém nhất nửa thập ky
Lượng giao dịch nhà ở 12 tháng qua tại hai miền Nam - Bắc sụt giảm mạnh, sức mua xuống thấp nhát 5 năm ga s3
Giao dịch đất nền phía Nam giảm hơn 90%
Quý |, đất nền dự án các tỉnh ké cận TP HCM hau như không bán được hàng,
Trang 17[Tin wwe wong noty Deen Mon Soro cs LOCC ame
Sau tiếng hô hoán “chạy đi”, cây xanh bật gốc đỏ _ Video bóng đá Hải Phòng - HAGL: Người hùng TIN TỨC THỊ TRƯỜNG.
Am xuống đường đặc biệt, thăng tiền mạnh mẽ (V-League)
Nhiều người đang tú mua hét
oằng tháo chay khi cây xanh trên đường Trần Hưng Đạo (quận 5,
TPHCM) bật gốc, ngã xuống
|= Sét đánh trúng 2 vợ chồng, người vợ chết tại chỗ ‘TM Benzema chính thức chia tay Real Madrid, chuẩn bị đến.
` shipper bắt ngờ ngã vật xuống đường giữa nắng nông Vdeo bêngđàHà Nol -Nam Bh Người hùng Tuần Ha
L* Ta mann hdr ch tiễn ngôi í l2 nears ee
E théc©cười nghin mộtiếu ảnh nóng ma
hong Ukraine: Xây ra anh bom xe «note i
[inn doanh Ree cn CaM Toot rang Ecco ay
pre bỏ quên ở cảng tại Việt Nam 5 năm khéng rõ _ Hotgirl có 1,5 triệu fan diện váy ngủ quyến rũ bên.
Lan sóng "Đông tiến” đón đầu
bắt dong sản ké cận đường vành dai
Hải Phòng điều chỉnh lỗi chơi và
khiến HAGL lắm vào khó khăn sau
phía Đông Hã Nội
“chủ nhân, giá dat cỡ nào khung cửa sỏ ,
P 5 5 TN) Siêu mẫu Võ Hoàng Yến "đai
“Chiếc 6 tô có giá tắt đắt nhưng 5 lÀ HN xo nguoi máu có phong cach thoi néo” Chuyện Vui Sốp Pi 4.6:
năm bị bỏ quên ở cảng Không ai 1Ì nu bên ngoài thân thái, bồn trong
nhận tuyệt dep, l
“7 THONG TIN CHUNG KHOAN
* Nông tuần qua Khối ti sản của người giầu nhất Việt LÊ Vay áo đi siêu thị thả dang” của hội con gãi châu
Hình 1.3 Trang chủ 24h
24h là một trang web tin tức trực tuyến phô biến ở Việt Nam, cung cấp các tin tức
về thời sự, thể thao, giải trí, kinh doanh và pháp luật Trang web có ít chuyên mục và
thể loại tin tức hơn VnExpress, chủ yếu tập trung vào các lĩnh vực như: tin tức trongngày, thế giới, thé thao, giải trí, kinh doanh, pháp luật,
at từ 1-6 thí điểm làm thủ Vụ tiếp viên hàngkhôngxách Đề xuất Cục Đăng kiểm bỏ quản tục bay không can giấy tờ tuỳ ma tuý: Đã bat giữ 200 đối lý trực tiếp 44 đơn vị đăng kiểm thân tượng liên
¿
Bộ Nội vụ đề xuất loạt quy định Đề xuất không lấy phiếu tin Đưa viêm gan B về âm tính nhờ
Trang 181.3.2 Một số website đọc báo trực tuyến thế giới
1.3.2.1 The New York Times
=a “TERNATIONAL CANADA ESPAOL + pm
CN hed cw York Fimes sus
India| Crash Investigation Looks
at Possible Signal Failure After
Rescue Efforts End
Tim Robinson and the Golden Age
Whats the to Incorporating awe into
treat aworkout injury: your daily stroll can
Hinh 1.5 Trang chu The New York Times
The New York Times là một trang web tin tức trực tuyến uy tín va nổi tiếng ở Hoa
Kỳ cung cấp các tin tức về các lĩnh vực như quốc tẾ, quốc nội, kinh doanh, thể thao,
nghệ thuật, ầm thực và khoa học,
The New York Times có chất lượng bài viết cao, với ngôn ngữ chính xác và trau
chuốt Tuy nhiên, trang web cũng có một số hạn chế như: có một số bài viết mang
tính thiên vị hoặc chính trị; có một số bài viết quá dài hoặc khó hiểu; nhiều bài viếtyêu cầu đăng ký hoặc trả phí để xem
‘Similar Recipes
Strawberry Spoon Almond Berry Layer Double Strawberry Cake Cake Shortcakes
Trang 19U58 Canad © th Science & Environment
D Watch: Themissing Titanic How tapping sounds might Father, son and explorer
sub: ln 7 seconds teach rescue teams mleeing
⁄
> “Hi miss! Hollywood star
surprises sister in class
@nm uK
n accused of tricking If US firms'go woke’, do they
customers really go broke?
Amazon f Expe Could Russia actually
nuclear roulette in UI
Hinh 1.7 Trang chu BBC News
BBC News là một dich vu tin tức đa phương tiện trực tuyến và truyền hình do BBC
(British Broadcasting Corporation) điều hành Được thành lập vào năm 1922, BBCNews là một trong những tô chức tin tức hàng đầu trên toàn cầu và đã trở thành nguồntin đáng tin cậy cho hàng triệu người trên thế giới
BBC News cung cấp thông tin về các sự kiện quốc tế, quốc gia và văn hóa từ khắp
nơi trên thế giới Các bài báo, bản tin trực tiếp, video, podcast và nhiều nội dung khác
được cập nhật liên tục trên trang web của BBC News và các kênh truyền hình và đài
phát thanh của BBC BBC News có một mạng lưới phóng viên và nhà báo đến từnhiều quốc gia, giúp dam bảo rằng tin tức được báo cáo một cách toàn diện và chính
xác.
BBC News có hệ thống gợi ý nội dung được thiết kế để cung cấp trải nghiệm cá
nhân hóa cho người dùng Hệ thống này sử dụng các thuật toán và công nghệ đề phân
Trang 20Hệ thống gợi ý nội dung của BBC News giúp người dùng tiếp cận các tin tức, bàiviết và video có liên quan đến những chủ đề mà họ quan tâm Khi người dùng truy
cập vào trang web hoặc ứng dụng của BBC News, hệ thống sẽ thu thập thông tin về
lịch sử duyệt web, tìm kiếm trước đó và các hoạt động trên trang để xác định sở thích
va nguyện vọng của người dùng.
Dựa trên thông tin này, hệ thống sẽ phân tích và so sánh với cơ sở dữ liệu nội dungcủa BBC News đề đề xuất những nội dung có khả năng cao phù hợp với người dùng
Điều này có thể bao gồm các bài báo, video, bản tin trực tiếp, podcast và nhiều hình
thức nội dung khác từ các chuyên mục khác nhau.
| Related Stories |
'What we know so far about the search for the missing Titanic sub
Ships racing to boost
desperate search for sub
British father, his son
and explorer among
missing
Scans of Titanic reveal wreck as never seen before
Trang 211.3.3 Đánh giá chung
Các trang web điều cung cấp cho người dùng một trải nghiệm đơn giản và dễ sử
dụng Cấu trúc bố cục của trang web được thiết kế rõ ràng và đễ hiểu Tốc độ tải trangnhanh và khả năng tương tác của người dùng tốt Tuy nhiên, trang web có quá nhiềuquảng cáo, điều này có thể làm giảm tính linh hoạt của người dùng
Cả 4 trang web điều cung cấp cho người dùng nhiều phương pháp đề tìm kiếm vàđọc tin tức Người dùng có thé tìm kiếm tin tức theo chủ đề hoặc từ khóa Ngoài ra,
các trang web cũng cung cấp cho người dùng các bài viết liên quan và các bài viếtđược đề xuất để giúp người dùng tìm kiếm thông tin một cách nhanh chóng và dễ
dàng.
1.4 Lý do chọn đề tài
Mong muốn xây dựng một trang báo điện tử có khả năng đề xuất nội dung phù hợpvới nhu cầu của người dùng và giới hạn quảng cáo nhằm cung cấp cho người đọc mộttrang báo có trải nghiệm đọc tin tức thuận tiện và dễ chịu hơn
1.5 Đối tượng và phạm vi nghiên cứu
1.5.1 Đối tượng
Đề tài tập trung xây dựng và phát triên một nền tảng đọc báo điện tử online phục
vụ cho người đọc tin tức và người quản lý nội dung Cụ thể như sau:
— Người dùng trực tuyến: Đây là nhóm người dùng chủ yếu sử dụng trang báo
điện tử dé đọc tin tức và tìm kiếm thông tin trực tuyến Đối tượng này có thé
bao gồm mọi người, từ các độ tuổi, giới tính, quốc gia và sở thích khác nhau
— Nhà quản lý trang báo điện tử: Đây là nhóm người có trách nhiệm quản lý và
điều hành trang báo điện tử Bao gồm các biên tập viên, nhà phát triển web và
nhân viên liên quan đến việc cung cấp nội dung và quản lý hệ thống gợi ý
Trang 221.5.2 Phạm vi
— Nội dung tin tức: Đề tài tập trung vào việc xây dựng một hệ thống gợi ý nội
dung tin tức phù hợp với nhu cầu của người dùng dựa trên nội dung bài viết
hiện tại Phạm vi bao gồm thu thập, xử lý và phân tích thông tin để đưa ra cácgợi ý tin tức liên quan và hấp dẫn
— Giao diện và trải nghiệm người đùng: Hoạt động trên nền tang web, có thé sử
dụng trên mọi thiết bị Cải thiện trải nghiệm người dùng, đơn giản hóa quy
trình đọc tin tức và tạo ra một giao diện thân thiện và dé sử dụng.
— Hệ thống khuyến nghị:
+ TF-IDF: để chuyền đổi văn bản thành các vecto đặc trưng
+ OneHotEncoder: để mã hóa các thuộc tính phân loại
+ NearestNeighbors: mô hình học máy được sử dung để dự đoán mức độ
tương tự giữa các bài viết
— Công nghệ sử dụng:
+ Ngôn ngữ lập trình: ReactJS, Python
+ Thư viện xử lý kiến nghị: pandas, sklearn, numpy, scipy, underthesea
+ Dataset: News Dataset Vietnameses | Kaggle)
Trang 23CHƯƠNG2 CƠ SỞ LÝ THUYET
Chương này dé cập đến những kiến thức lý thuyết quan trọng Đặc biệt là cần làm
rõ những lý thuyết về công nghệ, thuật toán, khái niệm được sử dụng và nhắc đến
trong khóa luận.
BAT DONG SAN
À ca Cham sử dụng dat Nha
Pe x yh) nude giao, ngudi dan sẽ
BAT DONG SAN
Thủ tục xóc định tiền sử
dụng dat phải nộp khi ba
By KIMN T
Hình 2.1 Các bai báo có cùng nội dung
Hệ thống khuyến nghị là một loại hệ thống thông tin được sử dụng để đề xuất, gợi
ý các mục tiêu mà người dùng có thể quan tâm Mục tiêu có thể là sản phẩm, nội
dung, dịch vụ, hoặc bat cứ thứ gì mà người dùng có thé tương tác
Có nhiều phương pháp và kỹ thuật được sử dụng dé xây dựng hệ thống khuyếnnghị, trong đó hai phương pháp phổ biến nhất là Collaborative Filtering và Content-
Based Filtering Cả hai phương pháp này đều có ưu điểm và hạn chế riêng
Trang 24— Collaborative Eilteringt!: Phương pháp nay dựa trên việc phân tích hành vi và
sở thích của một nhóm người dùng dé đề xuất cho người dùng hiện tại các mục
tiêu mà nhóm người dùng tương tự đã thích Collaborative Filtering có hai
dạng chính là User-Based và Item-Based User-Based sử dụng sự tương đồng
giữa các người dùng để dé xuất, trong khi Item-Based sử dung sự tương đồnggiữa các mục tiêu dé dé xuất Collaborative Filtering có thé giúp đề xuất các
mục tiêu mà người dùng chưa từng biết đến, và nó phổ biến trong các nền tảngnhư phim ảnh, âm nhạc và mua sắm trực tuyến
— Content-Based Filtering!"!; Phương pháp này đề xuất các mục tiêu tương tự
dựa trên đặc trưng và thuộc tính của mục tiêu và sở thích của người dùng Nó
xác định mức độ tương đồng giữa các mục tiêu và sở thích của người dùng
dựa trên các thông tin như từ khóa, thể loại, tác giả, diễn viên, v.v Based Filtering phù hợp cho việc đề xuất các mục tiêu tương tự về nội dung
Content-hoặc thuộc tính.
Mục tiêu của hệ thống khuyến nghị là tăng trải nghiệm của người dùng, giúp họ
khám phá những mục tiêu mới và phù hợp với sở thích của mình Nó được áp dụng
rộng rãi trong các nền tảng thương mại điện tử, dich vu streaming, trang tin tức, mạng
xã hội và nhiều lĩnh vực khác để cung cấp trải nghiệm cá nhân hóa và giúp người
dùng tìm thấy những mục tiêu mà họ thích
Trong phạm vi đề tài này chỉ tập trung xây dựng hệ thống Content-Based Filtering
dé đề xuất bài báo dựa theo các thuộc tính như tên bai báo, nội dung tóm tắt, thé loại,
tác giả của nó.
Trang 25# Dự đoán mức độ tương tự giữa các bài viết
distances, indices = model.kneighbors(features, n_neighbors=10)
hoặc dự đoán về việc nhóm của một điềm dữ liệu cụ thé") Mặc dù nó có thé được sử
dụng cho cả bài toán hồi quy (regression) và phân loại (classification), nó thường
được sử dụng như một thuật toán phân loại, dựa trên giả định rằng các điểm tương tự
có thể được tìm thấy gần nhau
Cách thức hoạt động của mô hình Nearest Neighbors như sau:
— Tién xử lý dữ liệu: Đầu tiên, dữ liệu huấn luyện được tiền xử lý dé chuẩn hóa
và chuẩn bị cho quá trình tìm kiếm gần nhất
— Xây dựng cấu trúc dữ liệu: Dữ liệu huấn luyện được lưu trữ trong một cấu trúc
dữ liệu hiệu quả để tìm kiếm gần nhất nhanh chóng Cấu trúc dữ liệu phổ biến
cho mô hình Nearest Neighbors là cây KD-tree hoặc Ball tree.
Trang 26— Tìm kiếm gần nhất: Khi có một điểm dữ liệu mới, mô hình tìm kiếm các điểm
dữ liệu trong tập huấn luyện mà có đặc trưng gần nhất với điểm dữ liệu mới
Thông thường, khoảng cách Euclidean hoặc khoảng cách cosine được sử dụng
để
- Dự
lo độ tương đồng giữa các điểm dữ liệu
đoán: Sau khi tìm thấy các điểm gần nhất, mô hình thực hiện dự đoán dựatrên nhãn của các điểm dữ liệu gần nhất này Có thể sử dụng phương pháp đa
số đơn giản hoặc trọng số được gán cho các điểm gần nhất dựa trên khoảng
cách.
Mô hin! Nearest Neighbors thường được sử dụng trong các tác vụ như phân loại,
phân cụm, tìm kiếm gần nhất và khám phá dữ liệu Nó có thể đưa ra dự đoán nhanh
chóng mà không cần quá trình huấn luyện phức tạp Tuy nhiên, mô hình này có nhượcđiểm là yêu cầu lưu trữ toàn bộ tập dữ liệu huấn luyện và tốn nhiều thời gian khi số
lượng điểm dữ liệu lớn
2.2.1. Chỉ số khoảng cách
Mục tiêu của thuật toán k-nearest neighbor là xác định các neighbor gần nhất của
một điểm nhất định, dé chúng ta có thé gán một nhãn cho điểm đó Đề làm điều này,
KNN có một vài yêu cầu:
— Xác định chỉ số khoảng cách: Để xác định điểm dữ liệu nào gần nhất với một
điểm truy vẫn nhất định, khoảng cách giữa điểm truy vấn và các điểm dữ liệukhác sẽ cần được tính toán Các chỉ số khoảng cách này giúp hình thành ranh
giới quyết định, phân vùng các điểm truy vấn thành các khu vực khác nhau'®,
Có
+
một số thước đo khoảng cách có thể chọn:
Khoảng cách Euclid (p=2): Đây là thước đo khoảng cách được sử dụng
phổ biến nhất và nó được giới hạn ở các vectơ có giá trị thực
Trang 27Công thức Euclid ©):
d(x, y) = xe — x)?
i=1
Khoảng cach Manhattan (p = 1): Đây cũng là một số liệu khoảng cách
phổ biến khác, do giá trị tuyệt đối giữa hai điểm
Khoảng cách Hamming: Ky thuật này thường được su dụng với các vectơ
Boolean hoặc chuỗi, xác định các điểm mà các vectơ không khớp
Trang 282.2.2 Định nghĩa k
Giá trị k trong thuật toán k-gần nhất hàng xóm (k-NN) xác định số lượng hàng
xóm sẽ được kiểm tra dé xác định phân loại của một điểm truy vấn cụ thé Ví dụ, nếuk=1, thì một điểm sẽ được gan vào cùng một lớp với hàng xóm gần nhất duy nhất của
nól5l,
2.2.3 Ứng dụng của K-Nearest Neighbors
Nearest Neighbors có nhiều ứng dụng trong các lĩnh vực khác nhau Dưới đây làmột số ví dụ về ứng dụng của thuật toán Nearest Neighbors:
— Phân loại văn bản: Trong xử lý ngôn ngữ tự nhiên, Nearest Neighbors có thể
được sử dụng để phân loại văn bản dựa trên đặc trưng của các từ hoặc câu
— Gợi ý sản phẩm: Trong lĩnh vực thương mại điện tử, Nearest Neighbors có thé
được sử dụng đề gợi ý sản phẩm cho người dùng dựa trên sự tương đồng của
hành vi mua hàng hoặc đánh giá của người dùng khác.
— Xử lý ảnh: Trong xử lý anh, Nearest Neighbors có thé được sử dụng dé tìm
kiếm và nhận dạng các hình ảnh tương tự Ví dụ, khi người dùng cung cấp mộthình anh, Nearest Neighbors có thé tìm kiếm trong cơ sở dữ liệu hình ảnh dé
tim ra những hình ảnh tương tự hoặc cùng chủ dé
Trang 29Thuật toán content-based gồm 2 bước:
— Bước 1: Biểu diễn items dưới dạng vec-tơ thuộc tính — item profile
— Bước 2: Học mô hình của mỗi user
2.3.1.2 Xây dung Items Profile
Trong các hệ thống content-based, chúng ta cần xây dựng một bộ hồ sơ (profile)cho mỗi item Profile này được biểu dién dưới dạng toán học là một “feature vector”
n chiều Trong những trường hợp đơn giản (vi dụ như item là dir liệu dạng văn bản),feature vector được trực tiếp trích xuất từ item Từ đó chúng ta có thể xác định các
item có nội dung tương tự bằng cách tính độ tương đồng giữa các feature vector của
Trang 30# Kết hợp các ma trận TF-IDF Lại với nhau
features = hstack([title tfidf, summary_tfidf])
Hình 2.3 Sử dụng TF-IDF dé chuyên văn bản thành ma trận đặc trưngTF-IDF là từ viết tắt của thuật ngữ tiếng Anh Term Frequency — Inverse Document
Frequency, TF-IDF là trong số của một từ trong văn bản thu được qua thống kê thé
hiện mức độ quan trọng của từ này trong một văn bản, mà bản thân văn bản đang xét
nằm trong một tập hợp các văn bản”,
Đây là một phương pháp được sử dụng trong xử lý ngôn ngữ tự nhiên và truy vấnthông tin để đánh giá mức độ quan trọng của một thuật ngữ trong một tài liệu
Trọng số TF-IDF được tính toán bằng cách kết hợp hai yếu tố chính: tần số thuật
ngữ (TF) và tần số nghịch dao tài liệu (IDF)
— Tần số thuật ngữ TF(t,d) °l: Đây là một phép đo mức độ xuất hiện của một
thuật ngữ trong một tài liệu cụ thể Nó được tính bằng cách đếm số lần thuật
ngữ t xuất hiện trong tài liệu d đó Tần suất xuất hiện của t trong tài liệu d cànglớn thì độ quan trọng của nó đối với văn bản càng cao và được tính bởi số lầnxuất hiện của t trong d chia cho tông số từ trong văn bản d như sau:
Trang 31— _ Tần số nghịch đảo tài liệu IDF(t, D) ÊÌ; Đây là một phép do mức độ quan trọng
của một thuật ngữ trong toàn bộ tập tài liệu Nó được tính bằng cách chia tổng
số tài liệu cho số tài liệu chứa thuật ngữ đó, sau đó lấy logarit cơ số 2 của kếtquả IDF giúp giảm độ ưu tiên cho các thuật ngữ phổ biến như "a", "the" và
tăng độ ưu tiên cho các thuật ngữ hiếm hơn nhưng mang nhiễu thông tin quan
trọng IDF được tính bằng công thức:
— Công thức IDF(t, D)Ê!:
Trong đó tông số văn bản trong tập mẫu là D, số văn bản chứa từ là t
Trong thực tế, ta thường lấy log cho TF và IDF nhằm giảm bớt đi sự quan trọng
của những từ xuất hiện quá nhiều lần Do đó TF-IDF được tính như sau:
Công thức TFIDF(t, d, D)!!:
TFIDF(t, d, D) = log(1 + TF(t, đ)) * log (IDF(t,d))
TF-IDF thường được sử dung trong các hệ thống tìm kiếm va phân loại văn bản
để đánh giá mức độ liên quan của một tài liệu đến một thuật ngữ cụ thể Các giá trị
TF-IDF cao cho thay một thuật ngữ quan trọng trong tài liệu đó, va do đó, nó có théđược sử dung dé tìm kiếm, phân loại hoặc xếp hang tài liệu theo mức độ liên quan
TF-IDF được sử dụng trong nhiều tác vụ xử lý ngôn ngữ tự nhiên và truy vấn thông
tin Dưới đây là một số tình huống phổ biến sử dụng TF-IDF:
— Tim kiếm thông tin: TF-IDF được sử dụng trong hệ thống tìm kiếm dé xếp
Trang 32— Phân loại văn bản: TF-IDF cũng được sử dụng trong tác vụ phân loại văn bản,
trong đó mỗi tài liệu được biểu diễn bằng vectơ TF-IDF Các mô hình học máy
như hồi quy logistic, hỗn hợp Gaussian hoặc máy vector hỗ trợ (SVM) có thể
sử dụng vectơ TF-IDF đề phân loại tài liệu thành các nhãn phù hợp
— Tóm tắt văn bản: Khi xây dựng hệ thống tóm tắt văn bản tự động, TF-IDF có
thể được sử dụng để xác định các câu hoặc đoạn văn nỗi bật trong tài liệu Các
câu có trọng số TF-IDF cao sẽ có khả năng chứa nhiều thông tin quan trọng
và được ưu tiên trong quá trình tóm tắt
Ưu điểm của việc sử dụng TF-IDF:
— Ưu điểm lớn nhất của TF-IDF đến từ việc nó đơn giản và dé sử dụng Nó rat
đơn giản dé tính toán, nó rẻ về mặt tính toán và nó là điểm khởi đầu đơn giản
cho các tính toán tương tự.
Nhược điểm của việc sử dụng TF-IDF
— TF-IDF không mang ý nghĩa ngữ cảnh Nó chi xem xét tam quan trọng của
các từ thông qua tần số xuất hiện, nhưng nó không phải rút ra ngữ cảnh của
các từ và hiểu tầm quan trọng của từ trong ngữ cảnh đó
2.3.3 Stop words
Stop words là nhóm các từ phổ biến và không mang nhiều ý nghĩa trong một ngôn
ngữ cụ thé Đối với xử lý ngôn ngữ tự nhiên, stop words thường được loại bỏ khỏi
văn bản hoặc không được xem xét trong quá trình xử lý ngôn ngữ!
Các từ dừng thường bao gồm các từ như "là", "của", "và", "với", "ở", "làm", "cho",
"theo", "một", "hai", "ba", "cả", "đến", "trên", "đưới", và nhiều từ phụ thuộc vào
ngôn ngữ cụ thé Các từ này xuất hiện rất phổ biến trong văn bản mà không mang
Trang 332.3.4 Biểu diễn nhị phân (One-hot coding)
Biểu diễn nhị phân, còn được gọi là one-hot coding, là một phương pháp đề biểu
diễn thông tin đưới dạng vectơ nhị phân, trong đó chỉ có một phần tử duy nhất trongvectơ có giá tri 1 và tất cả các phần tử khác có giá trị 0 Phương pháp này thường
được sử dụng trong xử lý ngôn ngữ tự nhiên và machine learning để biểu diễn cácbiến phân loại (categorical variables) dưới dạng số học dé có thé sử dụng trong các
thuật toán máy học và hoc may"),
Cách thức biểu diễn one-hot coding như sau: Giả sử ta có một tập hợp các nhãn
(labels) hoặc các biến phân loại, ví dụ như {A, B, C, D} Để biểu diễn mỗi nhãn thành
vecto nhị phân, ta sẽ tạo ra một vectơ có độ dài bằng với số lượng nhãn và gan giá trị
1 cho vị trí tương ứng với nhãn và giá trị 0 cho các vị trí còn lại.
Với biéu diễn này, ta có thé sử dụng các phép toán và thuật toán liên quan đến số
học trên các biến phân loại Ví dụ, ta có thể tính toán khoảng cách giữa các nhãn, ápdụng các thuật toán phân loại như hồi quy logistic hoặc hỗn hợp Gaussian, và thực
hiện các phép toán khác như dot product giữa các vectơ one-hot.
One-hot coding cũng có một số hạn chế, như việc tạo ra các vectơ có kích thước
lớn khi số lượng nhãn tăng lên, và không khai thác được sự tương quan giữa các nhãn.Tuy nhiên, trong nhiều trường hợp, one-hot coding là một phương pháp tiện lợi đểbiểu diễn các biến phân loại trong quá trình xử lý dữ liệu và huấn luyện mô hình
Trang 342.4 Các nền tang và công nghệ
2.4.1 React
Hình 2.4 Logo React
React là một thư viện JavaScript phổ biến được sử dụng để xây dựng giao diện
người dùng (UI) Nó được phát triển bởi Facebook và ra mắt lần đầu vào năm 2013
React cho phép xây dựng các thành phần UI tái sử dụng và tương tác một cách dễdàng, giúp tăng tính tương tác và khả năng duy trì mã nguồn trong các ứng dụng web
Một trong những khái niệm quan trọng nhất trong React là "virtual DOM" (cây
DOM ảo) Khi một thành phần React được cập nhật, React sẽ tạo ra một cây DOM
do dé so sánh với cây DOM hiện tại và chỉ cập nhật những phần thay đổi thực sự trêngiao diện người dùng Điều này giúp tăng hiệu suất và tối ưu hóa ứng dung.!7!
React sử dụng JSX (JavaScript XML) dé định nghĩa giao diện người dùng JSX
cho phép viết mã HTML trong JavaScript, tạo ra một cách thức dễ đọc và dễ hiểu đề
xây dựng giao diện người dùng trong React.!7!
React cũng hỗ trợ quản lý trạng thái (state) và lifecycle trong các thành phần Bằngcách sử dụng state, có thể lưu trữ và quản lý dữ liệu trong ứng dụng của mình
Lifecycle methods cho phép thực hiện các hành động như khởi tạo, cập nhật và hủy
thành phan trong quá trình hoạt động của nó”,
Trang 35Ngoài ra, cộng đồng React rất lớn và phong phú, với nhiều thư viện và công cụ hỗ
trợ cho việc phát triển ứng dụng React Các thư viện như Redux, React Router và
Material-UI đều được sử dụng phổ biến dé mở rộng khả năng của React và cung cấp
các tính năng bô sung.
React là một thư viện JavaScript mạnh mẽ và linh hoạt, giúp xây dựng giao diện
người dùng đáng tin cậy va dé bảo trì Nó đã trở thành một công cụ phổ biến trong cộng đồng phát triển web và được sử dụng rộng rãi dé xây dựng các ứng dụng web
động và phức tạp.
2.4.2 React Next.js
A NEXT:
Hinh 2.5 Logo Next.js
React Next.js là một framework phat trién ứng dụng web phía máy khách
(client-side) và phía may chu (server-(client-side) dựa trên React Nó là một phiên ban mở rộng cua
React và cung cấp nhiều tính năng và tiện ích b6 sung dé xây dựng ứng dụng web
mạnh mẽ và dé dang quản lý.
Một số khái niệm trong Next.js!®:
— Server-side Rendering (SSR): React Next.js cho phép việc render HTML trên
máy chủ trước khi gửi đến trình duyệt, giúp cải thiện hiệu suất và tối ưu hóa
trải nghiệm người dùng SSR cho phép tạo ra các ứng dụng web tĩnh và động
mà có thé hiên thị nội dung ngay từ lần tải đầu tiên.
— Static Site Generation (SSG): React Next.js hỗ trợ tạo ra các trang web tĩnh
tĩnh (static) mà không cần phụ thuộc vào máy chủ Khi xây dựng ứng dụng, nội dung có thể được tạo ra tĩnh trước và được lưu trữ trong các tệp tĩnh, giúp
tăng tốc độ tải trang và giảm tải cho máy chủ.
Trang 36— Routing: React Next.js cung cấp một hệ thống định tuyến (routing) mạnh mẽ,
cho phép xác định các đường dẫn và liên kết trang trong ứng dụng của mình Bằng cách sử dụng routing, có thể tạo ra các ứng dụng đa trang và đa tầng
phức tạp.
— Hot Module Replacement (HMR): React Next.js hỗ trợ tính năng HMR, cho
phép thay đổi mã nguồn trong quá trình phát triển mà không cần tải lại toàn
bộ trang web Điều này giúp tăng tốc độ phát triển và cải thiện trải nghiệm làm
việc với React Next.js.
— Code-splitting: React Next.js hỗ trợ việc tách mã (code-splitting) tự động, giúp
tải trang nhanh hơn bằng cách chỉ tải mã cần thiết cho từng trang hoặc thành phần cụ thê Điều này giúp tối ưu hóa kích thước tệp và tăng hiệu suất của ứng
dụng.
— CSS-in-JS: React Next.js tích hợp sẵn các thư viện CSS-in-JS như Styled
Components và Emotion, cho phép viết CSS trực tiếp trong mã JavaScript Điều này giúp quản lý tốt hơn các phong cách và tương tác giữa các thành phần
— TypeScript Support: React Next.js cung cấp hỗ trợ đầy đủ cho TypeScript, một
ngôn ngữ lập trình phổ biến và kiêu tĩnh Việc tích hợp TypeScript giúp tăng khả năng phát hiện lỗi và cung cấp tính năng tự động hoàn thành mã mạnh mẽ
trong quá trình phát trién.
React Next.js cung cấp một cách tiếp cận linh hoạt và tiện lợi dé phát triển ứng
dung web phức tạp và mạnh mẽ Với việc tích hợp nhiều tinh năng và tiện ích bổ
sung, nó giúp tăng hiệu suất, cải thiện trải nghiệm người dùng và tăng tốc quá trình phát triển ứng dụng.
Với cộng đồng phát triển mạnh mẽ React Next.js có một cộng đồng lớn và sôi động, với nhiều tài liệu, ví dụ về thư viện bố sung được xây dựng dựa trên nên tảng
nay .
Trang 37Hình 2.6 Mô hình REST API
REST API (Representational State Transfer API) là một kiêu thiết kế và triển khai
các dịch vụ web dựa trên nguyên tắc của REST Nó cho phép các hệ thống khác nhau
có thê giao tiếp và tương tác với nhau thông qua mạng Internet.
REST API xác định cách các nguồn tài nguyên trên web được truy cập và quản lý.
Nó sử dụng các phương thức HTTP như GET, POST, PUT và DELETE đề thực hiện các hoạt động cơ bản liên quan đến nguồn tài nguyên REST API sử dụng các đường
dẫn (URL) đề đại điện cho các nguồn tài nguyên cụ thể và sử dụng các phương thức HTTP dé chỉ định hành động cần thực hiện trên nguồn tải nguyên đó.
Một số khái niệm quan trọng trong REST API bao gồm!:
— Nguồn tài nguyên (Resource): Là các đối tượng hoặc dữ liệu mà REST API
cung cấp và quan lý Mỗi nguồn tài nguyên được đại diện bởi một URI
(Uniform Resource Identifier).
— Phương thức (Method): REST API sử dụng các phương thức HTTP như GET,
POST, PUT va DELETE dé thực hiện các hoạt động trên nguồn tài nguyên.
Ví dụ, GET được sử dụng để truy xuất thông tin từ một nguồn tài nguyên,
POST để tạo mới nguồn tài nguyên, PUT để cập nhật nguồn tài nguyên và
DELETE dé xóa nguồn tài nguyên.
Trang 38— Đại diện tài nguyên (Representation): Dữ liệu của một nguồn tài nguyên có
thể được truyền đi và nhận lại dưới dạng các định dạng như JSON, XML hoặc
HTML.
— Trạng thái (State): REST API không lưu trữ trạng thái trước đó của khách hàng
và mọi yêu cầu từ khách hang đủ dé nhà cung cấp dịch vụ hiéu yêu cầu đó mà không cần thông tin trạng thái trước đó.
REST API đã trở thành một tiêu chuẩn phổ biến trong việc phát triển các dịch vụ
web, do tính đơn giản, linh hoạt và khả năng mở rộng của nó Nó cho phép các ứng
dụng và hệ thống khác nhau có thể tương tác và truy cập dữ liệu qua mạng một cách
dễ dàng.
2.4.4 Django Rest Framework
django
framework
Hinh 2.7 Logo Django Rest Framework
Django Rest Framework (DRF) là một framework mạnh mẽ được sử dung dé phat triển RESTful API trong ứng dụng Django Nó cung cấp các công cụ và lớp trừu tượng giúp xây dựng các API đáp ứng tiêu chuân REST một cách nhanh chóng và dễ
dàng.
Django Rest Framework cung cấp nhiều tính năng mạnh mẽ bao gồm!!0l;
— Serialization: DRF cung cấp một cách tiện lợi dé chuyên đổi các đối tượng
Python thành dtr liệu JSON, XML hoặc các định dạng khác và ngược lại Quá
trình chuyển đổi này được thực hiện thông qua serializers.
Trang 39— Authentication và Permissions: DRF hỗ trợ xác thực người dùng và quản lý
quyên truy cập dựa trên các phương thức xác thực như Token Authentication, Session Authentication, OAuth, và JWT (JSON Web Tokens) Bang cach sử dung permissions kiểm soát quyén truy cập của người dùng đối với các tài
nguyên API.
— Viewsets và Routers: DRF cung cấp các lớp trừu tượng như Viewsets và
Routers giúp xây dựng API một cách dé dàng và ngắn gọn Viewsets giúp tổ
chức mã nguồn của theo cách tô chức logic liên quan đến tài nguyên, và
Routers giúp tự động ánh xạ các URL tới các vIewsets tương ứng.
— Pagination: DRF cho phép quản lý phân trang dữ liệu trên các API trả về nhiều
kết quả có thé tùy chỉnh cách phân trang và định dạng hién thị trang.
— Documentation: DRF cung cap công cụ dé tạo tài liệu API tự động bằng cách
sử dụng các công nghệ như Swagger hoặc OpenAPI Điều này giúp tạo ra tài
liệu API dễ đọc và tự động cập nhật khi có thay đổi trong mã nguồn.
Django Rest Framework cung cấp một cách tiện lợi dé xây dựng va quản lý RESTful API trong Django, giúp tăng tốc quá trình phát triển va đảm bảo tuân thủ các tiêu chuẩn và nguyên tắc của REST Nó là một lựa chọn phổ biến cho việc xây
dựng dịch vụ web mạnh mẽ và lĩnh hoạt trong Django.
2.4.5 MySQL
MySQL.
Hinh 2.8 Logo MySQL
Trang 40MySQL là một hệ quan tri cơ sở dữ liệu quan hệ mã nguồn mở được sử dụng rộng
rãi trên toàn thế giới Nó cung cấp một môi trường lưu trữ dữ liệu đáng tin cậy và
hiệu suất cao cho các ứng dụng web và doanh nghiệp.
Một số đặc điểm của MySQL bao gồm!!!:
— Quan lý cơ sở dữ liệu: MySQL được sử dụng dé tạo, quan lý và truy vẫn cơ sở
dữ liệu Nó hỗ trợ ngôn ngữ truy van SQL (Structured Query Language) dé
thực hiện các thao tác như tạo, đọc, cập nhật và xóa dữ liệu trong các bảng
quan hệ.
— Tính nhất quán và bảo mật dữ liệu: MySQL đảm bảo tính nhất quán và bảo
mat dữ liệu thông qua các tính năng như giao dich ACID (Atomicity,
Consistency, Isolation, Durability) và quyền truy cập kiểm soát người dùng.
— Tính năng mở rộng: MySQL có thê mở rộng linh hoạt và hỗ trợ xử lý dit liệu
lớn Nó có thé xử lý nhiều kết nói đồng thời và hỗ trợ cấu trúc phân tán như
dữ liệu được chia thành nhiều máy chủ dé tăng hiệu suất và sự tin cậy.
— Tương thích và tích hợp: MySQL tương thích với các ngôn ngữ lập trình phổ
biến như PHP, Python, Java và cung cấp các API và giao thức để kết nối và tương tác với các ứng dụng và hệ thống khác.
— Hồ trợ đa nên tang: MySQL có săn trên nhiêu nên tảng hệ điêu hành như
Windows, Linux và macOS, giúp cho việc triên khai và vận hành trên các môi
trường khác nhau dễ dàng.
— _ Cộng đồng lớn và hỗ trợ đáng tin cậy: MySQL có một cộng đồng người dùng
và phát triển đông đảo, dễ dàng tìm kiếm thông tin, tài liệu, và nhận sự hỗ trợ
trong việc sử dụng và triển khai MySQL.
MySQL là một hệ quản trị cơ sở dữ liệu quan hệ mạnh mẽ, phô biến và đáng tin
cậy Với tính nhất quán, bảo mật dữ liệu và tính linh hoạt, MySQL đã trở thành một
công cụ quan trọng trong việc lưu trữ và quản lý dữ liệu cho các ứng dụng web va