MoodvieWeb Recomendador de películas basado en el temperamento con explicaciones para depuración y para el usuario. David Carboneras Morato Fernando Álvarez Calleja Moisés Martínez Montes Director: Héctor Gómez Gauchía Proyecto Sistemas Informáticos 2011/2012 RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 2 RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 3 AUTORIZACIONES Autorizamos a la Universidad Complutense de Madrid a utilizar y/o difundir con fines académicos y no comerciales, siempre mencionando expresamente a sus autores, tanto la propia memoria como el código, la documentación y/o el prototipo desarrollado. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 4 RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 5 PALABRAS CLAVE Sistemas de recomendación, Computación Centrada en el Usuario (HCC), Sistemas Expertos, Computación Afectiva, Razonamiento basado en casos (CBR), Desarrollo web, Estándares web, Experiencia de usuario (UX). RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 6 RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 7 RESUMEN Un sistema recomendador debe ser algo más que una caja negra que, tras recoger unos parámetros de entrada, le entregue unos resultados al usuario sin ningún tipo de explicación de cómo se han generado esas recomendaciones. Al igual que el sistema obtiene información acerca del usuario, éste también necesita saber del recomendador y conocer de una manera sencilla e inteligible lo que ocurre en su interior. Para ello se necesita desarrollar explicaciones que cubrirán este vacío que se le presentaba al usuario final. De la misma manera, para el Ingeniero del Conocimiento es insuficiente que este tipo de sistemas base sus cálculos, tanto al categorizar películas como al suministrar recomendaciones, en valores fijados tras pruebas y experimentos. Para ello se debe desarrollar explicaciones para el Ingeniero con los puntos calientes donde se puedan producir desajustes, que al ser localizados ayudarán a su depuración y desarrollo de nuevas funcionalidades de una forma más dinámica. Además de estas ideas, es interesante la posibilidad de ampliar la audiencia y no restringirse a una red social, desplegando para ello la aplicación en la web, haciendo uso de las últimas tecnologías y estándares. SUMMARY Recommendation systems should not consist just of a black box returning results without any knowledge or explanation of its internal workings. Users need to know what’s happening inside and how this system is dealing with all data in an easy and comprehensible way. By the same token, the Knowledge Engineer who developed and deployed this application needs to have the use of a powerful, efficient analysis tool to debug and improve the system. Making several static experiments or tests around categorization or recommendation modules is not enough to get a standalone web application. An expert system is needed in order to make more dynamic and productive the engineer tasks. By the way, this is an exciting moment to adopt the last open web standards and technologies to host, develop and deploy a web app on the world wide web. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 8 RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 9 Contenido 1. INTRODUCCIÓN ...............................................................................................................11 1.1. ORGANIZACIÓN DE LA MEMORIA ............................................................................11 1.2. CONTEXTO ................................................................................................................12 1.2.1. ¿Qué película ver? ...............................................................................................12 1.2.2. Contexto y necesidades .......................................................................................13 1.2.3. Funciones generales ............................................................................................14 1.3. MOODVIE ...................................................................................................................17 1.3.1. ¿Qué había? ........................................................................................................17 1.3.2. Documentación y Aplicación Moodvie ..................................................................19 2. LIMITACIONES ENCONTRADAS EN MOODVIE ..............................................................21 2.1. NECESIDAD DE AMPLIACIÓN DE AUDIENCIA .........................................................21 2.2. FALTA DE VALIDACIÓN Y EXPLICACIONES ............................................................22 2.2.1. Usuario final .........................................................................................................22 2.2.2. Ingeniero ..............................................................................................................23 2.3. CALIDAD DE LAS PELÍCULAS ...................................................................................23 2.4. KEIRSEY INCOMPLETO ............................................................................................24 2.5. SIN REGISTRO HISTÓRICO ......................................................................................24 3. COMPONENTES DE LA APLICACIÓN ..............................................................................25 3.1. MOODVIEWEB ...........................................................................................................27 3.1.1. Funcionalidad .......................................................................................................27 3.2. CATEGORIZADOR .....................................................................................................32 3.3. MOODVIEADMIN ........................................................................................................35 3.4. TEST DE TEMPERAMENTO ......................................................................................36 3.5. RECOMENDADOR .....................................................................................................37 3.5.1. Opciones ..............................................................................................................37 3.5.2. Procedimiento Interno ..........................................................................................38 3.5.3. Visualización de Resultados .................................................................................40 3.6. SERVIDOR WEB ........................................................................................................40 4. TRABAJO REALIZADO ......................................................................................................41 4.1. LOCALIZACIÓN DE ERRORES ..................................................................................41 4.1.1. Test de temperamento .........................................................................................41 4.1.2. Categorizador .......................................................................................................43 4.1.3. Extractor de Información ......................................................................................45 4.1.4. Recomendador .....................................................................................................46 4.2. MEJORAS Y NUEVAS FUNCIONALIDADES .............................................................49 4.2.1. MoodvieWeb ........................................................................................................49 4.2.2. Categorizador .......................................................................................................56 4.2.3. MoodvieAdmin .....................................................................................................67 4.2.4. Test de Temperamento ........................................................................................74 4.2.5. Recomendador .....................................................................................................76 5. EXPERIMENTOS ...............................................................................................................89 RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 10 6. APÉNDICE .........................................................................................................................97 6.1. MANUAL DE INSTALACIÓN .......................................................................................97 6.1.1 Requisitos del Sistema .............................................................................................97 6.1.2 Instalación de la aplicación .......................................................................................98 6.1.3 Tareas de Mantenimiento ....................................................................................... 102 6.2. MANUAL DE USUARIO ............................................................................................ 106 7. BIBLIOGRAFÍA ................................................................................................................ 113 RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 11 1. INTRODUCCIÓN 1.1. ORGANIZACIÓN DE LA MEMORIA Esta memoria está organizada de la siguiente manera: • Para empezar habrá una introducción que presente el contexto en el que se encuentra la realización del proyecto y las motivaciones que nos han llevado a ello. También se comentará el funcionamiento de la antigua aplicación, con el fin de identificar con claridad sus características y las funcionalidades que ya aportaba. • Se detallarán las limitaciones encontradas en Moodvie al hacer un estudio de la aplicación, proponiendo a cada una de ellas de manera breve nuestra solución planteada para cubrir esa deficiencia. • Tras tener cubierto toda la problemática relativa a la antigua aplicación Moodvie, entraremos a analizar los componentes actuales de MoodvieWeb, tal y como quedaron al final de la realización del proyecto, sin entrar en gran detalle en el trabajo realizado para llegar a este punto. Este análisis se hará de manera modular, es decir, incidiendo por separado en cada uno de los componentes para que su lectura sea más entendible y así extrapolar este método a la parte de trabajo realizado y nuevas funcionalidades. • Posteriormente se entrará a tratar el trabajo realizado, tanto para resolver las carencias como para poder implementar las nuevas funcionalidades. Para ello se empieza haciendo un repaso de los errores encontrados en cada uno de los componentes de la aplicación original Moodvie e introduciendo la manera de mitigar esos errores. Después se contará, de una manera también modular, las mejores y nuevas funcionalidades implementadas, entrando en detalle de cómo se ha realizado cada una de ellas. Aquí entrarán en juego los cálculos realizados, así como gráficas o tablas que documenten este trabajo. • Tras explicar el trabajo realizado, mostraremos dos experimentos efectuados tras la finalización del desarrollo de la aplicación que mostrarán la aceptación de usuarios externos a las diferentes características realizada en el actual proyecto. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 12 • Existirá un apéndice donde estarán contenidos un manual de instalación, donde se especifica los requisitos del sistema, la propia instalación o el mantenimiento; y un manual de usuario, con los pasos necesarios para poder usar correctamente MoodvieWeb. • Se finalizará la memoria con una bibliografía con el material literario utilizado, en algunos casos de una manera netamente virtual. 1.2. CONTEXTO 1.2.1. ¿Qué película ver? La mayoría de sistemas de recomendación individual en el ámbito del cine están sometidos al problema del arranque en frío, donde el usuario es requerido de cierto conocimiento previo, así como de una dedicación de tiempo a la configuración de sus gustos. Esto dificulta la recomendación para usuarios esporádicos o casuales, o que no tienen un amplio conocimiento para responder a preguntas sobre sus gustos. Para tratar de solventar estos problemas, se creó Moodvie, un proyecto realizado en 2011 y que utiliza la recomendación basada en temperamentos y estados de ánimo. Con un único usuario y un conjunto de películas resulta suficiente para realizar una recomendación. Del usuario se extrae su temperamento en base a un pequeño test realizado una única vez, y de las películas se obtienen sus géneros mediante el uso de CBR-textual aplicado a su sinopsis. Es con esta información, analizada y tratada correctamente, con la que se realizan las recomendaciones, evitando así el arranque en frío antes mencionado. El conjunto de películas sobre los que realiza la recomendación depende de la opción elegida por el usuario. Para la actualización de la base de datos que contiene dichas películas se utiliza un web crawler desarrollado específicamente para dicho propósito. El proyecto MoodvieWeb pretende mejorar las limitaciones del proyecto Moodvie, intentando mejorar errores encontrados en este y solventar ciertas limitaciones, además de expandir sus horizontes alojándose este en la web y no en Facebook y conseguir crear un sistema de explicación de resultados obtenidos dirigido al usuario y un sistema de explicaciones para detección de posibles errores o desajustes dirigido al ingeniero o administrador. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 13 1.2.2. Contexto y necesidades En la sociedad actual, donde la tecnología a día de hoy -y cada vez más- permite el acceso a un volumen de datos creciente y de rápida difusión, el usuario puede verse desbordado por la cantidad de información disponible, o por la tarea de discernir entre la información que merece la pena y la que no. Por eso mismo, un recomendador puede ser de gran utilidad, ya que facilita la tarea al usuario que desea algo pero se pierde en mares de datos y opiniones. El recomendador ofrece la información tratada y orientada exclusivamente a la persona que está utilizándolo. Por otro lado, el creciente uso de internet y de las herramientas web, nos permite acercar nuestro proyecto al público general de una manera cómoda y sencilla, sin necesidad de instalación de ningún tipo ni de ocupar espacio en los equipos. En cuanto al ámbito del cine, analizando el beneficio que genera esta industria y observando el volumen creciente de usuarios de internet, podemos concluir que una aplicación de recomendación de cine en la web puede cubrir las necesidades de mucha gente. Si tenemos en cuenta, además, la tendencia general de la población hacia la obtención de mejores resultados con menos esfuerzo, es lógico pensar que una aplicación en la que no se requiere conocimiento externo por parte del usuario y que ofrece buenos resultados, puede ser idónea. Una persona que no haya visto ninguna película en su vida, puede usar la aplicación del mismo modo que un consolidado cinéfilo, no hay distinción. Con el uso del sistema de recomendación basado en temperamentos que se desarrolla en este proyecto, el usuario no necesita conocimiento externo; con un simple análisis personal es suficiente para rellenar el test inicial y poder acceder a las recomendaciones. En conclusión, si agrupamos las ideas expuestas y las combinamos, nos encontramos con la meta de este proyecto. Obtener un recomendador a partir del recomendador Moodvie pero más eficaz en sus resultados, fácil de usar y accesible para mucha gente gracias a internet. A lo largo de la memoria se detallan los múltiples experimentos realizados hasta alcanzar la funcionalidad deseada, con los fallos y aciertos de cada uno de los enfoques y de la aplicación inicial Moodvie. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 14 1.2.3. Funciones generales Primeramente, para realizar un recomendador, es necesario información y conocimiento. Con la intención de obtener películas y detalles sobre ellas, se procesa, con la ayuda de un web crawler, la página de “La Guía del Ocio” y se procede al análisis sintáctico de su contenido. De este modo se obtiene de forma automática, información sobre cada una de las películas que se estén proyectando en ese momento en salas de cine españolas, así como información sobre dichas salas –y los pases de cada una de ellas-. Una vez extraída la información, es necesario dotar de determinada semántica a todos los datos obtenidos. Es entonces cuando se realiza un procesado CBR textual de la sinopsis de los filmes obtenidos en el paso anterior. Con ello se realizan una serie de categorizaciones, transformando pues la información en conocimiento, que posteriormente servirá para realizar las recomendaciones deseadas. Es en este momento, cuando el conocimiento objetivo ya se encuentra disponible para la tarea de recomendación, cuando sea necesario. Tras ello, se solicita al usuario la realización de un test de 16 preguntas. Una vez contestadas estas preguntas, el sistema recomendador genera un conocimiento fuente, que en este caso es el temperamento del usuario. En base a este, y filtrando por la provincia que haya seleccionado, ya se pueden realizar recomendaciones, bien actuales, bien históricas, bien basadas en estado de ánimo deseable, ajustadas al temperamento del usuario de la aplicación. Como valor añadido para el usuario, éste puede obtener información sobre cualquiera de las salas de cine o películas del sistema, así como conocer cuándo se proyecta cada una de las películas en los cines de la provincia indicada por el usuario. Esto hace que, en la misma aplicación, el usuario, además de obtener una recomendación sobre qué película actual se adapta más a su temperamento, conozca las salas de cine de su provincia donde proyectan dichos títulos -y los horarios de proyección- ahorrándose éste otras búsquedas o la necesidad de soporte en otras webs o aplicaciones. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 15 En el siguiente diagrama se puede visualizar de manera esquemática el funcionamiento del sistema desarrollado: Fig. Organización general de MoodvieWeb RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 16 Aquí la comparación de las funcionalidades de la antigua versión (Moodvie) con la nueva (MoodvieWeb): Fig. Nuevas funcionalidades MoodvieWeb RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 17 1.3. MOODVIE 1.3.1. ¿Qué había? El sistema Moodvie inicial que nos encontramos, implementaba una gran cantidad de funcionalidades que a día de hoy conservamos, pero de una forma diferente a la que nosotros lo hacemos en algunos aspectos, ya que éstas han sido probadas y revisadas de muy variadas formas y mejoradas en la medida de lo posible. Además el sistema era una aplicación Facebook, con todas las restricciones que esto conlleva, siendo necesario disponer de una cuenta en Facebook para poder utilizarlo, y no permitiendo el acceso externo. 1.3.1.1. Categorizador El categorizador estaba implementado usando la librería JColibri2 para la comparación de las palabras utilizadas. El funcionamiento anterior usaba unas películas base características de cada género, asignándoles unos géneros resultado, para hallar, mediante la comparación de las palabras utilizadas en ellas con las palabras de la sinopsis de la película a categorizar, los porcentajes de los géneros de la película, en función a la sinopsis más parecida entre los casos base. Se ha mantenido el método para la categorización pero cambiando los casos base a utilizar, para una correcta contrastación entre los resultados obtenidos, y los porcentajes de géneros que una persona asignaría a las películas categorizadas, debido a que algunas categorizaciones no resultaban del todo correctas por el método anterior. Además se ha eliminado, algún género utilizado anteriormente por no considerarse un género de una película sino un modo de representación. 1.3.1.2. Test de Keirsey El test de Keirsey constaba de 16 preguntas, al igual que ahora, pero la respuesta a cada pregunta era única y total, dando importancia nula a la segunda y sucesivas opciones, con lo que las posibilidades eran mucho menores y se aproximaban mucho menos a la realidad a la hora de asignar el temperamento al usuario. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 18 1.3.1.3. Recomendador Utilizaba tres sistemas de recomendación (Recomendador Mix, Recomendador Temperamento, Recomendador Género) que posteriormente unificaba, al igual que ahora, pero la manera de calcular las puntuaciones de cada sistema, y de unificar todas estas en una única recomendación final era diferente en bastantes aspectos a como lo hacemos ahora, tras haber aplicado las modificaciones oportunas para intentar ajustar los resultados lo más posible gracias al estudio exhaustivo de estos y al análisis en detenimiento de cada operación. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 19 Transiciones: ○ A: Tras aplicar cada recomendador el algoritmo de cálculo de puntuación de cada película y obtener la lista de películas puntuadas, estas se ordenaban de mayor a menor puntuación y se quedaban con las 10 mejores. ○ B: La puntuación de cada película de las listas de 10 películas de cada recomendador se modificaba y normalizaba teniendo en cuenta la posición de cada una, es decir, la de mejor puntuación de las 10, obtenía una puntuación de 10, la segunda de 9 y así hasta llegar a la décima que obtenía 1 punto. ○ C: Las listas se unificaban de la siguiente manera: se sumaba la puntuación de cada aparición de una película * el peso de cada recomendador en cada uno de los recomendadores, de tal forma que si una película aparecía como la mejor en dos de los recomendadores y como la segunda mejor en el tercero, su puntuación en la lista final sería 10*(P1)+10(P2)+9(P3), si otra película sin embargo sólo aparecía en uno de los recomendadores como segunda clasificada, su puntuación en la lista final sería 9(P1). Tras haber obtenido la puntuación final de cada película, unificando las puntuaciones de los tres recomendadores, se ordenaba la lista final y se obtenían las 3 películas con mejor puntuación, las cuales compondrían la recomendación final. 1.3.1.4. Extractor de información Extraía de “La guía del ocio” (en adelante GDO) la información de todas las películas que se proyectaban en ese momento en alguna sala de cine española, y almacenaba estas en la Base de Datos. Con cada nueva carga, las películas de la carga anterior desaparecían. La información obtenida era: título, actores, director, sinopsis, año, género, edad recomendada, nacionalidad, carátula, cines en que se proyecta y sus respectivas sesiones. 1.3.2. Documentación y Aplicación Moodvie Para cualquier duda o curiosidad sobre Moodvie (Original) puedes acceder a la memoria del proyecto desde: ● Biblioteca FDI ● http://eprints.ucm.es/13071/ También sigue operativa la aplicación en Facebook (http://apps.facebook.com/moodvie). Es necesario disponer de cuenta en Facebook y estar logueado. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 20 RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 21 2. LIMITACIONES ENCONTRADAS EN MOODVIE 2.1. NECESIDAD DE AMPLIACIÓN DE AUDIENCIA El desarrollo de una aplicación dentro en una red social tiene numerosas ventajas, especialmente si se trata de Facebook, la más importante del mundo y con el mayor número de usuarios registrados. Nos garantiza una amplia cantidad de personas que tendrán acceso a ella de una manera sencilla e integrada, además de una Interfaz de Programación (API) que facilita la vida a la hora del desarrollo y de la configuración de privacidad que ofrecerá la herramienta implementada. A pesar de estos puntos a favor, es imposible obviar que existe otra gran cantidad de gente que no tiene una cuenta abierta en Facebook, incluso gente que sí la tiene pero que no hace uso de sus aplicaciones. Por otro lado, desde un punto de vista visual, el desarrollar en Facebook te impone una experiencia de usuario concreta, afín al existente a la red social y con un diseño que no desentone por el utilizado en ella. Teniendo en cuenta estos aspectos y la motivación de hacer algo distinto y novedoso respecto a lo que teníamos inicialmente entre manos, decidimos dirigir el desarrollo de nuestro proyecto hacia la web, independizándonos de Facebook. De esta manera, facilitando un sencillo y seguro sistema de registro, cualquier persona con acceso a internet podría usar nuestra aplicación, que sería rebautizada como MoodvieWeb. Además se ha rediseñado totalmente la experiencia de usuario, sin tener que depender más de los patrones impuestos por Facebook y consiguiendo una interfaz más rica en contenido y en elementos visuales. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 22 2.2. FALTA DE VALIDACIÓN Y EXPLICACIONES 2.2.1. Usuario final Uno de los pilares básicos de la aplicación original Moodvie de cara al usuario final era las recomendaciones que ofrecía, ya fuera según el temperamento obtenido a partir del test o por el estado de ánimo deseado. La aplicación hacía cálculos internos combinando de varias maneras el temperamento o estado de ánimo con los géneros de cada una de las películas, para después mostrar los resultados en forma de películas. Hemos encontrado este proceso determinante, pero insuficiente. Insuficiente porque el usuario sabe qué películas le ha recomendado el sistema, pero desconoce el por qué y el cómo. Es decir, hay una ausencia de explicaciones que permitan al usuario conocer la relación existente entre los resultados presentados y su forma de ser, de una manera que además pueda conocerse más a sí mismo o poder ver con más claridad la funcionalidad o las lagunas de la aplicación. Para mitigar esta ausencia, se ha diseñado un sistema de explicaciones para el usuario que le permite conocer de primera mano la relación entre las películas recomendadas y su temperamento indicando su nivel de adecuación, además de poder saber las razones por las que una película ha sido categorizada con determinados géneros. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 23 2.2.2. Ingeniero La aplicación Moodvie está basada, casi en su totalidad, en ingeniería y cómputos internos que han sido desarrollados y refinados principalmente a partir de la experiencia y de múltiples pruebas y experimentos. Esto otorgaba a los resultados obtenidos una relativa fiabilidad, aunque por otro lado obligaba al ingeniero responsable del desarrollo a realizar cambios de una manera estática, siempre volviendo a esas pruebas para volver a analizar el código y encontrar el punto donde hacer la modificación. Creemos que la validación de los resultados en tiempo real es un aspecto clave para el análisis del funcionamiento de las herramientas implementadas, de forma que se pueda dar una explicación detallada al experto de lo que está ocurriendo dentro de la aplicación y así identificar los puntos más conflictivos y susceptibles a desajustes. Unos mejores medios de depuración e identificación de errores sin duda permitirían mejorar la experiencia de usuario y la calidad del producto final. Esto se llevaría a cabo gracias a un sistema de explicaciones para el Ingeniero del Conocimiento en el que se permita desgranar los resultados obtenidos a través de distintas capas en cada uno de los puntos calientes del sistema, es decir, aquellos momentos donde se estén realizando cálculos u operaciones que puedan afectar de una manera importante a los resultados. 2.3. CALIDAD DE LAS PELÍCULAS Para aplicaciones consistentes en sistemas de recomendaciones, los resultados obtenidos deben tener en cuenta el “mundo real”, más allá de lo que los cómputos o ingeniería implementados puedan dictar. Sin ir más lejos, un recomendador de películas como Moodvie puede llegar a ser una herramienta muy confusa, pues es posible que encuentre una película altamente compatible con la forma de ser del usuario, pero que la película tenga una calidad que deje bastante que desear. Eso disgustaría al usuario en caso de que la vaya a ver y haría que dejase de confiar en la aplicación. Obviamente la calidad de las películas es un aspecto muy subjetivo, pero actualmente hay numerosas fuentes que a través de la inteligencia colectiva nos pueden indicar, al menos, qué películas no merece la pena ver. Por eso hemos extraído del portal IMDb (Internet Movie Database) las puntuaciones para que, además de que el usuario pueda reconocer las películas mejor valoradas, se le elimine de los resultados aquellas que han obtenido una valoración bastante baja como para ser recomendada. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 24 2.4. KEIRSEY INCOMPLETO Como hemos contado anteriormente, Moodvie utiliza el test de personalidad de Keirsey para determinar el temperamento de usuario. Éste consiste en 16 preguntas con sus 4 respectivas respuestas, cada una de alguna manera ligada a uno de los cuatro tipos de temperamento. El usuario tenía que realizar, como primer paso antes de utilizar el recomendador, dicho test, seleccionando una de las respuestas posibles. Esto hacía que cada pregunta tuviera asociado un único temperamento, que después se conjugarían para sacar la distribución final de porcentajes. Creemos que esta metodología es en cierto modo errónea, pues no tiene en cuenta los temperamentos asociados a las respuestas descartadas y puede dar lugar a resultados inexactos. Por ejemplo, un usuario puede ser netamente Racional, pero en la mayoría de preguntas puede encontrar que la respuesta más de tipo Guardián también le complace. En todos esos casos el temperamento Guardián no se verá representado, a no ser que sea elegida como primera opción. Un test que tenga en cuenta la afinidad del usuario hacia cada una de las respuesta, evitando que haya una sola absoluta, hará que obtengamos un reparto de temperamentos mucho más realista y equitativo. 2.5. SIN REGISTRO HISTÓRICO Moodvie se caracteriza por ser una aplicación de rabiosa actualidad: su base de datos contiene la cartelera del momento en cada una de las provincias y sus usuarios obtienen recomendaciones de entre esas películas actuales. Sin embargo, ningún mecanismo logra recordar esas recomendaciones, las sugerencias de la aplicación no son archivadas y los usuarios no pueden recordar los resultados que obtuvo un tiempo atrás. Además las películas que ya no se emiten no pueden ser recomendadas y sería muy interesa tener la posibilidad de que tuviera en cuenta todas las películas que han pasado por la aplicación, sin tener en cuenta si se proyectan actualmente o no. Una funcionalidad que además toma sentido en un contexto donde la asistencia a cines está en clara decadencia. Así se diferenciarán a la hora de recomendar las películas actuales, que son las que en estos momentos están en cartelera, y las históricas, que son las que alguna vez fueron proyectadas y que al menos han pasado por la base de datos de MoodvieWeb. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 25 3. COMPONENTES DE LA APLICACIÓN El siguiente diagrama representa una visión general de la arquitectura de nuestra aplicación. Existen dos partes claramente diferenciadas, una referente a la administración, que es la encargada de recopilar la información necesaria y procesarla, y otra que es ya la aplicación web dirigida para el usuario. La conexión entre las dos se realiza mediante la información almacenada en la base de datos de la aplicación. Fig. Componentes de la aplicación RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 26 Utilizamos dos bases de datos diferentes, una para almacenar información sobre los usuarios y otra para almacenar información sobre las películas y los cines. La estructura de éstas es la siguiente: Fig. BBDD UsersWeb Fig. BBDD MoodvieWeb RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 27 3.1. MOODVIEWEB MoodvieWeb es el resultado de migrar la aplicación original a la web. Es una página basada en HTML5 y CSS, que utiliza Eclipse como entorno de desarrollo (Java y PHP), además JavaScript y jQuery para agregar efectos y funcionalidad extra. Para unir este la parte web con el bloque Java, que implementa todos los cálculos de la puntuación de las películas y obtiene la recomendación final, utilizamos JavaBridge. Se puede acceder a través de http://bit.ly/moodvieweb. 3.1.1. Funcionalidad ● Barra de Navegación Se mostrará en cada página a la que accedamos y dependiendo si hemos iniciado o no contendrá distintos elementos para poder acceder. ○ Sesión NO iniciada: ■ MoodvieWeb: Nos llevará a la página de inicio (Index). ■ Acerca de ○ Sesión iniciada: ■ MoodvieWeb: Nos llevará a la página de inicio (Intro). ■ Intro ■ Recomendación ■ Cartelera ■ Cines ■ Test ■ Configuración ■ Acerca de ■ Cerrar sesión: Cerrará la sesión actual llevándonos a la página de inicio (Index) RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 28 ● Index Es la página inicial que nos aparece al acceder a la dirección web de la aplicación y no haber iniciado sesión. En la barra superior de navegación nos aparecen dos opciones: MoodvieWeb, que nos lleva de nuevo a la página de inicio (Index); y Acerca de, que nos lleva a la página de información sobre MoodvieWeb. En el cuerpo de la página de inicio tenemos dos opciones posibles: - Formulario de registro: Podremos registrarnos en MoodvieWeb únicamente introduciendo un nombre de usuario y una contraseña. La contraseña deberá ser introducida por duplicado para evitar errores y asegurarse de haber introducido la contraseña deseada. Ésta se almacenará encriptada para mantener la privacidad del usuario. Se comprobará de manera dinámica que el nombre de usuario introducido contenga entre 4 y 12 caracteres y la contraseña un mínimo de 6. En caso de no cumplir estas restricciones no será posible registrarnos. En caso de que el usuario introducido ya exista en la base de datos de usuarios registrados tampoco será posible el registro y habrá que elegir otro diferente. - Formulario de acceso: Una vez registrados este será el formulario que utilizaremos para acceder a la aplicación. Será necesario introducir el nombre de usuario y la contraseña usados en el formulario de registro. En caso de que éstos coincidan con los almacenados en la base de datos, accederemos a la aplicación. En caso contrario mostrará un error y no permitirá el acceso hasta que haya tenido éxito. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 29 ● Intro Es la página inicial que nos aparece una vez iniciada la sesión. Si el usuario todavía no ha realizado el test de temperamento o no ha elegido una provincia, se le instará a hacerlo. En caso contrario se mostrarán los datos sobre el temperamento del usuario obtenido a partir del test en una tabla y en un gráfico para facilitar su lectura. Estos datos aparecerán siempre una vez obtenidos, pudiendo modificarse cada vez que queramos realizando de nuevo el test. En esta misma página podremos encontrar un texto desplegable que nos explicará brevemente en qué consiste la teoría de los temperamentos y que características tiene cada uno de ellos. ● Recomienda Intro En esta página podremos elegir el tipo de recomendación deseado de entre las 3 disponibles: ○ Recomendación actual: Recomendará películas que se estén proyectando actualmente en las salas de cine de la provincia del usuario. ○ Recomendación histórica: Recomendará películas disponibles en la base de datos de MoodvieWeb, las cuales se van acumulando desde el inicio del proyecto, aunque estas ya no se proyecten en la provincia del usuario. ○ Recomendación basada en ánimo: El usuario podrá elegir qué estado de ánimo busca al finalizar la película, y la recomendación se basará en dicha elección. Además podrá elegir el número de películas que desea se le recomienden con los parámetros que ha elegido (1, 5, 10 o 15). RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 30 ● Recomienda Esta página se muestra tras pulsar el botón “¡Recomiéndame!” de la página anterior (Recomienda Intro), habiendo elegido el tipo de recomendación y número de películas a recomendar (Por defecto: recomendación actual - 5 películas). En ella se nos muestran las películas recomendadas además de: ○ Botón “saber más”: Al pulsarlo aparecerá un desplegable con una explicación dirigida al usuario indicando el motivo de esa recomendación ○ Botón “Explicación Ingeniero” (Solo si el usuario es de tipo Ingeniero): Nos llevará a una nueva página en la que se mostrará la capa más alta de las explicaciones dirigidas al ingeniero. ○ Para cada película recomendada aparecerá la siguiente información: ○ Título ○ Puntuación IMDB ○ Carátula ○ Duración ○ Calificación ○ Nacionalidad ○ Fecha de estreno ○ Géneros calculados ○ Botón “+Info”: Al pulsarle se desplegará información extra sobre la película: ■Director ■Reparto ■Sinopsis ■Botón “¿Por qué estos géneros?”: Al pulsarlo se desplegará información indicando porqué dicha película tiene tales géneros y marcará en rojo las palabras clave que aparecen en la sinopsis y han sido utilizadas en la categorización. ○ Botón “Mostrar cines” (Solo si la película se emite actualmente en la provincia del usuario): Mostrará los cines de la provincia del usuario en los que se emite dicha película, además de las sesiones. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 31 ● Cartelera Mostrará todas las películas que se emiten actualmente en los cines de la provincia del usuario, cada una de ellas con el mismo formato que en la página de “Recomendación”. ● Cines Mostrará información sobre los cines de la provincia del usuario, pudiendo acceder a su dirección, mapa (Google Maps) y películas que se emiten actualmente en cada uno de ellos. ● Test El usuario podrá realizar el test de Keirsey para evaluar su temperamento, ya sea al inicio o para modificar el ya asignado anteriormente. ● Configuración El usuario podrá elegir la provincia sobre la que se realizará la recomendación y modificarla cuantas veces quiera. ● Acerca de Mostrará información breve sobre MoodvieWeb. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 32 3.2. CATEGORIZADOR Este módulo pertenece a la parte de administración de la aplicación. El administrador es capaz de realizar la categorización de las películas de nuestra base de datos para calcular el género de la película expresado en porcentajes de diversos tipos de géneros existentes en las películas. Es imprescindible para una futura recomendación ya que su información obtenida de los géneros de cada película es procesada por la aplicación para calcular las películas que más le van a gustar a ese usuario. Si analizamos cualquier película vemos que realmente no pertenece a un sólo género, sino que es una composición de diversos géneros distribuidos en menor o mayor medida (por ejemplo una película puede ser 30% Acción, 50% Humor, y 20% Thriller). Una forma segura de categorizar una película sería verla y analizando su trama extraer estos porcentajes de géneros, lo cual resulta imposible ya que este proceso debería ser algo automatizado por la aplicación. Por eso se decidió usar razonamiento basado en casos, CBR. CBR es un método muy utilizado a día de hoy dentro del campo de la inteligencia artificial. Para su implementación es necesario un conjunto de casos resueltos que sirvan de base del conocimiento, llamados los casos base. A partir de éstos, y aplicando funciones de similitud, llegamos a la solución de nuevos casos (razonamiento usado por el ser humano). En nuestro caso el categorizador va a utilizar CBR textual con lenguaje natural, siendo un subapartado del CBR en el que la base del conocimiento está en formato de texto, es decir los casos base son textos. La información que nos proporciona una película para hallar su composición de géneros es la sinopsis. Un ser humano podría leer una sinopsis de una película y decir los géneros a los que pertenece. Este es el objetivo que queremos conseguir mediante el uso de CBR textual. Para ello usaremos la librería JCOLIBRI2 (proyecto llevado a cabo por el grupo de investigación GAIA de la UCM), orientada a desarrolladores para la confección de aplicaciones basadas en CBR. El primer paso para la categorización es la generación de una base de conocimiento, formada por unos casos base ya resueltos que relacionen un texto del lenguaje natural (llamaremos descripción) con la asignación de un género (resultado). Este es un punto de suma importancia en el categorizador ya que los resultados obtenidos para la categorización de las películas vendrán influidos por los resultados de los casos base más similares a esta película. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 33 CASO BASE Descripción Resultado Palabras del lenguaje natural Género/s Resultado/s Una vez determinados los casos base de la categorización, podemos realizar la categorización de las películas a partir de su sinopsis. Ya que el texto de la sinopsis viene en lenguaje natural en español, debemos someterlo a un previo tratamiento para eliminar raíces, palabras vacías, signos de puntuación, etc. Para este proceso utilizamos los paquetes de JCOLIBRI OpenNLPSpanish (procesador de lenguaje natural), StopWordsDetectorSpanish (elimina signos de puntuación y palabras vacías) y TextStemmerSpanish (que nos proporciona las raíces de las palabras). Con la sinopsis de la película ya tratada, estamos en disposición de aplicar el algoritmo de LuceneSpanish para la búsqueda de casos a partir de la similitud de atributos textuales. Mediante este algoritmo, hallamos una ordenación de los casos base para cada película de nuestra base de datos, en función a su similitud con ellos. A continuación aplicamos el algoritmo KNN, que nos devuelve los “k” casos más similares a nuestra sinopsis a categorizar. A cada caso más parecido se le asocia además un valor comprendido entre 0 y 1, que indica el grado de similitud de nuestra sinopsis con respecto al caso base conseguido. Con los resultados obtenidos por este algoritmo, el categorizador realiza un cálculo para hallar los géneros de las películas a categorizar, usando los llamados resultados de cada caso base recuperado por KNN. Antes de terminar, hay que mencionar que a parte de los valores hallados por el algoritmo, se le añade como si fuera un caso base más con un grado de similitud 1, el género por defecto extraído de la guía del ocio. De esta manera este género resulta muy importante en la categorización de la película pero no concluyente. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 34 Este diagrama explica en un simple vistazo el funcionamiento descrito anteriormente: Fig. Película-Caso Base Las siguientes ecuaciones nos explican el cálculo realizado por el categorizador para obtener los porcentajes de los géneros de las películas. Fig. Obtener porcentaje género películas Estos porcentajes de los géneros son almacenados por la aplicación y utilizados posteriormente por el recomendador, para hallar la recomendación de cada usuario. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 35 3.3. MOODVIEADMIN MoodvieAdmin es una herramienta que hace las funciones de administrador interno de MoodvieWeb. Una de sus funcionalidades básicas es la de suministrar a la base de datos toda la información de las películas y cines con las que va a trabajar la aplicación a partir de parsear el HTML de la GDO, utilizando tecnologías como Jericho o Tor. Su uso es exclusivo para los desarrolladores, por lo que los usuarios no tienen acceso a ella. Esta aplicación Java te permite realizar estas extracciones pudiendo seleccionar distintas categorías, tales como la provincia o el tipo de información a extraer (cines, sesiones, películas o todas). Otra funcionalidad que ya existía anteriormente era la de categorizar las películas desde el botón correspondiente en la interfaz, así poder reiniciar o borrar toda la base de datos existentes desde la pestaña BBDD. Entre las nuevas funcionalidades, que se explicarán con más detalle en el tema correspondiente, destaca la posibilidad de poder cambiar los permisos a un usuario, pudiéndole convertir en ingeniero para que pueda visualizar características sólo visibles para este tipo de usuario. Otra nueva posibilidad que brinda MoodvieAdmin es la de la asignación de puntuaciones para todas las películas. Estas puntuaciones, obtenidas de IMDb, son almacenadas con el resto de información de las películas y después utilizadas en el cálculo de las recomendaciones. En el funcionamiento interno cabe destacar el comportamiento que MoodvieAdmin mantiene con la base de datos, creando una diferenciación entre las películas actuales y el histórico de todas las que se han emitido. Esto permitirá que se puedan obtener recomendaciones de películas más allá de únicamente las que están en cartelera. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 36 3.4. TEST DE TEMPERAMENTO Mediante este test somos capaces de determinar el temperamento del usuario que lo realiza. Se basa en la teoría de Keirsey la cual explica que el temperamento humano se determina en base a cómo la gente recopila información del entorno (que puede ser con los sentidos (S) o a través de la intuición (N) y como lo procesa (que puede ser de manera racional (T), a través de los sentimientos (F), emitiendo juicios (J) o a través de la percepción (P)). La combinación de la recopilación y el proceso que se tiene de la información, da 4 tipos de temperamentos básicos, que se pueden resumir de la siguiente manera: ○ GUARDIAN (SJ) ○ ARTESANO (SP) ○ IDEALISTA (NF) ○ RACIONAL (NT) Para determinar la cantidad de cada uno de los temperamento que posee el usuario basta con realizar el test ordenando de mayor a menor cuál de las 4 respuestas posibles se corresponde más con su forma de ser (puntuándola con 1) y cuál menos (puntuándola con 4). Una vez enviado con todas las respuestas puntuadas se realizará el cálculo, se asignará el temperamento al usuario y se almacenará en la base de datos para futuros accesos. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 37 3.5. RECOMENDADOR 3.5.1. Opciones Uno de los pilares básicos de MoodvieWeb es su capacidad de recomendar películas al usuario en función o de su temperamento o del estado de ánimo deseado. A este módulo se puede acceder a través de la barra de navegación de la aplicación web, pulsando sobre la categoría Recomendación, donde ofrece tres posibilidades: ● Recomendación actual: Obtener las películas actuales en cartelera en la provincia seleccionada en función del temperamento del usuario. ● Recomendación histórica: Obtener las películas de toda la base de datos de MoodvieWeb en función del temperamento del usuario. ● Recomendación basada en ánimo: Obtener las películas actuales en función del estado de ánimo que buscas tras salir del cine. Se puede seleccionar entre sorprendido, alegre, relajado, triste o asustado. Para todas estas consultas se puede seleccionar el número de películas a mostrar en el resultado, que pueden ser 1, 5, 10 o 15. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 38 3.5.2. Procedimiento Interno Estas recomendaciones las genera a través de un procedimiento entero que es explicado en el siguiente diagrama. Fig. Diagrama procedimiento interno de recomendació n RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 39 Podemos observar que cuando el usuario solicita recomendaciones actuales o basadas en el estado de ánimo, se genera una lista de todas las películas que se proyectan actualmente en los cines de la provincia configurada, junto a la distribución de géneros que el categorizador asignó a cada una de ellas. En el caso de que la recomendación solicitada sea la histórica, esta lista de películas y géneros se creará a partir de todas las películas que estén almacenadas en la base de datos. Tras la generación de estas listas para su caso respectivo, se entrará en los módulos internos del recomendador. Las recomendaciones actuales e históricas, aunque diferenciándose en la lista de Películas-Género creada, comparten procedimiento interno para el cálculo de los resultados finales. Éste consiste en la obtención de tres listas de recomendaciones distintas generadas por recomendadores internos, como son el Recomendador Mix, Recomendador Género y Recomendador Temperamento. El Recomendador Mix se encargará de combinar el temperamento del usuario con los géneros de cada película, de manera que cada una de ellas obtendrá una puntuación que indicará la afinidad que el usuario tiene con ella basándonos en este criterio. La idea del Recomendador Género es convertir el temperamento del usuario en una distribución equivalente de géneros, para poder combinar éstos con los de cada película y así obtener una puntuación que determine de manera ordenada las películas que más se ajustan al usuario. Con el Recomendador Temperamento haremos algo parecido a lo del recomendador anterior, pero de manera inversa. Sabiendo el temperamento del usuario, convertiremos los géneros de cada película en una distribución equivalente de tipos de temperamento. De esta forma podremos combinar directamente el temperamento del usuario con el de cada película y ver cuáles son las más adecuadas para el usuario siguiendo este criterio. Cada uno de los recomendadores generará una lista con películas y su puntuación obtenida según el método empleado, en las que aquellas que tengan puntuación más baja serán eliminadas. Como estas puntuaciones no son homogéneas, ya que cada una se obtiene a partir de diferentes cálculos, se normalizan todas ellas para que tengan una puntuación entre 0 y 10. Después se combinan estas tres listas equitativamente para formar una puntuación final, se seleccionan el número de resultados que pidió el usuario (1, 5, 10 o 15) y para finalizar se muestran los resultados a través de la aplicación web. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 40 Respecto al Recomendador basado en ánimo, se sigue un procedimiento diferente. En este caso, para cada película se asigna una puntuación en función de la importancia de los géneros asociados al estado de ánimo introducido. Por ejemplo, si se busca un ánimo alegre, las películas con género comedia conseguirán una buena puntuación. De la misma forma que con los otros recomendadores, estas puntuaciones relativas serán normalizadas del 0 al 10. 3.5.3. Visualización de Resultados La página que muestra los resultados, independientemente del tipo de recomendación solicitada, permitirá visualizar las películas recomendadas, acompañadas de su información básica. Además se podrá realizar otro tipo de acciones que nos ofrecerán más información acerca de esta selección de películas: ○ Saber más: Al pulsar este botón, la aplicación nos contará por qué se han seleccionado estas películas, ayudándonos a saber cómo determinados géneros influyen en nuestro temperamento a través de una explicación fácil de entender. ○ Explicación Ingeniero: Botón sólo visible para los usuarios con permisos de ingeniero. Permite hacer un desglose por capas de niveles de los cálculos realizados. Ayuda al ingeniero a la depuración de problemas. ○ + Info: Este botón despliega más información acerca de la película. - Grado de adecuación: Nos facilita la puntuación de compatibilidad de esa película con nuestro temperamento, siendo 10 lo máximo y 0 lo mínimo. - Director, reparto y sinopsis. - ¿Por qué estos géneros?: Si pulsamos en este botón, se marcarán en color las palabras claves de la sinopsis que han determinado los géneros categorizados. También nos cuenta cómo se ha realizado esta categorización y cuál es el género con más importancia. 3.6. SERVIDOR WEB El sistema se encuentra alojado en una máquina virtual de la UCM, en la cual está instalado XAMPP para proporcionar soporte de PHP, MySQL y Apache. Además hay habilitado un puerto habilitado para alojar la aplicación en la web gracias a Tomcat. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 41 4. TRABAJO REALIZADO 4.1. LOCALIZACIÓN DE ERRORES Una vez analizamos las funcionalidades de la aplicación original Moodvie, nuestra tarea fue la de la búsqueda profunda de posibles errores. Esta acción es imprescindible, pues antes de pensar en expandir lo hecho o implementar nuevas funcionalidades, es primordial localizar los principales fallos de que dispone la aplicación, para así poder depurarlos o construir sobre ellos las nuevas características. Para ello a continuación vamos desglosando todos los problemas encontrados de manera modular. Además entraremos en el desglose de los puntos calientes, o también llamados HotSpots, que son puntos del sistema donde se realiza algún cálculo o cómputo de determinada importancia, que pueden modificar el funcionamiento de toda la aplicación. Tienen mucha importancia pues en ellos se pueden localizar importantes errores internos o realizar ligeras modificaciones con propósitos experimentales. 4.1.1. Test de temperamento Ya hemos comentado con anterioridad el funcionamiento del test de temperamento en la aplicación original y los inconvenientes que le hemos encontrado. Realizaba los cálculos sólo teniendo en cuenta un temperamento por pregunta, algo que finalmente ofrecía unos resultados que no se ajustaban al temperamento real del usuario. Aunque esta conclusión es fácil de ver conociendo la forma en la que estaba implementado el cálculo de temperamentos, hemos realizado un experimento con algunos usuarios en el cual han realizado el test original de Moodvie y después han opinado acerca de la distribución de porcentajes que han obtenido. La idea es que estos usuarios destaquen qué temperamentos han alcanzado un porcentaje poco esperado, incluyendo el más importante. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 42 Persona #1 Temperamento en Moodvie (FB) Guardián Artesano Idealista Racional 0% 25% 44% 32% Conclusiones: “No me siento tan idealista”, “Creo que sí que tengo algo de Guardián, al menos para más que un 0%”, “Diría que racional sería mi principal temperamento”. Persona #2 Temperamento en Moodvie (FB) Guardián Artesano Idealista Racional 7% 44% 19% 32% Conclusiones: “No me siento identificada con que Racional sea el segundo temperamento más importante”, “Precisamente me considero muy Guardián, un 7% es muy bajo”, “Soy menos Artesano e Idealista de lo que dicen los resultados”. Como vemos estos usuarios no están nada conforme con su temperamento y más que quejarse de los propios resultados principales, se quejan de determinada distribución de los porcentajes. En ese aspecto vamos a trabajar en adelante, en subsanar estos errores para que la distribución sea más justa. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 43 4.1.2. Categorizador El siguiente punto a estudiar para obtener una correcta recomendación, es la categorización de películas. Si estudiamos la información que poseemos de una película que nos sirva de utilidad para obtener una categorización en géneros de ella, tenemos: • Género por defecto Esta información es obtenida de la guía del ocio. Resulta bastante pobre a la hora de hacer una recomendación, ya que muchas películas tendrían el mismo género y no sería discriminante entre ellas. Además nos encontramos con que dicha información podría ser errónea en ciertos casos, por lo tanto podría ser de ayuda pero no determinante. • Sinopsis de la película Esta es la información más relevante para realizar la categorización de la película ya que nos proporciona un argumento y mediante sus palabras podremos diferenciar entre los tipos de géneros a los que pertenece. El objetivo es realizar un estudio de las sinopsis de las películas para obtener en cada una de ellas, a partir de las palabras utilizadas, una composición de los diferentes géneros de películas existentes. Como ya se ha comentado antes, esto se realiza mediante el método CBR textual (similitud de palabras), consistente en obtener a partir de unos casos base, y unos resultados asociados a cada uno de ellos (género de película), aquellos que más se parezcan a nuestro texto a estudiar (sinopsis de una película a categorizar). De cada sinopsis a analizar podemos elegir obtener los “k” primeros casos base más parecidos. Además de estos resultados obtenidos se le añade el género por defecto obtenido de la guía del ocio. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 44 Entre todo este análisis de cada película encontramos tres puntos que pueden provocar errores en la categorización y por consiguiente influir en la recomendación: • El primero y menos importante es el número de los casos base encontrados con similitud a nuestra sinopsis. En la categorización de la película se calculan los “k” casos base más parecidos. El valor de esta variable será determinante en el número de resultados, y por lo tanto limitará el número de géneros de la película. • El segundo es el género por defecto de la película, extraído de la guía del ocio. Dicho género nos servirá para el cálculo de los géneros de la película pero no puede ser determinante porque para que el recomendador realice su tarea necesitamos que exista alguna distinción entre las películas. Si basamos el resultado únicamente en este dato, las puntuaciones no van a tener precisión suficiente, y se van a encontrar recomendaciones con muchos empates. En ciertas ocasiones se ha observado que su valor podría ser erróneo y por lo tanto influir en el resultado. • El tercero y más importante son las palabras utilizadas en los casos base para el análisis y comparación de cada sinopsis. Cada caso base lleva asociado un resultado, y mediante la comparación con las palabras utilizadas en la sinopsis, hallamos los “k” casos base más parecidos y por consiguiente, los “k” resultados de géneros de nuestra película (cada uno con su grado de similitud para mayor precisión). Es por esto, que las palabras utilizadas en los casos base son las que van a determinar que una película pertenezca a unos ciertos géneros y por lo tanto habrá que ser selectivos en la búsqueda de estas palabras. El valor de estos tres puntos son los que determinan el valor de los géneros de cada película, y cambios en ellos producirán cambios en los resultados obtenidos. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 45 4.1.3. Extractor de Información En Moodvie, el componente MoodvieAdmin era considerado simplemente como un extractor de información ya que su funcionalidad no pasaba de ese propósito. Para el mejor entendimiento de esta herramienta era más apropiado asignarle un nombre que representara mejor su papel como administrador del sistema. Por eso en MoodvieWeb ha pasado a llamarse MoodvieAdmin. Otro pequeño ajuste era necesario en su propia interfaz: Fig. Interfaz extractor Moodvie Donde pone “Toda la Provincia”, quiere decir algo como “Todas las categorías”, es decir, que extraiga tanto películas, cines o sesiones. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 46 4.1.4. Recomendador Para analizar los posibles errores encontrados en el recomendador, habrá que hacer una disyuntiva entre lo que representa el recomendador de manera externa, es decir, cómo presenta los resultados de cara al usuario (front-end), y de manera interna, lo que respecta a los cálculos y a la ingeniería que ocurre de puertas adentro (back-end). 4.1.4.1. Recomendador desde fuera (front-end) Lo que en antes hemos señalado como carencia, podemos de la misma manera incluirlo en la categoría de errores. Cuando el usuario quiere obtener una recomendación, se le proporciona unos resultados que se antojan insuficientes y así se ha demostrado en algunos experimentos con usuarios, en los cuáles surgían con frecuencia las siguientes preguntas: ● ¿Por qué me salen esas películas? ● ¿Por qué esos géneros? ● ¿De qué manera influye cada temperamento en la selección final? Vimos que estas demandas se repetían en torno al recomendador, por lo que acordamos que uno de los puntos fuertes de nuestro proyecto sería facilitar al usuario un sistema de explicaciones que le hiciera conocer con más profundidad, aunque sin confundirle, el funcionamiento de nuestra aplicación y que así el feedback del usuario tenga más importancia. Además muchos de estos usuarios nos transmitieron otro tipo de sugerencias como las siguientes: ● Me gustaría que me recomendara más de 5 películas. ● Ojalá pudiera obtener recomendaciones de películas que ya no echan en cines o que no proyectan en mi provincia. Sin duda se trataba de unas limitaciones del recomendador que son fácilmente mejorables y que satisfaría en gran medida la experiencia, por lo que las sumamos a nuestra lista de nuevas funcionalidades por implementar. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 47 Además, sin abandonar la parte front-end del recomendador, en alguna de nuestras reuniones periódicas llegamos a la conclusión de que estas explicaciones que brindamos al usuario podrían ser profundizadas y utilizadas de alguna forma por el ingeniero del conocimiento que se encarga del desarrollo interno. Sería una manera en la que este experto pudiera, partiendo de los resultados básicos obtenidos, adentrarse mediante niveles o capas en la ingeniería interna con la que se han realizado los cálculos y de esta forma que el análisis y la depuración sea una tarea más sencilla, cómoda y eficiente. En los capítulos posteriores nos adentraremos en este interesante tema, donde entrarán en juego conceptos clave en este proyecto como capas, trazas o puntos calientes. 4.1.4.2. Recomendador desde dentro (back-end) Para localizar los errores en el back-end del recomendador es necesario adentrarse de lleno en la arquitectura interna de éste y conocer sus pautas y componentes. Al ser un sistema de elevada complejidad, adentrarse en el código y querer encontrar errores de funcionamiento desde el principio al final se convertiría en una tarea tediosa y poco productiva. Por eso nos guiaremos por los componentes que definimos en el Tema 3 acerca del Recomendador, donde se desglosaba su funcionamiento así como las distintas partes de la que estaba compuesto. Recordemos que el Recomendador está formado por otros tres recomendadores internos, que son Recomendador Mix, Recomendador Género y Recomendador Temperamento. Vamos a ir desglosando los errores que hemos visto tanto en el módulo general como en cada uno de los componentes, sin entrar en detalle en la solución aportada o las mejoras implementadas: RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 48 ● Tabla Género-Temperamento: Esta tabla establece una relación entre los temperamentos del usuario y los géneros de las películas. Los valores de esta tabla son los que van a determinar que a unas personas con ciertos temperamentos predominantes se les recomienden unas películas con unos géneros determinados. Tras realizar numerosas pruebas se llegó a la conclusión de que el reparto de géneros que se hacía por cada temperamento provocaba en muchas ocasiones unas recomendaciones muy ambiguas, pues hay casos en que numerosos géneros tiene importante peso dentro de un temperamento. Es interesante la idea de sesgar ese reparto de géneros y quedarse sólo con los más importantes, para refinar los resultados. ● Puntuaciones en cada recomendador interno: El objetivo de los tres recomendadores internos mencionados arriba era el de sacar las películas más adecuadas para el usuario, siguiendo tres criterios distintos que combinaban temperamentos con géneros. El error es que tras realizar los cálculos en cada recomendador, se elegían las 10 películas que más puntuación habían conseguido, se ordenaban y se les otorgaba correlativamente puntuaciones del 10 al 1. El problema es que esta distribución de puntuaciones hacía que se machacara el verdadero valor de una película, su verdadera compatibilidad con el usuario según el criterio utilizado. Sólo se premiaba la posición ocupada, algo que desvirtuaba el verdadero sentido de cada recomendador. ● Peso de recomendadores: Debido al fallo del punto anterior, era necesario crear un reparto de pesos entre los tres recomendadores que, basados en experimentos prácticos, se ajustarían a los resultados deseados. Nosotros pensamos que es mejor obtener unas puntuaciones normalizadas que permitan que cada recomendador tenga un peso equitativo, sin depender de pruebas fijas. ● No hay recomendadores internos en Recomendación basada en ánimo: Aunque en las especificaciones de la aplicación Moodvie se indicaba que este tipo de recomendaciones seguían un procedimiento homólogo al de las Recomendaciones clásicas por temperamento, en realidad es diferente, no se utilizan los tres recomendadores internos mencionados, sino que simplemente se tiene en cuenta el estado de ánimo introducido y los géneros de la película, para darle puntuación a cada película en función de eso. ● Calidad películas: No se tiene en cuenta en ningún momento la calidad de las películas. No tiene sentido recomendarlas si son de calidad ínfima, por mucha compatibilidad que tenga con el usuario. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 49 4.2. MEJORAS Y NUEVAS FUNCIONALIDADES 4.2.1. MoodvieWeb 4.2.1.1. De Facebook a la Web La motivación de este cambio es el poder llegar a más gente, ya que no todo el mundo posee una cuenta en Facebook o quizás gente que la posea no le guste dar más datos de los necesario a aplicaciones desconocidas. La migración de la aplicación de Facebook a la web conlleva la realización de una serie de cambios y adaptaciones para que todo funcione correctamente en este nuevo entorno y ambas aplicaciones sean capaces de funcionar a la vez sin interrumpir una a la otra. En primer lugar tuvimos que crear nuevas bases de datos independientes a las de Moodvie y con la estructura necesaria para nuestra aplicación. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 50 Las Base de datos de MoodvieWeb tiene el siguiente formato: Fig. Organización de la Base de datos RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 51 Además de la creación de nuevas bases de datos, fue necesaria la creación de nuevos proyectos en Eclipse, uno para Java con toda la parte interna de la aplicación y otro en PHP para la funcionalidad web de la aplicación, y establecer comunicación entre ambos gracias a JavaBridge. También fueron necesarias ciertas adaptaciones en el código para poder arrancar la aplicación en formato web, tales como la supresión o modificación de ciertas directivas de la API de Facebook o la redirección hacia las nuevas bases de datos. La máquina virtual también necesito ciertos ajustes tales como la modificación de las variables de entorno para que también apuntaran hacia nuestro proyecto o la configuración de Apache Tomcat. Al conseguir una aplicación totalmente independiente de Facebook, surgió la necesidad de la creación de usuarios de MoodvieWeb, para de esta forma poder almacenar los datos de temperamento y provincia de cada uno y así evitar tener que rellenarlos en cada acceso. Para conseguir esto fue necesaria la creación de un formulario de registro, en el que únicamente es necesaria la elección de un nombre de usuario y una contraseña asociada, facilitando así el uso a los más recelosos con su intimidad y otro formulario de login, para que cada usuario pueda identificarse. 4.2.1.2. Nueva UX (User Experience) Una vez portada la aplicación de Facebook a la web, el reescribir el diseño de ésta era un punto clave en nuestra agenda de trabajo para darle personalidad a nuestro proyecto. Como comentamos en el apartado de carencias, el tener una aplicación dentro de Facebook te ofrece ciertas limitaciones en cuanto al diseño y a la experiencia de usuario (UX), pues debes ceñirte a ciertas medidas o patrones, como pueden ser los colores corporativos de Facebook. Con todo esto, decidimos que MoodvieWeb tuviera una nueva interfaz completamente distinta de la original, con un nuevo diseño web y unos colores determinados que se asociaran a nuestro producto (celeste, negro y blanco). Para todo esto nos hemos apoyado en las tecnologías web más novedosas, que iremos desglosando a continuación. RECOMENDADOR DE PELICULAS BASADO EN TEMPERAMENTO MoodvieWeb SISTEMAS INFORMÁTICOS 2011/2012 52 4.2.1.2.1 HTML5 Nuestra primera decisión fue cambiar el tipo de documento con el que estaba escrita la web. De XHTML pasamos a HTML5. HTML5 es la nueva versión del lenguaje básico de la World Wide Web, promovido y regulado por el consorcio W3C y que nació con el propósito de sustituir a XHTML y poner al día al lenguaje de las nuevas necesidades que demanda la web hoy en día. Realizar la transición de XHTML a HTML5 es tan sencillo como cambiar el Doctype a la siguiente forma: . Aunque sencillo no toda la transformación está basada en este cambio, si no que HTML5 aconseja unas determinadas buenas prácticas, además de nuevas etiquetas que anteriormente no estaban implementadas u otras que se han eliminado. Entre las novedades, están las nuevas etiquetas
,
o