Chương 3 TÌM HIỂU CƠNG NGHỆ ỨNG DỤNG TRONG ĐỀ TÀI
c. Tính linh hoạt và khả năng mở rộng:
Firebase cho phép nhà phát triển xây dựng server của riêng mình để thuận tiện trong quá trình quản lý. Firebase sử dụng hệ quản trị cơ sở dữ liệu là NoSQL, giúp database dễ dàng mở rộng các bảng, các trường tùy theo ý thích của mỗi lập trình viên.
Dialogflow (tiền thân là API.AI) là một dịch vụ do Google cung cấp nhằm giúp các lập trình viên dễ dàng hơn khi lập trình các sản phẩm có giao tiếp giữa người dùng với sản phẩm thông qua các đoạn hội thoại bằng văn bản (text) hoặc giọng nói (voice).
Dialogflow sử dụng trí tuệ nhân tạo (AI) giúp phân tích ngơn ngữ tự nhiên để hiểu được những gì người dùng đưa vào. Hiện Dialogflow có 2 phiên bản:
• Standard: Hồn tồn miễn phí để sử dụng. • Và Enterprise: Cần trả một ít tiền.
Hình 3.2. Giới thiệu về Dialogflow
3.5.1 Intent:
Theo định nghĩa của từ điển vdict.com, INTENT là danh từ, có nghĩa là ý định/mục đích/nghĩa. Cịn theo dialogflow.com, một INTENT là đại diện cho một ánh xạ giữa những gì người dùng đưa vào, và hành động sẽ được thực hiện bởi phần mềm.
Để bạn dễ hiểu hơn, tơi có một ví dụ này, bạn đang cần làm một Chatbot dự báo thời tiết, giả sử khi người dùng hỏi với bot:
• Ngày mai ở Hà Nội trời có mưa khơng?
Với cả hai câu hỏi này, người dùng đều đang mong muốn Chatbot trả lời thông tin dự báo về thời tiết. Như vậy, khi lập trình Chatbot, bạn chỉ cần 1 hành động cho cả hai câu hỏi, hay bạn cần tạo một INTENT cho chúng.
Nói một cách khác, một INTENT là một tập những gì người dùng nói mà chúng có cùng một ý nghĩa.
3.5.2 Entity:
Cũng theo từ điển vdict.com, ENTITY là danh từ, có nghĩa là thực thể, hay sự tồn tại (của một vật). Với dialogflow.com, ENTITIES là những cơng cụ được sử dụng để trích xuất các giá trị của tham số từ ngôn ngữ tự nhiên. Bất kỳ những gì mà bạn muốn biết từ nội dung của người dùng đều sẽ có một ENTITY tương ứng.
Quay lại với ví dụ ở trên, “Ngày mai” hay “Thứ 6 này” sẽ có một entity tương ứng là Thời gian. Hà Nội, Đà Nẵng, New York, … sẽ là entity Vị trí
3.5.3 Agent:
Trong dialogflow.com, AGENT là khái niệm được dùng để đại diện cho một mơ- đun (module) NLU (Natural Language Understanding – Phân tích để hiểu ngơn ngữ tự nhiên). AGENT giúp bạn phân tích những những gì người dùng đưa vào (text hoặc voice) để chuyển thành những dữ liệu mà bạn có thể xử lý được bằng lập trình.
Bạn sẽ sử dụng một AGENT để quản lý các đoạn hội thoại thông qua INTENTS, ENTITIES.
3.5.4 Ứng dụng Dialogflow vào ứng dụng BabyCare:
• Dialogflow sẽ đóng vai trị là một API có sẵn để ứng dụng gọi và lấy ra giá trị tin nhắn cần thiết. Nhóm chúng em sẽ thiết lập các Intent, Entity và Agent hợp lý từ đó tạo ra các kịch bản có sẵn và các câu hỏi liên quan sẵn. Khi người dùng nhắn những đoạn tin nhắn liên quan đến kịch bản sẵn có thì ứng dụng sẽ gọi vào Dialogflow để lấy tin nhắn tương ứng.
• Ứng dụng sử dụng ngơn ngữ dart để thiết lập kết nối giữa flutter và dialogflow.
3.6 Hệ thống khuyến nghị 3.6.1. Giới thiệu 3.6.1. Giới thiệu
Hệ thống khuyến nghị (Recommendation system) là một loại hình cụ thể của kỹ thuật lọc thơng tin (như tin tức, phim ảnh, âm nhạc, trang web,..) mà người dùng quan tâm.
Recommendation system rất quan trọng trong thành công của thương mại điện tử và ngành công nghệ thông tin hiện nay, và dần dần trở nên phổ biến trong các ứng dụng khác nhau (ví dụ như Netflix, Google, Youtube, Amazon,...). Các thống kê chỉ ra rằng, hai phần ba số phim trên hệ thống Netflix được xem là nhờ kết quả gợi ý của hệ thống khuyến nghị, 38% lượng nhấp chuột trên hệ thống tin tức Google News và 35% sản phẩm bán được trên hệ thống thương mại điện tử Amazon đều nhờ vào hệ thống khuyến nghị.
Hệ thống khuyến nghị thường được xây dựng tự động dựa trên hồ sơ (profile) của người dùng. Hệ thống so sánh hồ sơ người dùng với một số đặc điểm tài liệu tham khảo, và tìm cách dự đốn “đánh giá” mà người dùng sẽ cung cấp cho một nội dung mà người dùng đó vẫn chưa đánh giá. Kết quả của hệ khuyến nghị là dự đoán “đánh giá” của người dùng cho một sản phẩm nhất định hoặc danh sách những sản phẩm mà người dùng có thể thích.
Thơng tin về người sử dụng được dùng cho hệ thống khuyến nghị tự động có thể chia thành hai loại: thơng tin ẩn và thông tin hiện:
- Thông tin ẩn (Implicit Feedback): Các lượt thích và khơng thích của người dùng được ghi nhận và ghi lại trên cơ sở các hành động của họ như nhấp chuột, tìm kiếm và mua hàng... Các nội dung này rất dễ thu thập, nhưng thường có độ nhiễu cao và khơng có tương tác trực tiếp với người dùng (hệ thống tự động ghi lại lịch sử), đồng thời những phản hồi tiêu cực khơng được tìm thấy.
- Thơng tin hiện (Explicit Feedback): các kết quả nhận được khi người dùng trực tiếp đưa ra đánh giá về sản phẩm như thích/ khơng thích, chấm điểm, bình luận... Các thơng tin này thường khó thu thập hơn rất nhiều so với thơng tin ẩn, nhưng độ chính xác cao hơn và rất hữu ích cho việc khuyến nghị.
Recommendation system thường được chia làm hai nhóm lớn:
- Content – based system: đánh giá đặc tính của items được recommend. Ví dụ: một user xem rất nhiều các bộ phim về cảnh sát hình sự, vậy thì gợi ý một bộ phim trong cơ sở dữ liệu có
chung đặc tính hình sự tới user này. Cách tiếp cận này yêu cầu việc sắp xếp các items vào từng nhóm hoặc đi tìm các đặc trưng của từng items. Tuy nhiên, có những items khơng có nhóm cụ thể và việc xác định nhóm hoặc đặc trưng của từng item đơi khi là bất khả thi.
- Collaborative filtering: hệ thống gợi ý items dựa trên sự tương quan (similarity) giữa các users và items. Có thể hiểu rằng ở nhóm này, một item được recommend tới một user dựa trên những users có hành vi tương tự.
Mục tiêu của hệ thống khuyến nghị:
- Gia tăng doanh số: Đơn giản là họ sẽ bán thêm được hàng hoặc tăng lượt đặt chỗ so với những trang mà không sử dụng Recommendation System. Recommendation System đề xuất càng chính xác với nhu cầu người dùng thì website càng bán được nhiều hàng.
- Thỏa mãn nhu cầu khách hàng: Một Recommendation System được thiết kế và cài đặt tốt sẽ cải thiện trải nghiệm người dùng. Người dùng sẽ thấy rằng hệ tư vấn này rất thú vị, chính xác, và cùng với một UI được thiết kế hợp lý, khách hàng sẽ muốn quay lại website.
- Nắm được nhu cầu khách hàng: Một chức năng quan trọng khác của Recommendation System là cho phép ta thu thập được phản hồi của khách hàng. Nếu khách hàng khơng thích những thứ mà bạn đề xuất, bạn vẫn có thể thu thập lại được những thơng tin này và tái sử dụng nó để cải thiện độ chính xác của Recommendation System.
3.6.2. Một số phương pháp trong hệ thống khuyến nghị