Tải bản đầy đủ (.pdf) (56 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.12 MB, 56 trang )

ĐẠ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
Sinh viên thực hiện: Vũ Đặng Khương Duy – 19520496
Đinh Huỳnh Thái Bình – 19521264

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


ĐẠ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: SE401.M22.PMCL
Sinh viên thực hiện: Vũ Đặng Khương Duy – 19520496
Đinh Huỳnh Thái Bình – 19521264

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


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


STT

Từ viết tắt

1

API

2

BTS

3

GPS

4

OOA

5

PHP

Ý nghĩa
Viết tắt của Application Programming Interface - Giao diện lập
trình ứng dụng.
Viết tắt của Base Transceiver Station -Trạm thu phát sóng di động
Viết tắt của Global Positioning System - Hệ thống định vị tồn
cầu.

Viết tắt của Object Oriented Analysis - Phân tích theo hướng đối
tượng
Viết tắt của Hypertext Preprocessor - Ngôn ngữ lập trình kịch bản
mã nguồn mở

3


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.
Để hồ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àiliệ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
q báu khơng chỉ trong q 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 q 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 q thầy cơ để hồ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

4


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
5


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
6


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

7



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 ngồ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ự đố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.

8


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

9


địa điểm nằm rải rác tồ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 tố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 tốn. Người
dùng có nhu cầu thanh tốn có thể sử dụng trang web thứ 3 do hệ thống đưa ra để thanh
tố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. Ngồ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 hố 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
Ứng dụng
Traveloka

Ưu điểm
Giao diện đẹp


Nhược điểm
Chưa có recommend địa
điểm và route
Địa điểm lớn, khơng có
homestay nhỏ

10


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

11



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.

12


Để 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.

13


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 ngồ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 đó.

14


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:
15


Đơ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.

16


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

17


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 đã hồ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 u thích màu sắc này vì nó tạo cho
khách hàng ấn tượng về sự an tồ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 hồ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à
18


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 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).

19


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 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
và nữ.




Nam giới thường thích những gam màu sáng, tương phản, trong khi phụ nữ thích
những gam màu nhẹ nhàng hơn.

Trên đây là cơ sở lý thuyết được dùng để lựa chọn màu sắc cho đề tài.

20


2.2 Cơ sở lí thuyết
Hệ thống gợi ý đã được sử dụng rộng rãi trong nhiều lĩnh vực để dự đốn sở thích
hoặc đánh giá của người dùng đối với một sản phẩm hoặc dịch vụ. Hiện nay, hệ thống gợi
ý đã được tích hợp vào rất nhiều nền tảng khác nhau, có thể kể đến: Shopee, Facebook,
Netflix.
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 chun 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ẽ
21


đư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 q trình hệ thống hoạt động, độ tương tự của dữ liệu (similar metric) được
tính tố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 tốn nhằm tính tốn độ giống nhau của dữ liệu,
sau khi nghiên cứu, nhóm đã chọn được thuật tố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. Ngồ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à q 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 q
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.

22


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

Thuật tố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 hố nó thành các vector trong khơng gian và coi nó là các điểm, tính
tốn và tìm ra nhóm mà điểm này thuộc về
Chi tiết thuật tốn có thể tìm thấy ở mục Reference, ta sẽ khơng q đi sâu vào ngun
lí của thuật tố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
23


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 q 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 tốn K-mean là khơng đáng kể.

24


Ví dụ: Hình dưới áp dụng phương pháp Ebow để tìm ra số cụm cho bài tố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 tố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 tốn “Gợi ý homestay”, chi tiết sẽ được mơ tả phía
dưới.

25


×