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

Bao cao môn phân tích mạng truyền thông xã hội Đề tài “cào dữ liệu page facebook Để theo dõi tình trạng phat triển của page và bài toan phân tích tình cảm

21 2 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 đề Cào Dữ Liệu Page Facebook Để Theo Dõi Tình Trạng Phát Triển Của Page Và Bài Toán Phân Tích Tình Cảm
Tác giả Nhóm Trịnh Cao Lộc - 3120410298, Trần Văn Phú - 3120410402, Nguyễn Trung Thành - 3120410479, Đỗ Minh Khoa - 3121410269
Người hướng dẫn Trần Thanh Nhã
Trường học Đại Học Sài Gòn
Chuyên ngành Công Nghệ Thông Tin
Thể loại bao cao
Định dạng
Số trang 21
Dung lượng 7,91 MB

Nội dung

NumPy được trang bị cáchàm số đã được tối ưu, cho phép làm việc hiệu quả với ma trận và mảng, đặc biệt là dữ liệu ma trận và mảng lớn với tốc độ xử lý nhanh hơn nhiều lần khi chỉ sử dụng

Trang 1

ĐẠI HỌC SÀI GÒN KHOA CÔNG NGHỆ THÔNG TIN

BAO CAO MÔN PHÂN TÍCH MẠNG TRUYỀN THÔNG XÃ HỘI

Đỗ Minh Khoa- 3121410269

Giáo viên hướng dẫn: TRẦN THANH NHÃ

Trang 2

MỤC LỤC

Phần 0: Giới thiệu 2

I Lý do chọn đề tài: 2

II Các thư viện Python được sử dụng trong đề tài: 2

Phần 1 : Cào dữ liệu Facebook về và lưu dữ liệu: 6

I Yêu cầu về cài đặt 6

1.Thư viện dùng 6

2 File cookies.txt 7

II Cào dữ liệu FB về và tiền xử lý dữ liệu: 9

1.Cào dữ liệu về: 9

2 Xem thông tin dữ liệu và tiền xử lý dữ liệu: 10

3 Lưu dữ liệu về 11

Phần 2: Phân tích tình trạng phát triển của page 13

I Phân tích sự phát triển lượt react của từng post: 13

1 Bảng chung 13

2.Tính tổng reaction : 14

3.Phân tích 14

II Phân tích từng loại react thống kê theo từng ngày: 14

1.Xem lại dữ liệu thống kê và tinh chỉnh dữ liệu theo cột dòng: 15

2.Sắp xếp lượt react từ cao tới thấp : 15

3 Biểu đồ thống kê theo từng ngày 15

Phần 3 : Phân tích bài viết của page và comment của người dùng 16

I Phân tích bài viết của page 16

II Phân tích comment của người dùng 18

1 Phân tích comment người dùng bằng Textblob : 18

2 Phân tích comment người dùng bằng VADER: 19

Tài liệu tham khảo 20

Trang 3

Phần 0: Giới thiệu

I Lý do chọn đề tài:

Trong thực tế hiện nay việc cào dữ liệu Facebook là một việc vô cùng cần thiết và cóứng dụng rất rộng rãi Nhiều công ty về truyền thông ở Việt Nam đã làm nhiều năm nay đãthực hiện cào dữ liệu để thu thập thông tin và đo mức độ ảnh hưởng cho các chương trìnhmarketing / quảng cáo Một số công ty khác thì bán giải pháp trích xuất thông tin từFacebook với đa dạng các nội dung có thể lấy được Hoặc đơn giản nhất với sinh viên hoặcmột số shop bán hàng nhỏ họ thực hiện cào dữ liệu page facebook để theo dõi tình trạngphát triển của page, xu hướng phát trong thời gian gần đây Trong một số cuộc thi về truyềnthông cần tìm tất cả các bài viết Facebook để tìm xem bài viết nào nhiều tương tác nhất đểgiao giải thưởng , hoặc trong 1 bài viết / livestream ta cần cào tất cả các bình luận để xemxem ai là người bình luận sớm nhất và đúng nhất ,….Việc cào dữ liệu FaceBook là một ýtưởng rất hay và cần thiết để nghiên cứu Chính vì vậy trong đề tài này em đã thực hiện cào

dữ liệu Facebook về để nghiên cứu và phân tích dựa vào các trường thông tin đã thu thậpđược Do chưa có nhiều kinh nghiệm về làm báo cáo cũng như những hạn chế về mặt kiếnthức , trong bài báo cáo chắc chắn cũng không thể tránh khỏi những thiếu sót Em mongnhận được sự đóng góp , phê bình từ phía thầy dể báo cáo của em dược hoàn thiện hơn

II Các thư viện Python được sử dụng trong đề tài:

1 Với bài toán thống kê dữ liệu (để theo dõi tình trạng phát triển của page) bằng cáchcào dữ liệu về lượt tương tác (like, wow, sad, share,…) của nhiều post trong 1 pageFacebook và trực quan hóa dữ liệu dưới dạng biểu đồ

- Facebook_scraper :

Thư viện này cho phép thu thập thông tin từ các trang Facebook, nhóm, sự kiện và bài viết

Dữ liệu có thể bao gồm các thông tin như bài viết, bình luận, lượt thích, ảnh, video vànhiều thông tin khác liên quan đến nội dung trên Facebook

Cài đặt: pipinstallfacebook_scraper

- Numpy (Numeric Python):

Là một thư viện toán học rât phổ biến và mạnh mẽ của Python NumPy được trang bị cáchàm số đã được tối ưu, cho phép làm việc hiệu quả với ma trận và mảng, đặc biệt là dữ liệu

ma trận và mảng lớn với tốc độ xử lý nhanh hơn nhiều lần khi chỉ sử dụng Python đơn thuần.Cài đặt: pipinstallnumpy

- Pandas:

Là một thư viện mã nguồn mở được xây dựng dựa trên NumPy, sử dụng thao tác vàphân tích dữ liệu, được thiết kế để cho phép bạn làm việc với dữ liệu được gắn nhãn hoặcquan hệ theo cách trực quan hơn

 Có thể xử lý tập dữ liệu khác nhau về định dạng: chuỗi thời gian, bảng không đồng nhất,

ma trận dữ liệu

 Khả năng import dữ liệu từ nhiều nguồn khác nhau như CSV, DB/SQL

 Xử lý, phân tích dữ liệu tốt như mô hình hoá và thống kê

 Tích hợp tốt với các thư viện khác của python

 Cung cấp hiệu suất tốt

Trang 4

Cài đặt: pipinstallpandas

- Matplotlib:

Là một thư viện vẽ đồ thị rất mạnh mẽ hữu ích cho những người làm việc với Python vàNumPy Module được sử dụng nhiều nhất của Matplotib là Pyplot cung cấp giao diện nhưMATLAB nhưng thay vào đó, nó sử dụng Python và nó là nguồn mở

Cài đặt: để cài đặt Matplotlib nếu bạn có Anaconda chỉ cần gõ condainstallmatplotlibhoặc sử dụng tools pip pipinstallmatplotlib

2 Với bài toán phân tích tình cảm qua văn bản từ các comment trong 1 bài viết:

- VADER (Valence Aware Dictionary and sEntiment Reasoner)

Là thư viện phân tích quan điểm mã nguồn mở, dựa trên quy tắc/từ vựng trong NLTK Công cụnày được thiết kế đặc biệt cho các quan điểm thể hiện trên mạng xã hội Nó sử dụng kết hợp từvựng về quan điểm và danh sách các từ được gán nhãn mà mang hướng tích cực hay tiêu cực.VADER tính toán quan điểm của văn bản và trả về xác suất của một câu đầu vào nhất định làtích cực, tiêu cực hoặc trung lập Công cụ này có thể phân tích dữ liệu từ tất cả các nền tảngtruyền thông xã hội, chẳng hạn như Twitter và Facebook

Dưới đây là một số đặc điểm chính của VADER:

 Không yêu cầu dữ liệu huấn luyện

 Hiểu quan điểm của văn bản có chứa biểu tượng cảm xúc, tiếng lóng, liên từ, v.v

 Tối ưu cho văn bản trên mạng xã hội

 Thư viện mã nguồn mở

** Phân tích tình cảm với thư viện VADER:

- Kết quả trả về(sentiment_scores): là một từ điển chứa các thông số sau:

 'compound': Điểm cảm xúc tổng hợp trong khoảng từ -1 đến 1, thể hiện mức độ tích

Trang 5

- Vậy giá trị `compound`được tính như thế nào?

Công thức tính giá trị `compound` trong mô-đun VADER của NLTK được mô tả chi tiêtnhư sau:

+ Tính điểm cho mỗi từ:Mỗi từ trong văn bản được gán một điểm cảm xúc dựa trên

từ điển cảm xúc Từ điển này chứa các từ với các điểm tích cực, tiêu cực và trung tính tươngứng

+ Tính tổng điểm tích cực, tiêu cực và trung tính: Tính tổng điểm tích cực (positive),tiêu cực (negative) và trung tính (neutral) của tất cả các từ trong văn bản.Tổng điểm cảmxúc của toàn bộ văn bản được tính bằng cách cộng điểm cảm xúc của từng từ

+ Chuẩn hóa điểm:Tổng điểm cảm xúc được chuẩn hóa để đảm bảo rằng giá trị nằmtrong khoảng [-1, 1] Điều này thường bao gồm việc chia tổng điểm cảm xúc cho một hệ sốchuẩn hóa, được tính để đảm bảo giá trị cuối cùng thể hiện mức độ cảm xúc chính xác

+ Tính giá trị compound: Sử dụng tổng điểm tích cực và tiêu cực, cùng với hệ sốchuẩn hóa, để tính giá trị compound theo công thức:

- TextBlob:

Là một thư viện mã nguồn mở Python được sử dụng để xử lý dữ liệu văn bản TextBlob chophép bạn chỉ định thuật toán bạn muốn sử dụng dưới dạng API đơn giản của nó API củaTextBlobs có thể được sử dụng để thực hiện các tác vụ như gán nhãn từ loại (part-of-speech

Trang 6

tagging), trích xuất cụm danh từ (noun phrase extraction), phân loại, dịch thuật, phân tích quanđiểm, v.v.

Để phân tích quan điểm, thư viện TextBlob cung cấp hai cách triển khai:

PatternAnalyzer: (Mặc định) Dựa trên thư viện mẫu

NaiveBayesAnalyzer: Một bộ phân loại NLTK được đào tạo dựa trên kho văn bản đánh giáphim

** Phân tích tình cảm với thư viện TextBlob:

Kết quả trả về: Là một đối tượng `Sentiment` chứa các thông tin về cảm xúc của đoạn vănbản Đối tượng này bao gồm hai thuộc tính chính là `polarity` (điểm cảm xúc tổng hợp) và

`subjectivity` (mức độ chủ quan) Từ đó xác định comment là trạng thái (Sentiment) là tíchcực, tiêu cực hay trung tính (bình thường)

Vậy giá trị của `polarity` và `subjectivity` được tính như thế nào?

- Giá trị polarity:

Dưới đây là mô tả chi tiết về cách tính toán polarity trong TextBlob:

+ Gán điểm cảm xúc cho từng từ: Mỗi từ trong văn bản được gán một điểm cảm xúcdựa trên từ điển tích hợp trong TextBlob Từ điển này chứa các từ với các điểm tích cực vàtiêu cực tương ứng

+ Tính tổng điểm cảm xúc: Tổng điểm cảm xúc của toàn bộ văn bản được tính bằngcách cộng điểm cảm xúc của từng từ

+ Chuẩn hóa tổng điểm cảm xúc: Tổng điểm cảm xúc sau đó có thể được chuẩn hóa

để đảm bảo rằng giá trị nằm trong khoảng [-1, 1] Thông thường, chuẩn hóa có thể đuợcthực hiện bằng cách chia tổng điểm cảm xúc cho số từ trong văn bản hoặc sử dụng mộtphương pháp chuẩn hóa khác

+ Kết quả là Polarity: Kết quả cuối cùng là một số thực nằm trong khoảng [-1, 1], thểhiện mức độ tích cực hoặc tiêu cực của cảm xúc trong văn bản

Trang 7

có tính chất chủ quan trong văn bản.

Dưới đây là mô tả chi tiet về cách tính tóan `subjectivity` trong TextBlob:

+ Gán Điểm Chủ Quan cho từng từ: Các từ trong văn bản được gán một điểm chủquan dựa trên từ điển tích hợp trong TextBlob Các từ có tính chất chủ quan sẽ có điểm

`subjectivity` cao, trong khi các từ mang tính khách quan sẽ có điểm `subjectivity` thấp.+ Tính trung bình Điểm Chủ Quan: Trung bình cộng các điểm chủ quan của tất cảcác từ trong văn bản Điều này tạo ra một giá trị trung bình thể hiện mức độ chủ quan trungbình của văn bản

+ Kết Quả Là `Subjectivity`: Kết quả cuối cùng là một số thực nằm trong khoảng [0,1], trong đó 0 là hoàn toàn khách quan và 1 là hoàn toàn chủ quan Nếu giá trị 'subjectivity`gán 0, văn bản có xu hướng mang tính chất khách quan, và nếu gán 1, văn bản có xu hướngmang tính chất chủ quan

Phần 1 : Cào dữ liệu Facebook về và lưu dữ liệu:

I Yêu cầu về cài đặt

Trang 8

2 File cookies.txt

Bước 1 : Thêm tiện ích get cookies:

cookiestxt/bgaddhkoddajcdgocldbbfleckgcbcid

https://chrome.google.com/webstore/detail/get-Bước 2 : mở facebook và download cookies về :

Trang 9

Bước 3 : Rồi upload file lên drive

Trang 10

II Cào dữ liệu FB về và tiền xử lý dữ liệu:1.Cào dữ liệu về:

Page dùng để cào post

Trang 11

Kết quả được 20 post :

2 Xem thông tin dữ liệu và tiền xử lý dữ liệu:Thông tin của 1 post :

Các trường thông tin của 1 post:

Thống kê chung về tất cả các post :

Trang 12

Hiển thị sơ qua 10 post đầu tiên:

Trang 13

Lưu dạng excel :

Chuyển từng post vừa có từ list thành 1 dataframe:

Lưu vào file xlsx:

Lưu dạng npy ( để giữ nguyên thuộc tính trong list)

Kết quả cuối cùng ta được 1 file npy và 1 file xlsx:

Trang 14

Phần 2: Phân tích tình trạng phát triển của page

I Phân tích sự phát triển lượt react của từng post:

1 Bảng chung

Trang 15

2.Tính tổng reaction :

3.Phân tích

Biểu đồ thể hiện hiệu suất react của từng bài đăng theo thời gian từ xa đến hiện tại

II Phân tích từng loại react thống kê theo từng ngày:

Trang 16

1.Xem lại dữ liệu thống kê và tinh chỉnh dữ liệu theo cột dòng:

2.Sắp xếp lượt react từ cao tới thấp :

Trang 17

Phần 3 : Phân tích bài viết của page và comment của người dùng

I Phân tích bài viết của page

Lọc comment

Ghi chúng vào tệp trong drive :

Trang 18

Tần suất các từ được sử dụng nhiều nhất qua thống kê:

Trang 19

II Phân tích comment của người dùng

Sử dụng list đã được thêm ở trên

Tìm kiếm những comment có chứa từ khóa “ Love ”:

1 Phân tích comment người dùng bằng Textblob :

Kết quả trả về :

Trang 20

2 Phân tích comment người dùng bằng VADER:

Kết quả trả về :

Trang 21

Tài liệu tham khảo

1 Youtube: Huy Init - Python cách code Crawl tất cả bài viết và comment của Pagefacebook,https://www.youtube.com/watch?v=0GtHkaZ1_iY

2 Github: Easonlai -facebook_post_scraping_and_text_analytics,

https://github.com/easonlai/facebook_post_scraping_and_text_analytics/blob/main/facebook_post_scraping_and_text_analytics.ipynb

3 Documentation - matplotlib.pylot library,

+ Cào dữ liệu: Hiện tại đề tài nếu cào quá nhiều bài post sẽ bị facebook phát hiện và chặnhoặc khóa Account

+ Tiền xử lý dữ liệu: đề tài chỉ tinh chỉnh dữ liệu cơ bản như thay đổi format của dữ liệu chophù hợp hay thêm vào dữ liệu ở 1 số ô dữ liệu trống, lược bỏ các dấu câu không cần thiết.+ Xử lý dữ liệu: đề tài chỉ xử lí dữ liệu ở mức cơ bản bằng các thư viện có sẵn (ở phần bàitoán phân tích tình cảm)

Những điểm đề tài có thể phát triển:

+ Cào dữ liệu: Có thể làm giả việc đăng nhập facebook bằng thư viện Selenium và tìm hiểuthêm về thư viện Request

+ Tiền xử lý dữ liệu: có thể xây dựng nhiều giải pháp tiền xử lí dữ liệu hơn

+ Xử lý dữ liệu: cần ứng dụng vào nhiều bài toán phức tạp hơn và áp dụng các thuật toán để

xử lý

Ngày đăng: 27/11/2024, 18:00

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

TÀI LIỆU LIÊN QUAN

w