说明
这是基于商品项的协同过滤方法, 可以作为 一路的召回方式吧, 可以看到这里基本分为四个步骤吧
1.获取所有每个 用户产生过交互的商品集合
2.针对与用户产生交互的商品 之间的 共现情况 (计算共现矩阵,用于衡量商品项之间的相似度)
3.进行商品之间 相似度的计算,使用下面的式子吧
sim_score = co_time / (
math.sqrt(item_user_click_time[itemid_i]) * math.sqrt(item_user_click_time[itemid_j]))
4.针对每个用户,按照以往的感兴趣点击商品情况,找到最感兴趣的n个 ,每个去寻找 最接近的k个,作为每个用户的候选推荐使用。
代码
# -*- coding: utf-8 -*-
import pandas as pd
import math
import operator
import warnings
warnings.filterwarnings('ignore')
def get_user_click(path):
'''
获得每个userid行为过的movieid,构造成字典的形式。
get user click list
Args:
rating_file:input file
Return:
dict,key:userid,value:[itemid1,itemid2,..]
'''
# if not os.path.