Ошибка неверного синтаксиса: totals.setdefault (item, 0) total [item] + = rating [other] [item] * sim - PullRequest
0 голосов
/ 28 ноября 2018

Код:

def get_recommendations(rating, user, similarity=pearson):
    totals={}
    simSums={}
    for other in rating:
        #don't compare me to myself
        if other==user: continue
        sim=similarity(rating,user,other)

        #Ignore scores of zero or lower
        if sim<=0: continue
        for item in rating[other]:

            #Only score movies I haven't seen yet
            if item not in rating[user] or rating[user][item]==0:
                #Similarity * score
                totals.setdefault(item,0) totals[item]+=rating[other][item]*sim
                #Sum of Similarities
                simSums.setdefault(item,0)
                simSums[item]+=sim

        #Create the normalised list
        rankings=[(total/simSums[item],item) for item, total in totals.items()]

        #Return the sorted list
        rankings.sort()
        rankings.reverse()
        return rankings

Я пытаюсь найти невидимые фильмы для пользователя, а затем создать рейтинг для этих фильмов, а затем ранжировать их.Тем не менее, мой результат приносит следующую ошибку.

Когда я удаляю «total [item] + = rating [other] [item] * sim», код работает, однако рейтинги выводятся как 0, а не как накопленный рейтинг.

Может кто-нибудь помочь, пожалуйста?

...