Recomendación de canciones y listas de reproducción sobre Spotify

Ver/ abrir
Use este enlace para citar
http://hdl.handle.net/2183/26156
A non ser que se indique outra cousa, a licenza do ítem descríbese como Atribución-NoComercial-SinDerivadas 4.0 España
Coleccións
Metadatos
Mostrar o rexistro completo do ítemTítulo
Recomendación de canciones y listas de reproducción sobre SpotifyAutor(es)
Director(es)
Parapar López, JavierValcarce Silva, Daniel
Data
2020Centro/Dpto/Entidade
Enxeñaría informática, Grao enDescrición
Traballo fin de grao (UDC.FIC). Enxeñaría informática. Curso 2019/2020Resumo
[Resumen]
En este proyecto se ha elaborado una aplicación web de recomendación de música sobre Spotify
que cualquier usuario con una cuenta en la plataforma podrá utilizar para obtener recomendaciones
de canciones y listas que añadir a su cuenta.
La aplicación permite explorar las diversas listas de reproducción del usuario, así como
sus reproducciones recientes. Cuando un usuario acceda a una página, podrá encontrar instantáneamente
música recomendada dependiendo de lo que esté explorando, pudiendo ser
en el perfil del usuario en su conjunto, en las canciones que ha escuchado recientemente, o
recomendar una canción para una lista de reproducción en concreto, entre otras. El usuario
podrá añadir cualquiera de las recomendaciones a su cuenta.
Las recomendaciones se basan en una búsqueda de vecinos, para ello, se utiliza a-NN,
una variación de k-NN, un algoritmo de aprendizaje basado en instancias. En el núcleo del
sistema se considerará como entrada una lista de reproducción, y su salida serán otras listas
de reproducción vecinas. Para recomendar canciones, se hará una suma ponderada de las
canciones que contienen las listas de reproducción vecinas.
La aplicación se ha desarrollado como dos artefactos. Uno utilizando el lenguaje de programación
Python que contiene el motor del sistema de recomendaciones y expone una serie
de servicios internos de recomendación a través de un frontal REST. El otro artefacto será
una aplicación web desarrollada en JAVA utilizando el framework Spring, que contendrá la
interfaz de usuario y estará encargada de orquestar las comunicaciones con el otro artefacto,
el API de Spotify y la base de datos.
Los componentes de la aplicación se han identificado como contenedores independientes
y se han desplegado en un clúster Kubernetes en la nube de Microsoft Azure. [Abstract]
In this project, it has been made a web application of music recommendation over Spotify,
which any user with a registered account on the referenced platform could use to obtain
recommendations of songs and playlists to add them to the account.
The application allows exploring the different user’s playlists, as well as their recently
played songs. When a user access to a different view, he’ll find instantly recommended music
to fit what he is exploring, could be the user’s profile, recently’songs, or finding a single song
to match an existing playlist, among other. The users add any of these recommendations to
their account.
Recommendations are based on a neighbor search, to achieve this, a-NN is used, a k-NN
variation, an instance based machine learning algorithm. A playlist will be considered as an
input on the system core, and the output will be another neighbour playlists. To recommend
songs, a weighted sum of the neighbour playlists songs will be done.
The application has ben developed as two artifacts. One is using the Python programming
language, which contains the recommendation system engine and exposes some recommendation
services through a REST interface. The otherone artifact will be a Java web application,
using the Spring framework, which will contain the user interface and will be the one who
coordinates the comunications with the python artifact, the Spotify API and the database.
The application components have been identified as independent containers whose has
been deployed in a Kubernetes cluster in the Microsoft Azure cloud.
Palabras chave
Recomendaciones
Música
Aplicación web
Java
Lista de reproducción
Spring framework
Scrum
Python
Vecinos
Docker
Recommendations
Music
Web application
Playlist
Neighbors
Música
Aplicación web
Java
Lista de reproducción
Spring framework
Scrum
Python
Vecinos
Docker
Recommendations
Music
Web application
Playlist
Neighbors
Dereitos
Atribución-NoComercial-SinDerivadas 4.0 España