大数据技术在专业人才培养方案中的应用实践
2023-06-25林家全
摘 要:党的二十大报告指出,人才是第一资源。学校要培养符合新时代高质量发展的人才,一定程度上取决于学校专业人才培养方案的定位、培养目标、课程设置。如何利用大数据技术全面准确分析市场用人需求,合理制定专业人才培养方案,这是解决市场需求和人才培养不匹配的一个重要课题。探索大数据技术在人才培养方案中的应用,促进专业人才培养方案的精准制定,满足行业对专业人才的需求,解决人才培养和市场需求两张皮的问题具有重要意义。
关键词:大数据;爬虫技术;人才培养
中图分类号:TP391 文献标识码:A 文章编号:2096-4706(2023)08-0117-05
Abstract: The report of the 20th national congress of the communist party of China points out that talent is the first resource. Schools want to cultivate high-quality talents in line with the development of the new era, to a certain extent, depends on the orientation, training objectives and curriculum setting of the professional talent training program. How to use big data technology to analyze the market employment demand and make a reasonable and professional talent training program is an important issue to solve the mismatch between market demand and talent training. To explore the application of big data technology in talent training program, to promote the accurate formulation of professional talent training program, and to meet the needs of the industry for professional talent, it is of great significance to solve the problem of talent training and market demand.
Keywords: big data; crawler technology; talent training
0 引 言
党的二十大报告指出:实施科教兴国战略,强化现代化建設人才支撑。必须坚持科技是第一生产力、人才是第一资源、创新是第一动力。学校是培养人才的摇篮,专业人才培养方案是落实专业人才培养的重要纲领文件。学校如何高质量培养新时代专业技术技能人才,满足社会发展人才需要,这是学校和社会面临的共同难题。学校如何利用大数据技术,科学、合理、准确的制定人才培养目标,专业技能目标、岗位能力培养目标,科学预判学生就业岗位群、薪资待遇和发展前景,努力解决社会用人需求和人才培养之间的壁垒,具有重大意义。
1 专业人才培养方案制定存在的问题
1.1 人才培养定位与市场岗位需求不匹配
学校专业人才培养方案的制定虽然开展需求调研,但大部分专业教师只走访几家企业了解岗位用人需求,走访企业数量有限,企业的代表性不强,不能完全代表行业的用人需求。部分教师企业实践流于形式,没有深入一线,全面参与岗位相关工作,对专业人才培养核心技能和核心素养掌握不够透底,导致专业人才培养目标定位不准确,专业基础课、专业核心课程、专业拓展课程设置不合理,培养的专业技术技能人才不满足社会用人需求。学校没有合理应用大数据技术全面获取人才招聘需求信息,系统分析企业用人要求,科学预判未来人才需求的发展趋势,及时调整人才培养方案。
1.2 重形式轻内容
学校每年都要修订人才培养方案,把人才培养方案修订工作纳入学校重要工作来抓。人才培养方案的修订一般由专业带头人负责牵头,组织专业骨干教师、年轻教师和企业代表一起来修订人才培养方案。从面上来看,人才培养方案的制定队伍结构合理,形式比较符合实际。但从操作层面来看,专业带头人和骨干教师没有发挥核心作用,企业代表没有真正参与其中,提出合理的建议和意见。由于学校在选拔专业带头人有职称、学历等相关条件要求,满足条件的教师大部分都兼职行政工作,只是挂名专业带头人,没有全身心投入专业发展研究。骨干教师上课工作量大,忙于应付各种教学工作和教学检查,在人才的培养方案制定过程中没有投入大量的时间和精力。年轻教师精力充沛,是人才培养方案制定的真正操盘手和撰写人,但由于经验不足,专业研究不深,专业发展规划不清,导致质量不佳。
2 人才培养与市场需求的关系
2.1 人才的培养一定程度上取决于人才培养方案
人才培养就是要服务于中国特色社会主义高质量发展。中国特色社会主义伟大事业需要高素质、高技能人才支撑,需要培养一批大国工匠、能工巧匠、专业技术技能人才为社会经济高质量发展服务。学校是培养人的摇篮,人的培养体现在人才培养方案,这是落实为党育人,为国育才的具体体现。人才培养方案明确了培养的目标,培养对象、开设的主要课程、培养的形式、考核形式、毕业的要求等,都是很具体的,具有可操作性。人才培养的质量一定程度上取决于人才培养方案。
2.2 人才需求導向促进专业人才培养方案的调整
专业人才培养方案之所以每年定期修订,是社会发展和市场人才需求的必然要求。如何及时全面准确了解市场用人需求,合理调整人才培养方案,这是当前学校面临的共同难题。传统的市场调研已经不满足时代发展的要求,因此,我们要充分利用好互联网这个资源平台,发挥资源共享的作用;利用好大数据技术,有效开展数据的实时采集、加工、清洗、数据分析和可视化的作用,促进专业人才培养方案的精准调整,满足行业对专业人才的需求,解决两张皮的问题。
3 大数据技术在人才培养方案制定中的应用和实践
全面掌握企业用人岗位要求和岗位工作职责是制定人才培养方案的基础,是制定人才培养目标的先决条件。如何获取互联网的相关招聘信息,并有效的利用招聘信息要求,科学分析专业人才培养目标,确立专业核心课程,专业拓展课程,人才培养的模式,毕业相关要求,确保人才培养与市场需求有机融合,大数据技术在这过程中发挥了重要作用。大数据技术解决了市场岗位人才需求信息的获取,数据的加工、数据存储、数据的分析,能够形象直观、全面掌握人才需求的各个维度,对未来人才的需求具有预判性。
3.1 基于Python爬虫技术获取岗位需求信息
Python语言在大数据技术中占有重要地位,Python语言应用场景广,功能强大,可以实现数据的采集、数据的清洗和数据分析及可视化。Python爬虫技术应用广泛,能够实现网络数据采集,帮助学校全面了解市场岗位需求,精准制定人才培养方案。Python数据采集、数据清洗、数据分析及可视化解决方案有以下几点。
3.1.1 获取招聘网站数据的方法
在使用爬虫采集招聘数据前,我们需要确定网站目标,全面掌握网站的结构,分析其特点,才能有效确定获取数据的方法。HTTP请求的类型有get方法和post方法,在确定好目标网站后需要判断网站的请求类型。一般来说,get方法是一种常见的请求方式。Get方式要求服务器将URL定位的资源放到响应报文的数据部分,回送给客户端。在使用get方法时,请求的参数和对应的值都附加在URL后面,利用一个问号“?”代表URL的结尾与请求参数的开始。Post方法是指定资源提交数据的请求,如表单或者文件上传,数据被包含在请求体中。我们打开一个招聘网站一般是get方法请求一个页面。以前程无忧网为例,一是分析网址URL,通过分析URL地址的特点,找到翻页的规律,构造爬虫多页的方法。二是分析网站HTML代码的结构,熟悉常用的标签,找到对应数据的层叠关系,确定获取相应数据的方法。
大部分网站都有反爬虫机制,我们在利用Python获取数据过程中,要伪装成正常人点击查看网页内容,是利用正常的浏览器去访问,要控制好睡眠时间,否则利用爬虫获取数据就会失败。应对网站反爬虫的措施有以下几个方面:一是为爬虫设置Headers,在请求中添加User Agent等头部信息,模拟真实的浏览器。二是使用IP代理或者加大请求时间间隔来解决。IP代理可以实现每访问一次更换一个IP,绕过网站监测用户浏览行为。三是利用Selenium框架。对于动态网页,找到AJAX请求,分析具体参数和响应的具体含义,就可以利用requests模拟AJAX请求,得到需要的数据。
3.1.2 利用Python爬虫技术实现数据的批量采集
以无忧招聘网为例,通过分析网站结构,网站HTTP采用GET方式,根据查看源码确定获取数据的方法。采用Python爬虫技术实现无忧网招聘数据的获取,主要操作步骤有;一是安装和导入Python爬虫必要的包,如常用的pandas、urllib。二是通过无忧网检索大数据相关岗位的招聘信息,通过审查元素查看网站的代码结构,分析HTML的层级关系,找到招聘岗位的名称、发布时间、工资待遇、工作地点、工作经验、学历、工作职责、工作要求等信息,作为后期数据分析的必要字段。同时观察网页翻页的地址变化,找到翻页地址变化的规律,为获取多页数据提供方法依据。三是编写爬虫程序实现数据的批量采集。以大数据相关岗位数据采集为例,参考代码如下:
from webreptile import Worm
import pandas as pd
import sys
import urllib
sp = Worm()
spider={}
search_job='大数据'
spider['phantomjs']=False
spider['delimiter']=','
spider['thread']=True
spider['thread_block']=False
spider['fields']={'main_css':'//div[@class="dw_table"]/div[@class="el"]','field_css':['.//span[@class="t2"]/a[@target="_blank"]/text()','.//span[@class="t3"]/text()','.//span[@class="t4"]/text()','.//span[@class="t5"]/text()','.//p[@class="t1"]/span/a[@target="_blank"]/text()'],'href_css':'.//a/@href','only_href':True,'css':{'main_css':'//div[@class="bmsg job_msg inbox"]','field_css':['./text()']}}
fp=open(sys.argv[1],'a')
spider['file']=fp
str1=urllib.quote(search_job)
for i in range(1, 100):
url1='http://search.51job.com/list/000000,000000,0000,00,9,99,'+str1+',2,'
url2='.html?lang=c&stype=1&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&lonlat=0%2C0&radius=1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare='
url = url1 + str(i) + url2
spider['url']=url
b_c=sp.begin_spider(spider)
print (“數据采集完成!”)
3.2 招聘岗位数据处理与分析
3.2.1 数据清洗实践
在数据采集中,往往获取的数据不是格式不统一,在做数据分析前需要进行数据清洗操作,确保数据的格式一致,去掉数据中的脏数据,空数据。在本案例中主要对采集的招聘数据进行格式处理,如年月日的格式,薪酬资金的表示方式统一用阿拉伯数字,大小写的数据管理,内容的统一替换工作。在网络数据采集中,年月日有多种表示方法,统一为短横线来表示,薪酬待遇中,有用大写万元表示,也有阿拉伯数字表示,统一处理为阿拉伯数据表示,这些都是数据清洗的主要工作。数据清洗参考代码如下:
def min_pay(x):
if '-' in x and '月' in x:
tmp = x.split('-')
if '千' in tmp[1]:
return float(tmp[0]) * 1000
else:
return float(tmp[0]) * 10000
else:
t = re.findall(r"\d+\.?\d*", x)
if '千' in x:
return float(t[0]) * 1000
else:
return float(t[0]) * 10000
def max_pay(x):
if '-' in x and '月' in x:
tmp = x.split('-')
t=re.findall(r"\d+\.?\d*", tmp[1])
if '千' in tmp[1]:
return float(t[0]) * 1000
else:
return float(t[0]) * 10000
else:
t = re.findall(r"\d+\.?\d*", x)
if '千' in x:
return float(t[0]) * 1000
else:
return float(t[0]) * 10000
def area(x):
if '-' in x:
tmp = x.split('-')
return tmp[0]
else:
return x
filen1='job.csv'
if filen1!='':
df = pd.read_csv(filen1, delimiter=',',index_col=False, names=['company', 'area', 'pay', 'date', 'post', 'work'])
df = df.dropna()
df = df[df['pay'].str.contains('月')]
df['minpay'] = df['pay'].apply(lambda x: min_pay(x))
df['maxpay'] = df['pay'].apply(lambda x: max_pay(x))
df['area'] = df['area'].apply(lambda x: area(x))
df = df[df['maxpay'] > df['minpay']]
df['post'] = df['post'].str.upper()
df_w = df['post'].value_counts()
df_a = df['area'].value_counts()
pay_l = []
for i in range(0, len(df_w.index)):
pay_l.append([df_w.index[i], df[df['post'] == df_w.index[i]]['maxpay'].mean(),
df[df['post'] == df_w.index[i]]['minpay'].mean()])
df_pay = pd.DataFrame(pay_l, columns=['post', 'max', 'min'])
df_pay = df_pay.set_index('post')
pay_a = []
for i in range(0, len(df_a.index)):
pay_a.append([df_a.index[i], df[df['area'] == df_a.index[i]]['maxpay'].mean(),
df[df['area'] == df_a.index[i]]['minpay'].mean()])
df_areapay = pd.DataFrame(pay_a, columns=['area', 'max', 'min'])
df_areapay = df_areapay.set_index('area')
work = df['work'].str.cat(sep='')
work = work.replace('任职资格', '')
work = work.replace('岗位职责', '')
work = work.replace('工作描述', '')
work = work.replace('专业要求', '')
work = work.replace('岗位要求', '')
work = work.replace('工作职责', '')
work=work.upper()
seg = analyse.extract_tags(work, topK=50, withWeight=
True)
seg1 = np.array(seg)
labels = seg1[0:10, 0]
data = seg1[0:10, 1]
data = data.astype(np.float)
print ('数据整理分析成功!')
3.2.2 大数据招聘岗位能力要求分析
通过无忧网采集的招聘数据,其中一项就是岗位任职要求,这是学生就业所需要具备的基本条件,包括学历要求、专业技能要求、主要的工作职责、素质能力要求等。如大数据相关岗位要求熟练掌握Python语言编程,了解Java,熟悉linux开发环境,有扎实的数据结构和算法设计功底;熟悉Spark、Hadoop分布式计算编程;精通浏览器调试工具的各种功能及利用它的调试方法;熟悉Hadoop、Hive、Storm 等常用大数据处理平台;具备良好的代码编程习惯及文档编写能力;有较强的团队协作意识及独立解决技术问题的能力;这些都是人才培养方案中必须要了解清楚的,也是制定人才培养方案目标定位的要求。参考代码如下:
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import matplotlib.pylab as pylab
pylab.rcParams['font.sans-serif'] = ['SimHei']
figure1 = plt.figure(2, figsize=(12, 6))
G = gridspec.GridSpec(3, 3)
ax1 = figure1.add_subplot(G[0:2, :], polar=True)
angles = np.linspace(0, 2 * np.pi, 10, endpoint=False)
data = np.concatenate((data, [data[0]]))
angles = np.concatenate((angles, [angles[0]]))
ax1.plot(angles, data, 'bo-', linewidth=2)
ax1.fill(angles, data, facecolor='r', alpha=0.25)
ax1.set_thetagrids(angles * 180 / np.pi, labels, fontproperties="SimHei")
ax1.set_title(u"崗位要求雷达图", va='bottom', fontproperties
="SimHei")
ax1.set_rlim(0, data.max())
ax1.grid(True)
plt.show()
3.2.3 大数据岗位需求分析
在大数据岗位招聘需求中,通过对采集的数据进行分析,排名在前20名的岗位需求有大数据开发工程师、大数据工程师、大数据架构师、大数据研发工程师、大数据分析师、JAVA开发工程师、大数据产品经理、大数据分析工程师、大数据运维工程师、大数据讲师、PHP开发工程师、项目经理、大数据平台开发工程师等岗位,其中大数据开发工程师需求量最大,是市场紧缺人才。岗位需求分析参考代码为:
figure1 = plt.figure(2, figsize=(8, 6))
G = gridspec.GridSpec(3, 3)
ax1 = figure1.add_subplot(G[0:2, :])
df_w.head(20).plot(kind='bar', ax=ax1, label=u'工作岗位需求')
ax1.legend()
plt.show()
岗位需求分析图如图1所示。
3.2.4 大数据相关岗位薪资待遇分析
薪资待遇是学生就业关心的指标之一,也是人才培养目标定位的依据之一,学生通过专业的学习后能够胜任岗位工作,同时也要一个好的就业渠道,人才培养才能和市场接轨,专业才能走得更远。通过采集的数据,对数据中的薪资待遇进行分析,对岗位排名前20名的最高工资和最低工资进行分析,大数据架构师、JAVA架构师、大数据总监、大数据讲师、大数据平台开发工程师等岗位最高工资为28 000元至30 000元左右,最低工资为17 000元到20 000元左右。大数据工程师、大数据开发工程、大数据分析师、产品经理、项目经理、大数据运维工程师工资待遇为15 000左右,待遇总体较好。薪资待遇分析参考代码为:
figure1 = plt.figure(2, figsize=(8, 6))
G = gridspec.GridSpec(3, 3)
ax1 = figure1.add_subplot(G[0:2, :])
df_pay.head(20).plot(kind='bar', ax=ax1, label=u'崗位薪酬')
ax1.legend()
plt.show()
薪资待遇分析图如图2所示。
3.3 基于岗位需求分析完成人才培养方案的制定
3.3.1 大数据技术专业人才培养目标
人才培养目标定位是落实培养什么人,为谁培养人,怎样培养人的具体体现。人才培养目标既有素质目标和技能目标。通过上述大数据相关岗位分析明确技能目标为能够从事大数据平台搭建、数据挖掘、数据分析、大数据开发与服务等专业知识和技术技能,能面向大数据专业领域,大数据应用与服务产业链中从事大数据系统维护、管理、服务和数据分析等工作,适应大数据应用及服务行业发展趋势的德智体美劳全面发展的复合型技术技能人才。学生毕业三年后,能承担大数据系统维护、管理、服务,大数据分析、大数据开发岗位、达到大数据技术骨干水平。
3.3.2 大数据技术专业群和岗位群
大数据技术专业群可以结合学校现有的专业合理的组群。如学校开设大数据技术、云计算技术与应用、物联网技术、通信技术都可以组建大数据专业群。物联网技术作为大数据技术的底层,负责通过物联网技术、传感器技术来采集实时数据,作为数据分析的来源和基础设施,为数据分析提供硬件基础。通信技术作为数据传输通道和网络保障,负责网络组网和安全可靠传输,作为第二层基础设施和数据通信层,为上层数据分析提供可靠的网络环境。云计算技术与应用负责把采集和清洗的数据进行分布式存储和分布式计算,为大数据分析提供可靠的计算能力和数据存储保障。在这整个专业群组建过程中,需要分析组群逻辑,专业和专业的联系,每个专业在群的位置和作用,分析相关课程的联系。学生在就业过程中,有哪些相关岗位和岗位群,多渠道选择就业岗位。
3.3.3 大数据技术课程体系建设
在课程设置中,要充分考虑公共课、专业基础课、专业核心课、专业拓展课、群共享课。课程的设置除了按照国家规定必须开足和开满的公共课程外,专业课程设置尤为重要。通过市场岗位需求和岗位要求,合理设置专业课程。根据上述大数据技术相关岗位要求分析,大数据相关岗位招聘需要熟悉JAVA语言基础、数据库技术、Linux/CentOS操作系统、Python语言、Web开发技术、数据采集网络爬虫技术、Hadoop开发、数据处理分析、数据可视化工具应用、软件测试、网络基础等知识。学校应根据招聘网岗位和职责要求合理设置课程体系,厘清课程与课程之间的关联性、逻辑性,突出实用性,加大学生的实训课程比例,分方向多维培养学生,满足社会发展技能人才的需要。
4 结 论
学校专业人才培养方案的制定是一项重要工作,我们要应用好大数据技术在人才培养方案中的应用。通过大数据技术全面了解市场对专业人才的需求,岗位要求、能力要求、薪资待遇情况,准确定位专业人才培养目标和课程设置。建立网络招聘数据采集机制,组建专业人才培养方案数据采集、数据清洗、数据加工、数据分析的专业技术团队,实时掌握市场用人需求导向,为人才培养方案的制定提供参考依据,发挥大数据技术在人才培养方案的中作用。
参考文献:
[1] 叶惠仙,游金水.Python语言在大数据处理中的应用 [J].网络安全技术与应用,2021(5):51-54.
[2] 陈海虹.基于PHP的WEB应用系统单点登录的研究与实现 [J].浙江海洋学院学报:自然科学版,2010,29(1):84-88.
[3] 王崇刚.高职院校大数据技术与应用专业人才培养方案课程体系模块化设计的探索 [J].广东蚕业,2017,51(12):91.
[4] 徐留杰,翟江涛,杨康,等.一种多源网络安全威胁情报采集与封装技术 [J].网络安全技术与应用,2018(10):23-26.
[5] 聂云霞.新旧动能转换背景下会展经济与管理专业应用型人才培养改革思路探析 [J].教育现代化,2019,6(40):8-10.
[6] 丁发红.大数据技术在高职院校教学诊改中的应用研究 [J].无线互联科技,2021,18(10):105-106.
作者简介:林家全(1987—),男,汉族,贵州遵义人,讲师,网络信息中心副主任,本科,研究方向:大数据技术、网络技术。