此文为我在本科毕业设计时所设计的通过知识图谱进行职位推荐系统的设计与实现,因为职位推荐系统不多,所以发出来给之后的朋友做一个参考,有什么问题可以咨询我,但本文不允许转载以及二次创作。数据表设计、推荐算法实现等重要设计我未上传。
需求分析
为解决当今毕业生求职的问题,基于Neo4j图数据库的职位推荐系统把知识图谱的概念应用到毕业生寻找适合自己职位的过程中,令毕业生在大量的职位信息中快速准确的找到适合自己的职位,本项目推荐流程如图所示。
图5-1 推荐流程
本项目的服务对象是高校毕业生,即求职者,主要的业务是登录系统,然后填写自己的简历信息然后得到适合自己的岗位推荐。本系统主要的功能需求如下:
(1)登录、注册系统
用户可以以“游客”身份访问系统,但是当用户查看用户页面时,会检测用户是否登录,如果未登录,将自动跳转至登录页面,若是未注册可以点击注册按钮进行注册,注册成功后会跳转至登录页面,再完成登录即可查看用户页面。
(2)浏览热门职位
系统首页应该展示被用户评价次数最多的职位,用户可以进行浏览参考。
(3)查看推荐职位
同样系统首页需要展示为用户推荐的职位,根据用户的个人细腻、简历信息以及求职意向计算产生匹配的职位列表反馈给用户。
(4)搜索相关职位
系统需要为用户提供搜索功能,用户可以根据自己的兴趣去搜索相关的职位进行查看。
(5)查看职位具体信息
用户通过以上职位列表点击自己感兴趣的职位,可以跳转到这个职位详情页面,可以查看到该职位的工作地点、薪资、工作职责以及职位要求等详细的信息。
(6)查看职位评论列表
每一个职位都对应有自己的评论列表,可以查看其他用户对于该职位的评价,通过其他用户对该职位的评价也可以更加客观全面的去了解这个职位。
(6)查看、修改个人简历信息
该页面展示用户个人基本信息、院校信息、求职意向以及用户自我介绍四个部分,基本信息包括真实名称、性别、年龄;院校信息包括学校名称、毕业时间以及主修专业;求职意向包括工作地点、工作岗位、期望薪资。
开发环境
本系统开发环境如下表5.1所示:
表5.1 开发环境
操作系统
Windows 10(专业版)
CPU
i5-8265U 1.80 GHz
内存
8.00GB
Python
3.9.0
Neo4j
3.5.20
MySQL
5.7.17
Django
4.0.3
VUE
2.0
系统架构设计
本系统系统的基本架构如图5-2所示,主要基于Django的MVC模式进行业务开发,即 Model(模型)+ View(视图)+ Controller(控制器),MVC模式主要包括表示表示层、逻辑层和数据层。
图5-2 系统基本架构
表示层主要是用来与用户进行交互,进行页面展示。本系统前端是基于 Vue构建的项目,同时使用 Vant-UI 框架中的组件来搭建整体页面, Vant-UI是一套轻量、可靠的移动端组件库。
逻辑层主要实现业务逻辑操作以及核心的推荐算法流程。本系统的后端使用Django框架进行搭建,Django是一个由python编写的Web应用框架,具有强化的数据管理功能以及后台管理功能。业务逻辑操作主要处理前端发送的请求,例如查询热门推荐、职位的具体信息、职位的评论信息以及用户登录等。
数据层是整个推荐系统的根基,采用Neo4j这一图数据库进行职位知识图谱的存储,而用户的基本信息、职位的详细信息、评论信息都存储在MySQL数据库中,同时将计算所得的推荐列表暂存在Redis中,本项目中注册时验证码的功能也同样使用了Redis,将随机生成的验证码存入Redis数据库中并且设置删除时间。
数据库设计
本文在第三章知识图谱的构建已经详细的阐述和完成了Neo4j数据库的设计,并将其作为推荐系统的主要信息来源,所以这里主要介绍关系数据库MySQL的设计。
关系数据库设计
本职位推荐系统数据库的实体关系用E-R图表示如图5-3所示:
图5-3 E-R图
系统实现
本系统包括系统首页、热门职位页面、推荐职位页面、职位搜索页面、职位详情界面、个人页面、简历信息页面、登录页面以及注册页面。图5-4是系统首页,由轮播图、热门推荐列表以及推荐列表组成。
图5-4 系统首页
图5-5是职位详情页面,用户通过点击职位可以跳转到职位详情页面,该页面显示职位公司图标、职位地点、职位评分、工作职责以及职位要求等信息。
图5-5 职位详情页面
图5-7是职位搜索界面,用户通过搜索框输入自己想查找的职位信息,可以进行分页进行查看所有相关的职位信息。
图5-6 职位搜索页面
图5-7是个人界面,包括个人信息展示、个人信息的修改以及退出登录。图5-8是用户个人信息的修改界面,用户当用户未登陆时,直接会跳转至登陆界面如图5-9,未注册用户可以跳转至注册页面图5-10,注册界面实现了验证码发送,采取直接显示在页面上方的方式展示验证码的方式。
图5-7 个人页面
版权归原作者 迪赛尔 所有, 如有侵权,请联系我们删除。