Mạng xã hội mà tơi tiếp cận để thu thập dữ liệu là Facebook. Hiện nay, Facebook là mạng xã hội phổ biến nhất ở Việt Nam. Do đĩ nguồn dữ liệu ở đây vơ cùng phong phú. Để giúp các nhà phát triển dễ dàng khai thác và xây dụng các chƣơng trình liên quan đến nguồn dữ liệu này, Facebook cung cấp một cơng cụ hỗ trợ cĩ tên là Graph API.
Graph API là cách cơ ản để lấy ra và đƣa dữ liệu vào social graph của Face ook. Đĩ là một API HTTP-based cấp thấp sử dụng để truy vấn dữ liệu, cập nhật trạng thái, tải lên các bức ảnh và nhiều hành động liên quan khác. Graph API cĩ nhiều phiên bản. Tơi sử dụng phiên bản Graph API v2.2 – là phiên bản mới nhất tính từ tháng 3/2015 trở về trƣớc. Graph API đƣợc đặt tên dựa theo tƣởng “social graph”. Thơng tin trong Face ook gồm 3 phần:
Các node – đầu mút (những thứ cơ ản nhƣ là ngƣời dùng, hình ảnh, trang, bình luận).
Các edge – cạnh (những mối liên kết giữa các thứ cơ ản ở trên ví dụ nhƣ các hình ảnh của trang, hoặc một hình ảnh của các bình luận) Các field (thơng tin về các node nhƣ ngày sinh của ngƣời dùng, tên của
một trang).
Graph API dựa trên HTTP do đĩ nĩ hoạt động với các ngơn ngữ cĩ thƣ viện HTTP nhƣ là cURL, url li . Để truy cập vào API này, chúng ta sẽ tạo ra các HTTP GET request để truy cập tới các đầu mút hoặc các cạnh của đầu mút. Ngoại trừ việc tải lên video sử dụng graph.video.facebook.com cịn lại các request đều sử dụng graph.facebook.com
Trƣớc khi sử dụng Graph API, ta cần lấy quyền truy cập (get access token). Đơn giản nhất là truy cập vào Graph API Explorer trên trang https://developers.facebook.com để lấy quyền truy cập. Cách này giúp nhanh chĩng lấy đƣợc quyền truy cập nhƣng cĩ một nhƣợc điểm là chỉ tồn tại trong thời gian nhất định nên tơi đã chọn cách phức tạp hơn là tạo một ứng dụng trên trang https://developers.facebook.com. Sau đĩ xin quyền truy cập của ứng dụng này. Tuy cách này tốn thời gian và cơng sức hơn nhƣng đổi lại sẽ lấy đƣợc một quyền truy cập (access token) tĩnh.
Sau khi lấy đƣợc quyền truy cập, ta cĩ thể đọc đƣợc tất cả các node và edge trong Graph API bằng các câu lệnh HTTP request với endpoint thích hợp.
Ví dụ dƣới đây là quá trình tơi lấy dữ liệu từ trang trang VnExpress.net. Tơi muốn lấy tất cả tin tức kèm ngày tháng, ngƣời like, các bình luận,... của trang VnExpress.net
Đầu tiên tơi sử dụng graph API:
https://graph.facebook.com/congdongvnexpress/posts?access_token=79 2661064152453|lsO-FOihVUkXtL9eUVPlom3XbMQ
Chƣơng trình tải dữ liệu sẽ sử dụng đƣờng dẫn này để truy vấn dữ liệu và ghi vào tệp.
Cơng việc kế tiếp là sử dụng một ngơn ngữ lập trình để lấy những dữ liệu cần thiết từ file json này.
Dữ liệu thử nghiệm tơi lựa chọn là những bình luận tiếng Việt từ các trang (fanpage) trên mạng xã hội Face ook nhƣ VnExpress.net, CGV Cinemas Vietnam, Mann up,...
Các bài viết sẽ chứa rất nhiều thơng tin: nội dung bài viết, số lƣợt thích, tác giả, thời gian, các bình luận, tên ngƣời viết bình luận,... Nhƣng hệ thống chỉ cần lựa chọn mã bài viết (ID post) để từ đĩ lấy đƣợc nội dung các bình luận của những bài viết đĩ.
Hình 3-4 Những bình luận của trang VnExpress.net trên mạng xã hội Facebook
Từ những bài viết nhƣ thế này, tơi xử lý dữ liệu lấy về để trích xuất những bình luận và lấy đĩ là dữ liệu cơ ản nhất cho hệ thống thực nghiệm.