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

Các công cụ và phần mềm sử dụng

Một phần của tài liệu HỌ THUẬT TOÁN GINVAN - NEWMAN TRONG PHÁT HIỆN CỘNG ĐỒNG VÀ CÀI ĐẶT THỬ NGHIỆM TRÊN MẠNG XÃ HỘI TRỰC TUYẾN TWITTER (Trang 39 -42 )

Để thực nghiệm mô hình xây dựng mạng xã hội dựa trên mạng xã hội trực tuyến Twitter và cài đặt thử nghiệm thuật toán phát hiện cộng đồng CONGA, chúng tôi đã sử dụng các bộ thư viện và phần mềm sau:

o Twitter4j: Bộ thư viện mã nguồn mở của Java hỗ trợ tương tác với Twitter API do Yusuke Yamamoto và cộng sự phát triển năm 2009

o CONGA Software: Phần mềm mã nguồn mở hỗ trợ cài đặt thuật toán CONGA do tác giả của thuật toán Steve Gregory thiết kế và công bố năm 2010

o Java Netbean IDE 6.7: Công cụ lập trình trên nền Window, Unix hỗ trợ người sử dụng lập trình Java, PHP, C/C++,...

Bộ thư viện mã nguồn mở Twitter4j được thiết kế với mục đích giúp người sử dụng có khả năng tương tác với Twitter API qua Java và lấy được dữ liệu từ Twitter.Bộ thư viện do Yusuke Yamamoto, một lập trình viên người Nhật và các cộng sự phát triển năm 2009[10].Bộ thư viện là mã nguồn mở, có thể tải về từ trang web http://twitter4j.org/en/index.html

Bộ thư viện gồm 8 package như sau [10]:

o Twitter4j: đây là package cơ bản nhất và quan trọng nhất của bộ thư viện.Package có chứa các lớp và các interface biểu diễn cho các thành phần của một đối tượng trên Twitter, ví dụ như các interface IDs, User, Location, Status, Tweet, DirectMessage, Relationship, Friendship,...

o Twitter4j.api: package này chứa các interface biểu diễn các phương thức của Twitter API. Các phương thức này bao gồm các phương thức về

31

người sử dụng và tài khoản của họ (biểu diễn trong các interface AccountMethods và UserMethods), về danh sách và các mối quan hệ (interface ListMethods và FriendshipMethods), các truy vấn tìm kiếm của người sử dụng (SearchMethods, SavedSearchesMethods,...).Nói chung package này là biểu diễn các tính năng mà API cung cấp cho người sử dụng

o Twitter4j.auth: chứa các lớp về quyền hạn (authorization) ví dụ như : truy cập vào tài khoản được bảo vệ, số lượng yêu cầu trong một giờ...

o Twitter4j.conf: chứa các lớp về cấu hình cũng như thay đổi tính chất của cấu hình trong twitter4j

o Twitter4j.json: chứa các lớp về cách mô tả các đối tượng có định dạng JSON.

o Twitter4j.management: chứa các phương thức về quản lý, thống kê cũng như tính toán trong bộ thư viện

o Twitter4j.media:hỗ trợ các chức năng về phương tiện truyền thông như upload ảnh đại diện, chia sẻ hình, video,...

o Twitter4j.util: chứa một số tiện ích, như bộ chuyển đổi thời gian, một số tiện ích người sử dụng

Trong chương trình lấy dữ liệu về nhằm xây dựng mô hình mạng xã hội của chúng tôi chủ yếu sử dụng các phương thức ở package twitter4j và twitter4j.api, trong đó có các phương thức sử dụng để xem thông tin cá nhân một người sử dụng (showUser), lấy danh sách following của một người (getFriendList), tìm mối quan hệ bạn bè giữa họ (existsFriendship),....

Phần mềm mã nguồn mở CONGA Software được Steve Gregory thiết kế dưới dạng file JAR như một bộ thư viện trên nền Java.Phần mềm này có mục đích tính toán các phép phân chia cạnh và đỉnh trong thuật toán CONGA, sau đó thực hiện việc phân chia cộng đồng cho một đồ thị. Phần mềm có thể được tải về từ địa chỉ

http://www.cs.bris.ac.uk/~steve/networks/software/conga.html. Đầu vào của chương trình là file text biểu diễn đồ thịđó, có một trong hai định dạng như sau:

32

Hình 11. Định dạng dữ liệu đầu vào của phần mềm CONGA [9]

Trong đó định dạng thứ 2 là định dạng danh sách các cạnh có cấu trúc tương tự nhưđịnh dạng file text biểu diễn đồ thị của chúng tôi xây dựng.Sau khi nhận được đầu vào thích hợp, người sử dụng chạy dòng lệnh sau trong CMD [9]:

java –cp conga.jar CONGA ***.txt –e

để thu được kết quả phát hiện cộng đồng của đồ thị, trong đó, ***.txt là file text biều diễn đồ thị đó. Kết quả đưa ra trên màn hình cho ta biết các đỉnh, cạnh nào được loại bỏ trong từng bước, phân tích từ cộng đồng ban đầu ra các cộng đồng con như thế nào với độ đo trung gian ra sao. Kết quả đầu ra cũng cho ta biết ở bước cuối cùng đồ thị được phân ra thành bao nhiêu cộng đồng với kích cỡ là bao nhiêu.

Ngoài ra vì thuật toán phát hiện cộng đồng CONGA là một dạng phương pháp phân cụm phân cấp, trong đó các cộng đồng cha được phân thành các cộng đồng con, các cộng đồng con đó lại tiếp tục được chia nhỏ thành các cộng đồng con khác cho đến khi không chia nhỏ được nữa.Chính vì vậy, chương trình cung cấp khả năng xem xét từng bước trong thuật toán phân chia này bằng dòng lệnh với tham số -n[9] :

java –cp conga.jar CONGA ***.txt –e –n X

trong đó X là một số nguyên biểu diễn số lượng cộng đồng ở bước phân chia ra mà ta muốn xem.Ví dụ muốn xem cấu trúc các cộng đồng con ở giai đoạn đồ thị phân chia ra làm 3 cộng đồng con chỉ cần thay X = 3 ở trong dòng lệnh.

33

Từ bộ thư viện và phần mềm ở trên, khóa luận đã xây dựng được chương trình để thực thi việc xây dựng mạng xã hội và cài đặt thử nghiệm thuật toán phát triển cộng đồng.Chương trình được thực thi trên nền Java với cấu trúc gm các hàm sau đây:

− getData(): sử dụng để thu thập danh sách người sử dụng từ Twitter theo phương pháp loang trình bày ở trên.Hàm ghi lại kết quả dưới dạng file text User.txt.

− getFollowingList(): Đầu vào là những người sử dụng trong file User.txt (kết quả của hàm getData()), đầu ra là danh sách following của từng người trong đó.Các dữ liệu không phù hợp cũng được chuNn hóa trong file này dưới hình thức bắt các ngoại lệ(Exception) của Java và xử lý các ngoại lệ đó.Kết quả cũng được ghi ra file text Following.txt

− buildGraph() : hàm này đọc 2 file User.txt và Following.txt và đưa ra mối quan hệ following giữa từng cặp đỉnh trong đồ thị. Từ đó ta xây dựng được đồ thị với các đỉnh trong file User và các cạnh dựa trên mối quan hệ following thu được.Dữ liệu về các đỉnh và cạnh được ghi vào file Graph.txt. − normalize() : hàm chuNn hóa file Graph.txt thành định dạng đầu vào

chuNn của phần mềm CONGA.

Một phần của tài liệu HỌ THUẬT TOÁN GINVAN - NEWMAN TRONG PHÁT HIỆN CỘNG ĐỒNG VÀ CÀI ĐẶT THỬ NGHIỆM TRÊN MẠNG XÃ HỘI TRỰC TUYẾN TWITTER (Trang 39 -42 )

×