1. Trang chủ
  2. » Luận Văn - Báo Cáo

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN 1: ứng dụng gợi ý địa điểm homestay

56 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 56
Dung lượng 3,12 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN 1 Đề tài Xây dựng ứng dụng gợi ý địa điểm homestay Giáo viên hướng dẫn Trần Thị Thanh Trúc Lớp SE121 M21 PMCL Si.

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Đinh Huỳnh Thái Bình – 19521264

Thành phố Hồ Chí Minh, 5/2022

Trang 2

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Đinh Huỳnh Thái Bình – 19521264

Thành phố Hồ Chí Minh, 5/2022

Trang 3

DANH SÁCH THUẬT NGỮ VIẾT TẮT

1 API Viết tắt của Application Programming Interface - Giao diện lập

trình ứng dụng

2 BTS Viết tắt của Base Transceiver Station -Trạm thu phát sóng di động

3 GPS Viết tắt của Global Positioning System - Hệ thống định vị toàn

Trang 4

LỜI CẢM ƠN

Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học Công Nghệ Thông Tin – ĐHQG TP.HCM chúng em đã được trang bị các kiến thức cơ bản, các

kỹ năng thực tế để có thể lần đầu thực hiện Đồ án 1 của mình

Để hoàn thành Đồ án này, chúng em xin gửi lời cảm ơn chân thành đến:

Ban Giám hiệu trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM vì đã tạo điều kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin

Chúng em xin gửi lời cảm ơn chân thành đến thầy Nguyễn Thị Thanh Trúc đã tận tình giúp đỡ, định hướng cách tư duy và cách làm việc khoa học Đó là những góp ý hết sức quý báu không chỉ trong quá trình thực hiện luận văn này mà còn là hành trang tiếp bước cho chúng em trong quá trình học tập và lập nghiệp sau này

Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cô trong khoa, bạn bè, tập thể lớp KTPM2019 là những người luôn sẵn sàng sẻ chia và giúp đỡ trong học tập và cuộc sống Mong rằng, chúng ta sẽ mãi mãi gắn bó với nhau

Trong quá trình làm Đồ án này chúng em không tránh khỏi được những sai sót, chúng

em kính mong nhận được sự chỉ dẫn và góp ý của quý thầy cô để hoàn thiện và phát triển

đồ án hơn trong môn học Đồ án 2 cũng như trong Khóa luận tốt nghiệp trong tương lai Chúng em xin chân thành cảm ơn Xin chúc những điều tốt đẹp nhất sẽ luôn đồng hành cùng mọi người

Thành phố Hồ Chí Minh, … tháng … năm 2022

Sinh Viên

Đinh Huỳnh Thái Bình

Vũ Đặng Khương Duy

Trang 5

Mục lục

Chương 1 GIỚI THIỆU ĐỀ TÀI 8

1.1 Giới thiệu chung 8

1.2 Đối tượng nghiên cứu 9

1.3 Phạm vi đề tài 9

1.3.1 Phạm vi chức năng: 10

1.4 Hướng tiếp cận 10

1.4.1 Khảo sát ứng dụng liên quan 10

1.4.2 Khảo sát người dùng 11

Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 14

2.1 Lựa chọn màu sắc 14

2.2 Cơ sở lí thuyết 21

2.2.1 Kmean Clustering algorithms 22

2.3 Cơ sở công nghệ 26

2.3.1 Reactjs 26

2.3.2 Github 27

2.3.3 Javascript 28

2.4 TypeScript 29

2.5 Nestjs 30

2.6 Tailwind CSS 30

Chương 3 PHÂN TÍCH HỆ THỐNG 32

3.1 Luồng xử lí chung 32

3.2 Phân thích kiến trúc hệ thống: 32

Trang 6

3.3 Phân tích yêu cầu hệ thống: 33

3.3.1 Yêu cầu chức năng: 33

3.3.2 Yêu cầu phi chức năng: 34

Chương 4 THIẾT KẾ HỆ THỐNG 35

4.1 Thiết kế sơ đồ Use Case Diagram 35

4.1.1 Sơ dồ Use Case 35

4.1.2 Danh sách Actor 35

4.1.3 Danh sách các Use Case 35

4.1.4 Đặc tả Use Case 36

4.2 Thiết kế sơ đồ Database Diagram 40

4.2.1 Sơ đồ tổng quát 40

4.3 Thiết kế sơ đồ Sequence Diagram 41

4.3.1 Tìm kiếm địa điểm 41

4.3.2 Xem các địa điểm trên bản đồ 42

4.3.3 Tìm đường đi giữa các địa điểm 43

4.3.4 Xem thông tin chi tiết của homestay 44

4.4 Thiết kế sơ đồ Activity Diagram 45

4.5 Thiết kê giao diện người dùng 46

4.5.1 Giao diện trang chủ 46

4.5.2 Giao diện danh sách homestay 50

4.5.3 Giao diện chi tiết homestay 53

4.5.4 Giao diện hiển thị bản đồ 54

Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 55

Trang 7

5.1 Kết quả đạt được 55

5.1.1 Lý thuyết 55

5.1.2 Công nghệ 55

5.1.3 Ứng dụng 55

5.2 Hạn chế 56

5.3 Hướng phát triển 56

Trang 8

Chương 1 GIỚI THIỆU ĐỀ TÀI 1.1 Giới thiệu chung

Việt Nam đất nước được thiên nhiên ban tặng nhiều danh lam thắng cảnh đẹp Đó những điểm đến du lịch hấp dẫn đối với khách trong nước và đặc biệt là khách du lịch là người nước ngoài Năm 2018, Việt Nam đón 15,5 triệu lượt khách quốc tế, phục vụ 80 triệu lượt khách nội địa, tổng thu từ khách du lịch ước đạt 637.000 tỷ đồng Đóng góp trực tiếp của ngành Du lịch ước đạt 8,39% GDP của cả nước Du lịch góp phần quan trọng đối với sự phát triển của các ngành, lĩnh vực liên quan khác, góp phần nâng cao vị thế của đất nước Nhưng do đại dịch Covid-19 đã tác động tiêu cực đến mọi lĩnh vực của nền kinh tế, trong đó có ngành du lịch của Việt Nam, lượng khách du lịch quốc tế cũng như du lịch trong nước sụt giảm nghiêm trọng so với trước khi dịch bệnh xuất hiện Khách quốc tế đến nước ta trong tháng 5/2021 ước tính đạt 13,4 nghìn lượt người, giảm 30,8% so với tháng trước và giảm 40,6% so với cùng kỳ năm trước Tính chung 5 tháng đầu năm 2021, khách quốc tế đến nước ta ước tính đạt 81 nghìn lượt người, giảm 97,8% so với cùng kỳ năm trước, trong đó khách đến bằng đường hàng không đạt 50,5 nghìn lượt người, giảm 98,3%; bằng đường bộ đạt 30,3 nghìn lượt người, giảm 94,5%; bằng đường biển đạt 193 lượt người, giảm 99,9%

Thời điểm sau đại dịch, Chính phủ đã ban hành các Nghị quyết và tổ chức các chương trình về phát động du lịch nhằm mục địch kích cầu, phục hồi, vực dậy ngành di lịch trong nước

Nhằm góp một phần sức lực trong quá trình hồi phục nên du lịch của nước nhà Nhóm chúng em đã quyết định xây Hệ thống chia sẻ Homestay để giúp người dùng có thể tra cứu thông tin những địa điểm và tìm đường đi phù hợp cũng như dự đoán được chi phí Cùng với đó, người dùng có thể đặt những câu hỏi về điểm đến, khách sạn, nhà hàng, thời tiết hay bất cứ câu hỏi gì khác, hệ thống sẽ cung cấp cho bạn đầy đủ thông tin hoặc có rất nhiều người từ có kinh nghiệm hoặc hiểu biết sẽ trả lời cho bạn Những chuyến đi và kinh nghiệm thực tế được người dùng chia sẻ cho những người khác, từ đó có thể dễ dàng thiết kế lịch trình cho chuyến đi của mình

Trang 9

1.2 Đối tượng nghiên cứu

Đối tượng nghiên cứu trong đề tài này bao gồm cả 2 phía người dùng và nhà cung cấp thông tin về Homestay

Khi đã truy vào hệ thống, người dùng có thể truy cập hệ thống để xem thông tin về địa điểm, các bình luận và hình ảnh của người dùng trong hệ thống đăng tải về địa điểm nhằm giới thiệu kinh nghiệm du lịch của họ cho những người khác, được tìm kiếm địa điểm homestay có sẵn trong hệ thống Đồng thời người dùng cũng được phép bình luận và đăng tải hình ảnh trải nghiệm về các địa điểm, lưu lại địa điểm du lịch và các đơn vị cung cấp dịch vụ để xem sau, chia sẻ địa điểm lên các trang mạng xã hội; thêm địa điểm du lịch mới được phát hiện và khai phá nhanh chóng bằng cách đăng tải hình ảnh địa điểm, vị trí địa điểm này có thể được định vị tự động hoặc do người dùng viết

Nhóm chủ Homestay cung cấp các dịch vụ du lịch được phép truy cập hệ thống như một khách du lịch, đồng thời nhóm người này có thể thêm thông tin như giá tiền, các dịch

vụ homestay mà mình cung cấp cho khách du lịch biết đến

Nhóm quản trị sẽ quản trị các tài khoản người dùng (cấp quyền, sửa, vô hiệu tài khoản), thông tin địa điểm du lịch, dữ liệu Tỉnh thành, quản lý các bài viết của nhóm người

dùng còn lại, quản lý tin tức du lịch, quản lý loại hình dịch vụ

1.3 Phạm vi đề tài

Ứng dụng gợi ý vị trí homestay có 3 phần chính, phần ứng dụng giúp người dùng tìm kiếm địa điểm và thao tác với hệ thống được chạy trên nền tảng web, được xây dựng bằng thư viện lập trình ReactJs và ngôn ngữ Javascript Phần tiền xử lí dữ liệu và chuẩn hoá sẽ nằm ở backend của ứng dụng chạy trên môi trường NodeJs sử dụng framework NestJs và ngôn ngữ lập trình Typescript – được xây dựng trên nền Javascript Module cuối cùng là module gợi ý, được xây dựng trên nền ngôn ngữ lập trình Python, đây là module chính, là đầu não của hệ thống

Hệ thống tập trung vào việc đưa ra những gợi ý về các địa điểm nhà trọ, khách sạn, homestay trong phạm vi thành phố Đà Lạt, tỉnh Lâm Đồng, Việt Nam Tổng cộng có 356

Trang 10

địa điểm nằm rải rác toàn thành phố Sau đó, người dùng có thể sử dụng những gợi ý được

hệ thống đưa ra nhằm đưa ra lịch trình tốt nhất cho chuyến đi

Hệ thống không chịu trách nhiệm thanh toán cho người dùng mà chuyển người dùng đến một trang web thứ 3 (Booking.com – đây là một trang web lớn, có uy tín trong lĩnh vực đặt phòng khách sạn) tại đây người dùng có thể thực hiện đặt phòng, thanh toán theo những gợi ý mà hệ thống đưa ra

1.3.1 Phạm vi chức năng:

Như đã đề cập ở phạm vi đề tài, hệ thống không tích hợp chức năng thanh toán Người dùng có nhu cầu thanh toán có thể sử dụng trang web thứ 3 do hệ thống đưa ra để thanh toán và thực hiện đặt phòng

Cung cấp khả năng tìm kiếm homestay, khách sạn, nhà nghỉ với hơn 300 địa điểm

được chọn lựa

Trực quan hoá gợi ý cho người dùng bằng cách sử dụng bản đồ được cung cấp

bởi google map Ngoài ra hệ thống còn gợi ý tuyến đường di chuyển ngắn nhất cho người dùng

Trực quan hoá thông tin: Để giúp người dùng đưa ra lựa chọn tốt hơn, hệ thống thu

nhập các đánh giá, hình ảnh, bình luận của các người dùng có thực khác từ một nguồn đáng tin cậy Các thông tin được đưa ra gồm: Hình ảnh địa điểm, chi tiết từng phòng; các dịch

vụ được cung cấp miễn phí/tính phí tại khách sạn, homestay, nhà nghỉ do chủ quản cung cấp; thời gian đặt phòng, số lượng người trong phòng, mức giá,

1.4 Hướng tiếp cận

1.4.1 Khảo sát ứng dụng liên quan

điểm và route Địa điểm lớn, không có homestay nhỏ

Trang 11

Agoda Thông tin chi tiết Chưa có recommend địa

điểm và route Địa điểm lớn, không có homestay nhỏ

1.4.2 Khảo sát người dùng

Độ tuổi của người dùng được khảo sát được nhắm đến nằm trong khoảng lớn hơn 18 tuổi, đây cũng là độ tuổi có nhu cầu du lịch lớn, vì thế độ tuổi có thể xem như một tiêu chí đánh giá độ chính xác của khảo sát

Về số lần du lịch trong một năm, hơn 40% số người được hỏi cho biết họ đi du lịch hơn 2 lần trong một năm, còn lại là 1 đến 2 lần trong 1 năm, chỉ có một số ít người được

Trang 12

hỏi không đi du lịch, chỉ khoảng 10%, đây là dấu hiệu cho thấy người trẻ hiện nay ưa thích

đi du lịch và có nhiều kinh nghiệm trong việc trải nghiệm du lịch

Câu hỏi tiếp theo về kế hoạch thực hiện chuyến đi, tại đây dữ liệu khảo sát có sự phân hoá mạnh, với hơn 2/3 số người được hỏi có lập kế hoạch di chuyển trước mỗi chuyến đi, cho thấy nhu cầu lập bản đồ di chuyển, lịch trình cao => cần tối ưu tuyến đường di chuyển

Sau khi lập dược kế hoạch di chuyển trong ngày, người ta thường hướng đến việc tìm kiếm nơi ở, cách được lựa chọn nhiều hơn là tìm kiếm nơi ở trên mạng

Trang 13

Để củng cố cho chủ đề nghiên cứu, nhóm khảo sát đặt ra câu hỏi về nhu cầu của người dùng, liệu người dùng có cần một nơi lưu trú gần địa điểm du lịch, câu trả lời khá bất ngờ với hơn 71% người được hỏi có nhu cầu chọn điểm du lịch gần nơi lưu trú

Để tìm được nơi ở ưng ý, gần 80% người hỏi lựa chọn nơi ở dựa theo số review, số sao được bình chọn bởi những người khác đã trực tiếp trải nghiệm dịch vụ, đây cũng là công thức mà nhóm chọn để thực hiện gợi ý địa điểm cho người dùng

=> Thông qua khảo sát trên, nhóm nhận thấy nhu cầu tìm kiếm địa điểm và gợi ý, cùng với lên lịch trình di chuyển sao cho tối ưu là cần thiết, vì thế đề tài Xây dựng ứng dụng gợi

ý địa điểm homestay ra đời

Trang 14

Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 2.1 Lựa chọn màu sắc

Màu sắc là một phần thiết yếu của sự tương tác giữa con người và máy tính, và tương

tự như các yếu tố khác như kiểu chữ, các nhà thiết kế nên lựa chọn màu sắc một cách cẩn thận Phối màu là một thuật ngữ mà các nhà thiết kế sử dụng để mô tả sự kết hợp màu sắc

mà họ sử dụng trong thiết kế GUI Vì có vô số sự kết hợp màu sắc ngoài kia, nên thật khó

để quyết định cách phối màu nào phù hợp nhất cho sản phẩm của bạn May mắn thay, chúng ta có lý thuyết về màu sắc, một môn học giúp chúng ta lựa chọn các kết hợp màu cân bằng và hiệu quả

Giới hạn tổng số màu: Để đạt được sự hài hòa trong kết hợp màu sắc là một trong

những nguyên tắc chính của lý thuyết màu sắc Khi tạo một lược đồ mới, chúng ta có thể muốn thêm hàng tá màu vào đó Nhưng tốt hơn hết là nên tránh sự cám dỗ đó vì thực sự khó đạt được sự cân bằng về thị giác khi sử dụng quá nhiều màu sắc

Vì vậy, giữ cho bảng màu đơn giản, với tối đa hai hoặc ba màu Như vậy, có thể tạo

ra các kết hợp hình ảnh thú vị bằng cách chơi với các sắc thái của những màu đó

Trang 15

Sử dụng bánh xe màu để chọn màu: Bước tiếp theo là hiểu cách chọn màu sắc thực

tế Các nhà thiết kế thường dựa vào bánh xe màu để giải quyết vấn đề này Bánh xe màu bao gồm các màu cơ bản (đỏ, vàng, xanh lam), các màu thứ cấp (hỗn hợp các màu cơ bản; cam, xanh lục và tím) và các màu cấp ba (các màu được tạo ra bằng cách trộn các phần bằng nhau của một màu chính và một màu phụ; citron, russet, buff)

Có ba kiểu phối màu phổ biến có thể tạo bằng bánh xe màu:

Trang 16

Đơn sắc: Các lược đồ đơn sắc sử dụng một màu duy nhất, nhưng với các biến thể của

sắc thái, sắc thái và tông màu của màu Đề án này rất dễ nhìn; vì các màu sắc kết hợp với nhau một cách tự nhiên, chúng tạo ra hiệu ứng nhẹ nhàng

Tương tự: Các cách phối màu tương tự sử dụng một số màu có liên quan — một màu

là màu chủ đạo, trong khi các màu khác hỗ trợ nó Màu sắc hỗ trợ làm phong phú thêm sơ

đồ và làm cho nó hấp dẫn hơn về mặt thị giác

Trang 17

Bổ túc: Ở dạng cơ bản nhất, các sơ đồ bổ sung chỉ bao gồm hai màu tương phản (ví

dụ: màu xanh lá cây chủ đạo và màu đỏ nhấn) Đề án này hoạt động tốt nếu bạn muốn thu hút sự chú ý

Hiểu tâm lý của màu sắc: Tập trung vào các khía cạnh tâm lý của màu sắc là một phần

thiết yếu của việc hiểu lý thuyết màu sắc Khi chọn bảng màu UX cho sản phẩm , chúng ta thường sẽ nghĩ về cách mọi thứ sẽ trông như thế nào, nhưng điều quan trọng không kém là nghĩ về cảm giác của chúng Màu sắc có ảnh hưởng tâm lý mạnh mẽ đến não bộ con người, với mỗi màu sắc đại diện cho những ý nghĩa và cảm xúc khác nhau cho người dùng của

bạn

Mặc dù không có ý nghĩa nào được chấp nhận rộng rãi, nhưng đây là một số cảm giác chung mà màu sắc gợi lên cho hầu hết mọi người:

• Màu đỏ: nguy hiểm, quan trọng, tình yêu Màu đỏ được gọi là màu của năng lượng

— chỉ cần nhìn vào nó có thể làm tăng mạch, nhịp tim và sự trao đổi chất của một

Trang 18

người Đây là một màu sắc tuyệt vời để thu hút sự chú ý của khách truy cập; hãy thử sử dụng nó để làm nổi bật các yếu tố quan trọng nhất trên trang của bạn

• Màu cam: năng lượng, lạc quan, vui vẻ Màu cam có một sự rung cảm tích cực về năng lượng Nó cũng liên kết với các sản phẩm rẻ tiền, làm cho nó trở thành một màu sắc phù hợp cho các cửa hàng thương mại điện tử nếu bạn muốn làm nổi bật mức giá tốt nhất

• Màu vàng: hạnh phúc, sự quan tâm, ấm áp Màu vàng biểu thị tính cách nhiều nắng; khi kết hợp với màu đen, nó sẽ nhanh chóng chỉ huy sự chú ý (Hãy nghĩ về những chiếc taxi màu vàng ở NYC chẳng hạn.)

• Màu xanh lá cây: tăng trưởng, thành công, thiên nhiên Màu xanh lá cây là điều tuyệt vời cho những sản phẩm gần gũi với thiên nhiên Nó cũng là một màu phổ biến để sử dụng trí thông minh giao diện người dùng, cho người dùng tín hiệu rằng một thao tác đã hoàn tất thành công

• Màu xanh lam: sự tin tưởng, thoải mái, bình tĩnh Màu xanh dương tượng trưng cho sự thư thái và thoải mái Các thương hiệu yêu thích màu sắc này vì nó tạo cho khách hàng ấn tượng về sự an toàn bên trong

• Màu tím: Tím đậm cho ta cảm giác tinh tế, bí ẩn, mạnh mẽ Màu thích hợp để chọn làm thương hiệu cho những sản phẩm thuộc loại mang tính sáng tạo Màu tím thường được liên kết với hoàng gia cũng như các sản phẩm xa xỉ

• Màu đen: quyền lực, tinh tế, bí ẩn Hầu hết các thương hiệu giới hạn màu đen cho văn bản và điểm nhấn Là màu chính, màu đen có thể nổi bật trên các trang web thời trang để truyền tải cảm giác sang trọng

• Màu trắng: sạch sẽ, khỏe mạnh, ngây thơ Màu trắng thường khiến liên tưởng đến sức khỏe và sự sạch sẽ Các nhà thiết kế thường chọn màu này để gợi ý về độ an toàn của sản phẩm, đặc biệt là đối với thiết bị y tế và các sản phẩm công nghệ cao

Tuổi và màu sắc: Tuổi tác cũng đóng một vai trò trong sở thích về màu sắc Faber

Birren, tác giả của Tâm lý học Màu sắc và Liệu pháp Màu sắc, phát hiện ra rằng những người trẻ tuổi có xu hướng thích những màu có bước sóng dài hơn (chẳng hạn như đỏ và

Trang 19

cam), trong khi những người lớn tuổi thích những màu có bước sóng ngắn hơn (chẳng hạn như xanh lam) Nghiên cứu tương tự của Joe Hallock về giới tính và sở thích màu sắc đã xác nhận những phát hiện của Birren, nhưng cũng cho thấy rằng nhiều nhóm tuổi thích

màu tím hơn

Biểu đồ các màu yêu thích theo nhóm tuổi; các nghiên cứu phát hiện ra rằng những người trẻ tuổi có xu hướng thích những màu có bước sóng dài hơn (chẳng hạn như đỏ và cam), trong khi những người lớn tuổi thích những màu có bước sóng ngắn hơn (chẳng hạn như xanh lam)

Trang 20

Giới tính và màu sắc:

Dưới đây là tóm tắt nhanh về nghiên cứu:

• Màu xanh là màu phổ biến nhất cho cả nam và nữ

• Mặc dù được nhiều người tin tưởng, màu hồng không phải là màu yêu thích của phụ nữ

• Màu cam, nâu và vàng là những màu không được ưa chuộng nhất đối với cả nam

Trang 21

Trong một hệ thống gợi ý thường có nhiều bước, nhưng chúng có thể được đánh giá

và chia làm 3 nhóm chính, để giữ nguyên tính đúng đắn, bài viết sẽ giữ nguyên các thuật ngữ vì tính chuyên môn của nó:

Candidate generations: Áp dụng chiến thuật “Chia để trị” Trong bước này, hệ thống

chủ yếu chia nhỏ dữ liệu thành từng “cụm khác nhau” nhằm tăng tính cụ thể cho đối tượng được gợi ý

Scoring system: Chấm điểm dữ liệu - trong bước số 2 để đưa ra kết quả gợi ý, hệ

thống cần chuẩn hoá dữ liệu được đưa vào từ bước thứ nhất về một dạng có thể phân tích được Sau đó thực hiện “chấm điểm” dữ liệu đầu vào dựa trên những tiêu chí được định sẵn, sau đó chuyển đến bước thứ 3 – bước cuối cùng

Re-ranking system: Phân chia thứ hạng dữ liệu – sau bước chấm điểm, ta đã có tiêu

chí để đánh giá xem dữ liệu nào tốt hơn, dữ liệu nào nên được sử dụng Dựa vào đó, hệ thống cần áp dụng thêm các ràng buộc để tạo ra thứ hạng của dữ liệu từ tốt nhất đến kém nhất Đây cũng chính là đầu ra của một hệ thống gợi ý cơ bản

Với mỗi loại dữ liệu và yêu cầu khác nhau, các thuật toán gợi ý cũng phải thay đổi cho phù hợp, dựa vào độ giống nhau, người ta chia các hệ thống, thuật toán gợi ý làm 2 loại:

Content based recommend system: Hệ thống gợi ý dựa trên nội dung Sử dụng bộ

dữ liệu có sẵn, các hệ thống dạng này phân tích và hiểu các thuộc tính của sản phẩm Sau

đó đưa ra những gợi ý tương tự với những gợi ý giống những gợi ý trước đó

Ví dụ: Khi sử dụng Youtube, bạn hay nghe bài Bình yên những phút giây của Sơn Tùng MTP, hệ thống biết được bài hát đó giống với bài Chiếc khăn gió ấm, hệ thống sẽ

Trang 22

đưa ra gợi ý Chiếc khăn gió ấm cho bài tiếp theo Ứng dụng đang nghiên cứu thuộc về dạng này

Collaborative Filtering recommend system: Hệ thống gợi ý dựa trên người dùng –

sự tương thích Thông qua một chu trình xử lí, hệ thống có thể đánh giá bạn “giống” những người nào, và từ đó tìm kiếm và đưa ra những “sản phẩm” mà người dùng kia thích

Ví dụ: khi sử dụng một số trang web thương mại điện tử như Shopee, khi sử dụng trang web, nếu hệ thống biết được bạn và người dùng khác cùng thích một món đồ nào đó,

nó có thể gợi ý cho bạn những món đồ mà người kia đã thích

Trong quá trình hệ thống hoạt động, độ tương tự của dữ liệu (similar metric) được

tính toán từ các vector dữ liệu Về cơ bản, cả 2 loại hệ thống gợi ý đều dựa vào độ tương

tự của dữ liệu đầu vào, có rất nhiều thuật toán nhằm tính toán độ giống nhau của dữ liệu, sau khi nghiên cứu, nhóm đã chọn được thuật toán phù hợp để giải bài toán được đặt ra: Gợi ý địa điểm

2.2.1 Kmean Clustering algorithms

Clustering hay còn gọi là phân cụm: là kĩ thuật phân tích dữ liệu phổ biến nhất, nó

được sử dụng để tạo ra sự hiểu biết (intuition) về cấu trúc của dữ liệu được sử dụng Ngoài

ra, ta còn có hiểu nó có nhiệm vụ phân cụm dữ liệu, sao cho dữ liệu được xác định là trong cùng một cụm (cluster) là giống nhau, trong khi dữ liệu nằm trong cụm khác nhau là khác nhau Tóm lại, clustering là quá trình tìm ra và chia nhóm những dữ liệu giống nhau trong một nhóm dữ liệu lớn, sao cho dữ liệu nằm ở nhóm khác nhau là khác nhau hoàn toàn bằng cách sử dụng giá trị vector được tính từ công thức khoảng cách Euclidean hoặc khoảng

cách dựa trên sự tương quan (correlation-based distance) Một ví dụ trực quan cho quá

trình phân cụm (clustering) là phân nhóm khách hàng dựa trên số lượng tiền sử dụng

Trang 23

Thuật toán K-mean là thuật toán phân cụm được sử dụng phổ biến Thuật toán này

nhận dữ liệu chuyển hoá nó thành các vector trong không gian và coi nó là các điểm, tính toán và tìm ra nhóm mà điểm này thuộc về

Chi tiết thuật toán có thể tìm thấy ở mục Reference, ta sẽ không quá đi sâu vào nguyên

lí của thuật toán mà chỉ cho biết cách thuật toán hoạt động

Đầu vào: Thuật toán K-mean nhận vào tập dữ liệu X và số lượng cụm cần tìm, kí hiệu

là K

Đầu ra: Trung tâm của cụm(cluster) M và nhãn cho từng điểm dữ liệu Y

Cách hoạt động:

1 Chọn K điểm bất kì làm trung tâm ban đầu

2 Tính khoảng cách giữa các điểm đến K tâm

3 Nhóm các điểm vào cụm gần nhất

4 Kiểm tra sự thay đổi các thành viên trong cụm nếu việc phân chia các điểm ở bước 3 không khác với lần trước đó thì ta đã tìm được đúng cụm mà dữ liệu thuộc về nên dừng thuật toán

Hình 1 Phân cụm dữ liệu

Trang 24

5 Cập nhật tâm cho từng cụm bằng cách lấy trung bình cộng khoảng cách của các điểm dữ liệu dược gán vào cluster đó sau bước 3

6 Quay lại bước 3

Minh hoạ:

Trước khi áp dụng thuật toán K-mean, ta cần xác định được số lượng cụm tối ưu của tập

dữ liệu, nếu số cụm nhiều quá sẽ gây phân mảnh dữ liệu, nếu ít quá thì recommendation sẽ kém hiệu quả, vì thế, để tìm ra số lượng cụm cần thiết, ta sử dụng kèm phương pháp Ebow

Phương pháp Ebow là phương pháp để xác định sự thay đổi của hàm biến dạng – độ biến

dạng của dữ liệu được phân cụm khi tăng hoặc giảm số cụm Tại điểm có hàm biến dạng

suy giảm bắt đầu suy giảm một cách tuyến tính, đó là số lượng cụm ta cần tìm Tức là từ sau điểm đó, sự thay đổi của thuật toán K-mean là không đáng kể

Trang 25

Ví dụ: Hình dưới áp dụng phương pháp Ebow để tìm ra số cụm cho bài toán nào đó Với

trục tung là giá trị của hàm suy giảm, trục hoành là giá trị của số cụm ứng với mỗi giá trị

của hàm suy giảm:

Tại vị trí K=4, sự biến thiên của thuật toán K-mean không đáng kể (bắt đầu giảm tuyến tính), ta thấy K=4 là số cụm tối ưu, 4 là số cụm ta chọn cho mô hình K-mean

Trên đây là cơ sơ lí thuyết để giải bài toán “Gợi ý homestay”, chi tiết sẽ được mô tả phía dưới

Trang 26

2.3 Cơ sở công nghệ

2.3.1 Reactjs

ReactJS là một thư viện JavaScript mã nguồn mở được thiết kế bởi Facebook để tạo

ra những ứng dụng web hấp dẫn, nhanh và hiệu quả với mã hóa tối thiểu Mục đích cốt lõi của ReactJS không chỉ khiến cho trang web phải thật mượt mà còn phải nhanh, khả năng

mở rộng cao và đơn giản

Sức mạnh của nó xuất phát từ việc tập trung vào các thành phần riêng lẻ Chính vì vậy, thay vì làm việc trên toàn bộ ứng dụng web, ReactJS cho phép một developer có thể phá vỡ giao diện người dùng phức tạp thành các thành phần đơn giản hơn

Trang 27

2.3.2 Github

GitHub là một hệ thống quản lý dự án và phiên bản code, hoạt động giống như một mạng xã hội cho lập trình viên Các lập trình viên có thể clone lại mã nguồn từ một repository và Github chính là một dịch vụ máy chủ repository công cộng, mỗi người có thể tạo tài khoản trên đó để tạo ra các kho chứa của riêng mình để có thể làm việc Github có đầy đủ những tính năng của Git, ngoài ra nó còn bổ sung những tính năng về social để các developer tương tác với nhau

Github cung cấp các tính năng social networking như feeds, followers, và network graph để các developer học hỏi kinh nghiệm của nhau thông qua lịch sử commit

Trang 28

2.3.3 Javascript

JavaScript là ngôn ngữ lập trình website phổ biến hiện nay, nó được tích hợp và nhúng vào HTML giúp website trở nên sống động hơn JavaScript đóng vai trò như là một phần của trang web, thực thi cho phép Client-side script từ phía người dùng cũng như phía máy chủ (Nodejs) tạo ra các trang web động

JavaScript là một ngôn ngữ lập trình thông dịch với khả năng hướng đến đối tượng

Là một trong 3 ngôn ngữ chính trong lập trình web và có mối liên hệ lẫn nhau để xây dựng một website sống động, chuyên nghiệp:

HTML: Hỗ trợ trong việc xây dựng layout, thêm nội dung dễ dàng trên website CSS: Hỗ trợ việc định dạng thiết kế, bố cục, style, màu sắc,…

JavaScript: Tạo nên những nội dung “động” trên website Cùng tìm hiểu rõ hơn ở phần dưới đây

Ngày đăng: 09/08/2022, 16:40

🧩 Sản phẩm bạn có thể quan tâm

w