针对当前招聘市场信息不对称、数据利用率低导致的求职者职业决策盲目与企业人才匹配效率不足的问题,本研究构建了基于多维度招聘信息的智能分析系统。以BOSS直聘网数据为基础,后端采用Django,前端结合ECharts图表组件,以图表示薪资、企业、学历与融资情况。对于薪资这一维度,采用了柱状图、漏斗图等不同维度数据的图表,用户可通过维度的比较获取不同学识背景、工作经验的薪资比对分析;企业模块采用了饼图和折线图,以便获取企业行业、城市分布、规模分布的统计。福利词云以可视化形式得到一系列具有代表性标签;学历模块利用两个轴关联工作年限和薪水;采用随机森林算法实现企业应聘的薪水预测模型,并且用户可以根据自身需求进行学历、城市、企业是否获得融资条件组合,模型反馈结果。同时考虑了图表的交互性和模型的扩展性,通过可视化结果的筛选、数据的放大与缩小,以及结果下载;并使用响应式设计使得用户可随时随地访问应用。实验数据分析结果证明了本文工作能够在一定程度上揭示招聘信息中存在的隐含信息,为企业提升招聘效率、应聘者规划职业生涯带来好处。后续将引入实时流数据和模型可解释性,并融入一些智能推荐算法,以更好地服务于用户,更好地辅助用户决策。
随着互联网的发展和智能手机的普及,人们获取信息和交流的方式发生了根本改变,同时对招聘领域也产生了极其重要的影响,在线招聘由其无时间、无国界、方便快捷的特点成为企业招聘的主要渠道,专业招聘类网站的出现不仅提高了招聘效率,而且将传统招聘与现代互联网技术有机地结合在一起。
然而,网络招聘也面临诸多挑战。一方面,虚拟环境下的信息真实性存疑,导致求职者对遭遇欺诈或虚假信息的担忧;另一方面,当前招聘网站的检索功能较为单一,难以满足求职者全方位的检索需求,薪资透明度问题也备受关注。
为此,我们计划构建招聘信息分析预测模型。该模型将运用数据挖掘、机器学习和深度学习技术,提供更强大的信息检索功能,并建立薪资预测体系,深入挖掘影响薪资水平的各类因素。这不仅能为求职者提供更合理的就业参考,提升求职效率和成功率,还能为企业招聘决策提供数据支持,优化招聘模式。
1.1.2研究目的
主要是为求职者和企业招聘中的各方面需求搭建一个可视化的计算机行业招聘信息采集及预测分析系统。系统能根据求职者招聘和企业招聘过程中出现的各类招聘信息需求从智联招聘等招聘网站上挖掘相关招聘信息,从互联网上获取各类专业的招聘信息,便于将每天大量的招聘信息进行集中汇总的招聘信息平台,实现对计算机行业的招聘海量信息查询,方便求职者短时间内获得全面的招聘信息,解决目前求职过程中招聘信息零碎且检索范围有限的问题。此外针对薪资水平模型预测问题,为了实现计算机行业不同岗位的工作经验以及地区差异等因素与薪资之间的预测模型,提高求职者对工资水平的认知,帮助求职者更好地认识自身行业待遇,在求职过程中,提供一份合适的薪酬规划及分析报告。
1.2.1国内研究现状
因此,当下由于互联网的招聘方式的日益普遍,互联网招聘相关的研究也已深入到数据分析、数据可视化、薪资预测等不同方向,推动了求职者和企业在求职招聘效率上提高。
(1)数据分析方向
田书丽通过对互联网招聘是常态、求职者多通过招聘网站来获取工作的叙述,提出海量、冗杂的招聘信息使求职者无法快速获取所想要的信息,设计一个招聘数据分析与可视化系统,提出改善的中文分词方法,提高了词表的质量,使用聚类和关联规则算法对招聘数据进行深入分析[1]
(2)可视化方向
李明聚焦疫情带来的就业市场尤其是毕业生求职需求的冲击。基于猎聘网海量招聘信息数据进行数据预处理,并对其职位信息分别按多维度进行统计分析,探索职位需求薪资与职位描述之间的关系[3]。
(3)薪资预测方向
李寿清主要是研究薪资预测模型,通过Python语言编写爬虫采集智联招聘网站的数据[5],并分别利用XGBoost和GBDT模型探究影响薪资变量的因素,得出XGBoost比GBDT更符合薪资预测要求的结论,给予应聘者更为真实的薪资参考[6]。
1.2.2国外研究现状
在计算机行业招聘领域,相关研究主要集中在文本分类、招聘源实践和设计模式选择等方面,涉及多种先进的技术和方法。
MihaPavlinek和ViliPodgorelec的文章关注半监督文本分类方法,并给出了半监督方法的一个例子STLDA[11]。
本文研究目标是构建一个求职信息处理系统,在采集、分析、算法优化的基础上,帮助求职者合理高效地找工作,降低其失败率。本文将采集由Python爬虫技术采集的智联招聘网站发布的计算机行业求职信息,如岗位、企业、薪资、待遇、地域、岗位数、候选人、建议等,并提供多种实践功能。
本研究的主要目标包括以下几个方面:
(1) 建立精确的薪资预测模型,利用XGBoost、支持向量机、随机森林等机器学习算法对影响薪资的影响因素进行数据分析,并为求职者建立相应的薪资预测标准,以提升求职者谈判能力;
(2) 开发薪资分析和福利分析功能,通过数据可视化展示各岗位薪资区间及福利待遇,帮助求职者做出更有价值的职业选择;
(3) 细化模糊搜索与岗位分析功能,实现对模糊信息的正确筛选,使信息检索精确有效,给用户提供精准的岗位推荐;同时,地域分析功能能够帮助求职者根据各地区岗位需求和待遇差异而优化选择;
(4) 对比各算法的分类准确率,提升系统推荐的准确性和可信度,从而增强用户对系统的信赖。
通过这些功能的综合应用,本研究不仅提升了求职者的使用体验,还为招聘市场提供了更加智能化的数据支持,推动招聘信息管理的创新发展。
Django是流行的一种PythonWeb应用框架,它包含很多功能强大实用的工具,使开发者快速开发高效可伸缩的Web应用,Django的目标是帮助开发者专注于业务逻辑,而不关心实现细节。
Bootstrap是一个为前端开发人员准备的开源框架,它是Twitter在2011年推出的一款简化网站建设的工具,尤其是在设计响应式或者针对移动优先的站点方面,Bootstrap能让你的项目速度加倍,通过各种预置的CSS和JavaScript组件构建出具有良好用户体验的网站,而无需从头开始编写样式表和功能。
随机森林是一种强化集成学习方式,它是将若干树的预测结果融合的决策树集合法,随机森林是基于bagging(自助采样法)和随机选择特征这两种关键技术。随机森林在决策树的训练过程中,对于每一棵决策树,在训练数据中抽取一个子集和对每一个分裂点随机选择一部分特征,“双重随机”使得决策树不容易过拟合。
系统的设计与实现使用了多个开发工具,其中包括:
MySQL:能存储和管理数据,对web系统中实现数据的增删改查,并为可视化提供数据支持,起到数据引擎的作用。
PyCharm:可以快速编辑、调试Python语言代码。PyCharm将相关库进行高度的集成,同时实现错误查找和跟踪,帮助程序员解决错误问题。
以上开发工具的应用可使系统的开发与设计更加简洁、高效,并能完成对系统分析与演示等工作。通过boostrap进行前端整合及处理、MySQL对数据的存储与管理、PyCharm作为开发环境,使开发者快速设计出具有良好功能性能的数据分析系统。
Python3.7及以上版本的Python,Windows11系统;数据库MySQL,管理工具Navicat,Django及部分机器学习库
系统分为用户模块和管理员模块。用户首次登陆系统需要注册一个用户账号,用户在登录平台后,可以进行平台的操作。系统会提前通过python爬虫从boss招聘网站中采集计算机行业招聘信息,包括岗位名称、公司名、薪资、福利、地址、行业等信息。
用户功能:
(1) 对于第一次登陆的用户要进行注册后进行登录,系统对注册的用户进行身份和管理信息的确认,以确保用户信息的安全性和使用上的方便快捷。注册用户可以登录平台之后,实现后面招聘工作的信息查询及分析处理。
(2) 模糊搜索:该系统设有此模块,它可以根据输入一些关键词来搜索职位信息,比如输入职位、企业、技术,系统会模糊匹配所有存在这些关键词的职位信息,方便用户对职位信息的查找。这样方便快速了解更符合用户需要的工作。
(3) 薪酬对比:计算不同岗位薪酬情况,显示图表,用户能直观清晰地看出每种岗位的薪资范围、岗位平均收入以及行业整体薪资水平,便于用户更直观地了解市场薪酬情况,并用数据说话,便于谈判。
(4) 地域:从招聘的数量及工资等方面进行不同地区的数据对比,用户就能了解各地市场的工资水平及岗位的市场需求量等,可以方便用户选择最优的地区,做出更合理的求职方案。
(5) 福利功能:能够分析当前工作福利,如工作休假、保险以及奖励等。通过对工作福利的了解与分析,能够更好地了解不同的工作的价值,并结合工作及福利选择高薪并且福利良好的工作。
(6) 岗位剖析:细化各个岗位的职能、需求和行业动向,为用户提供详细岗位剖析,帮助求职者把握目标岗位市场的动态,同时也能让求职者充分了解自身的求职方向是否符合自己的职业发展方向。
(7) 准确率分析算法准确率:用于分析各算法对招聘数据的分类准确率,如XGBoost算法、支持向量机(SVM)、随机森林等;通过算法准确率的分析,使用者可了解到哪些算法的预测薪资和岗位匹配具有较好效果,来提高推荐结果准确性。
(8) 收入预测:机器智能通过对过去信息进行建模,挖掘出影响薪资的各种因子,例如职业要求、工作特性及工作地点的不同因素,并用收入模型反映给用户,预测未来的薪资,从而为用户的求职提供一定依据。一方面给用户带来了职业决策的“福利”,提升职业选择的成功率。
管理员功能:
(1) 数据管理:管理员可以添加、编辑或删除招聘数据,以确保招聘信息的及时更新和准确性,维护数据库的高质量。
(2) 用户管理:管理员负责用户信息的管理与维护,包括审核新用户注册、处理用户反馈等,确保系统的安全性和数据完整性。
(3) 系统设置:该功能支持系统参数配置,管理员可以根据需求调整系统设置,以优化系统的稳定运行和高效性。
整体功能如图3-1系统功能图所示:
根据该系统的数据库表的设计,将系统的数据种类归分为用户、招聘信息2个实体。用户信息E-R图如图3-2所示。
图3-2 用户信息E-R
(1) 实体设计
招聘职位信息表:该表记录每个职位信息,包括岗位名称、薪资待遇、学历要求、工作经验、公司、岗位描述等以及与之对应的一分类,每一个职位信息都拥有唯一的编号(ID),并对创建时间和更新时间进行记录。
(2) 关系设计
用户与职位表:一个用户可以收藏很多职位,而每一个职位可能被多个用户收藏,因此使用一个关联表来存储用户与招聘谢谢之间的关系。它可以跟踪每个用户收藏了什么商品如下所示:
如表3-1为用户表,用来记录已注册用户的账户信息,表中包括用户名、密码、邮箱地址、创建时间及修改时间。每个用户有一个唯一的标识ID。
表3-1 用户表(userinfo)
列名 | 字段类型 | 长度 | 是否为空 |
id | int | 0 | NO |
username | varchar | 255 | YES |
password | varchar | 255 | YES |
avatar | varchar | 100 | YES |
createTime | date | 0 | NO |
address | varchar | 255 | |
educational | varchar | 255 |
如表3-2为收藏表:该表记录用户对岗位信息的收藏数据,包括收藏的职位id、用户id,收藏数。
表3-2 收藏表
列名 | 字段类型 | 长度 | 是否为空 |
id | bigint | NO | |
user_id | varchar | 30 | NO |
count | varchar | 30 | |
job_id | varchar | 100 | YES |
如表3-3为岗位数据信息表:该表存储企业招聘岗位详细信息,包含职位名称、地点、学历要求、工作经验(必填)、薪资结构、公司属性(名称/性质/规模)及HR联系方式等字段,其中ID与工作经验不可为空,其他信息允许为空。
表3-3 岗位数据信息表
列名 | 字段类型 | 长度 | 是否为空 |
id | int | 0 | NO |
title | varchar | 255 | YES |
address | varchar | 255 | YES |
type | varchar | 255 | YES |
educational | varchar | 255 | YES |
workExperience | varchar | 255 | NO |
workTag | varchar | 2555 | YES |
salary | varchar | 255 | YES |
salaryMonth | varchar | 255 | YES |
companyTags | varchar | 2555 | YES |
hrWork | varchar | 255 | YES |
hrName | varchar | 255 | YES |
pratice | tinyint | 1 | YES |
companyTitle | varchar | 255 | YES |
companyAvatar | varchar | 255 | YES |
companyNature | varchar | 255 | YES |
companyStatus | varchar | 255 | YES |
varchar | 255 | YES | |
detailUrl | varchar | 2555 | YES |
companyUrl | varchar | 2555 | YES |
该系统所实现的登录和注册功能采用后端Django框架实现。当用户第一次访问系统时,可以选择使用账号登录系统或是使用用户名注册账号。其中注册采用GET请求渲染注册页面,当用户输入注册的信息,并发送POST请求,系统将会接收用户提交的用户名、密码和确认密码。登录注册实现界面如图4-1所示。
图4-1 登录界面示意图
招聘数据分析展示界面通过Django后端处理程序和前端模板渲染程序完成。前端渲染时,主页首先通过home函数获取当前登录用户,并通过getHomeData获取函数调用处理的每个函数来获取数据库中的各种数据,如获取当前时间、招聘数据总量、注册用户数量、工作行业最高的学历数据、最高月资薪、最高的年底多薪、优秀位置数据、岗位性质数据以及用户注册时间分布数据、最近注册的5个用户信息、招聘岗位柱状图数据和完整的岗位招聘信息数据列表具体信息汇总展示界面图如图4-2所示。
图4-2 信息汇总示意图
岗位推荐模块是依据用户特征来进行推荐的系统,具体是由BOSS招聘数据可视化系统根据BOSS会话系统获取当前登录的用户名,在数据库中查询该用户信息,重点关注用户的丰富程度和学历程度,其中,学历程度是把学历程度(博士、硕士、本科等)进行对应转换成数字方便之后的调用。单页面信息部分如图4-3所示。
图4-3 岗位推荐示意图
用户个人中心功能是BOSS招聘数据可视化系统为每一个用户提供的用户信息管理模块,用户登录后可在个人中心中查看、修改与完善自己的信息。BOSS招聘数据可视化系统的用户个人中心功能是通过Django框架的MVC模式设计的,系统后端的selfInfo方法首先通过session对象获取当前用户登录名,然后在数据库中查询出用户的信息。用户中心界面如图4-4所示。
图4-4 个人中心示意图
可视化招聘数据应用系统为了实现BOSS用户方便地浏览招聘信息,在可视化展示模块中先通过会话取出用户名登录用户信息,然后在数据库中查询用户信息,再调用方法getTableData.getTableData()从数据源中获得全部的招聘信息,在后端采用Django的Paginator类实现分页,每页显示10条,用户可以通过URL参数传递给后端来指定显示哪一页,缺省显示首页,并根据此算法计算得到合理的页码显示范围,使得在前端分页导航栏中可以显示一定范围内的页码按钮,具体可视化招聘数据应用系统数据展示界面如图4-5所示。
图4-5 数据展示示意图
BOSS招聘数据可视化系统的职位收藏功能通过记录用户信息数据的思路设计实现个人用户收藏,BOSS招聘系统通过展示历史记录、添加收藏、删除收藏三个主要功能完成职位收藏体验。历史记录展示从会话中取得当前用户的名称,并从数据库查询出用户的全部信息,使用getHistoryTableData.getHistoryData()方法取得该用户收藏的所有职位信息,将信息传递给前端模板展示。职位收藏界面图如图4-6所示。
图4-6 收藏界面示意图
(1)薪资情况
工资情况分析功能通过教育程度和工作年限选项动态查询对应的可视化图。视图函数连接数据库中的教育程度选项和工作年限选项,再根据用户输入的默认值查询出的工资分析结果,用ECharts动态分析生成柱状图,横坐标代表收入范围,纵坐标代表人数,颜色随机变化表示每一串数据,饼状图分析工资情况分析占全部薪资的比例,漏斗图分析工资依次情况。如图4-7工资情况分析。
图4-7 薪资情况分析界面示意图
(2)企业情况
企业状况模块用于展现企业和行业的分布和地点分析。视图模块根据用户的输入来选择企业所属类型进行筛选,行业分布通过柱形图形式体现,横坐标是行业名称,纵坐标是行业数目,柱状颜色随机区分以便于辨识。企业的地址以饼形图来展现,其中饼中内圈40%,外圈70%,标签隐藏便于展示,悬停时高亮显示比率。如图4-8企业状况分析。
图4-8 企业情况界面示意图
(3)福利词云
福利词云指的是对出现频次较高的福利词生成词云的图片,利用静态图片在前端展示福利词的出现频次。在视图中,直接渲染html模版,前端界面左侧和右侧两个容器里分别添加了基于文本数据生成的词云图片和公司名词云图片,词云图片宽度为容器80%~90%,并使其居中展示,从而保证了样式的一致性。如图4-9福利词云.
图4-9 福利情况界面示意图
(4)学历分布
学历分布中的两个图表分别用来显示学历与薪资、工作经验的数据。该视图函数接收用户筛选的学历参数,调用相关方法实时返回统计的薪水平均、人数统计数据。如图4-10所示学历分布.
图4-10 学历分布界面示意图
(5)企业融资
柱状图和玫瑰图展示的是企业的融资情况及企业技术排名。根据用户在表单中选择的职位类型生成图的柱状图数据与技术关键词统计字频,横轴是技术名字,纵轴是统计频次,背景显示蓝色渐变增强层次感,悬停鼠标缩放聚焦细节信息。企业融资展示示意图如图4-11所示。
图4-11 企业融资界面示意图
工资预测页面依据所填的不同参数输出不同的工资预测值。获取所需预测值,调用getYucheData函数获取用户学识、经验、城市、是否有融资经历以及职位等预测信息,未填值默认为用户的个人信息数据,用户点击下方的下拉按钮选择不同的数据填写,点击确定按钮,前端发送数据到后端,而后端对数据做处理,提取预测信息参数,调用算法对不同参数进行预测计算,算法采用随机森林算法,然后调用getYuche()函数发送用户所选择的数据(如用户所选择的学历为硕士、经验为5-10年、城市为北京),由于在数据库中训练过模型,所以使用得到的模型对数据进行推理,得到具体的工资信息值。如图4-12预测网页界面。
图4-12 预测界面示意图
岗位信息管理功能通过该功能,管理员可实现岗位基本信息的录入、修改、查询,如岗位名称、学历、新增等信息,保证岗位信息的正确性与及时更新性,使用户在前台获得最新岗位信息。岗位管理的界面如图4-13所示。
图4-13 岗位管理示意图
用户管理模块主要是对网站用户信息进行管理,包括对用户的账号添加、编辑、删除。系统管理者可以查看用户的注册信息,确保信息准确、安全。通过管理用户可以为其提供更具个性化服务,从而提升用户的满意度。用户管理如图4-14所示:
图4-14 用户管理示意图
1.后台功能测试用例,如表5-1所示。
表5-1 后台功能测试用例
模块名称 | 测试内容 | 并发数 | 状态 |
登录首页 | 1)管理员登录到后台首页 | 100 | 正常 |
2)前端并发刷新后台首页 | |||
岗位信息管理 | 1)新增一条岗位信息 | 120 | 正常 |
2)删除一条岗位信息 | |||
用户管理列表 | 1)查看用户列表 | 100 | 正常 |
2)新增一个用户 | |||
3)删除一个用户 | |||
4)查询用户关键词 | |||