java——》解析简历

版权声明:本文为博主原创文章,无需授权即可转载,甚至无需保留以上版权声明,转载时请务必注明作者。
https://blog.csdn.net/weixin_43453386/article/details/86605054

一、半格式化文本特征分析

具体流程:
1、 word 简历分块处理;
2、 每一块内容进行了分割处理
3、 文本分成两部分处理(基本信息和复杂信息);
4、 对处理的文本再进行一次回溯处理,找出第一次未能分析的内容;
5、 针对重点字段再解析

1、内容组织——》元

  • 特点:
    离散
    具有独立完整意义的文本段
  • 分割标志:
    如回车、空格、冒号等等 或内容的(如标志性词语)

2、内容结构——》项

  • 特点:
    相对独立的
    具有完整意义
    绝大多数项都具有“标题+内容”的结构

3、项的内容——》分成两大类:基本项和复杂项

  • 基本项:通常是“一个标题元+一个内容元”的形式(一对一)
  • 复杂项:通常是“一个标题元+多个内容元”的形式(一对多)

4、简历分块

  • 基本项:集中的区域里(文本首尾区域)
  • 复杂项:集中分布一个区域内(如:工作经验)

5、文本内容标识性的强弱——》强标识、弱标识、无标识

  • 强标识:大概率50%以上,如"姓名"
  • 弱标识:可能属于多个类别或者不具有标识类别的效果
  • 无标识:不具有标识其类别的特点,也不能通过上下文来判别其类别,通常来说是因为不含有任何必要关键字造成的

6、文本的组织顺序

  • 策略:二级识别
  • 做法:
    第一级识别:每一条基本信息看作一个目标识别单元,复杂信息模块按整体看作一个目标识别单元
    第二级识别:针对复杂信息模块,最终识别出所需要的全部子字段

二、简历分块算法

1、描述

  • 1.明确强标识界限标志的模块,如:教育经历模块,工作经历模块、自我评价模块等等;
  • 2.模块以正则表达式的形式存入字典,形成预设值;
  • 3.通过匹配的方法,找出目标简历中相关的分割标志,得到预设值集合;
  • 4.统计已知标志的特征信息,得到分割标志的一般特征向量;
  • 5.计算每一段落的文本向量和特征向量的夹角;
  • 6.当夹角小于阈值,我们认为该段落也是分割标志,反之,不是分割标志。

2、预计模块

教育经历、培训经历、工作经历、项目经历、自我评价、技能技巧、兴趣爱好、奖励。

3、算法实现

在大多数情况下结果集不为空,然后以集合中元素(符合条件的段落)为基础,统计如下参量[6]:字体大小、字体类别、粗体字数、斜体字数、首行缩进、段落平均长度。然后根据参量的重要性(我认为重要性依次递减)确定每个参量的权值,权值乘以统计值即是该参量对应的特征值,这样就得到一个长度为六的特征向量({字体大小、字体类别、粗体、斜体、首行缩进、段落平均长度});然后统计未识别段落的对应向量,计算两个向量的夹角,如果小于阈值(在本系统中为 15 度)的,则认为也是分块标志,否则反之。值得注意的是,对于包含表格的简历,认为表格是天然的分块标志,对每个单元格进行标准化,去掉我们不需要的字符(字母、数字、中文、回车、空格以外的字符),就得到分块结果。

4、特征向量构造及夹角

选择合适的参量(本系统中选取上述六个参量) —〉确定每个参量的权值—〉计算各个参量的统计值—〉统计值乘以权值得到特征向量

特征向量体现了分割标志的特点,计算夹角是判定未知文本与已知文本的相似性,当相似程度达到一定程度时,我们认为未知文本也是分割标志。

三、分割算法

1、描述

  • 1、 规整输入文本,确定分割符;
  • 2、 规整分割符;
  • 3、 分割文本;
  • 4、 修正分割结果

2、分割算法实现

1) 规整输入文本

对输入文本中的字符做处理,保留英文、数字、中文字符、标点符号(冒号除外),对于其他字符认为是元与元的分割标志。

  • 一级分割符:回车、冒号、特殊符号(如星号等)
  • 二级分割符号:空格

2) 二级分割符分类处理:

  • 孤悬点处理:
    • 孤悬点:如果一个汉字的前后都是空格,则该字符称为孤悬点
    • 孤悬点作用:格式作用,如:“出 生 年 月”,孤悬点一律前向合并,合并为“出生年月”
  • 英文之间的空格保留:英文之间、英文与数字之间、数字与数字之间、数字/英文与汉字之间的空格

3) 按照分割符号将原文本分成若干元,存入链表

4) 修正分割结果:

  • 格式合并:
    两个相邻的元都是长句(文本中有标点符号),且前一个元句末以非结束标点结束;
    两个相邻的元后一个以标点符号开头;
    两个长句元被一个二级分割符分开;
  • 内容合并与切割:正则表达式去匹配每一个元,以决定是否需要切割或合并,然后做相应的处理。

四、信息处理算法

1、描述

分割后——》识别元——》判断其特性(标题或者内容) 和类别

2、信息处理算法实现

1) 预处理

  • 作用:区别基本信息 && 复杂信息
  • 过程:字 段 设 计 正 则 表 达 式 库,按照分割后的文本顺序,依次对每一个元进行识别,把标题元找出来。
  • 结果:分成基本信息和复杂信息两类

2) 基本信息识别

  • 强标识:如“男”、“汉族”等,设计正则表达式

基于信息上下文位置的“夹逼”算法:如果一个元的前后都是一个标题元,且前一个元是基本信息元,则认为该元是前一个元对应的内容元;

基于信息位置的滑动窗口算法:标题内容对应方式在排版上是以纵向为准,所以当转化成元序列时,顺序不在是“标题 1” +“内容 1” +“标题 2” +“内容 2” +……的形式,而是“标题 1” +“标题 2” +……+“内容 1” +“内容 2” +……。如果在元序列里找到连续的标题块时,就基本可以确定出现了这种情况。
如果把连续的多个标题称之为标题窗口,通过使其向后滑动,然后匹配,最终找出各个标题对因的内容元。关键是如何确定所需要的滑动步长是多少,即如何确定内容窗口。

  • 支撑点:在一个连续的内容元序列中(其中不包括标题元),其中已经识别的内容元称为该序列的支撑点。
  • 如果一个内容元序列,其中有一个或多个支撑点与标题窗口相对应,则该内容元序列即是需要寻找的内容窗口,当对应支撑点越多,置信度越高,如果内容元序列中没有支撑点,则该算法失效。一般的,支撑点都是那些强标识的内容元,因为它们仅依赖自身信息就可以被识别。

“标题+内容弱标识”算法
前提:标题所对应的内容通常都在其附近,内容弱标识特性本身不能确定其的类比,但是加上附近的标题信息,其识别的置信度会大大增加。
做法:确定标题,确定识别深度(基本信息一般是 1),根据标题对应的正则表达式判断目标内容是否符合弱标识符的特征, 如果符合则认为这是其内容, 反之不能确定。

3) 复杂信息识别

  • 目标:不需精确识别,找到所属大类。
  • 例如:大类是工作经验,不必要识别出其是公司描述。二级识别特别是针对所属大类不同,但文本近似的情况,例如:工作起始时间和学历起始时间。
  • 按重要程度分:
    一级字段:工作经历、教育经历、培训经历、项目经历;
    二级字段:奖励、个人评价,技能技巧
  • 识别方式:
    • 1.基于正则表达式和文本位置的匹配
      过程:从标题文本的位置开始,向后搜索,并用相应的弱标识正则表达式进行匹配识别,这种“弱标识+位置”的识别方法,有较高的置信度;
      将匹配的文本标记出来, 一直搜索到下一个已经识别且与该类不同的文本为止
      结果:通过已识别的文本,可以确定该文本块的一个子集,即标题文本之下,最后一个已经识别的文本之上的文本块。该子集中的文本,可以以较大概率 确定是属于目标类别,其置信度与“弱标识+位置”方法置信度同。该子集的补集,则可能是属于该类别,也可能不属于该类别,本算法无法确定,即下边界无法确定问题。
    • 2.特征文本标识方式
      做法:用正则表达式匹配,识别出特殊文本,然后按照匹配识别算法中所述的方法,确定子集,然后识别。
    • 3.统计方式
      模型:基于向量空间模型(向量来表示文本:通过分词将文本表示为向量空间中的一个向量,由这些词作为向量的维数来表示文本)
      做法:对每一类先确定一批训练文本,通过上述方法确定每一类的特征向量;
      当有一个新文本时,也通过上述方法得到其向量,与每一类的特征向量计算夹角(余弦值),
      然后找出阈值之上的最大余弦值类,则认为新文本即是这一类。

五、回溯算法

1、描述

主要对一些丢失或未找到的基本信息进行的二次识别。

2、特点:

(1)、简历中肯定会出现或者有很大概率要出现;
(2)、该信息在文本中的位置基本确定;
(3)、该字段有区别于第一次识别的特定识别方法。

3、进行回溯的字段:

姓名:在文本的开头几行,搜索深度一般定为 5 行、借助百家姓字典以及姓名的一般长度(2 至 4 个汉字),寻找符合条件的文本
省份、城市:辅助关键字(省、市等等)

六、重点字段分析算法

1、描述

主要针对学习经历、工作经历、培训经历、项目经历进行再处理。

2、特点

包含若干子字段,并且子字段按序按块存在。

3、思想

主要采取字典的方式,从中找出感兴趣的有效信息,并按原文本中的顺序排列,进行分块,得到识别结果。

4、实现

  • 1.信息提取:
    先根据目标字段定义各类字典(如学习经历包括起止时间、学校、专业、学历),
    然后根据字典提取信息,并且保留其在原文本中的书写顺序。
    字典的实现是用正则表达式的方式实现

  • 2.信息分块:
    特点:
    1.多个部分组成,且每个部分结构相似;
    2.绝大多数情况下,都会有起止时间。

由于通过字典识别的方式,起止时间的识别率较高,且格式固定,接近 100%,
假设:假设所有文本都带有起止时间,且所有起止时间都能被准确识别。我们把有效信息序列做第一次分块;
正常简历中该类字段每个部分结构相似,所以假设每个块的顺序一致,所以检查第一个块及其附近文本,确定块内序,然后做块修正(第二次分块)

猜你喜欢

转载自blog.csdn.net/weixin_43453386/article/details/86605054
今日推荐