"Music Recommendation using Collaborative Filtering with Similarity Fusion"
Richard Adams - Masters Project - 8th May, 2007 (pdf)
The project is now over and so I don't need any more testers. Thanks for everyone who took park in testing for me!
This was the domain used as part of my final year Masters degree project on music recommendation. It is no longer active or being updated, it's just here for historical purposes.
There were 3 main areas of the project,
- A server-side PHP backend which is responsible for collecting listening data from users and putting the information into the main database. An API was made available so others could interface with this backend in their own applications.
- A client-side Java frontend which can hook into iTunes and send data to the PHP backend to inform it of when you're listening to music and the details of the track being listened to.
- A client-side Java application which presents a GUI to the user to display their recommendation information. This also contained the visualizer, which was a graph display of how the current user is linked to other users and tracks based on similarity, in an attempt to show why a recommendation had been made. The graph display made use of the JUNG graphing framework for Java.
There are some files which are still available, however some may still require a tester login.
- AppServer 0.0.1 Documentation The documentation for the API provided to people who wanted to write their own collection applications.
- iTunesCollect 0.0.1 - AppleScript This is a sample file I wrote to demonstrate how users could write their own scripts to interface with the PHP backend using my API. I don't own a Mac or have access to anything which can validate AppleScript, so this was just written based on the documentation and is untested.
- iTunesCollect 0.0.8 - Java (source) This is the application which could be run on a Windows machine and would collect listening information from iTunes and send it to the backend of the application. It's Windows only as I make use of the COM interface to get the data from iTunes.
- Amarok Collect - by Andrew Wilkinson An example of how others wrote their own scripts to use the API. This is an Amarok plugin which will collect listening information for users of that media player. It was written by Andrew Wilkinson.
- Recommender/Visualizer v2 - Java This is the latest version of the recommendation and visualization application, the one which my results were finally taken from.
Here's some screenshots from the project, click to see bigger versions.