成品详细信息
开发工具(eclipse/idea/vscode等):eclipse
数据库(sqlite/mysql/sqlserver等):mysql5.7
功能模块(请用文字描述,至少200字):基础工具
1安装 mysql5.7 https://cdn.mysql.com//Downloads/MySQLInstaller/mysql-installer-community-5.7.33.0.msi
2安装ecipse http://mirrors.neusoft.edu.cn/eclipse/technology/epp/downloads/release/2020-03/R/eclipse-jee-2020-03-R-incubation-win32-x86_64.zip
3安装mysql客户端 navicat
4 安装tomcat8 https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.63/bin/apache-tomcat-8.5.63-windows-x64.zip
5安装maven最新
6jdk 1.8 http://dl-t1.wmzhe.com/30/30118/jdk_8.0.1310.11_64.exe
本系统基于推荐算法 给用户实现精准推荐小说。
根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,然后再基于这些关联性进行推荐,种被称为基于协同过滤的推荐。
3.1基于用户的协同过滤推荐(User-based Recommendation)
基于用户的协同过滤推荐的基本原理是,根据所有用户对物品或者信息的偏好,发现与当前用户口味和偏好相似的“邻居”用户群,在一般的应用中是采用计算“K- 邻居”的算法;然后,基于这K 个邻居的历史偏好信息,为当前用户进行推荐。【基于个体偏好而非背景上的人的相似度】
甲乙爱好相似(“邻居”),且甲喜欢AB,乙喜欢ABC,那么把C推荐给A(C可能和AB毫无关系)。
——与基于人口统计学的推荐的区别:基于人口统计学的机制只考虑用户本身的特征,而基于用户的协同过滤机制可是在用户的历史偏好的数据上计算用户的相似度,它的基本假设是,喜欢类似物品的用户可能有相同或者相似的口味和偏好。
3.2基于商品的协同过滤推荐(Item-based Recommendation,又称基于项目的)
基于商品的协同过滤推荐的基本原理也是类似的,只是说它使用所有用户对物品或者信息的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户。【基于全体偏好发现物的相似度,再根据个体偏好推荐】
——与基于内容的推荐的区别:基于内容的推荐仅根据物的相似度,不考虑个体偏好。
即如:发现金庸和古龙的武侠比较相似,甲喜欢金庸和古龙的武侠,而乙喜欢金庸的武侠,那么把古龙的武侠也推荐给乙(甲乙可能毫无关系)
——与机遇用户的协同过滤推荐的对比:其实基于商品的协同过滤推荐机制是Amazon 在基于用户的机制上改良的一种策略,因为在大部分的Web 站点中,物品的个数是远远小于用户的数量的,而且物品的个数和相似度相对比较稳定,同时基于商品的机制比基于用户的实时性更好一些。但如在一些新闻推荐系统则相反。
3.3基于模型的协同过滤推荐(Model-based Recommendation)
基于模型的协同过滤推荐就是基于样本的用户喜好信息,训练一个推荐模型,然后根据实时的用户喜好的信息进行预测,计算推荐。【降维建模,有点高大上的AI向】
基于用户和基于商品的协同过滤推荐有一个大问题:它们太死了,就是说,它们能发现都喜欢同一样东西的人,但却忽略了爱好非常相似的潜在用户组合。比如说你喜欢莫奈的睡莲。那么,在这个法国印象派大师画的 250 幅睡莲中,你最喜欢哪一幅?在一群喜欢莫奈的人当中,完全可能每个人喜欢的睡莲都不相同,而基本的算法就有可能识别不出这些人都有着共同的爱好。【基于属性的表象而非内涵?】
此时需要降维(Dimensionality Reduction)的方法。我们来看看你爱吃的东西,以及如何把它跟其他一百万人爱吃的东西做比较。你可以把这些信息用一个巨型矩阵表示出来,每一条竖线代表一样食物,每个人爱吃什么东西就自然形成了一行。在你的这一行上面或许会显示你给了烤牛排 5 颗星、红烧小排 4 星半、烤鸡翅 2 颗星、冻豆腐卷 1 颗星、奶酪烤蘑菇 5 颗星、盐水毛豆 4 颗星,等等。
然而,使用这个矩阵的推荐算法并不关心你给哪种食物评了多少颗星。它想要了解的是你一般而言的喜好,这样它可以将这个信息应用到更丰富多样的食物上。比如说,基于你上面给出的信息,算法可能会认为你喜欢牛肉、咸的东西和烤制菜品,不喜欢鸡肉和任何油炸的东西,不喜欢也不讨厌蔬菜,依此类推【降维找到本质!】。你爱吃的食物所拥有的特点或者说维度,它的数量和符合你要求的食物的数量比起来要小得多——至多可能 50 或 100。通过查对这些维度,推荐算法可以迅速决定你是否会喜欢一种新的食物(比方说盐焗排骨),方法就是把这种食物的各项维度(咸的、牛肉做的、不是鸡肉、不是炒的、不是蔬菜、不是烤的)同你的资料进行比对。这种更为一般性的呈现使得推荐算法能准确的发现有着相似但不同喜好的用户。而且,它大幅压缩了矩阵的规模,使算法变得更加高效。
不过,你爱吃的食物的维度该上哪儿去找呢?肯定不是去问厨师。推荐系统会使用一种称为奇异值分解的数学方法来计算维度,这种方法涉及到创建两个保存原始数据的巨型矩阵,这也是这种方法的主要缺点。创建矩阵所需要的时间会随着客户和产品数量的增多而飞速增长——创建一个拥有 2.5 亿名客户和 1000 万种产品的矩阵,需要花上创建一个 25 万名客户和 1 万种产品的矩阵 10 亿倍那么多的时间。而且这一过程还需要经常重复。一旦收到新的评分,矩阵就已经过时;在像亚马逊这样的公司,每一秒钟都会收到新的评论。幸运的是,就算略微过时,矩阵仍然能以一个挺不错的水平运作。研究人员们也已经在设计新的算法,为奇异值分解提供可用的近似值并显著缩短计算时间。
基于协同过滤的推荐应用最广泛,而它也存在以下几个问题:
方法的核心是基于历史数据,所以对新物品和新用户都有“冷启动”的问题。
推荐的效果依赖于用户历史偏好数据的多少和准确性。
在大部分的实现中,用户历史偏好是用稀疏矩阵进行存储的,而稀疏矩阵上的计算有些明显的问题,包括可能少部分人的错误偏好会对推荐的准确度有很大的影响等等。
对于一些特殊品味的用户不能给予很好的推荐。
由于以历史数据为基础,抓取和建模用户的偏好后,很难修改或者根据用户的使用演变,从而导致这个方法不够灵活。
可以分为三个子类:基于用户的推荐、基于商品的推荐和基于模型的推荐。
系统包含如下功能
注册模块。
登录模块 。
登录后:
-
图书分类管理。
-
小说管理。
-
用户管理。
-
设置密码。
-
图片管理、