$34
In this assignment, you are asked to design and implement a social network-based recommender system for last.fm.
You are given the following dataset (Reference: http://www.lastfm.com):
Dataset: data.zip file contains social networking, tagging, and music artist listening information from a set of 2K users from Last.fm online music system. http://www.last.fm
There are 1892 users and 17632 artists
There are 12717 user-friend relations
There are 92834 user-listened artist relations [user, artist, listeningCount]
Files:
artists.dat: This file contains information about music artists listened and tagged by the users. url and pictureURL will not be used in the assignment.
File format: id \t name \t url \t pictureURL
user_artists.dat: This file contains the artists listened by each user. It also provides a listening count for each [user, artist] pair.
File format: userID \t artistID \t weight
user_friends.dat: These files contain the friend relations between users in the database. File format: userID \t friendID
1
CS 401 Algorithms Spring
TODO:
The recommender system will provide the following functionalities:
listFriends(int user): prints the list of friends of the given user
commonFriends(int user1, int user2): prints the user1’s friends in common with user2
listArtists(int user1, int user2): prints the list of artists listened by both users
listTop10(): prints the list of top 10 most popular artists listened by all users
recommend10(int user): recommends 10 most popular artists listened by the given user and his/her friends.
Submission:
Please submit the following deliverables as a single zip file to CANVAS.
Source code for Recommender system
A Class Diagram summarizing your design
Junit Test cases for testing
2