具体思路如下:
我们认为排名靠近的用户的相似度高,因此会为目标用户推荐与其排名靠近的用户做过的题。
即A,B两个用户是排名靠近的两个用户,对A推荐的题目则是B对A的差集(阴影部分)
用数据库语句实现如下:
user_id 为用户名
rec_list为排名靠近的用户
number 为 推荐题目
solution 为 用户提交记录(包含用户名,题目名称)
def produce_rec_sql(rec_list, user_id, number):
sql1 = '''
drop view if exists union_view ;
create view union_view as(
SELECT distinct(problem_id) as d