Skip to content

基于协同过滤算法的个性化新闻推荐系统的设计与实现(采用Java语言的SSM框架实现基于用户、物品的协同过滤推荐算法)

Notifications You must be signed in to change notification settings

songwo-153/CollaborativeFilteringNewsRecommendSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 

Repository files navigation

基于协同过滤推荐算法的个性化新闻推荐系统

Collaborative Filtering News Recommend System

基于协同过滤算法的个性化新闻推荐系统的设计与实现(采用Java语言的SSM框架实现基于用户和物品的协同过滤推荐算法)实现了UserCF和ItemCF的协同过滤推荐算法, Java语言(SSM框架)实现协同过滤算法的个性化新闻推荐系统,使用基于用户和物品的协同过滤推荐算法通过爬虫爬取环球日报新闻实现实时计算推荐

项目系统创新点

使用了基于用户和基于物品,根据评分和收藏数据,进行混合推荐,及将两种协同过滤 推荐算法的结果全部输出,同时采用基于用户选择的新闻类型喜好标签统计的热点推荐解决冷启动和数据稀疏性问题。

冷启动:一个新用户第一次登录,没有评分和收藏数据,那么没有办法进行个性化推荐;

数据稀疏性:会伴随项目的整个运行过程,比如:项目刚上线,新闻数据很多,但是用户及用户的评分、收藏数据较少,用户之间没有交集,那么有些用户就没有推荐结果

开发工具:IDEA,jdk1.8,Mysql8,navicat数据库管理工具,Tomcat。

后端使用:SSM(Spring+SpringMVC+Mybatis)开发框架。

前端使用:javascript脚本,jquery脚本,用户端使用bootstrap前端框架,管理员端使用layui前端框架,layer弹窗组件等。

功能实现

系统前台:用户具有注册、登录、注销、浏览新闻、搜索新闻、信息修改、密码修改、喜好标签、新闻评分、新闻收藏、新闻评论、排行榜、热点推荐、个性化推荐新闻等功能;

后台管理系统:管理员可以查看数据统计、用户管理、新闻管理、新闻类型管理、评分管理、收藏管理、评论管理、浏览记录管理、用户喜好标签等。

协同过滤推荐功能

  1. 热点榜单

    根据数据库的新闻数据查询浏览数量最多的新闻进行推荐,同时查询出来的是不包括当前登录用户已经浏览过的新闻(过滤当前用户已经浏览过的新闻);

  2. 个性化推荐

    2.1. 游客:根据新闻总评分和总收藏数量降序查询输出向游客推荐。

    2.2. 登录用户

    基于用户的协同过滤推荐算法:根据新闻的评分数据采用基于用户的协同过滤推荐算法实时计算向用户进行新闻推荐;如果没有推荐结果,采用根据登录用户选择的喜好标签下的新闻的总评分降序推荐,同时推荐的新闻是过滤掉当前登录用户已经评分过的新闻;

    基于项目的协同过滤推荐算法:根据新闻的收藏数量采用基于项目的协同过滤推荐算法从高到低降序向用户进行推荐;如果没有推荐结果,采用根据登录用户喜好标签下的新闻的收藏数量降序推荐,同时推荐的是当前登录用户没有收藏过的新闻。

  3. 相关推荐

  4. 推荐当前登录用户正在浏览的新闻相同类型下评分较高的新闻,同时推荐的是当前用户没有评分的新闻。

新闻数据来源:爬取环球日报新闻数据 源码获取: +v:18484646674 +QQ:2474345497

项目结构 项目结构 数据库

前台系统 首页 详情查看 登录 登录选择喜好标签 Inked个人中心 Inked个人中心密码修改 Inked我的收藏 兴趣标签 后台管理系统 后台登录 后台首页 Inked新闻管理 Inked用户管理 Inked管理员管理 协同过滤算法推荐结果运行图 01基于用户推荐 基于物品的推荐 微信图片编辑_20241210133240

新闻数据爬虫: Pythom爬取环球网新闻数据

源码获取基于协同过滤算法新闻推荐系统源码.zip

About

基于协同过滤算法的个性化新闻推荐系统的设计与实现(采用Java语言的SSM框架实现基于用户、物品的协同过滤推荐算法)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published