Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的相似性(3+;)_Python - Fatal编程技术网

python中的相似性(3+;)

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] =

我已经用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] = 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、电影名称和收视率,我想用曼哈顿距离来找出两个用户之间的差异。让我给你我练习的所有信息。