Czas zacząć budować sieci na Twitterze. Poprzez wprowadzenie alternatywnego podejścia do budowania i uruchamiania skryptów R, w tym przypadku zbudujemy kod jako skrypt powłoki do uruchomienia w wierszu poleceń. Do tego momentu pisaliśmy kod, który ma być uruchamiany w konsoli R, co prawdopodobnie będzie dominującym sposobem używania języka. Czasami jednak możesz mieć zadanie lub program, który chcesz wykonać wiele razy przy różnych danych wejściowych. W takim przypadku łatwiej jest napisać program, który działa w wierszu poleceń i pobiera dane ze standardowego wejścia. W tym celu użyjemy programu wiersza polecenia Rscript dołączonego do instalacji R. Zamiast uruchomić teraz kod, najpierw go przejrzyjmy, abyśmy zrozumieli, co robi, zanim uruchomimy program. Przypomnijmy, że z powodu zmiany interfejsu API Google SocialGraph, , nie możemy już generować nowych danych w sieci Twitter. W związku z tym do końca będziemy wykorzystywać dane sieciowe Twittera dla Johna (@johnmyleswhite) w stanie, w jakim były w momencie, gdy je po raz pierwszy zgromadziliśmy. Ponieważ możemy chcieć zbudować sieci Twittera dla wielu różnych użytkowników, nasz program powinien mieć możliwość przyjmowania różnych nazw użytkowników oraz wprowadzania i generowania danych w razie potrzeby. Po zbudowaniu obiektu sieciowego w pamięci przeprowadzimy na nim podstawową analizę sieci w celu ustalenia podstawowej struktury społeczności, dodamy te informacje do obiektu wykresu, a następnie wyeksportujemy sieci jako pliki na dysk. Zaczynamy od załadowania biblioteki igraph oraz funkcji wbudowanych w poprzedniej sekcji, którą umieściliśmy w pliku google_sg.R.
library(igraph)
source(‘google_sg.R’)
user <- ‘johnmyleswhite’
user.net <- read.graph(paste(“data/”,user, “/”, user, “_net.graphml”, sep =
“”), format = “graphml”)
Ponownie będziemy używać biblioteki igraph do budowania obiektów wykresu na Twitterze i manipulowania nimi. Używamy funkcji źródłowej, aby załadować funkcje zapisane w poprzedniej sekcji. Ponieważ nie będziemy generować nowych danych na potrzeby tego studium przypadku, ładujemy dane wcześniej zeskrobane dla sieci Johna na Twitterze, ładując dane do folderu johnmyleswhite. Uwaga dla użytkowników systemu Windows: uruchomienie tego skryptu z powłoki DOS może być niemożliwe. W takim przypadku powinieneś po prostu ustawić zmienną użytkownika na dowolnego użytkownika Twittera, dla którego chcesz zbudować sieć i uruchomić ten skrypt, tak jak wcześniej. Zauważono to ponownie również w pliku twitter_net.R. Po zbudowaniu wszystkich niezbędnych funkcji wsparcia w poprzedniej sekcji, musimy tylko przekazać naszemu użytkownikowi funkcję twitter.snowball. Ponadto, ponieważ w tym przykładzie jesteśmy zainteresowani budowaniem sieci ego użytkownika nasion, użyliśmy tylko dwóch rund dla próbki śnieżki. W dalszej części tego rozdziału załadujemy pliki sieciowe do oprogramowania do wizualizacji wykresów Gephi, które pozwoli nam zbudować piękne wizualizacje naszych danych. Gephi ma pewne zastrzeżone nazwy zmiennych, których używa do wizualizacji. Jedną z nich jest zmienna Label, która służy do oznaczania węzłów na wykresie. Domyślnie igraph przechowuje informacje o etykiecie jako atrybut nazwy wierzchołka, dlatego musimy utworzyć nowy atrybut wierzchołka o nazwie Etykieta, który powiela te informacje. W tym celu używamy funkcji set.vertex.attribute, która pobiera obiekt wykresu user.net utworzony w poprzednim kroku, nowy atrybut i wektor danych do przypisania do tego atrybutu.
user.net <- set.vertex.attribute (user.net, „Label”,
value = get.vertex.attribute (user.net, „name”))
Gephi to wieloplatformowa platforma do wizualizacji i manipulacji grafami typu open source. Wbudowane narzędzia do wizualizacji sieci w językach R i igraph są przydatne, ale niewystarczające dla naszych potrzeb. Gephi jest specjalnie zaprojektowany do wizualizacji sieci i zawiera wiele przydatnych funkcji do tworzenia wysokiej jakości grafiki sieciowej. Jeśli nie masz zainstalowanego Gephi lub masz starą wersję, zalecamy zainstalowanie najnowszej wersji, dostępnej na stronie http://gephi.org/. Po zbudowaniu obiektu wykresu przeprowadzimy na nim podstawową analizę sieci, aby zarówno zmniejszyć jego złożoność, jak i odkryć część lokalnej struktury społeczności.