开发者社区> 付书涛> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

用简历实体模型分析人力资源情况

简介: HR妹子说校招季来了,简历铺天盖地,随便看了几个,不得不说现在的简历实在是太“卷”了。我就突然很想分析下今年的校招投递的简历的整体情况。无意中发现modelscope里提供了简历实体识别的模型。提供了对简历里几种重要实体的识别(https://modelscope.cn/#/models/damo/nlp_raner_named-entity-recognition_chinese-base-resume/summary)可以拿来用下。 真实的投递简历当然是不能公开的啦,这里就以热心网友提供为公开的简历数据(https://paperswithcode.com/dataset/resume-n
+关注继续查看
福利推荐:阿里云、腾讯云、华为云等大品牌云产品全线2折优惠活动来袭,4核8G云服务器899元/3年,新老用户共享优惠,点击这里立即抢购>>>


-------------------我是正文分割线---------------------

分析流程

  1. 将简历内容调用简历实体识别模型识别实体内容,调用方法参考官方给出的代码范例。
  2. 将分析结果存储到hive并进行数据分析。
  3. 对接FineBI进行数据展示。

分析结果

我选了三个实体类型:专业、学历、职称 (Emm, 其实很想选学校,但是这个模型不区分学校和企业)

数据量总共1508条,识别出有专业的有20条,有学历的数据有108条,有职称的数据有695条。(Emm, 为啥有人不写专业呢)

ODS(hive)=>DWS(hive)=>APP(mysql)

话不多说,上图:

image

学历大部分集中在大专以上,本科居多,可能是数据都是在职员工的简历吧,如果是现在的校招简历,一沓一沓的硕士。

职称看起来都是很高级的职位,可能是数据来源是公开简历,我等小透明也不会去公开简历。

专业集中在经管类,对着职称一票的经理董事,想问下我等码农专业还有机会吗?

最后,说下总体的使用感受吧:

  1. 识别准确率还是蛮高的,对行业、学历、职称的识别度较高,几乎没有识别错的,就是跑的有点慢 (小pc瑟瑟发抖)
  2. 单是一个抽取模型,不能将同义词进行归一,如识别出来大学本科、本科、本科学历,对BI还是有点不够用。
  3. 实体类型有点少,ORG类型有点粗,不能区分学校和企业。这个好像是原始训练数据就是这样?


附件

  1. 模型调用
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
import json
ner_pipeline = pipeline(Tasks.named_entity_recognition, 'damo/nlp_raner_named-entity-recognition_chinese-base-resume')
result_file = open("./result.txt", "w", encoding="utf-8")
with open("./test.txt", "r", encoding="utf-8") as f:
    for line in f.readlines():
        result = ner_pipeline(line)
        result_file.write(json.dumps(result) + "\n")
result_file.close()
  1. ner结果

result.txt

  1. 生成ODS并导入到hive
ods_f = open("ods.csv", "w", encoding="utf-8")
with open("./result.txt", 'r', encoding="utf-8") as f:
    for line in f.readlines():
        output = eval(line).get("output")
        print(output)
        for type_list in output:
            dict_one = {}
            dict_one[type_list.get("type")] = type_list.get("span")
            name = dict_one.get("NAME", '-1')
            occupation = dict_one.get("PRO", "-1")
            education = dict_one.get("EDU", '-1')
            title = dict_one.get("TITLE", '-1')
            s1 = name+"\t"+occupation+"\t"+education+"\t"+title+"\n"
            ods_f.write(s1)
ods_f.close()

ods.csv

--建库建表

create database jianli default character set utf8mb4 collate UTF8MB4_UNICODE_CI;
CREATE TABLE jianli_ods (
  name VARCHAR(30),
  education VARCHAR(30),
  occupation VARCHAR(30),
  title VARCHAR(30)
) ;
load data local inpath '/root/ods.csv' into table jianli_ods  partition(create_day='2022-08-16');
  1. 生成DWS(hive中操作)

-- 建库建表

USE jianli;
CREATE TABLE jianli_app (
  group_type VARCHAR(30),
  occupation_name VARCHAR(30),
  occupation_count INT,
  education_name VARCHAR(30),
  education_count INT,
  title_name VARCHAR(30),
  title_count INT
) row format delimited fields terminated by '\t' stored as textfile;
INSERT INTO jianli.jianli_app(group_type, occupation_name, occupation_count, education_name, education_count, title_name,title_count) 
SELECT
'1' as group_type,
occupation as occupation_name, 
count(name) as occupation_count, 
'-1' as education_name, 
0 as education_count, 
'-1' as title_name, 
0 as title_count
from jianli.jianli_ods
group by occupation;
INSERT INTO jianli.jianli_app(group_type, occupation_name, occupation_count, education_name, education_count, title_name,title_count) 
SELECT
'2' as group_type,
'-1' as occupation_name, 
0 as occupation_count, 
education as education_name, 
count(name) as education_count, 
'-1' as title_name, 
0 as title_count
from jianli.jianli_ods
group by education;
INSERT INTO jianli.jianli_app(group_type, occupation_name, occupation_count, education_name, education_count, title_name,title_count) 
SELECT
'3' as group_type,
'-1' as occupation_name, 
0 as occupation_count, 
'-1' as education_name, 
0 as education_count, 
title as title_name, 
count(name) as title_count
from jianli.jianli_ods
group by title;
sqoop export \
--connect jdbc:mysql://xx.xx.xx.xx:3306/jianli \
--username root --password xxxx \
--table jianli_app \ 
--hcatalog-database jianli \ 
--hcatalog-table jianli_app \ 
-m 1
  1. mysql对接FineBI

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
5个小技巧彻底搞懂JVM内存模型
本篇文章将重点分析jvm,涉及到的内容包括jvm内存模型,类加载器,GC回收算法,GC回收器,整体偏向于理论。本篇文章不适合初学者
124 0
NIO&AIO编程模型
NIO&AIO编程模型
134 0
SAP CAP 编程模型简介
SAP CAP 编程模型简介
189 0
SAP CAP 编程模型简介
SAP CAP 编程模型简介
186 0
Quick BI数据分析故事:人力资源监控分析
此系列为分析故事系列,以一个仪表板说明其背后的故事,以及如何利用Quick BI 解决问题实现业务价值。
552 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
团队和工程管理取舍
立即下载
团队和工程管理的取舍
立即下载
产品经理的硬技能-业务建模
立即下载


http://www.vxiaotou.com