An empathetic music recommendation system pipeline
Project description
Introduction
This project is aim to create a sandbox for developers to develop and experiment with music recommendation engines. To accomplish this goal, the MetaBrainz Foundation has created and hosted a number of data-sets that can be accessed as a part of this project.
You can see some of the data sets that are hosted here:
http://bono.metabrainz.org:8000
The AcousticBrainz project hosts the Annoy indexes that allows you to find recordings that have similar characteristics given an initial recording.
The ListenBrainz project offers a number of data sets:
- Collaborative filtered recordings that suggest what recordings a user should listen to based on their previous listening habits.
- User statistics that were derived from users recent listening habits.
MusicBrainz provides:
- Related artists -- which artists are related to other artists.
MessyBrainz provides:
- MessyBrainz -> MusicBrainz mapping for mapping listens with MSIDs to MusicBrainz MBIDs
Installation
Linux and Mac
virtualenv -p python3 .ve
source .ve/bin/activate
pip3 install -r requirements.txt
If you plan to do local development or run tests, you'll need to:
pip3 install -e .
Windows
virtualenv -p python3 .ve
.ve\Scripts\activate.bat
pip3 install -r requirements.txt
Docker
On non Linux operating systems installing python modules can be a bit of a pain. For that a thin-shell docker container can be created. Note that docker is not required, but helpful if you're not on Linux.
To use this container, you first need to build the container and start it:
./run-docker.sh build
./run-docker.sh up
Now you can run any of the scripts via run-docker.sh:
./run-docker.sh recommend_recordings.py rob similar
When you are done with the container, take it down with:
./run-docker.sh down
To run tests:
./run-docker.sh test
sample use
Linux
./recommended_recordings.py <user name> <artist type [top/similar]>
open OpenPost.html
Windows
./recommended_recordings.py <user name> <artist type [top/similar]>
OpenPost.html
Docker
docker build -t metabrainz/troi-hoster .
docker run --rm -p 8000:80 --name troi-hoster metabrainz/troi-hoster
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.