1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Mạng máy tính và truyền thông dữ liệu: Ứng dụng máy học vào hệ thống lưu trữ và chia sẻ luận văn cho sinh viên UIT

93 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 93
Dung lượng 42,98 MB

Nội dung

Đề tài nghiên cứu của trường đại học Budi Luhur ở Indonesia Đề tài [17] là công trình nghiên cứu phân loại khóa luận của trường đại học Budi Luhur ở Indonesia của tác giả Achmad Solichin

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HQC CONG NGHE THONG TIN

KHOA MANG MAY TINH VA TRUYEN THONG

DON KHANH DUY

NGUYEN ĐÌNH TUẦN ANH

KHOA LUAN TOT NGHIEP

UNG DUNG MAY HỌC VÀO HE THONG LƯU TRU

VA CHIA SE LUAN VAN CHO SINH VIEN UIT

Implementing machine learning in UIT theses storage and

sharing system

KY SƯ NGÀNH MẠNG MAY TINH VA TRUYEN THONG DU LIEU

TP HO CHÍ MINH, 2022

Trang 2

ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA MẠNG MÁY TÍNH VÀ TRUYÈN THÔNG

ĐÔN KHÁNH DUY - 18520032

NGUYEN ĐÌNH TUAN ANH - 18520251

KHÓA LUẬN TÓT NGHIỆP

ỨNG DỤNG MÁY HỌC VÀO HỆ THÓNG LƯU TRỮ

VÀ CHIA SẺ LUẬN VĂN CHO SINH VIÊN UIT

Implementing machine learning in UIT theses storage and

sharing system

KY SƯ NGANH MẠNG MAY TINH VA TRUYEN THONG DU LIEU

GIANG VIEN HUONG DAN

TRAN TUAN DUNG

TP HO CHÍ MINH, 2022

Trang 3

THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP

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 Đại hoc Công nghệ Thông tin.

Trang 4

suốt thời gian học vừa qua.

Đặc biệt, nhóm xin cảm ơn sâu sắc đến thầy ThS.Trần Tuấn Dũng, người đã tận tình hướng dẫn, giúp đỡ cũng như định hướng, góp ý và cung cấp nhiều kiến

thức cần thiết cho nhóm trong suốt thời gian thực hiện khóa luận tốt nghiệp.

Kết quả khóa luận tốt nghiệp là quá trình cố gắng và nỗ lực của nhóm, tuy

nhiên với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của nhóm thì

những thiết sót là điều không thể tránh khỏi, vì vậy nhóm rất mong nhận được

những ý kiến đánh giá khách quan, những góp ý chân thành từ quý thầy cô đề từ đó

nhóm có thể rút ra những kinh nghiệm quý báu cho bản thân và hoàn thành khóa

luận tốt nghiệp với kết quả tốt nhất.

Sinh viên thực hiện

Đôn Khánh Duy

Nguyễn Đình Tuấn Anh

Trang 5

MỤC LỤC

Chương 1 TONG QUAN DE TÀI 2-22 2SE2E2EE2EE2EEEEEEEEEEEEEEEEEEerrerrkervee 2

1.2 Mục tiÊU 00 S111 TT KH ng 2

1.3 Đối tượng và phạm vi nghiên CỨU -2- 2 2 22 £+££+E£+Ee£EerEeEksrxrrezreee 3

1.3.1 — Đối tượng c 2c TH E122 2112111111111 1x cree 3

1.3.2 _ Phạm vi nghiên CỨU - c3 1 3E 9 1 1 ng tre 3 1.4 Phuong pháp thực hiỆn - 52c 2213211151131 31 11111111 Ekrrrre 3

1.5 Kết quả mong đợi -:-2¿2+¿22+2EE‡EEESEEEEEE2EEE21E271 2112111 re, 4

1.6 Công trình nghiên cứu trước ỞÓ - 5 5 5+ 1k vEEeEeeerreesesserserrre 4

1.6.1 Đề tài nghiên cứu của trường đại học Budi Luhur ở Indonesia 41.6.2 Đề tài nghiên cứu của trường đại học Bumigora ở Malaysia 41.6.3 Dé tài nghiên cứu của trường đại học UIT - s52 5Chương 2 CƠ SỞ LÝ THUYÊTT -. ¿- 2 2S +E8EE+EESEEEEEEEEEEEEEEEEEEEEEErrkrrrrei 7

2.1 Machine LearnIng - - - <1 91H 7 2.2 NUP 7

2.2.1 Ngữ cảnh (Contextual) và vai trò trong NLP - «+52 9 2.2.2 Phân loại nhị phan (Binary classification) -‹++-<+<+ 10 2.2.3 Phân loại đa lớp (Multi-class classification) -‹ -«« <«+ 10 2.2.4 Phân loại đa nhãn (Multi-label classification) ‹ -« ««- 11

“SN 12

2.3.1 Masked MLL - HT Hết 14 2.3.2 Next Sentence Prediction (NSP) cccccccccccsssscccecesessseeeceeeessseeeeeees 15

Các kiến trúc model BERT cccccccccscsssssssscsscsesesvscsvsvsususscscsescsescavaes 16

Trang 6

2.5 RNN và LSTM LH HH TH HH HH, 17

“na 17

2.5.2 Vấn dé của RNN che 17 "ho 19

2.6 Ng6n ngtt Golang occ a 20

2.6.1 Go-Gin ÍraIm€WOTK - Gà HH HT ng Hệ 21 2.7 PostgreSQL ceccesccessecssceceseesseeesaeesseeceeessaeceseeceeecsaeessaeceseeceeeseeeesaeeeeees 22 2.8 Đi nh 23

2.8.1 Phương tiện có thể lập trình (Programmable Media) 24

2.8.2 Trình tối ưu hóa phương tiện (Media Optimizer) - 24

2.8.3 Quản lý tài sai kỹ thuật số (Digital Asset Management) 24

2.8.4 Video động (Dynamic Video) c5 3c serxeerssereerserrre 24 2.9 ElastICsearch ch HH ng Hư 25 2.9.1 _ Hiệu quả đầu tư nhanh ¿- 5¿©++2+++£x++£x+rxerxeerxesrxee 25 2.9.2 _ Hiệu năng cao HH TH Hệ 26 2.9.3 Hoạt động gần theo thời gian thực -. : :©-sc-c+cs+ecxe+ 26 2.9.4 Phát triển ứng dụng dễ dàng -:- 2 s+cz+E++E+Eerxerxerxrrseree 26 2.9.5 Công cụ và plugin bố sung - ¿+ + s+++E+E+EzEerkerxerxerseree 26 P"J x ^^ = 26

2.10.1 Khái niệm - t9 9H HH HH HH nh nh rư 26 2.10.2 Tinh năng chính - «xxx TH ng HH Hy 27 2.11 Material UÌ - 4 5 1 TH TH HH 28

2.11.1 Khai niệm - kh kg HH re 28

Trang 7

2.11.2 Tại sao chon Material ĨĨ? << 63 32111122 E+SEEkesseeessexe 28

3.2 Các chức năng của W€SIfC - - c1 nghệ 41

3.2.3 Luận văn - St ST SH HT H11 11 11111111111 1111111 tre 45

3.2.3.1 Hiển thị danh sách ¿©+©+++++Ext2EktEEteExrsrkerrrerkeerxee 453.2.3.2 Hiển thị thông tin chỉ tiẾt -¿- ¿5c +Sx+Ex+EE+E2EEEerEerxerxerkses 45

Trang 8

3.2.3.3 Trình xem PDE - Ăn TH TH HH HH ng nh n 47 3.2.3.4 Đăng tải luận văn và thêm thông tin - - 5 5= << £+sx+ssss 47

3.2.3.6 Chỉnh sửa thông tin và xóa luận văn -c «2-2 49

3.2.5 Tìm kiếm luận văn -+c+++ttEkkrrttrkrrrtrrirrtrrirrrrrirerrieg 523.2.6 Sắp xếp luận văn -:+cE+2E2EESEEEEEE2112212217121 211.11 53

3.2.7 BoOkmarK ST HH nghệ 55

3.2.7.1 Thêm và xóa bookimarK - - s + EEekkskserseersee 55

3.2.7.2 Hiến thị danh sách bookmark cc.ccsccscscssessesssessessessseesessessessseeseesess 56

Chương 4 KET QUÁ THUC NGHIỆM 2-2¿©5¿22++22E+£x+ezxezrxsrxeee 71

4.1 MMOdelL QC Q51 1kg 55x 7l

Trang 9

4.1.1 PhoBer( Ặ SG LH HH HH TH 71 4.1.2 LSTM cicceccccccscssssssessessessssssessessesssssssssessessussusssessessesssssessessessessseeseesess 71

' L0 . -1311 72

Chương 5 TONG KET VÀ HƯỚNG PHAT TRIEN 252 5 s+cs2 5+2 74

5.1 Tổng kẾC -2- tt E21 E21211211 1121111101111 11 1111 11a 74

5.1.1 _ Về phần ứng dụng web ¿- ¿+k+Sk+EE+EEEEEEE2E2EEEEEEkerkerkrree 74

5.1.2 Đóng góp chính của khóa luận - server 74

5.2 Khó khăn và hướng khắc phục - 2 2 s+2+£++£++£xezEzE+rserxerxeee 74

5.2.1 Khó khăn -.-5cc E22 E2 2112121212 74

5.2.2 Hướng giải quyết -¿©-cc©cccccccrkrrreerreerkeerxee 755.3 Hướng phát triỀn -:- 2 St9S2+E£2EE+EEEEEEEEEEE 1221112112171 711111 c0 75TÀI LIEU THAM KHẢO 2¿- E5: E23 EE2E9E5E12123851112E5E121511E111515511 1122 cxe2 76

Trang 10

Hình 2.4: Điểm F1 của Bert trên bảng xếp hang SQuADI.I - .: 13

Hình 2.5: Mô tả nguyên lý hoạt động của Encoder - -«++«c+s<+sessesses 14 Hình 2.6: Mô hình RNN bình thường - - 5 5 kg HH HH gi nưệt 18

Hình 2.7: Mô hình RNN gặp van đề phụ thuộc từ xa -¿- 2 c5 c+csszszce2 18

Hình 2.8: GOlanng eee 1 11111 E6 TH HH 20 Hình 2.9: Go-Gin Írame€WOTK - ch ST HH kh 21 Hình 2.10: PostgreS(QÌU cọ TH HH nh 22 Hình 2.11: COUÏITIATV G25 15111 211 11 910 E1 1T TH nh HH Hư 23

Hình 2.12: ElastICS€arCH ó- G6 113 19 TH nh TH nh nh gi như 25 Hình 2.13: NeXtJŠ LH TH ng ng HH HH Hư 27 I0) 58)/0i1001 01212 ŨAẠA 28

Hinh 2.15: Ngrok wo ees e 29 Hình 2.16: Bang giá các gói dịch vụ của Ngrok oo eee eeceseeerecneeeneeeneesneeseenneens 29

Hình 3.1: Sơ đồ kiến trúc hệ thống ¿22 2¿©2+2E++EE+2EEt2EEtEEEerxzrxrrrecree 30Hình 3.2: Sơ đồ phân rã chức năng 2-2 5¿+2£+EE+Ex+EE+2EE+EEtrxrrkerrxerrerrrree 31Hình 3.3: Sơ đồ use case người dùng -.-¿- ¿5s SE E2 1211212111111 cre 32Hình 3.4: Sơ đồ use case luận văn cho mọi người dùng ¿5-5 s52 +2 32Hình 3.5: Sơ dé use case luận văn cho người dùng đăng nhập - 33Hình 3.6: Sơ đồ use case bookmiark ¿- +: +: 5¿22++2x+EEt£E+2EE+EEerxrrkerrxerxerrrree 33Hình 3.7: Các mối quan hệ với faCuÌy - ¿2-2 x+S++££+E£+E+E££Eerkerxerxersrree 38

Hình 3.8: Mô hình ERD giữa các thực thể liên quan với faculty 38

Hình 3.9: Các mối quan hệ với uSer - 2-2: 2£ 5£25£+SE+EE£EE+2EE+EEtEEtrkezreerxerxrres 39Hình 3.10: Mô hình ERD giữa các thực thể liên quan với user -: 39

Trang 11

Các môi quan hỆ với theSis - - 5 5 + 11 ng ngư 40

Mô hình ERD giữa các thực thé liên quan với thesis .- 40

Man hình trang đăng ký tài khoản - xe seeseeseeseree 41 Man hình trang đăng nhap - - 5 5 + 1n ng ngư 42 Trang chủ khi người dùng đăng nhập thành công 42

Màn hình trang hồ sơ người dùng - 2 252 z+Ee£Eezxerxerxrrszes 43Màn hình trang chỉnh sửa hồ sơ - 2-22 522S+22++2x+ecxzrxrrresres 43Màn hình trang hồ sơ sau khi chỉnh sửa thông tin - 44Danh sách các luận văn được hiền thị - - - c ssvcv£v+EeEerzxerereree 45Thông tin chỉ tiết của luận văn 2-22 5¿22+2z+t£xEvrxezrxrrrerrei 46

Trimh 00390) 111 47

Thêm luận văn từ trang hồ sơ người dùng -. 2 ¿52 szscszz4 47

Màn hình trang đăng tải luận văn - - nen 48 Các luận văn đã được người dùng đăng lên - -5<++s<+<s+++ 49

Xóa hoặc chỉnh sửa luận - - + +22 < E332 3£ *+2EE‡c+eEEezeeeeeezeeeee 49 Lọc luận văn theo tÊH - 75 2 E322 21EE2231 81 2231 251 1 5311 sec, 50

Lọc luận văn theo khoa << <2 23322211 EE‡‡++*evEEEkeeeeseeeeeeeee 50 Lọc luận văn theo năm - - << = + +21 EEE++++#EEEEkeeezzeeeeeee 51

ii 0i0⁄:¡0:1 9á] 0 4 51 Lọc luận văn theo khoa, năm và tag - Le, 52

Tìm kiếm luận văn theo tên tại thanh tìm kiếm - 2z s=++szz 52Tắt cả luận văn tim đđưỢC - c6 SE EEEESEEEEEEEEEEEEkekererkrkerrrrree 53Sắp xếp theo tên đề tai eecececececccscescssessessescsescssessessesseseessestssesseesesseaee 54Sắp xếp theo tag -2:- 2c 2k2 221122121122112111211211111211211 1 1 xe 54Sap 001041 -< 55

Bookmark luận văn - - - -G - c 131111121111 2111118 1111851111 8x tre, 56 Danh sach bookmark n 57 Danh sach 0v:10i)ì 0n ằ - 5

Thống nhất về việc gán nhãn -2- 2: 2£ ©5£+£+£E+EE£E+E+zxerxersez 59

Trang 12

Hình 3.40: Tổng hợp các từ được thay thế -¿- 2: 2¿2++22++2x++zx+erxezrxerreeree 61

Hình 3.41: Các layer của model sử dụng Pho Bert s5 «+ se s+eesseeese 62

Hình 3.42: Các layer của model sử dụng LSTM - Ï - 5< << cese 66

Hình 3.43: Các layer của model sử dụng LSTM - 2 - - «se +sseeee 67

Hình 4.1: Biểu đồ so sánh PhoBert va LSTM - labels cssccssessessssssesseeseestesseeseess 72

Hình 4.2: Biểu đồ so sánh PhoBert và LSTM - Score ¿52s ss+e+e+e+e+z+eszsssz 73

Trang 13

Bang 1.1:

Bang 1.2:

Bang 1.3:

Bang 3.1:

Bang 3.2:

Bang 3.3:

Bang 3.4:

Bang 3.5:

Bang 3.6:

Bang 3.7:

Bang 4.1:

Bang 4.2:

Bang 4.3:

DANH MUC BANG

Bang đánh gia model của dé tài trường đại hoc Budi Luhur 4

Bảng đánh gia model của trường đại hoc Bumigora với TF-IDF 5

Bảng đánh giá model của trường đại hoc Bumigora không có TF-IDF 5

Bang faculty ee eee 33

Bang MaJOF 0.0 - 34

Bang USEF ố ố.ố 34

r0 35

017) 11177 36

5ã: 58:17 a 37

Bang booKImaFK cece 6 + E21 5E 11 11 31 931 H1 ng 37

Môi trường thực nghiệm trên google colab - ‹- s ss+<<<<sx+se+sxss 71

Bảng kết quả của model PhoBert -.2 s¿- 5+ ©+22s+2£x2zxezx+erxesrxez 71 Bảng kết quả của model LSTM 2-2 +£+++£x++£x++zxezxeerxesrxez 72

Trang 14

DANH MỤC TỪ VIET TAT

BERT Bidirectional Encoder Representation

from Transformer

LSTM Long Short Term Memory

ML Machine Learning

NLP Natural Language Processing

RNN Recurrent Neural Network

SOTA State of the Art

UI User Interface

Trang 15

TÓM TẮT KHÓA LUẬN

Trong hoàn cảnh đại dịch Covid-19 diễn ra, mọi hoạt động trong cuộc sốngđều chịu ảnh hưởng và bắt buộc phải thay đổi sang hình thức trực tuyến Việc phảicách ly tại nhà đã dẫn đến khá nhiều những bắt cập trong việc học như không có sựtương tác nhiều, việc tiếp thu bài khó, Và một trong số những vấn đề đặc biệt ảnhhưởng đến những sinh viên năm cuối như nhóm tác giả đó là việc làm khóa luận tốtnghiệp Khi làm khóa luận, việc tham khảo những tài liệu của các khóa trước để tìm

ý tưởng là cần thiết Tuy nhiên, do cách ly kéo đài khiến việc tìm kiếm tài liệu trở

nên vô cùng khó khăn Chính điều này đã cho nhóm tác giả ý tưởng xây dựng mộtwebsite để lưu trữ và cho phép đọc luận văn online

Theses Share là một ứng dụng web cho phép mọi sinh viên UIT chia sẻ luận

văn cũng như đọc luận văn của nhau Trang web sẽ cho phép mọi đối tượng tham

khảo, giúp mọi sinh viên đều có thê được đọc những luận văn mới nhất cũng như

hiểu được các chủ đề luận văn xu hướng hiện nay Bên cạnh đó, ứng dụng còn tập

trung vào việc sử dụng máy học dé gán nhãn các đề tài, giúp sinh viên có thé dễ

dàng tìm kiếm những chủ đề mà mình quan tâm Hơn nữa, ứng dụng có khả năng

tương thích tốt với thiết bị điện thoại, giúp tăng trải nghiệm người dùng Những

công nghệ chính được sử dụng trong đề tài bao gồm:

e FE: NextJS, Material UI

e BE: Go, Gin, Elastic Search.

Đề tài này sẽ làm một giải pháp tuyệt vời dé sinh viên có thé tham khảo luậnvăn trong thời điểm cách ly tại nhà Kể cả khi kết thúc giãn cách xã hội, ứng dụng

này vẫn có giá trị của mình khi các bạn sinh viên có thể đọc tài liệu ở nhà, tiết kiệmđược thời gian đi lại và có nhiều thời gian nghiên cứu hơn Hy vọng ứng dụng này

sẽ giúp các bạn sinh viên tiếp cận với khóa luận tốt nghiệp dễ dàng hơn, giúp các

bạn thuận tiện hơn trong việc nghiên cứu cũng như cung cấp vô vàn chủ dé dé các

bạn có thé tham khảo

Trang 16

Chương 1 TONG QUAN DE TÀI

Trong chương nay, nhóm sé tap trung trình bay các nội dung sau:

Đặt vấn đề

Mục tiêu.

Đối tượng và phạm vi nghiên cứu

Phương pháp thực hiện.

Kết quả mong đợi

am FF YN PD Các công trình nghiên cứu trước đó.

1.1 Đặt vấn đề

Hầu hết mọi hoạt động của con người hiện nay đều phải diễn ra thông qua

hình thức online do chịu sự ảnh hưởng của đại dịch Covid-19 Ngoài việc học tại

trường, mọi sinh viên — đặt biệt là sinh viên năm cuối — đều có nhu cầu muốn đọc

khóa luận tốt nghiệp Tuy nhiên, do điều kiện không cho phép nên việc tiếp cận đếncác khóa luận là rất khó khăn Trang web thư viện của trường cũng có đăng tải khóaluận nhưng đa số khóa luận đều khá cũ, trang web khó thao tác và khả năng tìm

kiếm cũng còn hạn ché Những khóa luận có thể kiếm được trên mạng cũng rất hạn

chế và những chủ đề cũng không còn mới nữa Điều này dẫn đến nhu cầu tham

khảo những đề tài khóa luận mới nhất của các sinh viên hiện đang và sẽ làm khóa

cách dễ dàng hơn.

1.2 Mục tiêu

Đê tài này với nhăm tới những mục tiêu cụ thê như sau:

Trang 17

e Xây dựng một ứng dụng web cho phép mọi sinh viên UIT chia sẻ luận van

cũng như đọc luận văn của nhau Trang web sẽ cho phép mọi đối tượng thamkhảo, giúp mọi sinh viên đều có thể được đọc những luận văn mới nhất cũngnhư hiểu được các chủ đề luận văn xu hướng hiện nay

© Đề tài này sẽ là một giải pháp tuyệt vời dé sinh viên có thể tham khảo luận văn

trong thời điểm hạn chế di chuyên và tiếp xúc khi dai dịch Covid-19 van đang

e Xây dựng nén tảng lưu trữ và chia sẻ luận văn của sinh viên UIT Nền tang

phân quyền chức năng giữa người dùng ấn danh và người dùng đăng ký

e Nghiên cứu hệ thống tự động gán nhãn dựa theo tiêu đề và nội dung văn bản

e Tích hợp hệ thống vào nền tảng dé tối ưu việc phân loại tag

1.3.2 Phạm vi nghiên cứu

se Nền tảng sẽ có những chức năng tìm kiếm, lọc, đọc luận văn cho người dùng

Cung cấp thêm chức năng đánh dấu và chức năng xóa, sửa luận văn đã đăng

tải cho người dùng đăng ký.

e Tìm hiểu về hệ thống tự động gán nhãn dựa trên tiêu đề và nội dung luận văn

Đầu vào là luận văn được người dùng đăng tải và đầu ra là các nhãn liên quan

tới nội dung luận văn.

1.4 Phương pháp thực hiện

e Áp dụng học có giám sát

e Tim hiêu những model liên quan về lĩnh vực xử lí ngôn ngữ tự nhiên.

Trang 18

e Chọn lọc và chỉnh sửa các thuật toán dé có tính chính xác cao nhất.

e Tích hợp model vào ứng dung web.

e_ Đánh giá kết quả

1.5 Kết quả mong đợi

e Xây dựng ứng dụng web hoàn chỉnh, giúp cho sinh viên đóng góp luận văn

cho những thế hệ sinh viên trẻ và những người thích nghiên cứu

e_ Tích hợp hệ thống tự động gán nhãn giúp sinh viên dé dàng tìm kiếm thé loại

luận văn mình đang nghiên cứu.

1.6 Công trình nghiên cứu trước đó

1.6.1 Đề tài nghiên cứu của trường đại học Budi Luhur ở Indonesia

Đề tài [17] là công trình nghiên cứu phân loại khóa luận của trường đại học Budi

Luhur ở Indonesia của tác giả Achmad Solichin Đề tài sử dụng ba phương thức

phân loại là Decision Tree, Naive Bayes, k-Nearest Neighbors (KNN) và đạt được

sự đánh giá cao với phương thức kNN.

78,20% 80,32% 96,49%

Tác gia đã có một model có các diém sô với tỉ lệ phân trăm cao Tuy nhiên, bài toán

này thuộc phân loại binary nghĩa là đâu vào là I khóa luận và đâu ra sẽ là đạt hay

không đạt, đây không phải là định hướng bài toán của nhóm.

1.6.2 Đề tài nghiên cứu của trường đại học Bumigora ở Malaysia

Đề tài [23] của nhóm tác giả Hairani Hairani của trưởng đại học Bumigora ở

Malaysia Họ sử dụng naive Bayes với trọng số TF-IDF và không có trọng số

TF-IDF và có kết quả như sau:

Trang 19

(accuracy_score) cao như vậy khả năng cao, nhóm tác gia sẽ phân loại khóa luận

theo multi-class, nghĩa là mỗi khóa luận chỉ có 1 topic mà thôi.

1.6.3 Đề tài nghiên cứu của trường đại học UIT

Đề tài [24] của nhóm tác giả Hieu Trung Tran của trường UIT, nhóm tác giả nhìn

thấy vấn đề về các tin tức tuyên dụng rất nhiều và họ muốn phân loại theo nhiều

nhãn (multi-label) bằng 2 ngôn ngữ tiếng Anh và tiếng Việt để ứng cử viên dễ dàngtìm được công việc phù hợp và nhà tuyển dụng cũng tiết kiệm được nhiều thời gianhơn Đề tài sử dụng multi-label cộng với Phobert đúng với hướng nghiên cứu của

nhóm và bên cạnh đó nhóm tác giả sử dụng rất nhiều model để có sự so sánh và lựachọn model phù hợp nhất bao gồm W2V, fastText, Bert_Base, ELMO and

MULTI_WC_F_E_B, Pho2WV, BERT (m-BERT), XLM-R, DistIBERT, và

PhoBERT.

Trang 20

Type Pre-trained models Fi-srore TA)

Hình 1.1: Đánh giá các model trong dé tài của trường đại học UIT

Hình 1.2: Số đánh giá đúng/sai lượng label trong đề tài của trường đại học UIT

Model hiện tại của họ sẽ không đoán chính xác những tin tức tuyên dung nào nhiềuhơn 5 nhãn Và nhóm tác giả lựa chọn F1-score dé so sánh vì bài toán multi-label

thường accuracy_score sẽ không cao và hoàn toàn không đúng trong nhiều hoàn

cảnh.

Với dataset bao gồm xấp sỉ 22000 tin tức tuyên dụng thì, model của họ tốt nhất là

BERT (62,2%) cho tiếng Anh và PhoBert (61,29%) cho tiếng Việt Day là một con

số trên mức trung bình nhưng vẫn chưa phải là cao.

Với các công trình nghiên cứu liên quan trên, nhóm đã quyết định chọn PhoBert —

một biến thé tiếng Việt của BERT (một model SOTA ở thời điểm hiện tại trong lĩnhvực NLP) để ứng dụng cho bài toán phân loại khóa luận theo nhiều nhãn Đóng gópcủa nhóm trong khóa luận này chính là một bộ dữ liệu gồm 700 khóa luận đã đượcgán nhãn và áp dụng mô hình có kết quả tốt nhất cho bài toán tự động gán nhãn

Trang 21

Chương 2 CƠ SỞ LÝ THUYET

Trong chương này, nhóm sẽ trình bày về cơ sở lý thuyết, các khái niệm cũng như ưuđiểm của những công nghệ đã được nhóm sử dụng trong đề tài

2.1 Machine Learning

Machine learning (ML) hay máy học là một nhánh của trí tuệ nhân tạo (AI), nó là một lĩnh vực nghiên cứu cho phép máy tính có khả năng cải thiện chính bản thân

chúng dựa trên dữ liệu mẫu (training data) hoặc dựa vào kinh nghiệm (những gì đã

được học) Machine learning có thể tự dự đoán hoặc đưa ra quyết định mà không cầnđược lập trình cụ thể

Bài toán machine learning thường được chia làm hai loại là dự đoán (prediction) và phân loại (classification) Các bài toán dự đoán như dự đoán giá nhà, giá xe Các

bài toán phân loại như nhận diện chữ viết tay, nhận diện đồ vật [7]

Machine Learning Workflow

ARTICLE AT

KHIEMLE.DEV

Hình 2.1: Workflow của machine learning

2.2 NLP

Xu lý ngôn ngữ tự nhiên là một nhánh cua trí tuệ nhân tao, tập trung vào việc nghiên

cứu sự tương tác giữa máy tính và ngôn ngữ tự nhiên của con người, dưới dạng tiêng

nói (speech) hoặc văn bản (text) Mục tiêu của lĩnh vực nay là giúp máy tính hiéu và

Trang 22

thực hiện hiệu quả những nhiệm vụ liên quan đên ngôn ngữ của con người như: tương

tác giữa người va máy, cải thiện hiệu qua giao tiép giữa con người với con người, hoặc đơn giản là nâng cao hiệu quả xử lý văn bản và lời nói [16]

Các ứng dụng cơ bản của NLP:

1 Chế tạo các hệ thống Máy dịch, ví dụ như Google translation

Xử lý văn bản và ngôn ngữ.

Tìm kiếm thông tin

Trích xuất thông tin

Tóm tắt văn bản

Am FY SN Phan loai van ban.

là Data mining, web mining.

Và nhóm sử dụng NLP cho ứng dụng phân loại văn bản

Multi-class Classifier

K = Total number of classes in the problem statement

€ = Number of classes an item maybe assigned to

Hinh 2.2: Cac dang bai toan phan loai

Trang 23

2.2.1 Ngữ cảnh (Contextual) và vai tro trong NLP

Ngữ cảnh trong câu có một sự ảnh hưởng rất lớn trong việc giải thích ý nghĩa của

từ Hiểu được vai trò mau chốt đó, các thuật toán NLP SOTA đều cố gắng đưa ngữ

cảnh vào mô hình nhắm tạo ra sự đột phá và cải tiên.

Phân cấp mức độ phát triển của các phương pháp embedding từ trong NLP có thé

e Câu A: Đơn vi tiền tệ của Việt Nam là [đồng]

e_ Câu B: Tôi [đồng] ý với ý kiến của anh

Thi từ “đồng” sẽ mang 2 ý nghĩa khác nhau nên phải có hai biểu diễn từ riêng biệt.Các thuật toán non-context đã không đáp ứng được sự đa dạng về ngữ nghĩa của từ

trong NLP.

Uni-directional (một chiều): Là các thuật toán đã bắt đầu xuất hiện bối cảnh của từ.Các kết quả biểu diễn từ đã có bối cảnh nhưng chỉ được giải thích bởi một chiều từ

trái qua phải hoặc từ phải qua trái Ví dụ:

e Câu C: Hôm nay tôi mang 200 ty [gửi] ở ngân hàng.

e Câu D: Hôm nay tôi mang 200 ty [gui]

Nhu vậy véc tơ biểu diễn của từ “gửi” được xác định thông qua các từ liền trước với

nó Nêu chỉ dựa vào các từ liên trước “Hôm nay tôi mang 200 tỷ” thì ta có thê nghĩ

từ phù hợp ở vi trí hiện tại là cho vay, mua, thanh toán,

ELMo là một ví dụ cho phương pháp một chiều Mặc dù ELMo có kiến trúc dựa

trên một mạng BiLSTM xem xét bối cảnh theo hai chiều từ trái sang phải và từ phải

Trang 24

sang trái nhưng những chiều này là độc lập nhau nên ta coi như đó là biểu diễn mộtchiều.

Thuật toán ELMo đã cải tiến hơn so với word2vec và fasttext đó là tạo ra nghĩa của

từ theo bối cảnh Trong ví dụ về từ đồng thì ở mỗi câu A và B chúng ta sẽ có một

biểu diễn từ khác biệt

Bi-directional (hai chiều): Ngữ nghĩa của một từ không chỉ được biểu diễn bởi

những từ liền trước mà còn được giải thích bởi toàn bộ các từ xung quanh Luồng

giải thích tuân theo đồng thời từ trái qua phải và từ phải qua trái cùng một lúc Đại

diện cho các phép biéu diễn từ này là những mô hình sử dụng kỹ thuật transformer

mà chúng ta sẽ tìm hiểu bên dưới Gần đây, những thuật toán NLP theo trường pháibidirectional như BERT, ULMFit, OpenAI GPT đã đạt được những kết quả SOTAtrên hầu hết các tác vụ của GLUE benchmark.[11]

2.2.2 Phân loại nhị phân (Binary classification)

Day là bài toán phân loại theo 2 nhãn (0,1) Trong đó nhãn 1 là tích cực (positive),

nhãn 0 là tiêu cực (negative) Một đầu vào (input) sẽ cho ra output là 0 hay 1 Phan

loại nhị phân thường giải quyết các bài toán:

e Trong lĩnh vực y tế, sẽ phân loại bệnh nhân có bị bệnh ung thư hay

không.

e_ Trong kiểm soát chất lượng công nghiệp, quyết định liệu một đặc

điểm kỹ thuật đã được đáp ứng hay chưa

e Trong truy xuất thông tin, quyết định liệu một trang có nên nằm

trong tập hợp của tìm kiếm hay không [18]

2.2.3 Phân loại đa lớp (Multi-class classification)

Bài toán phân lớp da lớp là quá trình phân lớp dit liệu với số lượng lớp lớn hơn hai

Như vậy với từng dữ liệu phải xem xét và phân lớp chúng vào những lớp khác nhau

chứ không phải là hai lớp như bài toán phân lớp nhị phân Và thực chất bài toán

phân lớp nhị phân là một bai toán đặt biệt của phân lớp đa lớp.[9]

10

Trang 25

Với phân loại đa lớp này thi output sẽ là 1 mang dự đoán với phan tử sẽ là con số

threshold thé hiện cái khả năng mà input sẽ thuộc class đó và tổng của các phan tử

trong mảng sẽ là 100% Ví dụ, ta có bài toán phân loại một bình luận là “This food

is delicious” sẽ thuộc vào 4 class: happy, sad, toxic, normal Ta sẽ có output là [0.7;

0.15; 0.1; 0.05] va ta sẽ thay tong output sẽ là 100% = 0.7 + 0.15 + 0.1 + 0.05 và

con số threshold cao nhất là 0.7 ở class happy Vậy câu bình luận “This food is

delicious” sẽ thuộc vào class happy.

2.2.4 Phân loại đa nhãn (Multi-label classification)

Phân loại đa nhãn là quá trình phân loại dữ liệu sẽ thuộc về n class, giải quyết đượcnhiều bài toán thực tế:

e Một bộ phim vừa có thé là phim hành động va lãng mạn, thậm chí

là kinh di

© Một bài báo có thé thuộc lĩnh vực xã hội, chính trị

© Một cái áo có thể có cả loại (T-Shirt, Dress) cũng có cả màu (blue,

red, yellow)

Multi-Class Multi-Label

(001) [100] [010] [101] [010] [111]

Hình 2.3: Sự khác biệt giữa multi-class và multi-label

Với phân loại đa nhãn này thi output sẽ là 1 mang dự đoán với phan tử sẽ là con sốthreshold thể hiện cái khả năng ma input sẽ thuộc class đó và tông của các phần tử

trong mảng sẽ khác 100%, thậm chí lớn hơn là điều bình thường Vì

11

Trang 26

các class không loại trừ nhau như bai toán phân loại đa lớp Ví du, ta có bài toán

phân loại một text là “After all, the Java language was created, in part, to address

some of the shortcomings of C++” sẽ thuộc vào 5 class: Java, c++, c#, python,

golang Ta sẽ có output là [0.7; 0.6; 0.2; 0.4;0.3] va ta sẽ thay tong output sẽ là

220% = 0.7 + 0.6 + 0.2 + 0.4 + 0.3 và con số threshold cao nhất là 0.7 ở class java.Nhung lúc này ta không lay threshold cao nhất, ta sẽ có 2 cách chọn dé ra output:

e Cách 1 là chọn một giá tri cho threshold, ví dụ ta chọn lớn hon 0.6

thì text đó sẽ thuộc Java, ta chọn lớn hơn 0.5 thì text đó sẽ thuộc 2 nhãn là Java, c++, ta chọn lớn hơn 0.3 thì text đó sẽ thuộc 3 nhãn là

Java, c++, python

e_ Cách 2 là chọn top n threshold cao nhất, ta chọn top 1 thì text sẽ

thuộc Java, top 2 thì text sẽ thuộc 2 nhãn Java, c++

Đề tài của nhóm sẽ hướng tới sử dụng phân loại đa nhãn, vì một bài luận văn UIT cóthể thuộc nhiều topic khác nhau (iot, web, nhúng, mobile, )

2.3 Bert

BERT là viết tắt của cụm từ Bidirectional Encoder Representation from

Transformer có nghĩa là mô hình biéu diễn từ theo 2 chiều ứng dung kỹ thuật

Transformer BERT được thiết kế để huấn luyện trước các biéu diễn từ (pre-train

word embedding) Điểm đặc biệt ở BERT đó là nó có thé điều hòa cân bằng bối

cảnh theo cả 2 chiều trái và phải [11]

BERT là model biểu diễn ngôn ngữ được Google giới thiệu vào năm 2018

Trong bai báo [11] các tác giả đã nêu ra những cải tiến của model BERT trong các

tác vu:

e Tăng GLUE score (General Language Understanding Evaluation score), một

chỉ số tổng quát đánh giá mức độ hiéu ngôn ngữ lên 80.5%

e Tăng accuracy trên bộ dữ liệu MultiNLI đánh giá tác vụ quan hệ văn ban (text

entailment) lên 86.7%.

12

Trang 27

e Tăng accuracy F1 score trên bộ dữ liệu SQUAD v1.1 đánh giá tác vụ question

and answering lên 93.2%.

BERT sử dung Transformer là một mô hình attention (attention mechanism) hoc

môi tương quan giữa các từ (hoặc một phan của từ) trong một van ban Transformer

gôm có hai phân chính: Encoder và Decoder, encoder thực hiện đọc dữ liệu dau vào

và decoder đưa ra dự đoán Ở đây, BERT chỉ sử dụng Encoder

Khác với các mô hình directional (các mô hình chỉ đọc dữ liệu theo một chiều duy

nhất - trai—phai, phải— trái) đọc dữ liệu theo dạng tuần tự, Encoder đọc toàn bộ dữliệu trong 1 lần, việc này làm cho BERT có khả năng huấn luyện dữ liệu theo cả hai

chiều, qua đó mô hình có thể học được ngữ cảnh (context) của từ tốt hơn bang cach

sử dụng những từ xung quanh nó (phải va trai).[11]

13

Trang 28

Mô hình encoder

Hình 2.5: Mô tả nguyên lý hoạt động của Encoder.

Theo đó, input đầu vào là một chuỗi các token wl, w2, được biểu diễn thành

chuỗi các vector trước khi đưa vào trong mạng neural Output của mô hình là chuỗi

các vector có kích thước đúng bằng kích thước input

Trong khi huấn luyện mô hình, một thách thức gặp phải là các mô hình

directional truyền thống gặp giới hạn khi học ngữ cảnh của từ Đề khắc phục nhượcđiểm của các mô hình cũ, BERT sử dụng 2 chiến lược training sau: Masked ML,

Next Sentence Prediction [5]

2.3.1 Masked ML

Khi sử dung ngữ cảnh 2 chiều sẽ gây ra một nghịch lý là một từ có thé gián tiếp tựnhìn thấy nó trong một ngữ cảnh nhiều lớp

14

Trang 29

Dé đảo tạo một mô hình tìm ra đại diện dựa vào ngữ cảnh 2 chiêu, chúng ta sử dụng một cách tiép cận đơn giản dé che giâu đi một sô token đâu vào một cách ngau

nhiên và sau đó chúng ta chỉ dự đoán các token được giâu di.

Trước khi đưa vào BERT, thì 15% số từ trong chuỗi được thay thế bởi token

[MASK], khi đó mô hình sẽ dự đoán từ được thay thé bởi [MASK] với context là

các từ không bị thay thé boi [MASK] Trên thực tế, con số 15% không phải là cố

định mà có thé thay đổi theo mục đích của bài toán

e Ví dụ với câu: “con_ chó của tôi đẹp quá” Từ được chọn dé mask là

từ “đẹp” Câu sẽ trở thành "con_ chó của tôi [MASK] qua"

e Các từ được chon sẽ được thay thế bởi 1 từ ngẫu nhiên thành

"con_ chó của tôi máy_ tính qua"

Transformer encoder không hề biết được từ nao sé được yêu cầu dự đoán hoặc từ

nao đã được thay thé băng một từ ngẫu nhiên, do đó, nó buộc phải giữ một biểu

diễn theo ngữ cảnh của mối token đầu vào Ngoài ra, do thay thế 15% tất cả các

tokens bằng một từ ngẫu nhiên nên điều này dường như sẽ không làm ảnh hưởng tới

khả năng hiểu ngôn ngữ của mô hình [13]

2.3.2 Next Sentence Prediction (NSP)

Nhiéu nhiệm vụ quan trọng trong xử lý ngôn ngữ tu nhiên như Question Answering

yêu câu sự hiệu biệt dựa trên môi quan hệ giữa 2 câu văn bản, không trực tiép sử

dụng được các mô hình ngôn ngữ.[13]

Đây là một bài toán phân loại học có giám sát với 2 nhãn (hay còn gọi là phân

loại nhị phân) Input đầu vào của mô hình là một cặp câu (pair-sequence) sao cho

50% câu thứ 2 được lựa chọn là câu tiếp theo của câu thứ nhất và 50% được lựa

chọn một cách ngẫu nhiên từ bộ văn bản mà không có mối liên hệ gì với câu thứ

nhất Nhãn của mô hình sẽ tương ứng với IsNext khi cặp câu là liên tiếp hoặc

NotNext nếu cặp câu không liên tiếp.[I 1]

15

Trang 30

Chúng ta cần đánh dấu các vị trí đầu câu thứ nhất bằng token [CLS] và vị trí cuối

các câu bằng token [SEP] Các token này có tác dụng nhận biết các vị trí bắt đầu vàkết thúc của từng câu thứ nhất và thứ hai.[11]

Ví dụ:

e Input: [CLS] người đàn ông lam [MASK] tại cửa hàng [SEP]

anh_ta rat [MASK] và than_thién [SEP]

Label: isNext [13]

e Input: [CLS] nguoi đàn ông lam [MASK] tại cửa_hàng [SEP] cô_ ta

dang cầm sting [SEP]

Label: notNext [13]

2.3.3 Các kiến trúc model BERT

Hiện tại có nhiều phiên bản khác nhau của model BERT Các phiên bản đều dựa

trên việc thay đổi kiến trúc của Transformer tập trung ở 3 tham số:

L: số lượng các block sub-layers trong transformer,

H: kích thước của embedding véc tơ (hay còn gọi là hidden size),

A: Số lượng head trong multi-head layer, mỗi một head sẽ thực hiện một

self-attention Tên gọi của 2 kiến trúc bao gồm:

e BERTBASE(L=12,H=768,A=12) : Tổng tham số 110 triệu

e BERTLARGE(L=24,H=1024,A=16): Tổng tham số 340 triệu.

Như vậy ở kiến trúc BERT Large chúng ta tăng gấp đôi số layer, tăng kích thước

hidden size của embedding véc tơ gấp 1.33 lần và tăng số lượng head trong

multi-head layer gấp 1.33 lần [11]

16

Trang 31

2.4 PhoBert

Day là một pre-trained được huấn luyện monolingual language, tức là chỉ huấn

luyện dành riêng cho tiếng Việt Việc huấn luyện dựa trên kiến trúc và cách tiếp cậngiống RoBERTa của Facebook được Facebook giới thiệu giữa năm 2019

Tương tự như BERT, PhoBERT cũng có 2 phiên bản là PhoBERT {base}

PhoBERTbase với 12 transformers block và PhoBERT {large} PhoBERTlarge với

24 transformers block.

PhoBERT được train trên khoảng 20GB dữ liệu bao gồm khoảng 1GB Vietnamese

Wikipedia corpus và 19GB còn lại lấy từ Vietnamese news corpus Đây là một

lượng dữ liệu khả ôn dé train một mô hình như BERT

Tiếp cận theo tư tưởng của RoBERTa (môt biến thé của BERT), PhoBERT chỉ sử

dụng task Masked Language Model dé train, bỏ di task Next Sentence Prediction

[12]

2.5 RNN va LSTM

2.5.1 RNN

Đối voi mang neural thông thường, chúng ta cho tat ca dit liệu vào cùng một lúc

Nhưng đôi khi, đữ liệu của chúng ta mang ý nghĩa trình tự, tức nếu thay đổi trình tự

dữ liệu, kết quả sẽ khác

Dễ thấy rõ nhất ở dữ liệu văn bản Ví dụ, “Con ăn cơm chưa” và “Con chưa ăn

cơm”, nếu tách mỗi câu theo từ, ta được bộ vocab [ ‘con’, “ăn”, ‘com’, “chưa” ], onehot encoding và cho tat cả vào mang neural, có thé thấy ngay, không có sự phân biệt

nào giữa 2 câu trên Việc đảo thứ tự duyệt các từ làm sai lệch ý nghĩ của câu Mạng

nơ-ron hồi quy (Recurrent Neural Network) sinh ra dé giải quyết van dé đó [10]

2.5.2 Vấn đề của RNN

RNN gap van đề với van đề phụ thuộc từ xa, với khoảng cách các từ càng lớn dan

thì RNN không thê nhớ và học được nữa

17

Trang 32

Đôi lúc ta chỉ cần xem lại thông tin vừa có thôi là đủ đề biết được tình huống hiệntại Ví dụ, ta có câu: “các đám mây trên bầu trời” thì ta chỉ cần đọc tới “các đám

mây trên bầu” là đủ biết được chữ tiếp theo là “trời” rồi Trong tình huống này,

khoảng cách tới thông tin có được cần đề dự đoán là nhỏ, nên RNN hoàn toàn có

thé học được

Hình 2.6: Mô hình RNN bình thường

Nhung trong nhiều tình huống ta buộc phải sử dụng nhiều ngữ cảnh hơn dé suy

luận Ví dụ, dự đoán chữ cuối cùng trong đoạn: “I grew up in France I speak

fluent French.” Rõ ràng là các thông tin gần (“I speak fluent”) chỉ có phép ta biếtđược đẳng sau nó sẽ là tên của một ngôn ngữ nảo đó, còn không thể nào biết được

đó là tiếng gì Muốn biết là tiếng gì, thì ta cần phải có thêm ngữ cảnh “I grew up inFrance” nữa mới có thê suy luận được Rõ ràng là khoảng cách thông tin lúc này cóthé đã khá xa rồi.[10]

18

Trang 33

2.5.3 LSTM

Mạng bộ nhớ dài-ngắn (Long Short Term Memory networks), thường được gọi là

LSTM - là một dạng đặc biệt của RNN, nó có khả năng học được các phụ thuộc xa.

LSTM được thiết kế dé tránh được vấn đề phụ thuộc xa (long-term dependency).Việc nhớ thông tin trong suốt thời gian dài là đặc tính mặc định của chúng, chứ ta

không cần phải huấn luyện nó đề có thé nhớ được.[10]

19

Trang 34

2.6 Ngôn ngữ Golang

Golang là 1 ngôn ngữ lập trình mã nguồn mở được thiết kế dựa trên tư duy

lập trình hệ thống Golang được phát triển bởi Robert Griesemer, Rob Pike và Ken

Thompson tại Google vào năm 2007 Nó được kỳ vọng sẽ giúp ngành công nghiệp

phần mềm khai thác nền tảng đa lõi của bộ vi xử lý và hoạt động đa nhiệm tốt hơn

Điểm mạnh của Golang là bộ thu gom rác và hỗ trợ lập trình đồng thời Golang là

một ngôn ngữ biên dịch như C/C++, Java, Pascal, Golang được giới thiệu vào

năm 2009, phiên bản mới nhất ở thời điểm hiện tại là 1.17 phát hành vào năm 2021,

một trong những tính năng mới cập nhật là Generic, giúp giảm thời gian code của

lập trình viên [8]

20

Trang 35

2.6.1 Go-Gin framework

Hình 2.9: Go-Gin framework

Gin là 1 web framework được viết bằng Go mã nguồn mở được phát triển với

mục đích để xây dựng các ứng dụng web bằng Go với hiệu năng cao Gin là 1 webframework nỗi tiếng và cung cấp nhiều tính năng như [22]:

se Tốc độ nhanh

e Hỗ tro middleware.

e Hỗ trợ xử ly crash va hồi phục, đảm bao server luôn sẵn sàng

¢ Hỗ trợ kiểm tra tính hợp lệ của yêu cầu HTTP

e Định tuyến theo nhóm: Tổ chức định tuyến theo cấu trúc tốt hon mà không

ảnh hưởng lớn đến hiệu năng

e Quan lý lỗi: Gin cung cấp một cách thuận tiện dé thu thập tat cả các lỗi xảy ra

trong 1 yêu cầu HTTP

e Dễ dàng mở rộng.

21

Trang 36

2.7 PostgreSQL

Hình 2.10: PostgreSQL

PostgreSQL là một hệ thong quan tri cơ sở dir liệu quan hệ - đối tượng

(object-relational database management system), hệ thống cơ sở dữ liệu mã nguồn mở tiên

tiên nhât hiện nay.

Là hệ thống quản lý cơ sở đữ liệu quan hệ đối tượng, PostgreSQL cho phép

thêm vào các tính năng tùy chỉnh được phát triển bằng các ngôn ngữ chương trình

khác nhau như C/C++, Java, [15]

PostgreSQL cung cấp cho người dùng nhiều tính năng hiện đại, khả năng ôn

định cao, tốc độ tuyệt vời, chính vì vậy ma PostgreSQL trở nên phổ biến, có thé dễdàng thấy nhiều dich vụ thiết kế website khách sạn sử dụng nền tảng này dé tạo

web, ngoài ra thì còn có nhiêu ứng dụng khác như:

e Kiểu dữ liệu: nguyên hàm (các nguyên SỐ, boolean, SỐ, chuỗi); cấu trúc (UUID,

Phạm vi, Array, Date/time); Hình học; Tùy chỉnh; Document

e Toàn vẹn dữ liệu: Rang buộc loại từ, Primary Keys, Foreign Keys, UNIQUE,

NOT NULL, Khóa khuyến nghị - Advisory Locks, Khóa hàm số - Explicit

Locks,

e Hiệu suất, đồng quy: Tinh năng lập danh mục, lập danh mục nâng cao, trình

lập kế hoạch, trình tối ưu hóa truy cập phức tạp, thống kê số liệu trên nhiềucột, quét index — only, giao tác — giao tác dang test, điều khiến đồng thời nhiềuphiên bản (MVCC), phân vùng bảng, truy van đọc song song, độ tin cậy, phục

22

Trang 37

hồi sau thảm họa, nhật ký ghi trước (Write-ahead Logging — WAL),replication, khôi phục điểm — thời gian, bang

e Chức năng bảo mật: Bảo mật, xác thực (SCRAM-SHA-256, SSPI, LDAP,

GSSAPI, Certificate và các hình thức khác), hệ thống kiểm soát truy cập mạnh

mẽ, bảo mật cấp độ cột — hàng

e Khả năng mở rộng: phương pháp lưu trữ, ngôn ngữ thủ tục (PL/PGSQL,

Python, Perl, và nhiều ngôn ngữ khác), PostGIS, tính năng kết nối cơ sở đữ

liệu hoặc luồng khác với giao diện SQL chuẩn, cùng nhiều tính năng mở rộng

khác

e Tìm kiếm văn bản: Tìm kiếm văn bản đầy đủ, hệ thống các bộ ký tự quốc tế

(thông qua ICU collations)

e Tính năng khác: Khả năng quản lý số lượng người dùng đang thao tác cùng

lúc, phù hợp với môi trường sản xuất quản lý nhiều terabyte và petabyte [14]

2.8 Cloudinary

Cloudinary là 1 giải pháp phần mềm hướng dich vụ (Software-as-a-Service) cho

việc quản lý tat cả dữ liệu truyền thông (ảnh, video, file, ) của ứng dung web và diđộng trên đám mây Cloudinary cung cấp 1 giải pháp về đầu cuối cho tất cả các nhu

câu vê hình ảnh và video, bao gôm tải lên, lưu trữ, quan lý, biên đôi va tôi ưu truyền

23

Trang 38

tải Xử lý, tải dữ liệu và truyền tải được xử lý ở máy chủ của Cloudinary, được tự

động mở rộng dé xử lý tải cao va sự gia tăng truy cập đột ngột.[ 19]

2.8.1 Phương tiện có thé lập trình (Programmable Media)

Tạo trải nghiệm phương tiện được tối ưu hóa cao, pIxel hoàn hảo và được cá nhânhóa với các API của Cloudinary và các tiện ích con sẵn sàng sử dụng Sản phẩm

quản lý trải nghiệm truyền thông của Cloudinary cung cấp cho các nhóm kỹ thuật

các công cụ dé lưu trữ, quản lý, chuyển đồi và phân phối đa phương tiện trên quy

mô lớn nhăm đạt được mức độ tương tác và chuyền đổi cao hơn [19]

2.8.2 Trình tối ưu hóa phương tiện (Media Optimizer)

Cloudinary tự động cung cấp hình anh và video ở định dang và chất lượng phù

hợp với mọi thiết bị của người dùng cuối Sức mạnh tính toán biên và nhiều CDN

giúp tăng tốc đáng kề việc phân phối phương tiện Mang đến trải nghiệm nhanh

chóng và độ trung thực cao mà không cần bat kỳ thông s6 URL nào hoặc tạo ra cácbiến thể nội dung Chỉ cần theo dõi hiệu suất nội dung, chỉnh sửa cài đặt và để

Cloudinary làm phần còn lại [19]

2.8.3 Quản lý tài sải kỹ thuật số (Digital Asset Management)

Tái hiện lại việc quản lý tài sản kỹ thuật số với tính năng tự động hóa do AI cungcấp giúp hợp lý hóa quy trình công việc, tích hợp hoàn toàn với toàn bộ hệ thống

tiếp thị của bạn và mang lại trải nghiệm khách hàng cao cấp Quản lý tài sản động

(DAM) của Cloudinary trao quyền cho các nhóm tiếp thị và sáng tạo đề tô chức,

quản lý, chỉ phối và xuất bản hình ảnh, video và các tài sản kỹ thuật số khác

Cloudinary cho phép một nguồn chân lý duy nhất đã được chứng minh đề cho phépcộng tác với các nhóm bên trong và bên ngoài tổ chức, một cách an toàn và đáng tin

cậy [19]

2.8.4 Video động (Dynamic Video)

Nền tang video trực tuyến thé hệ tiếp theo giúp video trên các thuộc tính kỹ thuật

số của dé quản lý hơn và xuất bản nhanh hơn Tận dụng công nghệ AI sáng tạo dé

24

Trang 39

chuyền mã, tối ưu hóa, tùy chỉnh và phát trực tuyến video để có trải nghiệm hấp

structured va unstructured một cách nhanh chóng (near real-time).

Elasticsearch ra mắt năm 2010, được phát triển boi Shay Banon bằng ngôn ngữ

Java, là mã nguồn mở theo giấy phép Apache 2.0 va phân tán thời gian thực, có khả

năng mở rộng cao và hoạt động dựa trên nên tảng Apache Lucene.

Elasticsearch có thể mở rộng lên tới hàng petabyte dữ liệu dạng có cấu trúc và

không cấu trúc Elasticsearch là một trong những công cụ tìm kiếm doanh nghiệp

rất phô biến và hiện đang được sử dụng bởi nhiều tổ chức lớn như Wikipedia, The

Guardian, StackOverflow, GitHub, [1]

2.9.1 Hiệu quả đầu tư nhanh

Elasticsearch cung cấp các API dựa trên REST đơn giản, một giao diện HTTP

đơn giản và sử dụng văn ban JSON không chứa giản đồ, giúp dé dàng bắt đầu và

dựng ứng dụng một cách nhanh chóng cho nhiều trường hợp sử dụng khác nhau

[21]

25

Trang 40

2.9.2 Hiệu năng cao

Bản chất phân tán của Elasticsearch giúp hệ thống xử lý song song các khối lượng

dữ liệu lớn, nhanh chóng tìm được dữ liệu phù hợp với yêu cầu của bạn [21]

2.9.3 Hoạt động gần theo thời gian thực

Hoạt động của Elasticsearch chang hạn như đọc hay ghi dữ liệu thường mat chưađầy một giây dé hoàn tat Việc này cho phép nhóm sử dung Elasticsearch cho các

trường hợp sử dụng gần theo thời gian thực như giám sát ứng dụng và phát hiện bất

thường [21]

2.9.4 Phát triển ứng dụng dễ dàngElasticsearch hỗ trợ nhiều ngôn ngữ khác nhau như Java, Python, PHP,

JavaScript, Node.Js và Go [21]

2.9.5 Công cụ va plugin bo sung

Elasticsearch được tích hop sẵn Kibana, một công cụ trực quan hóa và báo cáo

thông dụng Hệ thống cũng cung cấp khả năng tích hợp với Beats và Logstash,

trong khi cho phép ban dé dàng chuyền đổi dữ liệu nguồn và tải dữ liệu vào cụm

máy chủ Elasticsearch của bạn Bạn cũng có thé sử dụng một số plugin mã nguồn

mở của Elasticsearch chang hạn như công cụ phân tích và gợi ý ngôn ngữ dé bổ

sung tính năng cho ứng dung của ban.[21]

2.10 NextJS

2.10.1 Khái niệm

NextJS là một framework được xây dựng dựa trên React NextJS hỗ trợ

server-side rendering (SSR) mà không cần phải cấu hình gì NextJS không tập trung nhiềuvào hiệu suất mà tập trung vào cải thiện trải nghiệm của các developer và giúp

chúng ta phát trién các ứng dụng web một cách dé dang hơn SSR thân thiện với

ứng dụng web và tốt cho SEO

26

Ngày đăng: 03/11/2024, 18:52

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN