Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Open Social Data (Jaca), Gonzalo Ruiz

854 visualizaciones

Publicado el

Open Social Data

Publicado en: Tecnología
  • Sé el primero en comentar

Open Social Data (Jaca), Gonzalo Ruiz

  1. 1. Open Social Data Hackaton 26 de sep/embre de 2014
  2. 2. Qué es el BIFI • Ins/tuto de Biocomputación y Física de Sistemas Complejos de la Universidad de Zaragoza • Mul/disciplinariedad – Bioquímica – Física – Computación 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 2
  3. 3. Análisis de redes complejas • Grafo con una serie de caracterís/cas especiales (estructura en comunidades, jerarquía, etc.) • Las redes sociales (Facebook, Twi[er, …) • Se pueden u/lizar para extraer información sobre la sociedad • Experimentos dilema del prisionero, análisis del movimiento del 15m, Kampal, etc. 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 3
  4. 4. Escucha ac/va en Aragón • ¿De qué se habla en Aragón? • ¿Qué es importante para los aragoneses? • ¿Qué puede resultar interesante para los aragoneses? • ¿En qué se diferencian los aragoneses del resto de España? • … 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 4
  5. 5. Fuentes que se capturan • Eventos: Facebook Events, Spain-­‐info • Texto: Twi[er, Facebook, Google+, Blogger, Blogia, Wordpress • Wiki: Wikipedia • Video: Youtube, Vimeo • Imágenes: Instagram, Flickr, Pinterest • Lugares: Foursquare • Código: Github • Prensa: Heraldo de Aragón, El Periódico de Aragón, Diario del Alto Aragón, Diario de Teruel 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 5
  6. 6. Qué datos se capturan • Siempre datos públicos • Que cualquier usuario puede encontrar por sus propios medios • Se puede controlar el contenido tanto por la URL como por el autor • Se puede solicitar que un usuario deje de ser escuchado 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 6
  7. 7. Criterios de captura • Geoposición – Dentro de Aragón – Zonas colindantes – Nombres de municipios • Palabras/usuarios clave – Temas de interés – Usuarios relevantes para Aragón – Se realimentan y actualizan con los datos geoposicionados 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 7
  8. 8. Criterios de captura II 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 8
  9. 9. Criterios de captura III 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 9
  10. 10. Cómo se captura • Normalmente el usuario ve la información a través de un navegador • Necesitamos grandes volúmenes de información • Filtrado por diferentes criterios • Herramientas que las redes sociales y otras webs proveen • Límites de las fuentes 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 10
  11. 11. Cómo se captura II • Robots llamados arañas, web crawlers, scrapers… • Simulan las visitas que muchos usuarios harían • Cada uno se ocupa de una tarea – Una red social – Cierta información • Centralizan la información – Filtran y “uniformizan” -­‐> ETL 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 11
  12. 12. Cómo se filtra la información • Se solicitan sólo los campos que nos interesan, se obvian los demás • 2 /pos: streaming o periódicas • Las arañas no saben qué contenido es bueno o malo – Se captura mucho ruido, especialmente al buscar por palabra clave – No se deben de usar palabras demasiado cortas o sin significado (preposiciones, aruculos…) – Hay que tener cuidado con otros idiomas. Ej: CAI, USJ 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 12
  13. 13. Cómo se almacena • Todos los datos son guardados en una gran base de datos distribuida • La can/dad de información capturada es importante • En torno a 30 GB al mes, que se reducen a unos 3 GBs al filtrar • Unas 800.000 entradas al mes entre vídeos, fotos, mensajes, etc. 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 13
  14. 14. Procesamiento • Detección de idioma • Se almacena el criterio que ha hecho que cierto contenido se capture • Se calculan ciertos parámetros en base a los datos capturados: – Apariciones por cada 1000 palabras de dentro y fuera de Aragón: • Temas de interés dentro de Aragón • Diferenciales • Acumulados por 30, 60 y 90 días 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 14
  15. 15. Arquitectura • La base de datos está distribuida en dos nodos para dividir la carga – Nodo maestro: se realizan todas las tareas de recogida y procesamiento de datos, además del panel de administración – Nodo esclavo: es una réplica de sólo lectura sobre la que se realizan las consultas de la API • En momentos puntuales, se u/lizan algunas máquinas de cloud por límites en las fuentes 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 15
  16. 16. Arquitectura II 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 16
  17. 17. Arquitectura III • Nodo maestro – PostgreSQL 9.3: sistema gestor de la base de datos como maestro (+POSTGIS) – Python 2.7 (pyscopg2, lxml, beau/foulsoup4, json, urllib) – Django: interfaz de administración – Munin: monitorización de recursos – Celery+Redis: sistema de colas de tareas distribuidas – Apache: servidor web 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 17
  18. 18. Arquitectura IV • Nodo esclavo – PostgreSQL 9.3: sistema gestor de la base de datos como esclavo de sólo lectura – Python 2.7 (pyscopg2, json, mod-­‐wsgi) – Munin: monitorización de recursos – Celery+Redis: sistema de colas de tareas distribuidas – Apache: servidor web para servir la API con mod-­‐ python y mod-­‐evasive 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 18
  19. 19. Arquitectura V • Hardware: los dos nodos son iguales, con especificaciones similares a las medium de Amazon: – 1U R1304GZ4GC – 24 procesadores Intel(R) Xeon(R) CPU E5-­‐2620 @ 2.00GHz – 4 módulos de 16 GB de RAM DIMM DDR3 Synchronous 1333 MHz – 2 discos SAS de 7200 RPM y 2 TB cada uno WD2001FYYG-­‐01SL3 par/cionados en EXT4 – 4 tarjetas de red Intel I350 Gigabit Network Connec/on – 1 disco SSD Kingston Serie V300 240Gb 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 19
  20. 20. Arquitectura VI 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 20
  21. 21. El sistema 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 21
  22. 22. El sistema II • Un script en Python por cada scraper – Cada uno se ocupa de una fuente – Código común separado (geolocalización, db, idioma…) – En la base de datos se guarda información de cada uno: • Tipo: períodico o streaming • Ruta: dónde se encuentra el script que lo ejecuta • Cada cuánto se ejecuta • Úl/ma ejecución • Resultado de la úl/ma ejecución 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 22
  23. 23. El sistema III • Proceso /po demonio que consulta esta información y lanza en segundo plano conforme está configurado – Controla el resultado – Registra todo lo que sucede en logs – Manda emails a los administradores si hay errores • Desde el panel de administración se modifican estos parámetros 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 23
  24. 24. El sistema IV 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 24
  25. 25. El sistema V • Los scrapers que requieren procesamiento lo llevan integrado en el propio script (cambios en las fuentes) • Una vez que los datos están descargados – Automá/camente se copian al esclavo -­‐> API – Pueden ser monitorizados y controlados desde el panel de administración • El esclavo es el que soporta la carga de las consultas de los usuarios 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 25
  26. 26. El sistema VI 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 26
  27. 27. Panel de administración 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 27
  28. 28. Panel de administración II 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 28
  29. 29. Panel de administración III 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 29
  30. 30. Panel de administración IV 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 30
  31. 31. Panel de administración V 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 31
  32. 32. Panel de administración VI 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 32
  33. 33. Panel de administración VII 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 33
  34. 34. Panel de administración VIII 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 34
  35. 35. Panel de administración IX 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 35
  36. 36. Qué ofrecemos al público • Una API (Applica/on Programming Interface) que permite acceder a los datos recogidos y filtrados • Totalmente pública, sin necesidad de registro (aunque con algún límite) • Se pueden acceder a los datos an/guos hasta 12 meses (por el momento disponemos desde diciembre de 2013) 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 36
  37. 37. Cómo usar nuestra API • Pe/ciones HTTP como las que hace cualquier navegador • El usuario sólo /ene que indicar qué datos desea obtener y cómo los quiere filtrar – Dirección (/trendings o /data) – Parámetros (?source=twi[er) • Librerías en dis/ntos lenguajes que hacen muy sencillo su uso 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 37
  38. 38. Qué formato /enen los resultados • Actualmente en formato JSON, próximamente en XML, CSV, … • Los resultados aparecen paginados • Ordenados cronológicamente 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 38
  39. 39. Trendings • h[p://opendata.aragon.es/socialdata/trendings – {"status": "OK", "results": [result_1, result_2, result_3...]} – Results: {"name": name, "url": url} • /socialdata/trendings?type=aragon • /socialdata/trendings?type=spain • /socialdata/trendings?type=30days • /socialdata/trendings?type=60days • /socialdata/trendings?type=90days • /socialdata/trendings?type=diff 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 39
  40. 40. Contenido • h[p://opendata.aragon.es/socialdata/data? parameters – {"status": "NOK", "error_message": message} – {"status": "OK", "on_this_page": on_this_page, "results":[result_1, result_2, result_3...]} – {"id": id,"descrip/on": descrip/on, "ends_on": ends_on, "lat": la/tude, "lng": longitude, "published_on": published_on, "/tle": /tle, "url": url, "author": author,"starts_on": starts_on, "source": source, "type": type, "thumbnail":thumbnail} 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 40
  41. 41. Contenido II • id: entero iden/fica/vo del elemento. • type: cadena que indica el /po de contenido. • source: cadena de texto que indica a qué fuente pertenece el resultado. • ,tle: cadena con el utulo del contenido en el caso de que lo tenga. • descrip,on: contenido del elemento (texto del tweet, descripción del evento, descripción del vídeo, etc.) • url: dirección url directa al contenido. • author: cadena de texto con el nombre del autor en caso de que lo haya. • starts_on: para los eventos, si la tuvieran, fecha de comienzo. • ends_on: para los eventos, si la tuvieran, fecha de final. • published_on: fecha de publicación del contenido. • lat: la/tud del contenido en formato real. • lng: longitud del contenido en formato real. • thumbnail: dirección url del thumbnail asociado si lo hubiera. 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 41
  42. 42. Contenido III • Dos /pos de paginación: – Estándar (máx. 1000) – since_id & max_id • Todas las fechas /enen el formato: 16/01/14 13:03 • Se puede especificar que la API devuelva los datos en crudo con el parámetro raw_mode – /socialdata/data?source=twi[er&raw_mode=true – Nuevo campo en los resultados llamado raw_data 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 42
  43. 43. Cómo podemos filtrarla • Por /po de contenido • Por fuente • Por conversación • Por geoposición • Por período • Por palabra clave 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 43
  44. 44. Filtro por /po de contenido • /socialdata/data?type=content_type – event (Facebook Events, Spain-­‐info) – text (Twi[er, Facebook, Google+, Blogger, Blogia, Wordpress) – wiki (Wikipedia) – video (Youtube, Vimeo) – picture (Instagram, Flickr, Pinterest) – venue (Foursquare) – code (Github) – media (Heraldo de Aragón, El Periódico de Aragón, Diario del Alto Aragón, Diario de Teruel) 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 44
  45. 45. Filtro por fuente • /socialdata/data?source=source_name – spain_info – facebook_events – twi[er – youtube – instagram – facebook – wikipedia – blogger – wordpress – blogia – vimeo – flickr – foursquare – pinterest – google_plus – github – heraldodearagon – periodicodearagon – diariodelaltoaragon – diariodeteruel 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 45
  46. 46. Filtro por conversación • /socialdata/data? conversa/on=conversa/on _type – geo: conversación sobre lo que se habla dentro de Aragón – rel: conversación de temas y usuarios relevantes para Aragón 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 46
  47. 47. Filtro por geoposición • Filtrado por centro y radio – /socialdata/data?center=coordinates&distance=distance_in_km – /socialdata/data?center=41.35678,-­‐0.8148576&distance=5 • Filtrado por cuadrado geográfico – /socialdata/data?bbox=min_lng,min_lat,man_lng,max_lat – /socialdata/data? bbox=-­‐0.8148576,41.35678,-­‐0.667584,41.78553 • Filtrado por municipio y radio – /socialdata/data?locality=locality&distance=distance_in_km – /socialdata/data?locality=Zaragoza&distance=5 • Sólo datos geolocalizados: – /socialdata/data?source=twi[er&geolocated=true 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 47
  48. 48. Otros filtros • Por período: – /socialdata/data? start_date=start_date&end_date=end_date • Por palabra clave: – /socialdata/data?query=query • Combinaciones! 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 48
  49. 49. Ejemplo de resultados 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 49
  50. 50. Qué puedo hacer con estos datos 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 50
  51. 51. Cómo va a evolucionar • Se con/nuarán añadiendo nuevas fuentes de datos • Mayor volumen de datos, mayor precisión, y mayor calidad • Nuevos formatos de salida • … (Abiertos a sugerencias de los ciudadanos) 26 de sep/embre de 2014 Open Social Data -­‐ Escucha Ac/va 51

×