Chương 1 TỔNG QUAN 1.1 Lý do chọn đề tài Khi một thương hiệu ra đời, một trong những yếu tố quan trọng nhất để thương hiệu đó có thể phát triển và hoạt động lâu dài đó chính là số lượng khách hàng. Khi mạng internet chưa phát triển, một thương hiệu mới thường được mọi người biết đến thông qua các biện pháp như phát tờ rơi hay phát sóng quảng cáo trên TV. Các biện pháp trên khá tốn kém nhưng số lượng khách hàng thu được thường ít do bị giới hạn trong một khu vực hoặc một quốc gia. Với sự phát triển mạnh mẽ của mạng internet như hiện nay, website là một trong những lựa chọn hàng đầu của các thương hiệu để khách hàng biết đến họ với chi phí hợp lý và không bị giới hạn bởi khu vực hay quốc gia.
Vì vậy nhóm thực hiện quyết định chọn đề tài xây dựng một website bán quần áo để phục vụ cho việc phát triển một thương hiệu thời trang mới.2 Mục tiêu Áp dụng các kiến thức đã học kết hợp cùng các công nghệ đã tìm hiểu để phân tích, thiết kế và xây dựng một website bán quần áo có khả năng đáp ứng nhu cầu của người sử dụng tương tự như các sản phẩm thực tế, bao gồm các chức năng chính như: Đối với khách hàng: • Tạo và quản lý tài khoản cá nhân. • Tìm kiếm, chọn lựa, quản lý giỏ hàng, đặt hàng và thanh toán. • Xem lại lịch sử mua hàng. Đối với quản trị viên: • Quản lý các sản phẩm, đơn hàng.
• Phê duyệt đơn hàng. • Xem thống kê doanh thu. Ngoài ra, nhóm còn kết hợp thêm kiến thức đã học về môn học Machine learning để áp dụng vào website thông qua các tính năng hỗ trợ khách hàng như: Chatbot và hệ thống gợi ý sản phẩm.3 Công nghệ sử dụng Để thực hiện đề tài khóa luận này, nhóm thực hiện đã tìm hiểu và áp dụng một số công nghệ như sau: • Front-end: Ứng dụng web xây dựng bởi Angular 8. • Back-end: ASP.NET API kết nối với cơ sở dữ liệu SQL Server thông qua Entity Framework.
• Một số công nghệ khác như: Dialogflow, Bootstrap 4, HTML, CSS. 2 do an Chương 2 CƠ SỞ LÝ THUYẾT 2.1 Angular Framework Angular là một JavaScript Framework được phát triển bởi Google và cộng đồng để giải quyết các vấn đề thường gặp phải trong việc phát triển ứng dụng đơn trang (Single Page Application - SPA) sử dụng ngôn ngữ TypeScript.[1] Các đặc điểm nổi bật: • Hỗ trợ phát triển ứng dụng web dưới dạng Single Page Aplication. • Cung cấp khả năng data binding tới các trang HTML giúp tạo cảm giác linh hoạt. • Dễ dàng tái sử dụng các component.
• Có cộng đồng hỗ trợ rộng lớn.NET Web API Là 1 framework dùng để xây dựng các dịch vụ dựa trên giao thức HTTP mà các platform khác nhau như web, windows, mobile, … đều có thể truy cập được.[2] Các đặc diểm nổi bật: • Là một nền tảng lý tưởng để phát triển các RESTful services. • Ánh xạ các HTTP verbs (GET/POST/PUT/DELETE) với tên của các phương thức (method). • Hỗ trợ các kiểu dữ liệu trả về như JSON, XML và BSON. • Có thể lưu trữ (hosted) trên IIS, tự tổ chức lưu trữ (Sefl-hosted) hoặc lưu trữ trên bất kì web server nào có hỗ trợ .NET Entity Framework Entity Framework là một trình ánh xạ quan hệ đối tượng (ORM) được Microsoft hỗ trợ cho phép các nhà phát triển .NET làm việc với cơ sở dữ liệu bằng các đối tượng.
Nó loại bỏ sự cần thiết của hầu hết các mã truy cập dữ liệu mà các nhà phát triển thường cần phải viết.[3] Lợi ích khi sử dụng Entity Framework: • Giảm số lượng code cần viết hơn so với việc sử dụng các câu truy vấn thuần SQL. • Giảm số lượng code đồng nghĩa với giảm thời gian cho việc coding. • Code đơn giản hơn sẽ giúp việc bảo trì trở nên dễ dàng hơn.4 Microsoft SQL Server 2016 Microsoft SQL Server 2016 là một phần mềm được phát triển bởi Microsoft dùng để lưu trữ dữ liệu, nó cũng là một hệ quản trị cơ sở dữ liệu quan hệ đối tượng.[4] Đặc điểm nổi bật: • SQL Server cung cấp đầy đủ công cụ để quản lý, từ giao diện GUI cho đến việc sử dụng ngôn ngữ truy vấn SQL. • Có thể kết hợp với ASP.NET Entity Framework.
• Dễ dàng chia sẽ, backup dữ liệu. • Hỗ trợ các tính năng về bảo mật.5 Dialogflow Dialogflow là một nền tảng hiểu ngôn ngữ tự nhiên giúp chúng ta dễ dàng thiết kế và tích hợp một giao diện đàm thoại vào ứng dụng di động, ứng dụng web, thiết bị, bot, hệ thống phản hồi bằng giọng nói, v. Sử dụng Dialogflow, chúng ta có thể cung cấp những cách thức mới và hấp dẫn để người dùng tương tác với sản phẩm của mình.[5] Ưu điểm khi sử dụng Dialogflow: • Miễn phí đối với một Standard Edition: nếu chỉ muốn học cách xây dựng Chatbot hoặc không có nhiều người dùng thì Dialogflow sẽ hỗ trợ miễn phí. • Sự tích hợp đa kênh dễ dàng: Dialogflow cung cấp tích hợp cho hầu hết các ứng dụng nhắn tin phổ biến như Facebook Messenger, Slack, Twitter, Kik, Line, Skype, Telegram, Twilio và Viber.
Và ngay cả với một số trợ lý giọng nói như Google Assistant, Amazon Alexa và Microsoft Cortana. • Xử lý ngôn ngữ tự nhiên (NLP): Dialogflow có thể cung cấp trải nghiệm người dùng tốt hơn với Natural Language Processing. Các thành phần cơ bản của Dialogflow: • Agents: là một Agents ảo xử lý các cuộc hội thoại với người dùng. Nó là một mô-đun hiểu ngôn ngữ tự nhiên, hiểu được các sắc thái của ngôn ngữ con người.
Dialogflow dịch văn bản hoặc âm thanh của người dùng cuối trong cuộc hội thoại sang dữ liệu có cấu trúc mà ứng dụng và dịch vụ khác có thể hiểu được (có thể hiểu đơn giản nó là một chatbot). 4 do an • Intents: một Intents được tạo ra để phân loại một ý định của người dùng cho mỗi lượt trò chuyện. Đối với mỗi Agents, ta xác định được nhiều Intents, khi đó sự kết hợp của các Intents có thể xử lý một cuộc hội thoại hoàn chỉnh. Khi người dùng cuối viết hoặc nói điều gì đó, được gọi là end- user expression, Dialogflow sẽ so khớp các end-user expression với Intent tốt nhất trong Agent đã tạo.1 Sơ đồ Intent phản hồi cho người dùng cuối [6] • Entities: với mỗi Intent có một loại được gọi là Entities (bộ từ khóa), quy định chính xác cách trích xuất dữ liệu từ hội thoại của người.
DialogFlow có một số Entities được xác định trước như địa chỉ, thành phố, … chúng được gọi là các Entities hệ thống. Ngoài ra còn có các Entities chúng ta xác định trong Agent của mình, được gọi là các Entities nhà phát triển. 5 do an Cách thức hoạt động: Hình 2.2 Cách thức hoạt động của Dialogflow [7] 1) Người dùng nhập hay nói một câu hội thoại. 2) Dialogflow gắn câu hội thoại của người dùng tới một Intent phù hợp và trích xuất các tham số.
3) Dialogflow gửi một thông báo yêu cầu đến dịch vụ webhook của chúng ta. Thông báo này chứa thông tin về Intent được chọn, hành động, các tham số và phản hồi được xác định cho Intent. 4) Dịch vụ thực hiện các hành động khi cần thiết như truy vấn cơ sở dữ liệu hoặc các lệnh gọi API bên ngoài. 5) Dịch vụ sẽ gửi một thông điệp tới Dialogflow.
Thông điệp này chứa phản hồi nên được gửi đến người dùng cuối. 6) Dialogflow gửi phản hồi cho người dùng cuối. 7) Người dùng sẽ nhìn thấy hoặc nghe thấy phản hồi.6 Hệ thống gợi ý sản phẩm Hệ thống gợi ý sản phẩm là một thành phần không thể thiếu đối với các website thương mại hiện nay. Bằng cách sử dụng dữ liệu thu thập từ người dùng thông qua đánh giá sản phẩm, lịch sử mua hàng, … kết hợp với các thuật toán machine learning để phân tích và đưa ra kết quả dự đoán phù hợp nhất cho người dùng từ đó nâng cao trải nghiệm người dùng, tăng khả năng đáp ứng và thu hút khách hàng, nâng cao doanh thu cho website.
Có rất nhiều thuật toán có thể áp dụng cho các hệ thống gợi ý sản phẩm, sau khi tìm hiểu, phân tích và cân nhắc để chọn ra một thuật toán phù hợp với thiết kế cơ sở dữ liệu của website, nhóm thực hiện đã quyết định sử dụng thuật toán User-Based Collaborative Filtering để xây dựng hệ thống gợi ý sản phẩm cho website. Thuật toán gợi ý sản phẩm User-Based Collaborative Filtering (UB-CF): Hình 2.3 Mô tả thuật toán UB-CF [8] Thuật toán UB-CF hoạt động và đưa ra kết quả gợi ý dựa trên sự tương đồng về sở thích giữa các user với nhau. Đây là thuật toán được áp dụng rộng rãi cho các hệ thống gợi ý trong thực tế.[9] 7 do an Ví dụ: Ta có khách hàng A thích các sản phẩm X, Y và Z, bên cạnh đó ta lại có một khách hàng B thích sản phẩm X và Y. Từ dữ liệu trên hệ thống nhận thấy A và B có sự tương đồng cao về sở thích và do A thích Z nên hệ thống sẽ gợi ý cho B sản phẩm Z.
Cách hoạt động: Thuật toán bao gồm 2 giai đoạn chính như sau: • Tìm ra tập hợp K bao gồm những user có độ tương thích cao nhất so với user cần được gợi ý bằng cách phân tích dữ liệu đánh giá sản phẩm của các user. Công thức tổng quát như sau: 𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦(𝑎, 𝑢) = 𝑤(𝑎, 𝑢), 𝑢 ∈ 𝑈 a: vector đánh giá của user cần được gợi ý u: vector đánh giá của một user khác trên các sản phẩm mà user a đã đánh giá U: tập hợp các vector user w: hàm tính độ tương thích (cosine similarity hoặc Pearson correlation coefficient) • Dự đoán đánh giá của user a trên tất cả các sản phẩm i mà các user thuộc K đã đánh giá nhưng a thì chưa. Công thức dự đoán đánh giá có dạng: 𝑠(𝑎, 𝑢1 ) ∗ 𝑦(𝑖, 𝑢1 ) + 𝑠(𝑎, 𝑢2 ) ∗ 𝑦(𝑖, 𝑢2 ) + ⋯ 𝑦̂𝑖,𝑎 = 𝑠(𝑎, 𝑢1 ) + 𝑠(𝑎, 𝑢2 ) + ⋯ 𝑦̂𝑖,𝑎 : Kết quả dự đoán đánh giá của user a trên sản phẩm i 𝑠(𝑎, 𝑢1 ): Mức độ tương thích giữa user a với các user khác (Chỉ lấy những user có giá trị này là lớn nhất) 𝑦(𝑖, 𝑢1 ): Đánh giá thực tế user 𝑢1 trên sản phẩm i 8 do an Chương 3 PHÂN TÍCH VÀ THIẾT KẾ 3.1 Khảo sát hiện trạng 3.com Ngôn ngữ: Tiếng Việt Điểm nổi bật: • Giao diện được phân chia rõ ràng dễ sử dụng. • Chất lượng hình ảnh tốt.
• Khi trỏ chuột vào mỗi sản phẩm có hiển thị tên sản phẩm và tăng kích thước hình ảnh giúp nâng cao góc nhìn của khách hàng về sản phẩm.