bájate miles de tuits y cuenta una historia
TRANSCRIPT
Presentacion
David Martín-Borregón
– @davidMartinB
– Ingeniero técnico en sonido e imagen
– Ingeniero superior en telecomunicaciones
– Master en Inteligencía Artificial y Machine Learning
– Ingenierio en Data'n'Press– Data Scientific / Data Engineer
– Intership en Yahoo– Participante en Big Dive 2013
Presentación
● El público:
– Cúantos de los presentes tuvieron estudios matématicos/estadísticos fuera de la escuela secundaria?
– Cúantos de los presentes saben que es una variable y una condición en programación?
Presentación
● Extracción– Cómo va la api de twitter y que datos proporciona
● Procesado– Cómo procesar los datos que da twitter.
(IR+SignalP+GraphTheory+NLP+Geo)● Volumen● Estructura social● Geolocalización● Anális de texto
● Visualización– Anális de casos aplicados
Extracción
● ¿Cómo interactuar con a la api?
– Documentación: https://dev.twitter.com/docs● Bastard Book of Ruby, python,
– Liberería: https://dev.twitter.com/docs/twitter-libraries + ….
– Oauth:
https://dev.twitter.com/apps
Ejemplo de oAuthimport tweepy
# == OAuth Authentication ==
# This mode of authentication is the new preferred way of authenticating with Twitter.
# The consumer keys can be found on your application's Details page located at https://dev.twitter.com/apps (under "OAuth settings")
consumer_key="T1z6Xp__________MuTF6g"
consumer_secret="IAsYxMOa_________________hqltPGM"
# The access tokens can be found on your applications's Details page located at https://dev.twitter.com/apps (located under "Your access token")
access_token="161268291-osNQotjA7R0_______________1vQYwFlL7ec793"
access_token_secret="sxAcnU3_________________________U8nRkFXis8Po"
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
# If the authentication was successful, you should see the name of the account print out
print api.me().name
# If the application settings are set for "Read and Write" then this line should tweet out the message to your account's
# timeline. The "Read and Write" setting is on https://dev.twitter.com/apps
api.update_status('Updating using OAuth authentication via Tweepy!')
Tipos de API
● Search API– Buscar en twitter.
● Streaming API– Abrir una grifo de tweets a una busqueda.
– Importante para data-mining!!
● REST API– Interacción total para un usuario.
● Twitter for websites– Twitter cards, widgets, ...
Twitter Platform Objects
● Users - Objeto que hace tweets.
● Tweets - Objeto básico.
● Entities - Hashtags, media, urls, mentions
● Places – Coordinates o nombres.
PROCESADO
● Dataset de pruebas:– 2738 tweets
– Recogidos días no consequtivos de la semana pasada
– #dataviz, #periodismodatos, #jpd13
PROCESADOCANTIDAD / TIEMPO
● En que moment se ha tuiteado más/menos con un hastag?
● Hoy habla más gente sobre este tema que ayer?
● Ahora mismo cuanto gente hay hablando del tema?
● De cúal de estos dos temas se habla más?
PROCESSADOVOLUMEN
● Más básico, acumulación de tweets
En que momento se ha tuiteado más? Ahora mismo cuanta gente ha habla del tema?
SOCIOGRAMA
Problema de los siete puentes de Köninsberg - EULER
¿Es posible pasar por los siete puentes sin repetir puente?
SOCIOGRAMA
Euler crea los “graphs” - 1763
¿Es posible pasar por los siete puentes sin repetir puente?
SOCIOGRAMA
Node - Nodo
Edge - arista
Node: User Edge: follow
Node: User Edge: Hashtags
Node: Hashtags Edge: Users
…
Algunos tipos:
(un)Directed Graph
Weighted Graph
…
SOCIOGRAMATwitter
#Periodismodatos Users: 43 tweets: 68#JPD13 Users: 131 tweets: 270TOTAL: Users: 162 tweets: 338
1186 Vertices
SOCIOGRAMAHITS
@facemar@NoticiaCiencia@merinoticias@strausmaceta@desutoKomunika
@robertodiaz@inaki_agirre@enricbach@sApellaniz@facemar
TOPIC DETECTIONMODELOS ESTADÍSTICOS
● Palabras más dichas (dataviz)
– BI_Dashboards ['dataviz', 'data', 'analytics', 'the', 'for']
– jenstirrup ['dataviz', 'news', 'latest', 'roundup', 'of']
– HlthAnalysis ['dataviz', 'the', 'in', 'of', 'tableau']
– ddjournalism ['ddj', 'dataviz', 'bigdata', 'to', 'data']
– DashingD3js ['gtgt', 'dataviz', 'data', 'visualization', 'the']
– albertocairo ['dataviz', 'infographics', 'mt', 'to', 'of']
– CraigMilroy ['dataviz', 'bigdata', 'analytics', 'via', 'the']
– SASUK_VAnalytic ['dataviz', 'sas', 'to', 'data', 'analytics']
TOPIC DETECTION
● TF-IDF:
Muy dicha por todos
Poco dicha por todos
Muy dicha por un usuario
STOP - WORD TOPIC
Poco Dicha por un usuario
UN-TOPIC Error
TOPIC DETECTION
● TF-IDF (dataviz)
– jenstirrup ['news', 'latest', 'httptconoq8ichxkd', 'summary', 'httptcokkmpu9c9fi']
– HlthAnalysis ['death', 'vizoftheday', 'causes', 'tableau', 'world']
– CraigMilroy ['bigdata', 'analytics', 'datascientist', 'via', 'cmo']
– ddjournalism ['ddj', 'journalism', 'bigdata', 'opendata', 'nicolaskb']
– BI_Dashboards ['businessintelligence', 'dundasdata', 'analytics', 'dashboards', 'do']
– DashingD3js ['gtgt', 'visualization', 'data', 'job', 'visualizations']
– SASUK_VAnalytic ['sas', 'httptcojxn0tevr2w', 'analytics', 'demo', 'visual']
– albertocairo ['infographics', 'mt', 'good', 'art', 'summary']]
TOPIC DETECION
● TF-IDF es limitado para tweets
● TrendingTopics es una alternativa (que esta subiendo)
● Comparación con la red aleatoria vecina
SENTIMENT ANALISIS
● Encuesta
● Bag of words
● Bitex: http://svc8.bitext.com/api-demo/
EJEMPLOS
● Geolocalitzación + volumen + natural language: http://trendsmap.com/.
● Natural Language + volumen + geolocalización + sociograma: Trending topics de twitter
EJEMPLOS
● Sociograma + volumen: http://www.vilaweb.cat/tuitometre
● Volumen(user) + sociograma: http://twitterencatala.org/
● Geolocalització + volumen(media): http://merce2012.elperiodico.com/Espectacle_multimedia___Montreal_signe_l%27Ode_a_la_vie_(Diumenge)-merce-2012-221.html
EJEMPLOS
● Volumen + Natural Language http://deustosarelab.deusto.es/eleccionesvascas2012/
● Sociograma + narual language + volumen: http://www.guardian.co.uk/uk/interactive/2011/dec/07/london-riots-twitter
● Geolocalitzaicón + volumen: http://engineering.twitter.com/2012/06/studying-rapidly-evolving-user.html
●