基于机器学习的岗位招聘数据筛选方法、系统及存储介质与流程

文档序号:15386099发布日期:2018-09-08 00:35阅读:153来源:国知局

本发明涉及基于机器学习的岗位招聘数据筛选方法、系统及存储介质。



背景技术:

随着全球范围内网络安全事件的日益增加,一系列配套政策法规的逐步落地实施,国内机构对网络安全人才的需求出现爆发式增长。据统计数据显示,人才市场上有经验的相关人才非常稀缺,企业只能放低要求来填补岗位空缺。

比如某个培训机构想培训一些准备从事网络安全方向的学员,为了更好的促进学员就业,就要深入了解企业发布的招聘信息中的技能要求,而且现在的网络安全技术不断更新,培训机构需要对一些招聘动态进行实时筛选,才能够保证培训机构第一时间了解当前招聘信息的更新动态。

同样的,企业如果想招聘网络安全方向的人才,也需要了解掌握哪些技能可以胜任该工作以及市场的薪资情况。

目前对于如何从重多的招聘信息中筛选出岗位,例如:网络安全岗位的数据,只能通过人工的方式或一些简单的筛选方式过滤数据,通过这种方式不是耗费过多的人力成本就是准确度不高,无法快速高效准确的采集大量相关数据。



技术实现要素:

为了解决现有技术的不足,本发明提供了基于机器学习的岗位招聘数据筛选方法、系统及存储介质,其并通过图形化的形式预测调整分类,保证数据的准确性;

作为本发明的第一方面,提供了:

基于机器学习的岗位招聘数据筛选方法,包括:

步骤(1):岗位招聘数据采集;

步骤(101):设定招聘岗位,将招聘岗位存储到招聘岗位数据库中;设定企业名称,将企业名称存储到企业名称数据库中;

步骤(102):根据招聘岗位数据库中的招聘岗位,抓取互联网公开的企业名称和招聘岗位的任职要求;将新的企业名称存储到企业名称数据库中;将招聘岗位的任职要求存储到任职要求数据库中;

步骤(103):根据企业名称数据库,抓取每个企业名称在互联网公开的所有招聘岗位;将与设定招聘岗位相似的新的招聘岗位存储到招聘岗位数据库中;返回步骤(102);

步骤(104):重复步骤(102)和步骤(103)直至不再产生新的企业名称和新的招聘岗位为止;将任职要求数据库中的数据进行去重处理,去重后的任职要求数据库中的数据被称之为疑似岗位招聘信息;

步骤(2):利用疑似岗位招聘信息的岗位招聘信息和非岗位招聘信息,对分类器进行训练,得到分类器;

步骤(3):利用分类器对所有的疑似岗位招聘信息进行分类,得到岗位招聘信息库和非岗位招聘信息库。

进一步的,所述步骤(102)中:

若抓取的企业名称与企业名称数据库的企业名称不一致,那么将抓取的企业名称作为新企业名称存储到企业名称数据库中;同时,将新企业名称对应的设定招聘岗位的任职要求存储到任职要求数据库中;

若抓取的企业名称与企业名称数据库的企业名称均一致,那么将抓取的设定招聘岗位的任职要求存储到任职要求数据库中。

进一步的,所述步骤(102)中:

互联网公开的企业名称和招聘岗位的任职要求均是采用网络爬虫进行抓取。

进一步的,所述岗位招聘数据为专业技术岗位招聘数据。并不是普通岗位的招聘数据,专业技术岗位招聘数据存在的特殊问题是,专业性较强,而且,技术更新迭代速度快,普通的人力资源部门很难及时了解目前软件研发部门专业技术岗位的特殊需求,而且,培训机构想要培训出符合企业需求的专业技术岗位人才,也需要实时了解专业技术岗位招聘更新数据;否则,培训机构培训出的人才可能不是企业想要的人才。

进一步的,所述步骤(103)中:

如果抓取的招聘岗位与设定的招聘岗位名称相似,那么将抓取的招聘岗位作为新的招聘岗位存储到招聘岗位数据库中;返回步骤(102);

如果抓取的招聘岗位与设定的招聘岗位名称不相似,那么将抓取的招聘岗位和招聘岗位的任职要求均剔除。

进一步的,所述步骤(103)相似与不相似的判断,均采用文本相似度算法进行判断。

进一步的,所述步骤(2)包括:

步骤(201):将疑似岗位招聘信息随机抽取n条岗位招聘信息和n条非岗位招聘信息,

从n条岗位招聘信息中选择n条作为岗位招聘信息训练数据,将n-n条作为岗位招聘信息测试数据;

从n条非岗位招聘信息中选择n条作为非岗位招聘信息训练数据,将n-n条作为非岗位招聘信息测试数据;

步骤(202):对岗位招聘信息和非岗位招聘信息的训练数据均进行文本预处理:

步骤(203):根据文本预处理结果,计算每个词的卡方统计量,根据卡方统计量的值从大到小进行排序,选出最大的前设定个数的词,将岗位招聘信息的最大的前设定个数的词进行合并,将非岗位招聘信息的最大的前设定个数的词进行合并,得到岗位招聘信息最终的特征向量和非岗位招聘信息最终的特征向量;

步骤(204):计算岗位招聘信息中每个招聘信息文档与对应的最终的特征向量的相关性指标,即岗位招聘信息的词频逆向文件频率tf-idf值,对岗位招聘信息训练数据进行归一化处理;

同样的,计算非岗位招聘信息中每个招聘信息文档与对应的最终的特征向量的相关性指标,即非岗位招聘信息的词频逆向文件频率tf-idf值,对非岗位招聘信息训练数据进行归一化处理;

步骤(205):利用归一化处理后的岗位招聘信息训练数据和非岗位招聘信息训练数据对分类器进行训练,获取训练好的分类器;利用岗位招聘信息测试数据和非岗位招聘信息测试数据对分类器进行分类精度的验证。

进一步的,所述步骤(202)的步骤为:

首先,使用ictclas分词器将训练数据的文本进行分词处理;

然后,对分词后的结果进行词性标注,删除量词、叹词和过滤停用词;

最后,存储文本、分词处理结果和词性三者之间的关系。

基于机器学习的岗位招聘数据筛选方法,还包括:

步骤(4):采集新的招聘企业和新的岗位信息,重复步骤(1)-(2)对分类器进行更新,利用更新后的分类器对待分类的数据进行分类,得到更新后的岗位招聘信息库和非岗位招聘信息库。

作为本发明的第二方面,提供了:

基于机器学习的岗位招聘数据筛选系统,包括:存储器、处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成上述任一方法所述的步骤。

作为本发明的第三方面,提供了:

一种计算机可读存储介质,其上运行有计算机指令,所述计算机指令被处理器运行时,完成上述任一方法所述的步骤。

与现有技术相比,本发明的有益效果是:

本发明提供了一种在采集网络公开数据时如何自动识别某类不能通过常规手段区分信息的方案,该方案可以极大的减少人工识别的成本,有效提高识别效率;相比简单的通过个别关键字过滤更加准确。

本发明的步骤(1)通过企业名称和招聘岗位不断更新,满足了数据采集的时候可以相互补充,不断的增加数据;

本发明的步骤(2),可以分批次根据分类器的效果相应的增加样本数据,这样可以避免耗费过多的人力进行标记样本数据,提高效率。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1为本发明的流程图。

具体实施方式

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

术语介绍:人事部规定,事业单位岗位分为管理岗位、专业技术岗位和工勤技能岗位三种类别。专业技术岗位指从事专业技术工作,具有相应专业技术水平和能力要求的工作岗位,这一岗位的设置要符合专业技术工作的规律和特点,适应发展社会公益事业与提高专业水平的需要。专业技术岗位,例如:网络安全岗位、网络安全监督岗位、网络安全分析岗位等等。

作为本发明的第一个实施例:如图1所示,基于机器学习的岗位招聘数据筛选方法,包括:

步骤(1):数据采集;

步骤(101):设定招聘岗位,将招聘岗位存储到招聘岗位数据库中;

例如,设定招聘岗位为:网络安全工程师;

设定企业名称,将企业名称存储到企业名称数据库中;

例如,企业名称为:浪潮、中兴、华为、小米等等;

步骤(102):根据招聘岗位数据库中的招聘岗位,通过网络爬虫抓取互联网公开的企业名称和招聘岗位的任职要求;

若抓取的企业名称与企业名称数据库的企业名称不一致,那么将抓取的企业名称作为新企业名称存储到企业名称数据库中;同时,将新企业名称对应的设定招聘岗位的任职要求存储到任职要求数据库中;

若抓取的企业名称与企业名称数据库的企业名称均一致,那么将抓取的设定招聘岗位的任职要求存储到任职要求数据库中;

例如:从51job网站上公开的招聘信息数据:

高级安全工程师

岗位职责:

1、对公司各产品系统平台做安全的支撑及防护加固;

2、跟踪业界最新安全漏洞和技术,分析判断其对公司业务的影响,并给出安全加固建议;

3、制定完善的信息安全规范及数据安全管理体系,并且能够推动落地实施;

4、对公司产品开发生命周期进行安全管理和指导,引导和辅助开发人员修复安全问题;

5、负责公司内部网络、系统安全。

任职要求:

1、精通web应用安全技术,熟悉常规安全漏洞(sql注入、xss、csrf、lfi、rfi等),深入理解web漏洞的原理及对抗方法;

2、精通网络安全技术,包括端口、服务漏洞扫描,程序漏洞扫描分析检测、入侵和攻击分析追踪、网站渗透、病毒木马防范等;

3、熟悉常用的安全框架及常用开发语言,可实施安全规范制定及代码审核;

4、熟悉cc、ddos等攻击,能快速反应并积极应对,具有良好的安全防范意识;

5、有过成熟互联网公司安全体系制定及落地的经验,掌握整个安全体系及安全规范的制定流程;

6、具有专业的信息安全技术能力和数据分析能力,能够独立执行系统风险评估和审计。具备crm、erp、内部it系统的业务流程、数据流转、敏感数据的数据安全梳理、数据访问审计及脱敏等项目经验的优先。

步骤(103):根据步骤(102)得到的企业名称数据库,通过网络爬虫抓取每个企业名称在互联网公开的所有招聘岗位和所有招聘岗位的任职要求;

如果抓取的招聘岗位与设定的招聘岗位名称相似,那么将抓取的招聘岗位作为新的招聘岗位存储到招聘岗位数据库中;返回步骤(102);

如果抓取的招聘岗位与设定的招聘岗位名称不相似,那么将抓取的招聘岗位和招聘岗位的任职要求均剔除;

步骤(104):重复步骤(102)和步骤(103)直至不再产生新的企业名称和新的招聘岗位为止;将任职要求数据库中的数据进行去重处理,去重后的任职要求数据库中的数据被称之为疑似岗位招聘信息;

相似与不相似的判断,采用文本相似度算法进行判断;

步骤(2):利用疑似岗位招聘信息,对分类器进行训练,得到分类器;

所述步骤(2)包括:

步骤(201):将疑似岗位招聘信息随机抽取n条岗位招聘信息和n条非岗位招聘信息,

从n条岗位招聘信息中选择n条作为岗位招聘信息训练数据,将n-n条作为岗位招聘信息测试数据;

从n条非岗位招聘信息中选择n条作为非岗位招聘信息训练数据,将n-n条作为非岗位招聘信息测试数据;

步骤(202):对岗位招聘信息和非岗位招聘信息的训练数据均进行文本预处理:

首先,使用ictclas分词器将训练数据的文本进行分词处理;

然后,对分词后的结果进行词性标注,删除量词、叹词和过滤停用词;

最后,存储文本、分词处理结果和词性三者之间的关系。

步骤(203):根据文本、分词处理结果和词性三者之间的关系,计算每个词的卡方统计量,根据卡方统计量的值从大到小进行排序,选出最大的前设定个数的词,将岗位招聘信息的最大的前设定个数的词进行合并,将非岗位招聘信息的最大的前设定个数的词进行合并,得到岗位招聘信息最终的特征向量和非岗位招聘信息最终的特征向量;

步骤(204):计算岗位招聘信息中每个招聘信息文档与对应的最终的特征向量的相关性指标,即岗位招聘信息的词频逆向文件频率tf-idf值,对岗位招聘信息训练数据进行归一化处理;

同样的,计算非岗位招聘信息中每个招聘信息文档与对应的最终的特征向量的相关性指标,即非岗位招聘信息的词频逆向文件频率tf-idf值,对非岗位招聘信息训练数据进行归一化处理;

步骤(205):利用归一化处理后的岗位招聘信息训练数据和非岗位招聘信息训练数据对分类器进行训练,获取训练好的分类器;利用岗位招聘信息测试数据和非岗位招聘信息测试数据对分类器进行分类精度的验证;

步骤(2)的实施例如下:

2.1:生成机器学习所需的训练数据集和测试数据集。使用随机算法在疑似网络安全招聘信息中随机抽取若干条数据,通过人工进行识别出5000条网络安全招聘信息,5000条非网络安全招聘数据。其中各随机抽取3000条作为训练数据集,剩余的为测试数据集。

2.2:对训练数据进行文本预处理。使用ictclas分词器将待训练数据文本进行分词,根据分词后标注的词性,删除一些对分类识别没有意义的词汇(如保留名词,删除量词、叹词等),根据中文停用词词表过滤掉无意义的停用词,最终我们通过java中集合来存储文本、词、分类标记之间的关系。

2.3:基于训练数据选择特征词向量(能够更好的区分是否为网络安全招聘信息的词语集合)。上一步已经构建好文本、词的关系信息,接下来基于卡方统计量(chi-squarestatistic,chi)来选择特征向量,计算公式如下:

其中,n:训练数据集的数量;a:在该类别中,包含某个词的文档的数量;b:排除该类别,其他类别包含某个词的文档的数量;c:在该类别中,不包含某个词的文档的数量;d:排除该类别,其他类别不包含某个词的文档的数量;

根据卡方统计量计算公式,为训练数据集每个类别(网络安全招聘信息、非网络安全招聘信息)下的每个词计算得到卡方统计量,根据卡方统计量值的大小进行排序,选出最大的前n个词。将两个类别中选出的词语进行合并,得到最终的特征向量。

2.4:对训练数据进行量化处理(计算每个文档词与文档的相关性指标,构建一个支持libsvm格式的训练集文件)。对训练数据集中每个文档计算tf-idf值,每个文档对应一个记录,并将计算结果进行归一化处理。

2.5:根据量化后的数据训练分类器,获取分类器。这里我们使用libsvm来训练文档量化的数据,适当调整核函数、代价系数,通过交叉验证逐步优化计算,选择最合适的参数,输出分类器文件。

2.6:通过测试数据集验证分类器精度。使用测试数据集来做对基于文本分类器文件预测分类精度进行验证,如果觉得分类器精度不够,可以使用交叉验证去获取更优的参数,来训练重新输出分类器。

步骤(3):利用分类器对所有的疑似岗位招聘信息进行分类,得到岗位招聘信息库和非岗位招聘信息库。

步骤(3)的实施例如下:

尚未分类的招聘信息,通过机器学习得到的分类器进行分类,将识别的网络安全招聘信息存入网络安全招聘信息库,非网络安全信息存入非网络安全招聘信息库。

基于机器学习的岗位招聘数据筛选方法,还包括:

步骤(4):采集新的招聘企业和新的岗位信息,重复步骤(1)-(2)对分类器进行更新,利用更新后的分类器对待分类的数据进行分类,得到更新后的岗位招聘信息库和非岗位招聘信息库。

步骤(4)的实施例如下:

由于人工识别的数据样本数量有限,为防止样本数据少导致的机器效果不好,我们为爬虫开发了分类验证系统。系统会定期在通过机器学习识别的招聘信息中各随机抽取100条数据,通过管理界面推送给人工识别人员,系统会根据人工识别结果,自动计算自动分类的成功率,并通过可视化的方式展示给系统管理员。当成功率低于某个阈值,系统会随机抽取2000条数据(网络安全招聘信息和非网络安全各1000条)推送给识别人员,识别完成后系统将重复第二步重新调整分类器。随着训练样本的逐渐增多,分类器会越来越高。

作为本发明的第二个实施例:基于机器学习的岗位招聘数据筛选系统,包括:存储器、处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成上述任一方法所述的步骤。

作为本发明的第三个实施例:一种计算机可读存储介质,其上运行有计算机指令,所述计算机指令被处理器运行时,完成上述任一方法所述的步骤。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1