个性化视频推荐系统的设计与实现
摘 要
各种视频网站以及小视频的出现,自然的会产生大量的视频数据,产生的问题是:用户怎么从这么多的视频数据里面选择自己喜欢的视频?我们用推荐系统来解决此问题。
本设计研究的是个性化视频推荐系统,主要是收集用户的爱好,以及web的操作日志,例如用户的观看记录,观看后对视频的评分等信息。然后通过基于用户的协同过滤算法给用户推荐出符合用户的视频。
系统分为以下几个模块,用户模块:用户的相关操作;日志模块:收集用户在界面的操作日志;推荐模块:按照协同过滤算法给用户推荐视频;管理模块:对视频和用户的管理,例如添加新视频,修改视频相关操作;定时任务模块:计算推荐数据和执行相关的定时任务。各个模块通过共享数据库来衔接。系统前台使用Bootstrap,jQuery,后台使用Python语言,Django web框架,采用Oracle数据库来开发。
关键词: 视频 协同过滤 模块 Django 推荐系统
The design and implementation of personalized video recommendation system
ABSTRACT
The emergence of various video websites and small videos naturally generates a large amount of video data. The question arises problem is: how do users choose their favorite videos from so many video data? We use the recommendation system to solve this problem.
This design studies the personalized video recommendation system,which mainly collects users’ hobbies, as well as the web operation log, such as the user’s viewing records, and the ratings after watching.Then the adaptive videos are recommended to users through a user-based collaborative filtering algorithm.
The system is divided into the following modules, user module: user-related operations; log module: collecting user's operation log in interface; recommendation module: recommending videos to users according to collaborative filtering algorithm; management module: management of videos and users, such as adding new video, modify video-related operation; timing task module: calculate recommended data and perform related timing tasks. Each module is connected by a shared database. The system front-end uses Bootstrap, jQuery, back-end Python language, Django web framework, and adopts Oracle database to develop.
Key Words: Video Collaborative filtering Module Django Recommendation system.
目 录
第一章 绪论 1
1.1 研究背景和意义 1
1.2 国内外发展状况 2
1.2.1 推荐系统国外研究现状 2
1.2.2 推荐系统国内研究现状 2
1.3 文章的组织结构 3
1.4 本章小结 4
第二章 个性化视频推荐系统相关技术 5
2.1 推荐系统开发环境及技术 5
2.1.1 PyCharm简介 5
2.1.2 Django简介 6
2.2 推荐系统架构 6
2.3 推荐算法分析 7
2.3.1 基于内容的推荐 7
2.3.2 基于协同的推荐 7
2.3.3 关联规则推荐 8
2.3.4 组合推荐 8
2.4 本章小结 8
第三章 系统需求分析和设计 9
3.1 系统需求分析 9
3.1.1 系统结构需求分析 9
3.1.2 系统功能的需求 9
3.2 系统的设计 9
3.2.1 系统的框架设计 9
3.2.2 系统模块的划分 10
3.2.3 用户模块的设计 11
3.2.4 推荐模块的设计 12
3.2.5 日志模块的设计 13
3.2.6 管理员模块的设计 13
3.2.7 定时任务模块的设计 13
3.3 数据库的设计 15
3.3.1 表的详细设计 15
3.3.2 E-R图 17
3.4 本章小结 18
第四章 视频推荐系统的实现 19
4.1 系统实现 19
4.1.1 Model层的开发 19
4.1.2 View层的开发 21
4.1.3 Template层的开发 21
4.2 功能实现 21
4.2.1 用户模块的实现 22
4.2.2 推荐模块的实现 26
4.2.3 日志模块的实现 27
4.2.4 管理模块的实现 27
4.2.5 定时任务模块的实现 30
4.3 本章小结 31
第五章 个性化视频推荐系统测试 32
5.1 单元测试 32
5.1.1 用户界面测试 32
5.1.2 系统基本功能测试 32
5.1.3 系统推荐功能测试 33
5.1.4 管理功能测试 33
5.2 兼容性测试 34
5.3 本章小结 34
第六章 总结与展望 35
参考文献 36
致 谢 38