软件人才需求分析系统的研究
2021-04-09四川信息职业技术学院软件学院周建儒
四川信息职业技术学院软件学院 周建儒
应用大数据技术从知名招聘网站采集软件技术人才的招聘信息,然后针对具体专业技术领域,分析目前人才市场需求的技术热点、人员需求量、工作经验等信息,并根据这些数据,设计不同专业方向的专业课程体系和核心课程中应含有的关键技术。这样能使人才培养与行业发展和企业实际人才需求紧密衔接。实践证明,用大数据技术辅助专业人才培养方案的设计是科学而有效的方法。
1 背景及系统需求
人才培养方案是高职院校实施专业人才培养的基本依据,发挥着至关重要的作用。2019年教育部发布的《关于职业院校专业人才培养方案制订与实施工作的指导意见》明确指出,职业院校要紧跟产业发展趋势和行业人才需求,建立健全行业企业、第三方评价机构等多方参与的专业人才培养方案动态调整机制。人才培养方案要与行业发展相契合。四川信息职业技术学院(以下简称我院)每年要召开专业建设研讨会,邀请企业的专业技术人员、行业专家参加人才培养方案的研讨和修订工作,听取专家的意见,并确定专业核心课程及关键技术。但是,这个过程中也存在一些问题。第一,由于专家自身对专业领域了解的不够全面,所以,提出的意见也有片面性。第二,由于专家从事技术领域不同,有时会针对同一个问题提出相互矛盾的意见。第三,人才培养方案的制订受主观因素影响较大,而且缺乏科学论证。要使人才培养方案更加科学并具有前瞻性,就必须有大量的实际数据做支撑,这些数据可以从知名招聘网站上爬取,比如前程无忧、智联招聘、拉钩网等。爬取的数据包括,岗位名称、公司名称、工作地点、学历要求、经验要求、薪资、职位描述、公司行业等。将爬取的数据存储在数据库中,然后进行数据预处理,最后分析数据,得出与工作岗位相对应且需求广泛的专业技术、专业知识、专业课程。这些具体的技术需求,就是修订人才培养方案中专业课程体系的依据。这样做的目地是使学校传授的专业知识与企业实际需求相衔接。
2 系统设计
软件人才需求分析系统是使用python语言,基于Scrapy框架编写完成。系统有四个模块,分别是数据爬虫模块,数据存储模块,数据预处理模块,数据分析模块。
2.1 爬虫设计
Scrapy是一个开源爬虫框架,它是为了爬取网站数据、提取结构性数据而编写的应用框架。它已经为用户实现了基础的必要功能,用户可以在框架的基础上根据自己的需求进行快速开发,实现具体的应用需求。该框架由引擎、调度器、下载器、Spiders、Item Pipelines、下载器中间件、Spider中间件构成,每个组件有不同的分工与功能。
Scrapy Engine:引擎是框架的核心,负责控制数据流在系统的所有组件中流动,并在相应动作发生时触发事件。Scheduler:调度器主要作用是存储待爬取的网址,并确定这些网址的下载优先级。Downloader:下载器是对网络中要爬取的页面资源进行下载,然后将这些数据传输给引擎,再由引擎传递给对应的爬取器进行处理。Spiders:爬取器是用户编写的用于分析Response并提取Item或额外跟进的URL的类。每个爬取器负责处理一个特定网站,用户可以根据自己的实际需求增加特定的爬取器。
在知名招聘网站上主要针对6个技术领域(Java、PHP、Python、HTML5、web前端、运维工程师)采集数据。数据包括公司名称、公司行业、公司规模、学历要求、工作经验、职位描述、薪资等。为了采集这些数据,首先要分析目标网站的网页层次结构和页面地址的命名规律,以便进行连续多个页面的数据爬取;然后分析网页源代码,定制爬取规则,并使用Xpath或者Beautiful Soup准确定位网页源码中的数据元素;最后是从调度器中取出每个URL交给引擎,爬取需要的数据。
2.2 数据存储
使用Scrapy框架编写的爬虫程序从招聘网站采集到的数据大多是非结构性的数据,Scrapy将解析的结果以字典的形式返回,但是python中字典缺少结构,在爬虫系统中使用不方便。可以使用Scrapy.Item类,Item提供了类似于字典的API,可以声明字段,保存结构化的数据。爬取的数据通过Item文件对数据进行格式化处理后,保存在MySQL数据库中。
2.3 数据预处理
数据清洗是数据预处理的第一步,是提高数据质量的有效方法。数据清洗的主要任务是提高数据的可用性,去除噪声、无关数据以及空值等。
数据清洗的基本规则:第一,去掉关键数据中的缺失值;第二,在一个区间内取值的数据用平均值替换,例如工作经验1-3年,就用浮点数2.0替换;第三,薪资转换为浮点数;第四,用jieba库对“岗位描述”进行分词,取出专业技术的关键词,例如Python、Redis、MongoDB等。将数据保存到Pandas库的DataFrame里,并按照清洗规则进行数据清洗。
将清洗后的数据逐条取出并构造出多个列表,例如公司列表、职位描述列表、薪资列表、工作经验列表、招聘人数列表等。然后,遍历每个列表,并通过定位或者包含字段或者正则表达式等方法,可以统计出需要的关键数据。
2.4 数据分析
将不同招聘网站的数据进行处理,转换成统一格式之后,可以使用Spark、Mapreduce等框架对数据进行统计和分析。Apache Spark是一个适合大规模数据处理,快速通用的计算引擎,它是一种基于内存分布数据集的开源集群计算环境,不仅提供交互式查询,还可以优化迭代工作负载。Mapreduce是面向大数据并行处理的计算模型。在本系统中分析统计的数据有公司列表数据、职位描述列表数据、薪资列表数据、工作经验列表数据、招聘人数列表数据等。其中核心是分析职位描述列表数据,包括专业技术要求、岗位职责、学历条件、招聘人数、工作地点等。通过数据分析获得每个专业方向目前市场需要的热点技术是哪些、需求量、区域分布、薪资水平、工作经验、公司规模及从事行业等详细信息。这些数据将为专业人才培养方案的设计提供有力的数据支撑。
3 系统应用
软件人才需求分析系统从招聘网站采集软件技术专业多个技术领域的人才需求数据,包括公司名称、公司行业、工作经验、招聘人数、职位描述等。将采集到的数据保存在数据库中,然后进行数据清洗和数据预处理,对数据进行分析。主要是针对每个技术领域分析该领域内企业需要掌握哪种技术的人才,需求量是多少,以及从事该岗位工作的基本条件和要求。例如工作经验、职业素养、学历条件等。通过分析这些数据就能掌握目前该技术领域的技术热点、市场需求情况、经验要求等情况。根据这些情况确定每个专业方向的办学规模,以及应该开设的专业技术核心课程、职业素质拓展类课程等。从而为专业人才培养方案的制订提供必要的数据支撑。这样可以有效的避免目前在人才培养方案设计过程中存在的行业信息来源比较局限,来自企业的专家由于各自从事技术领域不同而意见不一致等问题。用大数据分析技术辅助专业人才培养方案的调研和设计过程,从而科学有效地解决了以上问题,提高了人才培养方案设计的科学性,使人才培养方案与企业的实际需求紧密融合,使专业人才培养紧跟产业发展趋势和行业人才需求。
使用Scrapy框架和MySQL数据库设计了软件人才需求分析系统,该系统具有数据采集、数据存储、数据预处理、数据分析等功能,主要是从知名招聘网站采集软件技术专业多个技术领域的企业招聘信息,分析这些信息中的关键数据,为我院软件技术专业群各个专业方向人才培养方案的制订(修订)提供科学分析和方向指导,其目的是使专业人才培养紧跟行业发展趋势,专业技术要点以及专业课程体系与目前企业技术人才需求紧密结合,进而达到学校传授的技术更加有用、适用,提高学生的就业质量。该系统目前已经应用在软件技术群专业2019级人才培养方案的设计中,目前2019级的部分学生已经进入企业实习,2021年12月份将进行顶岗实习,目前软件专业97%的同学已经找到合适的企业进入专业实习,从企业的反馈信息分析,实习效果良好。这也说明了该系统在人才培养方案设计方面发挥了积极作用。同时也验证了将大数据技术应用在专业人才培养方案设计的方法是科学有效的,值得推广。