首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python与集体智能:第2章:推荐项目

Python与集体智能:第2章:推荐项目
EN

Stack Overflow用户
提问于 2012-03-14 15:28:38
回答 1查看 437关注 0票数 0

我正在学习集体智能是如何工作的,我正在练习做第二章中的示例recommendations.py问题。这里是链接:

http://cdn.jampad.net/Library/collectiveintelligence/#calibre_link-201

当我复制并粘贴这段代码时:

代码语言:javascript
复制
# Gets recommendations for a person by using a weighted average
# of every other user's rankings
def getRecommendations(prefs,person,similarity=sim_pearson):
  totals={}
  simSums={}
  for other in prefs:
# don't compare me to myself
if other==person: continue
sim=similarity(prefs,person,other)

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

  # only score movies I haven't seen yet
  if item not in prefs[person] or prefs[person][item]==0:
    # Similarity * Score
    totals.setdefault(item,0)totals[item]+=prefs[other][item]*sim
    # Sum of similarities
    simSums.setdefault(item,0)
    simSums[item]+=sim

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

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

添加到我的recommendations.py文件中,当我重新加载该文件时,我收到一个语法错误。

代码语言:javascript
复制
>>> reload(recommendations)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "recommendations.py", line 100
  totals.setdefault(item,0)totals[item]+=prefs[other][item]*sim
                              ^

SyntaxError: invalid syntax

这就是我收到的信息。我不确定我是否正确地复制和粘贴了代码,或者给定的代码行是否错误。

EN

回答 1

Stack Overflow用户

发布于 2012-03-14 15:31:05

这..。

代码语言:javascript
复制
totals.setdefault(item,0)totals[item]+=prefs[other][item]*sim

应该是两行:

代码语言:javascript
复制
totals.setdefault(item,0)
totals[item]+=prefs[other][item]*sim
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9697569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档