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

Si quieres profundizar en la herramienta R, ¡en datahack te ayudamos! Con nuestro Master en Data Science y Big Data aprenderás todo lo que necesitas para dar un paso al mundo de los datos.

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:

 

MÁSTER EN DATA SCIENCE Y BIG DATA

¿Quieres convertirte en un profesional de la herramienta R? En datahack encontrarás a tu mejor aliado. Consulta nuestra oferta de Máster en Data Science y Big Data , práctica y adaptada a las necesidades del mercado. ¿Tienes dudas? Pregúntanos directamente todo lo que se te ocurra. ¡Empieza ya a abrirte camino como especialista en Inteligencia de Negocio!

chevron-down