UNIVERSIDAD AUTNOMA DE MADRID ESCUELA POLITCNICA SUPERIOR TRABAJO
UNIVERSIDAD AUTÓNOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR TRABAJO FIN DE GRADO RECOMENDACIÓN DE NOTICIAS EN LÍNEA BASADO EN TWITTER ADRIÁN OTERO RODRÍGUEZ Tutor: ALEJANDRO BELLOGÍN KOUKI Ponente: PABLO CASTELLS AZPILICUETA JULIO 2014
TABLA DE CONTENIDOS Introducción Objetivos Visión general Tecnologías utilizadas Análisis Diseño y desarrollo Pruebas y resultados Conclusiones Trabajo futuro Parte formativa 2
INTRODUCCIÓN Diarios Digitales 3
INTRODUCCIÓN Recomendación de noticias 4
INTRODUCCIÓN Twitter 5
INTRODUCCIÓN Twitter Una de las más importantes redes sociales. Mensajes de hasta 140 caracteres (tweets). Medidor de popularidad a través de retweets y favoritos. Genera un gran volumen de información útil. 6
INTRODUCCIÓN Twitter 7
INTRODUCCIÓN Propuesta Un sistema de recomendación de noticias basado en Twitter 8
INTRODUCCIÓN Propuesta Un sistema de recomendación de noticias basado en Twitter e integrarlo en un sistema real 9
INTRODUCCIÓN Plista Entorno de recomendación real (integra usuarios, periódicos, desarrolladores). Envía las peticiones de recomendación a los sistemas registrados (como nosotros). Ofrece información de interés sobre el rendimiento del recomendador. 10
INTRODUCCIÓN Plista Interacción entre usuario final, web del publicador, plataforma Plista y desarrollador: 11
TABLA DE CONTENIDOS Introducción Objetivos Visión general Tecnologías utilizadas Análisis Diseño y desarrollo Pruebas y resultados Conclusiones Trabajo futuro Parte formativa 12
OBJETIVOS 1. Recolectar datos en Twitter y Plista 5. A partir de los resultados definir el futuro de la aplicación 4. Analizar los resultados del recomendador 2. Tratar la información recibida 3. Atender peticiones de recomendación de Plista 13
TABLA DE CONTENIDOS Introducción Objetivos Visión general Tecnologías utilizadas Análisis Diseño y desarrollo Pruebas y resultados Conclusiones Trabajo futuro Parte formativa 14
VISIÓN GENERAL Base de datos 15
TABLA DE CONTENIDOS Introducción Objetivos Visión general Tecnologías utilizadas Análisis Diseño y desarrollo Pruebas y resultados Conclusiones Trabajo futuro Parte formativa 16
TECNOLOGÍAS UTILIZADAS Java Básicas Netbeans Maven JSON Tecnologías Genéricas SQLite API Twitter 4 J API Plista Proyecto Recommenders Específicas 17
TECNOLOGÍAS UTILIZADAS Tecnologías Básicas 18
TECNOLOGÍAS UTILIZADAS Tecnologías Genéricas: JSON XML 19 *Fuente: http: //es. wikipedia. org/wiki/JSON
TECNOLOGÍAS UTILIZADAS Tecnologías Genéricas: SQLite • Carece de un proceso servidor externo. • Permite reducir los tiempos de acceso a la base de datos. • No necesita ser instalado y configurado. • Es un sistema de gestión de bases de datos transaccional. • Garantiza la seguridad y consistencia de los datos involucrados. 20
TECNOLOGÍAS UTILIZADAS Tecnologías específicas: API de Twitter y Twitter 4 J Search API Rest API Streaming API Captura de información vía HTTP. Captura de datos a través de un flujo constante de información. Captura de datos Búsqueda con filtros. No está diseñada con la búsqueda a través de filtros como una prioridad. Permite filtrar la información capturada. Filtros de búsqueda Limitación temporal de 7 días. Limitación temporal indefinida. Captura los tweets según son generados. Limitación temporal 21
TECNOLOGÍAS UTILIZADAS Tecnologías específicas: API de Twitter y Twitter 4 J Search API Captura de información vía HTTP. Búsqueda con filtros. Limitación temporal de 7 días. 22
TECNOLOGÍAS UTILIZADAS Tecnologías específicas: API de Plista y Proyecto Recommenders Plistaclient Captura de mensajes desde Plista Tratamiento de objetos JSON Plistarecs Recent Recommender Combined Recommender 23
TABLA DE CONTENIDOS Introducción Objetivos Visión general Tecnologías utilizadas Análisis Diseño y desarrollo Pruebas y resultados Conclusiones Trabajo futuro Parte formativa 24
ANÁLISIS Requisitos Funcionales ü RF 01. Búsquedas en la API de Twitter. ü RF 02. Capturar datos desde Plista. ü RF 03. Extraer campos de un tweet para medir la popularidad. ü RF 04. Extraer urls de un tweet. ü RF 05. Tratar la información capturada desde Plista. ü RF 06. Almacenar información extraída de Twitter. ü RF 07. Almacenar ítems de Plista en la base de datos. ü RF 08. Actualizar los ítems de Plista de la base de datos. ü RF 09. Agrupar las urls de Twitter y ordenar por su popularidad. ü RF 10. Asociar ítems de Plista y urls de Twitter. ü RF 11. Atender peticiones de recomendación de Plista. 25
ANÁLISIS Requisitos Funcionales ü RF 01. Búsquedas en la API de Twitter. ü RF 03. Extraer campos de un tweet para medir la popularidad. ü RF 04. Extraer urls de un tweet. ü RF 06. Almacenar información extraída de Twitter. ü RF 09. Agrupar las urls de Twitter y ordenar por su popularidad. ü RF 02. Capturar datos desde Plista. ü RF 05. Tratar la información capturada desde Plista. ü RF 07. Almacenar ítems de Plista en la base de datos. ü RF 08. Actualizar los ítems de Plista de la base de datos. ü RF 10. Asociar ítems de Plista y urls de Twitter. ü RF 11. Atender peticiones de recomendación de Plista. 26
ANÁLISIS Requisitos No Funcionales ü RNF 01. Autentificación en la API de Twitter. ü RNF 02. Limitación en el número de consultas contra la API de Twitter (180 consultas / 15 minutos). ü RNF 03. Base de datos con suficiente capacidad para almacenar la información de Twitter. ü RNF 04. Responder peticiones de Plista rápidamente (< 100 ms). ü RNF 05. Capaz de tratar miles de peticiones de Plista por segundo. ü RNF 06. Suficiente capacidad de la base de datos para almacenar la información recibida desde Plista. ü RNF 07. Fiabilidad, reducir errores al responder peticiones de Plista. 27
ANÁLISIS Requisitos No Funcionales ü RNF 01. Autentificación en la API de Twitter. ü RNF 02. Limitación en el número de consultas contra la API de Twitter (180 consultas / 15 minutos). ü RNF 03. Base de datos con suficiente capacidad para almacenar la información de Twitter. ü RNF 04. Responder peticiones de Plista rápidamente (< 100 ms). ü RNF 05. Capaz de tratar miles de peticiones de Plista por segundo. ü RNF 06. Suficiente capacidad de la base de datos para almacenar la información recibida desde Plista. ü RNF 07. Fiabilidad, reducir errores al responder peticiones de Plista. 28
TABLA DE CONTENIDOS Introducción Objetivos Visión general Tecnologías utilizadas Análisis Diseño y desarrollo Pruebas y resultados Conclusiones Trabajo futuro Parte formativa 29
DISEÑO Y DESARROLLO Sistema basado en Twitter Base de datos (nexo de unión) Sistema basado en Plista 30
DISEÑO Y DESARROLLO Twitter. Módulo de extracción de datos Autentificación en la API de Twitter a través del protocolo OAuth. Crear la consulta que se realizará sobre Twitter (estas consultas están almacenadas en la base de datos). Ejecución de la consulta a utilizando la librería Twitter 4 J. Almacenar los resultados de la consulta en un objeto Java. En este módulo el uso de la librería Twitter 4 J es fundamental 31
DISEÑO Y DESARROLLO Twitter. Módulo de extracción de datos Resultado de una consulta a través de la aplicación Resultado de la misma consulta a través del sitio web de Twitter 32
DISEÑO Y DESARROLLO Twitter. Módulo de tratamiento de datos Utilizando como punto de partida la información previamente capturada desde Twitter Tratar la información recibida y filtrar los atributos innecesarios. Se conservarán los atributos: id. del tweet, url del tweet, nº retweets, nº favoritos, fecha de creación, texto del tweet, id. del usuario y nombre del usuario. Introducir esta información en la base de datos. Los distintos tweets capturados se identifican mediante su id, en caso de que ya exista en la base de datos se actualizará la información 33
DISEÑO Y DESARROLLO Twitter. Módulo de generación del ranking de popularidad Se filtra la información de la base de datos conservando: url + id. del dominio + nº retweets + nº favoritos Se agrupan cada uno de los pares: [url + id. del dominio] sumando su número de retweets y favoritos Se ordenan los pares en función de su popularidad (nº retweets + nº favoritos) y se almacena en la base de datos Este proceso se inicia tras finalizar la búsqueda en Twitter de cada una de las consultas almacenadas en la base de datos. 34
DISEÑO Y DESARROLLO Twitter. Módulo de generación del ranking de popularidad Resultado de aplicar el método de actualización del ranking de popularidad sobre la base de datos 35
DISEÑO Y DESARROLLO Plista. Proyecto Recommenders Captura e identificación de los mensajes recibidos desde Plista Tratamiento de los objetos JSON recibidos desde Plista Implementación de los recomendadores: Plistarecs y Plistaclient son • Recent Recommender • Combined Recommender proyectos Open Source, se encuentran disponibles en: https: //github. com/recommenders/plistarecs https: //github. com/recommenders/plistaclient 36
DISEÑO Y DESARROLLO Plista. Módulo de extracción de datos Plista envía un “Item Update” A través de Plistaclient se captura el ítem recibido Se extrae la información útil del mensaje recibido Se inserta esta nueva información en la base de datos En muchos casos no se tratará de nuevos ítems, si no actualizaciones de los ya existentes 37
DISEÑO Y DESARROLLO Plista. Módulo de gestión de peticiones de recomendación Base: Twitter Recommender Combined Recommender Apoyo: Recent Recommender Inicialmente el Twitter Recommender no dispone de suficientes ítems para realizar las recomendaciones adecuadas 38
DISEÑO Y DESARROLLO Plista. Módulo de gestión de peticiones de recomendación Plista envía una petición de recomendación A través de Plistaclient se captura la petición Se extrae el dominio asociado a la petición y el nº de ítems requeridos Se consulta la tabla hash con los ítems más populares asociados al dominio Se devuelven los ítems más populares asociados al dominio La tabla hash será actualizada cada 100 peticiones o cuando no existan suficientes ítems para el dominio asociado (Para actualizarla se utiliza la base de datos) 39
DISEÑO Y DESARROLLO Base de datos SQL 40
TABLA DE CONTENIDOS Introducción Objetivos Visión general Tecnologías utilizadas Análisis Diseño y desarrollo Pruebas y resultados Conclusiones Trabajo futuro Parte formativa 41
PRUEBAS Y RESULTADOS Pruebas realizadas sobre el sistema Pruebas Unitarias Sobre cada módulo del sistema Pruebas de Integración Sobre el sistema basado en Twitter Sobre el sistema basado en Plista Pruebas de Sistema y Aceptación Prueba individual (entorno básico) Prueba con un grupo pequeño de usuarios (entorno medio) Prueba en un entorno real (entorno grande) 42
PRUEBAS Y RESULTADOS Pruebas realizadas sobre el sistema Pruebas Unitarias Sobre cada módulo del sistema Pruebas de Integración Sobre el sistema basado en Twitter Sobre el sistema basado en Plista Pruebas de Sistema y Aceptación Prueba individual (entorno básico) Prueba con un grupo pequeño de usuarios (entorno medio) Prueba en un entorno real (entorno grande) 43
PRUEBAS Y RESULTADOS Resultados (grupo pequeño de usuarios) Grupo de usuarios Batería de preguntas Medio de comunicación Conclusiones Noticias más populares en Twitter Consultas sobre Twitter 44
PRUEBAS Y RESULTADOS Resultados (grupo pequeño de usuarios) Grupo de usuarios Batería de preguntas Medio de comunicación Consultas sobre Twitter • Población: 8 usuarios • Genero: 5 hombres y 3 mujeres • Edad: 18 – 50 años • ¿Te han resultado interesantes las noticias mostradas? • Observando las noticias disponibles en la web del Publicador, ¿Te hubiera resultado más interesante otra selección de noticias distinta a la recomendada? • 20 Minutos (http: //www. 20 minutos. es/) • http: //www. 20 minutos. es/ • 20 minutos. es • 20 minutos 45
PRUEBAS Y RESULTADOS Resultados (grupo pequeño de usuarios) Observando las noticias disponibles en la web del publicador, ¿Te hubiera resultado más interesante otra selección de noticias distinta a la recomendada? ¿Te han resultado interesantes las noticias mostradas? 13% Todas En algunos casos 12% 37% No Alguna de ellas Si 63% Ninguna 75% 46
PRUEBAS Y RESULTADOS Resultados (entorno real) v 250. 000 peticiones de recomendación. v 3. 200 clics (recomendaciones aceptadas por los usuarios). v 1. 28% de tasa de acierto. 47
PRUEBAS Y RESULTADOS Resultados (entorno real) Evolución diaria del Twitter. Recommender en Plista Evolución diaria del Recent Recommender en Plista 48
TABLA DE CONTENIDOS Introducción Objetivos Visión general Tecnologías utilizadas Análisis Diseño y desarrollo Pruebas y resultados Conclusiones Trabajo futuro Parte formativa 49
CONCLUSIONES Objetivos Restricciones • Se han cumplido todos los objetivos marcados al inicio de este proyecto satisfactoriamente. • Entorno real para las pruebas. • Publicadores con poca presencia en Twitter. • Positivos en las pruebas sobre un grupo pequeño de usuarios. Resultados • Aceptables en un entorno real, a pesar de la falta de cobertura de algunos de los publicadores en Twitter. 50
TABLA DE CONTENIDOS Introducción Objetivos Visión general Tecnologías utilizadas Análisis Diseño y desarrollo Pruebas y resultados Conclusiones Trabajo futuro Parte formativa 51
TRABAJO FUTURO Búsqueda de un nuevo entorno real donde los publicadores cuenten con una mayor presencia en Twitter Recomendaciones personalizadas Recomendaciones combinadas Mejorar el grado de aceptación Recomendaciones temáticas Recomendaciones de “ultima hora” 52
TABLA DE CONTENIDOS Introducción Objetivos Visión general Tecnologías utilizadas Análisis Diseño y desarrollo Pruebas y resultados Conclusiones Trabajo futuro Parte formativa 53
PARTE FORMATIVA • Java • SQL • JSON Conocimientos adquiridos durante la carrera Sistemas de recomendación Otros Plataformas • SQLite • Maven • Twitter 4 J • API de Twitter • Proyecto Recommenders • API de Plista 54
Muchas gracias 55
56
TECNOLOGÍAS UTILIZADAS API DE PLISTA Tiempo de respuesta crítico Restricciones del protocolo ORP Gran volumen de información Características impuestas por la API de Plista Especificaciones sobre los mensajes en ORP Tipos de datos. Items de Plista Tipos de mensajes 57
PRUEBAS Y RESULTADOS Resultados (grupo pequeño de usuarios) 58
DISEÑO Y DESARROLLO Módulos del sistema • Extracción de datos desde Twitter y tratamiento de la información. • Generación del ranking con las noticias más populares en Twitter. • Extracción de datos desde Plista y tratamiento de la información. • Gestión de las peticiones de recomendación de Plista. 59
INTRODUCCIÓN Diarios Digitales 60
INTRODUCCIÓN Diarios Digitales 61
PRUEBAS Y RESULTADOS Resultados (grupo pequeño de usuarios) Definir el grupo de usuarios sobre el que se realizará la prueba. Diseñar la batería de preguntas sobre las que se preguntará al grupo de usuarios. Seleccionar un medio de comunicación con presencia en Internet y Twitter Observar las respuestas de los usuarios y a partir de ellas elaborar las conclusiones de la prueba Utilizar el recomendador desarrollado para identificar las noticias más populares en Twitter Definir las consultas en Twitter sobre dicho dominio 62
PRUEBAS Y RESULTADOS Resultados (grupo pequeño de usuarios) Pregunta 1. ¿Con que frecuencia accedes a contenidos informativos de actualidad? Tanto prensa escrita como Internet, radio o televisión. Diariamente 13% Con bastante frecuencia 12% Una vez a la semana 75% Ocasionalmente Nunca 63
PRUEBAS Y RESULTADOS Resultados (grupo pequeño de usuarios) Pregunta 2. ¿Cuál es la fuente que utilizas habitualmente como canal de comunicación? Televisión 37% Internet Prensa escrita 63% Radio Ninguna de ellas 64
PRUEBAS Y RESULTADOS Resultados (grupo pequeño de usuarios) Pregunta 3. ¿Te han resultado interesantes las noticias mostradas? 37% Todas Alguna de ellas 63% Ninguna 65
PRUEBAS Y RESULTADOS Resultados (grupo pequeño de usuarios) Pregunta 4. ¿Por qué crees que esas noticias te han resultado interesantes? Por la temática de ellas 25% Por ser una noticias de actualidad 75% Por haber escuchado comentarios sobre esa noticia anteriormente Otro motivo 66
PRUEBAS Y RESULTADOS Resultados (grupo pequeño de usuarios) Pregunta 5. Sobre las noticias que te han resultado interesantes, ¿Crees que hubieras accedido a ellas simplemente viendo su entradilla? Si 25% Algunas de ellas No 75% No estoy seguro 67
PRUEBAS Y RESULTADOS Resultados (grupo pequeño de usuarios) Pregunta 6. ¿Por qué crees que esas noticias no te han resultado interesantes? Porque la temática no me resulta interesante 25% 38% Porque no me ha llamado la antención esa noticia Porque ya conocía la noticia 11% 13% Otro motivo 13% Todas me han resultado interesantes 68
PRUEBAS Y RESULTADOS Resultados (grupo pequeño de usuarios) Pregunta 7. Observando las noticias disponibles en la web del publicador, ¿Te hubiera resultado más interesante otra selección de noticias distinta a la recomendada? 13% En algunos casos 12% No Si 75% 69
PRUEBAS Y RESULTADOS Resultados (grupo pequeño de usuarios) Pregunta 8. En cuanto a las noticias recomendadas, ¿Cuál crees que es el elemento que más condiciona para visitar alguna de esas noticias? El título de la noticia 25% 50% 25% La entradilla de la noticia La imagen asociada a la noticia Todos sus elementos en conjunto 70
- Slides: 70