目 录
第一章 技术概览 1
1.1 B/S架构 1
1.2 SpringMVC 1
1.3 Spring 1
1.4 mybatis 2
1.5 开发工具 2
第二章 总体设计 3
2.1 系统设计概述 3
2.2 功能分析 3
2.3 系统的结构图 5
第三章 数据库设计 6
3.1 数据库需求分析 6
3.2 数据库概要设计 6
3.3 数据库表的设计 7
第四章 详细设计 13
4.1 数据库的连接 13
4.3 用户登录模块 15
4.4 用户注册模块 18
4.5 新闻模块 19
结论 24
参考文献 1
致谢 2
基于混合推荐算法的个性化推荐系统的设计与实现
摘 要:本论文主要阐述了基于Java的新闻管理系统的设计与实现过程,论文首先介绍了系统开发过程中使用的技术和开发工具,接着简单介绍了系统的功能模块分析和设计,然后介绍了数据库的需求分析和设计,最后详细介绍了系统的实现过程。
本系统分为管理员和普通用户两种角色,实现了新闻发布、新闻浏览、新闻点赞、新闻分类管理、系统日志监控、新闻搜索等功能,方便用户更好的浏览和管理新闻信息。本系统是基于B/S架构的信息管理系统,使用了SpringMVC、Mybatis、Spring框架技术,MyEclipse集成开发环境以及MySQL数据库。
关键词: 新闻管理;SpringMVC;Mybatis;Spring
中图分类号:TQ351. 2
Java-based news management system
ZHANG Yiwei (Tutor: HU Baiyan Lecturer)
(College of Computer Science And Technology, Hubei Normal University, Huangshi, 435002, China)
Abstract:This paper mainly expounds the design and implementation process of the news management system based on Java. The thesis first introduces the technology and development tools used in the system development process, then briefly introduces the analysis and design of the system’s functional modules, and then introduces the requirements of the database. Analysis and design, and finally the details of the system’s implementation process.
The system is divided into two roles: administrators and ordinary users. It implements functions such as news release, news browsing, news promotion, news classification management, system log monitoring, news search, etc. It is convenient for users to better browse and manage news information. This system is an information management system based on B/S architecture, using SpringMVC, Mybatis, Spring framework technology, MyEclipse integrated development environment and MySQL database.
Keywords: news management; SpringMVC; Mybatis; Spring
基于混合推荐算法的个性化推荐系统的设计与实现
第一章 技术概览
基于Java的新闻管理系统是B/S架构的交易平台,在开发中使用SpringMVC、Mybatis、Spring框架技术、MyEclipse集成开发环境,使用MySQL数据库进行数据的存储。下面将一一介绍相关技术。
1.1 B/S架构
B/S既是浏览器(Browser)访问服务器(Server)的结构,即由Server提供相关的服务接口,用户访问时,无需进行任何安装,即可通过电脑本身的Browser进行访问,并且后期维护相互仅需对Server进行更新即可,无需用户进行软件升级之类的。这种架构也具备低成本、高可用性等特点[1]。
1.2 SpringMVC
在众多的MVC框架中,SpringMVC是一种轻量级的框架,并且简单易用,开发效率极高,让程序员将更多的精力放在业务上。相对于SpringMVC2,SpringMVC学习成本低,扩展性好,很容易就可以开发出性能较好的系统。SpringMVC的核心类是DispatcherServlet,即前置控制器,其作用是拦截用户从浏览器发送的请求,需要在web.xml文件中配置,请求被拦截后给交给控制器来处理,具体的实现过程会在系统实现中介绍。
1.3 Spring
通俗的来说Spring并不是一个框架,更像是一组框架或者组件的集合。相当于一个很大的容器,我们通过容器开发装载组件,并以其核心IOC和DI、AOP进行管理。其与SpringMVC相对而言,其关系是父与子的关系,其有核心内容是部分是相同的,即DI和IOC等。controller通过DI的方式进行注入,同时SpringMVC使用相关配置文件进行响应管理,由于起来两者均是由同一家公司进行研发,因此有很好的兼容性。
1.4 mybatis
mybatis是另个一优秀的开源框架,在新闻管理系统中考虑过时候用JDBC直接操作数据库,但是由于了解过mybatis得优点,考虑到JDBC没有连接池,每次请求都会重新创建,并且须在代码中频繁的更改sql语句,后期优化和调整较为麻烦。最后考虑到Mybatis对于sql语句的优化,修改比较困难,最后选择了操作简单并且灵活的mybatis
1.5 开发工具
新闻管理系统是比较小型的管理系统,系统采用了本人使用最熟练的MyEclipse开发工具,静态界面使用html,系统的服务器使用是Tomcat。
- MyEclipse
MyEclipse是eclipse的升级版,也就是在其的基础上加入了各个常见应用开发的组件,包括tomcat也存放其中。无需用户去查找相关常用的组件,并且能够实现代码快捷输出等操作,提高研发效率,并且其支持HTML、CSS、JS、JAVA等相关技术,并且能实现代码校验等功能[4]。 - Tomcat
Tomcat是使用较为广泛的服务器,具备高效、轻量等特点,tomcat也是用Java预言编写的。Tomcat是servlet和jsp容器,当用户通过浏览器访问部署在Tomcat上的一个站点时,Tomcat会响应HTM页面请求。
第二章 总体设计
2.1 系统设计概述
系统设计既是对项目总体所需的功能和相关逻辑进行细节的、具体的描述和表达,之后设计出相关的模型。其所需的设计可分为总体、数据库、功能模块、相关界面设计等。
系统设计是一个将抽象的业务逻辑具体成为各个实现的功能和对象的过程。通过相关的调研,并编写设计分析的相关文档,研发者可依据前期编写好的文档进行研发,以此提高研发效率,编写出符合业务逻辑的功能代码,同时对模糊的业务进行详细分析描述。其设计同样具有固定的原则要求,具体如下:
(1)系统性。即完全一致性,相关的代码、设计文档、页面风格等均要实现统一,并且要符合标准。在本系统开发的过程中也遵循良好的代码规范,比如系统中的类名首字母都大写、变量的命名都有实际的意义、变量命名都按照驼峰命名法命名、每个方法都有重要的注释等。
(2)灵活性。需能够在各个系统、硬件等环境下运行,对硬件限制要小,并且具有良好的可扩展性和开放性。本系统利用Spring框架的依赖注入特性,灵活的解决了类与类之间的依赖关系,减少了代码之间的耦合。使用MVC框架将视图、数据和业务进行分离提高了代码的重用行。
(3)可靠性。既是保证系统具有强大的抗干扰性,同时保障其安全的运行,这也是一个系统必备的条件因素。系统使用Mybatis框架,避免了SQL语句的拼接有效的防止了SQL注入。
(4)经济性。以最小的成本满足所有的需求,以实现效益最大化。本系统的开发使用了开源框架、MyEclipse集成开发工具、MySQL数据库、Tomcat服务器,这些软件都可以免费使用,系统的开发都是由本人独立开发完成并没有经济支出,具有良好的经济可行性。
2.2 功能分析
功能分析,即通过相关的需求调研,分析其项目应具备的功能,并编写完整的需求文档。这个过程也是整个项目系统所必须进行的第一步,没有这一步后期研发和设计无法进行,并且在后期维护和版本更新中也起到至关重要的作用,本文通过具体的分析得出本项目系统应具备的功能有用户、新闻、留言等相关管理功能,同时也具有新闻的点赞、评价、预览、更新信息等功能。
1)用户注册
提供相关的注册页面窗口,供游客进行注册,以有权限访问更多的功能,比如新闻评论,在线留言,发布新闻等功能。用户在注册是必须正确填写相关信息,比如用户名不能为空,密码和确认密码必须输入一致,用户的邮箱格式需正确等,需通过各个信息的正确性校验,才可将相关数据保存到数据库,并以此确定注册的完成。
2)用户登录
本功能是提供相关的登录窗口,给在数据库中保存的用户使用,以此通过填写正确的用户名密码,即可访问系统的功能。
3)发布新闻
用户登录后,可访问此功能编写自己所要发布的信息,发布成功后需要系统管理员的审核,审核通过后在主页会进行显示。本项目的核心便是新闻模块的功能。
4)浏览新闻
游客和用户均可浏览系统中各个用户所发布的新闻。
5)用户留言
用户通过登录后,对新闻进行查看时,可发布留言,管理员进入系统后会收到留言信息。
6)动态查看
系统会记录会员所有的动态信息,例如新用户注册、新闻信息的更新和发布等操作均会保存到后台数据库,方便后期用户或者管理员查看信息的操作情况。用户在查看信息时,可以进行点击直接链接到用户的发表的动态详情界面。
7)新闻评价
用户在查看新闻时可以发表评论,用户的评论内容会显示新闻详情列表界面,用户可以查看所有的用户的评论信息。
8)点赞
点赞功能是新闻管理系统的较为新颖的功能,用户在浏览新闻时除了可以评论新闻也可以点击点赞,系统会记录每条新闻的总的点赞数和浏览数。
9)更新个人资料
用户注册后,可以进入系统访问此功能,并且对自身的信息进行更新,包括联系方式、个人密码和头像等信息。
2.3 系统的结构图
图2-1简洁明了的展示了新闻管理系统的设计思路。管理员、用户两种不同权限的账号有不能的功能模块。
第三章 协同过滤算法
混合推荐可使用的数据包括:
1、用户属性:用户位置、用户性别、用户年龄等属性信息;
2、项目属性:项目类别、项目添加时间、项目内容等属性信息;
3、用户操作行为:用户评分、收藏记录、浏览记录、观看时长、购买记录等操作行为;
混合推荐方法可以是先将数据进行聚类(用户聚类、项目聚类等),可进行多次聚类,聚类算法常用的有KMeans聚类、Canopy聚类、KMeans+Canopy聚类、迷糊均值聚类等聚类算法,然后找到目标用户所在的簇,用簇中的项目或者用户进行推荐,推荐可根据多种操作行为分别推荐,然后将推荐的结果进行平均加权求和,需要提前设定每种推荐算法的权重,或者分别计算不同操作行为的用户或者项目的相似度,将相似度进行加权求和,然后再进行最后的推荐,相似度的计算可采用余弦算法、修正余弦算法、person皮尔森算法、欧几里得距离公式等算法,推荐机制可采用SlopeOne、SVD等。
3.1 基于用户的协同过滤算法
根据用户的协同过滤算法的主要实现方式是,根据获取使用者的历史的一些活动统计(如使用者对职位的收集),并由此分析出使用者对某个工作类别的偏好,再根据判断用户偏好的重要程度,甚至是对某个工作类型的评价,把这种统计加以数字化,从而形成了使用者喜好的二维矩阵,同样的方法也可以用于其他应用,因此可以方便地使用找到相同的用户组,然后通过统计相似率计算用户之间的相似度,从而筛选出最相似的用户,类似用户首选且用户未收集的职位也推荐给用户[3]。然而⽤户有新⾏为,不⼀定会导致推荐结果的实时变化
3.2 数据库需求分析
以本项目系统的新闻管理这一核心需求做出相关分析,而这一功能所对应的管理员和用户的操作情况存在一定的差别。以此总结出具体需求如下:
因为该课题是为了实现具有个性化推荐功能的个性化新闻系统,也因为利⽤用该⽤户的历史经验⾏为给⽤户提供了有理有据的推荐解释,如此才能够使⽤户⽐比较信服,所以本系统使用了基于物品的协同过滤算法,⽤户有新⾏为,它将导致用户的推荐结果发生实时变化[5]。基于物品的协同过滤算法的基础过程包括:
(1)计算物品之间的相似度
基于余弦(Cosine-based)的计算方法,利用求二矢量间的角度余弦值来表达事物间的相似之处,方法为:其中分子是二矢量的内积,即二矢量相同距离的数字相乘。
公式 3-1
上述公式的分母是平均喜欢u项的用户数,分子是平均喜欢u项和v项的用户数。上述公式似乎非常合理,但如果V项非常流行,很多人都喜欢它,那么上面公式中的分子和分母将非常接近,w将非常接近1。也就是说,任何产品都是受欢迎的,即任何新闻都和热门新闻之间的相似度很高,这会导致ItemCF算法会总是推荐热门新闻,这并不是一个好的设计[6]。因此可以采用下面的公式:
公式 3-2
(2)按照新闻的类似情况以及在校大学生的历史情况,给大学生形成选择清单
当构建起了物品的相似度矩阵以后,我们就要面对一个问题,便是怎样在多个相同的东西中选取用户最感兴趣的东西[7]。因此,It