IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 基于卷积神经网络的电影推荐系统 -> 正文阅读

[人工智能]基于卷积神经网络的电影推荐系统

如今协同过滤等传统推荐算法被广泛用于推荐,但也存在冷启动、矩阵稀疏等问题,本项目用深度学习来实现电影推荐,核心算法主要参考了https://blog.csdn.net/chengcheng1394/article/details/78820529,基于tensorflow和卷积神级网络来实现个性化电影推荐。web端用django来进行开发。

实现效果
1.算法运行结果
(1)输入电影,推荐相似的电影以及看过的人还喜欢的电影
在这里插入图片描述
在这里插入图片描述
(2)输入用户信息,推荐其喜爱的电影
在这里插入图片描述
2.系统界面
登录页面
在这里插入图片描述
电影推荐
在这里插入图片描述
在这里插入图片描述
主要代码
网络模型代码这里就不放了,可以参考https://blog.csdn.net/chengcheng1394/article/details/78820529
说说django的一些主要代码
urls.py配置路由
在这里插入图片描述
settings.py
配置数据库
在这里插入图片描述
登录功能

def login(request):
    if request.method == 'GET':
        return render(request, 'login.html')
    else:
        #用户POST提交的数据
        u = request.POST.get('user')
        p = request.POST.get('pwd')
        #把账号密码写死了
        # if u == 'cxx' and p == '123':
        #     #登录成功
        #     return redirect('/mess/')
        #从数据库中判断账号密码是否正确
        if u and p:
            c = User.objects.filter(username=u,password=p).count()
            if c >= 1:
                #获取当前登录的用户id
                cur_id = User.objects.get(username=u, password=p).id
                return redirect('/mess/?user_id='+str(cur_id))
            else:
                return render(request, 'login.html', {'msg': '账号密码错误'})
        else:
            #登录失败
            return render(request, 'login.html', {'msg': '请输入正确的账号密码'})

推荐喜欢的电影

def like(request):
    user_id = request.GET.get('user_id')
    #获取当前用户
    my_user = models.User.objects.get(id=user_id)

    global global_model
    model = global_model
    print('-------正在推荐--------', user_id)

    list_like_movies_names, list_like_movies_ids = model.recommend_your_movie(int(user_id))
    print('你喜欢的电影:', list_like_movies_names)
    print('你喜欢的电影id:', list_like_movies_ids)

    # 你喜欢的电影
    list_dict_like = []
    for i in list_like_movies_names[:6]:
        list_dict_like.append(utils.movie_dic(i))
    for i in range(len(list_dict_like)):
        # list_dict_like[i]['movie_id'] = list_like_movies_ids[i]
        list_dict_like[i]['movie_id'] = int(list_like_movies_ids[i])    #把字典中的id转int类型,便于前端if判断
    print('相似电影列表:', list_dict_like)

    context = {}
    context['list_dict_like'] = list_dict_like
    context['my_user'] = my_user    #返回当前用户,在前端页面显示当前登陆的用户名

    return render(request, 'like.html', context)

推荐同类型的电影和看过的人喜欢的电影

def index(request):
    #获取电影id
    movie_id = request.GET.get('movie_id')

    global global_model
    model = global_model
    print('-------正在推荐--------', movie_id)

    #choice_movie_name 选择的电影名称
    #list_same_movies_names 相似的电影名称
    #list_pepole_like_movies_names 喜欢这个电影的人还喜欢的电影名称
    #list_same_movies_ids 相似的电影id
    #list_pepole_like_movies_ids 喜欢这个电影的人还喜欢的电影id
    #和recommend_by_movie方法的返回值一一对应
    choice_movie_name, list_same_movies_names, list_pepole_like_movies_names, list_same_movies_ids, list_pepole_like_movies_ids = model.recommend_by_movie(
        int(movie_id))

    print('选择电影:', choice_movie_name)
    print('相似的电影:', list_same_movies_names)
    print('喜欢这个电影的人还喜欢:', list_pepole_like_movies_names)
    print('相似的电影id:', list_same_movies_ids)
    print('喜欢这个电影的人还喜欢id:', list_pepole_like_movies_ids)

    #选择的电影
    list_dict_choice = []
    for i in choice_movie_name:
        list_dict_choice.append(utils.movie_dic(i))
    list_dict_choice[0]['movie_id'] = movie_id
    print('选择电影列表:', list_dict_choice)

    # 相似的电影
    list_dict_same = []
    # for i in list_same_movies_names[:3]:    #最多显示3部电影
    for i in list_same_movies_names:
        list_dict_same.append(utils.movie_dic(i))
    for i in range(len(list_dict_same)):
        # list_dict_same[i]['movie_id'] = list_same_movies_ids[i]
        list_dict_same[i]['movie_id'] = int(list_same_movies_ids[i])    #把字典中的id转int类型,便于前端if判断
    print('相似电影列表:', list_dict_same)


    # 看过的用户还喜欢的电影
    list_dict_otherlike = []
    for i in list_pepole_like_movies_names:
        list_dict_otherlike.append(utils.movie_dic(i))
    for i in range(len(list_dict_otherlike)):
        # list_dict_otherlike[i]['movie_id'] = list_pepole_like_movies_ids[i]
        list_dict_otherlike[i]['movie_id'] = int(list_pepole_like_movies_ids[i])    #把字典中的id转int类型,便于前端if判断
    print('喜欢这个电影的人还喜欢列表:', list_dict_otherlike)
   

    context = {}
    context['list_dict_choice'] = list_dict_choice
    context['list_dict_same'] = list_dict_same
    context['list_dict_otherlike'] = list_dict_otherlike


    return render(request, 'index.html', context)
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-11 12:42:26  更:2021-11-11 12:44:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 6:34:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码