R语者小case之——从简历文字生成履职表

简单材料:

陈*先生:1965年出生,中国国籍,无永久境外居留权,本科学历。1985年7月至1995年2月,任安徽省安庆市宿松财政局公务员;1995年3月至1997年2月,担任深圳华通会计师事务所项目经理;1997年3月至1998年10月,担任深圳冠利达必是食品公司财务经理;1998年11月至2004年5月,担任丽斯达日化(深圳)公司财务总监;2004年6月至2006年8月,担任富安娜家居股份有限公司财务总监;2006年11月至2007年10月,担任万达商业管理有限公司副总经理;2007年11月至2012年10月,担任深圳宇顺电子股份有限公司财务总监兼董事会秘书;2013年5月至2014年12月,担任深圳市骏达光电股份有限公司财务总监兼董事会秘书;2015年3月至2016年9月,任易天有限财务总监兼董事会秘书;2016年3月至今,任兴图科技监事;2016年9月至今,担任公司董事、副总经理、财务总监兼董事会秘书;2017年10月至今,担任微组半导体董事;2017年12月至今,担任中山易天董事。

将上述简历文字转为如下所示的履历表
image.png

我们观察下材料,可以发现其中标点符号使用得比较规范,简历的结构比较规整:每一段履历之间用分号隔开,任期与履职之间用逗号隔开。因此用R处理字符串的功能即可实现上述功能。

library(stringr)
library(tidyverse)
read_in <- readLines("resume.txt",encoding = "GB2312")
tmp0 <- read_in %>% strsplit("。") %>% 
      unlist %>% strsplit(";") %>% unlist #依次用中文标点符号:句号,分号进行分割
tmp0#看看拆分的结果
 [1] "陈*先生:1965年出生,中国国籍,无永久境外居留权,本科学历"               
 [2] "1985年7月至1995年2月,任安徽省安庆市宿松财政局公务员"                     
 [3] "1995年3月至1997年2月,担任深圳华通会计师事务所项目经理"                   
 [4] "1997年3月至1998年10月,担任深圳冠利达必是食品公司财务经理"                
 [5] "1998年11月至2004年5月,担任丽斯达日化(深圳)公司财务总监"                
 [6] "2004年6月至2006年8月,担任富安娜家居股份有限公司财务总监"                 
 [7] "2006年11月至2007年10月,担任万达商业管理有限公司副总经理"                 
 [8] "2007年11月至2012年10月,担任深圳宇顺电子股份有限公司财务总监兼董事会秘书" 
 [9] "2013年5月至2014年12月,担任深圳市骏达光电股份有限公司财务总监兼董事会秘书"
[10] "2015年3月至2016年9月,任易天有限财务总监兼董事会秘书"                     
[11] "2016年3月至今,任兴图科技监事"                                            
[12] "2016年9月至今,担任公司董事、副总经理、财务总监兼董事会秘书"              
[13] "2017年10月至今,担任微组半导体董事"                                       
[14] "2017年12月至今,担任中山易天董事"
tmp1<-tmp0[-1]
res<-str_split_fixed(tmp1,",",2)  %>% as.data.frame
res
                       V1                                                 V2
1    19857月至19952月                     任安徽省安庆市宿松财政局公务员
2    19953月至19972月                   担任深圳华通会计师事务所项目经理
3   19973月至199810月                 担任深圳冠利达必是食品公司财务经理
4   199811月至20045月                 担任丽斯达日化(深圳)公司财务总监
5    20046月至20068月                 担任富安娜家居股份有限公司财务总监
6  200611月至200710月                   担任万达商业管理有限公司副总经理
7  200711月至201210月   担任深圳宇顺电子股份有限公司财务总监兼董事会秘书
8   20135月至201412月 担任深圳市骏达光电股份有限公司财务总监兼董事会秘书
9    20153月至20169月                     任易天有限财务总监兼董事会秘书
10          20163月至今                                     任兴图科技监事
11          20169月至今       担任公司董事、副总经理、财务总监兼董事会秘书
12         201710月至今                                 担任微组半导体董事
13         201712月至今                                   担任中山易天董事

我们使用了强大的%>%运算符,将strsplit函数与unlist函数搭配使用。
再使用str_split_fixed函数将","逗号作为分隔符,将结果拆分为两列的数据,并转为data.frame。
这里我们用到了两种分割字符的函数:R自带的strsplit和stringr包的str_split_fixed。strsplit的结果为list,所以我们用了unlist与之衔接,str_split_fixed需要指定分割为多少份。

上述为材料的标点使用比较规范的例子,如果简历的标点使用不规范,那么又将如何处理?

复杂材料:

郭**,女,中国国籍,无境外永久居留权,1958年8月出生,现任侨银环保董事长。1977年11月至2008年8月,任职于湖南省邵阳市皮件厂;2006年2月至2009年10月担任霖泽园林、侨银有限监事,2009年10月至2015年12月担任侨银有限执行董事、总经理,2015年12月至2016年6月担任侨银有限执行董事,2016年6月至今担任侨银环保董事长。

可以发现这段材料标点符号的使用并不很规范,履职之间有多种符号分隔,比如分号、逗号,且任期与履职之间有些并没有逗号分隔。这种情况如何进行转换呢?这个时候就要正则表达式这个神器隆重登场,TB搜索店铺:R语者,留言“履职表”,揭晓答案并获取本次全部的学习材料和代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值