ĐẠ 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 2KHOA 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 5Tê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 6KHOA 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 7Trong 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 81 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 91 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 10MỤ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 111.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 122.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 13DANH 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 14Hì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 15Hình 3.15: Màn hình trang quản lý người dùng 65
Trang 16DANH 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 17DANH 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 18MỞ ĐẦ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 20CHƯƠ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 21Nó 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 22cá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 23và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 24thự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 25Hì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 26dữ 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 27Tiế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 281.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 29Hì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 30Hì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 31Hì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 32hay 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 33Hì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 341.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 35Hì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 36Hì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 38Hì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 đó