Gephi y Twitter para principiantes ¡tú puedes! - Magic Words of Intelligence

Primer blog #OSINT de España. En línea desde 2011.

Breaking

lunes, 25 de marzo de 2019

Gephi y Twitter para principiantes ¡tú puedes!


Gephi y Twitter para principiantes ¡tú puedes!


Ya hemos hablado en varias ocasiones del análisis de redes sociales, o también denominado ARS (en inglés SNA). Este tipo de metodología se lleva utilizando desde hace décadas, no sólo para las redes sociales virtuales, sino también para las conexiones físicas, por ejemplo entre regiones o comunidades geográficas, para analizar intercambios comerciales, redes de confianza, crimen organizado, etc. También se utiliza para analizar la producción científica y hacer prospectiva, por ejemplo, sobre la producción científica española (un ejercicio que me tocó hacer hace más de 5 años).

Es cierto que todavía no me había animado a realizar un post porque no parecía que hubiera mucha gente interesada. Pero desde lo de Cambridge Analytica, parece que vuelve a resucitar todo lo relacionado con las redes sociales virtuales y su análisis y se vuelve a utilizar de forma extensiva el  ARS.

Hablando con varios alumnos que están empezando con este tema me trasladan que se les hace bastante complejo dar los primeros pasos. La misión de este blog es intentar ayudar a dar los primeros pasos. Además, como estoy con la serie de post para las elecciones nacionales y europeas, he pensado en dar el paso. Por otro lado, hay que hacerlo ya, porque Twitter tarda unos días en darte el token para que puedas usarlo y se nos echa el tiempo encima para las elecciones del 28 de abril.

Así pues, con las palabras mágicas de hoy vamos a crear un pequeño tutorial desde el inicio para que todos los analistas que quieran dar el salto a Gephi y Twitter puedan hacerlo con facilidad. Por otro lado, cada vez hay más cursos online y presenciales, de manera que si te gusta, te animo a seguir profundizando en tu formación.

Lo primero y más importante, quiero que respires profundamente, que te relajes y que vayas abordando este tutorial paso a paso, sin prisa para evitar la sensación de que pueda abrumarte, sobre todo si la tecnología no es lo tuyo, ¿vale?

Necesitarás de varios días para llegar hasta el final, así que no te recomiendo que intentes hacerlo todo de golpe si no estás muy familiarizado con la tecnología o con la forma de hacer de este tipo de herramientas. Mejor ve paso a paso.

Y recuerda que nadie sabe de todo. Aquí estamos para aprender y mejorar, yo incluida.

¿Lo intentamos? :-) ¡Vamos allá!

INSTALACIÓN DE GEPHI

Comencemos con la instalación.

La instalación de Gephi tiene una pequeña puñetita especialmente si usas Windows 10, porque no reconoce la dirección del Java. Pero no te preocupes que te doy todas las claves.

Antes de descargar Gephi, tienes que descargar Java SE Runtime Environment 8 y Java SE 11. Ésto no te dará ningún problema. Según tu sistema operativo hay múltiples opciones. Si eres Windows, descarga el Windows x64 que sea fichero .exe e instálalo.

Una vez que ya tengas instalado este Java, vamos a descargar Gephi . Detectará automáticamente tu sistema operativo y te pondrá un botón bien grande desde el que descargarlo. En principio debería instalarse sin ningún problema.

El problema está cuando vamos a abrir el programa para trabajar con él. Si mientras se carga, te aparece un mensaje que dice que no encuentra el Java 8, entonces tendrás que seguir estos pasos. Se hace muy rápido y no te darán ningún problema, ya lo verás.

Como he comentado antes, el problema es que Gephi no encuentra la ruta del Java en tu ordenador. Así que con estos pasos, simplemente vamos a decirle de forma manual dónde se encuentra.

1. Con el explorador de windows, ve a la carpeta donde se te ha instalo el Java y copia la ruta tal y como te muestro en esta captura. Puedes copiarla con el botón derecho del ratón o pulsando "CTRL+C".

2. Ahora vamos a la carpeta de configuración de Gephi a buscar un archivo que se llama "gephi.conf". En la captura tienes la ruta. No te fijes en el icono del archivo porque yo ya lo abrí en su día con el WordPad. En principio el icono será el folio en blanco de cuando no reconoce ninguna herramienta con la que abrirla.


3. Lo siguiente es abrir el archivo "gephi.conf". Como no reconoce qué tipo de archivo es, te dará varias opciones. Elige un programa de lectura de textos que tengas a mano: Bloc de notas, Notepad, WordPad, etc. Yo lo abrí con el WordPad.

Una vez abierto el fichero, verás un código como este. Quizá te aparezca una línea toda seguida. Sea como fuere, busca la línea o el código que empieza como "jdkhome", tal y como se muestra en la pantalla. Pega entre las comillas la ruta del Java que habías copiado, dale a salvar o guardar, en función del programa que hayas usado para abrir el .conf y ¡ya lo tienes!



INSTALACIÓN DE TWITTER STREAMING IMPORTER Y OTROS


Para poder trabajar con Twitter en Gephi necesitamos un plugin que se llama Twitter Streaming Importer

Para instalarlo sólo tienes que ir al menú superior de Gephi, entrar en Herramientas >>Plugins >> Plugins Disponibles y seleccionar Twitter Streaming Importer



Desde aquí siempre podrás instalar todos los plugins que en un momento determinado te puedan interesar o ser útiles.

Además de Twitter Streaming Importer, instala también los dos de Yifan Hu (el normal y el proporcional). En el ejercicio también utilizaremos El force atlas 2, pero ya viene por defecto.

Para instalar es tan fácil como seleccionar las casillas de los plugins que deseas y pulsar el botón "Instalar". Te pongo una captura de pantalla como ejemplo del menú de Plugins Disponibles, no te fijes en mi selección, porque yo ya tengo instalados todos con los que trabajo. 



Una vez instalados es mejor que reinicies Gephi. Cuando lo vuelvas a abrir verás que te aparece en la pestaña de Instalados.

CONSIGUIENDO EL TOKEN DE TWITTER

Este paso puede asustar un poco si no estás familiarizado con esta forma de trabajar. Pero no te preocupes porque puedes hacerlo perfectamente. 

Y si finalmente sigues sin ser capaz, no te preocupes. Para eso está NODEXL, pagando la licencia anual de estudiante (unos 20 euros al año) podrás descargar todo y exportalo a Gephi sin tener que preocuparte por los token.

DÍA 1 - SOLICITANDO LA VALIDACIÓN DE TWITTER

Ahora necesitamos que Twitter nos valide para poder crear un token de acceso a su red social y descargar todos los datos.

Antes podías crear apps de forma automática e instantánea, pero con todos los problemas que hay de manipulación y bots las validan una a una personalmente. Yo tenía unas apps viejillas, pero he preferido crear una nueva para este tutorial y entrar así ya por el nuevo sistema.

Si no sabes cómo va esto no te agobies. Tú sigue los pasos que te digo y en unos días te darán la validación, vale?

a) Abrir una cuenta de desarrollador

Lo primero es ir a la web de desarrolladores de Twitter y crear una cuenta de desarrollador si no la tienes. Para hacerlo, la vincularán tu perfil de Twitter. Así que si no tienes una cuenta de Twitter, éste es el momento de hacerla.

Cuando te la hagas te pedirán explicaciones de para qué quieres la cuenta de desarrollador, así que sé lo más específico que puedas y hazlo en inglés (usa el traductor si lo necesitas). Explícales que quieres abrirte una cuenta para analizar la red social con fines educativos, que vas a usar Gephi y su plugin de Twitter. Tendrás que aceptar su política de uso, que incluye no usar la herramienta para manipular.

La verdad es que no recuerdo exactamente cómo era, disculpa, porque hace ya muchos años que me la hice. Pero no te preocupes que no es difícil. Es sólo algo engorroso, pero sigue los pasos y ya está.

Lo que sí es importante es que asocies el perfil a un email que exista y que leas, porque te escribirán ahí para darte la validación o pedirte más explicaciones, como me pasó a mí.

Una vez que tengas tu cuenta te saldrá un mensaje como éste. Nosotros vamos a trabajar siempre en "Create an app".



b) Crear la app de Twitter para que nos den el token

Una vez creada tu cuenta de desarrollador verás la opción "Create an app". Si vuelves más tarde puedes hacerlo directamente en la web de desarrolladores:






En fin, vayas por el camino que vayas, cuando le das al botón de "Create an app" te sale algo como ésto y lo más importante es.... ¡¡ no panicar ;-) !!


Bien, la clave es que te fijes en los campos que llevan la etiqueta de "Requerido". Que son los que te he marcado en rojo.

Ésto es lo que tienes que poner para cubrir el formulario y que la gente de Twitter te de permiso.

  • App name: pon un nombre a la app que vas a crear para acordarte de cuál es. Ésto sobre todo es por, si una vez que le has cogido el tranquillo, te vienes arriba y empiezas a crear token para varias aplicaciones. Yo la llamé "Gephi_Twitter1" para acordarme que es el token que uso en esta herramienta.
  • Application description: esta descripción es por si fuéramos a crear una aplicación pública, que no es el caso. Puedes poner directamente el nombre del plugin que vamos a usar, así te acordarás. Por ejemplo "Twitter Streaming Importer from Gephi to Social Network Analysis" y vía.
  • Website URL: aquí puedes poner cualquier dirección que se te ocurra. Que sí, que te la puedes inventar. O si tienes alguna propia de tu empresa particular o dominio, pues ponlo. Pero no te rayes más. Esto es por si fuera a ser pública, para que la gente que la usase que sepa de quién es.
  • Tell us how this app will be used: ésta es la madre del cordero porque hay que describirlo muy bien, sino te escriben (al email que hayas dado cuando te diste de alta como desarrollador) y te piden más información, doy fe de ello. Así que explícales (en inglés, aunque sea del traductor de Google) para qué vas a utilizar la info. Explícales todo al detalle. Te recomiendo que vayas por la vía del estudiante o académico, y estás investigando el uso del social network analysis en Twitter. Que lo vas a utilizar para analizar nodos y relaciones de información pública. 

Por último pulsa el botón de "Create". Y ahora relájate y espera que los de Twitter te escriban para darte la confirmación de que tienes acceso al panel para crear las credenciales que necesitamos para Gephi. Tardan un par de días.

c) Si te piden explicaciones, ¡no hay problema!

Como te comenté, antes podías hacerte tokens como churros de forma automática, y en este último campo no puse casi nada. Vamos, que puse una chorrada y tiré para adelante a ver si colaba. Pero no, ahora la gente de Twitter revisa cada petición.

Así que me escribieron un email pidiéndome aclaraciones sobre para qué iba a usar la app que estaba creando. Así fue el email que me mandaron.



Fue tan fácil como responder a este email explicando en cada punto lo que iba a realizar. Lo dicho, siempre desde el punto de vista académico o de estudiante. Les expliqué como se llama el plugin e incluso les pasé una captura de pantalla. En fin, descríbelo todo lo mejor que puedas.

Básicamente lo que quieren es descartar que vas a utilizarla para meter una red de bots o investigar la vida privada de la gente.

Finalmente, cuando les contesté con toda la información, me hicieron llegar este email de confirmación de acceso. Así que cuando lo recibas ya podremos ir a por las credenciales. ¡Felicidades!

DÍA 2 - CREANDO LAS CREDENCIALES

Ya tenemos acceso a nuestra app. ¡Felicidades!

Ahora lo que necesitamos es conseguir las credenciales de esta aplicación concreta para añadirlas en el plugin de Twitter que hemos instalado en Gephi.

Para crearlas tienes que volver a la web de desarrollador y desplegar el menú superior de la derecha. Pulsa en "Apps".



Te llevará a la sección donde aparecerán todas tus apps.  

Verás la aplicación nueva que has creado y que tendrá el nombre que le diste cuando rellenabas el formulario. Para lo que queremos conseguir hay que pulsar en el botón "Details".



Una vez dentro de "Details", iremos a la pestaña de "Keys and Tokens", donde está toda la inofrmación que necesitamos para que nos funcione el plugin de Gephi.

Guarda las key en un bloc de notas para tenerlas a mano.

Empezaremos guardando las Consumer API keys. Debes guardar tanto la normal como la secreta.




Una vez que las tengas guardadas, vamos a crear el token. Para ello sólo tienes que pulsar el botón de "Create".


Y verás que te genera los token que necesitas:


¡Ya tenemos el token! Guárdalo también en tu bloc de notas.

¡Enhorabuena! Sin duda el reto más difícil ya lo has conseguido. 

CONFIGURANDO TWITTER STREAMING IMPORTER

Ahora que ya tenemos las key y los token, es el momento de añadirlos al plugin, para que pueda empezar a descargar toda la información que queremos.

Abre Gephi y haz clic en la pestaña del plugin. Está en los menús izquierdos, a la mitad de la herramienta.

Verás un botón bien grande que pone "Credentials". Pulsa en él y se abrirá una ventana donde debes copiar y pegar las keys y el token:


Una vez que pulses en "OK" ya lo tendremos todo listo para despegar.

DESCARGANDO TWITTER CON TWITTER STREAMING IMPORTER

Bueno, pues ¡por fin llegó el día!

Vamos a empezar a descargar información de Twitter para analizarla posteriormente.

Como estoy con la serie de post de las elecciones he pensado en descargar todo lo relacionado con los 5 partidos políticos más relevantes que se presentan a las elecciones en España este abril.

El plugin consta de unas pestañas donde añadir información, un desplegable donde decidimos qué tipo de información queremos descargar y finalmente el botón para conectar.

Es realmente sencillo de utilizar:
  1. Añade la keyword, hashtag o usuario que quieras analizar. Puedes meter una lista para analizar la relación entre ellos, su exposición, etc.
  2. Ve metiendo cada palabra por separado y pulsa el botón de "Add".
  3. Despliega el menú y elige a qué red te quieres conectar. Puedes empezar conectándote a toda la red.
  4. Pulsa el botón de "Connect" y deja que el plugin comience a funcionar. No lo pares hasta que tengas la muestra suficiente que quieras (pueden ser incluso horas).


Cuando empiezas, y dejas pasar un tiempo, se irán dibujando todos los nodos y relaciones que está capturando en ese momento (no es retroactivo).

Como todavía no hemos aplicado ninguna distribución, verás que se forma una especie de cuadrado con puntitos y rallas.

Para saber cuántos nodos se están formando, en la parte de arriba a la derecha de la herramienta, tienes una pestaña que pone "Contexto". Aquí tienes un ejemplo:



MODIFICANDO LA APARIENCIA PARA ORGANIZAR LOS DATOS

Una vez que los datos están bajando (cuando son pocos) o ya los has bajado (cuando son muchos es mejor esperar a que haya bajado toda la muestra que queremos), podemos empezar a organizarlos.

1. Activando las etiquetas para ver qué es cada nodo

Para empezar a personalizar el dibujo con la información que estás descargando, lo primero es poder identificar qué es cada nodo.

Ve al icono desplegable que marco en azul y despliega todo el menú inferior de personalización del grafo.

Pulsa en la "T" para activar la visualización de las etiquetas. Se añadirán todas las etiquetas de golpe y será un manchón negro que no hay ni dios que entienda.

Para despejar el camino, ve a la pestaña "Etiquetas" y haz clic en la opción "Ocultar no seleccionados". De esta manera sólo sabremos qué es cada nodo cuando pasemos con el cursor por encima.


2. Aplicando color en función de la entidad de Twitter

Ahora que ya tenemos activas las etiquetas, vamos a organizar los nodos en función de qué tipo de entidad son: usuario, hashtag, tweet, símbolo, medios y enlace.

Para ello vamos a la pestaña superior derecha "Apariencia" >>Nodos>> Icono de la paleta >> Partición.

Una vez dentro, desplegamos el menú y seleccionamos "twtter_type". Y pulsamos el botón de "Aplicar".


Inmediatamente veremos como los nodos se tiñen con los colores de la selección por defecto. Por supuesto, puedes hacer clic sobre cada color para poner los que quieras. 

Además, al organizar los colores por entidades, también verás qué peso en porcentaje tiene cada entidad en función de los datos que has bajado o estás bajando.

Si haces clic sobre el botón de autoaplicar, te irá aplicando esta apariencia cada una frecuencia de tiempo.



3. Aplicando un tamaño en función del peso de cada nodo

Ya hemos organizado los nodos por colores, pero ahora queremos saber si hay nodos con más peso dentro del cluster que otros. Para ello, seguiremos dentro de la pestaña "Apariencia".

Si te fijas, en la parte de la izquierda hay un icono con unos círculos. Pulsa en este icono. Y elige la opción "Ranking".

Para este caso, elige "Grado de Entrada". Así veremos a qué se le está dando relevancia en Twitter en el momento de la captura de estos datos.

Al hacerlo nos aparecerá un menú de casillas donde debemos dar el peso mínimo y el máximo. Elige el tamaño que quieras y no te preocupes, si te queda muy grande o muy pequeño puedes cambiarlo siempre que quieras.

Pulsa "Aplicar" y verás que se dibuja de nuevo el grafo. También puedes añadir el autoaplicar.



Si te fijas, aparecen ya algunos nodos más grandes que otros.



Aunque hay más opciones de apariencia, dejémoslo aquí por ahora. Puedes jugar con ellas cuando quieras.

ANALIZANDO MEDIANTE UNA DISTRIBUCIÓN

Llegados a este punto es el momento de empezar a analizar los cluster. Como ya te expliqué en el post del NODEXL existen múltiples algoritmos para distribuir los cluster con los que estás trabajando. En función de cada distribución podrás obtener una información diferente, así que poco a poco deberías ir familiarizándote con ellos.

Para este tutorial he elegido el Yifan Hu Proporcional y el Atlas Force2 porque despejan las comunidades de cluster para poder ver las conexiones entre ellos con más facilidad. Esto te permite, entre otras cosas, ver cuáles son los puntos de unión entre los cluster y analizar así no sólo cada cluster por separado.

Para aplicar esta distribución debes estar en la pestaña "Distribución" de la herramienta. Es justo la que está al lado del plugin de Twitter con el que hemos estado trabajando.

Verás un  menú desplegable y con todas las distribuciones que tienes instaladas para usar. Si me has hecho caso al principio, y has instalado el Yifa Hu te tiene que aparecer ya en la lista. Si no, es el momento de volver a "Herramientas", "Plugins" y elegirlo para instalarlo ;-)

Una vez seleccionado sólo tienes que pulsar "Ejecutar". Si bien es cierto que hay múltiples opciones que puedes configurar, hasta que no comprendas cómo funciona completamente este algoritmo te recomiendo que dejes las que vienen por defecto.

Al ejecutar distribuye rápidamente el contenido generando los cluster y separándolos para que los puedas interpretar. El Yi me encanta si no hay demasiados nodos.

Puedes darle a "Ejecutar" todas las veces que quieras hasta que te resulte fácil interpretar.



Aquí tienes un ejemplo con el ejercicio que estamos haciendo de los partidos políticos. Verás que se van formando varios cluster formados por usuarios y hashtag. Si sientes curiosidad los hashtag son el de vox de "EspañaViva" y el otro es el del independentismo sobre la libertad de los presos.

He destacado uno de los usuarios (en verde) porque era el de Manuel Vals, candidato a la alcaldía a Barcelona.



Igualmente continué bajando más nodos hasta llegar a 30.000 y así estaba. Como ves, imposible analizar nada.


Lo primero fue despejar las comunidades con el Force Atlas 2 para forzar la reagrupación de todos los nodos que pertenecen a cada cluster. De esta manera vamos viendo cuáles han sido los más relevantes en el momento de la descarga de datos.

Como en el laboratorio de datos tengo todos los datos no es algo complejo. Si por ejemplo borrara los tuit y los hashtag, me quedaría solo con la red de usuarios. O al revés, si estoy analizando la opinión pública, quizá quiera quedarme con los hashtag y los tuit. Todo dependerá de los objetivos que tenga.




Ya tengo bien pegaditos los cluster. Ahora necesito despejarlos para poder analizarlos un poco mejor. Para ello, pasamos el Yifan Hu normal tantas veces como consideres, para abrir los cluster.



Imagino que el de abajo te generará cierta curiosidad por la gran concentración de nodos. Hace referencia a un tuit relacionado con el tema de las armas que ha abierto Vox. Como sabéis, generó mucha controversia y de ahí la explosión de tuits de gente común. Esa es la razón por la que parecen tan dispersos y supuestamente aleatorios. Como son ciudadanos normales y corrientes, "anónimos", ninguno tenía suficiente peso como para que el cluster se despejara mejor y sólo se ve el usuario y su tuit como los nodos de más peso.

De hecho, si te fijas en los porcentajes de las entidades que vimos cuando aplicamos color, ya te darás cuenta de lo "popular" que es el tema, pues el porcentaje de tuits es del 57,8% y el usuarios es del 31,5%. Significa que prácticamente todos los usuarios han hecho un tuit o lo han retuiteado. Si la diferencia entre porcentajes fuera realmente amplia, imaginemos un 70% de tuits y un 15% de usuarios, estaríamos hablando de unos perfiles de influencia muy relevantes dentro de nuestro estudio.

Recuerda revisar en el laboratorio de datos, cuáles son Re-tweets y qué tipo de enlaces se han compartido para entender mejor cómo ha funcionado la muestra que te has bajado.

Este resultado nos da pistas sobre la estrategia de este partido político y sobre cómo reacciona parte de la sociedad española ante ciertos temas.

En fin, a partir de aquí entraríamos en la fase de análisis puro y duro. Y eso ya depende de cada caso concreto.

LABORATORIO DE DATOS

El laboratorio de datos es donde se alojan en bruto los datos que el plugin va descargando: usuarios, tweets, hashtags, localizaciones, etc. Dependerá de si has decidido descargar toda la red cuando configuraste el Twitter Streaming Importer.

Desde el laboratorio de datos, puedes trabajar con ellos, por ejemplo, eliminando aquellos que consideres ruido, o incluso explotarlos buscando, por ejemplo qué hashtag se han relacionado con tu descarga.

Para ello, sólo tienes que ir al cajetín de búsqueda, desplegar el menú "ID" y elegir la entidad que te interese. Por ejemplo, puedes organizar el contenido en función del tipo de entidades de Twitter. También puedes buscar por palabra. Incluso mezclarlas. Te facilitará el análisis más detallado sobre el nodo en sí.

Por supuesto también puedes organizar el contenido haciendo clic sobre la columna que quieres organizar. Yo utilizo muchísimo la de "twitter_type" porque así ves rápidamente el contenido de los cluster.

Recuerda que DEBES guardar SIEMPRE el archivo de los datos exportándolos en CSV o en el formato que más te interese. Así podrás trabajarlos con otras herramientas que te puedan interesar.



Por otro lado, como te comenté con el NODEXL, si pagas la parte de pago de licencia de estudiante, puedes descargarte estos datos y también de Facebook y otras redes sociales para exportarlos en formato .gephi y poder trabajarlos con la herramienta tal y como acabamos de hacer en el tutorial.

Lo único que tendrías que hacer es importar el formato .gephi desde el Laboratorio de Datos.

CONSEJOS FINALES

Algunos consejos finales para este tutorial básico:

  • Guarda el archivo Gephi con frecuencia para que no se pierda tu trabajo. Hazlo desde Archivo >> Guardar como.
  • Guarda las query que realices con el Twitter Streaming Importer. Hay un botón que pone "Save Query File". Te lo guarda en .json.
  • Recuerda que no es con carácter retroactivo, así que tendrás que estar pendiente de descargar en el momento clave que quieres estudiar.
  • Cuantos más nodos quieras bajar, más procesamiento de ordenador necesitas. Así que procura ser todo lo eficiente que puedas, quizá no bajándote toda la red sino seleccionando el contenido, o descargando un número concreto, etc.
  • De vez en cuanto tendrás que utilizar la funcionalidad para centrar el grafo. Son iconos que están al lado del grafo, en la parte de abajo. 
  • Para hacer zoom puedes utilizar la rueda del botón.
  • Recuerda que puedes mover los nodos mantiendo pulsado el cursor, por si quieres despejar uno concreto.
  • Puedes ir modificando el tamaño de los nodos conforme vas dibujando el grafo para ayudarte a ver la centralidad mucho mejor. Hazlo en la pestaña de Apariencia.

No te desanimes, ten paciencia y verás qué información tan interesante podrás aportar a tus análisis. ¡Nos leemos en el próximo post!