先行条件:在网站http://oreilly.com/catalog/9780596529321下载函数库
调用函数:get_popular(获得一组近期张贴的热门链接) get_urlposts(返回给定URL的所有张贴记录) get_userposts(返回给定用户的所有张贴记录)
目的: 寻找一组近期提交过的某一热门链接,且链接附带指定标签(tag)的用户
from pydelicious import get_popular,get_urlposts,get_userposts
def initializeUserDict(tag,count=5):
user_dict={}
#获取前count个最受欢迎的链接张贴记录
for p1 in get_popular(tag=tag)[0:count]:
#查找所有张贴该链接的用户
for p2 in get_urlposts(p1['href']):
user=p2['user']
user_dict[user]={}
return user_dict
结果:得到一个包含若干用户数据的字典
在字典中用户只存在两种可能的评价值:0(用户没有粘贴此链接)1(用户粘贴了此链接),现在利用API建立一个填充所有用户评价值的函数
def fillItems(user_dict):
+ all_items={}
+ #查找所有用户都提交过的链接
+ for user in user_dict:
+ for i in range(3):
+ try:
+ posts=get_urlposts(users)
+ break
+ except:
+ print("Failed user"+user+",retrying")
+ time.sleep(5)
+ for post in posts:
+ url=post['href']
+ user_dict[user][url]=1.0
+ all_items[urls]=1
+ # 用0填充缺失的项
+ for ratings in user_dict.values():
+ for item in all_items:
+ if item not in ratings:
ratings[item]=0.0
可以利用此函数构造一个数据集,通过用户张贴的链接反应用户的喜好