Publicado hace 10 años por sintesisnianalisis a joserodriguez.info

El conflicto venezolano geolocalizado en twitter. Aunque la distribución de twitts en el país parece más o menos homogénea, si nos aproximamos a Caracas, los pro-Maduro se centran más en la zona oeste de la ciudad y de los pueblos próximos a la capital, mientras que los partidarios antichavistas se concentran más hacia el este de la ciudad y en la zona centro. Una buena cantidad de twitts pro-opositores curiosamente salen de la piscina del Hotel Melià de Caracas, mientras algunos twitts pro-Maduro salen del Palacio de Miraflores.

Comentarios

e

#c-1" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/2120376/order/1">#1 A mí me ha sorprendido, porque lo cierto es que en todo mi TL de tuiter no debe haber ni un 5% de tuits geolocalizados, son bastante escasos, mientras que en esa muestra andan entre el 86% y el 99%.

Podría ser una brecha cultural, pero vamos, que echándole un vistazo a ambos HT



donde la inmensa mayoría de tuits aparecen sin geolocalizar,
y las condiciones de geolocalización del propio Twitter

que especifica que
Si has adjuntado una ubicación geográfica específica a un Tweet (por ejemplo, con Twitter para iPhone o Twitter para Android), esas coordenadas específicas se ligarán al Tweet y estarán disponibles junto a este. Por ejemplo, si haces clic en la información de ubicación geográfica debajo de un Tweet en twitter.com, se mostrará un mapa con un icono de esa ubicación geográfica. Si haz adjuntado un lugar a tu Tweet, el mapa puede mostrar un icono en el centro geográfico de ese lugar.
pues como que, a falta información más específica, me fío entre muy poco y nada de ese "script de geolocalición de tuits con R".

trinitro

#5 La propia API de twitter lo explica. El script lo único que hace es discriminar que twitts tienen la variable coordinates (no utiliza las ubicaciones de geolocalización en segundo orden como ciudad, país, IP, etc...)

de estos extrae la variable coordinates, hace una tabla con ellos, invoca un mapa de google maps o de la librería maps de R y dibuja puntos rojos (o del color que quieras) en un plot que incluye el mapa que has invocado. Punto.

El escript utiliza la funcionalidad searchtwitter() de la libreria twitter() de R. La documentación es pública y el script no tiene ningún secreto para cualquier programador R. No lo publico aún porqué estoy depurando errores de presentación en los mapas, haciendo que publique a la vez un CSV bien ordenado con el estracto de los datos para poder ser importado a Google Maps
editado:
al. y no creo que aún esté en fase de publicación.

e

#7 Yo no soy programador, pero lo que yo entiendo, que lo mismo me equivoco, es que según las condiciones de uso de Twitter, la geolocalización está por defecto desactivada. Si se activa, se muestra públicamente a todos. Si no, ni siquiera se almacena, no se asocia al tuit ninguna información geográfica, por lo que difícilmente puede ser extraíble. Yo veo que la mayoría de los tuits no muestran geolocalización alguna, es decir, que según tuiter tienen desactivada esa opción, pero tú sin embargo afirmas que tienes los datos geográficos de la práctica totalidad.

Otra cosa que no entiendo, ya que estamos, es que si has extraído 10.000 tuits en total, por qué en los mapas ni siquiera se acercan a 100 los representados.

trinitro

#9 Comprensión lectora nivel menéame...

Indico que de los 5.000 twits "chavistas" tan sólo un 1% están geolocalizados (son 59) y que el 14% (casi 700) lo están de los 5.000 twits "antichavistas" analizados.

En el mapa están los casi 750 twits geolocalizados. ¿No los ves? El tema es que algunos se hacen de localizaciones tan próximas entre sí que aparece casi como un único punto. Necesitaría hacer zoom sobre zonas muy concretas a un nivel tan alto que no tendría página para hacer todos los plots. Un ejemplo lo puedes ver en la primera "maldad" donde se ve una imagen con los twits realizados desde la piscina del hotel Melià Caracas, casi 50, eso lo ves como uno o dos puntos azules en el mapa de más resolución de la capital (tercer mapa). En los mapas más grandes por ejemplo, Barcelona, Tigres o Juan Gregorio hay puntos que si hiciera la aproximación representan unas cuantas docenas, pero tú ves solo dos (uno un poco gordo azul y otro un poco gordo rojo).

Otro de los motivos por los que aún no he liberado el código es porqué no se me ocurre como clusterizar puntos y en lugar de superponerse unos a otros puedan dibujarse conjuntamente como una esfera con un número.


No eres programador, si lo fueras y conocieras el paquete ggmap de R, verías que el script final que es con el que monto el mapa lo que hace es un plot del mapa y sobre él dibuja puntos de colores (geom_point) si los data(long/lat) son muy próximos los puntos de colores parecerán el mismo (genera un PNG no un fichero vectorial).

Te he presentado la metodología, cualquiera puede reproducir mis datos con mi código y extraer los datos de una fuente pública. Ahora puedes poner en cuestión todo

noexisto

#10 cuando escribo sobre Obama yo mismo me geólocalizo en Washington y así lo hago cientos de veces con otros tuits

trinitro

#c-5" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/2120376/order/5">#5 En todo caso... aquí te dejo el código aún sin terminar de trabajarlo. Como puedes ver es en la parte final que no termino de encontrar la forma genérica para que te busque un mapa para cualquier búsqueda que esté centrado en el punto de más interés (tendré que hacer una media de lats y longs) y por tanto tengo comentado lo que luego meto manualmente. Por eso precisamente no lo he publicado porqué el código no está acabado y no facilita tanto el trabajo como quiero que lo haga.

require(twitteR)
library(streamR)
library(RCurl)
library(tm)
options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))
u = "https://raw.github.com/tonybreyal/Blog-Reference-Functions/master/R/bingSearchXScraper/bingSearchXScraper."
x = getURL(u, cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl"))

load("rcredenciales.RData") ## El tener tu propio .RData autentificado es una parte compleja
registerTwitterOAuth(tw)

hashtag = readline("¿Cuál es el hashtag que quieres analizar? ")
# pequeño código que evita dejar vacía esta variable
while (hashtag =="") hashtag = readline("Por favor, define un hashtag para analizar ")

## TweetNumber es un "Number"
## Es el número de twitts en los que quiero ahondar
TweetNumber = readline("Cuantos tweets quieres analizar? ")
TweetNumber = as.numeric(unlist(strsplit(TweetNumber, ",")))

##
## geo es una string especial de localización geográfica
## tiene tres componentes, 2 numéricas que indican las coordenadas
## y una tercera formada por un número y la terminación "km" o "mi"
## indica un rádio de búsqueda
geog = readline("Ámbito geográfico, dejar vacio si no se quiere colocar, ejemplo:41.378476,2.1701334,150km ")
if (geog=="") geog=NULL
## Ejemplo búsqueda geográfica "41.378476,2.1701334,150km"

#########################################
## Ejecución del vaciado de datos
## análisis.
## Input: vairables: hashtag, tweetnumber, geo
## Output: Un data frame con usuarios y números de RT
#########################################

rdmTweets = searchTwitter(hashtag, n=TweetNumber, geo=geog)

#Creamos un Data Frame con los resultados
df = do.call("rbind", lapply(rdmTweets, as.data.frame))

points

D

La muestra poblacional es simplemente ridícula.

trinitro

#2 Como indico en mi post, la muestra es pura y simplemente ILUSTRATIVA es una muestra de lo que está ocurriendo en twitter en la que se pueden ver algunos detalles. Y punto. La asimetría e geolocalización sí la considero significativa ya que en pequeñas muestras posteriores aleatorias se sigue produciendo.

m

Me gusta que indique al final un disclaimer, por si acaso.