ĐẠ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 THƯƠNG MẠI ĐIỆN TỬ TÍCH HỢP MACHINE LEARNING PHÂN TÍCH BÌNH LUẬN KHÁCH HÀNG Người hướng dẫn: TS. ĐẶNG HOÀI PHƯƠNG Sinh viên thực hiện: NGUYỄN VĂN THÀNH Số thẻ sinh viên: 102150132 Lớp : 15T2 Đà Nẵng, 12/2019 NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN ................................................................................................... ........................................ ................................................................................................... . ....................................... ................................................................................................... ........................................ .............................................................................. ............................................................. ................................................................................................... ........................................ ........................................................ ................................................................................... ................................................................................................... ........................................ .................................. ......................................................................................................... ................................................................................................... ........................................ ............ ............................................................................................................................. .. ................................................................................................... .............................. .......... ................................................................................................... ........................................ ................................................................................................... ........ ................................ ................................................................................................... ........................................ ..................................................................................... ...................................................... ................................................................................................... ........................................ ............................................................... ............................................................................ ................................................................................................... ........................................ ......................................... ................................................. Đà Nẵng, ngày 19 tháng 12 năm 2019 G i ảng viên hướng dẫn TS. Đặng Hoài Phương NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN ................................................................................................... ........................................ ................................................................................................... .................. ...................... ................................................................................................... ........................................ ............................................................................................... ............................................ ................................................................................................... ........................................ ......................................................................... .................................................................. ................................................................................................... ........................................ ................................................... ........................................................................................ ................................................................................................... ........................................ ............................. .............................................................................................................. ................................................................................................... ........................................ ....... ............................................................................................................................. ....... ................................................................................................... ......................... ............... ................................................................................................... ........................................ ................................................................................................... ... ..................................... ................................................................................................... ........................................ ................................................................................ ........................................................... ................................................................................................... ........................................ .......................................................... ................................................................................. ............................................................................................... Đà Nẵng, ngày … tháng … năm 2019 PHI Ế U DUY Ệ T Đ Ồ ÁN T Ố T NGHI Ệ P I. Ph ầ n dành cho Sinh viên 1. H ọ và tên: NGUY Ễ N VĂN THÀNH 2. Mã Sinh viên: 102150132 3. L ớ p: 15T2 4. Tên đ ề tài: Xây d ự ng website thương m ạ i đi ệ n t ử tích h ợ p machine learning phân tích bình lu ậ n khách hàng 5. S ố đi ệ n tho ạ i: 0964076258 6. E - mail: th anhgadut1808@gmail.com 7. H ọ và tên GVHD: TS. Đ ặ ng Hoài Phương 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ÓM TẮT Tên đề tài: Xây dựng website thương mại điện tử 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: Nguyễn Văn Thành Số thẻ SV: 102150132 Lớp: 15T2 Hiện nay nhu cầu mua bá n online của con người ngày càng cao. Việc nắm bắt nhu cầu của khách hàng về sản phẩm là cực kỳ quan trọng. Hệ thống phân tích bình luận khách hàng trong we bsite thương mại điện tử mang đ ến cho chủ shop biết được liệu sản phẩm của mình có làm hài lòng khá ch hàng hay không ? ĐẠ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: NGUYỄN VĂN THÀNH Số thẻ sinh viên: 102150132 Lớp: 15T2 Khoa: Công nghệ thông tin Ngành: Công nghệ thông tin 1. Tên đề tài đồ án: Xây dựng website thương mại điện tử 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: Không có. 4. Nội dung các phần thuyết minh và tính toán: Nội dung của thuyết minh gồm: Mở đầu: Phần mở đầu của luận văn, giới thiệu về nhu cầu thực tế và lý do thực hiện đề tài, đồng thời giới thiệu sơ lược về đề tài và mục tiêu phải đạt được. Chương 1 . Cơ sở lý thuyết: trình bày những lý thuyết học được và đã áp dụng vào hệ thống. Chương 2 . Phân tích và thiết kế: trình bày các hồ sơ phân tích và hồ sơ thiết kế trong xây dựng hệ thống và luồng hoạt đ ộng của hệ thống. Chương 3 . Triển khai và đánh giá kết quả: mô tả cách cài đặt, vận hành hệ thống và đánh giá kết quả đạt được. 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: T S. ĐẶNG HOÀI PHƯƠNG 7. Ngày giao nhiệm vụ đồ án: ……../……./ 2019 8. Ngày h oàn thành đồ án: 19 / 12 / 2019 Đà Nẵng, ngày tháng 12 năm 2019 Trưởng Bộ môn Mạng máy tính & truyền thông Người hướng dẫn T S. Phạm Minh Tuấn TS. Đặng Hoài Phương i LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành và sâu sắc đến các thầy cô trong Khoa Công nghệ thông tin, cũng như tất cả các thầy cô trong trường Đại học Bách khoa – Đại học Đà Nẵng đã dìu dắt, dạy dỗ và truyền đạt kiến thức, kinh nghiệm quý báu của mình trong suốt quá trình em học tập và nghiên cứu tại trường. Em xin bày tỏ tình cảm và lòng biết ơn chân thành tới thầy giáo TS. Đặng Hoài Phư ơng , người đã từng bước hướng dẫn, giúp đỡ tận tình và tạo điều kiện thuận lợi nhất cho em trong quá trình thực hiện đồ án tốt nghiệp của mình. Nhờ đó em đã hoàn thành đồ án đúng tiến độ và tích lũy cho mình nhiều kiến thức quý báu. Trong quá trình thực hi ện chắc hẳn sẽ không tránh khỏi những thiếu sót nhất định , em rất mong nhận được sự thông cảm, góp ý và tận tình chỉ bảo của quý Thầy Cô cũng như tất cả các bạn để đề tài được hoàn thiện hơn. Một lần nữa em xin chân thành cảm ơn ! Nguyễn Văn Thành ii CAM ĐOAN Em xin cam đoan: 1. 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 Đặng Hoài Phương 2. Các tham khảo dùng 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ố. Nếu có những sao chép không hợp lệ, vi phạm quy chế đào tạo , em xin chịu hoàn toàn trách nhiệm. Đà Nẵng, ngày 19 tháng 12 năm 201 9 Sinh viên thực hiện Nguyễn Văn Thành iii M Ụ C L Ụ C CAM ĐOAN ................................ ................................ ................................ ............... ii DANH SÁCH CÁC HÌNH VẼ ................................ ................................ .................... v GIỚI THIỆU ĐỀ TÀI ................................ ................................ ................................ .. 1 1. Lý do chọn đề tài ................................ ................................ ................................ . 1 2. Mục đích của đề tài ................................ ................................ ............................. 1 4. Phạm vi s ử dụng đề tài ................................ ................................ ........................ 2 5. Bố cục của đề tài ................................ ................................ ................................ . 2 CHƯƠNG I: CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ SỬ DỤNG ................................ . 3 1.1. Các công nghệ sử dụng ................................ ................................ ..................... 3 1.1.1. Tổng quan về #C, .NET CORE Framework và Entity Framework .............. 3 1.1.2. ReactJS ................................ ................................ ................................ ....... 6 1.1.3. Model View Controller ................................ ................................ ............... 8 1.2. TỔNG QUAN VỀ RESTful API ................................ ................................ .... 14 CHƯƠNG 2 : PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ................................ .......... 17 2.1. Machine Learning trong bài toán phân tích bình luận khách hàng ................... 17 2.2. Phân tích nghiệp vụ của hệ thống ................................ ................................ .... 18 2.2.1. Nghiệp vụ của quản trị viên ................................ ................................ ...... 18 2.2.2. Nghiệp vụ của quản lý ................................ ................................ .............. 18 2.3. Thiết kế hệ thống ................................ ................................ ......................... 18 2.3.1. Các chức năng của khách ................................ ................................ ......... 18 2. 3.2. Chức năng của quản lý shop ................................ ................................ ..... 19 2.3.3. Chức năng của người quản trị ................................ ................................ ... 19 2.4. Biểu đồ ca sử dụng ................................ ................................ ......................... 19 2.4.1. Biểu đồ ca sử dụng tổng quát của hệ thống ................................ ............... 19 2.4.2. Biểu đồ ca sử dụng của khách ................................ ................................ ... 21 2.4.3. Biểu đồ ca sử dụng của Thành viên ................................ .......................... 21 2.4.4. Biểu đồ ca sử dụng của Quản lý ................................ ............................... 22 2.4.5. Biểu đồ ca sử dụng của quản trị viên ................................ ........................ 24 2.5. Đặc tả ca sử dụng ................................ ................................ ........................... 25 2.5.1. Đặc tả ca sử dụng đăng ký ................................ ................................ ........ 25 2.5.2. Đặc tả ca sử dụng đăng nhập ................................ ................................ ..... 25 2.5.3. Đặc tả ca sử dụng Quản lý tài khoản ................................ ......................... 26 2.5.4. Đặc tả ca sử dụng Tạo sản phẩm ................................ ............................... 26 2.5.5. Đặc tả ca sử dụng Tạo cửa hàng ................................ ................................ 27 iv 2.6. Biểu đồ lớp ................................ ................................ ................................ ..... 27 2.7. B iểu đồ hoạt động ................................ ................................ .......................... 28 2.7.1. Biểu đồ hoạt động của thành viên ................................ ............................. 28 2.7.2. Biểu đồ hoạt động của quản lý ................................ ................................ .. 29 2.7.3. Biểu đồ hoạt động của quản trị viên ................................ .......................... 30 2.8. T hiết kế cơ sở dữ liệu ................................ ................................ ..................... 31 2.8.1. Mô hình thiết kế cơ sở dữ liệu ................................ ................................ ... 31 2.9. Kết chương ................................ ................................ ................................ ..... 31 CHƯƠNG 3 : TRIỂN KHAI VÀ ĐÁNH GIÁ ................................ ........................... 32 3.1. MÔI TRƯỜNG TRIỂN KHAI ................................ ................................ ........ 32 3.2. T RIỂN KHAI HỆ THỐNG ................................ ................................ ............. 32 3.3. Kết chương ................................ ................................ ................................ ..... 35 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................ ................................ .. 36 1. Kết quả đạt được ................................ ................................ ................................ 36 2. Hướng phát triển ................................ ................................ ................................ 36 TÀI LIỆU THAM KHẢO ................................ ................................ .......................... 37 v DANH SÁCH CÁC HÌNH V Ẽ VÀ B Ả NG Hình 1.1 Open - Source và Framework đa nền tảng .Net Core ................................ ...... 4 Hình 1.2 Các tầng Entity tác động vào ................................ ................................ ......... 5 Hình 1.3 LINQ và Entity Framework trong .Net Framework ................................ ...... 6 Hình 1.4 Sơ đồ vòng đời của component trong ReactJS ................................ ............... 8 Hình 1.5 Luồng chạy mô mình MVC ................................ ................................ ........... 9 Hình 1.6 Client Server hoạt động ................................ ................................ ............... 10 Hình 1.7 Phương pháp Bow ................................ ................................ ...................... 11 Hình 1.8 Dự đoán về nghĩa của từ ................................ ................................ ............. 12 Hình 1.9 So sánh 2 mô hình của word2vec ................................ ................................ 12 Hình 1.10 Mô hình Skip - gram ................................ ................................ ................... 13 Hình 1.11 Mô tả RESTful API ................................ ................................ ................... 14 Hình 1.12 Các phương thức HTTP của RESTful API ................................ ................ 15 Hình 1.13 Hoạt động của RESTful API ................................ ................................ ..... 16 Hình 2.1 Biểu đồ ca sử dụng tổng quát của hệ thống ................................ ................. 20 Hình 2.2 Biểu đồ ca sử dụng đăng ký tài khoản của khách ................................ ......... 21 Hình 2.3 Biểu đồ ca sử dụng quản lý tài khoản trong hệ t hống. ................................ .. 21 Hình 2.4: Biểu đồ ca sử dụng để mua sản phẩm và bình luận. ................................ .... 22 Hình 2.5 Biểu đồ ca sử dụng quản lý danh mục sản phẩm ................................ .......... 22 Hình 2.6: Biểu đồ ca sử dụng quản lý sản phẩm ................................ ......................... 23 Hình 2.7 Biểu đồ ca sử dụng quản lý bình luận, đánh giá khách hàng ........................ 23 Hình 2.8 Biểu đồ ca sử dụng quản lý người dùng tr ong hệ thống .............................. 24 Hình 2.9 Biểu đồ ca sử dụng quản lý các cửa hàng trong hệ thống ............................. 24 Hình 2.15 Biểu đồ lớp của hệ thống ................................ ................................ .......... 27 Hình 2.16 Biểu đồ hoạt động các chức năng của thành viên. ................................ ..... 28 Hình 2.17 Biểu đồ hoạt động các chức năng của quản lý ................................ ........... 29 Hình 2.18 Biểu đồ hoạt động các chức năng của qu ản trị viên ................................ ... 30 Hình 3.1 Màn hình đăng nhập ................................ ................................ .................... 32 Hình 3.2 Màn hình quản lý danh mục ................................ ................................ ........ 32 Hình 3.3 Màn hình quản lý shop ................................ ................................ ................ 33 vi Hình 3.4 Màn hình quản lý sản phẩm ................................ ................................ ......... 33 Hình 3.5 Màn hình quản lý user ................................ ................................ ................. 33 Hình 3.6 Màn hình public hiển thị danh sách cửa hàng ................................ .............. 34 Hình 3.7 Màn hình hiển thị trang chi tiết ................................ ................................ .... 34 Hình 3.7 Dữ liệu dùng để train mô hình ................................ ................................ ..... 34 Hình 3.8 Màn hình coment và cho ra kết quả trực tiếp ................................ ............... 35 Bảng 2.11 Đặc tả ca sử dụng đăng nhập ................................ ................................ .... 25 Bảng 2.12: Đặc tả ca sử dụng quản lý tài khoản ................................ ........................ 26 Bảng 2.13: Đặc tả ca sử dụng tạo sản phẩm ................................ .............................. 26 Bảng 2.14: Đặc tả ca sử dụng tạo cửa hàng ................................ ............................... 27 vii 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 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 HTML HyperText Markup Language Ngôn ngữ đánh dấu siêu văn bản SGML Standard Generalized Markup Language Một hệ thống tổ chức và gắn thẻ yếu tố của một tài liệu CSS Cascading Style Sheets Điều khiển cách hiện thị nội dung trang web W3C World Wide Web Consutirum Chuẩn được các nhà thiết kế website sử dụng làm thước đo khi thiết kế các website UI User Interface Giao diện người dùng DOM Document Object Model Mô hình đối tượng tài liệu SEO Search Engine Optimization Tối ưu hóa công cụ tìm kiếm 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 IIS Internet Information Services Dịch vụ dành cho máy chủ chạy Window nhằm cung cấp và phân tán các thông tin lên mạng. Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 1 GI Ớ I THI Ệ U Đ Ề TÀI 1. Lý do chọn đề tài Thu thập thông tin phản hồi của khách hàng là một cách tuyệt vời giúp cho các doanh nghiệp hiểu được điểm mạnh, điểm yếu t rong sản phẩm, dịch vụ của mình, đồng thời nhanh chóng nắm bắt được tâm ký và nhu cầu khách hàng để mang đến cho họ sản phẩm, dịch vụ hoàn hảo nhất. Ngày nay, với sự phát triển vượt bậc của khoa học và công nghệ, đặc biệt là sự bùng nổ của Internet với các phương tiện truyền thông xã hội, thương mại điện tử,... đã cho phép mọi người không chỉ chia sẻ thông tin trên đó mà còn thể hiện thái độ, quan điểm của mình đối với các sản phẩm, dịch vụ và các vấn đề xã hội khác. Vì vậy mà Internet đã trở lên vô cùng quan trọng và là nguồn cung cấp một lượng thông tin vô cùng lớn và quan trọng. Thông qua những dữ liệu được cung cấp qua Internet: Người dùng sử dụng nó để tìm kiếm, tham khảo trước khi đưa ra quyết định về sử dụng một sản phẩm hay dịch vụ nào đó. Các nhà cung cấp dịch vụ cũng có thể sử dụng những nguồn thông tin này để đánh giá về sản phẩm của mình, từ đó có thể đưa ra những cải tiến phù hợp hơn với người dùng, mang lại lợi nhuận cao hơn, tránh các rủi ro đáng tiếc xảy ra. Đặc biệt, khi 1 doanh nghiệp có 1 sản phẩm mới ra mắt thị trường thì việc lấy ý kiến phản hồi là vô cùng cần thiết. Các cơ quan chức năng có thể sử dụng những thông tin này để tìm hiểu xem quan điểm và thái độ của cộng đồng để có thể kịp thời sửa đổi, ban hành các chính sách cho hợp lý hơn. Vì những lí do trên, em đã q uyết định chọn đề tài “ Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng ” làm đề tài tốt nghiệp của mình. 2. Mục đích của đề tài “Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng” với mục đích đưa lại cho doanh nghiệp cái nhìn tổng quát hơn về sản phẩm của mình. Từ đó cho họ những quyết định chính xác để cải tiến chất lượng sản phẩm để phù hợp hơn với nhu cầu thị trường. 3. Nội dung của đề tài Những nội dung cần thực hiện để hoàn thành đề tài bao gồm : - Tìm hiểu bài toán phân tích bình luận khách hàng trong thực tế Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 2 - Phân tích và thiết kế hệ thống website thương mại điện tử tích hợp phân tích bình luận - Thiết kế cơ sở dữ liệu cho hệ thống - Tìm hiểu và nghiên cứu, áp dụng các ngôn ngữ lập trình và công nghệ như: C#, ReacJs, Python (Framework Django ), API để xây dựng hệ thống thương mại điện tử. - Quản lý CSDL bằng hệ quản trị CSDL SQL server 4. Phạm vi sử dụng đề tài Ứng dụng được sử dụng cho các website bán hàng, bán đồ ăn, nước uống có nhu cầu muốn biết, nắm bắt những nhu cầu thiết yếu của khách hàng. Từ đó đưa ra giải pháp thích hợp. 5. Bố cục của đề tài Đồ án được chia làm 3 chương chính: Với chương thứ nhất đi vào tìm hiểu và nghiên cứu cơ sở lý thuyết để thực hiện áp dụng vào đề tài. Tìm hiều công cụ và ngôn ngữ lập trình. Trong chương thứ hai đi vào quá trình khảo sát hiện trạng thực tế, phân tích và thiết kế hệ thống thông tin, xác định các tác nhân chính của hệ thống, thiết kế và xây dựng cơ sở dữ liệu. Tiếp nối chương thứ hai, chương thứ ba sẽ đi vào quá trình triển khai hệ thống, thực hiện xây dựng mã nguồn chương trình và chạy thử nghiệm. Đề tài được đánh giá lại qua phần kết luận, đưa ra các đánh giá kết quả về những vấn đề đã gải quyết , những vấn đề chưa giải quyết được và các giải pháp cho để cải tiến, khắc phục những vấn đề đó. Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 3 CHƯƠNG I: CƠ S Ở LÝ THUY Ế T VÀ CÔNG C Ụ S Ử D Ụ NG 1.1. Các công nghệ sử dụng 1.1.1. Tổng quan về #C , .NET CORE Framework và Entity Framework C# C# (hay C sharp) [1] là một ngôn ngữ lập trình đơn giản, được phát triển bởi đội ngũ kỹ sư của Microsoft vào năm 2000, trong đó người dẫn đầu là Anders Hejlsberg và Scott Wiltamuth. C# là ngôn ngữ lập trình hiện đại, hướng đối tượng và nó được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java. C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm Executable Code và Runtime Environment, cho phép chúng ta sử dụng các ngôn ngữ high - level đa dạng trên các nền tảng và cấu trúc máy tính khác nhau. C# với sự hỗ trợ mạnh mẽ của .NET Framework giúp cho việc tạo một ứng dụng Windows Forms hay WPF (Windows Presentation Foundation), . . . trở nên rất dễ dàng. Ngoài những đặc điểm trên thì còn một số ưu điểm nổi bật của C#: C# có cấu trúc khá gần gũi với các ngôn ngữ lập trình truyền thống, nên cũng khá dể dàng tiếp cận và học nhanh với C#. C# có thể biên dịch trên nhiều nền tảng máy tính khác nhau. C# được xây dựng trên nền tảng của C++ và Java nên nó được thừa hưởng những ưu điểm của ngôn ngữ đó. C# là một p hần của .NET Framework nên được sự chống lưng khá lớn đến từ bộ phận này. C# có IDE Visual Studio cùng nhiều plug - in vô cùng mạnh mẽ. .NET CORE FRAMEWORK ASP.NET Core [3] là một open - source mới và framework đa nền tảng (cross - platform) cho việc xây dựng những ứng dụng hiện tại dựa trên kết nối đám mây, giống như web apps, IoT và backend cho mobile. Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 4 Ứng dụng ASP.NET Core có thể chạy trên .NET Core hoặc trên phiên bản đầy đủ của .NET Framework. Nó được thiết kế để cung cấp và tối ưu development framework ch o những dụng cái mà được triển khai trên đám mây (clound) hoặc chạy on - promise. Nó bao gồm các thành phần theo hướng module nhằm tối thiểu tài nguyên và chi phí phát triển, như vậy bạn giữ lại được sự mềm giẻo trong việc xây dựng giải pháp của bạn. Bạn có thể phát triển và chạy những ứng dụng ASP.NET Core đa nền tảng trên Windows, Mac và Linux. Đồng thời nó đã trở thành một mã nguồn mở. Đây là một thay đổi rất lớn và theo mình là quan trọng nhất của ASP.NET Core. Điều mà trước đây khó có một lập trình viên nào có thể nghĩ đến. Có lẽ đó cũng là một xu thế mà các ngôn ngữ lập trình hiện nay đang hướng tới. Với ASP.NET Core bạn đạt được những nền tảng cải tiến dưới đây: Hợp nhất việc xây dựng web UI và web APIs Tích hợp những client - side frameworks hiện đại và những luồng phát triển Hệ thống cấu hình dựa trên môi trường đám mây thật sự Dependency injection được xây dựng sẵn HTTP request được tối ưu nhẹ hơn Có thể host trên IIS hoặc self - host trong process của riêng bạn Được xây dựng trên .NET Core, hỗ trợ thực s ự app versioning Chuyển các thực thể, thành phần, module như những NuGet packages Những công cụ mới để đơn giản hóa quá trình phát triển web hiện đại Xây dựng và chạy đa nền tảng(Windows, Mac và Linux) Mã nguồn mở và tập trung vào cộng đồng. Hình 1.1 Open - Source và Framework đa n ề n t ả ng .Net Core Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 5 ENTITY FRAMEWORK Entity Framework ( EF ) [4] là một framework ánh xạ quan hệ đối tượng (ORM) dành cho ADO.NET, là 1 phần của .NET Framework. EF cho phép các nhà phát triển Web tương tác với dữ liệu quan hệ theo phương pháp hướng đối tượng đặc trưng. Lợi ích lớn nhất của EF là giúp lập trình viên giảm thiểu việc lập trình mã nguồn cần thiết để truy cập và tương tác với cơ sở dữ liệu. EF được Microsoft hỗ trợ phát triển lâu dài và bền vững, vì vậy EF là 1 framework mạnh nhất hiện nay để phát triển ứng dụng Web với sự hỗ trợ đông đảo của các nhà phát triển Web. Hình 1.2 Các t ầ ng Entity tác đ ộ ng vào LINQ Một truy vấn là một diễn tả để lấy dữ liệu từ 1 nguồn dữ liệu nào đó. Các truy vấn thường được dùng trong các ngôn ngữ truy vấn đặc trưng. Các ngôn ngữ truy vấn khác nhau được phát triển khác nhau để áp dụng cho các nguồn dữ liệu khác nhau, ví dụ SQL dùng cho cơ sở dữ liệu quan hệ và XQuery dùng cho XML . Vì vậy, các nhà phát triển phải học các ngôn ngữ truy vấn cho mỗi dạng nguồn dữ liệu hoặc định dạng dữ liệu. Do đó, Microsoft mới nghĩ ra việc xây dựng 1 ngôn ngữ truy vấn nào đó mà có thể dùng cho tất cả nguồn dữ liệu, tất cả các định dạng dữ liệu khác nhau. Ngôn ngữ truy vấn đó là LINQ . Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 6 LINQ [5] ( Language Integrated Query , tạm dịch là ngôn ngữ truy vấn tích hợp đưa ra 1 mô hình bền vững để hoạt động với các dạng nguồn dữ liệu và định dạng dữ liệu khác nhau. Trong LINQ, bạn phải làm quen với chuyện làm v iệc với các đối tượng (objects). LINQ cho phép dùng các đoạn code đơn giản để truy vấn và chuyển đổi dữ liệu trong các tài liệu XML, cơ sở dữ liệu SQL, tập dữ liệu ADO.NET, các tập hợp .NET, và bất kỳ định dạng nào mà LINQ provider hỗ trợ. Ba thành phần của 1 hoạt động truy vấn : Tất cả các hoạt động truy vấn LINQ đều bao gồm 3 tác vụ: Kết nối với nguồn dữ liệu (data source) Tạo truy vấn Thực thi truy vấn Hình 1.3 LINQ và Entity Framework trong .Net Framework 1.1.2. ReactJS React (Hay ReactJS, React.js) [ 6 ] là một thư viện Javascript mã nguồn mở để xây dựng các thành phần giao diện có thể tái sử dụng. Nó được tạo ra bởi Jordan Walke , một kỹ sư phần mềm tại Facebook. Ngườ i bị ảnh hưởng bởi XHP (Một nền tảng thành phần HTML cho PHP). React lần đầu tiên được triển khai cho ứng dụng Newsfeed của Facebook năm 2011, sau đó được triển khai cho Instagram.com năm 2012. Nó được mở mã nguồn (open - sourced) tại JSConf US tháng 5 năm 2 013. Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 7 Đặc tính của ReactJS: Tư tưởng của ReactJS là xây dựng lên các components có tính tái sử dụng, dễ dàng cho việc chia nhỏ vấn đề, testing. Nó giúp chúng ta dễ dàng quản lý, mở rộng hệ thống, điều này nếu là Angular JS thì đòi hỏi cấu trúc, cách viết code phải thật tối ưu. ReactJS luôn giữ các components ở trạng thái stateless (nhiều nhất có thể) khiến ta dễ dàng quản lí bởi nó chẳng khác gì một trang static HTML. Bản thân các components này không có trạng thái (state) nó nhận đầu vào từ bên ngoài và c hỉ hiển thị ra dựa vào các đầu vào đó, điều này giải thích tại sao nó mang tính tái sử dụng và dễ dàng cho việc test. 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. Ta có thể tạo ra một component bằng cách extends từ Component như sau: Phương thức quan trọng nhất là render(), phương thức này được trigger khi comp onent đã 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 đ ó. State: Một component trong React có 2 cách để lấy thông tin props và state. Không như props, state của 1 component không được truyền từ bên ngoài vào. Một component sẽ tự quyết định state của chính nó. Để tạo ra state cho component, ta sẽ phải khai báo nó trong hàm constructor. This.state ở đây là một đối tượng. Để truy cập đến các state ta sử dụng cú pháp: this.state.name_of_property. Và cách phổ biến để thay đổi state của một component là dùng hàm setState(). LifeCycle: Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 8 Hình 1.4 Sơ đ ồ vòng đ ờ i c ủ a component trong ReactJS Một thành phần đặc trưng không kém Props và State của React đó là LifeCycle. LifeCycle là những phương thức được viết sẵn truy cập đến từng thời điểm trong một vòng đời của component, từ đó chúng ta có thể triển khai ý tưởng một cách dễ dàng mà linh động. Contructor(props): Hàm này là hàm khởi tạo, là hàm chạy ngay sau khi component được tạo ra, đầu vào của hàm này là props (tức là thuộc tính của component được dùng để truyền dữ liệu từ bên ngoài vào). Trong hàm n ày chúng ta cũng có thể khởi tạo state cho component. ComponentWillMount: Trước khi render thì sẽ gọi đến hàm này. Ở đây chúng ta có thể đăng kí các biến toàn cục và có thể dựa vào props tính toán và setState nếu có. Render : Là hàm bắt buộc, vì đây là đầu ra của component. Nó chịu trách nhiệm trả về một đối tượng JSX những gì chúng ta muốn hiển thị ra bên ngoài. ComponentDidMount: Là hàm được gọi ngay sau khi giao diện được render xong, có nghĩa là khi giao diện hiện lên sẽ gọi hàm này. Trong hàm này chúng ta có thể dùng để lấy dữ liệu từ api, server… và setState dữ liệu ra. 1.1.3. Model View Controller MVC [7] là viết tắt của Model – View – Controller. Là một kiến trúc phần mềm hay mô hình thiết kế được sử dụng trong kỹ thuật phần mềm. Nói cho dễ hiểu, nó là mô hình phân bố source code thành 3 phần, mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác. Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 9 - Controller Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những phương thức xử lý chúng… Chẳng hạn thành phần này sẽ nhận request từ url và form để thao tác trực tiếp với Model. Model Đây là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý… View Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất cả các đối tượng GUI như textbox, images… Hiểu một cách đơn giản, nó là tập hợp các form hoặc các file HTML. Hình1.5 Lu ồ ng ch ạ y mô mình MVC 1.1.4. Client Server Mô hình client server [8] hay còn được gọi là mô hình khách – chủ Trong mô hình client server thì máy khách là các máy tính, các thiết bị điện tử như máy in, máy fax,….các máy khách client gửi yêu cầu đến máy chủ server. máy chủ server tiếp nhận yêu cầu, xử lý các yêu cầu đó và trả về kết quả Ưu đi ể m mô hình client server là gì? Ưu điểm của mô hình client server là với mô hình client server thì mọi thứ dường như đều nằm trên bàn của người sử dụng, nó có thể truy cập dữ liệu từ xa (bao gồm các công việc như gửi và nhận file, tìm kiếm thông tin,…) với nhiều dịch vụ đa dạng mà mô hình cũ không thể làm được. Mô hình client/server cung cấp một nền tảng lý tưởng Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 10 cho phép tích hợp các kỹ thuật hiện đại như mô hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý (GIS)… Như ợ c đi ể m mô hình client server là gì? Một trong những vấn đề nảy sinh trong mô hình này đó là tính an toàn và bảo mật thông tin trên mạng. Do phải trao đổi dữ liệu giữa 2 máy ở 2 khu vực khác nhau cho nên dễ dàng xảy ra hiện tượng thông tin truyền trên mạng bị lộ. Hình 1.6 Client Server ho ạ t đ ộ ng 1.2. Bài toán phân loại bình luận Mô tả chung Nếu bạn đang sở hữu một trang thương mại điện tử hay một Blog,... thì một câu hỏi mà bạn chắc chắn đã từng nghĩ tới đó là thái độ, đánh giá và quan điểm của người dùng với sản phẩm bạn cung cấp để có thể đưa ra những chỉnh sửa, cải tiến cho hệ thống thích hợp hơn với người dùng. Tuy nhiên, để trả lời cho câu hỏi đó, cũng như giải quyết tất cả những vấn đề trên không phải là một chuyện đơn giản. Bạn có thể đi hỏi từng người sử dụng một, sử dụng phiếu đánh giá,... Nhưng thực tế cho thấy rằng những phươn g pháp này là không khả thi hoặc không hiệu quả cho lắm. Các công ty nghiên cứu thị trường hiện này vẫn thường sử dụng các phương pháp truyền thống này tuy nhiên độ tin cậy không cao(do nhân viên tự làm giả dữ liệu) và độ tính cập nhật khá thấp(10 - 20 ngày cho thu thập thông tin, 10 - 20 ngày cho phân tích dữ liệu). Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 11 Các phương pháp hiện tại Phương pháp 1 : 1.2.1. Bag of words ( Bow ) [ 9 ] : Trong các ứng dụng về xử lý ngôn ngữ tự nhiên, học máy,... các thuật toán không thể nhận được đầu vào là chữ với dạng biểu diễn t hông thường. Để máy tính có thể hiểu được, ta cần chuyển các từ trong ngôn ngữ tự nhiên về dạng mà các thuật toán có thể hiểu được(dạng số). 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. Ví dụ: G iả sử bộ từ vựng của chúng ta chỉ có 5 từ: Vua, Hoàng hậu, Phụ nữ, Đàn ông và Trẻ con. Ta sẽ mã hóa cho từ Hoàng Hậu như sau: Hình 1.7 Phương pháp Bow Tuy nhiên, phương pháp này lại để lộ ra những điểm hạn chế vô cùng lớn. Thứ nhất là độ dài của vector là quá lớn(vietwiki: Corpus Size(74M), Vocabulary size(10K)) Đặc biệt phương pháp này không xác định được sự tương quan ý nghĩa giữa các từ do tích vô hướng của 2 từ bất kì đều bằng 0 dẫn đến độ tương đồng cosin giữa 2 từ bất kì luôn bằng 0. Phương pháp 2 : 1.2.2. Word2vec [ 10 ] : Word2vec là một mạng neural 2 lớp với duy nhất 1 tầng ẩn, lấy đầu vào là một corpus lớn và sinh ra không gian vector(với số chiều khoảng vài trăm), với mỗi từ duy nhất trong corpus được gắn với một vector tương ứng trong không gian. Các word vectors được xác định trong không gian vector sao cho những từ có chung ngữ cảnh trong corpus được đặt gần nhau trong không gian. Dự đoán chính xác cao về ý nghĩa của một từ dựa trên những lần xuất hiện trước đây. Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 12 Hình 1.8 D ự đoán v ề nghĩa c ủ a t ừ Có 2 cách xây dựng word2vec: Sử dụng ngữ cảnh để dự đoán mục tiêu(CBOW). Sử dụng một từ để dự đoán ngữ cảnh mục tiêu(skip - gram)(cho kết quả tốt hơn với dữ liệu lớn). Hình 1.9 So sánh 2 mô hình c ủ a word2vec Trong bài toán này sử dụng Skip - gram Cách thức : Cho 1 từ cụ thể giữa câu (input word) nhìn vào những từ ở gần và ngẫu nhiên. Mạng neural sẽ cho chúng ta biết xác suất của mỗi từ vựng về việc trở thành từ gần đó mà chúng ta chọn. Dưới đây là mô hình kiến trúc của mạng Skip - gra m và cách xây dựng training data Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 13 Hình 1.10 Mô hình Skip - gram Model details : Xây dựng bộ từ vựng Biểu diễn mỗi từ thành các one - hot - vector Đầu ra là một vector duy nhất, có kích thước bằng kích thước của bộ từ vựng, thể hiện xác suất của mỗi từ được là lân cận của từ đầu vào. Không có hàm kích hoạt trên tầng ẩn Hàm kích hoạt trên tầng output là softmax Trong quá trình training, input là 1 one - hotvector, ouput cũng là 1 one - hot - vector Trong quá trình đánh giá sau khi training, đầu ra phải là 1 phân bố xác suất. Word2vec cải tiến : Có 3 cải tiến cơ bản cho mô hình word2vec truyền thống: Xử lý các cặp từ thông dụng hoặc cụm từ như là một từ đơn Loại bỏ các từ thường xuyên lặp lại để giảm số lượng các ví dụ huấn luyện Sửa đổi mục tiêu tối ưu hóa bằng một kỹ thuật gọi là “Negative Sampling”. Sau khi có được pretrained word embedding, ta tiến hành comment2matrix. Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 14 Mô hình CNN sử dụng các bộ lọc xoắn để nắm bắt mối quan hệ địa phương. Nhờ khả năng nắm bắt các mối quan hệ địa phương, CNN có khả năng lọc được các n gữ cảnh gần giữa các từ trong câu, có thể áp dụng rất tốt trong bài toán này. Giả sử ta đã sử dụng word embedding như đã trình bày ở trên để biến mỗi từ trong một đoạn văn bản thành các vector có số chiều là n . Từ đó ta có thể coi môt câu văn(đoạn văn) như một ma trận mxn , trong đó m là kích thước hay số từ có trong văn bản đó. Ma trận này về mặt biểu diễn trông cũng có vẻ tương đồng với ma trận biểu diễn cho một bức ảnh đa mức xám(1 channel) với kích thước mxn . 1.2. TỔNG QUAN VỀ RESTful API Định nghĩa : RESTful API [ 11 ] 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. Hình 1.11 Mô t ả RESTful API API ( A pplication P rogramming I nterface) là một tập các quy tắc và cơ chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác . API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSON hay XML. REST ( RE presentational S tate T ransfer) 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, PUT, DELETE, vv đến một URL để xử lý dữ liệu. Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 15 RESTf ul 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 q uan 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 . Hình 1.12 Các phương th ứ c HTTP c ủ a RESTful API Hoạt động 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. Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 16 Hình 1.13 Ho ạ t đ ộ ng c ủ a RESTful API Sau quá trình gọi API việc trả về những mã trạng thái cụ thể khi nhận và phiên dịch một HTTP Request, Server sẽ gửi tín hiệu phản hồi là một HTTP Response là một trong số các loại trạng thái sau: 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. 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 Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 17 CHƯƠNG 2 : PHÂN TÍCH VÀ THI Ế T K Ế H Ệ TH Ố NG Hệ thống phân tích bình luận khách hàng áp dụng trong website thương mại điện tử gồm có 2 phân quyền : Quản lý và quản trị viên. Trong đó quản trị viên có thể quản lý tất cả các cửa hàng , các thành viên,… quản lý có thể quản lý được cửa hàng , danh mục sản phẩm và tài khoản của mình. 2.1. Machine Learning trong bài toán phân tích bình lu ậ n khách hàng Các công ty nghiên cứu thị trường hiện này vẫn thường sử dụng các phương pháp truyền thống này tuy nhiên độ tin cậy không cao(do nhân viên tự làm giả dữ liệu) và độ tính cập nhật khá thấp(10 - 20 ngày cho thu thập thông tin, 10 - 20 ngày cho phân tích dữ liệu). Để trả lời câu hỏi trên một cách hiệu quả và nhanh chóng thì bạn phải tận dụng phân tích được chính những thông tin mà người dùng để lại qua internet như các bình luận, đánh giá, bài chia sẻ,... Bước 1 : Thu thập và phân tích đặc điểm dữ liệu Để tận dụng lượng dữ liệu có nhãn sẵn dữ liệu sẽ kèm Comment và điểm đánh giá : Score < 4 hoặc NaN : Negative ( tiêu cực) 4 < Score < 7 : Neutral(trung tính) Score > 7 : Positive(tích cực) Quy định độ dài ngắn của 1 Comment là min = 1, max < 3800 từ / 1 comment. Nếu không tiêu chuẩn hóa sẽ ảnh hưởng đến tính đúng đắn của hệ thống Bước 2 : Tiền xử lý dữ li ệu Sử dụng Deeplearning để đơn giản hóa mô hình bài toán Chuẩn hóa về chữ thường Thay thế url trong dữ liệu bởi nhãn link_spam Tách từ Loại bỏ dấu câu và các ký tự đặc biệt Xử lý trong trường hợp người dùng láy âm (vd : Ngooooon…. !!!) Chuẩn hóa các ký tự viết tắt ( vd : ko - > không, …) Loại bỏ số và các từ chỉ có 1 ký tự Bước 3 : Vector hóa dữ liệu Mô hình CNN sử dụng các bộ lọc xoắn để nắm bắt mối quan hệ địa phương. Nhờ khả năng nắm bắt các mối quan hệ địa phương, CNN có khả năng lọc được các ngữ cảnh g ần giữa các từ trong câu, có thể áp dụng rất tốt trong bài toán này. Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 18 Vậy, dữ liệu text và dữ liệu ảnh có điểm gì tương đồng mà ta có thể sử dụng một mô hình xử lý ảnh cho dữ liệu text? Có cách nào để chúng ta nhìn nhận một đoạn text như một bức ảnh không? Bước 4. Xây dựng và huấn luyện mô hình Tiến hành cài đặt một mô hình đơn giản bằng Keras( Đây là mô hình cực kì đơn giản, chỉ nhằm mục đích giới thiệu ). Trước tiên, tiến hành số hóa tất cả dữ liệu đầu vào, các câu comment được chuyển về ma trận số, các labe l được chuyển về dạng one - hot. 2. 2 . Phân tích nghi ệ p v ụ c ủ a h ệ th ố ng 2.2 .1. Nghi ệ p v ụ c ủ a qu ả n tr ị viên - Quản lý các cửa hàng có trong hệ thống : Thêm, sửa, xóa bất kỳ cửa hàng nào trong hệ thống. - Quản lý các tài khoản có trong hệ thống : Thêm, sửa, xóa bất kỳ tài khoản nào trong hệ thống. - Phân quyền cho hệ thống : Có thể cấp quyền cho tài khoản. 2.2 .2. Nghi ệ p v ụ c ủ a qu ả n lý - Quản lý sản phẩm trong cửa hàng : Thêm, sửa, xóa 1 sản phẩm bất kỳ trong cửa hàng mình quản lý. - Quản lý danh mục sản phẩm : Thêm, sửa, xóa 1 danh mục bất kỳ trong cửa hàng mình quản lý. - Quản lý bình luận, đánh giá của khách hàng về cửa hàng của mình : Có thể xem được những đánh giá tích cực hay tiêu cực của khách hàng về cửa hàng của mình. 2.3 . Thi ế t k ế h ệ th ố ng S ơ đồ phân rã chức năng ‘Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng’ cung cấp cho các cửa hàng 1 công cụ hữu ích nhằm phân tích phản hồi của khách hàng về mặt hàng họ đang bán, nhằm cải thiện chất lượng sản phẩm đưa điến sự hài lòng cho khách hàng, từ đó tăng lợi nhuận cho người bán. Hệ thống có 4 loại người dùng : Người quản trị, người quản lý shop và khách. Các chức năng của từng nhóm người dùng sẽ được mô tả dưới đây : 2.3 .1. Các chức năng của khách - Chức năng đăng ký Chức năng này cho phép người dùng đăng ký tài khoản vào hệ thống để sử dụng. - Chức năng xem danh sách đồ uống, thức ăn Chức năng này cho phép khách hàng sau khi đăng nhập tài khoản thì có thể xem và mua hàng. Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 19 - Chức năng bình luận trong cửa hàng Khi đến thăm 1 cửa hàng bất kỳ có trong hệ thống, khách hàng có thể đánh giá chất lượng, không gian, giá thành… ở phần bình luận có ở từng cửa hàng. 2.3 .2. Chức năng của quản lý shop - Chức năng quản lý các sản phẩm Quản lý có thể thêm , sửa, xóa sản phẩm bất kỳ trong shop của họ - Chức năng quản lý danh mục của sản phẩm Quản lý có thể thêm, sửa, xóa danh mục sản phẩm. - Xem tất cả bình luận, đánh giá khách hàng về cửa hàng Quản lý có thể xem những bình luận của khách hàng về cửa hàng của mình 2.3 .3. Chức năng của người quản trị - Quản lý tất cả User của quản lý shop và khách Có thể xem, sửa, xóa tài khoản của những User còn lại. - Quản lý các sản phẩm, bình luận, danh mục Có thể xem, sửa , xóa được sản phẩm, bình luận và danh mục 2.4 . Bi ể u đ ồ ca s ử d ụ ng 2.4 .1 . Bi ể u đ ồ ca s ử d ụ ng t ổ ng quát c ủ a h ệ th ố ng Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 20 Hình 2.1 Bi ể u đ ồ ca s ử d ụ ng t ổ ng quát c ủ a h ệ th ố ng Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 21 2.4 .2 . Bi ể u đ ồ ca s ử d ụ ng c ủ a khách Hình 2.2 Bi ể u đ ồ ca s ử d ụ ng đăng ký tài kho ả n c ủ a khách 2.4 .3 . Bi ể u đ ồ ca s ử d ụ ng c ủ a Thành viên Hình 2.3 Bi ể u đ ồ ca s ử d ụ ng qu ả n lý tài kho ả n trong h ệ th ố ng. Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng SVTH : Nguy ễ n Văn Thành GVHD : TS. Đ ặ ng Hoài Phương 22 Hình 2.4: Bi ể u đ ồ ca s ử d ụ ng đ ể mua s ả n ph ẩ m và bình lu ậ n. 2.4 .4 . Bi ể u đ ồ ca s ử d ụ ng c ủ a Qu ả n l
Mục đích của đề tài
“Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng” với mục đích đưa lại cho doanh nghiệp cái nhìn tổng quát hơn về sản phẩm của mình Từ đó cho họ những quyết định chính xác để cải tiến chất lượng sản phẩm để phù hợp hơn với nhu cầu thị trường
3 Nội dung của đề tài
Những nội dung cần thực hiện để hoàn thành đề tài bao gồm :
- Tìm hiểu bài toán phân tích bình luận khách hàng trong thực tế
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 2
- Phân tích và thiết kế hệ thống website thương mại điện tử tích hợp phân tích bình luận
- Thiết kế cơ sở dữ liệu cho hệ thống
- Tìm hiểu và nghiên cứu, áp dụng các ngôn ngữ lập trình và công nghệ như: C#, ReacJs, Python (Framework Django), API để xây dựng hệ thống thương mại điện tử
- Quản lý CSDL bằng hệ quản trị CSDL SQL server
Phạm vi sử dụng đề tài
Ứng dụng được sử dụng cho các website bán hàng, bán đồ ăn, nước uống có nhu cầu muốn biết, nắm bắt những nhu cầu thiết yếu của khách hàng Từ đó đưa ra giải pháp thích hợp.
Bố cục của đề tài
Đồ án được chia làm 3 chương chính:
Với chương thứ nhất đi vào tìm hiểu và nghiên cứu cơ sở lý thuyết để thực hiện áp dụng vào đề tài Tìm hiều công cụ và ngôn ngữ lập trình
Trong chương thứ hai đi vào quá trình khảo sát hiện trạng thực tế, phân tích và thiết kế hệ thống thông tin, xác định các tác nhân chính của hệ thống, thiết kế và xây dựng cơ sở dữ liệu
Tiếp nối chương thứ hai, chương thứ ba sẽ đi vào quá trình triển khai hệ thống, thực hiện xây dựng mã nguồn chương trình và chạy thử nghiệm Đề tài được đánh giá lại qua phần kết luận, đưa ra các đánh giá kết quả về những vấn đề đã gải quyết, những vấn đề chưa giải quyết được và các giải pháp cho để cải tiến, khắc phục những vấn đề đó
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 3
CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ SỬ DỤNG
Các công nghệ sử dụng
1.1.1 Tổng quan về #C, NET CORE Framework và Entity Framework
C# (hay C sharp) [1] là một ngôn ngữ lập trình đơn giản, được phát triển bởi đội ngũ kỹ sư của Microsoft vào năm 2000, trong đó người dẫn đầu là Anders Hejlsberg và Scott Wiltamuth
C# là ngôn ngữ lập trình hiện đại, hướng đối tượng và nó được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java
C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm
Executable Code và Runtime Environment, cho phép chúng ta sử dụng các ngôn ngữ high-level đa dạng trên các nền tảng và cấu trúc máy tính khác nhau
C# với sự hỗ trợ mạnh mẽ của NET Framework giúp cho việc tạo một ứng dụng Windows Forms hay WPF (Windows Presentation Foundation), trở nên rất dễ dàng
Ngoài những đặc điểm trên thì còn một số ưu điểm nổi bật của C#:
C# có cấu trúc khá gần gũi với các ngôn ngữ lập trình truyền thống, nên cũng khá dể dàng tiếp cận và học nhanh với C#
C# có thể biên dịch trên nhiều nền tảng máy tính khác nhau
C# được xây dựng trên nền tảng của C++ và Java nên nó được thừa hưởng những ưu điểm của ngôn ngữ đó
C# là một phần của NET Framework nên được sự chống lưng khá lớn đến từ bộ phận này
C# có IDE Visual Studio cùng nhiều plug-in vô cùng mạnh mẽ
ASP.NET Core [3] là một open-source mới và framework đa nền tảng (cross- platform) cho việc xây dựng những ứng dụng hiện tại dựa trên kết nối đám mây, giống như web apps, IoT và backend cho mobile
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 4 Ứng dụng ASP.NET Core có thể chạy trên NET Core hoặc trên phiên bản đầy đủ của NET Framework Nó được thiết kế để cung cấp và tối ưu development framework cho những dụng cái mà được triển khai trên đám mây (clound) hoặc chạy on-promise
Nó bao gồm các thành phần theo hướng module nhằm tối thiểu tài nguyên và chi phí phát triển, như vậy bạn giữ lại được sự mềm giẻo trong việc xây dựng giải pháp của bạn Bạn có thể phát triển và chạy những ứng dụng ASP.NET Core đa nền tảng trên Windows, Mac và Linux Đồng thời nó đã trở thành một mã nguồn mở Đây là một thay đổi rất lớn và theo mình là quan trọng nhất của ASP.NET Core Điều mà trước đây khó có một lập trình viên nào có thể nghĩ đến Có lẽ đó cũng là một xu thế mà các ngôn ngữ lập trình hiện nay đang hướng tới
Với ASP.NET Core bạn đạt được những nền tảng cải tiến dưới đây:
Hợp nhất việc xây dựng web UI và web APIs
Tích hợp những client-side frameworks hiện đại và những luồng phát triển
Hệ thống cấu hình dựa trên môi trường đám mây thật sự
Dependency injection được xây dựng sẵn
HTTP request được tối ưu nhẹ hơn
Có thể host trên IIS hoặc self-host trong process của riêng bạn
Được xây dựng trên NET Core, hỗ trợ thực sự app versioning
Chuyển các thực thể, thành phần, module như những NuGet packages
Những công cụ mới để đơn giản hóa quá trình phát triển web hiện đại
Xây dựng và chạy đa nền tảng(Windows, Mac và Linux)
Mã nguồn mở và tập trung vào cộng đồng
Hình 1.1 Open-Source và Framework đa nền tảng Net Core
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 5
Entity Framework (EF) [4] là một framework ánh xạ quan hệ đối tượng (ORM) dành cho ADO.NET, là 1 phần của NET Framework EF cho phép các nhà phát triển Web tương tác với dữ liệu quan hệ theo phương pháp hướng đối tượng đặc trưng Lợi ích lớn nhất của EF là giúp lập trình viên giảm thiểu việc lập trình mã nguồn cần thiết để truy cập và tương tác với cơ sở dữ liệu EF được Microsoft hỗ trợ phát triển lâu dài và bền vững, vì vậy EF là 1 framework mạnh nhất hiện nay để phát triển ứng dụng Web với sự hỗ trợ đông đảo của các nhà phát triển Web
Hình 1.2 Các tầng Entity tác động vào
Một truy vấn là một diễn tả để lấy dữ liệu từ 1 nguồn dữ liệu nào đó Các truy vấn thường được dùng trong các ngôn ngữ truy vấn đặc trưng Các ngôn ngữ truy vấn khác nhau được phát triển khác nhau để áp dụng cho các nguồn dữ liệu khác nhau, ví dụ SQL dùng cho cơ sở dữ liệu quan hệ và XQuery dùng cho XML Vì vậy, các nhà phát triển phải học các ngôn ngữ truy vấn cho mỗi dạng nguồn dữ liệu hoặc định dạng dữ liệu Do đó, Microsoft mới nghĩ ra việc xây dựng 1 ngôn ngữ truy vấn nào đó mà có thể dùng cho tất cả nguồn dữ liệu, tất cả các định dạng dữ liệu khác nhau Ngôn ngữ truy vấn đó là LINQ
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 6
LINQ [5] (Language Integrated Query, tạm dịch là ngôn ngữ truy vấn tích hợp đưa ra 1 mô hình bền vững để hoạt động với các dạng nguồn dữ liệu và định dạng dữ liệu khác nhau Trong LINQ, bạn phải làm quen với chuyện làm việc với các đối tượng (objects) LINQ cho phép dùng các đoạn code đơn giản để truy vấn và chuyển đổi dữ liệu trong các tài liệu XML, cơ sở dữ liệu SQL, tập dữ liệu ADO.NET, các tập hợp NET, và bất kỳ định dạng nào mà LINQ provider hỗ trợ
Ba thành phần của 1 hoạt động truy vấn :
Tất cả các hoạt động truy vấn LINQ đều bao gồm 3 tác vụ:
Kết nối với nguồn dữ liệu (data source)
Hình 1.3 LINQ và Entity Framework trong Net Framework
React (Hay ReactJS, React.js) [6] là một thư viện Javascript mã nguồn mở để xây dựng các thành phần giao diện có thể tái sử dụng Nó được tạo ra bởi Jordan Walke, một kỹ sư phần mềm tại Facebook Người bị ảnh hưởng bởi XHP (Một nền tảng thành phần HTML cho PHP) React lần đầu tiên được triển khai cho ứng dụng Newsfeed của Facebook năm 2011, sau đó được triển khai cho Instagram.com năm 2012 Nó được mở mã nguồn (open-sourced) tại JSConf US tháng 5 năm 2013
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 7
Tư tưởng của ReactJS là xây dựng lên các components có tính tái sử dụng, dễ dàng cho việc chia nhỏ vấn đề, testing Nó giúp chúng ta dễ dàng quản lý, mở rộng hệ thống, điều này nếu là Angular JS thì đòi hỏi cấu trúc, cách viết code phải thật tối ưu
ReactJS luôn giữ các components ở trạng thái stateless (nhiều nhất có thể) khiến ta dễ dàng quản lí bởi nó chẳng khác gì một trang static HTML Bản thân các components này không có trạng thái (state) nó nhận đầu vào từ bên ngoài và chỉ hiển thị ra dựa vào các đầu vào đó, điều này giải thích tại sao nó mang tính tái sử dụng và dễ dàng cho việc test
Các đặc trưng của ReactJS
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
Ta có thể tạo ra một component bằng cách extends từ Component như sau:
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
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 đó
Một component trong React có 2 cách để lấy thông tin props và state Không như props, state của 1 component không được truyền từ bên ngoài vào Một component sẽ tự quyết định state của chính nó Để tạo ra state cho component, ta sẽ phải khai báo nó trong hàm constructor
This.state ở đây là một đối tượng Để truy cập đến các state ta sử dụng cú pháp: this.state.name_of_property Và cách phổ biến để thay đổi state của một component là dùng hàm setState()
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 8
Hình 1.4 Sơ đồ vòng đời của component trong ReactJS
Một thành phần đặc trưng không kém Props và State của React đó là LifeCycle LifeCycle là những phương thức được viết sẵn truy cập đến từng thời điểm trong một vòng đời của component, từ đó chúng ta có thể triển khai ý tưởng một cách dễ dàng mà linh động
Hàm này là hàm khởi tạo, là hàm chạy ngay sau khi component được tạo ra, đầu vào của hàm này là props (tức là thuộc tính của component được dùng để truyền dữ liệu từ bên ngoài vào) Trong hàm này chúng ta cũng có thể khởi tạo state cho component
TỔNG QUAN VỀ RESTful API
RESTful API [11] 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
Hình 1.11 Mô tả RESTful API
API (Application Programming Interface) là một tập các quy tắc và cơ chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSON hay XML
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, PUT, DELETE, vv đến một URL để xử lý dữ liệu
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 15
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
Hình 1.12 Các phương thức HTTP 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
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 16
Hình 1.13 Hoạt động của RESTful API Sau quá trình gọi API việc trả về những mã trạng thái cụ thể khi nhận và phiên dịch một HTTP Request, Server sẽ gửi tín hiệu phản hồi là một HTTP Response là một trong số các loại trạng thái sau:
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
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
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 17
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Hệ thống phân tích bình luận khách hàng áp dụng trong website thương mại điện tử gồm có 2 phân quyền : Quản lý và quản trị viên Trong đó quản trị viên có thể quản lý tất cả các cửa hàng, các thành viên,… quản lý có thể quản lý được cửa hàng, danh mục sản phẩm và tài khoản của mình
2.1 Machine Learning trong bài toán phân tích bình luận khách hàng
Các công ty nghiên cứu thị trường hiện này vẫn thường sử dụng các phương pháp truyền thống này tuy nhiên độ tin cậy không cao(do nhân viên tự làm giả dữ liệu) và độ tính cập nhật khá thấp(10-20 ngày cho thu thập thông tin, 10-20 ngày cho phân tích dữ liệu) Để trả lời câu hỏi trên một cách hiệu quả và nhanh chóng thì bạn phải tận dụng phân tích được chính những thông tin mà người dùng để lại qua internet như các bình luận, đánh giá, bài chia sẻ,
Bước 1 : Thu thập và phân tích đặc điểm dữ liệu Để tận dụng lượng dữ liệu có nhãn sẵn dữ liệu sẽ kèm Comment và điểm đánh giá :
Score < 4 hoặc NaN : Negative ( tiêu cực)
Quy định độ dài ngắn của 1 Comment là min = 1, max < 3800 từ / 1 comment Nếu không tiêu chuẩn hóa sẽ ảnh hưởng đến tính đúng đắn của hệ thống
Bước 2 : Tiền xử lý dữ liệu
Sử dụng Deeplearning để đơn giản hóa mô hình bài toán
Chuẩn hóa về chữ thường
Thay thế url trong dữ liệu bởi nhãn link_spam
Loại bỏ dấu câu và các ký tự đặc biệt
Xử lý trong trường hợp người dùng láy âm (vd : Ngooooon… !!!)
Chuẩn hóa các ký tự viết tắt ( vd : ko -> không, …)
Loại bỏ số và các từ chỉ có 1 ký tự
Bước 3 : Vector hóa dữ liệu
Mô hình CNN sử dụng các bộ lọc xoắn để nắm bắt mối quan hệ địa phương Nhờ khả năng nắm bắt các mối quan hệ địa phương, CNN có khả năng lọc được các ngữ cảnh gần giữa các từ trong câu, có thể áp dụng rất tốt trong bài toán này
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 18
Vậy, dữ liệu text và dữ liệu ảnh có điểm gì tương đồng mà ta có thể sử dụng một mô hình xử lý ảnh cho dữ liệu text? Có cách nào để chúng ta nhìn nhận một đoạn text như một bức ảnh không?
Bước 4 Xây dựng và huấn luyện mô hình
Tiến hành cài đặt một mô hình đơn giản bằng Keras(Đây là mô hình cực kì đơn giản, chỉ nhằm mục đích giới thiệu)
Trước tiên, tiến hành số hóa tất cả dữ liệu đầu vào, các câu comment được chuyển về ma trận số, các label được chuyển về dạng one-hot
2.2 Phân tích nghiệp vụ của hệ thống
2.2.1 Nghiệp vụ của quản trị viên
- Quản lý các cửa hàng có trong hệ thống : Thêm, sửa, xóa bất kỳ cửa hàng nào trong hệ thống
- Quản lý các tài khoản có trong hệ thống : Thêm, sửa, xóa bất kỳ tài khoản nào trong hệ thống
- Phân quyền cho hệ thống : Có thể cấp quyền cho tài khoản
2.2.2 Nghiệp vụ của quản lý
- Quản lý sản phẩm trong cửa hàng : Thêm, sửa, xóa 1 sản phẩm bất kỳ trong cửa hàng mình quản lý
- Quản lý danh mục sản phẩm : Thêm, sửa, xóa 1 danh mục bất kỳ trong cửa hàng mình quản lý
- Quản lý bình luận, đánh giá của khách hàng về cửa hàng của mình : Có thể xem được những đánh giá tích cực hay tiêu cực của khách hàng về cửa hàng của mình
Sơ đồ phân rã chức năng
‘Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng’ cung cấp cho các cửa hàng 1 công cụ hữu ích nhằm phân tích phản hồi của khách hàng về mặt hàng họ đang bán, nhằm cải thiện chất lượng sản phẩm đưa điến sự hài lòng cho khách hàng, từ đó tăng lợi nhuận cho người bán
Hệ thống có 4 loại người dùng : Người quản trị, người quản lý shop và khách Các chức năng của từng nhóm người dùng sẽ được mô tả dưới đây :
2.3.1 Các chức năng của khách
Chức năng này cho phép người dùng đăng ký tài khoản vào hệ thống để sử dụng -Chức năng xem danh sách đồ uống, thức ăn
Chức năng này cho phép khách hàng sau khi đăng nhập tài khoản thì có thể xem và mua hàng
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 19
-Chức năng bình luận trong cửa hàng
Khi đến thăm 1 cửa hàng bất kỳ có trong hệ thống, khách hàng có thể đánh giá chất lượng, không gian, giá thành… ở phần bình luận có ở từng cửa hàng
2.3.2 Chức năng của quản lý shop
-Chức năng quản lý các sản phẩm
Quản lý có thể thêm , sửa, xóa sản phẩm bất kỳ trong shop của họ
-Chức năng quản lý danh mục của sản phẩm
Quản lý có thể thêm, sửa, xóa danh mục sản phẩm
-Xem tất cả bình luận, đánh giá khách hàng về cửa hàng
Quản lý có thể xem những bình luận của khách hàng về cửa hàng của mình
2.3.3 Chức năng của người quản trị
-Quản lý tất cả User của quản lý shop và khách
Có thể xem, sửa, xóa tài khoản của những User còn lại
-Quản lý các sản phẩm, bình luận, danh mục
Có thể xem, sửa , xóa được sản phẩm, bình luận và danh mục
2.4 Biểu đồ ca sử dụng
2.4.1 Biểu đồ ca sử dụng tổng quát của hệ thống
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 20
Hình 2.1 Biểu đồ ca sử dụng tổng quát của hệ thống
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 21
2.4.2 Biểu đồ ca sử dụng của khách
Hình 2.2 Biểu đồ ca sử dụng đăng ký tài khoản của khách
2.4.3 Biểu đồ ca sử dụng của Thành viên
Hình 2.3 Biểu đồ ca sử dụng quản lý tài khoản trong hệ thống
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 22
Hình 2.4: Biểu đồ ca sử dụng để mua sản phẩm và bình luận
2.4.4 Biểu đồ ca sử dụng của Quản lý
Hình 2.5 Biểu đồ ca sử dụng quản lý danh mục sản phẩm
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 23
Hình 2.6: Biểu đồ ca sử dụng quản lý sản phẩm
Hình 2.7 Biểu đồ ca sử dụng quản lý bình luận, đánh giá khách hàng
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 24
2.4.5 Biểu đồ ca sử dụng của quản trị viên
Hình 2.8 Biểu đồ ca sử dụng quản lý người dùng trong hệ thống
Hình 2.9 Biểu đồ ca sử dụng quản lý các cửa hàng trong hệ thống
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 25
2.5 Đặc tả ca sử dụng Đặc tả ca sử dụng là quá trình mô tả cách các tác nhân tương tác, thực hiện ca sử dụng cho phép người dùng hiểu rõ hơn về cách sử dụng chức năng đó
2.5.1 Đặc tả ca sử dụng đăng ký
Tên ca sử dụng Đăng ký
Mô tả Cho phép khách đăng ký để trở thành thành viên của hệ thống Điều kiện kích hoạt
Người sử dụng truy cập hệ thống nhưng chưa có tài khoản Chọn mục Signup/Đăng ký
1 Khách nhập các thông tin đăng ký: email, tên, và mật khẩu, xác nhận mật khẩu
2 Bấm vào button Signup/Đăng ký
3 Hệ thống kiểm tra dữ liệu
4 Thông báo kết quả đăng ký
Kết quả Nếu các thông tin hợp lệ, thông báo đăng ký thành công
1 Người dùng nhập các thông tin đăng ký không hợp lệ
2 Hệ thống kiểm tra dữ liệu nhập vào là sai
3 Các thông tin trùng lặp, đã tồn tại trong hệ thống
4 Thông báo lỗi ra màn hình
Bảng 2.10 Đặc tả ca sử dụng đăng ký
2.5.2 Đặc tả ca sử dụng đăng nhập
Tên ca sử dụng Đăng nhập
Tác nhân Thành viên, Quản lý, Quản trị viên
Mô tả Cho phép thành viên, quản lý hoặc quản trị viên đăng nhập vào hệ thống để thực hiện các chức năng của mình Điều kiện kích hoạt Thành viên, quản lý hoặc quản trị viên truy cập hệ thống nhưng chưa đăng nhập Chọn mục Login/Đăng nhập
1 Người dùng nhập các thông tin email và mật khẩu
2 Bấm nút Login/Đăng nhập
3 Hệ thống kiểm tra dữ liệu nhập là đúng
Kết quả Đưa đến trang chủ của hệ thống
1 Người dùng không nhập các thông tin email và mật khẩu
2 Hệ thống kiểm tra dữ liệu nhập email và mật khẩu sai
3 Thông báo lỗi ra màn hình
Bảng 2.11 Đặc tả ca sử dụng đăng nhập
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 26
2.5.3 Đặc tả ca sử dụng Quản lý tài khoản
Tên ca sử dụng Quản lý tài khoản
Tác nhân Thành viên, Quản lý, Quản trị viên
Cho phép thành viên, quản lý hoặc quản trị viên đăng nhập vào hệ thống để quản lý tài khoản cá nhân của mình bao gồm chỉnh sửa thông tin cá nhân và mật khẩu Điều kiện kích hoạt Thành viên, quản lý hoặc quản trị viên đăng nhập vào hệ thống Chọn mục Profile/Tài khoản cá nhân
1 Người dùng nhập các thông tin cá nhân và mật khẩu muốn chỉnh sửa
2 Bấm nút Update/Cập nhật
3 Hệ thống kiểm tra dữ liệu nhập là đúng
4 Thực hiện cập nhật thông tin
Kết quả Đưa đến trang quản lý tài khoản
1 Người dùng nhập không chính xác các thông tin cá nhân và mật khẩu
2 Hệ thống kiểm tra dữ liệu nhập vào là sai
3 Thông báo lỗi ra màn hình
Bảng 2.12: Đặc tả ca sử dụng quản lý tài khoản
2.5.4 Đặc tả ca sử dụng Tạo sản phẩm
Tên ca sử dụng Tạo sản phẩm
Tác nhân Quản lý, Quản trị viên
Mô tả Cho phép người quản trị viên, quản lý tạo sản phẩm thêm vào cửa hàng Điều kiện kích hoạt Người quản lý phải có quyền thêm sản phẩm vào cửa hàng đó, người quản trị viên toàn quyền
1 Người quản lý hoặc người quản trị viên nhập các thông tin: Tên sản phẩm
2 Sau đó chọn mô tả, ảnh sản phẩm, giá…
Kết quả Đưa đến trang danh sản phẩm trong cửa hàng
1 Người dùng nhập các thông tin sản phẩm không hợp lệ
2 Hệ thống kiểm tra dữ liệu nhập vào là sai
3 Thông báo lỗi ra màn hình
Bảng 2.13: Đặc tả ca sử dụng tạo sản phẩm
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 27
2.5.5 Đặc tả ca sử dụng Tạo cửa hàng
Tên ca sử dụng Tạo cửa hàng
Tác nhân Quản trị viên
Mô tả Cho phép người quản trị viên thêm 1 cửa hàng mới Điều kiện kích hoạt Người quản trị viên có toàn quyền thêm ( không trùng tên cửa hàng đã có trong hệ thống)
Các bước thực hiện 1 Người quản trị viên nhập các thông tin: Tên cửa hàng
2 Sau đó chọn mô tả, ảnh cửa hàng, địa chỉ,…
Kết quả Đưa đến trang danh cửa hàng trong hệ thống
1 Người dùng nhập các thông tin sản phẩm không hợp lệ
2 Hệ thống kiểm tra dữ liệu nhập vào là sai
3 Thông báo lỗi ra màn hình
Bảng 2.14: Đặc tả ca sử dụng tạo cửa hàng
Một lớp ( class ) là một tập hợp các đối tượng có cùng cấu trúc, cùng hành vi… Biểu đồ lớp thể hiện các khối của bất kỳ hệ thống hướng đối tượng nào Biểu đồ lớp mô tả cái nhìn tĩnh của mô hình hoặc một phần của mô hình, miêu tả những thuộc tính và hành vi một cách chi tiết
Hình 2.15 Biểu đồ lớp của hệ thống
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 28
2.7.1 Biểu đồ hoạt động của thành viên
Hình 2.16 Biểu đồ hoạt động các chức năng của thành viên
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 29
2.7.2 Biểu đồ hoạt động của quản lý
Hình 2.17 Biểu đồ hoạt động các chức năng của quản lý
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 30
2.7.3 Biểu đồ hoạt động của quản trị viên
Hình 2.18 Biểu đồ hoạt động các chức năng của quản trị viên
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 31
2.8 THIẾT KẾ CƠ SỞ DỮ LIỆU
2.8.1 Mô hình thiết kế cơ sở dữ liệu
Cơ sở dữ liệu của hệ thống sẽ gồm các bảng sau:
User: là bảng dữ liệu người dùng, chứa thông tin của người dùng trong hệ thống
Role: là bảng dữ liệu phân quyền, chứa quyền người dùng truy cập
Shop: là bảng chứa danh sách các cửa hàng
Category: là bảng chứa danh danh sách danh mục sản phẩm trong cửa hàng
Product: Là bảng chứa danh mục sản phẩm
Cart: là bảng chứa danh sách giỏ hàng
Comment: là bảng chứa danh sách bình luận, đánh giá của khách hàng
ProductInCategory: là bảng chứa dữ liệu nối giữa product và category
ProductInShop: là bảng chứa dữ liệu nối giữa product và shop
UserInRole: là bảng chứa dữ liệu nối giữa User và Role
UserInShop: là bảng chứa dữ liệu nối giữa User và Shop
Cơ sở dữ liệu luôn giữ vai trò rất quan trọng trong mọi hệ thống Tất cả dữ liệu trên hệ thống đều được lưu vào các bảng trong cơ sở dữ liệu Giữa các bảng có những mối quan hệ nhất định được liên kết bằng cách tham chiếu đến khóa chính của bảng khác
Chương này cung cấp cho người đọc cái nhìn tổng quan về nghiệp vụ quản lý hệ thống phân tích bình luận khách hàng trong website thương mại điện tử Đồng thời tiến hành phân tích & thiết kế hệ thống Website thương mại điện tử đáp ứng mô hình nghiệp vụ nêu trên
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 32
TRIỂN KHAI VÀ ĐÁNH GIÁ
3.1 MÔI TRƯỜNG TRIỂN KHAI Để triển khai và đưa website đi vào hoạt động một cách ổn định, máy chủ cần đáp ứng một số yêu cầu như sau :
- Hệ điều hành : Windows Server 2008 trở lên
Hình 3.1 Màn hình đăng nhập
Hình 3.2 Màn hình quản lý danh mục
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 33
Hình 3.3 Màn hình quản lý shop
Hình 3.4 Màn hình quản lý sản phẩm
Hình 3.5 Màn hình quản lý user
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 34
Hình 3.6 Màn hình public hiển thị danh sách cửa hàng
Hình 3.7 Màn hình hiển thị trang chi tiết
Demo phân tích bình luận :
Hình 3.7 Dữ liệu dùng để train mô hình
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 35
Bộ dữ liệu đã được crawl sẵn trên Internet [12] và lúc đầu chưa qua hiệu chỉnh nên gây nhiều nhiễu Trong bộ dữ liệu có khoảng gần 10000 bình luận được chia thành các file là positive, neutral, negative và rate 0.0 ( dữ liệu chưa đánh rate )
Hình 3.8 Màn hình coment và cho ra kết quả trực tiếp
Chương này trình bày một số yêu cầu đối với môi trường triển khai hệ thống website, quá trình vận hành hệ thống Website trong thực tế giúp người đọc có cái nhìn tổng quan và cụ thể hơn về hệ thống Website thương mại điện tử áp dụng
Machine learning phân tích bình luận khách hàng
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 36
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Trong thời gian tìm hiểu, nghiên cứu cơ sở lý thuyết và triển khai ứng dụng công nghệ , đồ án đã đạt được những kết quả như sau :
- Ứng dụng các kiến thức đã học để phân tích nghiệp vụ của hệ thống Website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
- Sử dụng mô hình logic MVC để triển khai hệ thống Website trên cơ sở công nghệ NET CORE
- Sử dụng Entity Framework và Linq để tương tác với cơ sở dữ liệu
Về mặt thực tiễn : Đã xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng và triển khai thực tế
Tuy nhiên đồ án còn nhiều tồn tại như sau :
- Cần phát triển thêm chức năng vận chuyển sản phẩm
- Vấn đề bảo mật của website còn một số hạn chế
Một số hướng nghiên cứu và phát triển của đề tài như sau :
- Thêm chức năng thanh toán online, chức năng vận chuyển sản phẩm…
- Bài toán sử dụng kiến trúc Conv2D ( CNN 2D ) áp dụng vào bài toán phân loại quan điểm của người dùng còn có rất nhiều mô hình khác hiệu quả hơn mà trong đề tài này chưa được nêu ra
Xây dựng website thương mại điện tử tích hợp machine learning phân tích bình luận khách hàng
SVTH : Nguyễn Văn Thành GVHD : TS Đặng Hoài Phương 37