1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Final project technical report project title facebook data analysis

21 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Facebook Data Analysis
Tác giả Nguyen Phu Loc
Trường học Standard format not all caps
Chuyên ngành Data Analysis with Python
Thể loại Final Project
Năm xuất bản 2025
Thành phố Standard format not all caps
Định dạng
Số trang 21
Dung lượng 5,31 MB

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

Nội dung

Problems Ngày nay, việc thu thập dữ liệu cũng như phân tích dữ liệu đang trở nên phổ biến cũng như rất cần thiết cho nhi ều mục đích khác nhau như phân tích thị trường, tìm hiểu các xu

Trang 1

Final Project Technical Report Project Title: FACEBOOK DATA ANALYSIS

Name: Nguyen Phu Loc

Trang 2

Final Project - Data Analysis with Python -

Nguyen Phu Loc

4.1 Predicting number of comments and shares based on number of reactions

4.2 Categorizing posts based post hour using K-means

5 Comments Sentiment analysis

6 Conclusion

1 Problems

Ngày nay, việc thu thập dữ liệu cũng như phân tích dữ liệu đang trở nên phổ biến cũng như rất cần thiết cho

nhi ều mục đích khác nhau như phân tích thị trường, tìm hiểu các xu hướng hay chỉ là tìm hiểu thói quen của

m ột người dùng, ….

Final Project yêu cầu crawl dữ liệu của một fanpage trên facebook và phân tích dữ liệu ấy để đưa ra những kết

luận chính xác từ đó giúp chúng ta hiểu hơn về sự hoạt động cũng như mức độ tương tác của người dùng về

page đó

2 Tools

Trang 3

from facebook_scraper import get_posts

Sau quá trình xử lí xử liệu, việc trực quan hóa dữ liệu giúp ta có một cái nhìn trực quan hơn về dữ liệu so với việc

nhìn vào các dữ liệu dạng thô Python cho phép trực quan hóa dữ liệu thống qua các thư viện như ,

Đ ể thực hiện đề tài này, chúng ta sẽ sử dụng dữ liệu được crawl từ trang facebook v ới

16 tri ệu người theo dõi - một fanpage chuyên cập nhật tin tức về bóng đá bao gồm kết quả các trận đấu, câu

chuy ện hấp dẫn bên lề và đặc biệt là tin tức chuyển nhượng của các cầu thủ, …

numpy pandas

matplotlib seaborn wordcloud

F abrizio Romano

Trang 4

for post in get_posts(FANPAGE_LINK,

options={"comments": True, "reactions": True, "allow_extra_requests": True},

extra_info=True, pages=PAGES_NUMBER, cookies=COOKIE_PATH):

Trang 5

Tách Reactions ra t ừng loại và làm sạch dữ liệu

3.3 Statistics and Visualization

Th ời gian thu thập dữ liệu

Trang 6

💡 Kho ảng thời gian thu thập dữ liệu trong vòng 6 ngày với 120 bài post, trung bình 20 post/ngày - một con

s ố khá lớn Có thể kết luận rằng fanpage này thường xuyên cập nhật thông tin với tần suất cao.

T ương tác hàng ngày

💡 Trong thời gian thu thập dữ liệu, sự tương tác đối với post thay đổi qua từng ngày Dễ thấy nhất với sự

chênh lệch lớn giữa số Reactions, ngày 27/11 cao nhất với gần 2 triệu lượt reactions, trong khi thấp nhấp ngày 25 với vỏn vẹn chỉ gần 250.000 lượt reations (tương đương 1/8 so với ngày 27) Đối với số lương lượt comments và shares có sự thay đổi nhẹ với sự nổi bật hơn trong ba ngày 26, 27 và 29

Th ống kê từng loại emotions qua từng ngày

df_emotions = df_reactions[['time', 'like', 'love', 'haha', 'wow', 'sad', 'angry', 'care']]

Trang 7

Th ống kê số Post qua từng giờ

💡 Nhìn vào bi ểu đồ, ta có thể dễ dàng thấy được fanpage thường đăng post vào khoảng thời gian từ 14h

đêm đ ến 5h sáng hôm sau Đặc biệt tuần suất đăng vào thời gian 23h và 0h là cao nhất với 11 post

Ngoài ra, fanpage không đăng bài vào kho ảng thời gian từ 9h - 12h hằng ngày

Th ống kê số lượt tương tác đối với post được đăng vào các khung giờ trong ngày

Trang 8

Post v ới số lượt reactions nhiều nhất

S ố post đạt trên 100.000 lượt reaction

💡 Trên t ổng số 120 post được đăng, có tới 16 post có trên 100.000 lượt reactions, chiếm 13,33% Nhìn

chung s ố lượt tương tác của fanpage qua các bài viết là khá lớn

Post v ới số lượng lượt Comments lớn nhất

Trang 9

Post v ới số lượng Comments trên 2000 lượt

💡 Trên tổng số 120 post được đăng trong vòng 6 ngày, có tới 27 post có số lượt comments trên 2000

Post v ới số lượng lượt shares lớn nhất

Post v ới số lượng lượt share trên 1000

💡 Có 11 post với số lượng lượt chia sẻ (share) trên 1000

Theo th ống kê post với số lượng reactions, comments và shares lớn nhất, dễ thấy

m ột post có đủ 3 yếu tố trên với 484000 reactions, 16000 comments và 19000

shares D ự đoán trong 6 ngày dữ liệu được thu thập, có một sự kiện về bóng đá thu

hút đ ược nhiều người chú ý Đúng như dự đoán, vào ngày 26/11, trong trận đấu

gi ữa Manchester United và Everton, Alejandro Garnacho đã có một pha ngả bàn

đèn đ ẹp mắt mở tỉ số cho MU, và được so sánh với thần tượng của anh - một trong

Trang 10

Th ống kê số lượt Comments, Shares qua các ngày

Trang 11

💡 Dễ dàng nhận thấy, hai ngày 26 và 27, tỉ lệ số lượt comments và shares chiếm đa số, thể hiện sự tương

tác m ạnh trong 2 ngày này Dự đoán có sự kiện lớn liên quan đến bóng đá khiến nhiều người quan tâm

Th ống kê về tỉ lệ giữa các emotions

💡 Ng ười xem đa số ưa thích sử dụng 2 loại emotions chủ yếu là ‘like’ và ‘love’, trong khi số lượt like chiếm

t ới 82,5% tổng số lượt reactions Ngoài ra, các loại emotions còn lại như ‘haha’, ‘wow’, ‘sad’,… chiếm tỉ

tr ọng rất nhỏ

Th ống kê mật độ của tổng số lượt reactions

Trang 12

Th ống kê mật độ của tổng số lượt Comments và Shares

M ối quan hệ giữa số emotions và reactions count

Trang 13

💡 Bi ểu đồ scatter liên hệ giữa reaction_count và các yếu tố còn lại như số lượt like, love, comments,

shares, … D ựa vào biểu đồ, chúng ta có thể dễ dàng nhận thấy mối quan hệ tuyến tính giữa các yếu tố

Phân tích post text

df_text = raw_df[['post_id','post_text']]

text = str(df_text['post_text'])

df_text

from wordcloud import WordCloud, STOPWORDS

wordcloud = WordCloud(stopwords=STOPWORDS, background_color='white', max_words=300, width=500, height=300).generate(text)

plt.figure(figsize=(40,20))

plt.clf()

plt.imshow(wordcloud)

plt.axis('off')

Trang 14

💡 M ột số từ khóa thường xuyên xuất hiện trong các post được đăng như : Havert, Arteta, Nico, Paz, Ten

Hag, moment, Bayer, Chelsea, Newcastle, ….

Phân tích Comments

from wordcloud import WordCloud, STOPWORDS

wordcloud = WordCloud(stopwords=STOPWORDS, background_color='white', max_words=300, width=500, height=300).generate(text)

Trang 15

4.1 Predicting number of comments and shares based on number of

Trang 16

sns.histplot(df_interactions['like'], ax=axs[0, 0], label='like')

sns.histplot(df_interactions['love'], ax=axs[0, 1], label='love')

sns.histplot(df_interactions['wow'], ax=axs[0, 2], label='wow')

sns.histplot(df_interactions['haha'], ax=axs[1, 0], label='haha')

sns.histplot(df_interactions['care'], ax=axs[0, 3], label='care')

sns.histplot(df_interactions['angry'], ax=axs[1, 2], label='angry')

sns.histplot(df_interactions['sad'], ax=axs[1, 1], label='sad')

axs[1, 3].set_visible(False)

plt.suptitle('Biểu đồ thể hiện phân bố theo số lượng của từng loại cảm xúc', fontsize=20)

plt.show()

fig, axes = plt.subplots(nrows=2, ncols=4, figsize=(24, 10))

sns.regplot(data=df_interactions, x="reaction_count", y="like", ax=axes[0, 0])

sns.regplot(data=df_interactions, x="reaction_count", y="love", ax=axes[0, 1])

sns.regplot(data=df_interactions, x="reaction_count", y="wow", ax=axes[0, 2])

sns.regplot(data=df_interactions, x="reaction_count", y="haha", ax=axes[0, 3])

sns.regplot(data=df_interactions, x="reaction_count", y="care", ax=axes[1, 0])

sns.regplot(data=df_interactions, x="reaction_count", y="angry", ax=axes[1, 1])

sns.regplot(data=df_interactions, x="reaction_count", y="comments", ax=axes[1, 2])

sns.regplot(data=df_interactions, x="reaction_count", y="shares", ax=axes[1, 3])

plt.suptitle("Biểu đồ thể hiện phân bố của từng loại reaction theo tổng số reactions")

plt.subplots_adjust(top=0.9)

plt.show()

Trang 17

Bi ểu đồ liên hệ giữa các yếu tố

Trang 18

from sklearn.model_selection import train_test_split

from sklearn.metrics import mean_squared_error, mean_absolute_error

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=10)

Trang facebook đ ược đặt tại Đức với múi giờ GMT +1 Chúng ta chuẩn hóa đưa thời gian

v ề đúng thời gian đăng bài với múi giờ nước ngoài

Trang 19

elif df_interactions['post_hour'].iloc[i] >= 4 and df_interactions['post_hour'].iloc[i] <= 12:

Convert categorical variable into integers

from sklearn.preprocessing import LabelEncoder

Trang 20

correct_labels = sum(target == labels)

print("Result: %d out of %d samples were correctly labeled." % (correct_labels, target.size))

print('Accuracy score: {0:0.2f}' format(correct_labels/float(target.size)))

5 Comments Sentiment Analysis

💡 Sử dụng model và data đã được huấn luyện từ trên để đưa vào phân tích comment của các

post đã được crawl về

Trang 21

💡 Nh ận xét: Hầu hết các comments ở các post đề mang tích cực, không chứa những từ ngữ tiêu cực,

khiêu khích Điều đó cho thấy sự tương tác bằng comments đối với trang facebook này vừa đa dạng, thường xuyên vừa văn minh, lịch sự, các tin tức được đăng một cách chính xác, không gây ra các cuộc tranh cãi trên facebook

6 Conclusion

💡 Qua bài t ập phân tích dữ liệu của trang Facebook , có th ể thấy rằng trang fanpage

này đã đ ạt được những thành công đáng kể trong việc thu hút người dùng và đem lại một lượng thông tin

l ớn và chính xác

Về mặt người xem và tương tác, đã thu hút được hơn 16 triệu người theo dõi trên khắp

thế giới, đạt được một lượng tương tác rất khủng khiếp trên facebook với hằng trăm ngàn hoặc thậm chí hàng

triệu lượt reactions mỗi ngày Ngoài ra, người bình luận cũng rất văn minh khi mức độ tích cực của các

comments rất cao, cho thấy trang facebook đưa đến nội dung chính xác, không có sự tranh cãi.

Về mặt nội dung, trang Fanpage đã tập trung vào các tin tức liên quan đến bóng đá như kết quả các trận đấu

hấp dẫn, các câu chuyện bên lề sân cỏ Đặc biệt là tin tức chuyển nhượng trong giới cầu thủ Đây được đánh

giá là một trong những trang thông tin đưa tin nhanh và chính xác nhất và tất cả mọi mặt của bóng đá

F abrizioRomano

F abrizioRomano

Ngày đăng: 09/12/2024, 15:40

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w