1. Trang chủ
  2. » Tài Chính - Ngân Hàng

Tài liệu cho sinh viên Kế toán kiểm toán

77 2 0

Đ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

Tiêu đề Xây Dựng Website Hỗ Trợ Khách Hàng Mua Điện Thoại Và Tích Hợp Machine Learning Phân Tích Bình Luận Khách Hàng
Tác giả Lê Văn Hồng Quân
Người hướng dẫn PGS. TS. Phan Huy Khánh
Trường học Đại Học Đà Nẵng
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2019
Thành phố Đà Nẵng
Định dạng
Số trang 77
Dung lượng 2,54 MB

Nội dung

ĐẠ I H ỌC ĐÀ NẴ NG TRƢỜNG ĐẠ I H Ọ C BÁCH KHOA KHOA CÔNG NGH Ệ THÔNG TIN ĐỒ ÁN T Ố T NGHI Ệ P NGÀNH: CÔNG NGH Ệ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGH Ệ PH Ầ N M Ề M ĐỀ TÀI: XÂY D Ự NG WEBSITE H Ỗ TR Ợ KHÁCH HÀNG MUA ĐIỆ N THO Ạ I VÀ TÍCH H Ợ P MACHINE LEARNING PHÂN TÍCH BÌNH LU Ậ N KHÁCH HÀNG Ngƣời hƣớ ng d ẫ n: PGS. TS. PHAN HUY KHÁNH Sinh viên th ự c hi ệ n: LÊ VĂN HỒ NG QUÂN S ố th ẻ sinh viên: 102150125 L ớ p : 15T2 Đà Nẵ ng, 12/2019 Lê Văn H ồ ng Quân WEBISTE H Ỗ TR Ợ KHÁCH HÀNG VÀ TÍCH H Ợ P MACHINE LEARNING PHÂN TÍCH BÌNH LU Ậ N 2019 ĐẠ I H ỌC ĐÀ NẴ NG TRƢỜNG ĐẠ I H Ọ C BÁCH KHOA KHOA CÔNG NGH Ệ THÔNG TIN ĐỒ ÁN T Ố T NGHI Ệ P NGÀNH: CÔNG NGH Ệ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGH Ệ PH Ầ N M Ề M ĐỀ TÀI: XÂY D Ự NG WEBSITE H Ỗ TR Ợ KHÁCH HÀNG MUA ĐIỆ N THO Ạ I VÀ TÍCH H Ợ P MACHINE LEARNING PHÂN TÍCH BÌNH LU Ậ N KHÁCH HÀNG Ngƣời hƣớ ng d ẫ n: PGS. TS. PHAN HUY KHÁNH Sinh viên th ự c hi ệ n: LÊ VĂN HỒ NG QUÂN S ố th ẻ sinh viên: 102150125 L ớ p : 15T2 Đà Nẵ ng, 12/2019 NH Ậ N XÉT C Ủ A NGƢỜI HƢỚ NG D Ẫ N ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... Đà Nẵng, ngày … tháng … năm 2019 Gi ả ng viên hƣ ớ ng d ẫ n PGS. TS. Phan Huy Khánh NH Ậ N XÉT C ỦA NGƢỜ I PH Ả N BI Ệ N ........................................................................................................................................... ..................................................................................................................... ...................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... .................................................................................................................................... ....... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... Đà N ẵ ng , ngày … tháng … năm 2019 TÓM T Ắ T Tên đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàng Sinh viên th ự c hi ệ n: Lê Văn Hồ ng Quân S ố th ẻ SV: 102150125 L ớ p: 15T2 Website cung c ấ p các m ẫu điệ n tho ạ i c ủa các hãng cho phép ngƣờ i dùng có th ể xem các bình lu ậ n c ủa ngƣời khác để có th ể t ự ch ọ n s ả n ph ẩ m theo ý mình. Bên c ạnh đó còn cho phép ngƣờ i dùng có th ể tr ự c ti ế p bình lu ậ n v ề s ả n ph ẩ m cho m ọi ngƣờ i tham kh ả o. Nh ữ ng bình lu ậ n s ẽ đƣợ c h ệ th ống phân tích và đƣa ra các nhận đị nh là thu ộ c lo ạ i tích c ự c, tiêu c ực hay bình thƣờ ng để ngƣờ i dùng tham kh ả o. Website bao g ồ m: - Trang qu ả n lý cho admin - Trang cho ngƣờ i dùng, xem, tìm ki ế m, bình lu ậ n v ề s ả n ph ẩ m - Trang đăng nhập, đăng ký tạ o tài kho ản để có th ể đƣợ c bình lu ậ n s ả n ph ẩ m Đ Ạ I H Ọ C ĐÀ N Ẵ NG TRƢ Ờ NG Đ Ạ I H Ọ C BÁCH KHOA KHOA CÔNG NGH Ệ THÔNG TIN C Ộ NG HÒA XÃ HÔI CH Ủ NGHĨA VI Ệ T NAM Đ ộ c l ậ p - T ự do - H ạ nh phúc NHI Ệ M V Ụ ĐỒ ÁN T Ố T NGHI Ệ P H ọ tên sinh viên: LÊ VĂN HỒ NG QUÂN S ố th ẻ sinh viên: 102150125 L ớ p: 15T2 Khoa: Công ngh ệ thông tin Ngành: Công ngh ệ ph ầ n m ề m 1. Tên đề tài đồ án: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàng 2. Đề tài thu ộ c di ệ n: ☐ Có ký k ế t th ỏ a thu ậ n s ở h ữ u trí tu ệ đố i v ớ i k ế t qu ả th ự c hi ệ n 3. Các s ố li ệ u và d ữ li ệ u ban đầ u: ……………………………………..……………………………………………..……... ...………………………………………………………………………………………… …..………………………………….…..………………………..……………………… 4 . N ộ i dung các ph ầ n thuy ế t minh và tính toán: …...……………………………………………………………………………………… …...……………………………………………………………………………………… …...……………………………………………………………………………………… …...……………………………………………………………………………………… …...……………………………………………………………………………………… 5. Các b ả n v ẽ, đồ th ị ( ghi rõ các lo ại và kích thướ c b ả n v ẽ ): Không có 6. H ọ tên người hướ ng d ẫ n: PGS. TS. Phan Huy Khánh 7. Ngày giao nhi ệ m v ụ đồ án: ……../……./201 9 8. Ngày hoàn thành đồ án: ……../……./201 9 Đà N ẵ ng, ngày tháng năm 201 9 Trƣ ở ng B ộ môn ………………………. Ngƣ ờ i hƣ ớ ng d ẫ n L ỜI NÓI ĐẦ U Trong quá hình h ọ c t ậ p và rèn luy ệ n ở đây, em đa học đƣợ c r ấ t nhi ề u ki ế n th ứ c nh ững điề u b ổ ích, em xin g ử i l ờ i c ảm ơn chân thành đế n t ấ t c ả các th ầ y cô trong Khoa công ngh ệ thông tin trƣờng Đạ i h ọc Bách Khoa Đà Nẵng đã dạ y d ỗ , truy ền đạ t ki ế n th ức, tƣ tƣở ng và c ả kinh nghi ệ m trong su ố t th ờ i gian em h ọ c ở đây để gi ờ em có th ể th ự c hi ện đƣợc đồ án t ố t nghi ệ p này Em cũng xin trân trọ ng c ảm ơn thầy PGS.TS Phan Huy Khánh là ngƣờ i tr ự c ti ếp hƣớ ng d ẫn, giúp đỡ em r ấ t nhi ề u trong th ờ i gian th ự c hi ện đồ án. Th ầ y không nh ững giúp đỡ mà còn cung c ấ p r ấ t nhi ề u thông tin b ổ ích khác để em có th ể tham kh ả o và m ở mang ki ế n th ứ c. Nh ờ th ầy mà em đã thự c hi ện đƣợc đồ án m ộ t cách t ố t nh ấ t Trong quá trình nghiên c ứ u, th ự c hi ện đồ án l ầ n này, ch ắ n h ẳ n em không th ể tránh kh ỏ i nh ữ ng sai sót hay còn thi ế u ki ế n th ứ c, mong th ầ y cô thông c ả m và góp ý th ẳ ng th ắn để em đƣợ c h ọ c h ỏ i thêm và hoàn thi ện đồ án c ủa mình hơn nữ a L ờ i cu ố i em xin chân tr ọ ng c ảm ơn các thầ y cô và chúc th ầ y cô luôn kh ỏ e m ạ nh để có th ể truy ền đạ t nh ữ ng ki ế n th ứ c cho th ế h ệ sau. Lê Văn Hồ ng Quân CAM ĐOAN Em xin cam đoan: 1. Nh ữ ng n ội dung trong đồ án này là do em th ự c hi ện dƣớ i s ự hƣớ ng d ẫ n tr ự c ti ế p c ủ a th ầ y giáo PGS.TS Phan Huy Khánh 2. Các tài li ệ u tham kh ả o, d ữ li ệu trong đồ án đều đƣợ c trích d ẫ n rõ ràng tên tác gi ả , tên công trình, th ời gian, địa điể m công b ố 3. N ế u có nh ữ ng sao chép không h ợ p l ệ , vi ph ạ m quy ch ế , em xin ch ị u m ọ i trách nhi ệ m Đà Nẵ ng, ngày tháng 12 năm 201 9 Sinh viên th ự c hi ệ n Lê Văn H ồ ng Quân PHI Ế U DUY ỆT ĐỒ ÁN T Ố T NGHI Ệ P I. Ph ầ n dành cho Sinh viên 1. H ọ và tên: LÊ VĂN HỒ NG QUÂN 2. Mã Sinh viên: 102150142 3. L ớ p: 15T2 4. Tên đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàng 5. S ố điệ n tho ạ i: 0902449450 6. E-mail: lvhquan0110@gmail.com 7. H ọ và tên GVHD: PGS.TS Phan Huy Khánh II. Ph ầ n dành cho H ội đồ ng STT N ộ i dung đánh giá K ế t lu ậ n 1. Trình bày báo cáo theo đúng m ẫ u qui đ ị nh c ủ a Khoa 2. Không có s ự sao chép n ộ i dung báo cáo và chương trình đã có 3. Biên d ị ch mã ngu ồ n và ch ạ y đƣ ợ c chƣơng trình 4. Có k ị ch b ả n th ự c hi ệ n v ớ i d ữ li ệ u th ử nghi ệ m 5. K ế t qu ả th ự c hi ệ n chƣơng trình đúng theo báo cáo 6. Có s ự đóng góp, phát tri ể n c ủ a tác gi ả trong đ ồ án Ý ki ế n khác: ..................................................................... .. .... . ....... .. ....... .. ....... .. .................................................................. ....................................................................................................................................................................................................... K ế t lu ậ n:  Đạ t yêu c ầ u  Ph ả i s ử a ch ữ a l ạ i  Không đạ t yêu c ầ u Đà Nẵng, ngày tháng 12 năm 2019 Ch ủ t ị ch H ộ i đ ồ ng (Ký và ghi h ọ tên) Cán b ộ duy ệ t ki ể m tra (Ký và ghi h ọ tên) Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 1 M Ụ C L Ụ C TÓM T Ắ T ................................................................................................................................ .5 L ỜI NÓI ĐẦ U ................................................................................................ ..........................7 CAM ĐOAN ................................................................................................ .............................8 M Ụ C L Ụ C ................................................................................................................................ .1 DANH SÁCH CÁC HÌNH V Ẽ ................................................................ ..............................4 DANH SÁCH B Ả NG ................................................................................................ ..............7 DANH SÁCH CÁC KÝ HI Ệ U, CH Ữ VI Ế T T Ắ T ................................ ..............................8 M Ở ĐẦ U ................................................................................................................................ ...9 1.Lý do ch ọn đề tài ................................................................................................ ...............9 2. M ục đích đề tài ................................................................................................ .................9 3. N ội dung đề tài ................................................................................................ .................9 4. Ph ạ m vi s ử d ụng đề tài ................................................................................................. 10 5. B ố c ục đề tài .................................................................................................................. 10 CHƢƠNG 1: CƠ SỞ LÝ THUY Ế T VÀ CÔNG C Ụ S Ử D Ụ NG ................................... 11 1.1 T ổ ng quan v ề Nodejs và và javascript ..................................................................... 11 1.2 T ổ ng quan v ề ExpressJS ............................................................................................ 12 1.3 T ổ ng quan v ề h ọ c máy (Machine Learning) ........................................................... 12 1.4 Bài toán phân lo ạ i bình lu ậ n...................................................................................... 15 1.4.1 Các phƣơng pháp gi ả i quy ế t bài toán phân tích c ả m xúc .............................. 16 1.4.2 Sơ đ ồ hu ấ n luy ệ n mô hình phân tích c ả m xúc văn b ả n Ti ế ng Vi ệ t .............. 17 1.4.3 Tách t ừ ti ế ng vi ệ t – Tokenization, Word Segmentation: ............................... 18 1.4.4 Bi ể u di ễ n t ừ trong không gian (word embedding) s ử d ụ ng World2Vec ..... 19 1.4.5 Sơ đồ ki ể m tra và v ậ n hành ................................ ................................ ................ 25 Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 2 1. 5 T ổ ng quan v ề RestfulAPI ................................ ................................ .......................... 25 1.6 Tổng quan về ReactJS ................................................................................................ 28 1.7 Công c ụ s ử d ụ ng ......................................................................................................... 33 CHƢƠNG 2: PHÂN TÍCH VÀ THI Ế T K Ế H Ệ TH Ố NG ............................................... 35 2.1 Phân tích nghi ệ p v ụ h ệ th ố ng .................................................................................... 35 2.1.1 Nghi ệ p v ụ c ủ a qu ả n tr ị viên............................................................................... 35 2.1.2 Nghi ệ p v ụ c ủa ngƣờ i dùng................................................................................. 35 2.2 Thi ế t k ế h ệ th ố ng ........................................................................................................ 35 2.2.1 Ch ức năng củ a khách hàng ................................................................................ 35 2.2.2 Ch ức năng của ngƣờ i qu ả n tr ị ........................................................................... 36 2.3 Bi ểu đồ ca s ử d ụ ng ..................................................................................................... 36 2.3.1 Bi ểu đồ ca s ử d ụ ng t ổ ng quát c ủ a h ệ th ố ng ..................................................... 36 2.3.2 Bi ểu đồ ca s ử d ụ ng c ủ a khách hàng ................................................................. 37 2.3.3 Bi ểu đồ ca s ử d ụ ng c ủ a qu ả n tr ị viên ............................................................... 39 2.4 Đặ c t ả ca s ử d ụ ng........................................................................................................ 42 2.4.1 Đặ c t ả ca s ử d ụng đăng ký ................................................................................. 42 2.4.2 Đặ c t ả ca s ử d ụng đăng nhậ p ............................................................................. 43 2.4.3 Đặ c t ả ca s ử d ụ ng qu ả n lý tài kho ả n ................................................................. 44 2.4.4 Đặ c t ả ca s ử d ụ ng qu ản lý hãng điệ n tho ạ i ..................................................... 44 2.4.5 Đặ c t ả ca s ử d ụ ng qu ản lý điệ n tho ạ i................................................................ 45 2.4.6: Đặ c t ả ca s ử d ụ ng qu ả n lý tài kho ả n................................................................ 46 2.4.7 Đặ c t ả ca s ử d ụ ng xem, tìm ki ếm điệ n tho ạ i ................................................... 46 2.4.8 Đặ c t ả ca s ử d ụ ng bình lu ậ n v ề điệ n tho ạ i ....................................................... 47 2.5 Bi ểu đồ ho ạt độ ng....................................................................................................... 48 2.5.1 Bi ểu đồ ho ạt độ ng c ủ a khách hàng ................................................................... 48 2.5.2 Bi ểu đồ ho ạt độ ng c ủ a qu ả n tr ị viên ................................................................. 49 2.6 Bi ểu đồ l ớ p .................................................................................................................. 51 Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 3 2.7 Bi ểu đồ tu ầ n t ự ............................................................................................................ 51 2.7.1 Bi ểu đồ đăng ký tài khoả n ................................................................................. 51 2.7.2 Bi ểu đồ tu ần đăng nhậ p..................................................................................... 52 2.7.3 Bi ều đồ tu ầ n t ự t ạo hãng điệ n tho ạ i .................................................................. 52 2.7.4 Bi ểu đồ tu ầ n t ự ch ỉ nh s ửa hãng điệ n tho ạ i....................................................... 53 2.7.5 Bi ều đồ tu ầ n t ự xóa hãng điệ n tho ạ i ................................................................. 53 2.7.6 Bi ểu đồ tu ầ n t ự thêm điệ n tho ạ i ........................................................................ 54 2.7.7 Bi ểu đồ tu ầ n t ự ch ỉ nh s ửa điệ n tho ạ i ................................................................ 54 2.7.8 Bi ểu đồ tu ầ n t ự xóa điệ n tho ạ i .......................................................................... 55 2.7.9 Bi ều đồ tu ầ n t ự khóa/m ở tài kho ả n................................................................... 55 2.7.10 Bi ểu đồ tu ầ n t ự bình lu ậ n................................................................................. 56 2.7.11 Bi ể u đồ tu ầ n t ự ch ỉ nh s ử a thông tin cá nhân ................................................. 56 2.7 Thi ết kê cơ sở d ữ li ệ u................................................................................................. 57 2.7.1 Mô hinh thi ết kê cơ sở d ữ li ệ u........................................................................... 57 2.8 T ổ ng k ế t chƣơng ................................ ................................ ................................ ......... 58 CHƢƠNG 3: TRIỂ N KHAI H Ệ TH Ố NG VÀ CH Ạ Y TH Ử NGHI Ệ M ........................ 59 3.1 Môi trƣ ờ ng tri ể n khai ................................ ................................ ............................. 59 3.1.1 Qu ả n lý mã ngu ồ n ................................ ................................ ............................... 59 3.1.2 Môi trƣờng cài đặ t ................................ ................................ .............................. 60 3.2 K ế t qu ả ứ ng d ụ ng ................................................................................................... 62 3.3 Đánh giá ................................ ................................ ................................ ....................... 65 K Ế T LU ẬN VÀ HƢỚ NG PHÁT TRI Ể N ......................................................................... 66 1. K ế t qu ả đạt đƣợ c ........................................................................................................... 66 2. H ạ n ch ế : ......................................................................................................................... 66 3. Hƣớ ng phát tri ể n: .......................................................................................................... 67 TÀI LI Ệ U THAM KH Ả O.................................................................................................... 68 Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 4 DANH SÁCH CÁC HÌNH V Ẽ CHƢƠNG 1: Hình 1.1: Cơ chế ho ạt độ ng c ủ a Nodejs ............................................................................. 11 Hình 1.2: Mô hình ho ạt độ ng ExpressJS ............................................................................ 12 Hình 1.3: Mô hình v ề trí tu ệ nhân t ạ o................................................................................. 14 Hình 1.4: Sơ đồ phân tích c ả m xúc ..................................................................................... 16 Hình 1.5 : Sơ đ ồ hu ấ n luy ệ n ................................ ................................ ................................ .. 17 Hình 1.6: Bi ể u di ễ n t ừ b ằ ng one - hot - vector ................................ ................................ ...... 20 Hình 1.7: M ố i quan h ệ các t ừ trong one - hot - vector ................................ .......................... 21 Hình 1.8: Sơ đ ồ hu ấ n luy ệ n Word2Vec Ti ế ng Vi ệ t ................................ .......................... 22 Hình 1.9: 2 ki ế n trúc c ủ a Word2Vector ................................ ................................ ............. 22 Hình 1.10: Mô hình ki ế n trúc m ạ ng Skip - gram ................................ ................................ 23 Hình 1.11 : Xây d ự ng training data v ớ i Skip - gram ................................ ............................ 24 Hình 1.12 : Sơ đ ồ v ậ n hành phân tích bình lu ậ n ................................ ................................ 25 Hình 1.13: Sơ đồ mô t ả c ấ u trúc Restful API .................................................................... 26 Hình 1.14: Cơ chế ho ạt độ ng c ủ a Restful API .................................................................. 27 Hình 1.15: DOM ả o c ủ a reactjs ........................................................................................... 29 Hình 1.16: Vòng đờ i c ủ a component trong ReactJS......................................................... 30 Hình 1.17: Công c ụ Editor VSCode ................................................................................... 33 Hình 1.18: Công c ụ postman ............................................................................................... 34 Hình 1.19: MongoCompass giúp thao tác v ớ i csdl ........................................................... 34 CHƢƠNG 2: Hình 2.1: Bi ểu đồ ca s ử d ụ ng t ổ ng quát c ủ a h ệ th ố ng ...................................................... 37 Hình 2.2: Bi ểu đồ ca s ử d ụng đăng ký tài khoả n c ủ a khách hàng .................................. 38 Hình 2.3: Bi ểu đồ ca s ử d ụ ng qu ả n lý tài kho ả n trong h ệ th ố ng ..................................... 38 Hình 2.4: Bi ểu đồ ca s ử d ụng xem điệ n tho ạ i và bình lu ậ n ............................................ 39 Hình 2.5: Bi ểu đồ ca s ử d ụng để bình lu ậ n s ả n ph ẩ m ..................................................... 39 Hình 2.6: Bi ểu đồ ca s ử d ụng để qu ản lý hãng điệ n tho ạ i................................................ 40 Hình 2.7: Bi ểu đồ ca s ử d ụ ng qu ản lý điệ n tho ạ i .............................................................. 41 Hình 2.8: Bi ểu đồ ca s ử d ụng để xem và bình lu ậ n c ủ a qu ả n tr ị viên ............................ 41 Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 5 Hình 2.9: Bi ểu đồ ca s ử d ụng để qu ả n lý tài kho ản ngƣờ i dùng ..................................... 42 Hình 2.10: Bi ểu đồ ho ạt độ ng các ch ức năng củ a khách hàng ........................................ 48 Hình 2.11: Bi ểu đồ ho ạt độ ng ch ức năng quản lý hãng và điệ n tho ạ i c ủ a qu ả n tr ị viên ................................................................................................................................................. 49 Hình 2.12: Bi ểu đồ ho ạt độ ng ch ức năng quả n lý tài kho ả n và bình lu ậ n c ủ a qu ả n tr ị viên .......................................................................................................................................... 50 Hình 2.13: Bi ểu đồ l ớ p bình lu ậ n s ả n ph ẩ m c ủ a h ệ th ố ng ............................................... 51 Hình 2.14: Bi ểu đồ tu ầ n t ự ch ức năng đăng ký tài khoả n ............................................... 51 Hình 2.15: Bi ểu đồ tu ầ n t ự ch ức năng đăng nhậ p ............................................................. 52 Hình 2.16: Bi ểu đồ tu ầ n t ự ch ức năng thêm hãng điệ n tho ạ i .......................................... 52 Hình 2.17: Bi ểu đồ tu ầ n t ự ch ức năng chỉ nh s ửa hãng điệ n tho ạ i ................................. 53 Hình 2.18: Bi ểu đồ tu ầ n t ự ch ức năng xóa hãng điệ n tho ạ i ............................................. 53 Hình 2.19: Bi ểu đồ tu ầ n t ự ch ức năng thêm mới điệ n tho ạ i ............................................ 54 Hình 2.20: Bi ểu đồ tu ầ n t ự ch ức năng chỉ nh s ửa đ i ệ n tho ạ i ............................................ 54 Hình 2.21: Bi ểu đồ tu ầ n t ự ch ức năng xóa điệ n tho ạ i ...................................................... 55 Hình 2.22: Bi ều đồ tu ầ n t ự ch ức năng khóa/mở tài kho ả n............................................... 55 Hình 2.23: Bi ểu đồ tu ần tƣ chức năng bình luậ n s ả n ph ẩ m ............................................. 56 Hình 2.24: Bi ểu đồ tu ầ n t ự ch ức năng chỉ nh s ử a thông tin cá nhân ............................... 56 Hình 2.25:Sơ đồ quan h ệ cơ sở d ữ li ệ u .............................................................................. 58 CHƢƠNG 3: Hình 3.1 : Github dùng đ ể lƣu tr ữ các mã ngu ồ n ................................ ............................... 59 Hình 3.2: Môi trƣ ờ ng nodejs ................................ ................................ ................................ 60 Hình 3.3 : Trình qu ả n lý thƣ vi ệ n npm ................................ ................................ ................ 60 Hình 3.4: Ngôn ng ữ back-end s ử d ụ ng............................................................................... 60 Hình 3.5: Ngôn ng ữ front-end s ử d ụ ng .............................................................................. 61 Hình 3.6: Web API s ử d ụ ng django .................................................................................... 61 Hình 3.7: H ệ qu ả n tr ị cơ sở d ữ li ệ u mongoDB.................................................................. 62 Hình 3.8: Màn hình đăng ký tài khoả n ............................................................................... 62 Hình 3.9: Màn hình đăng nhậ p ............................................................................................ 62 Hình 3.10: Màn hình trang ch ủ c ủ a website ...................................................................... 63 Hình 3.11: Màn hình trang điệ n tho ạ i................................................................................. 63 Hình 3.12: Màn hình hi ể n th ị điệ n tho ạ i và các bình lu ậ n v ề điệ n tho ạ i........................ 64 Hình 3.13: Màn hình trang qu ản lý hãng điệ n tho ạ i ......................................................... 64 Hình 3.14: Màn hình trang qu ản lý điệ n tho ạ i................................................................... 65 Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 6 Hình 3.15: Màn hình trang qu ản lý ngƣờ i dùng ................................................................ 65 Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 7 DANH SÁCH B Ả NG B ảng 2.1: Đặ c t ả ca s ử d ụng đăng ký .................................................................................. 43 B ảng 2.2: Đặ c t ả ca s ử d ụng đăng nhậ p ............................................................................. 43 B ảng 2.3: Đặ c t ả ca s ử d ụ ng qu ả n lý tài kho ả n ................................................................. 44 B ảng 2.4: Đặ c t ả ca s ử d ụ ng qu ản lý hãng điên thoạ i....................................................... 45 B ảng 2.5: Đặ c t ả ca s ử d ụ ng qu ản lý điệ n tho ạ i ................................................................ 46 B ảng 2.6: Đặ c t ả ca s ử d ụ ng qu ả n lý tài kho ả n ................................................................. 46 B ảng 2.7: Đặ c t ả ca s ử d ụ ng xem, tìm ki ếm điệ n tho ạ i .................................................... 47 B ảng 2.8: Đặ c t ả ca s ử d ụ ng bình lu ậ n v ề điệ n tho ạ i........................................................ 47 Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 8 DANH SÁCH CÁC KÝ HI Ệ U, CH Ữ VI Ế T T Ắ T T ừ V i ế t t ắ t c ủ a Di ễ n gi ả i API Application Programming Interface Giao di ệ n l ậ p trình ứ ng d ụ ng RESTful RE presentational S tate T ransfer M ộ t d ạ ng chuy ể n đ ổ i c ấ u trúc d ữ li ệ u, m ộ t ki ể u ki ế n trúc đ ể vi ế t API HTTP Hypertext Transfer Protocol Giao th ứ c truy ề n t ả i siêu văn b ả n MVC Model - View - Controller Mô hình - Giao di ệ n - B ộ đi ề u khi ể n DB Database Cơ s ở d ữ li ệ u CSS Cascading Style Sheets Đi ề u khi ể n cách hi ệ n th ị n ộ i dung trang web UI User Interface Giao di ệ n ngƣ ờ i dùng DOM Document Object Model Mô hình đ ố i tƣ ợ ng tài li ệ u JSX JavaScript XML M ộ t lo ạ i cú pháp m ở r ộ ng dành cho ngôn ng ữ JavaScript vi ế t theo ki ể u XML SQL Structured Query Language Ngôn ng ữ truy v ấ n c ấ u trúc Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 9 M Ở ĐẦ U 1. Lý do ch ọn đề tài Xu hƣớ ng phát tri ề n công ngh ệ nhanh nhƣ vũ bão hiệ n nay, s ự đổ i m ới bƣớ c qua th ờ i k ỳ công nghê m ớ i làm cho nhu c ầ u c ủa con ngƣời ngày càng tăng cao. Hiệ n nay bên m ỗi ngƣời đề u có m ộ t chi ếc điệ n tho ại để dùng là vi ệ c không th ể thi ế u, nó nh ỏ g ọ n nh ẹ đủ để cho chúng ta làm vi ệ c hay gi ả i trí ở trên đó và có thể mang đi bấ t c ứ nơi đâu chúng ta mu ố n. Nhƣng không phải ai ai cũng đề u có kh ả năng sở h ữ u nh ữ ng chi ếc điệ n tho ạ i cao c ấ p, ho ặ c có nh ững ngƣờ i dùng v ớ i m ục đích khác nhau nên khó tránh khỏ i vi ệ c không bi ế t l ự a ch ọ n s ả n ph ẩ m nào là t ố t nh ấ t cho mình và phù h ợ p m ớ i m ục đích củ a mình. M ọi ngƣờ i có th ể vô nh ững trang web để xem các đánh giá, bình luậ n c ủa ngƣờ i khác nhƣng rấ t t ố n th ời gian khi đọ c t ừ ng bình lu ận để xem là t ố t hay x ấ u. Và khi áp d ụ ng các h ọc máy vào tính toán, phán đoán các bình luận đó là tố t hay x ấ u thì s ẽ ti ế t ki ệ m th ờ i gian nhi ều hơn và có cái nhìn rõ ràng hơn về s ả n ph ẩ m. Vì nh ững lý do đó, em quyết đị nh ch ọn đề tài “ Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàng ” để làm đồ án t ố t nghi ệ p c ủ a mình. 2. M ục đích đề tài Website đƣợ c xây d ự ng v ớ i giao di ệ n thân thi ệ n, d ễ dàng s ử d ụng giúp đỡ ngƣờ i dùng, khách hàng có cái nhìn tông quan hơn về vi ệ c ch ọn điệ n tho ạ i và ti ế t ki ệ m th ờ i gian v ề vi ệ c l ự a ch ọ n, vi ệ c t ự ngƣời dùng đánh giá điệ n tho ạ i s ẽ đƣa ra nhữ ng ý ki ế n khách quan hơn. Bên cạnh đó còn giúp các hãng điệ n tho ại nhìn vào điể m m ạnh, điể m y ế u c ủ a mình mà cái ti ế n ho ặ c kh ắ c ph ụ c t ốt hơn. 3. N ội dung đề tài - Tìm hi ể u các bài toán h ọ c máy, x ử lý ngôn ng ữ t ự nhiên trong th ự c t ế - Tìm hi ểu và phân tích sơ đồ UML - Phân tích và thi ế t k ế h ệ th ố ng thông tin - Phân tích và thi ế t k ế cơ sở d ữ li ệ u Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 10 - S ử d ụ ng các ngôn ng ữ l ậ p trình và cách xây d ự ng RESTful API áp d ụng vào đề tài - S ử d ụ ng các thu ậ t toán h ọ c máy, d ữ li ệu để t ạ o mô hình cho vi ệ c d ự đoán - S ử d ụ ng NoSQL (MongoDB) làm cơ sở s ử li ệ u chính - Xây d ự ng các ch ức năng chính - Tri ể n khai lên website và bi ế t cáo báo 4. Ph ạ m vi s ử d ụng đề tài Đề tài đƣợ c s ử d ụng đố i v ớ i m ọi ngƣờ i, m ọ i cá nhân. Nh ững ngƣờ i có ý mu ố n mua điệ n tho ạ i hay tham kh ảo để có thông nh ữ ng thông tin 5. B ố c ục đề tài Đề tài chia làm 3 chƣơng: Chƣơng 1: Cở s ở lý thuy ế t c ủa đề tài Chƣơng 2: Phân tích, thiế t k ế h ệ th ố ng, xây d ựng cơ sở d ữ li ệ u Chƣơng 3: Triên khai hệ th ố ng ch ạ y th ự c t ế và đánh giá kế t qu ả Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 11 CHƢƠNG 1: CƠ SỞ LÝ THUY Ế T VÀ CÔNG C Ụ S Ử D Ụ NG 1.1 T ổ ng quan v ề Nodejs và và javascript Javascript là ngôn ng ữ l ậ p trình k ị ch b ản để đƣợ c s ử d ụ ng r ộ ng rãi ở các website và ECMAScript là phiên b ả n chu ẩ n hóa c ủ a Javascript. Phiên b ả n m ớ i nh ấ t hi ệ n nay c ủ a Javascript là ECMAScript 7. Javascript cho phép t ạo ra trang web độ ng - c ậ p nh ậ t n ộ i dung theo ng ữ c ảnh, điề u khi ển đa phƣơng tiệ n, ho ạ t c ả nh các hình ả nh và nhi ề u th ứ hay ho khác. (Dĩ nhiên không phả i m ọ i th ứ, nhƣng chỉ v ớ i m ộ t vài dòng code, JavaScript có th ể làm đƣợ c nhi ề u điều đáng kinh ngạ c.) Javascript đƣợ c h ỗ tr ợ h ầu nhƣ trên t ấ t c ả các trình duy ệt nhƣ Firefox, Chrome, ... thậ m chí các trình duy ệ t trên thi ế t b ị di động cũng có h ỗ tr ợ . Hình 1.1 : Cơ chế ho ạt độ ng c ủ a Nodejs Node.js là m ộ t n ề n t ả ng phát tri ể n đ ộ c l ậ p đƣ ợ c xây d ự ng ở trên môi trƣ ờ ng V8 JavaScript runtime - m ộ t trình thông d ị ch JavaScript c ự c nhanh ch ạ y trên trình duy ệ t Chrome giúp chúng ta có th ể xây d ự ng đƣ ợ c các ứ ng d ụ ng m ạ ng m ộ t cách nhanh chóng và d ễ dàng m ở r ộ ng . Nodejs ch ạ y đa n ề n t ả ng phía Serve r, s ử d ụ ng ki ế n trúc hƣ ớ ng s ự ki ệ n Event - driven, cơ ch ế non - blocking I/O làm cho nó nh ẹ và hi ệ u qu ả . Các ứ ng d ụ ng NodeJS đáp ứ ng t ố t th ờ i gian th ự c và ch ạ y đa n ề n t ả ng, đa thi ế t b ị . Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 12 Nó bao g ồ m 2 thành ph ầ n chính là V8 engine đ ể ch ạ y code js và thƣ vi ệ n libuv đ ể x ử lý các l ờ i g ọ i b ấ t đ ồ ng b ộ . Ở đây l ạ i có nhi ề u l ẫ n l ộ n node ch ạ y đơn lu ồ ng hay đa lu ồ ng ? M ộ t cách chính xác thì code JS đƣ ợ c x ử lý b ằ ng 1 lu ồ ng duy nh ấ t chính là V8 engine(main thread), còn các th ứ ch ạ y bên dƣ ớ i b ở i libuv thì đa lu ồ ng(worker t hread). 1.2 T ổ ng quan v ề ExpressJS ExpressJS là m ộ t framework đƣ ợ c xây d ự ng trên n ề n t ả ng Nodejs. Nó cung c ấ p các tính năng m ạ nh m ẽ đ ể phát tri ể n web ho ặ c mobile. Express h ỗ r ợ các phƣơng th ứ c HTTP và midleware t ạ o ra môt API vô cùng m ạ nh m ẽ và d ễ s ử d ụ ng. Hình 1.2: Mô hình ho ạt độ ng ExpressJS M ộ t s ố ch ứ c năng chính c ủ a Expressjs nhƣ sau: - Express h ỗ tr ợ chúng ta phát tri ể n ứ ng d ụ ng theo mô hình MVC - H ỗ tr ợ m ạ nh v ề REST API - Thi ế t l ậ p các l ớ p trung gian đ ể tr ả v ề các HTTP request - Đ ị nh nghĩa router cho phép s ử d ụ ng v ớ i các hành đ ộ ng khác nhau d ự a trên phƣơng th ứ c HTTP và UR L Expressjs đƣ ợ c s ử d ụ ng r ỗ ng rãi nên có vô s ố các package h ỗ tr ợ nên s ẽ không ph ả i lo l ắ ng khi làm vi ệ c v ớ i Framework này. Bên c ạ nh đó v ề performance: Express cung c ấ p thêm v ề các tính năng (feature) đ ể dev l ậ p trình t ố t hơn. Ch ứ không làm gi ả m t ố c đ ộ c ủ a NodeJS 1.3 T ổ ng quan v ề h ọ c máy (Machine Learning) Nh ữ ng năm g ầ n đây, AI - Artificial Intelligence (Trí Tu ệ Nhân T ạ o), và c ụ th ể hơn là Machine Learning (H ọ c Máy ho ặ c Máy H ọ c) n ổ i lên nhƣ m ộ t b ằ ng ch ứ ng c ủ a cu ộ c Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 13 cách m ạ ng công nghi ệ p l ầ n th ứ tƣ (1 - đ ộ ng cơ hơi nƣ ớ c, 2 - năng lƣ ợ ng đi ệ n, 3 - công ngh ệ thông tin). Trí Tu ệ Nhân T ạ o đang len l ỏ i vào m ọ i lĩnh v ự c trong đ ờ i s ố ng mà có th ể chúng ta không nh ậ n ra. Xe t ự hành c ủ a Google và Tesla, h ệ th ố ng t ự tag khuôn m ặ t trong ả nh c ủ a Facebook, tr ợ lý ả o Siri c ủ a Apple, h ệ th ố ng g ợ i ý s ả n ph ẩ m c ủ a Amazon, h ệ th ố ng g ợ i ý phim c ủ a Netflix, máy chơi c ờ vây AlphaGo c ủ a Google DeepMind, …, ch ỉ là m ộ t vài trong vô vàn nh ữ ng ứ ng d ụ n g c ủ a AI/Machine Learning Machine Learning là m ộ t t ậ p con c ủ a AI hay nói cách khác nó là m ộ t lĩnh v ự c nh ỏ c ủ a Khoa H ọ c Máy Tính, nó s ử d ụ ng các thu ậ t toán cho phép máy tính có th ể h ọ c t ừ d ữ li ệ u đ ể th ự c hi ệ n các công vi ệ c thay vì đƣ ợ c l ậ p trình m ộ t cách rõ ràng Machine Learning đƣ ợ c chia thành 3 lo ạ i chính: Supervised learning (học có giám sát): là thuật toán dự đoán đầu ra (outcome) của một dữ liệu mới (new input) dựa trên các cặp ( input, outcome ) đã biết từ trƣớc. Cặp dữ liệu này còn đƣợc gọi là ( data, label ), tức ( dữ liệu, nhãn ). Supervised learning là nhóm phổ biến nhất trong các thuật toán Machine Learning. M ộ t cách toán h ọ c, Supervised learning là khi chúng ra có m ộ t t ậ p h ợ p bi ế n đ ầ u vào X={x1,x2,…,xN} và m ộ t t ậ p h ợ p nhãn tƣơng ứ ng Y={y1,y2,…,yN} trong đó xi,yi là các vector. Các c ặ p d ữ li ệ u bi ế t trƣ ớ c (xi,yi) ∈ X × Y đƣ ợ c g ọ i là t ậ p training data (d ữ li ệ u hu ấ n luy ệ n). T ừ t ậ p traing data này, chúng ta c ầ n t ạ o ra m ộ t hàm s ố ánh x ạ m ỗ i ph ầ n t ử t ừ t ậ p X sang m ộ t ph ầ n t ử (x ấ p x ỉ ) tƣơng ứ ng c ủ a t ậ p Y yi ≈ f(xi), ∀ i=1,2,…,N M ụ c đích là x ấ p x ỉ hàm s ố f f th ậ t t ố t đ ể khi có m ộ t d ữ li ệ u x x m ớ i, chúng ta có th ể tính đƣ ợ c nhãn tƣơng ứ ng c ủ a nó y=f(x) Unsupervised learning (học không giám sát): Trong thuật toán này, chúng ta không biết đƣợc outcome hay nhãn mà chỉ có dữ liệu đầu vào. Thuật toán unsupervised learning sẽ dựa vào cấu trúc của dữ liệu để thực hiện một công việc nào đó, ví dụ nhƣ phân nhóm (clustering) hoặc giảm số chiều của dữ liệu (dimension reduction) để thuận tiện trong việc lƣu trữ và tính t oán. Một cách toán học, Unsupervised learning là khi chúng ta chỉ có dữ liệu vào X mà không biết nhãn Y tƣơng ứng. Những thuật toán loại này đƣợc gọi là Unsupervised learning vì không giống nhƣ Supervised learning, chúng ta không biết câu trả lời chính xác cho mỗi dữ liệu đầu Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 14 vào. Giống nhƣ khi ta học, không có thầy cô giáo nào chỉ cho ta biết đó là chữ A hay chữ B. Cụ m không giám sát đƣợc đặt tên theo nghĩa này Reinforcement learning (học tăng cƣờng/học củng cố): Reinforcement learning là các bài toán giúp cho một hệ thống tự động xác định hành vi dựa trên hoàn cảnh để đạt đƣợc lợi ích cao nhất (maximizing the performa nce). Hiện tại, Reinforcement learning chủ yếu đƣợc áp dụng vào Lý Thuyết Trò Chơi (Game Theory), các thuật toán cần xác định nƣớc đi tiếp theo để đạt đƣợc điểm số cao nhất. Ví dụ nhƣ AlphaGo gần đây nổi tiếng với việc chơi cờ vây thắng cả con ngƣời . Cờ v ây đƣợc xem là có độ phức tạp cực kỳ cao với tổng số nƣớc đi là xấp xỉ 10 761 , so với cờ vua là 10 120 . Về cơ bản, AlphaGo bao gồm các thuật toán thuộc cả Supervised learning và Reinforcement learning. Trong phần Supervised learning, dữ liệu từ các ván cờ do con ngƣời chơi với nhau đƣợc đƣa vào để huấn luyện. Tuy nhiên, mục đích cuối cùng của AlphaGo không phải là chơi nhƣ con ngƣời mà phải thậm chí thắng cả con ngƣời. Vì vậy, sau khi học xong các ván cờ của con ngƣời, AlphaGo tự chơi với chính nó với hàng tr iệu ván chơi để tìm ra các nƣớc đi mới tối ƣu hơn. Thuật toán trong phần tự chơi này đƣợc xếp vào loại Reinforcement learning . Hình 1.3: Mô hình v ề trí tu ệ nhân t ạ o X ử lý ngôn ng ữ t ự nhiên là m ộ t nhánh c ủ a trí tu ệ nhân t ạ o t ậ p trun g vào các ứ ng d ụ ng trên ngôn ng ữ c ủ a con ngƣ ờ i. M ụ c tiêu c ủ a lĩnh v ự c này là giúp máy tính hi ể u và Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 15 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 và máy, c ả i thi ệ n hi ệ u qu ả 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. Nó có vô vàn ứ ng d ụ ng h ữ u ích trong cu ộ c s ố ng cũng nhƣ nghiên c ứ u. Các doanh nghi ệ p hi ệ n nay đang đ ố i m ặ t v ớ i “cơn lũ” d ữ li ệ u v ề m ọ i m ặ t: feedback c ủ a khách hàng, thông tin đ ố i th ủ c ạ nh t ranh, emails c ủ a khách hàng, tweets, thông tin h ọ p báo, h ồ sơ pháp lý, các văn b ả n v ề s ả n ph ẩ m và kĩ thu ậ t. Vi ệ c khai thác đƣ ợ c nh ữ ng d ữ li ệ u này là đi ể m m ấ u ch ố t đ ể các doanh nghi ệ p có th ể tri ể n khai nhanh chóng các quy ế t đ ị nh c ủ a mình so v ớ i đ ố i th ủ c ạ nh tranh. Chúng ta có th ể đi ể m qua m ộ t vài ứ ng d ụ ng c ủ a x ử lý ngôn ng ữ t ự nhiên nhƣ: - Nh ậ n d ạ ng ch ữ viêt, s ố - Nh ậ n d ạ ng ti ế ng nói - D ị ch t ự độ ng - Tìm ki ế m thông tin - Tóm t ắt văn bả n - Phân lo ại văn bả n - phân tích c ả m xúc trên văn b ả n - ... 1.4 Bài toán phân lo ạ i bình lu ậ n Trong ti ế ng Anh bài toán này đƣ ợ c bi ế t đ ế n v ớ i cái tên (text classification. E.g. sentiment classification) nh ằ m phát hi ệ n ra thái đ ộ mang tính lâu dài, màu s ắ c tình c ả m, khuynh hƣ ớ ng ni ề m tin vào các đ ố i tƣ ợ ng hay ngƣ ờ i nào đ ó Bài toán phân tích cảm xúc thuộc dạng bài toán phân tích ngữ nghĩa văn bản. Vì vậy, ta cần phải xây dựng một mô hình để hiểu đƣợc ý nghĩa của câu văn, đoạn văn để quyết định xem câu văn đó hoặc đoạn văn đó mang màu sắc cảm xúc chủ đạo nào. Phát biểu theo góc nhìn của máy học (Machine Learning) thì phân tích cảm xúc là bài toán phân lớp cảm xúc dựa trên văn bản ngôn ngữ tự nhiên. Đầu vào của bài toán là một câu hay một đoạn văn bản, còn đầu ra là các giá trị xác suất (điểm số) của N lớp cảm xúc mà ta cần xác định. Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 16 Hình 1.4 : Sơ đồ phân tích c ả m xúc Đầ u vào c ủ a mô hình x ử lý Sentiment Analysis Vietnamese (SAV) là m ột đoạ n văn Tiế ng Vi ệt, đầ u ra là 2 giá tr ị xác su ất mà đoạn văn đầ u vào thu ộ c v ề l ớ p c ả m xúc: tiêu c ự c (negative) hay tích c ự c (positive). 1.4.1 Các phƣơng pháp gi ả i quy ế t bài toán phân tích c ả m xúc Phƣơng pháp dự a trên t ừ điể n các t ừ th ể hi ệ n c ả m xúc . Theo đó, việ c d ự đoán c ả m xúc d ự a vào vi ệ c tìm ki ế m các t ừ c ả m xúc riêng l ẻ, xác định điể m s ố cho các t ừ tích c ực, xác đị nh điể m s ố cho các t ừ tiêu c ực và sau đó là tổ ng h ợp các điể m s ố này l ạ i theo m ột độ đo xác định để quy ết định xem văn bả n mau màu s ắ c c ả m xúc gì. Phƣơng pháp này có điể m h ạ n ch ế là th ứ t ự các t ừ b ị b ỏ qua và các thông tin quan tr ọ ng có th ể b ị m ất. Độ chính xác c ủ a mô hình ph ụ thu ộc vào độ t ố t c ủ a b ộ t ừ điể n các t ừ c ảm xúc. Nhƣng lại có ƣu điể m là d ễ th ự c hi ệ n, chi phí tính toán nhanh, ch ỉ m ấ t công s ứ c trong vi ệ c xây d ự ng b ộ t ừ điể n các t ừ c ả m xúc mà thôi Phƣơng pháp Neural Network . Nh ữ ng th ậ p niên g ầ n đây, v ớ i s ự phát tri ể n nhanh chóng t ố c đ ộ x ử lý c ủ a CPU, GPU và chi phí cho ph ầ n c ứ ng ngày càng gi ả m, các d ị ch v ụ h ạ t ầ ng đi ệ n toán đám mây ngày càng phát tri ể n, làm ti ề n đ ề và cơ h ộ i cho phƣơng pháp h ọ c sâu Deep Learning Neural Network phát tri ể n m ạ nh m ẽ . Trong đó, bài toán phân tích c ả m xúc đã đƣ ợ c gi ả i quy ế t b ằ ng mô hình h ọ c Recurrent Neural Network (RNN) v ớ i m ộ t bi ế n th ể đƣ ợ c dùng ph ổ bi ế n hi ệ n nay là Long Short Term Memory Neural Network (LSTMs), k ế t h ợ p v ớ i mô hình vector hóa t ừ (vector representations of wo rds) Word2Vector v ớ i ki ế n trúc Continuous Bag - of - Words (CBOW). Mô hình này cho đ ộ chính xác hơn 85%. Ƣu đi ể m c ủ a phƣơng pháp này là văn b ả n đ ầ u vào có th ể là 1 câu hay 1 đo ạ n văn. Đ ể th ự c hi ệ n mô hình này đòi h ỏ i ph ả i có d ữ li ệ u văn b ả n càng nhi ề u càng t ố t đ ể t ạ o Word2Vector CBOW ch ấ t lƣ ợ ng cao và Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 17 d ữ li ệ u gán nhãn l ớn để hu ấ n luy ệ n (training), xác minh (validate) và ki ể m tra (test) mô hình h ọ c có giám sát (Supervise Learning) LSTMs. Phƣơng pháp kế t h ợ p Rule-bases (d ự a trên lu ậ t) và Corpus-bases (d ự a trên ng ữ li ệ u) . Tiêu bi ểu cho phƣơng pháp này là công trình nghiên cứ u c ủ a Richard Socher thu ộc trƣờng đạ i h ọc Stanford. Phƣơng pháp này kế t h ợ p s ử d ụ ng mô hình Deep Learning Recursive Neural Network v ớ i h ệ tri th ứ c chuyên gia trong x ử lý ngôn ng ữ t ự nhiên (XLN NTN) đƣợ c g ọ i là Sentiment Treebank. Sentiment Tree là cây phân tích cú pháp c ủa 1 câu văn, trong đó mỗ i nút trong cây kèm theo b ộ tr ọ ng s ố c ả m xúc l ần lƣợ t là: r ấ t tiêu c ự c (very negative), tiêu c ự c (negative), trung tính (neutral), tích c ự c (positive) và r ấ t tích c ực (very positive). Theo đó, trọ ng s ố thu ộ c nhãn nào l ớ n nh ấ t s ẽ quy ết đị nh nhãn toàn c ụ c c ủa nút, nhƣ hình dƣới đây. Độ chính xác c ủ a mô hình khi d ự đoán cảm xúc cho 1 câu đơn là 85,4%. Nhƣợc điể m c ủa phƣơng pháp này ở ch ổ ch ỉ x ử lý t ố t cho d ữ li ệu đầ u vào là m ột câu đơn Trong đề tài này em quy ế t đ ị nh ch ọ n phƣơng pháp deep learning LSTMs k ế t h ợ p v ớ i Word2Vector đ ể gi ả i quy ế t bài toán phân tích c ả m xúc. Mô hình này t ỏ ra sát v ớ i yêu c ầ u ứ ng d ụ ng th ự c ti ễ n v ớ i văn b ả n đ ầ u vào là m ộ t đo ạ n văn b ấ t k ỳ , có th ể là các bình lu ậ n (comment) trên m ạ ng xã h ộ i, các đánh giá (review) trên các trang web bán hàng, cung c ấ p d ị ch v ụ ăn u ố ng, gi ả i trí, du l ị ch nhƣ: các quán ăn, nhà hàng, khách s ạ n, đ ị a đi ể m du l ị ch, r ạ p chi ế u phim, b ộ phim, các thƣơng hi ệ u n ổ i ti ế n g . 1.4.2 Sơ đ ồ hu ấ n luy ệ n mô hình phân tích c ả m xúc văn b ả n Ti ế ng Vi ệ t Hình 1.5 : Sơ đ ồ hu ấ n luy ệ n Theo nhƣ hình trên, thì ta thấy đầ u vào c ủ a mô hình h ọ c có giám sát LSTMs là các t ập tin đã gán nhãn, chứa các đoạn văn đƣợ c x ử lý tách t ừ (phân đoạ n t ừ ) b ằ ng công c ụ Tokenizer và mô hình Word2Vector. Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 18 T i ế ng Vi ệ t thu ộ c lo ạ i hình đơn l ậ p, ranh gi ớ i t ừ không đƣ ợ c xác đ ị nh m ặ c nhiên b ằ ng kho ả n tr ắ ng, mà vi ệ c gi ả i quy ế t bài toán l ạ i liên quan đ ế n ng ữ nghĩa c ủ a t ừ cho nên vi ệ c phân đo ạ n t ừ là công vi ệ c b ắ t bu ộ c đ ể mô hình đ ạ t đƣ ợ c đ ộ chính xác cao hơn Còn mô hình Word2Vector là k ế t qu ả c ủ a quá trình hu ấ n luy ệ n nông d ự a trên mô hình Recurrent Neural Network (RNN) để vector hóa t ừ, hay nói cách khác là đƣa từ (word) vào không gian vector K ế t qu ả c ủ a quá trình hu ấ n luy ện, ta thu đƣợ c b ộ tr ọ ng s ố c ủ a m ạng nơ ron LSTMs đƣợc lƣu xuố ng file (params) cùng v ớ i các siêu tham s ố c ấ u hình m ạ ng LSTMs (conf) mà ta đã thiế t l ậ p. Hai t ậ p tin này s ẽ đƣợ c t ả i vào (loading) vào m ạ ng LSTMs để ki ể m tra (test), v ậ n hành (release) ho ặ c có th ể ti ế p t ụ c hu ấ n luy ệ n (training) sau này. 1.4.3 Tách t ừ ti ế ng vi ệ t – Tokenization, Word Segmentation: L à bài toán quan tr ọ ng đ ố i v ớ i ti ế ng Vi ệ t. Khác v ớ i ti ế ng Anh, m ộ t t ừ ti ế ng Vi ệ t có th ể đƣ ợ c t ạ o b ở i nhi ề u hơn m ộ t âm T ách t ừ , v ề m ặ t bi ể u hi ệ n , là gom nhóm các t ừ đơn li ề n k ề thành m ộ t c ụ m t ừ có ý nghĩa. Ví d ụ : "Cách tách t ừ cho Ti ế ng Vi ệ t." sau khi tách t ừ thì thành "Cách tách t ừ cho Ti ế ng_Vi ệ t ." V ề hình th ứ c, các t ừ đơn đƣ ợ c gom nhóm v ớ i nhau b ằ ng cách n ố i v ớ i nhau b ằ ng ký t ự g ạ ch dƣ ớ i "_" , trong trƣ ờ ng h ợ p này là t ừ Ti ế ng_Vi ệ t . Sau khi th ự c hi ệ n tách t ừ thì m ỗ i t ừ (token) trong câu đƣ ợ c cách nhau b ở i m ộ t kho ả ng tr ắ ng, trong trƣ ờ ng h ợ p này nhƣ "Ti ế ng_Vi ệ t ." thì t ừ "Ti ế ng_Vi ệ t" cách đ ấ u "." b ở i 1 kho ả ng tr ắ ng V i ệ c tách t ừ v ăn b ả n đ ầ u vào trƣ ớ c khi đƣa vào hu ấ n luy ệ n mô hình máy h ọ c là đ ể gi ả i quy ế t các bài toán liên quan đ ế n ng ữ nghĩa c ủ a văn b ả n, t ứ c là k ế t qu ả đ ầ u ra mang tính suy lu ậ n d ự a trên vi ệ c hi ể u ý nghĩa c ủ a văn b ả n đ ầ u vào Thu ậ t toán mà em dùng đ ể gi ả i quy ế t bài t oán này là Thu ậ t toán so kh ớ p t ừ dài nh ấ t (longest matching) : B ắ t đ ầ u t ừ trái sang ph ả i, v ớ i v ị trí t ừ hi ệ n t ạ i chúng ta ki ể m tra xem t ừ đó và 2 t ừ ti ế p theo có th ể ghép thành 1 t ừ có nghĩa hay không b ằ ng cách ki ể m tra trong t ừ đi ể n tri - gram. N ế u không th ể t ạ o ra đƣ ợ c t ừ có nghĩa t ừ 3 t ừ thì ta ti ế p t ụ c ki ể m tra xem t ừ hi ệ n t ạ i và t ừ ti ế p theo có th ể ghép đƣ ợ c thành m ộ t t ừ có nghĩa hay không b ằ ng cách ki ể m tra trong t ừ đi ể n bi - gram. Cu ố i cùng n ế u không th ể ghép đƣ ợ c thì ta coi đó là t ừ đơn Đề tài: Xây d ự ng website h ỗ tr ợ khách hàng mua điệ n tho ạ i và tích h ợ p machine learning phân tích bình lu ậ n khách hàn SVTH: Lê Văn Hồ ng Quân GVHD: PGS.TS Phan Huy Khánh Page 19 1.4.4 Bi ể u di ễ n t ừ trong không gian (word embedding) s ử d ụ ng World2Vec M ạ ng nơ ron hay b ấ t k ỳ mô hình tính toán nào làm vi ệ c v ớ i các con s ố , đ ể các mô hình làm vi ệ c đƣ ợ c v ớ i ngôn ng ữ t ự nhiên thì vi ệ c s ố hóa các t ừ là cách ti ế p c ậ n đơn gi ả n nh ấ t . Word Embedding là tên g ọ i chung c ủ a các mô hình ngôn ng ữ và các phƣơng pháp h ọ c theo đ ặ c trƣng trong X ử lý ngôn ng ữ t ự nhiên(NLP), ở đó các t ừ ho ặ c c ụ m t ừ đƣ ợ c ánh x ạ sang các vector s ố (thƣ ờ ng là s ố th ự c) . T ừ không gian m ộ t chi ề u cho m ỗ i t ừ t ớ i không gian các vector liên t ụ c. Đây là m ộ t công c ụ đóng vai trò quan tr ọ ng đ ố i v ớ i h ầ u h ế t các thu ậ t toán, ki ế n trúc Machine Learning, Deep Learning trong vi ệ c x ử lý Input ở d ạ ng text, do chúng ch ỉ có th ể hi ể u đƣ ợ c Input ở d ạ ng là s ố , t ừ đó m ớ i th ự c hi ệ n các công vi ệ c phân lo ạ i, h ồ i quy,vv… P hƣơng pháp bi ể u di ễ n ph ổ bi ế n trƣ ớ c th ờ i word embeddings : Bag of Words là m ộ t thu ậ t toán h ỗ tr ợ x ử lý ngôn ng ữ t ự nhiên và m ụ c đích c ủ a BoW là phân lo ạ i text hay văn b ả n. Ý tƣ ở ng c ủ a BoW là phân tích và phân nhóm d ự a theo "Bag of Words"(corpus). V ớ i test data m ớ i, ti ế n hành tìm ra s ố l ầ n t ừ ng t ừ c ủ a test data xu ấ t hi ệ n trong "bag" . M ộ t k ỹ t

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ PHẦN MỀM

ĐỀ TÀI:

XÂY DỰNG WEBSITE HỖ TRỢ KHÁCH HÀNG MUA ĐIỆN THOẠI VÀ TÍCH HỢP MACHINE LEARNING PHÂN TÍCH BÌNH LUẬN KHÁCH

Trang 2

KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ PHẦN MỀM

ĐỀ TÀI:

XÂY DỰNG WEBSITE HỖ TRỢ KHÁCH HÀNG MUA ĐIỆN THOẠI VÀ TÍCH HỢP MACHINE LEARNING PHÂN TÍCH BÌNH LUẬN KHÁCH

Trang 3

Đà Nẵng, ngày … tháng … năm 2019

Giảng viên hướng dẫn

PGS TS Phan Huy Khánh

Trang 4

Đà Nẵng, ngày … tháng … năm 2019

Trang 5

Tên đề tài: Xây dựng website hỗ trợ khách hàng mua điện thoại và tích hợp machine learning phân tích bình luận khách hàng

Sinh viên thực hiện: Lê Văn Hồng Quân

Số thẻ SV: 102150125 Lớp: 15T2

Website cung cấp các mẫu điện thoại của các hãng cho phép người dùng có thể xem các bình luận của người khác để có thể tự chọn sản phẩm theo ý mình Bên cạnh đó còn cho phép người dùng có thể trực tiếp bình luận về sản phẩm cho mọi người tham khảo Những bình luận sẽ được hệ thống phân tích và đưa ra các nhận định là thuộc loại tích cực, tiêu cực hay bình thường để người dùng tham khảo

Website bao gồm:

- Trang quản lý cho admin

- Trang cho người dùng, xem, tìm kiếm, bình luận về sản phẩm

- Trang đăng nhập, đăng ký tạo tài khoản để có thể được bình luận sản phẩm

Trang 6

KHOA CÔNG NGHỆ THÔNG TIN

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Họ tên sinh viên: LÊ VĂN HỒNG QUÂN Số thẻ sinh viên: 102150125

Lớp: 15T2 Khoa: Công nghệ thông tin Ngành: Công nghệ phần mềm

1 Tên đề tài đồ án:

Xây dựng website hỗ trợ khách hàng mua điện thoại và tích hợp machine learning phân tích bình luận khách hàng

2 Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ đối với kết quả thực hiện

3 Các số liệu và dữ liệu ban đầu:

……… ……… ……

………

… ……….… ……… ………

4 Nội dung các phần thuyết minh và tính toán: … ………

… ………

… ………

… ………

… ………

5 Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ): Không có 6 Họ tên người hướng dẫn: PGS TS Phan Huy Khánh 7 Ngày giao nhiệm vụ đồ án: …… /……./2019

8 Ngày hoàn thành đồ án: …… /……./2019

Đà Nẵng, ngày tháng năm 2019

Trưởng Bộ môn……… Người hướng dẫn

Trang 7

Trong quá hình học tập và rèn luyện ở đây, em đa học được rất nhiều kiến thức những điều bổ ích, em xin gửi lời cảm ơn chân thành đến tất cả các thầy cô trong Khoa công nghệ thông tin trường Đại học Bách Khoa Đà Nẵng đã dạy dỗ, truyền đạt kiến thức, tư tưởng và cả kinh nghiệm trong suốt thời gian em học ở đây để giờ em có thể thực hiện được đồ án tốt nghiệp này

Em cũng xin trân trọng cảm ơn thầy PGS.TS Phan Huy Khánh là người trực tiếp hướng dẫn, giúp đỡ em rất nhiều trong thời gian thực hiện đồ án Thầy không những giúp đỡ mà còn cung cấp rất nhiều thông tin bổ ích khác để em có thể tham khảo và mở mang kiến thức Nhờ thầy mà em đã thực hiện được đồ án một cách tốt nhất

Trong quá trình nghiên cứu, thực hiện đồ án lần này, chắn hẳn em không thể tránh khỏi những sai sót hay còn thiếu kiến thức, mong thầy cô thông cảm và góp ý thẳng thắn để em được học hỏi thêm và hoàn thiện đồ án của mình hơn nữa

Lời cuối em xin chân trọng cảm ơn các thầy cô và chúc thầy cô luôn khỏe mạnh

để có thể truyền đạt những kiến thức cho thế hệ sau

Lê Văn Hồng Quân

Trang 8

1 Những nội dung trong đồ án này là do em thực hiện dưới sự hướng dẫn trực tiếp của thầy giáo PGS.TS Phan Huy Khánh

2 Các tài liệu tham khảo, dữ liệu trong đồ án đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố

3 Nếu có những sao chép không hợp lệ, vi phạm quy chế, em xin chịu mọi trách nhiệm

Đà Nẵng, ngày tháng 12 năm 2019 Sinh viên thực hiện

Lê Văn Hồng Quân

Trang 9

1 Họ và tên: LÊ VĂN HỒNG QUÂN 2 Mã Sinh viên: 102150142 3 Lớp: 15T2

4 Tên đề tài: Xây dựng website hỗ trợ khách hàng mua điện thoại và tích hợp machine

learning phân tích bình luận khách hàng

7 Họ và tên GVHD: PGS.TS Phan Huy Khánh

II Phần dành cho Hội đồng

1 Trình bày báo cáo theo đúng mẫu qui định của Khoa

2 Không có sự sao chép nội dung báo cáo và chương trình đã có

3 Biên dịch mã nguồn và chạy được chương trình

4 Có kịch bản thực hiện với dữ liệu thử nghiệm

5 Kết quả thực hiện chương trình đúng theo báo cáo

6 Có sự đóng góp, phát triển của tác giả trong đồ án

Ý kiến khác: .

Kết luận:  Đạt yêu cầu  Phải sửa chữa lại  Không đạt yêu cầu

Trang 10

MỤC LỤC

TÓM TẮT 5

LỜI NÓI ĐẦU 7

CAM ĐOAN 8

MỤC LỤC 1

DANH SÁCH CÁC HÌNH VẼ 4

DANH SÁCH BẢNG 7

DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT 8

MỞ ĐẦU 9

1.Lý do chọn đề tài 9

2 Mục đích đề tài 9

3 Nội dung đề tài 9

4 Phạm vi sử dụng đề tài 10

5 Bố cục đề tài 10

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ SỬ DỤNG 11

1.1 Tổng quan về Nodejs và và javascript 11

1.2 Tổng quan về ExpressJS 12

1.3 Tổng quan về học máy (Machine Learning) 12

1.4 Bài toán phân loại bình luận 15

1.4.1 Các phương pháp giải quyết bài toán phân tích c ảm xúc 16

1.4.2 Sơ đồ huấn luyện mô hình phân tích cảm xúc văn bản Tiếng Việt 17

1.4.3 Tách từ tiếng việt – Tokenization, Word Segmentation: 18

1.4.4 Biểu diễn từ trong không gian (word embedding) sử dụng World2Vec 19

1.4.5 Sơ đồ kiểm tra và vận hành 25

Trang 11

1.5 Tổng quan về RestfulAPI 25

1.6 Tổng quan về ReactJS 28

1.7 Công cụ sử dụng 33

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 35

2.1 Phân tích nghiệp vụ hệ thống 35

2.1.1 Nghiệp vụ của quản trị viên 35

2.1.2 Nghiệp vụ của người dùng 35

2.2 Thiết kế hệ thống 35

2.2.1 Chức năng của khách hàng 35

2.2.2 Chức năng của người quản trị 36

2.3 Biểu đồ ca sử dụng 36

2.3.1 Biểu đồ ca sử dụng tổng quát c ủa hệ thống 36

2.3.2 Biểu đồ ca sử dụng của khách hàng 37

2.3.3 Biểu đồ ca sử dụng của quản trị viên 39

2.4 Đặc tả ca sử dụng 42

2.4.1 Đặc tả ca sử dụng đăng ký 42

2.4.2 Đặc tả ca sử dụng đăng nhập 43

2.4.3 Đặc tả ca sử dụng quản lý tài khoản 44

2.4.4 Đặc tả ca sử dụng quản lý hãng điện thoại 44

2.4.5 Đặc tả ca sử dụng quản lý điện thoại 45

2.4.6: Đặc tả ca sử dụng quản lý tài khoản 46

2.4.7 Đặc tả ca sử dụng xem, tìm kiếm điện thoại 46

2.4.8 Đặc tả ca sử dụng bình luận về điện thoại 47

2.5 Biểu đồ ho ạt động 48

2.5.1 Biểu đồ hoạt động của khách hàng 48

2.5.2 Biểu đồ hoạt động của quản trị viên 49

2.6 Biểu đồ lớp 51

Trang 12

2.7 Biểu đồ tuần tự 51

2.7.1 Biểu đồ đăng ký tài khoản 51

2.7.2 Biểu đồ tuần đăng nhập 52

2.7.3 Biều đồ tuần tự tạo hãng điện thoại 52

2.7.4 Biểu đồ tuần tự chỉnh sửa hãng điện tho ại 53

2.7.5 Biều đồ tuần tự xóa hãng điện thoại 53

2.7.6 Biểu đồ tuần tự thêm điện tho ại 54

2.7.7 Biểu đồ tuần tự chỉnh sửa điện tho ại 54

2.7.8 Biểu đồ tuần tự xóa điện thoại 55

2.7.9 Biều đồ tuần tự khóa/mở tài khoản 55

2.7.10 Biểu đồ tuần tự bình luận 56

2.7.11 Biểu đồ tuần tự chỉnh sửa thông tin cá nhân 56

2.7 Thiết kê cơ sở dữ liệu 57

2.7.1 Mô hinh thiết kê cơ sở dữ liệu 57

2.8 Tổng kết chương 58

CHƯƠNG 3: TRIỂN KHAI HỆ THỐNG VÀ CHẠY THỬ NGHIỆM 59

3.1 Môi trường triển khai 59

3.1.1 Quản lý mã nguồ n 59

3.1.2 Môi trường cài đặt 60

3.2 Kết quả ứng dụng 62

3.3 Đánh giá 65

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 66

1 Kết quả đạt được 66

2 Hạn chế: 66

3 Hướng phát triển: 67

TÀI LIỆU THAM KHẢO 68

Trang 13

DANH SÁCH CÁC HÌNH VẼ

CHƯƠNG 1:

Hình 1.1: Cơ chế hoạt động của Nodejs 11

Hình 1.2: Mô hình hoạt động ExpressJS 12

Hình 1.3: Mô hình về trí tuệ nhân tạo 14

Hình 1.4: Sơ đồ phân tích cảm xúc 16

Hình 1.5: Sơ đồ huấn luyện 17

Hình 1.6: Biểu diễn từ bằng one-hot-vector 20

Hình 1.7: Mối quan hệ các từ trong one-hot-vector 21

Hình 1.8: Sơ đồ huấn luyện Word2Vec Tiếng Việt 22

Hình 1.9: 2 kiến trúc c ủa Word2Vector 22

Hình 1.10: Mô hình kiến trúc mạng Skip-gram 23

Hình 1.11: Xây dựng training data với Skip-gram 24

Hình 1.12: Sơ đồ vận hành phân tích bình luận 25

Hình 1.13: Sơ đồ mô tả cấu trúc Restful API 26

Hình 1.14: Cơ chế hoạt động của Restful API 27

Hình 1.15: DOM ảo của reactjs 29

Hình 1.16: Vòng đời của component trong ReactJS 30

Hình 1.17: Công c ụ Editor VSCode 33

Hình 1.18: Công c ụ postman 34

Hình 1.19: MongoCompass giúp thao tác với csdl 34

CHƯƠNG 2: Hình 2.1: Biểu đồ ca sử dụng tổng quát c ủa hệ thống 37

Hình 2.2: Biểu đồ ca sử dụng đăng ký tài khoản của khách hàng 38

Hình 2.3: Biểu đồ ca sử dụng quản lý tài khoản trong hệ thống 38

Hình 2.4: Biểu đồ ca sử dụng xem điện thoại và bình luận 39

Hình 2.5: Biểu đồ ca sử dụng để bình luận sản phẩm 39

Hình 2.6: Biểu đồ ca sử dụng để quản lý hãng điện tho ại 40

Hình 2.7: Biểu đồ ca sử dụng quản lý điện tho ại 41

Hình 2.8: Biểu đồ ca sử dụng để xem và bình luận của quản trị viên 41

Trang 14

Hình 2.9: Biểu đồ ca sử dụng để quản lý tài kho ản người dùng 42

Hình 2.10: Biểu đồ hoạt động các chức năng của khách hàng 48

Hình 2.11: Biểu đồ hoạt động chức năng quản lý hãng và điện thoại của quản trị viên 49

Hình 2.12: Biểu đồ hoạt động chức năng quản lý tài khoản và bình luận của quản trị viên 50

Hình 2.13: Biểu đồ lớp bình luận sản phẩm của hệ thống 51

Hình 2.14: Biểu đồ tuần tự chức năng đăng ký tài khoản 51

Hình 2.15: Biểu đồ tuần tự chức năng đăng nhập 52

Hình 2.16: Biểu đồ tuần tự chức năng thêm hãng điện thoại 52

Hình 2.17: Biểu đồ tuần tự chức năng chỉnh sửa hãng điện thoại 53

Hình 2.18: Biểu đồ tuần tự chức năng xóa hãng điện thoại 53

Hình 2.19: Biểu đồ tuần tự chức năng thêm mới điện tho ại 54

Hình 2.20: Biểu đồ tuần tự chức năng chỉnh sửa điện thoại 54

Hình 2.21: Biểu đồ tuần tự chức năng xóa điện thoại 55

Hình 2.22: Biều đồ tuần tự chức năng khóa/mở tài kho ản 55

Hình 2.23: Biểu đồ tuần tư chức năng bình luận sản phẩm 56

Hình 2.24: Biểu đồ tuần tự chức năng chỉnh sửa thông tin cá nhân 56

Hình 2.25:Sơ đồ quan hệ cơ sở dữ liệu 58

CHƯƠNG 3: Hình 3.1: Github dùng để lưu trữ các mã nguồn 59

Hình 3.2: Môi trường nodejs 60

Hình 3.3: Trình quản lý thư viện npm 60

Hình 3.4: Ngôn ngữ back-end sử dụng 60

Hình 3.5: Ngôn ngữ front-end sử dụng 61

Hình 3.6: Web API sử dụng django 61

Hình 3.7: Hệ quản trị cơ sở dữ liệu mongoDB 62

Hình 3.8: Màn hình đăng ký tài khoản 62

Hình 3.9: Màn hình đăng nhập 62

Hình 3.10: Màn hình trang chủ của website 63

Hình 3.11: Màn hình trang điện thoại 63

Hình 3.12: Màn hình hiển thị điện tho ại và các bình luận về điện thoại 64

Hình 3.13: Màn hình trang quản lý hãng điện tho ại 64

Hình 3.14: Màn hình trang quản lý điện tho ại 65

Trang 15

Hình 3.15: Màn hình trang quản lý người dùng 65

Trang 16

DANH SÁCH BẢNG

Bảng 2.1: Đặc tả ca sử dụng đăng ký 43

Bảng 2.2: Đặc tả ca sử dụng đăng nhập 43

Bảng 2.3: Đặc tả ca sử dụng quản lý tài khoản 44

Bảng 2.4: Đặc tả ca sử dụng quản lý hãng điên thoại 45

Bảng 2.5: Đặc tả ca sử dụng quản lý điện thoại 46

Bảng 2.6: Đặc tả ca sử dụng quản lý tài khoản 46

Bảng 2.7: Đặc tả ca sử dụng xem, tìm kiếm điện thoại 47

Bảng 2.8: Đặc tả ca sử dụng bình luận về điện thoại 47

Trang 17

DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT

Từ Viết tắt của Diễn giải

API Application Programming Interface Giao diện lập trình ứng dụng

RESTful REpresentational State Transfer

Một dạng chuyển đổi cấu trúc dữ liệu, một kiểu kiến trúc để viết

API

HTTP Hypertext Transfer Protocol Giao thức truyền tải siêu văn bản

MVC Model-View-Controller Mô hình - Giao diện - Bộ điều

khiển

CSS Cascading Style Sheets Điều khiển cách hiện thị nội dung

trang web

DOM Document Object Model Mô hình đối tƣợng tài liệu

Một loại cú pháp mở rộng dành cho ngôn ngữ JavaScript viết

theo kiểu XML SQL Structured Query Language Ngôn ngữ truy vấn cấu trúc

Trang 18

MỞ ĐẦU

1 Lý do chọn đề tài

Xu hướng phát triền công nghệ nhanh như vũ bão hiện nay, sự đổi mới bước qua thời kỳ công nghê mới làm cho nhu cầu của con người ngày càng tăng cao Hiện nay bên mỗi người đều có một chiếc điện thoại để dùng là việc không thể thiếu, nó nhỏ gọn nhẹ đủ để cho chúng ta làm việc hay giải trí ở trên đó và có thể mang đi bất cứ nơi đâu chúng ta muốn

Nhưng không phải ai ai cũng đều có khả năng sở hữu những chiếc điện thoại cao cấp, hoặc có những người dùng với mục đích khác nhau nên khó tránh khỏi việc không biết lựa chọn sản phẩm nào là tốt nhất cho mình và phù hợp mới mục đích của mình Mọi người có thể vô những trang web để xem các đánh giá, bình luận của người khác nhưng rất tốn thời gian khi đọc từng bình luận để xem là tốt hay xấu

Và khi áp dụng các học máy vào tính toán, phán đoán các bình luận đó là tốt hay xấu thì sẽ tiết kiệm thời gian nhiều hơn và có cái nhìn rõ ràng hơn về sản phẩm

Vì những lý do đó, em quyết định chọn đề tài “Xây dựng website hỗ trợ khách hàng mua điện thoại và tích hợp machine learning phân tích bình luận khách hàng” để làm đồ án tốt nghiệp của mình

2 Mục đích đề tài

Website được xây dựng với giao diện thân thiện, dễ dàng sử dụng giúp đỡ người dùng, khách hàng có cái nhìn tông quan hơn về việc chọn điện thoại và tiết kiệm thời gian về việc lựa chọn, việc tự người dùng đánh giá điện thoại sẽ đưa ra những ý kiến khách quan hơn Bên cạnh đó còn giúp các hãng điện thoại nhìn vào điểm mạnh, điểm yếu của mình mà cái tiến hoặc khắc phục tốt hơn

3 Nội dung đề tài

- Tìm hiểu các bài toán học máy, xử lý ngôn ngữ tự nhiên trong thực tế

- Tìm hiểu và phân tích sơ đồ UML

- Phân tích và thiết kế hệ thống thông tin

- Phân tích và thiết kế cơ sở dữ liệu

Trang 19

- Sử dụng các ngôn ngữ lập trình và cách xây dựng RESTful API áp dụng vào đề tài

- Sử dụng các thuật toán học máy, dữ liệu để tạo mô hình cho việc dự đoán

- Sử dụng NoSQL (MongoDB) làm cơ sở sử liệu chính

Đề tài chia làm 3 chương:

Chương 1: Cở sở lý thuyết của đề tài

Chương 2: Phân tích, thiết kế hệ thống, xây dựng cơ sở dữ liệu

Chương 3: Triên khai hệ thống chạy thực tế và đánh giá kết quả

Trang 20

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ SỬ DỤNG

1.1 Tổng quan về Nodejs và và javascript

Javascript là ngôn ngữ lập trình kịch bản để được sử dụng rộng rãi ở các website

và ECMAScript là phiên bản chuẩn hóa của Javascript Phiên bản mới nhất hiện nay của Javascript là ECMAScript 7 Javascript cho phép tạo ra trang web động - cập nhật nội dung theo ngữ cảnh, điều khiển đa phương tiện, hoạt cảnh các hình ảnh và nhiều thứ hay ho khác (Dĩ nhiên không phải mọi thứ, nhưng chỉ với một vài dòng code, JavaScript có thể làm được nhiều điều đáng kinh ngạc.) Javascript được hỗ trợ hầu như trên tất cả các trình duyệt như Firefox, Chrome, thậm chí các trình duyệt trên thiết bị

di động cũng có hỗ trợ

Hình 1.1: Cơ chế hoạt động của Nodejs

Node.js là một nền tảng phát triển độc lập được xây dựng ở trên môi trường V8 JavaScript runtime - một trình thông dịch JavaScript cực nhanh chạy trên trình duyệt Chrome giúp chúng ta có thể xây dựng được các ứng dụng mạng một cách nhanh chóng và dễ dàng mở rộng Nodejs chạy đa nền tảng phía Server, sử dụng kiến trúc hướng sự kiện Event-driven, cơ chế non-blocking I/O làm cho nó nhẹ và hiệu quả Các ứng dụng NodeJS đáp ứng tốt thời gian thực và chạy đa nền tảng, đa thiết bị

Trang 21

Nó bao gồm 2 thành phần chính là V8 engine để chạy code js và thư viện libuv để

xử lý các lời gọi bất đồng bộ Ở đây lại có nhiều lẫn lộn node chạy đơn luồng hay đa luồng ? Một cách chính xác thì code JS được xử lý bằng 1 luồng duy nhất chính là V8 engine(main thread), còn các thứ chạy bên dưới bởi libuv thì đa luồng(worker thread)

1.2 Tổng quan về ExpressJS

ExpressJS là một framework được xây dựng trên nền tảng Nodejs Nó cung cấp các tính năng mạnh mẽ để phát triển web hoặc mobile Express hỗ rợ các phương thức HTTP và midleware tạo ra môt API vô cùng mạnh mẽ và dễ sử dụng

Hình 1.2: Mô hình hoạt động ExpressJS

Một số chức năng chính của Expressjs như sau:

- Express hỗ trợ chúng ta phát triển ứng dụng theo mô hình MVC

- Hỗ trợ mạnh về REST API

- Thiết lập các lớp trung gian để trả về các HTTP request

- Định nghĩa router cho phép sử dụng với các hành động khác nhau dựa trên phương thức HTTP và URL

Expressjs được sử dụng rỗng rãi nên có vô số các package hỗ trợ nên sẽ không phải

lo lắng khi làm việc với Framework này Bên cạnh đó về performance: Express cung cấp thêm về các tính năng (feature) để dev lập trình tốt hơn Chứ không làm giảm tốc

độ của NodeJS

1.3 Tổng quan về học máy (Machine Learning)

Những năm gần đây, AI - Artificial Intelligence (Trí Tuệ Nhân Tạo), và cụ thể hơn

là Machine Learning (Học Máy hoặc Máy Học) nổi lên như một bằng chứng của cuộc

Trang 22

cách mạng công nghiệp lần thứ tư (1 - động cơ hơi nước, 2 - năng lượng điện, 3 - công nghệ thông tin) Trí Tuệ Nhân Tạo đang len lỏi vào mọi lĩnh vực trong đời sống mà có thể chúng ta không nhận ra Xe tự hành của Google và Tesla, hệ thống tự tag khuôn mặt trong ảnh của Facebook, trợ lý ảo Siri của Apple, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợi ý phim của Netflix, máy chơi cờ vây AlphaGo của Google DeepMind, …, chỉ là một vài trong vô vàn những ứng dụng của AI/Machine Learning Machine Learning là một tập con của AI hay nói cách khác nó là một lĩnh vực nhỏ của Khoa Học Máy Tính, nó sử dụng các thuật toán cho phép máy tính có thể học từ

dữ liệu để thực hiện các công việc thay vì được lập trình một cách rõ ràng

Machine Learning được chia thành 3 loại chính:

Supervised learning (học có giám sát): là thuật toán dự đoán đầu ra (outcome)

của một dữ liệu mới (new input) dựa trên các cặp (input, outcome) đã biết từ trước Cặp dữ liệu này còn được gọi là (data, label), tức (dữ liệu, nhãn) Supervised learning

là nhóm phổ biến nhất trong các thuật toán Machine Learning

Một cách toán học, Supervised learning là khi chúng ra có một tập hợp biến đầu vào X={x1,x2,…,xN} và một tập hợp nhãn tương ứng Y={y1,y2,…,yN} trong

đó xi,yi là các vector Các cặp dữ liệu biết trước (xi,yi) ∈ X × Y được gọi là

tập training data (dữ liệu huấn luyện) Từ tập traing data này, chúng ta cần tạo ra một

hàm số ánh xạ mỗi phần tử từ tập X sang một phần tử (xấp xỉ) tương ứng của tập Y

yi ≈ f(xi), ∀i=1,2,…,N Mục đích là xấp xỉ hàm số ff thật tốt để khi có một dữ liệu xx mới, chúng ta có thể tính được nhãn tương ứng của nó y=f(x)

Unsupervised learning (học không giám sát): Trong thuật toán này, chúng ta

không biết được outcome hay nhãn mà chỉ có dữ liệu đầu vào Thuật toán

unsupervised learning sẽ dựa vào cấu trúc của dữ liệu để thực hiện một công việc nào

đó, ví dụ như phân nhóm (clustering) hoặc giảm số chiều của dữ liệu (dimension reduction) để thuận tiện trong việc lưu trữ và tính toán

Một cách toán học, Unsupervised learning là khi chúng ta chỉ có dữ liệu vào X mà

không biết nhãn Y tương ứng

Những thuật toán loại này được gọi là Unsupervised learning vì không giống như Supervised learning, chúng ta không biết câu trả lời chính xác cho mỗi dữ liệu đầu

Trang 23

vào Giống như khi ta học, không có thầy cô giáo nào chỉ cho ta biết đó là chữ A hay

chữ B Cụm không giám sát được đặt tên theo nghĩa này

Reinforcement learning (học tăng cường/học củng cố): Reinforcement learning

là các bài toán giúp cho một hệ thống tự động xác định hành vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất (maximizing the performance) Hiện tại, Reinforcement learning chủ yếu được áp dụng vào Lý Thuyết Trò Chơi (Game Theory), các thuật toán cần xác định nước đi tiếp theo để đạt được điểm số cao nhất

Ví dụ như AlphaGo gần đây nổi tiếng với việc chơi cờ vây thắng cả con người Cờ vây được xem là có độ phức tạp cực kỳ cao với tổng số nước đi là xấp xỉ 10761, so với

cờ vua là 10120

Về cơ bản, AlphaGo bao gồm các thuật toán thuộc cả Supervised learning và Reinforcement learning Trong phần Supervised learning, dữ liệu từ các ván cờ do con người chơi với nhau được đưa vào để huấn luyện Tuy nhiên, mục đích cuối cùng của AlphaGo không phải là chơi như con người mà phải thậm chí thắng cả con người Vì vậy, sau khi học xong các ván cờ của con người, AlphaGo tự chơi với chính nó với hàng triệu ván chơi để tìm ra các nước đi mới tối ưu hơn Thuật toán trong phần tự chơi này được xếp vào loại Reinforcement learning

Hình 1.3: Mô hình về trí tuệ nhân tạo

Xử lý ngôn ngữ tự nhiên 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 Mục tiêu của lĩnh vực này là giúp máy tính hiểu và

Trang 24

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 và máy, cải thiện hiệu quả 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 Nó có vô vàn ứng dụng hữu ích trong cuộc sống cũng như nghiên cứu Các doanh nghiệp hiện nay đang đối mặt với

“cơn lũ” dữ liệu về mọi mặt: feedback của khách hàng, thông tin đối thủ cạnh tranh, emails của khách hàng, tweets, thông tin họp báo, hồ sơ pháp lý, các văn bản về sản phẩm và kĩ thuật Việc khai thác được những dữ liệu này là điểm mấu chốt để các doanh nghiệp có thể triển khai nhanh chóng các quyết định của mình so với đối thủ cạnh tranh Chúng ta có thể điểm qua một vài ứng dụng của xử lý ngôn ngữ tự nhiên như:

- Phân loại văn bản

- phân tích cảm xúc trên văn bản

-

1.4 Bài toán phân loại bình luận

Trong tiếng Anh bài toán này được biết đến với cái tên (text classification E.g sentiment classification) nhằm phát hiện ra thái độ mang tính lâu dài, màu sắc tình cảm, khuynh hướng niềm tin vào các đối tượng hay người nào đó

Bài toán phân tích cảm xúc thuộc dạng bài toán phân tích ngữ nghĩa văn bản Vì vậy, ta cần phải xây dựng một mô hình để hiểu được ý nghĩa của câu văn, đoạn văn để quyết định xem câu văn đó hoặc đoạn văn đó mang màu sắc cảm xúc chủ đạo nào Phát biểu theo góc nhìn của máy học (Machine Learning) thì phân tích cảm xúc là bài toán phân lớp cảm xúc dựa trên văn bản ngôn ngữ tự nhiên Đầu vào của bài toán

là một câu hay một đoạn văn bản, còn đầu ra là các giá trị xác suất (điểm số) của N lớp cảm xúc mà ta cần xác định

Trang 25

Hình 1.4: Sơ đồ phân tích cảm xúc

Đầu vào của mô hình xử lý Sentiment Analysis Vietnamese (SAV) là một đoạn văn Tiếng Việt, đầu ra là 2 giá trị xác suất mà đoạn văn đầu vào thuộc về lớp cảm xúc: tiêu cực (negative) hay tích cực (positive)

1.4.1 Các phương pháp gi ải quyết bài toán phân tích cảm xúc

Phương pháp dựa trên từ điển các từ thể hiện cảm xúc Theo đó, việc dự đoán

cảm xúc dựa vào việc tìm kiếm các từ cảm xúc riêng lẻ, xác định điểm số cho các từ tích cực, xác định điểm số cho các từ tiêu cực và sau đó là tổng hợp các điểm số này lại theo một độ đo xác định để quyết định xem văn bản mau màu sắc cảm xúc gì Phương pháp này có điểm hạn chế là thứ tự các từ bị bỏ qua và các thông tin quan trọng có thể bị mất Độ chính xác của mô hình phụ thuộc vào độ tốt của bộ từ điển các

từ cảm xúc Nhưng lại có ưu điểm là dễ thực hiện, chi phí tính toán nhanh, chỉ mất công sức trong việc xây dựng bộ từ điển các từ cảm xúc mà thôi

Phương pháp Neural Network Những thập niên gần đây, với sự phát triển

nhanh chóng tốc độ xử lý của CPU, GPU và chi phí cho phần cứng ngày càng giảm, các dịch vụ hạ tầng điện toán đám mây ngày càng phát triển, làm tiền đề và cơ hội cho phương pháp học sâu Deep Learning Neural Network phát triển mạnh mẽ Trong đó, bài toán phân tích cảm xúc đã được giải quyết bằng mô hình học Recurrent Neural Network (RNN) với một biến thể được dùng phổ biến hiện nay là Long Short Term Memory Neural Network (LSTMs), kết hợp với mô hình vector hóa từ (vector representations of words) Word2Vector với kiến trúc Continuous Bag-of-Words (CBOW) Mô hình này cho độ chính xác hơn 85% Ưu điểm của phương pháp này là văn bản đầu vào có thể là 1 câu hay 1 đoạn văn Để thực hiện mô hình này đòi hỏi phải

có dữ liệu văn bản càng nhiều càng tốt để tạo Word2Vector CBOW chất lượng cao và

Trang 26

dữ liệu gán nhãn lớn để huấn luyện (training), xác minh (validate) và kiểm tra (test)

mô hình học có giám sát (Supervise Learning) LSTMs

Phương pháp kết hợp Rule-bases (dựa trên luật) và Corpus-bases (dựa trên ngữ liệu) Tiêu biểu cho phương pháp này là công trình nghiên cứu của Richard

Socher thuộc trường đại học Stanford Phương pháp này kết hợp sử dụng mô hình Deep Learning Recursive Neural Network với hệ tri thức chuyên gia trong xử lý ngôn ngữ tự nhiên (XLNNTN) được gọi là Sentiment Treebank Sentiment Tree là cây phân tích cú pháp của 1 câu văn, trong đó mỗi nút trong cây kèm theo bộ trọng số cảm xúc lần lượt là: rất tiêu cực (very negative), tiêu cực (negative), trung tính (neutral), tích cực (positive) và rất tích cực (very positive) Theo đó, trọng số thuộc nhãn nào lớn nhất sẽ quyết định nhãn toàn cục của nút, như hình dưới đây Độ chính xác của mô hình khi dự đoán cảm xúc cho 1 câu đơn là 85,4% Nhược điểm của phương pháp này

ở chổ chỉ xử lý tốt cho dữ liệu đầu vào là một câu đơn

Trong đề tài này em quyết định chọn phương pháp deep learning LSTMs kết hợp với Word2Vector để giải quyết bài toán phân tích cảm xúc Mô hình này tỏ ra sát với yêu cầu ứng dụng thực tiễn với văn bản đầu vào là một đoạn văn bất kỳ, có thể là các bình luận (comment) trên mạng xã hội, các đánh giá (review) trên các trang web bán hàng, cung cấp dịch vụ ăn uống, giải trí, du lịch như: các quán ăn, nhà hàng, khách sạn, địa điểm du lịch, rạp chiếu phim, bộ phim, các thương hiệu nổi tiếng

1.4.2 Sơ đồ huấn luyện mô hình phân tích cảm xúc văn bản Tiếng Việt

Hình 1.5: Sơ đồ huấn luyện

Theo như hình trên, thì ta thấy đầu vào của mô hình học có giám sát LSTMs là các tập tin đã gán nhãn, chứa các đoạn văn được xử lý tách từ (phân đoạn từ) bằng công cụ Tokenizer và mô hình Word2Vector

Trang 27

Tiếng Việt thuộc loại hình đơn lập, ranh giới từ không được xác định mặc nhiên bằng khoản trắng, mà việc giải quyết bài toán lại liên quan đến ngữ nghĩa của từ cho nên việc phân đoạn từ là công việc bắt buộc để mô hình đạt được độ chính xác cao hơn Còn mô hình Word2Vector là kết quả của quá trình huấn luyện nông dựa trên mô hình Recurrent Neural Network (RNN) để vector hóa từ, hay nói cách khác là đưa từ (word) vào không gian vector

Kết quả của quá trình huấn luyện, ta thu được bộ trọng số của mạng nơ ron LSTMs được lưu xuống file (params) cùng với các siêu tham số cấu hình mạng LSTMs (conf) mà ta đã thiết lập Hai tập tin này sẽ được tải vào (loading) vào mạng LSTMs để kiểm tra (test), vận hành (release) hoặc có thể tiếp tục huấn luyện (training) sau này

1.4.3 Tách từ tiếng việt – Tokenization, Word Segmentation:

Là bài toán quan trọng đối với tiếng Việt Khác với tiếng Anh, một từ tiếng Việt

có thể được tạo bởi nhiều hơn một âm

Tách từ, về mặt biểu hiện, là gom nhóm các từ đơn liền kề thành một cụm từ có ý nghĩa Ví dụ: "Cách tách từ cho Tiếng Việt." sau khi tách từ thì thành "Cách tách từ cho Tiếng_Việt " Về hình thức, các từ đơn được gom nhóm với nhau bằng cách nối với nhau bằng ký tự gạch dưới "_", trong trường hợp này là từ Tiếng_Việt Sau khi thực hiện tách từ thì mỗi từ (token) trong câu được cách nhau bởi một khoảng trắng, trong trường hợp này như "Tiếng_Việt " thì từ "Tiếng_Việt" cách đấu "." bởi 1 khoảng trắng

Việc tách từ văn bản đầu vào trước khi đưa vào huấn luyện mô hình máy học là để giải quyết các bài toán liên quan đến ngữ nghĩa của văn bản, tức là kết quả đầu ra mang tính suy luận dựa trên việc hiểu ý nghĩa của văn bản đầu vào

Thuật toán mà em dùng để giải quyết bài toán này là Thuật toán so khớp từ dài nhất (longest matching): Bắt đầu từ trái sang phải, với vị trí từ hiện tại chúng ta kiểm tra xem từ đó và 2 từ tiếp theo có thể ghép thành 1 từ có nghĩa hay không bằng cách kiểm tra trong từ điển tri-gram Nếu không thể tạo ra được từ có nghĩa từ 3 từ thì ta tiếp tục kiểm tra xem từ hiện tại và từ tiếp theo có thể ghép được thành một từ có nghĩa hay không bằng cách kiểm tra trong từ điển bi-gram Cuối cùng nếu không thể ghép được thì ta coi đó là từ đơn

Trang 28

1.4.4 Biểu diễn từ trong không gian (word embedding) sử dụng World2Vec

Mạng nơ ron hay bất kỳ mô hình tính toán nào làm việc với các con số, để các mô hình làm việc được với ngôn ngữ tự nhiên thì việc số hóa các từ là cách tiếp cận đơn

giản nhất Word Embedding là tên gọi chung của các mô hình ngôn ngữ và các

phương pháp học theo đặc trưng trong Xử lý ngôn ngữ tự nhiên(NLP), ở đó các từ hoặc cụm từ được ánh xạ sang các vector số (thường là số thực) Từ không gian một chiều cho mỗi từ tới không gian các vector liên tục Đây là một công cụ đóng vai trò quan trọng đối với hầu hết các thuật toán, kiến trúc Machine Learning, Deep Learning trong việc xử lý Input ở dạng text, do chúng chỉ có thể hiểu được Input ở dạng là số, từ đó mới thực hiện các công việc phân loại, hồi quy,vv…

Phương pháp biểu diễn phổ biến trước thời word embeddings:

Bag of Words là một thuật toán hỗ trợ xử lý ngôn ngữ tự nhiên và mục đích của

BoW là phân loại text hay văn bản Ý tưởng của BoW là phân tích và phân nhóm dựa theo "Bag of Words"(corpus) Với test data mới, tiến hành tìm ra số lần từng từ của test data xuất hiện trong "bag" Một kỹ thuật đơn giản nhất được sử dụng là One hot vector(1-of-N)

Để chuyển đổi ngôn ngữ tự nhiên về dạng 1-of-N, ta thực hiện các bước như sau:

 Xây dựng một bộ từ vựng

 Mỗi vector đại diện cho một từ có số chiều bằng số từ trong bộ từ vựng Trong

đó, mỗi vector chỉ có một phần tử duy nhất khác 0(bằng 1) tại vị trí tương ứng với vị trí từ đó trong bộ từ vựng

Giả sử ta có danh sách các từ sau: (nlp, python, word, ruby, one-hot) khi vector hoá từ python, ta sẽ được:

Trang 29

Hình 1.6: Biểu diễn từ bằng one-hot-vector

Tương tự với nlp thì vị trí nlp sẽ là 1, còn lại là 0, cứ như vậy ta sẽ biểu diễn được tất cả các từ Lấy luôn hình trên làm ví dụ ta sẽ được:

Trang 30

Hình 1.7: Mối quan hệ các từ trong one-hot-vector

Ví dụ như bạn muốn tính độ tương tự giữa các từ, việc cần làm là tính tích vô hướng 2 từ đó, tuy nhiên với cách biểu diễn bằng one-hot, tích vô hướng luôn bằng 0 nên không có ý nghĩa gì cả

Mô hình Word2Vec

Mô hình này được Google rạo ra vào năm 2013 và là mô hình sử dụng deep learning để tính toán và tạo ra các vectơ biểu diễn các từ và bao gồm được cả các tương đồng về ngữ cảnh và ngữ nghĩa của từ đó

Word2Vector là kết quả của một mô hình học nông của mạng nơ ron Recurrent Neural Network Mục đích của mô hình này là biểu diễn tập từ (word) của một ngôn ngữ tự nhiên vào không gian vector Nhờ vào không gian vector của từ vựng này mà các từ càng tương đồng với nhau thì giá trị khoảng cách cosine càng lớn (càng gần giá trị 1), ngược lại các từ ít tương đồng với nhau thì khoảng cách cosine sẽ càng nhỏ (càng gần giá trị 0)

Điều này làm cho số chiều của không gian vectơ này thấp hơn rất nhiều so với

không gian vectơ được tạo ra bởi mô hình Bag of Words truyền thống

Trang 31

Hình 1.8: Sơ đồ huấn luyện Word2Vec Tiếng Việt

Word2Vector có hai kiến trúc khác nhau nhƣ sau:

Mô hình Continuous Bag of Words (CBOW)

Mô hình Skip-gram

Hình 1.9: 2 kiến trúc của Word2Vector

Mô hình CBOW sẽ cố gắng dự đoán từ trung tâm (center word hoặc target word)

dựa trên ngữ cảnh đƣợc tạo ra từ các từ xung quanh nó (surrounding words) Chúng ta

Trang 32

hay xem xét một câu đơn giản "the quick brown fox jumps over the lazy dog", chúng

ta có thể có các cặp (context_window, target_word) nếu chọn context_window = 2 ta

sẽ có ([quick, fox], brown), ([the, brown], quick), ([the, dog], lazy)

Mô hình Skip-gram là mô hình đƣợc xây dựng với mục đích ngƣợc lại với mô

hình CBOW Nó cố gắng dự đoán các ngữ cảnh (surrounding words) bằng từ ngữ trung

tâm (center word)

Mô hình kiến trúc của mạng Skip-gram và cách xây dựng training data

Hình 1.10: Mô hình kiến trúc mạng Skip-gram

Trang 33

Hình 1.11: Xây dựng training data với Skip-gram

Việc triển khai mô hình sẽ tập trung vào năm phần chính:

Xây dựng vốn từ vựng

Xây dựng skip-gram [(target, context), relevancy] generator

Xây dựng kiến trúc mô hình skip-gram

Huấn luyện mô hình

Thu đƣợc word embeddings của các từ

Trang 34

1.4.5 Sơ đồ kiểm tra và vận hành

Hình 1.12: Sơ đồ vận hành phân tích bình luận

ở giai đoạn kiểm tra và vận hành này thì mô hình LSTMs tải lên các file cấu hình (conf) và file lưu bộ trọng số (params) của mạng nơ ron là kết quả của quá trình huấn luyện trước đó Đồng thời vẫn phải sử dụng đến mô hình Word2Vector với vai trò là

hệ tri thức từ vựng

Quá trình kiểm tra, ta đưa vào bộ dữ liệu bao gồm các tập tin chứa các đoạn văn được gán nhãn đã tách từ bằng công cụ Tokenizer trước đó Kết quả phân lớp đầu ra được ghi nhận lại để so sánh với nhãn mong đợi ban đầu của dữ liệu, qua đó cho ta kết quả độ chính xác của mô hình

1.5 Tổng quan về RestfulAPI

RESTfulAPI là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web (thiết kế Web services) để tiện cho việc quản lý các resource Nó chú trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP

Trang 35

Hình 1.13: Sơ đồ mô tả cấu trúc Restful API

REST (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu, một kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một URL để xử lý dữ liệu

RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng web để quản lý các resource RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau

Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method (như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web

để quản các resource RESTful không quy định logic code ứng dụng và không giới hạn bởi ngôn ngữ lập trình ứng dụng, bất kỳ ngôn ngữ hoặc framework nào cũng có thể sử dụng để thiết kế một RESTful API

Về cách hoạt động:

Trang 36

Hình 1.14: Cơ chế hoạt động của Restful API

REST hoạt động chủ yếu dựa vào giao thức HTTP Các hoạt động cơ bản nêu trên

sẽ sử dụng những phương thức HTTP riêng

 GET (SELECT): Trả về một Resource hoặc một danh sách Resource

 POST (CREATE): Tạo mới một Resource

 PUT (UPDATE): Cập nhật thông tin cho Resource

 DELETE (DELETE): Xoá một Resource

Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa

Hiện tại đa số lập trình viên viết RESTful API giờ đây đều chọn JSON là format chính thức nhưng cũng có nhiều người chọn XML làm format, nói chung dùng thế nào cũng được miễn tiện và nhanh

Khi chúng ta request một API nào đó và sau khi xử lý thì server sẽ trả về HTTP Respone kèm theo là một số các trạng thái sau phụ thuộc vài request và kết quả xử lý các request đó:

 200 OK – Trả về thành công cho những phương thức GET, PUT, PATCH hoặc DELETE

 201 Created – Trả về khi một Resouce vừa được tạo thành công

 204 No Content – Trả về khi Resource xoá thành công

 304 Not Modified – Client có thể sử dụng dữ liệu cache

Trang 37

 400 Bad Request – Request không hợp lệ

 401 Unauthorized – Request cần có auth

 403 Forbidden – bị từ chối không cho phép

 404 Not Found – Không tìm thấy resource từ URI

 405 Method Not Allowed – Phương thức không cho phép với user hiện tại

 410 Gone – Resource không còn tồn tại, Version cũ đã không còn hỗ trợ

 415 Unsupported Media Type – Không hỗ trợ kiểu Resource này

 422 Unprocessable Entity – Dữ liệu không được xác thực

 429 Too Many Requests – Request bị từ chối do bị giới hạn

1.6 Tổng quan về ReactJS

React (còn được gọi là Reactjs hay React.js) là một Thư viện javascript được tạo ra bởi sự cộng tác giữa Facebook và Instagram Nó cho phép những nhà phát triển web tạo ra giao diện người dung nhanh chóng Phần Views của Reactjs thường được hiển thị bằng việc chủ yếu dung các component mà chứa các component cụ thể hoặc các thẻ HTML Một trong những đặc trưng duy nhất của Reactjs là việc render dữ liệu không những có thể thực hiện ở tầng server mà còn ở tầng client

Nó cũng sử dụng khái niệm là Virtual DOM (DOM ảo) Virtual DOM tạo ra bản cache cấu trúc dữ liệu của ứng dụng trên bộ nhớ Sau đó, ở mỗi vòng lặp, nó liệt kê những thay đổi và sau đó là cập nhật lại sự thay đổi trên DOM của trình duyệt một cách hiệu quả Điều này cho phép ta viết các đoạn code như thể toàn bộ trang được render lại

dù thực tế là Reactjs chỉ render những component hay subcomponent nào thực sự thay được

Trang 38

Hình 1.15: DOM ảo của reactjs

 Các đặc trưng của ReactJS:

- Component:

 Là một đoạn mã ngắn có ý nghĩa thể hiện một chức năng hay đối tượng nhất

định, có thể tái sử dụng

 Một ứng dụng React có thể sử dụng hàng chục, hoặc hàng trăm các component

liên kết và tương tác với nhau

 Phương thức quan trọng nhất là render(), phương thức này được trigger khi component đã sẵn sàng để được render lên trên trang Trong hàm này, sẽ trả về

mô tả cho việc bạn muốn React render cái gì lên trên trang Hàm render chính là

mô tả cụ thể của giao diện người dùng tại bất cứ thời điểm nào Vì thế nếu dữ liệu thay đổi, React sẽ quan tâm đến việc cập nhật lại giao diện với dữ liệu

tương ứng

- Props:

 Thông tin được truyền từ component này sang component khác được gọi là

props

 Props của một component có thể là một object, function, string, number … Nó

chứa thông tin về thành phần đó

Ngày đăng: 25/02/2024, 12:12

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

TÀI LIỆU LIÊN QUAN

w