Tras ver qué podemos hacer conectando twitter y R y cómo hacerlo, además de algunas de las funciones más importantes, y cómo segmentamos seguidores, toca mostrar algunas de las funciones que nos permiten analizar publicaciones y hashtags.

ANÁLISIS DE PALABRAS MÁS REPETIDAS JUNTO A UN HASHTAG

Ver qué palabras tienen asociadas ciertos hashtags relevantes nos permiten no solo encontrar más hashtags para añadir a nuestra publicación, sino a detectar nuevas temáticas relacionadas y afinar las palabras que usamos en nuestras publicaciones. Lo primero que debemos hacer es instalar y llamar todas las librerías que vimos anteriormente, conectar con la API de twitter, usar la función para sacar la información del hashtag que nos interesa y convertirlo en un dataframe. Luego, lo convertimos en un string y hacemos todas las operaciones que mencioné en el artículo anterior para limpiar el texto al máximo y sacar una tabla de frecuencias con las palabras más repetidas ordenadas. Todas las instrucciones para hacer esto están en los artículos anteriores, por eso pasamos rápido por este punto.

QUÉ USUARIOS SON LOS QUE MÁS USAN ESE HASHTAG

Detectar los usuarios más activos en un tema nos ayuda no solo a detectar seguidores potenciales, sino también a influencers en el tema y a personas que pueden generar contenidos que nos interesa compartir con nuestra audiencia. Hacerlo es muy sencillo: sobre el dataframe que creamos inicialmente para sacar las publicaciones de un determinado hashtag, hacemos lo siguiente:

#qué usuarios son los que más han empleado el hashtag:
#eliminamos los retweet y nos quedamos sólo con los nombres de los usuarios que han escrito el tweet
usuarios <-subset(dataframehashtag,isRetweet==FALSE)$screenName
#Opción 1: los tabulamos y ordenamos.
usuarios<-sort(table(usuarios),decreasing=T)
#Opción 2: ver directamente los x iniciales
usuarios[1:x]

QUÉ CONTENIDOS DE UN HASHTAG SON MÁS POPULARES

En twitter, la medida de popularidad de una publicación está en la interacción que tiene (respuestas, favoritos y retweets, en especial estos dos últimos) así que sacar las publicaciones más populares de un hashtag es tan sencillo como crear un filtro en el dataframe para sacar las publicaciones en las que haya al menos x interacciones

#contenido más retuiteado
#retuiteado + fav
contenido_popular<-filter(dataframehashtag, dataframehashtag[["favoriteCount"]]>x, dataframehashtag[["retweetCount"]]>x)
#solo retuiteado
contenido_popular2<-filter(dataframehashtag, dataframehashtag[["retweetCount"]]>x)

Hay que tener presente que, según el sector, a veces la gente no hace retweet pero sí fav, o al revés, o no hace ninguna de las dos pero sí responde a las publicaciones. También, según el tipo de hashtag, x deberá ser mayor o menor. Así pues, es tan fácil como ajustar el código a las circunstancias. Luego, sobre eso, podemos hacer un nuevo filtro para sacar las palabras más populares del contenido más popular, lo que nos indicará qué no debe faltar en nuestras publicaciones para tener potencial de éxito.

ANÁLISIS DE SENTIMIENTOS DE UN HASHTAG

El análisis de sentimientos nos permite monitorizar opiniones sobre determinados temas, saber hasta qué punto en un sector se utilizan un tipo de mensajes u otros (aprovechando miedos de los consumidores para vender determinados productos frente a ventas atrayendo a los seguidores con los beneficios, por ejemplo)... Para hacerlo, además de las anteriores, necesitamos instalar y ejecutar las librerías SnowballC, tm y syuzhet. Con ellas hay que tener un poco de paciencia, a veces fallan y hay que ejecutarlas varias veces, aunque suelen funcionar de forma correcta. Hecho esto, creamos un dataframe con los datos del hashtag que nos interesa y, quedándonos solo con la columna text, eliminamos hashtags, @, url y toda la información que no es relevante para el análisis mediante la función gsub, que mostré en el artículo anterior. Luego comenzamos a trabajar con definiciones de sentimientos. Por ejemplo, podemos crear una tabla en la que nos muestre si las publicaciones contienen palabras asociadas a los sentimientos principales y cuántas hay.

#Insertando palabras de definición de sentimientos
word.df <- as.vector(dataframehashtag)
emotion.df <- get_nrc_sentiment(word.df)
emotion.df2 <- cbind(bigdata.df2, emotion.df)

Saldrá algo parecido a esto:

análisis datos twitter

También podemos sacar publicaciones donde predomine un sentimiento mediante este código:

#extrayendo puntuación de sentimientos
sent.value <- get_sentiment(word.df)
#más positivos (si queremos los más negativos, cambiamos max por min
most.positive <- word.df[sent.value == max(sent.value)]
#simplemente positivos (si queremos negativos o neutros, poner < o == respectivamente)
positive.tweets <- word.df[sent.value > 0]
#tabla resumen
category_senti <- ifelse(sent.value < 0, "Negative", ifelse(sent.value > 0, "Positive", "Neutral"))
table(category_senti)

Y este es el resumen del código utilizado en la charla de Analizando datos de twitter con R, impartida por Déborah Fernández el pasado día 27. Si queréis ver la charla completa con explicaciones más detalladas y ejecución de parte del código en directo, podéis visitar nuestro canal de youtube.

¿QUIERES APLICAR TODO ESTE CONOCIMIENTO? COMIENZA A A PROGRAMAR EN R

En nuestro curso de Análisis de datos con R aprenderás de forma rápida a utilizar este lenguaje.

Una vez tenemos claro qué podemos hacer conectando twitter y R y cómo hacerlo, además de algunas de las funciones más importantes, es el momento de comenzar nuestro análisis. El análisis de datos de twitter con R seguidores te ofrece la posibilidad de extraer más información sobre tus seguidores.

SEGMENTANDO A MIS SEGUIDORES

Una vez que hemos sacado los seguidores de un usuario con la función getfollowers que comenté en el artículo anterior, podemos hacer una segmentación por idioma, localización, nivel de influencia… El análisis de datos de twitter con R seguidores es clave para conocer más sobre los perfiles

CÓMO SE AUTODEFINEN MIS SEGUIDORES

La descripción de cada usuario en twitter es, obligatoriamente, corta. Esto le obliga a seleccionar muy bien el texto para autodefinirse de la forma más precisa. Así pues, hacer un análisis de esos textos nos ayudará a segmentarlos cualitativamente, aparte de las obvias segmentaciones más clásicas. Para ver las palabras más repetidas mediante una nube de palabras, debemos instalar y llamar las librerías wordcloud y RColorBrewer, además de las que mencioné en el artículo anterior. El análisis de datos de twitter con R seguidores es una serie de artículos.

Lo primero que debemos hacer es conectar con la API de twitter, cargar todas las librerías, sacar la información del usuario cuyos seguidores queremos analizar, conseguir sus seguidores y convertirlo todo en un dataframe (el código está en el artículo anterior). Para este ejemplo, usaremos un dataframe llamado seguidores

#convertimos la descripción de esos seguidores en un String. 
texto2 <- toString(seguidores$description)
#El texto lo transformamos en una lista separada por espacios
texto_split2 = strsplit(texto2, split=" ")
#Deshacemos esa lista y tenemos el data.frame
texto_col2 = as.character(unlist(texto_split2))
texto_col2 = data.frame(toupper(texto_col2))
names(texto_col2) = c("V1")
#Eliminamos algunos caracteres regulares
texto_col2$V1 = gsub("([[:space:]])","",texto_col2$V1)
texto_col2$V1 = gsub("([[:digit:]])","",texto_col2$V1)
texto_col2$V1 = gsub("([[:punct:]])","",texto_col2$V1)
#Creamos una variable longitud de la palabra
texto_col2$largo = nchar(texto_col2$V1)
#Quitamos palabras cortas (también hay funciones que permiten quitar palabras comunes como de, en, para...)
texto_col2 = subset(texto_col2,largo>4 & largo<=10)
#crear dataframe
palabras_seguidores = data.frame(table(texto_col2$V1))
#Ordenamos
palabras_seguidores_f<-filter(palabras_seguidores, palabras_seguidores[["Freq"]]>3)
arrange(palabras_seguidores_f, desc(palabras_seguidores_f[["Freq"]]))
#Hacemos la nube de palabras
wordcloud(words = palabras_seguidores_f$Var1, freq = palabras_seguidores_f$Freq, min.freq = 1, max.words=200, random.order=FALSE, rot.per=0.35,colors=brewer.pal(8, "Dark2"))

De esta forma, tendremos una tabla ordenada con las palabras más frecuentes y una nube de palabras que nos permitirá ver los resultados de una forma más sencilla y bonita. Por ejemplo, si lo hacemos con los seguidores de la academia digital para personas con discapacidad de Fundación ONCE, cuyos cursos hemos llevado a cabo, veremos algo parecido a esto:

análisis datos twitter

Como veis, de un solo vistazo vemos qué intereses tienen nuestros seguidores (o los seguidores de cualquiera) por orden de importancia, lo que nos da mucha información sobre ellos.

Optimizando followbacks

A la hora de crear una estrategia de followbacks efectiva no tenemos que perder el tiempo siguiendo a todo el que sigue a nuestra competencia para que nos siga de vuelta. Lo que debemos hacer es dirigirnos directamente a la gente que tiene potencial interés en nuestro tema, segmentada por lenguaje o localización y que además no sea de los que basan completamente en el followback su estrategia de crecimiento en redes sociales.

Para ello, podemos crear una columna nueva con la diferencia de seguidores y seguidos filtrando luego las filas con las características que nos interesan:

#creamos una columna nueva con la diferencia de seguidores y seguidos
followbackseguidores<-mutate(seguidores, DiferenciaSeguidos = followersCount-friendsCount)
#nos quedamos solo con las filas que tienen parámetros que nos interesan, en este caso lenguaje inglés con más seguidores que seguidos
followback1<-filter(followbackseguidores, lang=="en", DiferenciaSeguidos==TRUE)

Podemos incluso hilar más fino y quedarnos solo con los que en su descripción contienen ciertas palabras. análisis de datos de twitter con R seguidores

value <- "palabraquequieres"
followback2<-transmute(followback1, screenName, description, lang, DiferenciaSeguidos, contieneBD=grepl(value, followback1$description))
followback3<-followback2[followback2$contieneBD==TRUE,]

¿QUIERES APLICAR TODO ESTE CONOCIMIENTO? COMIENZA A A PROGRAMAR EN R

En nuestro curso de Análisis de datos con R aprenderás de forma rápida a utilizar este lenguaje.

 

Ya hemos hablado en otra entrada de qué es R y de su potencial. Hoy, nos centraremos en cómo puede esta herramienta ayudarnos a sacar el máximo partido de nuestros datos de twitter. Cada vez hay más librerías relacionadas con twitter que podemos utilizar para extraer y analizar estos datos, pero para este caso utilizaremos Twitter. ANÁLISIS DE DATOS DE TWITTER CON R

DATOS DE LOS TEXTOS GENERADOS

Cada tweet creado nos da mucha información relevante: desde su origen en según qué plataformas hasta cuántas interacciones posee, aparte del propio texto. En esta imagen, podemos ver qué información nos dan algunos de los tweets de datahack. ANÁLISIS DE DATOS DE TWITTER CON R

datos que podemos sacar de un tweet para análisis

DATOS DE LOS USUARIOS

Entre los datos más relevantes de cada usuario, podemos sacar desde su propia autodescripción, su nivel de influencia (seguidores-seguidos), cómo de activo es, procedencia… En esta imagen podemos ver la información de nuestro usuario @datahack_

datos que podemos sacar de un usuario para análisis

ANÁLISIS RELEVANTES

Con todo lo recogido, podemos sacar información bastante útil para optimizar nuestro posicionamiento y el tipo de mensajes que mandamos en las redes sociales y podemos realizar:

CÓMO EMPEZAR EL ANÁLISIS DE DATOS DE TWITTER CON R

Para conectar twitter con el programa en el que estemos ejecutando el lenguaje R, lo primero que necesitamos es una cuenta en la API de twitter. Una vez que la tengamos, podremos conectarnos gracias a las claves que nos proporcione.

La API de twitter tiene algunas limitaciones, como un número máximo de tweets recuperados por consulta y una limitación de tiempo mínimo entre consulta y consulta. Si nos pasamos podemos ser bloqueados, así que tenemos que tener cuidado y poner siempre un tamaño de muestra inferior a 200, sin hacer varias consultas en la misma ejecución. Si necesitamos muestras más grandes, podemos hacer varias consultas periódicamente en las que vayamos descargando datos (son en orden cronológico) y uniéndolos, por ejemplo. ANÁLISIS DE DATOS DE TWITTER CON R

En cualquier caso, lo más interesante del análisis de datos en twitter es la inmediatez, para ver las tendencias de cada momento, ya que los hashtags populares y las palabras asociadas a los mismos, por ejemplo, pueden cambiar de un día para otro, por lo que con una muestra de 100 es más que suficiente.

Conectaremos la API de twitter con R mediante el siguiente código:

# Cargar las credenciales
consumer_key <- "xxx"
consumer_secret <-"xxx"
access_token <-"xxx"
access_secret <-"xxx"
setup_twitter_oauth(consumer_key, consumer_secret, access_token=access_token, access_secret=access_secret)

FUNCIONES BÁSICAS

Una vez hecho esto, podemos ponernos a trabajar. Algunas de las funciones más básicas que debemos aprender son las llamadas para recuperar información y cómo convertirlas en dataframes   con los que trabajar. No olvidemos que, para trabajar con los datos de twitter, tendremos que instalar y llamar las librerías twitteR, base64enc y tidyverse

SACAR TODA LA INFORMACIÓN DEL TIMELINE Y CARACTERÍSTICAS DE UN USUARIO

#sacar tweets de un usuario:
usuario<- userTimeline('usuario',n=100)

Para conseguir solo algunos de los datos más importantes, como seguidores y seguidos, podemos usar este código (sin olvidar convertirlo después en un dataframe):

#Sacar información de un usuario:
usuario<- getUser('usuario')
#conseguir sus seguidores
usuario_seguidores <- usuario$getFollowers(retryOnRateLimit=120)
#conseguir sus seguidos
usuario_seguidores <- usuario$getFriends(retryOnRateLimit=120)

SACAR TODA LA INFORMACIÓN DE UN HASHTAG

#buscamos el hashtag, limitamos la búsqueda a 100 tweets desde el 01 de junio de 2018.
hashtag<-searchTwitter("#hashtag", n=100, since='2018-06-01')

HACER LOS DATAFRAMES

No hay que olvidar que toda esta información que saquemos, para trabajar con ella, hay que convertirla en un dataframe con la función do.call o twListToDF. Esta es la estructura de ambas:

do.call("rbind", lapply(xxx, as.data.frame))
twListToDF(xxx)

ANÁLISIS DE DATOS DE TWITTER CON R. Una vez que tenemos todo esto, podemos comenzar a trabajar en el análisis de toda esa información, que es lo que mostraremos en los próximos artículos:

¿QUIERES APLICAR TODO ESTE CONOCIMIENTO? COMIENZA A A PROGRAMAR EN R

En nuestro curso de Análisis de datos con R aprenderás de forma rápida a utilizar este lenguaje.

 

R es un entorno y lenguaje de programación, distribuido bajo la licencia GNU GPL, que se creó como un dialecto libre del lenguaje S

Algunas de las características de R:

Extensible:

Los usuarios lo pueden extender definiendo sus propias funciones, aparte de las de las numerosas bibliotecas preconstruidas que tiene. La mayor parte de ellas están escritas en R, aunque para algoritmos computacionalmente exigentes es posible desarrollarlas en C, C++ o Fortran. Como es un proyecto colaborativo y abierto, los propios usuarios pueden publicar paquetes que extienden su configuración básica.

Funcional

Las funciones en R se pueden manipular igual que los vectores. Además puedes asignar las funciones a variables, almacenarlas en listas, devolverlas como resultados de otras funciones o incluso pasarlas como argumentos de otras funciones

Orientado a Objetos:

¡Sí! Además de ser funcional, es orientado a objetos, en realidad es una mezcla de ambos paradigmas. En el caso de del segundo de ellos, R nos permite modelar conceptos del mundo real relevantes a nuestro problema, representándolos como clases y objetos que podemos hacer que interactúen entre sí.

Integrable:

Ofrece múltiples posibilidades para atacar a datos almacenados en distintos tipos de bases de datos. También presenta múltiples bindings y paquetes que permiten a R interactuar con otros lenguajes (como Perl, Ruby o Python) e intercambiar objetos con ellos.

Gráficos avanzados:

Existen librerías para R que permiten generar una extensa variedad de gráficos, desde la completísima ggplot2hasta otras más simples pero también potentes como corrplot

Diferentes Interfaces gráficos:

Si bien R se puede utilizar a través de línea de comandos, existen varios editores gráficos muy interesantes capaces de correr en Windows, Linux y MacOS. Desctacamos especialmente R Studio y R Commander.

Interpretado y no compilado:

A diferencia de C, C++ ó Java, no tenemos que compilar nuestro código, sino que el intérprete de R lo ejecuta directamente. Lo curioso de esto es que, puesto que muchas de sus rutinas computacionalmente más exigentes están escritas en C ó C++, muchas veces, sin que nos demos cuenta, se estará ejecutando, entre bambalinas, código compilado en esos lenguajes.

Basado en memoria:

R mantiene todos los objetos que definimos en nuestro programa en la memoria de nuestra máquina. Por ello, es importante entender cómo gestiona la memoria, para poder optimizar nuestro código. Así evitamos, por ejemplo, copias innecesarias de objetos que pueden ralentizarlo y hacer llegar a un límite nuestra máquina.

Qué podemos hacer con R:

Este lenguaje de programación fue concebido para el análisis estadístico, aunque también se utiliza en la minería y análisis de datos, investigación biomédica, bioinformática, machine learning… Esto es porque proporciona un amplio abanico de herramientas estadísticas y gráficas, además de tener una gran potencia como herramienta de cálculo.

MÁSTER EXPERTO EN BIG DATA & ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.

Una de las labores principales del científico de datos Big Data es la conversión de datos en conocimiento útil para la empresa. Para realizar este interesante trabajo necesitan utilizar herramientas Big Data específicas, tanto de pago como de Open Source. De hecho, según la decimosexta encuesta de KDNuggets, el 64 por ciento de los científicos de datos utilizan ambas herramientas Big Data.

Desde la perspectiva de Datahack, las diez herramientas Big Data imprescindibles para la correcta labor del científico de datos son las siguientes:

1.- SQL. Structured Query Language. Requiere manejo de fórmulas algebraicas y cálculo relacional. Es un lenguaje de acceso a base de datos.

2.- Python.  Es un lenguaje avanzado de programación interpretado que posee una sintaxis capaz de producir código legible. Permite tanto programación dirigida a objetos como funcional e incluso imperativa (Instrucciones que le explican al ordenador cómo debe realizar una determinada tarea). Además, puede utilizarse en múltiples plataformas

3.- R. Es la más usada de las herramientas Big Data entre los científicos de datos, lo que asegura la existencia de multitud de paquetes y librerías fácilmente reutiizables. Es un lenguaje de programación con software de código abierto, destinado a la programación estadística y los entornos gráficos

4.- KNIM. Konstanz Information Miner, construido bajo la plataforma Eclipse, es una plataforma de minería de datos que permite el desarrollo de modelos en un entorno visual.

5.- RapidMiner. Permite desarrollar procesos analíticos de un entorno gráfico. Antiguamente era denominado YALE (Yet Another Learning Environment). Proporciona más de quinientos operadores dedicados al análisis de datos, incluyendo los necesarios para realizar operaciones input y output, pre-procesamiento y visualización. Tiene la ventaja de poder usar los algoritmos de Weka.

6.- Tableau. Se centra en la visualización de datos.

7.- Hadoop. Esta herramienta está actualmente considerada como el framework estándar para el procesamiento y almacenamiento de grandes volúmenes de datos.

8.- Spark. Es una ventana de trabajo de desarrollo. Su motor rápido le permite procesar datos a gran escala además de realizar procesamiento en memoria.

9.- SAS.  SAS es la líder de las herramientas Big Data en el mercado del Business Intelligence.

10.- Excel. Esta herramienta de Microsoft es esencial como herramienta de creación y gestión de bases de datos.

chevron-down