创新实训(10)——模拟用户浏览数据

数据清洗完成之后,可以来构建推荐系统了,但是构建推荐系统的前提是要有用户数据,没有用户数据,是没有办法基于协同过滤来进行文章的推荐的,所以我需要用批量注册一些用户,然后用脚本模拟用户进行文章的浏览。

批量注册用户

#伪造2000个用户信息

for i in range(0,2000):
    name = "test_"+str(i)
    sql = "insert into user (name,password,email,is_admin) value ('{}','{}','{}',0)".format(name,"0000",name+"@gmail.com")
    cursor.execute(sql)
    db.commit()

在这里插入图片描述

构造用户的浏览行为

模拟用户随机浏览行为,遍历用户列表,给每个用户一个随机的浏览次数,然后让用户岁久浏览文章,插入数据库之中。


import time
import random
#用户随机浏览文章
import random
fr = open("article.csv","r")
datas = fr.readlines()
article_id_list  = []
for i in datas:
    article_id_list.append(i.split(",")[0])
fr2 = open("test_user.csv","r")
user_list = fr2.readlines()
user_id_list = []
for i in user_list:
    user_id_list.append(i.split(",")[0])
user_id_list = user_id_list[1:]
article_id_list = article_id_list[1:]
for user_id in user_id_list:
    brower_count = random.randint(10, 200)  # 给每个用户随机一个浏览次数 10~200
    for j in range(0, brower_count):
        brower_article_id = random.randint(165, 2036)  # 每次随机选一篇文章
        now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())  # 当前时间
        # 插入用户的浏览记录
        sql = "insert into user_browsing_history (user_id,article_id,browse_time) values ('{}','{}','{}')".format(
            user_id, brower_article_id, now)
        cursor.execute(sql)
        db.commit()
        # 将此文章的阅读量+1
        sql = "update article set rating_count = rating_count + 1 where id = {}".format(brower_article_id)
        cursor.execute(sql)
        db.commit()
    print("用户", user_id, "浏览了", brower_count, "篇文章")

在这里插入图片描述

共构造了二十多万条浏览记录。

有了用户浏览记录,明天开始踩坑推荐系统了

猜你喜欢

转载自blog.csdn.net/baidu_41871794/article/details/106699149
今日推荐