这里我们定义一个函数 distance_user_item(user, item),并采用余弦相似度来衡量用户与物品的距离。假设我们已经得到了前文所述的 user_pre,user_pre采用字典相似来保存用户的偏好信息。
def distance_user_item(user, item):
dist1 = sum(np.array(user_pre[user]) * np.array(item_feature[item]))
dist2 = sum( [ math.pow(x, 2) for x in user_pre[user] ] )
dist3 = sum( [ math.pow(x, 2) for x in item_feature[item] ] )
distance = dist1 / (math.sqrt(dist2) * math.sqrt(dist3))
return distance
定义上面的函数需要 import numpy as np 以及 import math 。