基于文本的职位画像系统研究与设计

2020-07-09 21:26李苏龙王大庆董晓玮
现代信息科技 2020年23期
关键词:文本挖掘数据挖掘

李苏龙 王大庆 董晓玮

摘  要:职位画像系统的主要目的就是利用现代编程技术,将定量数据与定性分析相结合,构建出职位画像系统,并将结果可视化,为企业、求职者和第三方学校、培训机构之间提供参考帮助。文章基于文本分析,将定量数据与定性分析的方法相结合,运用基于分布式爬虫技术,进行文本挖掘、数据挖掘,帮助企业找到合适的人才,求职者明确市场需求找准自身定位,也为学校、培训机构的领导层提供数据决策支持和行业洞察功能。

关键词:职位画像系统;分布式爬虫技术;数据挖掘;文本挖掘

中图分类号:TP311.52      文献标识码:A 文章编号:2096-4706(2020)23-0067-05

Research and Design of Position Portrait System Based on Text

LI Sulong,WANG Daqing,DONG Xiaowei

(Xuzhou University of Technology,Xuzhou  221018,China)

Abstract:The main purpose of position portrait system is to use modern programming technology,combining quantitative data and qualitative analysis,build a position portrait system,and the results visualization,so as to provide reference and help for enterprises,job seekers,third-party schools and training institutions. Based on text analysis,this paper combines quantitative data with qualitative analysis,and uses distributed crawler technology to carry out text mining and data mining,so as to help enterprises find suitable talents,job seekers clarify market demand,find their own positioning,and provide data decision support and industry insight function for the leadership of schools and training institutions.

Keywords:position portrait system;distributed crawler technology;data mining;text mining

0  引  言

長期以来,企业、求职者和第三方学校、培训机构之间都面临着棘手的问题:一方面企业无职位定义、找不到合适的员工、处于长期动荡的局面;另一方面,求职者求职难、不知道企业要什么、不清楚自己会什么;同时,作为第三方的学校、培训结构以及猎头公司“望眼欲穿”很想抓住市场的痛点,但苦于招生困难、就业率低、学习的理与企业需求不匹配。

通过对以上问题的分析和对职位画像系统的研究,结合徐州工程学院实际情况,本项目提出了基于文本的职位画像系统(以下均简称为职位画像系统)的研究与设计。一方面帮助企业找到合适的人才,另一方面求职者明确市场需求找准自身定位,同时也为第三方学校、培训机构的领导层提供数据决策支持和行业洞察的功能。解决人才与岗位之间不匹配的矛盾,方便人才快速便捷的找到适合自己的工作岗位,企业也可以根据人才画像找到对应岗位技能需求的人才。

1  研究意义

职位画像作为用户画像的一种,不仅可以完美的抽象出一个用户的全貌信息,还可以对用户的职位信息做出精准的判断,进而了解到职位的薪资水平和地理分布,挖掘出潜在的数据价值。

基于文本的职位画像系统的研究与设计既能够帮助企业找到合适的人才,提高企业的核心竞争力;帮助求职者明确市场需求找准自身定位,最大限度地体现自身价值;同时也为第三方的学校、培训机构中的领导层提供数据决策支持,保证授课内容紧跟市场潮流,实时更新市场需求信息,协助教学产品的研发。

2  研究目标及主要内容

2.1  研究目标

职位画像是对职位的一种可视化描述形式。通过对职位建立画像,能过形象直观地标识职位的具体特征,把数量庞大且杂乱无章的职位数据用简单易懂的形式表示出来。

本系统采用以Python为主,辅以JavaScript编程语言结合Tableau桌面应用软件、MySQL和Linux的形式进行系统开发,采用文本分析的方法,将定量数据与定性分析相结合,运用基于网络爬虫技术,有效的抓取全行业“准实时”数据,进行文本挖掘、数据挖掘,分析各种职位的需求,对职位进行准确描述,设计形成了特定职位的画像。

2.2  项目的需求分析和总体设计

2.2.1  系统可视化界面

从多个角度分析职位数据特征,形成可视化报表,对职位画像系统进行系统的分析:

(1)职位数据统计。不同的时间对于不同专业方向,例如大数据、数据分析、HTML5等岗位的需求数是有所变化的,职位数据统计如图1所示。

(2)Java系统架构师职位画像。Java系统架构师的职位技能要求中,架构设计最为明显,这是由于所有职位描述中,架构设计一词出现的频率最高,也就是出现的次数最多,理解为Java系统架构师职位画像中架构设计为主要要求技能,具体地说计算机体系结构指的是计算机系统设计的观念与架构,描述计算机在的设计原则。该架构确定一个计算机设计的部件功能,部件间接口并且计算机体系结构着重于负责了计算机架构的中心功能:计算的中央处理器内部的运行动作与存储器的访问。此外,还有其他技能,例如:数据分析、用户体验、Axure等[1]。

2.2.2  系统非功能性需求

结合目前计算机和网络资源的优势,利用国内外现有成果,最大限度发挥系统投资效益,本系统以运用、管理、维护、保障投资持续性为原则。除上述总体设计原则外,本系统的设计应充分考虑以下非功能性需求[2]:

(1)开放性。该系统可独立作为一个完整的系统平台使用,并可方便地集成到现有的系统中。

(2)實用性。进行系统设计的首要目标是提高系统的实用性,系统需要满足信息管理的基本要求。

(3)灵活性。作为一个计算机应用系统,随着需求的变化,系统应具有良好的适应性,可以灵活满足不同用户的访问需求

(4)稳定性。系统采用多层架构,基于协同开发方法,具有较高的可靠性和稳定性。

2.2.3  系统功能性需求

结合系统功能,本系统功能性需求包括:

(1)系统功能。本系统主要功能模块分为信息采集模块和数据挖掘模块。其中,信息采集模块包括网络通信、资源管理、数据分析和存储管理。数据挖掘模块包括对数据进行预处理、回归分析、决策树分析等。此外,还应考虑一些常用功能,以考虑用户的不同需求。可以将上述功能再进行细分,如用户界面等。

(2)系统用例。职位画像系统的主要实施目标是进行架设网络平台,最后,数据挖掘技术使系统能够对大量数据进行分析和处理,形成具体的工作画像,并为相关人员提供决策支持,从而提高系统的智能化水平。

图2左侧:一般用户是普通求职者或企业招聘经理。通过查询、查看、下载结果等功能,可以查看在线招聘岗位信息的数据挖掘结果。

图2右侧:管理员、一般用户和分析人员可以对系统的各个功能模块进行操作,最终实现数据挖掘和知识发现功能。

(3)系统体系架构。由图3所示系统架构可知,整个系统分为:数据源层、数据采集层、数据存储层、数据预处理层、分词数据分析层(用户画像层)、职位画像应用层[3]。

(4)系统数据架构。将来自各个爬虫系统的数据根据多维应用主题对数据进行汇总后,进一步分类,建立统一的数据视图,构筑存储中心,形成统一的数据分析模型,以此共同组成完整的职位画像系统的数据架构[4]。

2.3  职位画像系统的详细设计

2.3.1  系统模块设计

职位画像系统总体包括三大部分:职位数据采集模块、数据预处理模块、职位画像模块。

职位数据采集模块:基于Python脚本语言,使用Web Spider技术,从指定的招聘网站获取招聘数据。

数据预处理模块:负责分析下载到本地数据库的在线招聘岗位信息,对爬取后的职位招聘信息作简单数据预处理工作。

职位画像模块:职位画像系统的核心处理模块,通过抽取经过预处理后的职位招聘数据,建立不同角度的数据结构模型,构建多层次职位画像。

对于上述三大部分,详细介绍:

(1)职位数据采集模块设计。常见大数据采集方法有系统日志采集、网络数据采集及其他数据采集方法。对职位信息的采集属于网络数据采集。网络数据采集是指通过网络爬虫公开API等方式从网站获取数据信息,抽取网页中的非结构化数据,通过页面解析成结构化数据,并保存到本地文件中。通用网络爬虫框架如图4所示。

(2)数据预处理模块设计。网站收集的大量原始招聘数据中存在大量的异常数据,严重影响了数据挖掘建模的有效性,可能导致搜索结果偏差。因此,对数据进行清洗接着或者同时进行预处理,对于提高数据集的质量和最小化异常数据是非常重要的。以此来提高数据集的质量,尽可能减少异常数据对结果的影响。数据预处理一般包括步骤:初始数据的获取、数据清洗、数据继承和融合、数据变换、数据规约、数据挖掘知识评价等。如图5所示。

(3)职位画像模块设计。专业技术领域中,职位信息一般都含有对要求技能的描述。而在众多职位中被频繁提到的技能,正是目前大多企业正广泛使用的技术。基于此,假定词条出现的次数越多就表明职位对该词条的需求越大,即词条对应的词频越大,词条需求度就越高。通过专业技能词条的出现频率来度量职位技能的需求度,具体包括如下:

1)词条:根据爬取数据的各个职位描述,对职位描述进行分词得到词条。

2)词频:分词后,针对词语出现的频率进行统计得到词频。

3)词条长度:定义每个词条的字符个数为词条长度。

4)职位需求度量:词条出现的词频越大,表明职位对该词条的需求越大。

职位画像模块是职位画像系统的核心处理模块,通过抽取经过预处理后的职位招聘数据,建立不同角度的数据结构模型,构建多层次职位画像。

2.3.2  数据库设计

一个好的数据库产品不等于就有一个好的应用系统,如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器端程序的编写和维护的难度,而且将会影响系统实际运行的性能。本系统的数据库优化设计主要包含以下几个方面:

(1)数据库优化设计。数据库模型不仅会影响编写和维护客户端和服务器端程序的难易度,还会影响系统运行的实际性能。本系统的数据库优化设计主要包含以下几个方面[5]:

1)索引。创建索引,可以在查询的过程中使用优化隐藏器,提高系统的性能。

2)存储过程。存储过程过多,无论是对版本控制、开发、部署还是对迁移数据库都会带来很大的影响。所以在设计过程中,尽可能少的使用存储过程,对于功能需求可以参考使用相关技术替代,如“对象/关系映射”等。

3)弱关联。在关系型数据库中,通过表中的字段来设计联系,表和表之间的外键约束尽可能少,能够方便对表字段和表结构的调整和重构。

4)并发控制。如果对并发操作不加以控制,就可能会造成读取和存储错误,破坏数据库的一致性。

(2)數据库逻辑结构设计。对职位画像系统的详细设计,根据系统要求的分析和设计,分别实现和分析了三个主要功能模块,给出了系统实现和数据挖掘过程的细节。关于开发工具的选择,本文试图选择更新的版本。关于职位信息收集模块,系统正在使用基于Python语言的Web Spider模块。使用者可以自订收集网址,以收集网站下方的子链接资料。对于数据预处理模块,将采集来的经过清洗、变换、规约、集成处理后的有用信息存储到本地数据库当中;职位画像模块采用回归分析、决策树等分析方法,对于不同的分词进行处理,形成特定的职位画像。

(3)数据库实现。部分代码为:

# -*- coding:utf-8 -*-

"""

Created on Mon Jan 25 11:26:29 2016

@author:ifuturedata@icloud.com

mongodb数据库连接类

"""

import sys

reload(sys)

import  pymongo

sys.setdefaultencoding('utf-8')

class dbMongo:

def __init__(self):

self.OpenDB()

self.def_collection()

def OpenDB(self):

user=''

passwd=''

host=''

port=''

auth_db=''

uri = "mongodb://"+user+":"+passwd+"@"+host+":"+port+"/"+auth_db+"?authMechanism=SCRAM-SHA-1"

self.con = pymongo.MongoClient(uri,connect= False)

def def_collection(self):

self.db = self.con['qq']

self.c1_ods_qq_msg = self.db['ods_qq_msg']

self.c2_qq_group_member = self.db['qq_group_member']

def closeDB(self):

self.con.close()

def PrintResult(self,rows):

for row in rows:

for key in row.keys():

print row[key]

print '\n'

class dbMongoTest:

def __init__(self):

self.OpenDB()

self.def_collection()

def OpenDB(self):

user = 'root'

passwd = 'ibfroot'

host = 'db.ibf.cn'

port = '27019'

auth_db = 'admin'

uri = "mongodb://" + user + ":" + passwd + "@" + host + ":" + port + "/" + auth_db + "?authMechanism= SCRAM-SHA-1"

self.con = pymongo.MongoClient(uri,connect=False)

def def_collection(self):

self.db = self.con['resume']

self.c1_echarts = self.db['echarts']

def closeDB(self):

self.con.close()

def PrintResult(self,rows):

for row in rows:

for key in row.keys():

print row[key]

print '\n'

# class dbMongoInit:

# init_dict={'con':{'user':'',

#   'passwd':'',

#   'host':'',

#   'port':'',

#   'auth_db':''

#   },

# 'db_use':{'db':'',

#   'col':[]}

# }

#

# def __init__(self,init_dict):

# self.init_dict=init_dict

# self.OpenDB()

# self.def_collection()

#

# def OpenDB(self):

# uri = "mongodb://"+self.init_dict['con']['user']+":"+self.init_dict['con']['passwd']+"@"+ \

#  self.init_dict['con']['host']+":"+self.init_dict['con']['port']+\

#  "/"+self.init_dict['con']['auth_db']+"?authMechanism=SCRAM-SHA-1"

# self.con = pymongo.MongoClient(uri,connect=False)

#

# def def_collection(self):

# self.db = self.con[self.init_dict['db_use']['db']]

# c_id=0

# for colection in self.init_dict['db_use']['col']:

# c_id+=1

# exec("self.c{0[0]}_{0[1]}=self.db['{0[2]}']".format([c_id,colection,colection]))

#

# def closeDB(self):

# self.con.close()

#

# def PrintResult(self,rows):

# for row in rows:

# for key in row.keys():

# print row[key]

# print '\n'

#

# @classmethod

# def db_mongo_use(cls):

# cls.init_dict={'con':{'user':'root',

# 'passwd':'ibfroot',

# 'host':'db.ibf.cn',

# 'port':'27019',

# 'auth_db':'admin'

# },

# 'db_use':{'db':'resume',

# 'col':['echarts']}

# }

# return dbMongoInit(cls.init_dict)

………

3  結  论

数据挖掘一方面对历史数据进行统计分析,总结过去,另一方面为今后的发展提供宝贵的信息。由于笔者在这一领域的时间和理解有限,对该系统的研究还存在一些不足,在设计开发的系统中还有许多地方需要加强和改进,例如需要加强对采集系统逻辑处理策略的研究等。作者对本论文的研究和开发过程进行总结和归纳后,认为下一阶段的研究应侧重于以下方面:

(1)网页数据预处理。Web数据结构越来越复杂,Web数据分析中需要考虑许多问题,例如有效填充默认属性、转换数据类型、减小文本大小和检查属性一致性。为了解决这些问题,还需要进行更多的系统研究。

(2)效率问题。随着网上招聘数据量的成倍增加,我们应该考虑采用更有效、更先进的技术来实现网络爬虫功能,并利用有效的网页分析算法对网页进行快速准确的分析,提高网页收集效率。

(3)与现有企业信息系统无缝集成。如何将网络信息收集平台透明地纳入现有系统,是今后研究的重点之一。

参考文献:

[1] 刘海,卢慧,阮金花,等.基于“用户画像”挖掘的精准营销细分模型研究 [J].丝绸,2015,52(12):37-42.

[2] 郝胜宇,陈静仁.大数据时代用户画像助力企业实现精准化营销 [J].中国集体经济,2016,2(4):61-62.

[3] 王珊,王会举,覃雄派,等.架构大数据:挑战,现状与展望 [J].计算机学报,2011,34(10):1741-1752.

[4] 朱志远.基于数据挖掘的网络招聘系统的设计与实现 [D].成都:电子科技大学,2012:10-13.

[5] 韩家炜.数据挖掘:概念与技术 [M].北京:机械工业出版社,2000.

作者简介:李苏龙(1999—),男,汉族,江苏徐州人,本科在读,研究方向:信息与计算科学;王大庆(2000-)男,汉族,江苏连云港人,本科在读,研究方向:信息与计算科学;通讯作者:董晓玮(1980—),女,汉族,山东新泰人,实验师,硕士研究生,研究方向:软件工程及大数据处理。

猜你喜欢
文本挖掘数据挖掘
数据挖掘技术在内河航道维护管理中的应用研究
数据挖掘综述
软件工程领域中的异常数据挖掘算法
数据挖掘技术在电站设备故障分析中的应用
基于LDA模型的95598热点业务工单挖掘分析
文本数据挖掘在电子商务网站个性化推荐中的应用
从《远程教育》35年载文看远程教育研究趋势
基于R的医学大数据挖掘系统研究
慧眼识璞玉,妙手炼浑金
文本观点挖掘和情感分析的研究