Home Blog R e l’analisi ...

R e l’analisi dei social network

Valentina Tortolini

Chi sta parlando di SEO in questo momento e cosa sta dicendo? Premesso che esistono strumenti commerciali molto efficienti e altrettanto costosi che analizzano le conversazioni on-line relative ad un dato argomento, vediamo se è possibile rispondere alla domanda iniziale utilizzando invece strumenti totalmente open source. Ovviamente dovremmo accontentarci di un’analisi molto più parziale rispetto all’analisi di tutte le conversazioni on-line. In questo articolo presenteremo dunque un esempio di analisi delle conversazioni sulla SEO avvenute su Twitter in un determinato periodo di tempo. L’analisi è effettuata con un strumento statistico chiamato R.

R è un linguaggio di programmazione open source derivato da S, nato alla metà degli anni 90 e in continuo sviluppo (https://cran.r-project.org/). Tra i maggiori pregi di questo strumento, oltre al fatto che sia open source, dobbiamo citare il fatto che è flessibile, utilizzato da una comunità sempre crescente persone, ha buone capacità grafiche e consente di importare dati da diversi formati. Inoltre dispone di pacchetti già predisposti con un’ottima documentazione su un’infinità di argomenti. Con R è possibile, tramite API, scaricare e analizzare i dati provenienti da vari social network.

Come abbiamo già detto, in questo post vediamo un esempio di analisi effettuata su Twitter.

Come raccogliere e analizzare i dati di Twitter

Per accedere ai dati di Twitter tramite API dobbiamo prima di tutto ottenere delle credenziali dalla pagina di Twitter https://developer.twitter.com/. Una volta ottenute le credenziali utilizziamo la libreria “SocialMediaLab” per collezionare e analizzare i dati.

Con la funzione “collect” possiamo scaricare i tweet che contengono un certo termine o un hastag o che citano un certo utente o che provengono da un determinato luogo.

Con il comando riportato nella figura sottostante, dopo esserci autenticati con le nostre credenziali, iniziamo a collezionare gli ultimi 5000 tweet che contengono il termine di ricerca “#SEO” scritti in italiano. I tweet che abbiamo così raccolto coprono il peirodo tra il 13 gennaio e il 23 gennaio di quest’anno.

I dati ottenuti da questa operazione sono organizzati in un dataframe in cui ogni riga corrisponde ad un tweet contente “#SEO”. Per ogni tweet, oltre al testo completo, vengono fornite una serie di informazioni aggiuntive tra cui: lo user name dell’utente che ha scritto il tweet, la data (al secondo) di condivisione del contenuto, la lingua dell’account da cui è partito il tweet, gli altri hastag inclusi nel tweet, le coordinate geografiche dell’account, una variabile che indica se il contenuto è originale o se invece è un retweet.

Il pacchetto SocialMediaLab consente poi di creare varie tipologie di network a partire dai dati scaricati. In questo esempio creiamo un “actor network”, cioè, un network in cui ogni nodo rappresenta un utente e ogni arco rappresenta una o più interazioni tra utenti. Un’interazione è definita come una menzione, una risposta o un retweet tra due utenti. Dunque la rete che abbiamo costruito ci mostra chi sta interagendo con chi, nel periodo selezionato, in relazione al particolare termine di ricerca “#SEO”.

Attraverso l’opzione “writeToFile=TRUE” R permette inoltre di scaricare la rete così creata in formato “.graphml” importabile direttamente in Gephi, uno strumento di analisi e visualizzazione dei network molto versatile e open source.

Come rappresentare i dati con R e Gephi

Il risultato di queste operazioni è mostrato nella figura 1. La grandezza dei nodi, e delle label associate ai nodi, è proporzionale al page rank del nodo. I diversi colori associati a nodi e archi della rete individuano community diverse, ovvero gruppi di utenti strettamente connessi tra di loro. Dobbiamo sempre ricordare che l’analisi proposta è relativa ad un arco temporale ristretto e che, sia le community, sia il page rank riportate in questa analisi sono valide solo per il periodo preso in esame.

Gli esperti di SEO riconosceranno comunque nella rete in figura 1 alcune community e alcuni utenti noti; ad esempio: la community colorata in nero, in cui si nota la pagina Twitter dell’evento SEO and Love; la community rosa in basso a sinistra, legata ai master SEO, di cui fa parte l’utente Pasquale Gangemi. Nella community verde invece si nota la presenza di un influencer di settore come Francesco Margherita.

La community centrale in viola ha invece una conformazione particolare con al centro un nodo da cui partono archi verso molti altri nodi ma senza una vera e propria interazione tra i membri della community stessa. Questa conformazione è tipica delle situazioni in cui un nodo interagisce con molti altri ma non provoca nessuna reazione nei sui vicini, ad esempio nel caso dell’analisi di email sarebbe spam. Nel caso di Twitter è tipicamente un profilo che tende a ritwettare contenuti con un certo hastag. In effetti il nodo centrale della community viola è frankmrseo, un bot che riteweetta tutto ciò che contiene l’hastag #SEO.

Figura 1. Actor Network per i tweet contenti #SEO. Dati italiani, relativi al periodo 13-23 gennaio 2018.

Esempi di analisi semantica

Oltre alla costruzione dell’actor network, R ci permette anche di analizzare il contenuto testuale dei tweet. In questo modo, non solo possiamo sapere chi sta parlando di un certo argomento ma anche come ne sta parlando.

Ad esempio possiamo creare una word cloud con le parole più usate nei tweet analizzati. In questo caso si consiglia, prima di realizzare la nuvola di parole di pulire i testi con qualche operazione base di text-mining, eliminando ad esempio le congiunzioni. Per fare queste due operazioni R mette a disposizione due librerie ad hoc “tm” per il text mining e “wordcloud” per la realizzazione della nuvola di parole.

La figura 2 mostra le parole più spesso utilizzate nei tweet analizzati. Non c’è da stupirsi che, visto l’argomento di ricerca, la parola più frequente sia Google, seguita da popup2015 un, Magazine online di Marketing e Comunicazione.

Più informativa della wordcloud è l’analisi dei topic. Il topic modeling è un approccio statistico utilizzato per identificare macro “argomenti” partendo da una raccolta di documenti testuali. In parole povere, è un processo che consente di identificare, all’interno di documenti testuali, gruppi o “cluster” di parole raggruppate per similitudine. In questo caso la libreria da usare è “topicmoldes”.
Nel nostro caso abbiamo individuato tre topic formati ognuno da tre parole.

Il primo individuato dalle parole “seo, google, mobile” ci fa venire in mente il Mobile First Index, che a quanto pare sarà uno dei SEO trend del 2018. Il secondo individuato dalle parole “seo, sem, gratis” è legato ad una serie di utenti che vendono servizi SEO. L’ultimo topic, individuato dalle parole “seo, post, blog” accomuna gli utenti che hanno un blog.

In conclusione, grazie all’utilizzo di uno strumento come R, si riesce, in tempi brevissimi, ad avere delle informazioni interessanti su chi sono gli attori principali sui social che discutono di un certo argomento e di come ne parlano. La breve analisi qui proposta può essere resa molto più informativa aumentando l’orizzonte temporale di analisi e ripetendo l’analisi nel tempo in modo da fotografare la dinamica temporale della rete. La parte di analisi testuale può essere invece arricchita con l’utilizzo di sentiment analysis.