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.
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.
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]
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.
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:
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.
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.
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
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:
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.
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,]
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
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
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_
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:
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)
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 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)
#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')
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 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!