Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.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字典读取错误_Python_Recommender Systems - Fatal编程技术网

使用索引运算符时Python字典读取错误

使用索引运算符时Python字典读取错误,python,recommender-systems,Python,Recommender Systems,最初,我尝试将数据集读入字典 with open("msong.csv") as f: reader = csv.DictReader(f) data = [r for r in reader] 字典包含如下数据: 我正在使用该功能根据用户喜好推荐歌曲 在输入时,我得到了一个错误 recommend(data[0][user_id],4,euclidean_similarity) 错误:推荐(数据[0][user\u id],4,欧几里德相似性)数据[0][user\u id] 您使

最初,我尝试将数据集读入字典

with open("msong.csv") as f:
reader = csv.DictReader(f)
data = [r for r in reader]

字典包含如下数据:
我正在使用该功能根据用户喜好推荐歌曲



在输入时,我得到了一个错误

recommend(data[0][user_id],4,euclidean_similarity)

错误:推荐(数据[0][user\u id],4,欧几里德相似性)

数据[0][user\u id]

您使用的不是
'user\u id'
字符串作为键,而是
user\u id
变量,如果我正确理解您的意图,该变量可能未设置

def recommend(person, bound, similarity=pearson_similarity):
    scores = [(similarity(person, other), other) for other in data if other != person]

    scores.sort()
    scores.reverse()
    scores = scores[0:bound]

    print (scores)

    recomms = {}

    for sim, other in scores:
        ranked = data[other]

        for itm in ranked:
            if itm not in data[person]:
                weight = sim * ranked[itm]

                if itm in recomms:
                    s, weights = recomms[itm]
                    recomms[itm] = (s + sim, weights + [weight])
                else:
                    recomms[itm] = (sim, [weight])

    for r in recomms:
        sim, item = recomms[r]
        recomms[r] = sum(item) / sim

    return recomms
recommend(data[0][user_id],4,euclidean_similarity)