推荐时过滤掉该用户点击过的物品序列

来源:3-7 usercf基础部分代码实战-下

Mc铭橙

2018-09-29 11:23

'''python
for user, item_list in user_click.items():
    temp_dict = {}
    for itemid in item_list:
        temp_dict.setdefault(itemid, 1)
    recom_result.setdefault(user, {})
'''
大家好,不是很明白,temp_dict是怎么在推荐时过滤掉该用户点击过的物品序列?


写回答 关注

2回答

  • David
    2018-10-02 09:41:00

    您好,是在recom_result 装载之前需要判断一下itemid_j 是否是tmp_dict的key。谢谢您的问题。原视频代码中好像这个地方有点问题。

  • 会边缘ob的码农
    2020-09-26 19:29:54

    可以将

    for itemid_j in user_click[userid_j][:item_num]:
        recom_result[user].setdefault(itemid_j, sim_score)

    修改成

    num_choose = 0
    for itemid_j in user_click[userid_j]:
        if itemid_j not in tmp_dict:
            recom_result[user].setdefault(itemid_j, sim_score)
            num_choose += 1
            if num_choose >= item_num:
                break

    这样tmp_dict就能发挥作用了


个性化推荐算法实战入门必修课

带您初窥个性化推荐算法落地实战的门径

23507 学习 · 67 问题

查看课程

相似问题