尹晶海 陈钰华
摘要:本文通过网络爬虫获取招聘网站的详细招聘信息,通过数据库对爬取的信息进行清洗和标准化等预处理操作。然后使用jieba分词对招聘信息进行文本分析,将分词后的招聘岗位关键词按照性质分为岗位、级别、领域、方向、职责等五大类,而将岗位技能要求分为年限、领域、方向、职责等四大类,最后结合关联算法对招聘信息进行关联分析和数据挖掘,获取岗位名称、岗位技能要求与招聘单位的规模、性质、待遇等相关要素的关系。通过生成的数学模型可以更好地了解Android相关岗位的具体技能要求与岗位的其他重要特征之间的联系。
关键词:文本挖掘;网络爬虫;Android;岗位数据分析
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2022)21-0001-03
开放科学(资源服务)标识码(OSID):
1 引言
随着移动互联网的飞速发展以及智能手机的快速普及,市场对移动开发类软件相关人才有着非常大的需求,而高等教育的课程体系设置和教学大纲的编写并未能充分考虑到市场对人才的实际需求,通常在教学知识点和课程设置方面不能满足企业对人才的实际需求,而大学生本身也亟须了解真实的人才技能需求状况以及知识技能的选择对用人单位性质、规模和待遇的影响,从而选择自己的学习方向以及补充自己的短板。
近年来,有不少研究学者在这方面进行了深入的研究。夏立新等人通过对就业相关的文本进行数据挖掘,提取专业、岗位和知识点之间的关系,形成了这三者的关系集合[1]。王萍利用文本挖掘技术构建了具有扩展性的人才市场需求分析模型,创建了专业相关的技能词典,并从多个角度和维度对人才市场、就业技能的需求进行了分析[2]。詹翠芬利用Python进行文本分词并构建关键词向量空间模型来完成数据预处理部分,通过K-means聚类完成岗位类型划分[3]。张俊峰通过爬虫技术采集招聘网站的岗位信息,利用NLP和机器学习等技术对招聘词典进行构建,同时分析了招聘岗位的需求特征[4]。刘畅将数据类岗位招聘数据运用NLP技术对非结构化的招聘信息进行数据预处理;结合主题模型与词嵌入技术构建主题词提取模型,提取出各数据类岗位基于不同需求主题的招聘需求主题词[5]。王召义等对职位描述信息进行分词,统计关键词的词频、词性和词序;再结合语言表述模式,确定核心关键词;最后快速查找核心关键词的邻近词,并对有意义的邻近词进行语义分析[6]。这些研究从多个角度对各类岗位所需的技能要求进行了相关的分析,但对于各项专业技能和综合能力与岗位待遇之间的具体关系,这些研究还比较少涉足。
本文则通过网络爬虫技术从招聘网站中爬取详细的招聘信息,然后对信息进行数据清洗和标准化等预处理操作。通过文本分析和数据挖掘技术对这些招聘信息进行数据建模,构建岗位关键词与招聘需求关键词与岗位待遇、公司性质与类别之间的复杂关系,通过准确的数据模型来指导高校制定与时俱进的培养计划,指导大学生选择最适合自己的以及性价比最高的领域和方向进行重点学习,让学校、大学生和企业都能从中获益。
2 信息采集与数据预处理
2.1数据获取
在IT类岗位招聘中,提供技术岗位信息最多的网站就是51job.com了,本文采用基于Python的爬虫程序逐条爬取北京、上海、广州和深圳等四个一线城市中与Android相关的工作岗位共10097条,经过数据清洗去掉了一些有数据缺漏的记录,得到的完整招聘信息共9716条。
2.2数据预处理
接下来就是对数据做预处理,包括同义词合并,比如APP、app和App,统一规范为App,又或者Android、android和安卓,统一规范为安卓等。除了岗位名称和岗位要求等文本类数据,招聘信息中还有最重要的待遇数据,这些数据采用的都是基于字符串的非标准化格式进行存储的,例如有1.8-2.5万/月这种月薪格式的,还有12-24万/年这种年薪格式的,同时还有12-18K/月或者10000-15000/月这类格式的,如果要将岗位待遇与其他数据进行关联分析,则必须将这些数据标准化,本文采用SQL脚本将岗位薪资待遇统一设置为xxxx元/年,采用lowmoney和highmoney两个字段分别存储低位年薪和高位年薪,以方便后续的统计分析和比对。
2.3數据整理
爬虫爬取的原始数据集包含岗位名称、岗位薪资、公司名称、经验要求、公司地址、技能要求、岗位职责、公司类型、公司规模、所在行业等10个关键字段,为了方便后续的数据分析,又增加了薪资上限、薪资下限、岗位类型、业务领域、岗位级别、技能列表、职责列表等辅助字段。对其中的字典型字段进行了标准化操作,例如:
经过加工和整理后,整个数据集一共9716条记录,每条记录有17个字段,所有关键字段均已经进行了数据清洗和标准化操作。
3 数据分析
3.1岗位名称分词
每个招聘岗位的名称中包含着大量岗位相关的信息。本文选取其中几个代表性的岗位来进行个体分析:
安卓高级测试工程师:分词结果为安卓/高级/测试/工程师
C++/Golang服务器后端研发工程师:分词结果为C++/Golang/服务器/后端/研发/工程师
工业App开发总监:分词结果为工业/App/开发/总监
从上面的个体分析中可以看出,通常岗位名称中包含以下四类信息。
岗位类型:测试、研发、开发
业务领域:服务器、后端、工业
岗位级别:高级、总监
技术方向:安卓、C++、Golang
基于这四大类关键词,本文采用Python的jieba包首先对全部的岗位名称进行分词,得到的分词内容列表再删除停用词,然后利用TF-IDF算法对关键词进行抽取,按照TF-IDF特征值和词频抽取前100位的关键词进行分析,发现其中的非岗位描述词汇则将其加入停用词表,如果还存在同义词或者相同词汇的不同书写方式,则返回到前面进行相应的数据预处理,然后再将更新后的数据进行文本分析,具体流程如图1所示。
最终获取的岗位关键词按照之前设定的分类规则,将排名前100的关键词分为以下几类:
岗位级别:高级、经理、资深、专员、主程、主管、实习生、总监、中级、项目经理、初级、助理、中高级、专家。
岗位类型:工程师、开发、测试、设计师、软件测试、软件开发、研发、产品、架构师、技术、推广、交互、运营、UX、平台、程序员、设计、售前、程序开发、全栈、UE、运维、商务、销售、渠道、技术支持、讲师。
技术方向:安卓、Web、Java、C++、ReactNative、Unity、PHP、C#、Flutter、Framework、cocos。
业务领域(应用):App、软件、系统、游戏、前端、手游、算法、手机、应用软件、抖音、音视频、音频、自动化、视频、系统软件、AI……。
业务领域(技术):前端开发、UI、驱动、嵌入式软件、客户端、嵌入式、Linux、SDK、硬件、Framework、多媒体、FAE、逆向、BSP、Camera……。
3.2 岗位所在行业分类
这9716个岗位分属58个行业,本文对所有数据进行分类统计,并将岗位数量在200以下的行业全部合并到其他行业中,最后生成的图表如图2所示:
3.3岗位技能要求分词
对全部的岗位技能要求进行分词,排名在前面的关键词会出现很多的非技术性词汇,例如:熟悉、开发、经验、优先、能力、以上学历、工作、编程、设计、精通、相关、团队等,这些词汇对学生选择学习方向和领域没有帮助,因此本文将这些词汇加入停用词表,然后循环多次,直至排名靠前的关键词全部变成技术性词汇。最终的结果如图3所示。
其中按照词频统计,除去Android以外超过1000的关键词如表2所示:
这些关键词都是与Android岗位密切相关的专业词汇,在招聘单位的岗位技能要求中出现频率非常高,说明精通这些技术和知识的人才,目前的市场需求非常大。
4 关联分析
通过将岗位需求的关键词与每个岗位的低位和高位收入相关联,得出每个关键词所关联岗位的高低位收入的平均值,如图4所示:
其中高位与低位均排名第一的为引擎,而调优、音视频、内核、驱动等关键词所关联的收入都相对比较高。说明和这几项技能相关联的岗位能提供较好的待遇。而如果以行业进行划分,将不同行业的岗位与企业所提供的待遇以及岗位数量相互关联,并去除其中提供岗位人数少于100的行业,则得到图5所示的结果,待遇最好的行业是汽车及零配件、专业服务、金融投资证券等非IT行业,说明这些行业提供的IT岗位更具有吸引力,但是从需求人数来看,最优的选择依旧首选互联网与电子商务,其次是计算机软件,这两个行业不但具有最多的需求人数,同时也具备较高的收入水平。
5 结论
本文以前程无忧平台的Android相关岗位为基础数据,通过文本分词与关联分析,挖掘了岗位招聘数据背后的一些重要信息[7-8]。分析结果显示,与该类岗位关联比较紧密的技能包括Java、UI、App、调试、架构、iOS、C++、Linux、网络、游戏等,而从待遇的角度来看,引擎、调优、音视频、内核、驱动才是最值得花时间深入钻研的领域,另外从行业角度分析,安卓开发人员选择汽车、专业服务与金融投资证券的收入最高,而考虑到就业需求数量与稳定性,互联网、电子商务与软件行业则是大多数人的最优选择。
参考文献:
[1] 夏立新,楚林,王忠义,等.基于网络文本挖掘的就业知识需求关系构建[J].图书情报知识,2016(1):94-100.
[2] 王萍.基于Web文本挖掘的电子商务专业人才市场需求研究[D].重庆:重庆工商大学,2016.
[3] 詹翠芬.基于数据挖掘的互联网行业岗位类型分析[J].计算机产品与流通,2018(7):136-138.
[4] 张俊峰.国内网站招聘岗位需求特征挖掘及其应用研究[D].蚌埠:安徽财经大学,2017.
[5] 劉畅.数据类岗位招聘需求信息研究[D].兰州:兰州财经大学,2019.
[6] 王召义,薛晨杰,刘玉林.基于邻近词分析的电子商务技能需求分析[J].信息资源管理学报,2018,8(2):113-121.
[7] 许强永.IT类招聘信息统计结果研究[J].计算机教育,2012(23):49-53.
[8] 张俊峰,魏瑞斌.国内招聘类网站的数据类岗位人才需求特征挖掘[J].情报杂志,2018,37(6):176-182.
【通联编辑:唐一东】