python中的相似性(3+;)
我已经用python创建了一个电影推荐系统,现在我正在尝试 查找两个用户之间的曼哈顿距离 因此,我从2个文件上传了必要的信息(用户ID、电影标题和收视率),代码如下:python中的相似性(3+;),python,Python,我已经用python创建了一个电影推荐系统,现在我正在尝试 查找两个用户之间的曼哈顿距离 因此,我从2个文件上传了必要的信息(用户ID、电影标题和收视率),代码如下: def LoadTheData(): movies={} user_pref={} for line in open('u.item'): (movies_id, movie_title) = line.split('|')[0:2] movies[movies_id] =
def LoadTheData():
movies={}
user_pref={}
for line in open('u.item'):
(movies_id, movie_title) = line.split('|')[0:2]
movies[movies_id] = movie_title
for line in open('u.data'):
(user_id, movie_id, rating) = line.split('\t')[0:3]
user_pref.setdefault(user_id,{})
user_pref[user_id][movies[movie_id] ] = float(rating)
return user_pref
User_preference=LoadTheData()
print(User_preference)
因此,我创建了User_preference dictionary,其中包含来自上述两个文件的用户ID、电影和评级
User_preference = {'196': {'Kolya (1996)': 3.0, 'Mrs. Doubtfire (1993)':
4.0, "Muriel's Wedding (1994)": 4.0, 'Shall We Dance? (1996)': 3.0, 'Stand
by Me (1986)': 5.0,
现在我想计算两个用户之间的曼哈顿差异,我的公式是:
def manhattan_distance(User_preference,user1,user2):
for user1, user2 in User_preference(user1, user2):
return sqrt(sum(pow(user1-user2,2)))
print(manhattan_distance(User_preference,'100','206'))
但是,我得到了一个错误。有人知道我该怎么写吗
错误是无法在print语句中调用“dict”对象。可能与那些未在倒数第二行关闭的偏执有关
def manhattan_distance(User_preference,user1,user2):
for user1, user2 in user_preference(user1, user2):
return sqrt(sum(pow(user1-user2,2))) #<---here
print(manhattan_distance(User_preference,'100','206'))
def曼哈顿距离(用户首选项、用户1、用户2):
对于用户_首选项中的用户1、用户2(用户1、用户2):
return sqrt(sum(pow(user1-user2,2))#可能与那些在倒数第二行没有关闭的偏执有关
def manhattan_distance(User_preference,user1,user2):
for user1, user2 in user_preference(user1, user2):
return sqrt(sum(pow(user1-user2,2))) #<---here
print(manhattan_distance(User_preference,'100','206'))
def曼哈顿距离(用户首选项、用户1、用户2):
对于用户_首选项中的用户1、用户2(用户1、用户2):
返回sqrt(sum(pow(user1-user2,2))#什么错误?没有足够的代码让我们猜测您可能会遇到什么错误。“dict”对象不可调用。您希望用户首选项(user1、user2)
做什么?(我假设大写字母的差异是问题中的打字错误。)假设user1
应该是user\u首选项['100']
(同样对于user2
),你也不能从另一个中减去dict
。请不要通过破坏你的帖子为其他人做更多的工作。通过在Stack Exchange(SE)网络上发布,您已经在a下授予SE分发内容的不可撤销权利(即,无论您未来的选择如何)。根据SE政策,分发非故意破坏版本。因此,任何故意破坏行为都将恢复原状。请参阅:。如果允许删除,在帖子下方左侧有一个“删除”按钮,但它只在浏览器中,而不是在移动应用程序中。什么错误?没有足够的代码让我们猜测您可能会遇到什么错误。“dict”对象不可调用。您希望用户首选项(user1、user2)
做什么?(我假设大写字母的差异是问题中的打字错误。)假设user1
应该是user\u首选项['100']
(同样对于user2
),你也不能从另一个中减去dict
。请不要通过破坏你的帖子为其他人做更多的工作。通过在Stack Exchange(SE)网络上发布,您已经在a下授予SE分发内容的不可撤销权利(即,无论您未来的选择如何)。根据SE政策,分发非故意破坏版本。因此,任何故意破坏行为都将恢复原状。请参阅:。如果允许删除,在帖子下方左侧有一个“删除”按钮,但它仅在浏览器中,而不是移动应用程序中。你是对的,但我知道我还有一个。“dict”对象是不可调用的。很抱歉,如果没有更多的代码,就没有办法知道。请给我一点时间来更新它。我更新了它。事实上,我有一本字典,上面有用户ID、电影名称和收视率,我想用曼哈顿距离来找出两个用户之间的差异。让我告诉你我练习的所有信息。你是对的,但我还有一个。“dict”对象是不可调用的。很抱歉,如果没有更多的代码,就没有办法知道。请给我一点时间来更新它。我更新了它。实际上,我有一本字典,里面有用户ID、电影名称和收视率,我想用曼哈顿距离来找出两个用户之间的差异。让我给你我练习的所有信息。