Professional Documents
Culture Documents
Resumen
La presente memoria detalla, de manera precisa, la implementacin de una
aplicacin web para ordenador, especializada en la recomendacin cinematogrfica.
La recomendacin sigue un algoritmo, el fundamento del cul reside en la
Entropa de Shannon, consistente en comparar la entropa de cada gnero, calculada
teniendo en cuenta las pelculas a las cules el usuario ha otorgado una puntuacin,
con la entropa del correspondiente gnero, calculada mediante el mismo proceso
explicado anteriormente pero aadiendo una posible pelcula a recomendar.
El caso de estudio es el mundo cinematogrfico debido a que la informacin de
referencia de la base de datos ha sido proporcionada, en su gran mayora, por
MovieLens.
Resum
La present memria detalla, de manera precisa, la implementaci duna aplicaci
web per a ordinador, especialitzada en la recomanaci cinematogrfica.
La recomanaci segueix un algoritme, el fonament de la qual resideix en la
Entropia de Shannon, consistent en comparar lentropia de cada gnere, calculada
tenint en compte les pellcules a les quals lusuari ha atorgat una puntuaci, amb
lentropia del corresponent gnere, calculada mitjanant el mateix procs explicat
anteriorment per afegint una possible pellcula a recomanar.
El cas destudi es el mn cinematogrfic degut a que la informaci de referncia
de la base de dades ha sigut proporcionada, en la seva gran majoria, per MovieLens.
Summary
This report details, with accuracy, the implementation of a web application for
computer, specialized in motion picture recommendation.
The recommendation follows an algorithm, whose fundament resides in the
Entropy of Shannon, consisting in comparing the entropy of each genre, calculated
taking into account the films to which the user has given a qualification, with the
entropy of the corresponding genre, calculated by the same process explained
previously but adding a possible film to recommend.
The case of study is the motion picture world because the information of
reference for the database has been provided, mostly, by MovieLens.
Agradecimientos
Me gustara agradecer a todas las
personas que han colaborado directa o
indirectamente en ste proyecto, su
aportacin a l.
Especialmente, a mi directora de
Proyecto Final de Grado, Josefina
Lpez Herrera, por sus consejos, su
ayuda en las dudas surgidas, sus
correcciones y en general por su
constante soporte.
Finalmente, a todas las personas de
mi entorno por su apoyo moral.
NDICE
1. Introduccin ................................................................................................... 5
1.1. Motivacin personal ............................................................................... 5
1.2. Objetivo .................................................................................................... 5
1.3. Alcance .................................................................................................... 6
1.4. Organizacin ........................................................................................... 7
2. Estado del arte ............................................................................................... 9
2.1. Sistemas de recomendacin.................................................................. 9
2.2. Tcnicas de recomendacin ................................................................ 10
2.2.1. Tcnica de recomendacin basada en un filtro colaborativo ........... 10
2.2.2. Tcnica de recomendacin basada en contenido ............................ 11
2.2.3. Tcnica de recomendacin hbrida .................................................. 11
2.3. Sistemas de recomendacin de pelculas .......................................... 11
2.3.1. Jinni .................................................................................................. 12
2.3.2. MovieLens ........................................................................................ 12
2.3.3. Criticker ............................................................................................ 12
2.3.4. Nanocrowd ....................................................................................... 12
2.3.5. Otros ................................................................................................. 13
3. Metodologa de recomendacin ................................................................. 14
3.1. Condiciones previas ............................................................................. 14
3.2. Nomenclatura ........................................................................................ 14
3.3. Asignacin dinmica de pesos............................................................ 15
3.4. Clculo de la Entropa de Shannon ..................................................... 15
3.5. Recomendacin .................................................................................... 18
4. Especificacin de requerimientos ............................................................. 20
4.1. Requerimientos funcionales ................................................................ 20
4.1.1. Actores ............................................................................................. 21
4.1.2. Casos de uso.................................................................................... 22
4.2. Requerimientos no funcionales........................................................... 25
4.2.1. Interfaz ............................................................................................. 25
4.2.2. Rendimiento ..................................................................................... 26
4.2.3. Fiabilidad, seguridad y estabilidad ................................................... 26
4.2.4. Usabilidad ......................................................................................... 26
4.3. Restricciones......................................................................................... 26
5. Arquitectura de la aplicacin...................................................................... 27
5.1. Patrn arquitectnico ........................................................................... 27
6. Diseo tcnico ............................................................................................. 29
6.1. Arquitectura de la aplicacin ............................................................... 29
6.1.1. Capa de presentacin ...................................................................... 32
6.1.2. Capa de lgica.................................................................................. 34
6.2. Base de datos ........................................................................................ 35
6.2.1. Tabla Usuario ................................................................................... 37
6.2.2. Tabla DatosPersonales .................................................................... 37
6.2.3. Tabla Generos .................................................................................. 37
6.2.4. Tabla Peliculas ................................................................................. 38
6.2.5. Tabla PeliculasVistas ....................................................................... 39
6.2.6. Tabla Entropia .................................................................................. 39
1. INTRODUCCIN
1.1. Motivacin personal
Tras el paso por la Universidad, asignaturas como Fundamentos de Informtica
[1], Estructura de Datos y Orientacin a Objetos [2], Bases de Datos [3], Fundamentos
de Redes Telemticas [4], Visin por Computador [5], entre muchas otras, me hicieron
darme cuenta que el mundo de la programacin y en general de la informtica, me
atraa mucho ms que otro tipo de campos.
Cuando me lleg la propuesta de Josefina Lpez Herrera sobre la
implementacin de sta aplicacin cre adecuado aceptarla atendiendo a la gran
oportunidad que supona extender el aprendizaje sobre los conocimientos
relacionados con el campo de la informtica, los cules me favoreceran en un futuro,
tanto a nivel de estudio como profesional.
La gran fuente de motivacin reside en el camino que me gustara emprender en
un futuro, enfocando mis estudios al campo de la informtica, para llegado el
momento, trabajar, en concreto, en ste mundo laboral.
Me enorgullecera conseguir implementar una aplicacin web de recomendacin,
la cul solventara el problema de sobrecarga de informacin en el mundo
cinematogrfico, proporcionando tems de acuerdo a las preferencias de cada usuario,
mediante la proyeccin de los conocimientos adquiridos en la Universidad y el
aprendizaje, de manera autnoma, de nuevas herramientas informticas como nuevos
lenguajes de programacin, nuevas tecnologas, etc.
1.2. Objetivo
El objetivo principal de ste Proyecto Final de Grado es la implementacin de
una aplicacin web de recomendacin cinematogrfica basada en el algoritmo de
recomendacin desarrollado por Josefina Lpez Herrera en 2006 [6].
Con el fin de alcanzar el objetivo principal de ste proyecto, es necesario el
desarrollo de los mismos, los cules sern definidos a continuacin, y su
correspondiente xito.
Instalacin del entorno de trabajo:
Descarga e instalacin tanto de los distintos software de trabajo como de las
tecnologas complementarias para la implementacin de la aplicacin web.
Construccin y actualizacin de la base de datos:
Obtencin de informacin verdica a travs de MovieLens [7].
1.3. Alcance
El alcance de ste Proyecto Final de Grado es una aplicacin web de
recomendacin cinematogrfica que permite solventar el problema de sobrecarga
de informacin en ste mundo, proporcionando una recomendacin basada en una
metodologa [6] que proporciona tems de acuerdo a las preferencias de cada usuario.
El proyecto es una primera versin de aplicacin web, donde el caso de estudio
es el mundo cinematogrfico, debido a que la informacin de referencia sobre la que
se ha trabajado ha sido extrada de MovieLens [7].
La aplicacin web cuenta con una serie de caractersticas, a modo de servicios
ofrecidos por la misma, que son descritas a continuacin:
Registro de nuevos usuarios: Se permite acceder a un nuevo usuario al
proceso de registro, el cul tendr que completar para autenticarse en la
aplicacin.
Autenticacin de usuarios: Se permite a un usuario, previo registro,
autenticarse en la aplicacin con el fin de usar el servicio ofrecido por la
misma.
Visualizacin y modificacin de los datos del propio usuario: Se permite
visualizar, as como modificar, tanto los datos personales del propio usuario
como sus datos de acceso a la aplicacin, al mismo.
Navegacin entre el listado de pelculas: Se permite navegar al usuario
entre el listado de pelculas existentes en la base de datos de la aplicacin.
Asignacin de calificaciones a nuevas pelculas: Se permite al usuario
asignar una calificacin a cada una de las pelculas.
1.4. Organizacin
El proyecto sigui una planificacin, la cul est plasmada en ste apartado, con
el objetivo de cumplir los objetivos establecidos en un principio.
La primera etapa del proyecto consisti en una investigacin, a modo de
introduccin, sobre el mundo de los sistemas de recomendacin, atendiendo al propio
concepto, las distintas metodologas de recomendacin, as como las soluciones ms
importantes en la actualidad.
Una vez fueron comprendidos los conceptos pertenecientes, se procedi a la
comprensin de la metodologa de recomendacin [6] a seguir por la aplicacin,
asimilando el procedimiento, las operaciones lgicas, las variables, etc.
La siguiente etapa residi en la definicin de los requerimientos de la aplicacin
de recomendacin cinematogrfica y los casos de uso que contemplara la misma.
La cuarta etapa del proyecto consisti en una bsqueda exhaustiva sobre los
distintos tipos de arquitectura para una aplicacin web, as como sobre las tecnologas
existentes para la implementacin de la misma, valorando las ventajas y las
desventajas de cada caso.
A continuacin, se procedi a la instalacin y configuracin del entorno de
trabajo necesario para la implementacin de la aplicacin web.
Los siguientes puntos estuvieron relacionados con la creacin de lo que formara
la aplicacin web, lo cul consisti en la construccin de la base de datos y la
implementacin de la propia aplicacin.
La etapa final del proyecto estuvo dedicada a la ejecucin de test de pruebas
con el fin de comprobar el funcionamiento, no tan slo de la aplicacin web sino
tambin de la metodologa de recomendacin [6].
La estructura seguida en la memoria, la cul describe con minuciosidad el
trabajo, est definida a continuacin:
Estado del arte: Introduccin al contexto de los sistemas de recomendacin.
Metodologa de recomendacin: Explicacin del fundamento terico sobre el
mtodo de recomendacin seguido por el sistema.
Especificacin de requerimientos: Descripcin de las funcionalidades de la
aplicacin web.
10
Sin embargo, la principal ventaja que presenta esta tcnica es que es los tems
que recomienda no siempre son del mismo tipo de los vistos por el usuario, ofreciendo
as un gran abanico de variedad.
11
2.3.1. Jinni
La pgina web de recomendacin de pelculas ms popular es Jinni [13],
perteneciente a la compaa Entertainment Genome. El principal objetivo es
recomendar pelculas acordes a los gustos del usuario. Sin embargo, Jinni ofrece ms
funciones como la bsqueda semntica, enfocada en la interpretacin de las consultas
mediante la identificacin de conceptos en el contenido, en lugar de keywords; el
filtrado a travs del estado de nimo, el argumento que se desea, el tiempo disponible
u otros parmetros. Adems, incluye opciones adicionales para refinar la bsqueda. La
tecnologa de Jinni implica una taxonoma creada por profesionales del cine, con
nuevos ttulos indexados a travs de procesamiento del lenguaje natural y los mtodos
de aprendizaje automtico para analizar automticamente los exmenes y los
metadatos.
2.3.2. MovieLens
MovieLens [7] es una pgina web de recomendacin de pelculas desarrollada
en 1997 por el equipo de investigacin de GroupLens de la Universidad de Minnesota.
Pese a que la interfaz grfica no es atractiva, la extensa base de datos y el algoritmo
de recomendacin, basado en un filtro colaborativo, hacen de esta plataforma una de
las ms fiables gracias a la precisin de los resultados. El sistema compara tus
puntuaciones con las de otros usuarios con gustos similares y a continuacin,
recomienda pelculas que el usuario no haya visto. Adems, cuando un usuario busca
una pelcula especfica, el sistema retorna una prediccin de la posible puntuacin que
el usuario la dar a la pelcula despus de haberla visto. Adems, MovieLens
proporciona informacin de pelculas de manera individual, as como listas de actores
y directores, que son usadas para incrementar la exactitud del algoritmo.
2.3.3. Criticker
El objetivo de Criticker [14] es relacionarte con personas que comparten tus
mismos gustos cinematogrficos de la manera ms exacta posible. Usa la herramienta
llamada Taste Compatibility Index (TCI) que permite ver con qu personas eres ms
afn, accediendo a su perfil y viendo qu pelculas les gustan. Tambin se punta y se
comparan tus puntuaciones con las de otros usuarios para adquirir el TCI. Por lo tanto,
es un servicio que combina tanto funcionalidad como comunidad.
2.3.4. Nanocrowd
El algoritmo de Nanocrowd [15] se basa en el estudio de la reaccin de los
usuarios a las pelculas. Analizan las tres palabras que los usuarios usan para
describir sus reacciones a las pelculas. Analizando esas palabras permiten entender
no slo qu pelculas han gustado, sino por qu. Esta tecnologa se llama Reaction
Mapping. Entender el por qu es crucial porque las pelculas evocan una gran
variedad de sensaciones y sentimientos que son complejos y no pueden ser
capturados simplemente por puntuaciones o historial. Las pelculas se clasifican en
tres tipos de nanogneros (que capturan la esencia o algunos elementos de cada
12
pelcula) en el que cada uno refleja distintas razones. Las tres palabras descriptivas
son clave para conocer qu parte de la pelcula es capturada en cada nanognero.
2.3.5. Otros
El mercado existente en Internet ofrece muchos ms sistemas de
recomendacin de pelculas como: Netflix [16], IMDb [17], Flixster [18], Rotten
Tomatoes [19] y Clerkdogs [20], siendo ste ltimo el ms simple de todos.
Sin embargo, Internet es la nica plataforma que ofrece servicios de
recomendacin de pelculas, aunque se espera que en un futuro prximo tambin lo
sea la televisin. El sistema Jinni [13], mencionado anteriormente, est colaborando
des de 2012 con Canal+ Espaa [21] para que los abonados a Canal+ cuenten con
una coleccin de contenidos que encajen en los hbitos de consumo audiovisual del
cliente. Los usuarios del servicio tambin podrn realizar bsquedas semnticas por
conjuntos de palabras, de tal forma que mediante uno o varios trminos, el sistema
explore en todo el catlogo de contenidos aquellos que se ajusten a lo expresado en
lenguaje natural por el telespectador. Esto permitir complementar las actuales
bsquedas estructuradas basadas nicamente en gnero como por ejemplo "Cine >
Comedia" por otras como "relaciones de amistad", que podra permitir encontrar
pelculas en el que ese tema sea relevante, as como documentales de sociedad,
noticias relacionadas, etc. El objetivo del servicio, tal y como afirm Jinni en su da, es
diferenciar la televisin proporcionada por Canal+ de la televisin convencional, por un
lado incidiendo en los cambios de consumo registrados en los ltimos aos y por otro
orientando la oferta de contenidos hacia el cliente.
13
3. METODOLOGA DE RECOMENDACIN
La metodologa [6] que usar la aplicacin web para llevar a cabo la
recomendacin est dividida en tres etapas:
Asignacin dinmica de pesos a las pelculas.
Clculo de la Entropa de Shannon de la pelcula a recomendar.
Recomendacin.
3.2. Nomenclatura
La nomenclatura usada en la explicacin sobre la metodologa [6] es la siguiente:
!! !!" dnde !!" es la opinin normalizada del atributo ! de la pelcula !. En
nuestro caso !! coincide con !!" si ! es el atributo que define el gnero de la pelcula.
!!" = 0 para ! !
14
!!"# !" =
Dnde,
k es el nmero de puntuaciones otorgadas por los usuarios a la pelcula.
Puntuacin
0.8
0.2
0.5
0.8
0.7
0.5
Western
Terror
0.8
Comedia
0.2
0.5
0.8
0.7
0.8
Tabla 1. Tabla a modo de resumen del caso de ejemplo para el estudio de la metodologa
15
!! =
1
!
Donde,
b es la cantidad de calificaciones diferentes del atributo j de todas las pelculas
vistas por el usuario.
El valor de pij , correspondiente a la frecuencia relativa de las calificacin
normalizada del atributo j es calculado de la siguiente manera:
!!" =
!
!
Donde,
n es el total de pelculas calificadas por el usuario.
a es el nmero de pelculas que tienen un determinado valor del atributo j.
Los clculo descritos anteriormente son aplicados para el caso de ejemplo de la
siguiente manera:
Atributo western:
!1(!,!) =
!!"#$"%& =
1
1
1
; !2(!,!) = ; !2(!,!) = ;
6
6
6
1
1
1
1
1
1
log !
+ log !
+ log !
6
6
6
6
6
6
Atributo terror:
!1(!,!) =
2
1
; !2(!,!) = ;
6
6
16
1
= 0.430827
3
!!"##$# =
1
1
1
1
log !
+ log !
3
3
6
6
1
= 0.47957
2
Puntuacin
0.8
0.2
0.5
0.8
0.7
0.5
0.7
0.8
Western
Terror
0.8
Comedia
0.2
0.5
0.8
0.7
0.8
0.7
0.8
Tabla 3. Tabla a modo de resumen del caso de ejemplo con las pelculas a recomendar
Hay que recalcar que la calificacin de las nuevas pelculas ser la asignada
inicialmente como calificacin del experto o bien obtenida por el proceso de
reasignacin de pesos.
A continuacin, se incluyen los clculos necesarios para obtener la Entropa de
Shannon de cada atributo para cada una de las nuevas pelculas, es decir C007 y
C008.
Pelcula C007; Atributo Western:
!1(!,!) =
1
2
1
; !2(!,!) = ; !3(!,!) = ;
7
7
7
!!"#$"%& = 0.44
!1(!,!) =
1
2
; !2(!,!) = ;
7
7
!!"##$# = 0.46
17
!1(!,!) =
1
1
1
; !2(!,!) = ; !3(!,!) = ;
7
7
7
!!"#$"%& = 0.4
!1(!,!) =
1
2
; !2(!,!) = ;
7
7
!!"#$# = 0.46
Pelcula C008; Atributo Comedia:
1
;
7
= 0.4
!1(!,!) =
!!"#$%&'
ID Pelcula
C007
C008
H-H
mxima
0.01957
0.4
Western
H
H
0.430827
0.44
0.430827
0.4
Terror
H
0.47957
0.47957
H
0.46
0.46
Comedia
H
H
0
0.4
Hay que tener en cuenta que slo sern considerados los atributos para los
cules est definido el valor de H. En el caso de que el valor de H pero s el de H no
est definido para un determinado atributo/pelcula a recomendar ser considerado
H=0 para ese atributo/pelcula.
3.5. Recomendacin
Si el valor mximo de la diferencia absoluta entre Entropas de Shannon es
inferior a un valor predeterminado, la pelcula a recomendar ser efectivamente
recomendada, mientras que en el caso contrario no se recomendar.
18
!=
1
(! + 1)
19
4. ESPECIFICACIN DE REQUERIMIENTOS
La especificacin de requisitos recoge una descripcin de las funcionalidades, es
decir, del comportamiento, del sistema. Los requisitos funcionales definen las
funcionalidades del sistema. Y los requisitos no funcionales: rendimiento,
disponibilidad, seguridad, accesibilidad, usabilidad, estabilidad, portabilidad, costo,
operatividad, interoperabilidad, escalabilidad, concurrencia, mantenibilidad e interfaz
del sistema.
El objetivo de ste proyecto es la implementacin de una aplicacin web de
recomendacin multimedia basado en perfiles de usuario, mediante el
algoritmo de recomendacin desarrollado por Josefina Lpez Herrera en 2006
[6].
El sistema se implementar en una nica plataforma accesible a travs del
ordenador, el cul tendr instalados los programas especficos para su
ejecucin.
La arquitectura ser de cliente-servidor, en la que ambos procesos se llevarn
a cabo en el mismo ordenador. El cliente ser el usuario que acceder al
sistema mediante el cul har peticiones al servidor.
20
4.1.1. Actores
Un actor es una entidad externa al sistema que solicita una funcin al sistema, y
por tanto guarda una relacin con l. Un actor puede ser tanto un ser humano como un
dispositivo electrnico e incluso, otro sistema de software.
Los actores con los que interactuar el sistema son los siguientes:
Usuario no registrado: El actor es un usuario no registrado en el sistema. La
razn por la cul un usuario no est registrado es debida a que un usuario es
completamente nuevo, nunca se ha registrado en el sistema y por lo tanto, el
sistema no contiene informacin sobre l.
Usuario registrado: El actor es un usuario registrado dentro del sistema, que
ha completado el proceso de autenticacin y puede acceder a todas las
funciones del sistema.
21
22
Objetivo
Actores
Usuario no registrado.
Descripcin
Post-condicin
Nombre Autenticar.
Comprobar que un usuario est registrado en el
Objetivo sistema para a continuacin, permitirle usar sus
servicios.
Actores Usuario registrado.
El usuario introduce tanto su nombre de usuario como
su contrasea. El sistema comprueba si los datos
Descripcin
introducidos estn en la base de dados y si son
correctos.
El usuario puede usar los servicios ofrecidos por el
Post-condicin
sistema.
Tabla 6. Tabla caso de uso: Autenticar
23
24
25
4.2.2. Rendimiento
El tiempo de respuesta del sistema ser rpido, tanto para el registro y la
autenticacin del usuario, como para la introduccin y actualizacin de datos,
as como para el clculo del algoritmo y la final recomendacin.
El algoritmo se optimizar de tal manera que se pueda proporcionar una
respuesta rpida y fiable al usuario.
4.2.1. Usabilidad
El sistema ser implementado con flexibilidad para aadir posibles futuros
requerimientos al sistema.
4.3. Restricciones
El usuario necesitar disponer de los siguientes programas instalados en su
ordenador para poder ejecutar la aplicacin:
Eclipse Java EE IDE for Web Developers versin Kepler Service Release 1
MySQL Community Server 5.6.14 OSX 10.6 x86 64 bits
MySQL Workbench versin 6.0
Apache Tomcat versin 6.0
26
5. ARQUITECTURA DE LA APLICACIN
La arquitectura del software define cmo est estructurado el sistema,
atendiendo tanto a los componentes como a su relacin entre ellos.
27
28
6. DISEO TCNICO
El diseo tcnico de una aplicacin proporciona una descripcin detallada de los
componentes software de la aplicacin, as como del modelo de datos.
29
30
web, as como las tecnologas empleadas en cada una de ellas, algunas de las cuales,
sirven para la vinculacin entre ellas.
31
32
Pantalla de autenticacin
Definicin: sta pantalla permite al usuario introducir los datos necesarios,
username y password, para acceder al sistema. As como, permitir el acceso al
proceso de registro.
Acciones:
Acceder al sistema
Registrar a un nuevo usuario
Tabla 15. Tabla resumen sobre la pantalla de autenticacin
33
Acciones:
34
Clase de recomendacin
Definicin: sta clase calcula el algoritmo necesario para la recomendacin.
Acciones:
Calcular el algoritmo de recomendacin.
Actualizar la base de datos con la informacin obtenida tras el clculo del
algoritmo para la recomendacin.
Mostrar los nombres de las pelculas a recomendar.
Tabla 26. Tabla resumen sobre la clase de recomendacin
35
36
Tal y como se puede apreciar en el diagrama, la base de datos est formada por
un total de ocho tablas, el orden de las cules, al tratarse de una base de datos
relacional, no tiene relevancia, a diferencia de otras bases de datos que siguen
modelos como el jerrquico y el red.
Los identificadores que vinculan entre s las tablas son ID_Usuario que relaciona
las tablas Usuario, DatosPersonales, PeliculasVistas, Entropia y EntropiaPrima;
ID_Pelicula que relaciona las tablas Peliculas, PeliculasVistas y EntropiaPrima; e
ID_Genero que relaciona las tablas Generos y Entropia.
Columnas
ID_Usuario
Usuario
Password
Tipo
int
Varchar(20)
Varchar(20)
Restricciones
Primary Key
Descripcin
ID del usuario
Username de acceso
Password de acceso
Columnas
ID_Usuario
Nombre
Apellidos
Genero
Edad
Ocupacion
Telefono
Email
Tipo
int
Varchar(20)
Varchar(20)
char
int
Varchar(20)
Varchar(20)
Varchar(50)
Restricciones
Descripcin
Primary Key
ID del usuario
Nombre del usuario
Apellido del usuario
Gnero del usuario
Edad del usuario
Ocupacin del usuario
Telfono del usuario
Email del usuario
Columnas
ID_Genero
Descripcin
Tipo
Restricciones
Varchar(15)
Primary Key
Varchar(100)
Descripcin
Nombre del gnero
Descripcin del gnero
37
Nmero
1
2
Columnas
ID_Pelicula
Nombre
Tipo
int
Varchar(80)
OpinionExperto
float
OpinionUsuario
float
Anyo
int
Pais
Varchar(20)
7
8
9
Director
Guion
Musica
Varchar(20)
Varchar(20)
Varchar(100)
10
Fotografia
Varchar(100)
11
Reparto
Varchar(100)
12
Productora
Varchar(100)
13
Sinopsis
Varchar(500)
14
Desconocido
int
15
Accion
int
16
Aventuras
int
17
Animacion
int
18
Ninyos
int
19
Comedia
int
20
Crimen
int
21
Documental
int
22
Drama
int
23
Fantasia
int
24
CineNegro
int
38
Restricciones
Descripcin
Primary Key
ID de la pelcula
Nombre de la pelcula
Puntuacin otorgada
por un experto
Puntuacin otorgada
por los usuarios
Ao de la pelcula
Pas de origen de la
pelcula
Director de la pelcula
Guin de la pelcula
Msica de la pelcula
Fotografa
de
la
pelcula
Reparto de la pelcula
Productora
de
la
pelcula
Sinopsis de la pelcula
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
25
Horror
int
26
Musical
int
27
Misterio
int
28
Romance
int
29
CienciaFiccion
int
30
Suspense
int
31
Guerra
int
32
Western
int
33
FechaAlta
Datetime
34
UltimaModificacion
Datetime
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Igual a 1 si la pelculas
pertenece al gnero
Fecha de alta de la
pelcula en la base de
datos
Fecha de la ltima
modificacin de los
datos de la pelcula
Columnas
ID_Usuario
ID_Pelicula
Tipo
int
int
Puntuacion
int
Fecha
Datetime
Restricciones
Descripcin
Primary Key
ID del usuario
Primary Key
ID de la pelcula
Puntuacin otorgada a una
pelcula
Fecha de la puntuacin de
una pelcula.
Columnas
ID_Usuario
ID_Genero
Tipo
int
Varchar(15)
Restricciones
Descripcin
Primary Key
ID del usuario
Primary Key
Nombre del gnero
39
ValorH
double
FechaCalculo
Datetime
Valor
mximo
de
la
diferencia absoluta entre el
valor de la entropa y el
valor de la entropa obtenido
al aadir la nueva pelcula
Fecha de calculo de la
Entropia de Shannon
Columnas
ID_Pelicula
ID_Usuario
int
int
Restricciones
Primary Key
Primary Key
FechaCalculo
Datetime
Primary Key
ValorH
double
Recomendar
Tipo
char
Descripcin
ID de la pelcula
ID del usuario
Fecha de clculo de
Entropa de Shannon
Valor mximo entre
diferencias de entropa
cada uno de los gnero
Valor S si la pelcula
recomendada, N si no
recomendada
la
las
de
es
es
Columnas
Tipo
UmbralRecalificacion
int
MinPeliculas
int
MaxRecomendaciones
int
Restricciones
Descripcin
Umbral a partir del
cul se inicia el
proceso
de
recalificacin de una
pelcula
Nmero mnimo de
pelculas
a
recomendar
en
el
proceso de registro
Nmero mximo de
pelculas
a
recomendar por el
sistema
40
7. DESARROLLO
En ste apartado de desarrollo, se explicar el proceso llevado a cabo en el
proyecto, el cul tiene como fin la implementacin de una aplicacin web.
41
42
43
caso del username y el password al cual slo se le aada una a delante de cada
valor, para mantener ambos campos de tipo varchar(20); tal y como se muestra en el
siguiente ejemplo:
1|a1|a1
44
Funcin
Autenticar al usuario.
Registrar al usuario.
Permitir puntuar un mnimo de 20 pelculas al usuario
para completar el proceso de registro.
Mostrar los datos del propio usuario al mismo.
Permitir modificar los datos del propio usuario al mismo.
Buscar y puntuar pelculas.
Mostrar recomendaciones personalizadas.
45
Por otra parte, la primera pgina cuenta con un mensaje, situado debajo del
formulario de autenticacin, indicando que en caso de ser un usuario no registrado se
puede acceder al proceso de registro mediante el botn yuxtapuesto.
La pgina de registro de nuevos usuarios consiste en un formulario que el
usuario ha de rellenar con sus datos personales, as como los datos para acceder al
sistema. El formulario sigue la misma estructura explicada anteriormente para el de
autenticacin. Una vez el usuario haya completado todos los datos solicitados, el
siguiente paso consiste en puntuar un nmero mnimo pelculas para que el sistema
cuente con un mnimo de informacin inicial para realizar su primera recomendacin.
sta pgina es muy similar a la que el sistema ofrece a los usuarios registrados para
puntuar pelculas visualizadas, as que se explicar detalladamente ms adelante.
46
A las siguiente pginas slo se puede acceder si eres un usuario registrado que
ha completado satisfactoriamente la autenticacin; lo que significa que se tratan de
pginas propiamente del sistema, en las que ya se ofrecen sus servicios. Todas
siguen el mismo diseo (de arriba a abajo): cabecera, men, contenido. El men es un
elemento propio de cualquier interfaz a travs del cul se permite la navegacin entre
pginas distintas. Hoy en da existen una gran cantidad de tipos de mens, en sta
aplicacin se ha optado por un men estilo dock, es decir, un men a partir de iconos.
El dock ofrece una serie de opciones configurables como su colocacin en la pgina,
arriba o abajo, el tamao mximo de los iconos, cunto se agrandan los iconos al
pasar el ratn por encima de ellos y su alineacin horizontal. En cada uno de los tems
que formarn el dock se especifica el nombre que aparecer debajo de cada uno de
ellos, dnde encontrar la imagen que conforma el icono y la direccin a la cul el
sistema redirecciona en caso de que el usuario presione el tem.
La pgina profile.xhtml expone los datos personales del usuario, as como el
nombre de usuario para acceder al sistema. sta pgina es nicamente de
47
48
49
Funcin
LoginBean.java
RegistrarBean.java
Autenticar al usuario.
Registrar al usuario.
RegistrarPuntuarBean.java
PerfilBean.java
PerfilModificarBean.java
PeliculasPuntuarBean.java
RecomendarBean.java
50
51
52
53
8. RESULTADOS
En ste apartado de resultados, se estudiar el comportamiento de la aplicacin
web con el objetivo de comprobar tanto el funcionamiento de la misma como la
metodologa [6] a usar en ella.
A nivel de funcionamiento, la aplicacin web cumple el objetivo establecido,
desempeando las especificaciones tanto funcionales como no funcionales.
La gestin de usuarios es estricta. Si el usuario no est registrado o si el
username o el password no son correctos, el sistema no permite al usuario el
acceso a los servicios del mismo.
La aplicacin ofrece los siguientes servicios: registro de usuarios,
visualizacin y modificacin del perfil, navegacin por el listado de pelculas
existentes en la base de datos, otorgar nuevas puntuaciones a pelculas y
modificar antiguas, y visualizacin de las recomendaciones.
La base de datos es actualizada correctamente mientras la aplicacin est
funcionando, insertando nuevos datos o modificando los antiguos, segn lo
indique la situacin.
La aplicacin realiza el proceso completo de la metodologa de
recomendacin, as lo reflejan las tablas de Entropia y EntropiaPrima de la
base de datos, en la cul son insertados los datos correspondientes del
clculo.
La comprobacin se ha llevado a cabo mediante la ejecucin de la aplicacin
web, prestando atencin a cada uno de los casos de uso.
Con el fin de analizar la metodologa de recomendacin a seguir por la aplicacin
web, se han realizado diversos casos de estudio, detallados a continuacin.
ID Pelcula
200
51
217
219
Western
Terror
0.8
0.2
0.4
0.8
54
Comedia
97
177
232
4
0.6
0.8
0.6
0.8
Las puntuaciones, sin normalizar, otorgadas a las pelculas vistas por el usuario
se pueden comprobar en la Figura 15, en la que se recogen los datos almacenados en
la tabla PeliculasVistas de la base de datos.
Figura 16. Tabla Entropia
Figura 17. Tabla EntropiaPrima
55
Western
Terror
0.8
Comedia
Animacin
0.2
0.4
0.8
0.6
0.8
0.2
0.4
0.6
0.8
0.8
Tabla 38. Tabla a modo de resumen del segundo caso de estudio
Las puntuaciones, sin normalizar, otorgadas a las pelculas vistas por el usuario
se pueden comprobar en la Figura 18, en la que se recogen los datos almacenados en
la tabla PeliculasVistas de la base de datos.
56
A continuacin, se presenta la Tabla 39, una tabla resumen con los resultados,
obtenidos a mano, de los clculos de la metodologa de recomendacin:
ID Pelcula
13
95
351
H-H
mxima
0.041955
0.022786
0.022786
Western
H
H
0.375
0.35221
0.375
0.35221
0.375
0.35221
Terror
H
0.4375
0.4375
0.4375
H
0.395544
0.417209
0.417209
Comedia
H
H
0.375 0.35221
0.375 0.35221
0.375 0.35221
Animacin
H
H
0.375
0.35221
0.375
0.35221
0.375
0.35221
Tabla 39. Tabla de resultados del segundo caso de estudio tras la aplicacin de la metodologa
57
58
59
60
9. PRESUPUESTO
El presupuesto del proyecto est dividido en tres partes: mano de obra, software
y servidor. La Tabla 40 presenta el desglose del coste del proyecto:
Cantidad
480
4
1
1
1
1
Descripcin
Mano de obra
Eclipse
MySQL Workbench
MySQL Community Server
Servidor web Apache Tomcat
Servidor:
1
2
Importe
8 por hora
3840
0
0
0
0
0
0
0
0
6780
6780
Software(*):
8
4
Precio unitario
10620
(*) El software es open source, es decir, cdigo libre, por lo que no tiene ningn
coste.
Sobre el presupuesto, cabe matizar que se ha escogido un solo servidor, el cul
albergara tanto la aplicacin web como la base de datos, para reducir el coste del
presupuesto. El servidor escogido, el cul cumple de manera exagerada las
necesidades de la aplicacin desarrollada en el proyecto, es nicamente orientativo,
por lo que otro podra ser perfectamente elegido, siempre y cuando cumpliese las
necesidades bsicas de la aplicacin.
61
10. CONCLUSIN
El objetivo inicial de ste Proyecto Final de Grado, el cul era la creacin de una
aplicacin web de recomendacin de pelculas basada en perfiles de usuario,
mediante una metodologa [6] fundamentada en la Entropa de Shannon, ha sido
alcanzado gracias a la creacin de la correspondiente base de datos y la
implementacin de la propia aplicacin.
La aplicacin web contiene las funciones bsicas necesarias para lograr las
especificaciones del sistema, stas son: registrar nuevos usuarios, permitir a los
usuarios autenticarse ante el sistema, otorgar puntuaciones a pelculas y visualizar las
recomendaciones proporcionadas por el sistema. Adems, una funcin extra fue
aadida, la visualizacin de los datos del usuario y la posibilidad de ser modificados.
La interfaz de la aplicacin web es muy sencilla. A su favor, hay que decir que
esto hace de ella una interfaz intuitiva ya que los mdulos estn dispuestos de manera
que visualmente quedan bien diferenciados ya que el objetivo era una aplicacin
funcional y resolutiva, a que fuese llamativa.
A nivel de lgica, la aplicacin web ha estado implementada desempeando
satisfactoriamente las operaciones necesarias para desarrollar la metodologa [6]. Y
siguiendo los estndares de las tecnologas utilizadas.
La base de datos creada para la aplicacin cumple con creces todos los
requisitos porque no slo cubre las necesidades de la metodologa de recomendacin
[6] seguida en la aplicacin web, sino que va ms all, ofreciendo ms campos de
informacin tanto sobre los datos personales del usuario como de las pelculas.
La aplicacin web ha sido monousuario en vez de multiusuario debido a que la
aplicacin web no se ha albergado en un servidor de Internet, as como la base de
datos tampoco en un servidor remoto.
Sin embargo, el resultado de la aplicacin a nivel metodolgico no ha sido el
esperado inicialmente, ya que segn ha quedado demostrado en el apartado 8.
Resultados, cuando la recomendacin se realiza para un usuario el cul ha puntuado
un nmero bajo de pelculas, la aplicacin s que recomienda pelculas, mientras que
en el caso de un usuario el cul ha puntuado un nmero elevado de pelculas no se
recomienda ninguna pelcula, lo cul se explica como una limitacin en el rango.
Finalmente, es importante expresar lo gratificante que ha sido realizar ste ltimo
viaje en la carrera a modo de Proyecto Final de Grado, en donde he podido aplicar
algunas de las competencias enseadas durante la titulacin: programacin orientada
a objetos, bases de datos, lenguaje HTML, XML y Bash, etc; y por lo que ha supuesto
a nivel de aprendizaje: introduccin al lenguaje de programacin en XHTML y Java,
configuracin del entorno para la implementacin de una aplicacin web, conocimiento
de las distintas arquitecturas y tecnologas para ello, etc. Por lo tanto, me llevo una
buena sensacin por haber realizado ste proyecto que es la culminacin a varios
aos de aprendizaje y crecimiento, tanto a nivel acadmico como personal.
62
63
11. BIBLIOGRAFA
[1] https://intranet7.eet.upc.edu/guiesdocents/descarregar/320095/es : Plan de estudio
de la asignatura de Fundamentos de informtica impartida en la EET ltima visita:
10/05/2014 ltima visita: 08/05/2014
[2] https://intranet7.eet.upc.edu/guiesdocents/descarregar/320099/es : Plan de estudio
de la asignatura de Estructura de datos y orientacin a objetos impartida en la EET
ltima visita: 08/05/2014
[3] https://intranet7.eet.upc.edu/guiesdocents/descarregar/320103/es: Plan de estudio
de la asignatura de Bases de datos impartida en la EET ltima visita: 08/05/2014
[4] https://intranet7.eet.upc.edu/guiesdocents/descarregar/320108/es: Plan de estudio
de la asignatura de Fundamentos de redes telemticas impartida en la EET ltima
visita: 08/05/2014
[5] https://intranet7.eet.upc.edu/guiesdocents/descarregar/320122/es: Plan de estudio
de la asignatura de Visin por computador impartida en la EET ltima visita:
08/05/2014
[6] Lpez-Herrera, Josefina. A New Approach of Shannon Entropy in Recommender
Systems. Proceedings of the 10th IASTED International Conference, Artificial
Intelligence and Soft Computing. (2006) August 26-30, Palma De Mallorca. ISBN: 088986-610-4
[7] http://movielens.org : Pgina oficial de MovieLens ltima visita: 10/05/2014
[8] Jannach D, Zanker M, Felfering A, Friedrich G. An introduction to recommender
systems. Cambridge University Press (2010) ISBN-13: 978-0521493369
[9] Ricci F, Rokach L, Shapira B, Kantor P.B. Recommender systems handbook.
Springer (2011) ISBN-13: 978-0387858197
[10] Linden G, Smith B, York J. Item-to-item collaborative filtering. Internet
Computing, IEEE. (2003) ISSN: 1089-7801
[11] Ekstrand M, Riedl J, Konstan J. Collaborative filtering recommender systems.
(2011) DOI: 10.1561/1100000009
[12] Burke, Robin. Hybrid web recommender systems. The adaptive web. Springer
(2007) ISBN: 978-3-540-72078-2
[13] http://www.jinni.com : Pgina oficial de Jinni ltima visita: 10/05/2014
[14] http://www.criticker.com : Pgina oficial de Criticker ltima visita: 10/05/2014
64
65
[34] http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138795.html :
Pgina oficial de JavaBeans ltima visita: 17/05/2014
[35] http://www.oracle.com/technetwork/java/javase/jdbc/index.html : Pgina oficial de
JDBC ltima visita: 17/05/2014
[36] Cuadra Fernndez, Dolores. Desarrollo de bases de datos. RA-MA (2013) ISBN:
9788499641249
[37] Nevado Cabello, Maria Antonia. Introduccin a las bases de datos relacionales.
Vision Net (2010) ISBN: 9788498868098
[38] https://www.eclipse.org/downloads/packages/eclipse-ide-java-eedevelopers/keplersr2 : Pgina de descarga de Eclipse Java EE IDE for Web
Developers versin Kepler Service Release 1 ltima visita: 24/05/2014
[39] http://tomcat.apache.org/download-60.cgi : Pgina de descarga de Apache
Tomcat versin 6.0 ltima visita: 24/05/2014
[40] http://dev.mysql.com/downloads/mysql : Pgina de descarga de
Community Server 5.6.14 OSX 10.6 x86 64 bits ltima visita: 24/05/2014
MySQL
66
67