Professional Documents
Culture Documents
HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Nhóm 18 – IS353.K11
GVHD: Thái Bảo Trân
STT Họ tên MSSV
1 Bùi Nhâ ̣t Minh 16520726
2 Lê Hoàng Đức Huy 16520511
3 Huỳnh Mỹ Phụng 15520655
4 Lê Quố c Tiến 15520883
Nhóm 18 xin chân thành cảm ơn cô đã đồng hành cùng chúng em với môn ho ̣c Ma ̣ng
Xã Hô ̣i học kì vừa qua trong cả viê ̣c giảng da ̣y và chỉ dẫn báo cáo cuố i ki.̀ Chúng em rấ t
biế t ơn và trân tro ̣ng sự tận tiǹ h và chu đáo của cô; nhờ đó, chúng em mới đủ kiế n thức
và kinh nghiê ̣m để thực hiện đươ ̣c bản báo cáo môn ho ̣c này.
Những gì ho ̣c được ngoài viê ̣c giúp chúng em không những có thể hoàn thành môn ho ̣c
mô ̣t cách tố t nhấ t, mà còn cung cấp rấ t nhiề u kiế n thức mà chúng em nghi ̃ sẽ giúp ích
rấ t nhiề u cho mình trong công viê ̣c tương lai.
Cuố i cùng, nhóm 18 chúng em xin đươ ̣c chúc cô sức khỏe, niề m vui và thành công hơn
nữa trong sự nghiệp của mình.
Nhóm 18.
NHẬN XÉT CỦA GIẢNG VIÊN
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
.........................................................................................................................
MỤC LỤC
I. Tổ ng quan ..............................................................................................................2
2.1. ̣
Mô hiǹ h quan hê .................................................................................... 15
III. GĐ2: Phân tích cấ u trúc cô ̣ng đồ ng website mxh Socialife để tim
̀ người dùng
quan tro ̣ng trong ma ̣ng. .............................................................................................. 26
5. Pagerank ................................................................................................................32
I. Tổ ng quan
1. Đă ̣t vấ n đề
Ngày nay, cùng sự phát triển nhanh chóng của internet và nhu cầu giải trí, chia sẻ
thông tin giữa người với người ngày một tăng cao, mạng xã hội đã trở thành một nền
tảng mạnh mẽ để hàng triệu người kết nối với nhau. Với sự ra đời của Facebook, Twitter,
Youtube, Instagram,… mạng xã hội ngày càng lớn mạnh, đa dạng phong phú về nội
dung lẫn hình thức, và ngày càng có sức ảnh hưởng đến những cá nhân, cộng đồng sử
dụng.
Để tiếp cận và có cái nhìn xác thực hơn về nền tảng này, nhóm chúng em quyết
định nghiên cứu đề tài đồ án thiết kế một mạng xã hội: “Mạng xã hội Socialife & Thuâ ̣t
toán tìm kiế m người dùng quan tro ̣ng”.
2. ̀ h nghiên cứu
Tiế n trin
Bao gồ m 2 giai đoa ̣n:
GĐ1: Thiế t kế website ma ̣ng xã hô ̣i Socialife.
GĐ2: Phân tích cấ u trúc cô ̣ng đồ ng website ma ̣ng xã hô ̣i Socialife để tìm
người dùng quan tro ̣ng trong ma ̣ng.
3. Ý nghiã nghiên cứu
Trong giai đoa ̣n 1: Chúng em xây dựng ma ̣ng xã hô ̣i với mô ̣t cô ̣ng đồ ng nhỏ các
nodes có tương tác với nhau để dùng cho viê ̣c phân tić h cấ u trúc trong giai đoa ̣n sau.
Trong giai đoa ̣n 2: Chúng em sẽ dựa trên cô ̣ng đồ ng này để tìm ra các nhân tố quan
tro ̣ng trong ma ̣ng, và áp du ̣ng mô ̣t số kiế n thức đã ho ̣c và nghiên cứu đươ ̣c bên ngoài
vào đây.
User 2
h n tin
Bookmark
<<include>>
Đăng
Tìm iếm
<<include>>
<<include>>
Th ch bài viết
<<include>>
User 1
<<include>>
Đăng nhập
<<include>>
Bình luận
User 3
Thêm/Sửa thông tin Với tài khoản đươ ̣c cấ p, người dùng bắ t đầ u
3.
cá nhân thêm các thông tin cá nhân của miǹ h.
gười dùng đánh dấ u các bài viế t và lưu vào
5. Bookmark
dánh sách của min
̀ h để có thể xem la ̣i.
Theo dõi/hủy theo gười dùng MXH có thể theo dõi và hủy theo
7.
dõi dõi nhau để tương tác.
gười dùng có thể đăng bài viế t lên tường cá
9. Đăng bài viế t
nhân của mình.
Đăng ý
Thông báo:
hập sai, hoặc
thiếu trường b t
buộc
Thông báo:
Không hợp lệ
Không hợp lệ
Hợp lệ
Thông báo
thành công
Đăng nh p
Thông báo:
hập sai, hoặc
thiếu trường b t
buộc
Thành công,
Đúng
chuyển trang
Quên m t h u
Thông báo:
Trường không
hợp lệ
Thông báo:
Email không tồn Không tồn tại
tại
hập/sửa thông
iểm tra các
tin tại trường
trường v a nhập
muốn thay đ i
Thông báo:
Thông tin nhập
vào không hợp
lệ
Tm i m
Thông báo:
Không tìm thấy Không tồn tại
dữ liệu
1.3.6. Bookmark
Bookmark - lưu b i i t
Thông báo: L i
không tìm thấy Không tồn tại
bài viết
Tồn tại
Lưu Post_ID
vào
Bookmark_ID
tương tứng
Thông báo:
Đánh dấu bài
viết thành công
Nh n tin
Click chọn
người d ng để
nh n tin iểm tra thiết
lập bảo mật của
người nhận,
hập nội dung xem x t người
tin nh n này có cho ph p
nhận tin nh n t
người gửi hay
không?
Không cho ph p
Thông báo:
gười d ng này
t chối nhận tin
nh n t bạn.
Gửi tin nh n
đến cho người
nhận.
Đăng b i i t
iểm tra t nh
hập nội dung
hợp lệ của nội
bài viết
dung bài viết
Thông báo: ội
dung bài viết
không hợp lệ
nh lu n b i i t
iểm tra t nh
hập nội dung
hợp lệ của nội
bình luận
dung nhập
Tạo mới
Comment_ID và
lưu dữ liệu trong
Comment_Content
vào
Thông báo: L i
nhập nội dung
Hiển thị
Profile_name và Liên ết
nội dung bình Comment_ID
luận đó lên khu này với Post_ID
vực bình luận của bài viết
của bài viết
Th ch b i i t
Tạo mới
Click th ch bài Like_ID và liên
viết ết với User_ID
và Post_ID đó
Hiển thị
Profile_name Lưu Li e_ID
tương ứng với này vào trường
User_ID đó lên Like_DD bài
khu vực th ch viết tương ứng
của bài viết
Theo i/ theo i
Lưu/loại b
Click theo d i/
User_ID đó vào/
b theo d i
h i
người d ng nào
Follow_List_ID
đó
của người d ng
THICH BAI_VIET
HINH_ANH
PK LIKE_ID PK POST_ID
PK PHOTO_ID
USER_ID FK USER_ID
PHOTO_CONTENT
POST_ID POST_DATE
POST_CONTENT
COMMENT_ID
LIKE_ID
PHOTO_ID BOOKMARK
BINH_LUAN PK BOOKMARK_ID
PK COMMENT_ID
POST_ID
COMMENT_CONTENT USER_ID
USER_ID
COMMENT_DATE NGUOI_DUNG
POST_ID PK USER_ID
PASSWORD
CENTRALITY PROFILE_NAME
PK CENTRALITY_ID FOLLOWING_LIST
FIRST_NAME
PK FOLLOW_LIST_ID
USER_ID LAST_NAME
DEGREE NUMBER_OF_USERS
GENDER
BETWEENESS USER_ID
DATE_OF_BIRTH
CLOSENESS AVATAR
BOOKMARK_ID
GROUP_ID NHOM
FOLLOW_LIST_ID PK GROUP_ID
GROUP_NAME
TIN_NHAN
PK MESSAGE_ID
THONG_BAO
USER_1_ID
PK NOTIFICATION_ID
USER_2_ID
MESSAGE_CONTENT USER_ID
MESSAGE_DATE NOTI_CONTENT
NOTI_DATE
non-
1. USER_ID VARCHAR(5) mã người dùng
nullable
non-
2. PASSWORD VARCHAR(50) mâ ̣t khẩ u
nullable
non-
4. EMAIL VARCHAR(30) điạ chỉ mail
nullable
6. LAST_NAME VARCHAR(50) ho ̣
CHAR(1)
7. GENDER ENUM giới tính
(‘m’, ‘f’)
Ràng
STT Tên thuô ̣c tính Kiể u dữ liệu Ý nghiã
buô ̣c
mã group mà tài
non-
11. GROUP_ID VARCHAR(5) khoản này tham
nullable
gia
non-
13. POST_ID VARCHAR(5) mã bài viế t
nullable
non-
14. COMMENT_ID VARCHAR(5) mã bình luâ ̣n
nullable
non-
15. LIKE_ID VARCHAR(5) mã lầ n thích
nullable
non-
16. PHOTO_ID VARCHAR(5) mã ảnh
nullable
non-
17. MESSAGE_ID VARCHAR(5) mã tin nhắ n
nullable
non-
18. NOTIFICATION_ID VARCHAR(5) mã thông báo
nullable
Ràng
STT Tên thuô ̣c tính Kiể u dữ liệu Ý nghiã
buô ̣c
non-
21. COMMENT_DATE DATE ngày biǹ h luâ ̣n
nullable
DECIMAL
24. CLOSENESS chỉ số closeness
(5,4)
non-
25. GROUP_NAME VARCHAR(50) tên nhóm
nullable
non-
27. NOTI_DATE DATE ngày thông báo
nullable
MESSAGE_CONTE non-
28. VARCHAR nô ̣i dung tin nhắ n
NT nullable
Tổ ng quan đầ y đủ và chuyên nghiê ̣p như mô ̣t ma ̣ng xã hô ̣i thu nhỏ.
Giao diê ̣n trực quan thu hút nhưng đơn giản, hài hòa với thi gia
̣ ́ c người dùng.
Giao diê ̣n trải nghiê ̣m dễ sử du ̣ng, dễ hiể u và thực hiê ̣n.
Tính tố i ưu
Giao diê ̣n có 2 ngôn ngữ, tiế ng anh và tiế ng viê ̣t; phu ̣c vu ̣ người dùng ta ̣i
nhiề u lứa tuổ i.
Tić h hơ ̣p thêm mô ̣t số công cu ̣ cho viê ̣c tố i ưu trải nghiê ̣m người dùng.
Tính đa a ̣ng
Giao diê ̣n có thể tiế n hóa theo ý muố n của người dùng.
Cho phép gửi Feedback về hê ̣ thố ng.
3.2. Yêu cầ u chấ t lươ ̣ng
Tính tiế n hóa
Dễ dàng câ ̣p nhâ ̣t, nâng cấ p phiên bản với tiń h năng vươ ̣t trô ̣i hơn.
Các tiń h năng đa da ̣ng, luôn phát triể n để đáp ứng nhu cầ u của nhiề u người
dùng khác nhau.
Tính tiêṇ du ̣ng
Các bước thực thi, sử du ̣ng đơn giản, ngắ n go ̣n và không phức ta ̣p.
Dễ dàng cho các tài khoản M H tương tác.
Tính hiêụ quả
Hê ̣ thố ng hoa ̣t đô ̣ng trơn tru, công viê ̣c diễn ra đề u và nhanh.
Tự đô ̣ng câ ̣p nhâ ̣t dữ liê ̣u hằ ng ngày; backup theo các khoảng thời gian.
Tính đảm bảo
Hê ̣ thố ng hỗ trơ ̣ người dùng tố t nhấ t và nhanh nhấ t.
Đảm bảm thông tin cá nhân bảo mâ ̣t an toàn.
găn chă ̣n các phầ n mề m, mã đô ̣c hi người dùng sử du ̣ng ma ̣ng xã hô ̣i
Socialife để ho ̣ có thể an tân tuyê ̣t đố i.
4. Giao diêṇ thực của Website
4.1. Màn hin
̀ h đăng nhâ ̣p
Mỗi cá nhân tham gia ma ̣ng xã hô ̣i sẽ có mô ̣t tài khoản để đăng nhâ ̣p vào trang cá
nhân của mình và bắ t đầ u tương tác với mo ̣i người khác.
̀ h trang chủ
4.2. Màn hin
Đây là giao diê ̣n tổ ng thể chung của Socialife, là nơi người dùng sử du ̣ng và tương
tác nhiề u nhấ t. Ta ̣i đây, người dùng sẽ nhìn thấ y các bài đăng của những người ba ̣n,
người mà ho ̣ theo dõi.
III. GĐ2: Phân tích cấ u trúc cô ̣ng đồ ng website mxh
Socialife để tim
̀ người dùng quan tro ̣ng trong ma ̣ng.
Để phân tích mạng xã hội Socialife, mạng được mô hình hoá thành đồ thị dạng G
= (V, E) với V là tập đỉnh (node), E là tập cạnh (liên kết, quan hệ):
Việc đánh giá mạng Socialife được thực hiện thông qua đánh giá các thông số về
độ trung tâm (centrality) khác nhau, cụ thể gồm degree centrality, betweenness
centrality, closeness centrality và eigenvector centrality.
1. Degree Centrality (Độ trung tâm cấp b c)
1.1. Khái niệm
Degree Centrality d ng để xác định các node có tầm ảnh hưởng lớn trong mạng xã
hội: truyền thông tin nhanh, liên kết với nhiều node,… hái niệm degree(cấp độ) chỉ số
lượng kết nối trực tiếp của một node.
Trong nhiều trường hợp, một node càng có ảnh hưởng khi số lượng kết nối càng
cao, tuy nhiên chỉ xác định bằng điều này là chưa đủ.
Cho đồ thị G = (V, E) có n đỉnh, với V là tập đỉnh, E là tập cạnh:
Nếu node này bị loại b thì sẽ gây ra sự tan rã cấu trúc của mạng, tức là các
node sẽ không còn có thể trao đôi thông tin liên lạc với nhau.
2.2. Công thức
Betweenness centrality của một đỉnh được tính bằng t ng số các đường đi ng n
nhất ngang qua đỉnh đang x t chia cho t ng số các đường đi ng n nhất của toàn mạng.
Cho đồ thị G = (V, E) có n đỉnh, với V là tập đỉnh, E là tập cạnh:
Trong đó:
σst(v): số đường đi ng n nhất giữa s và t có qua v
σst: t ng số đường ng n nhất giữa s và t
2.3. Áp dụng betweeness centrality vào mạng xã hội Socialife
Trong đó:
A = (av,t): ma trận kề
M(v): tập node mà được kết nối tới node thứ v
λ: là một hằng số
5. Pagerank
5.1. Random Walks
Hãy xem xét biểu đồ dưới đây. Và giả sử rằng chúng ta thả một phần thông tin lên
đỉnh đ . Sau đó tìm hiể u một vài điều:
Nó lây lan ở đâu đầu
tiên?
Nó lan rộng bao xa?
Các đỉnh, gần với
đỉnh đ sẽ thu được
nhiều thông tin hơn
sau đó những đỉnh ở
xa?
Thông tin sẽ tiếp tục
qua lại mãi mãi hay
cuối cùng chúng ta
sẽ đạt được sự phân
phối n định?
Tuy thí nghiê ̣m này đươ ̣c bắ t đầ u với mô ̣t tiế n triǹ h nhỏ như đồ thi ̣trên nhưng do
tính ngẫu nhiên trở nên chiń h xác hi được áp dụng số lầ n vô ha ̣n, ví du ̣:
Nếu bạn tung đồng xu, không ai có thể dự đoán được bên nào sẽ lên. hưng
nếu bạn tung đồng xu trong một số lần vô hạn, chúng ta sẽ có đươ ̣c xác suấ t
50% mă ̣t hình sẽ xuấ t hiê ̣n - với điều kiện là đồng tiền là công bằng.
Trong trường hợp đồ thị, chúng ta không thể ném tiền. hưng chúng ta có
thể đi dọc theo các cạnh của đồ thị. Chúng ta có thể làm như vậy một cách
ngẫu nhiên với random walker. Đầ u tiên đồ thi ̣ sẽ b t đầu ở đỉnh đ , chọn
một cạnh ngẫu nhiên và đi đến đỉnh ở phía bên kia của cạnh và chúng ta sẽ
lặp lại thí nghiệm đó vô số lần.
Tuy nhiên, vào lúc bắ t đầ u random walkers chỉ có thể đi dọc theo một cạnh duy
nhất nên không cầ n lựa cho ̣n sẽ đế n đin
̉ h nào tiế p theo. hưng nếu chúng được ph p đi
dọc theo hai hoặc ba hoặc bốn cạnh liên tiếp thì nó sẽ trở nên hó hăn hơn để cho ̣n
đỉnh tiế p theo.
Trong thực tế, ta có thể tiń h các bước nhảy:
Bước nhảy đầ u với công thức: x ' = A*x
Trong đó:
Random walkers sẽ đi qua lại và trên thực tế sẽ tiếp tục làm như vậy mãi mãi.
Điều này là do đồ thị là lưỡng cực - có nghĩa là các đỉnh có thể được nhóm theo
cách mà các cạnh không bao giờ kết nối bất kỳ hai đỉnh t cùng một nhóm.
Bất ỳ sự huếch tán thông tin nào trong biểu đồ đều có thể được mô hình hóa
bằng random walks. Tham số thú vị nhất của thuật toán này là độ dài của bước đi ngẫu
nhiên: càng để lâu, thông tin càng lan rộng
Đối với các biểu đồ như vậy, việc phân phối random walkers sẽ không bao giờ
trở nên n định. Có một giải pháp là: lazy random walks.
5.2. Lazy Random Walks
Ý tưởng của việc lazy random walks là chúng ta cho phép random walkers vẫn
ở la ̣i trên một đỉnh với xác suất 1/2.
Do đó, chúng ta có công thức x '= 1/2 *(A + I) * x
Trong công thức này:
I là ma trận đơn vi ̣
Trong hình ảnh bên dưới, độ dày của cạnh tương ứng với giá trị trung bình hình
học của lượng thông tin của các đỉnh liền kề của nó.
Cạnh được xác định bởi thông tin hiện tại: Sự khác biệt về lượng thông tin giữa
các đỉnh liền kề là màu sắ c của đin
̉ h và về lươ ̣ng thông tin giữa các ca ̣nh là cạnh càng
dày, càng có nhiều thông tin chảy dọc theo cạnh.
Các cạnh có một đỉnh liền kề là high-degree có xu hướng được tô màu đ . Đây là
các đỉnh chứa một phần thông tin lớn hơn đáng ể so với phần còn lại của mạng.
hư chúng ta có thể thấy, đây là phân phối hội tụ nên nó ngày càng trở nên ít rõ
ràng hơn nơi thông tin b t nguồn t đó. Trong thực tế, đối với các đỉnh được kết nối tốt,
việc phân phối thông tin (random walkers) gần đúng với phân phối mức độ của
chúng. Điều này có nghĩa là các high-degree sẽ chứa nhiều thông tin tương ứng hơn
các low-degree.
5.3. Personalized Pagerank
Nếu chúng ta thực sự muốn đỉnh chứa thông tin ban đầu đóng vai trò quan trọng
và không bị kẹt trên bất kỳ đỉnh nào, nhưng random walkers vẫn có thể nhảy trở lại
đỉnh cụ thể này với một xác suất nhất định (ví dụ xác suất dịch chuyển tức thời, alpha).
Nó là mô hình phân phối thứ hạng, với điều kiện là khoảng cách random walkers
(còn go ̣i là random surfers) có thể đi t nguồn của họ (nguồn thường được gọi là “hạt
giống”) được xác định bởi alpha.
Trong thực tế, chiều dài đi bộ (walk length) dự kiến là 1 / alpha.
Công thức bây giờ trở thành x'= (1-alpha) * A*x + alpha * E
Ở đây:
alpha là hằng số nằm trong khoảng t 0 đến 1.
E là vectơ chứa nguồn thông tin - tức là trong trường hợp của chúng ta tất cả
đều bằng 0, ngoại tr đỉnh đ nơi thông tin của chúng ta b t đầu lan truyền.
Trong hình ảnh này, alpha được cố định ở mức 1/2 để có thể so sánh với lazy
random walks, alpha ở trường hơ ̣p này là há cao nhưng vẫn cho kết quả là thông tin
vẫn gần với đỉnh hạt giống. Trong trường hợp chúng ta muốn random walkers đi xa
hơn chúng ta cho alpha = 0,1.
Chúng ta muốn nguồn thông tin ban đầu đóng vai trò quan trọng. Gơ ̣i ý theo dõi
cho người dùng là một v dụ như vậy: ếu bạn thường xuyên theo dõi mô ̣t nhóm người,
công cụ tìm iếm sẽ có xác suấ t đưa ra gơ ̣i ý các người dùng gần với các người dùng
bạn thường xuyên theo dõi cao hơn so với các người dùng khác, thuật toán Personalized
PageRank.
5.4. Áp du ̣ng vào ma ̣ng xã hô ̣i Socialife
Thu t toán gợi ý theo i cho người dùng:
Phạm vi: Gọi A là người d ng đang cần gợi ý theo dõi. Tập người d ng được xét
bao gồm: A, danh sách các người dùng mà A đang theo d i ( tập C), và danh sách các
người d ng được các người dùng thuộc tập C theo dõi (tâ ̣p F).
Ví dụ:
Vì đây là thuật toán để đưa ra cho người dùng các gợi theo d i người dùng khác,
ta không chỉ phải xét mối quan hệ “A theo d i C”, mà còn phải xem xét các khía cạnh
khác của mối quan hệ A đến C. Vì vậy, chúng ta sẽ tăng độ phức tạp của thuật toán lên
bằng cách thêm vào chỉ số weight cho các cạnh (edge). Weight của cạnh A C sẽ được
xác định bằng các tương tác của A dành cho C cũng như dựa vào các chỉ số theo dõi của
cả hai.
Weight của 1 cạnh được xác định bằng một hàm số, bao gồm các tương tác t A
đến C: A thích (like) một bài viết của C; A bình luận (comment) vào một bài viết của C.
Một tương tác hác là A đánh dấu (bookmark) bài viết của C nhưng vì đây là hành động
chỉ có A nhìn thấy, nên chúng ta sẽ hông x t đến.
goài ra, chúng ta cũng sẽ x t đến các chỉ số theo dõi:
Nếu tỉ lệ theo d i/được theo dõi của A thấp, điều này sẽ khiến việc A theo
dõi C trở nên “giá trị” hơn.
gười có follower nhiều hơn hi theo d i người có follower thấp hơn sẽ có
giá trị hơn là ngược lại.
Chúng ta có hàm số sau:
W A C = 1 + 0.1*L + 0.25*C + 0.5*(Ratio * FA / FC)
Trong đó:
L: Số lượt like bài viết của C đến t A
C: Số lượt bình luận bài viết của C đến t A
Ratio: Tỉ lệ được theo dõi/theo dõi của A
FA: Số lượng người theo dõi A
FC: Số lượng người theo dõi C
Weight của m i một cạnh sẽ b t đầu với 1. Các số 0.1, 0.25, 0.5 là do em tự đề ra
dựa vào việc nhận xét tầm quan trọng của các chỉ số trên.
Sau khi chu n bị dữ liệu, em sẽ áp dụng
thuật toán Personalized Pageran để tìm ra
các gợi ý theo dõi thích hợp cho m i người
dùng trong mxh Socialife.
Hình khu vực “Who to follow” là danh
sách người dùng mà hê ̣ thố ng Socialife đề
xuấ t cho người dùng để theo dõi.
Sau khi tất cả các pac age đã được cài đặt, chạy command sau để chạy back-end:
python manage.py runserver
2.2. Front-end
Môi trường cài đặt:
"npm": "6.9.0",
"node": "10.16.0",
"yarn": "1.16.0"
Vào thư mục gốc của front-end (socialife), chạy command: yarn install
Sau khi tất cả các pac age đã được cài đặt, chạy command sau để chạy front-end:
npm start
* Lưu ý: Back-end và Front-end đều phải chạy để website có thể hoạt động.
[1] https://en.wikipedia.org/wiki/Centrality?fbclid=IwAR2B7Sru9lJMj9u
WS_sRprUMRshTW4VTzbbjxZRtpCy9owmAr-f6c7185rI
[2] https://www.r-bloggers.com/from-random-walks-to-personalized-
pagerank/
[3]
* Th.viên Lê Hoàng Đức Huy đóng góp tích cực cho dự án Socialife, cả nhóm nhấ t trí
đề nghi ̣ cô giáo thưởng thêm điể m riêng cho bạn.
Xin chân thành cảm ơn cô,
Nhóm 18.