一、系统环境
运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
IDE环境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以
tomcat环境: Tomcat 7.x,8.x,9.x版本均可
操作系统环境: Windows XP/7/8//8.1/10/11或者Linux或者MacOS,2G内存以上,推荐4G,4G以上更好
用了技术框架: HTML+CSS+JavaScript+jsp+mysql+Spring+SpringMVC+mybatis+Spring boot
数据库: Mysql数据库,任意版本均可,也可使用各种数据库工具,例如Navicat等。
二、摘要
随着网络信息的不断变化,越来越多的人倾向于在网上寻找和阅读小说。开发一个网上小说论坛不仅可以满足人们的阅读需求,还可以为人们提供一个方便、快捷和交流的平台。
本文基于协同过滤算法设计了一个网上小说论坛系统,后端采用了SSM框架进行开发。用户可以注册账号并登录,浏览不同的小说,并对其进行收藏和评论。系统会收集用户的收藏和评论,并使用协同过滤算法来提高推荐的准确性。此外,系统还提供了搜索功能和分类浏览功能,方便用户快速找到自己感兴趣的小说。本系统使用协同过滤算法来预测用户的阅读喜好,并为用户推荐个性化的小说。该算法通过对用户历史阅读行为的分析,计算出不同小说之间的相似度,并根据用户的兴趣偏好推荐相关的小说,提高了用户的阅读体验和满意度。
【关键词】 小说论坛; SSM框架; 协同过滤算法;相似度计算
三、目录
1绪论 1
1.1研究背景与意义 1
1.2研究现状 1
1.3 研究内容 2
1.4 章节安排 2
1.5 本章小结 3
2 开发工具及核心技术 4
2.1 开发工具 4
2.1.1 Navicat 4
2.1.2 Eclipse 4
2.2.3 Tomcat 4
2.3 开发技术 5
2.3.1 Spring框架 5
2.3.2 Mybatis框架 5
2.3.3 协同过滤算法 6
2.4 本章小结 6
3系统分析 7
3.1 可行性分析 7
3.1.1 技术可行性 7
3.1.2 经济可行性 7
3.1.3 操作可行性 7
3.2需求分析 7
3.2.1 功能性需求分析 7
3.2.2 非功能性需求分析 9
3.4本章小结 10
4系统设计 11
4.1功能结构设计 11
4.1.1 前台功能模块 11
4.1.2 后台功能模块 11
4.2数据库设计 12
4.2.1系统E-R模型设计 12
4.2.2数据库表设计 13
4.3 业务流程设计 15
4.4本章小结 18
第5章 系统实现 19
5.1 小说帖子推荐功能实现 19
5.2 前台功能实现 22
5.2.1 小说展台功能实现 22
5.2.2 帖子发布 23
5.2.3 收藏功能实现 25
5.3 后台功能实现 26
5.3.1 用户管理功能 26
5.3.2 公告管理功能 27
5.4本章小结 29
第6章 系统测试 30
6.1系统测试目的 30
6.2 测试方法 30
6.3 测试结果 30
6.4 本章小结 32
总 结 33
参考文献 34
致 谢 35
四、论文内容
1绪论
1.1研究背景与意义
随着互联网技术的不断发展,网上小说的数量和种类越来越多,人们的阅读需求也在不断提高。同时,网上小说论坛也成为了人们分享阅读体验和交流的重要平台。但是,在面对庞杂的小说资源和论坛信息时,用户往往难以找到真正符合自己兴趣和喜好的小说。因此,如何提高网上小说论坛系统的推荐准确率和用户满意度成为了一个亟待解决的问题。
协同过滤算法作为一种推荐算法,已经被广泛应用于电商、社交网络和音乐等领域[1]。在网上小说论坛系统中,协同过滤算法也具有很高的应用价值。通过对用户的阅读行为和兴趣偏好进行分析,该算法可以为用户推荐个性化的小说,提高用户的阅读体验和满意度。
随着大数据时代的到来,用户数据的收集和处理也变得越来越容易。通过分析用户的历史阅读行为和评论信息,可以挖掘出更多有价值的信息,进一步提高推荐的准确率和精度。因此,在当前背景下,基于协同过滤算法的网上小说论坛系统意义如下:
(1)提高用户阅读体验和满意度:基于协同过滤算法的网上小说论坛系统可以根据用户的阅读历史和兴趣偏好为其推荐个性化的小说,提高用户的阅读体验和满意度。
(2)促进小说的传播和推广:网上小说论坛系统是小说传播和推广的重要平台。基于协同过滤算法的网上小说论坛系统可以为用户推荐更多符合其兴趣的小说,从而促进小说的传播和推广。
(3)提高论坛用户粘性和活跃度:论坛用户的粘性和活跃度是衡量论坛运营成功的重要指标。通过为用户提供更好的阅读体验和个性化的推荐服务,基于协同过滤算法的网上小说论坛系统可以提高论坛用户的粘性和活跃度,进而提高论坛的运营效果。
1.2研究现状
近年来,基于协同过滤算法的个性化推荐系统已经在国内外多个领域得到了广泛的应用和研究。国内研究团队在2016年开发了基于协同过滤算法的电影推荐系统,为用户推荐电影;2017年开发了音乐推荐系统,为用户推荐个性化的音乐;2019年开发了购物推荐系统,为用户推荐个性化的商品。陈勇在《基于协同过滤算法的旅游推荐系统的设计》一文中将协同过滤算法应用到旅游景点和住宿酒店的推荐中去,基于用户的推荐算法,将每个旅行者作为主体,根据主体的行为来进行建模,通过计算获取相似度[1]。与之不同的是,刘旭,赵舒畅等人在2022年发表的《基于协同过滤与内容的混合推荐算法在云声乐教学方面的应用》文献中同时采用混合推荐算法,计算用户和标记物的权值矩阵、两者间的相似度,进而实现个性化推荐,完成整个云声乐教学系统的搭建[2]。鞍山师范学院的焦子悦通过对高校学生日常生活的数据信息进行预处理及分析,基于区位择优理念,采用最近邻协同过滤算法,实现为用户推荐精准信息的目的,从而使高校学生可以节约碎片化时间,提高学习生活的效率[4]。对于本文中小说论坛系统来说,采用协同过滤算法可以更好地预测用户的阅读偏好,为用户推荐更符合其兴趣的小说,提高了用户的阅读体验和满意度。
此外,国外研究团队也取得了一些成果,美国加州大学圣巴巴拉分校的研究团队开发了基于协同过滤算法的电影推荐系统,该系统采用了多种协同过滤算法进行比较和评估;新加坡南洋理工大学的研究团队开发了基于协同过滤算法的社交网络推荐系统,为用户推荐感兴趣的社交联系人;荷兰代尔夫特理工大学的研究团队开发了基于协同过滤算法的旅游景点推荐系统,为用户推荐个性化的旅游景点。
综合来看,基于协同过滤算法的个性化推荐系统已经在多个领域得到了广泛的应用和研究,其在网上小说论坛系统中的应用也越来越受到研究者的关注。
1.3 研究内容
本文旨在开发一个基于协同过滤算法的网上小说论坛系统,以提供个性化的小说推荐服务,增强用户体验。具体来说,本研究的主要内容包括:
1.需求分析:通过对网上小说论坛用户需求的调查和分析,确定系统的功能和性能要求。
2.系统设计:采用SSM框架,使用MySQL作为数据库,设计并实现系统的各个模块,包括用户管理、小说管理、推荐算法等。
3.协同过滤算法的实现:设计并实现基于协同过滤算法的个性化推荐模块,为用户推荐感兴趣的小说。
4.系统测试和评估:通过用户测试和评估,评估系统的性能和推荐效果,并进行系统的优化和改进。
本研究将结合实际应用场景,采用SSM框架,利用协同过滤算法实现网上小说论坛的个性化推荐功能,为用户提供更好的阅读体验。同时,通过测试和评估,对系统的性能和推荐效果进行评估和优化,提高系统的推荐准确率和用户满意度。
1.4 章节安排
第一章节绪论介绍小说论坛系统的重要性及研究的背景与意义,阐述本课题的研究现状和研究内容;
第二章节系统技术选型是对小说论坛系统的相关框架技术、前端技术、开发工具等进行介绍;
第三章节系统分析是对小说论坛系统的功能需求进行详细分析,根据需求分析,设计系统的功能模块;
第四章节系统设计是对小说论坛系统的架构设计、功能流程设计等进行阐述,然后对系统数据库设计进行分析;
第五章节系统功能实现是对小说论坛系统的功能实现流程和方法进行介绍,从不同角色的功能模块来进行阐述;
第六章节系统测试是对小说论坛系统开发收尾时对系统进行全面测试的介绍,从测试方法到测试结果以及测试过程中遇到的问题和解决办法进行描述。
1.5 本章小结
本章节从本系统研究背景说起,介绍开发本系统背景情况引出开发本系统意义,然后对本系统中外研究现状进行分析,了解当前同类型系统研究情况,最后对本系统研究内容进行总结。
2 开发工具及核心技术
根据第一章节的研究内容已知,开发本系统的核心技术主要由SSM框架结合基于协同过滤算法完成,本章节主要对开发选取的开发工具以及核心技术进行介绍。
2.1 开发工具
2.1.1 Navicat
Navicat是一款功能强大的数据库管理工具,支持多种数据库系统,例如MySQL、Oracle、SQL Server等。在基于协同过滤算法的网上小说论坛系统的开发过程中,使用Navicat作为数据库管理工具,有以下几个优点:
(1)数据库操作方便:Navicat提供了直观的用户界面,支持可视化的数据库管理操作,如创建、修改、删除数据库和表等[5]。这使得系统的数据库操作更加方便和高效。
(2)SQL语句编写和调试:在基于协同过滤算法的推荐系统中,需要编写复杂的SQL语句来查询和处理数据,Navicat提供了SQL编辑器和调试工具,可以方便地编写、调试和执行SQL语句,减少了开发者的工作量和出错率。
在网上小说论坛系统中,使用Navicat作为数据库管理工具,可以方便地管理用户、小说、推荐等数据,提高系统的开发效率和稳定性。同时,Navicat的多种数据库支持和强大的功能也能够满足不同规模和需求的网上小说论坛系统的开发需求。
2.1.2 Eclipse
Eclipse支持多种编程语言,例如Java、C/C++等,对于基于协同过滤算法的网上小说论坛系统而言,使用Java开发是非常常见的选择,Eclipse对Java的支持非常好,具有良好的代码提示和自动补全功能,能够提高开发效率[7]。Eclipse拥有丰富的插件生态系统,可以满足不同开发需求。例如,对于基于协同过滤算法的推荐系统,可以使用MyBatis插件来简化数据库操作,使用Maven插件来管理项目依赖等。
Eclipse支持跨平台开发,可以在不同操作系统下进行开发。这对于团队合作和系统部署都非常有帮助,因为不同成员可以使用自己熟悉的操作系统和开发环境。在网上小说论坛系统中,使用Eclipse作为开发工具,可以方便地进行Java开发和项目管理,同时也能够通过插件来满足不同开发需求。例如,可以使用MyBatis插件来简化数据库操作,使用Tomcat插件来进行系统部署和测试等。此外,Eclipse也支持多种版本控制工具,如Git、SVN等,能够方便地进行团队合作和代码管理。
2.2.3 Tomcat
Tomcat是一款轻量级的Web应用服务器,由于其小巧、易于部署和配置的特点,被广泛应用于Java Web应用程序的开发和部署。Tomcat是一款专门针对Java Web应用程序开发的应用服务器,支持标准的Java Servlet和JavaServer Pages(JSP)规范。因此,基于协同过滤算法的网上小说论坛系统可以方便地进行Web应用程序开发,并且具有良好的跨平台性能。相对于其他应用服务器,Tomcat具有更小的体积和更简单的部署和配置流程。基于协同过滤算法的网上小说论坛系统的部署可以在较短的时间内完成,从而提高了开发效率。。
2.3 开发技术
2.3.1 Spring框架
在Java开发领域得到广泛应用。在基于协同过滤算法的网上小说论坛系统中,选择Spring框架有以下几个优点:
(1)提高开发效率:Spring框架提供了许多开箱即用的特性和组件,例如依赖注入(DI)、面向切面编程(AOP)等,能够大大减少开发人员的工作量,提高开发效率。
(2)方便集成其他技术:Spring框架具有很好的集成性,可以方便地集成其他技术,例如Hibernate、MyBatis、Struts等。在基于协同过滤算法的网上小说论坛系统中,可以将Spring框架与MyBatis集成,实现数据访问层和业务逻辑层的分离[8]。
(3)提高代码可读性和可维护性:Spring框架采用松耦合的方式进行组件之间的协作,将系统各个部分分离,使代码具有更好的可读性和可维护性。
(4)丰富的生态环境和社区支持:Spring框架拥有庞大的社区和丰富的生态环境,能够快速响应用户需求,提供全面的技术支持和丰富的文档资料。
在基于协同过滤算法的网上小说论坛系统中,选择Spring框架可以方便地实现各个模块之间的协作和集成,提高开发效率和代码可读性、可维护性。同时,Spring框架拥有丰富的生态环境和社区支持,能够及时提供技术支持和文档资料,为开发人员提供更好的帮助。
2.3.2 Mybatis框架
Mybatis是一种轻量级的Java持久层框架,它可以将Java对象与关系数据库中的数据进行映射,使开发人员可以更加方便地进行数据库操作[12]。在基于协同过滤算法的网上小说论坛系统中,使用Mybatis可以避免手动编写大量的JDBC代码,只需要编写相应的SQL语句,就可以轻松实现数据的增删改查操作。Mybatis采用了对象关系映射技术,可以将Java对象直接映射到数据库表中,避免了ORM框架中常见的性能问题,如懒加载、N+1查询等。Mybatis可以自由定义SQL语句,不像Hibernate等ORM框架需要遵循固定的CRUD操作规范,这使得Mybatis在灵活性方面有很大的优势。
在基于协同过滤算法的网上小说论坛系统中,使用Mybatis框架可以实现快速、高效、灵活的数据库操作,提高系统的性能和可维护性,同时也方便了系统的扩展和升级。因此,选用Mybatis作为持久层框架是一个明智的选择。
2.3.3 协同过滤算法
协同过滤算法是一种推荐系统算法,该算法利用用户历史行为数据,如浏览历史、购买历史和评分历史等,来推荐可能感兴趣的项目。基于用户的协同过滤算法的主要思想是找到具有相似兴趣的用户,并使用他们的兴趣进行预测。算法的核心是计算用户之间的相似度,并使用这些相似度来预测其他用户可能喜欢的项目。
在网上小说论坛系统中,我们可以使用协同过滤算法来推荐类似的小说给用户。我们可以利用用户的历史行为数据,如浏览历史和评分历史,来计算用户之间的相似度,并使用相似度来推荐小说给用户。具体来说,如果用户A和B在浏览和评分历史上有很多相似之处,那么我们可以认为他们的兴趣相似,因此我们可以向用户A推荐用户B喜欢的小说。
因此,通过协同过滤算法的实现,我们可以提高用户对小说的兴趣,并增强用户对网上小说论坛系统的使用体验,具体的设计思想如图2-1所示。
图2-1 基于用户的协同过滤展示图
2.4 本章小结
本章节主要对开发网上小说论坛系统的开发工具、开发技术和核心算法进行介绍,并且阐述了为何选取它们的原因。
3系统分析
系统分析主要是在开发系统前对开发本系统的可行性、需求进行分析,确定开发本系统的可行性以及开发本系统的业务需求、功能需求以及非功能需求。
3.1 可行性分析
3.1.1 技术可行性
网上小说论坛系统主要采用SSM框架来开发,SSM框架是当前较为流行的Java web开发框架,它将Spring、SpringMVC和MyBatis三个框架进行整合,能够快速开发高效、可维护的web应用程序。因此,采用SSM框架开发网上小说论坛系统具有技术可行性。此外,协同过滤算法也是目前被广泛应用于推荐系统领域的一种算法,也具有很好的技术可行性。
3.1.2 经济可行性
采用SSM框架开发网上小说论坛系统,能够有效地减少开发时间和开发成本。SSM框架已经成为许多企业和开发者使用的主流框架,其稳定性和可维护性也得到了广泛认可。因此,采用SSM框架开发网上小说论坛系统具有较好的经济可行性。
3.1.3 操作可行性
SSM框架是一个成熟的框架,有大量的开发文档和社区支持,开发者可以很容易地掌握相关知识并进行开发。此外,Navicat、Eclipse等开发工具也具有广泛的应用,开发者可以很方便地进行开发和调试。因此,采用SSM框架开发网上小说论坛系统具有较好的操作可行性。
3.2需求分析
3.2.1 功能性需求分析
功能性需求分析是对小说论坛系统应该具备的功能进行需求分析,小说论坛系统主要由前台用户角色和后台管理员角色使用。小说论坛系统的核心功能主要有小说展台、投诉建议、积分模块、登录、注册、个人中心以及通知公告等功能,以及后台对这些功能的信息维护和管理功能,包括用户管理、帖子管理、论坛板块管理、投诉建议管理、通知公告管理以及系统设置等功能。用例分析也分别从管理员和用户进行分析。
(1)管理员
管理员角色主要包括对用户信息进行修改、查询、删除等功能,对通知公告信息进行新增和维护等功能,对帖子信息进行查询、置顶、加精以及删除帖子评论等功能,对管理员密码进行修改以及轮播图信息设置等功能。
小说论坛管理员模块用例图如图3-1所示。
图3-1 管理员用例图
(2)用户
用户角色主要是小说论坛系统的前台使用者,功能主要包括登录、注册来获取账户和系统权限,对小说论坛系统进行投诉,发帖、评论小说帖子、查看推荐的小说帖子以及进入到公告页面查看公告信息,进行签到来提高自己的论坛等级。
小说用户模块用例图如图3-2所示。
图3-2 用户用例图
3.2.2 非功能性需求分析
非功能性需求是指系统在使用过程中所需要满足的非功能性要求,包括系统的可靠性、可用性、性能、安全性、可维护性、可扩展性等方面。以下是基于协同过滤算法的网上小说论坛系统的非功能性需求分析:
可靠性:在网上小说论坛系统中,可靠性是非常重要的一个方面,需要保证系统能够稳定运行,不会出现崩溃、故障等情况,以确保用户数据的安全性和系统的稳定性。在开发过程中,需要注重代码质量和测试,确保系统稳定性和可靠性。
可用性:网上小说论坛系统需要提供方便快捷的使用体验,用户可以轻松地进行登录、浏览小说、发表帖子等操作,系统需要满足用户的各种需求。同时,系统的界面设计需要简洁明了,易于使用,提高用户的满意度。
性能:性能是网上小说论坛系统的一个重要考虑因素,需要保证系统在高并发情况下依然能够保持良好的响应速度,以保证用户的良好体验。在开发过程中,需要采取优化措施,如增加缓存、负载均衡等,以提高系统性能。
安全性:网上小说论坛系统需要保证用户的数据安全,防止用户数据被泄露或被非法访问。在开发过程中,需要采取相应的措施,如采用HTTPS协议、加密用户数据等,以保证系统的安全性。
可维护性:网上小说论坛系统需要便于后期的维护和升级,需要采用模块化设计、代码规范等措施,方便开发人员对系统进行维护和升级。
3.4本章小结
本章节主要对网上小说论坛系统进行系统分析,包括经济、技术、操作可行性以及功能性和非功能性需求分析进行描述。
4系统设计
本章节系统设计是对小说论坛系统的架构设计、功能流程设计等进行阐述,然后对系统数据库设计进行分析。
4.1功能结构设计
根据角色用例划分,将网上小说论坛划分为前后台两个功能界面,分别拥有不同的功能。前台功能主要由用户角色使用。
4.1.1 前台功能模块
前台界面主要有用户使用,主要功能是进行发帖和帖子查看以及评论、收藏和关注等功能。
图4-1 前台功能模块图
4.1.2 后台功能模块
后台界面主要由管理员使用,主要功能模块是对网上小说论坛系统的信息进行管理和维护。
图4-2后台功能模块图
4.2数据库设计
4.2.1系统E-R模型设计
网上小说阅读系统的帖子评论管理实体图:该阅读小说的论坛中包含的元素各种各样其中有评论信息、评论日期、评论人和评论内容等组成,如图4-3所示。
图4-3帖子评论管理实体图
小通知公告实体图:其中论坛内容包括标题、发布日期,如图4-4所示。
图4-4公告实体图
帖子编辑的实体图,其中包括的内容也不少内含标题、图片、内容、板块等组成,如图4-5所示。
图4-5帖子编辑实体图
第5章 系统实现
小说帖子推荐功能实现
用户进入到小说展台后,系统根据用户信息来进行帖子信息推荐,小说帖子推荐功能如图5-1所示。
图5-1 小说帖子推荐页面
基于协同过滤算法的网上小说论坛系统的核心功能为帖子推荐的功能,该功能由协同过滤算法实现。实现流程主要分为三个关键步骤:
1、获取稀疏矩阵
首先需要获取用户的数据,包括用户ID、用户名等信息。接着需要获取小说帖子的数据,包括小说ID、小说名等信息。根据用户对小说的评分情况,可以得到一个评分矩阵。在实际应用中,使用稀疏矩阵可以大大减少存储空间的占用。最后需要将稀疏矩阵存储到数据库中,以便在算法中进行使用。
假设目前共有4个用户: A、B、C、D;共有5个小说帖子信息:a、b、c、d、e。用户A对小说a、b、d进行点赞或者收藏,则系统将认定A“喜欢”a、b、d小说帖子,同理,将用户B、用户C、用户D“喜欢”的小说帖子信息整理、罗列出来,得到用户与小说帖子的关系如图5-2所示。
图5-1 用户与小说帖子之间的关联(用户主体)
同时,如何方便的计算全部用户之间的相似度,还需要将小说帖子为主体进行倒序,根据用户和小说帖子之间的关联进行反向整理,得出,小说帖子a被用户A、B同时喜欢,小说帖子b被用户A、C同时喜欢,将其他小说帖子信息一一罗列出来得出小说帖子—用户的倒序表,如图5-3所示。
图5-3 小说帖子与用户之间的关联(小说主体)
这样就可以得出一个评分矩阵是一个M*N的矩阵,其中M表示用户的数量,N表示小说帖子的数量。对应本系统中,M就代表用户A、B、C、D的数量为4,N就代表小说帖子abcde5个帖子。评分矩阵中的每个元素表示用户对小说帖子的评分,如果用户没有对小说评分,则该元素为空。由于评分矩阵通常是非常稀疏的,因此需要将其转化为稀疏矩阵。稀疏矩阵是一种特殊的矩阵,其中大部分元素为零。这样就得到稀疏矩阵如图5-4所示。
图5-4 稀疏矩阵
2、计算相似度
在基于协同过滤算法的网上小说论坛系统中,计算用户之间的相似度是非常重要的一步,它是协同过滤算法的核心部分之一。常用的计算相似度的方法有两种:皮尔逊相关系数和余弦相似度。本系统采用余弦相似度来计算,余弦相似度是用于衡量两个向量之间夹角的度量。在协同过滤算法中,可以用来衡量两个用户对物品的评价之间的夹角[8]。具体计算公式为:
(公式1)
3、获取推荐信息
通过一个大根堆来维护topN的N个相似用户列表,然后根据列表来对职位集合信息进行遍历,获取相似用户访问过,而当前用户未访问过的简历,将其存入集合中,最后完成推荐。
获取稀疏矩阵的核心代码如下:
int N = usersize;//用户数量
//建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】
int[][] sparseMatrix = new int[N][N];
//存储每一个用户对应的不同帖子总数 eg: A 3
Map<String, Integer> userItemLength = new HashMap();
//建立帖子到用户的倒排表 eg: a A B
Map<String, Set> itemUserCollection = new HashMap();
Set items = new HashSet();//辅助存储帖子集合
Map<String, Integer> userID = new HashMap();//辅助存储每一个用户的用户ID映射
Map<Integer, String> idUser = new HashMap();//辅助存储每一个ID对应的用户映射
System.out.println(“Input user–items maping infermation:<eg:A a b d>”);
计算相似度矩阵代码如下:
//计算相似度矩阵【稀疏】
Set<Entry<String, Set>> entrySet = itemUserCollection.entrySet();
Iterator<Entry<String, Set>> iterator = entrySet.iterator();
while(iterator.hasNext()){
Set commonUsers = iterator.next().getValue();
for (String user_u : commonUsers) {
for (String user_v : commonUsers) {
if(user_u.equals(user_v)){
continue;
}
//计算用户u与用户v都有正反馈的帖子总数
sparseMatrix[userID.get(user_u)][userID.get(user_v)] += 1; }
}
}
计算用户之间的相似度【余弦相似性】代码如下:
int recommendUserId = userID.get(recommendUser);//获取用户推荐id信息
for (int j = 0;j < sparseMatrix.length; j++) { //循环计算
if(j != recommendUserId){
//计算相似度
System.out.println(idUser.get(recommendUserId)+“–”+
idUser.get(j)+“相似 度:”+sparseMatrix[recommendUserId][j]
Math.sqrt(userItemLength.get(idUser.get(recommendUserId))
*userItemLength.get(idUser.get(j))));}}
五、代码片段
if(comment == null){
ret.put("type", "error");
ret.put("msg", "请填写正确的评论信息");
return ret;
}
if(StringUtils.isEmpty(comment.getContent())){
ret.put("type", "error");
ret.put("msg", "请填写评论内容");
return ret;
}
if(commentService.edit(comment) <= 0){
ret.put("type", "error");
ret.put("msg", "编辑失败,请联系管理员!");
return ret;
}
if(!StringUtils.isEmpty(username)){
Account account = accountService.findByName(username);
if(account != null){
queryMap.put("userId", account.getId());
}
}
if(moneyMin != null){
queryMap.put("moneyMin", moneyMin);
}
if(moneyMax != null){
queryMap.put("moneyMax", moneyMax);
}
if(status != null){
queryMap.put("status", status);
}
queryMap.put("offset", page.getOffset());
queryMap.put("pageSize", page.getRows());
ret.put("rows", orderService.findList(queryMap));
ret.put("total", orderService.getTotal(queryMap));
/**
* 查询订单列表
* @param sn
* @param page
*/
@RequestMapping(value="/list",method=RequestMethod.GET)
public ModelAndView list(ModelAndView model){
model.setViewName("order/list");
model.addObject("accountList",
JSONArray.fromObject(accountService.findList(new HashMap<String, Object>())));
return model;
}
六、源码获取方式
一键三连+关注+评论留下你的邮箱 获取源码,主动获取 看主页置顶
一键三连+关注+评论留下你的邮箱 获取源码,主动获取 看主页置顶
一键三连+关注+评论留下你的邮箱 获取源码,主动获取 看主页置顶