def read_user_data_from_ratings(data_file):
    data = Data()
    format = {'col':0, 'row':1, 'value':2, 'ids': 'int'}    
    data.load(dat_file, sep='::', format=format)
    
    userdict = {}
    for d in data.get():
        if d[2] in userdict:
            user = userdict[d[2]] 
        else:
            user = User(d[2]) 
        
        user.add_item(d[1],d[0])
        userdict[d[2]] = user
    return userdict
def read_user_data_from_ratings(data_file):
    data = Data()
    format = {'col': 0, 'row': 1, 'value': 2, 'ids': 'int'}
    data.load(dat_file, sep='::', format=format)

    userdict = {}
    for d in data.get():
        if d[2] in userdict:
            user = userdict[d[2]]
        else:
            user = User(d[2])

        user.add_item(d[1], d[0])
        userdict[d[2]] = user
    return userdict
Exemple #3
0
def setup():
    global user, items, data
    user = User(USERID)
    items = _read_items(os.path.join(MOVIELENS_DATA_PATH, 'movies.dat'))
    data = Data()
    data.load(os.path.join(MOVIELENS_DATA_PATH, 'ratings.dat'),
              sep='::',
              format={
                  'col': 0,
                  'row': 1,
                  'value': 2,
                  'ids': int
              })
def test_user_add_item():
    u = User(USERID)
    item = Item(ARTISTID)
    item.add_data({'name': ARTISTID})
    u.add_item(item, PLAYS)
    assert_equal(str(u.get_items()), '[(u2, 25)]')
def test_user_build():
    u = User(USERID)
    assert_equal(u.get_id(), USERID)
Exemple #6
0
def test_user_add_item():
    u = User(USERID)
    item = Item(ARTISTID)
    item.add_data({'name': ARTISTID})
    u.add_item(item, PLAYS)
    assert_equal(str(u.get_items()), '[(u2, 25)]')
Exemple #7
0
def test_user_build():
    u = User(USERID)
    assert_equal(u.get_id(), USERID)
Exemple #8
0
A minimalistic command line recommender system using
SVD decomposistion.
"""
    
    #Create and train model
    svd = create_svd_model(ratings)
    
    N = 10000
    choice = 5
    while True:
        
        #recommend
        if choice == 5:
            user_id = str(raw_input("Please enter a username: "))
            user = User(user_id)
        try:
            results = svd.recommend(user_id, is_row=False, n=N)
        except KeyError:
            results = []
        if choice == 4:  # See ratings
            see_ratings(user_id, movies, ratings)
        if choice == 1:  # Rate movies
            ratings = random_rating(user_id, movies, ratings)
            svd = create_svd_model(ratings)  # Update model
            try:
                results = svd.recommend(user_id, is_row=False, n=N)
            except KeyError:
                results = []
        if choice == 2:  # Filter by genre
            results = select_genre(results, movies)
Exemple #9
0
itemId = 0
item = Item(itemId)
item.add_data({'name': 'project0',
               'popularity': 0.5,
               'tags': [0, 0, 1]
               })

item2 = Item(1)
item2.add_data({'name': 'project1',
               'popularity': 0.5,
               'tags': [0, 0, 1]
               })

# create a user
userId = 0
user = User(userId)

# link an item with a user
rating = 1
user.add_item(itemId, rating)

data = Data()
data.add_tuple((rating, itemId, userId))
data.add_tuple((10, 1, 2))


svd = SVD()
svd.set_data(data)
svd.compute(k=100, min_values=0, pre_normalize=None, mean_center=True, post_normalize=True)

svd.similarity(0, 0)