简历解析之姓名识别

姓名识别是简历解析系统的核心组件之一,因为候选人姓名是一份简历最关键的几个字段之一,通常是第一个展示的字段,如果姓名识别出错,人们将会怀疑你接下来其他字段的解析效果,也很难相信你的解析技术能力。因此一个优秀的简历解析系统,必须达到极高的姓名解析准确率(比如98%以上)。

准确度

从技术角度来看,个人认为,80%、90%、95%、98%的准确率分别对应不同的技术能力等级(或者叫资源投入等级)。等级越高,投入越多,越往后,提升越难。

但很多人对准确率缺乏一个直观的理解,认为90%和95%的效果差别不大。实际上,5%的差异,意味着10000份简历里面前者会比后者多出500次错误,意味着每20份简历前者要比后者多出一次错误,也意味着人工校正将会花费更多的耗时。

ResumeSDK简历解析的姓名识别准确率,我们内部测试的准确率已经在99%左右,对开放数据的准确率差不多会在98%以上。

技术选型

姓名识别,从技术层面来说,可以分为这几个思路:

1) 基于规则;

2) 基于分类模型,比如NB、SVM、树模型等;

3) 基于序列标注,比如著名的CRF模型,以及加入深度学习的BiLSTM-CRF模型等;

简历里的姓名识别与常规的序列标注在场景上有很大的差别。常规序列标注通常用于在一段文本中识别其中的命名实体(NER),比如人名,而长文本一般带有丰富的上下文信息,序列标注通过对这些信息进行充分利用以达到优异的效果,这也是在深度学习爆发之前CRF在NER大行其道的重要原因。然而简历里面的姓名,一般出现于简历开头(通常是第一行),而且常常是单独存在,左右不存在其他文本,这样序列标注的优势就发挥不出来了。

此外,序列标注对标注数据的要求更加严格,需要对包含上下文的长段文本进行标注,这需要多耗费好几倍的人工时间。当然也可以采用开源的标注数据,比如新闻里的NER标注,但新闻和简历数据存在很大差异,效果必然大打折扣。

因此采用传统的分类模型,就成了更优的选择。从中可以看出,模型不是越高级越好,而是需要根据合适的场景选择合适的模型。正应了那句话:“只选对的,不选贵的”。

规则处理

当然,仅仅有机器学习模型是不够的。要达到90%以上的准确度,规则的处理是必不可少的。因为,简历的格式非常多元化,不仅有各种大小招聘网站的通用格式,还有用户自填的格式;不仅有中文的,还有英文的。可是说是相当复杂。以下列出一些看过的比较有意思的case:

1)罕见的姓氏,比如要智慧、肥雯、第五思杰,要、肥、第五都是生活中极少见得姓氏;

2)长得像人名但实际不是人名,比如杨浦、沈阳这种地区名,比如简历、年龄、高光这种从模型的角度看特别像人名的名词;

3)四字人名,比如程吉里元、权李非凡这种双姓氏的;

4)英文人名,有ChenJiaxian这种纯中文的,有Jessy Jiang这种英文+中文的,有Teo Park这种纯英文的;

此外还有大大小小不下数十个其他类似规则case的处理。

ResumeSDK正是通过对5年来碰到的各种不同简历,对遇到的各种这样case进行逐一归纳和处理解决,才达到了目前极高的解析准确度。

如果您对简历解析技术感兴趣,可以参考一下我们:ResumeSDK简历解析,是由资深BAT算法专家研发的解析系统,欢迎试用

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容