美文网首页
提高"左右分栏式简历"的解析效果

提高"左右分栏式简历"的解析效果

作者: 大数据小学生 | 来源:发表于2023-02-28 12:58 被阅读0次

在视觉效果上,左右分栏式的简历比上下更具有视觉吸引力,正受到求职者的广泛使用。目前市面上至少有15%的简历使用左右分栏布局。然而,正确处理左右分栏的简历是一个令人头疼的计算机视觉问题。为解决第三方计算机视觉软件在简历文件处理上性能不佳或处理速度很慢的问题,小析智能自研了一套处理列布局文档的系统,并通过后续应用各种人工智能技术极大地改进了此类简历的解析。因此,无论文档如何分栏布局,小析智能都能够提供最优的解析效果。

介绍

简历解析的第一步是将文档转换为可以提取信息的原始文本。提取出准确的文字并保持正确的结果至关重要:任何错误都会影响后续模型的表现。为许多不同类型的文档生成呈现良好的文本表示是一个很难解决的问题。一种以自上而下并按行从左至右的顺序呈现文本的简单方法通常足以满足具有标准布局的文档(如图一)。

图1

然而,简历有一些其他布局,人类很容易理解,但对机器来说可能具有挑战性。我们在简历文件中发现的一种常见布局是使用左右分割布局。左右分割布局的简历在视觉上很吸引人,被求职者广泛使用。候选人希望在他们的简历中整齐地组织信息并提供视觉结构,例如通过包含他们的联系信息的边栏。对于传统简历解析系统,对于这种左右分割的简历(如图二),很有可能提取出来的文字是会把联系方式和工作经历连在一起

图2

错误文本提取对于某些任务仍然有用:例如一些可以通过搜索关键字来获取的字段。但是,会对很多下有任务,比如大段分割(基本信息,教育经历等),小段分割(不同工作经历之前的切割)带来极大的困难。因此,要提高我们简历解析对特殊格式简历的提取,我们需要制定特殊的文本提取方法。

传统的方法

通过传统的方法能够处理市面上大多数类型的文档布局

该方法有 3 个步骤。

第1步:扫描 PDF 的文本内容并识别它们之间的视觉间隙(参见下面的示例)。

第2步:基于规则的系统决定视觉间隙是否为列分隔符。正如您在下面的示例中看到的,基于这些预测,并非所有视觉间隙都是列分隔符,并且不应因这些间隙而中断从左到右的阅读。

第3步:将通过分隔所有已识别的列来呈现文本。 

图3

然而,利用视觉间隙的方法会在诸多问题,例如:对于下面这种文本,会将左右两部分分开,从而导致字段提取不正确。

图4

在系统自检过程中,我们的系统在许多情况下都取得了良好的文本抽取效果(>85%),但仍然无法预测某些列分隔符。根据损失函数的设计,系统在预测视觉间隙是列分隔符时非常精确(即正类的精度非常高),其原理是当没有列分隔符时(即假阳性)预测列分隔符会带来巨大的惩罚:即如果提取出来的文本将是错误的,会严重影响解析质量。改善这样的系统需要一种以模型为方法,然而增加训练数据覆盖面非常困难。当我们遇到一个新的案例时,我们需要为它实施一个新的规则,确保它与其他规则库兼容,并选择如何应用和组合规则。随着我们添加的规则越多,系统复杂性会变得非常高。

理想情况下,我们希望我们的解决方案以数据为中心,这样我们就可以通过收集系统应该如何执行的示例来提高其性能,并将我们的注意力集中在管理和改进示例数据上。我们还想要一个能够保持处理速度的解决方案。

第一次改进试验

我们分析了几个可能帮助我们改进系统的预训练模型,这些预训练模型中的大多数利用了计算机视觉方法,将文本视作图像从而提取文本。这些方法都需要昂贵的算法支撑,因此文字提取速度变得非常缓慢。同时,在简历解析的任务中,他们的表现并不比我们以前基于规则的方法好多少。因此,我们放弃了直接采用预训练模型

由于我们主要的目标只是改进我们的列处理,而并不需要识别文本中的所有间隙,只有较大的垂直视觉间隙应该才应该被考虑。基于这些简化的假设,我们想出了一种新方法来检测文档图像表示中空白直方图的最大垂直视觉间隙,如图五所示。

图5

我们可以看到两种布局在空白分布方面的区别,使用此表示来训练神经网络模型以在列布局和常规布局之间进行分类。然而通过分类器的方法不符合我们的所有要求:我们仍然没法获取的分隔列内容的坐标。此外,我们还注意到,解析速度将成为一个潜在问题。

我们的新方法

我们解决方案的核心是:决定视觉间隙是否分隔相关或不相关的内容(例如,列分隔符)。这是一个二元分类问题,我们可以为此训练机器学习模型来复制决策。通过使用我们基于规则的系统,我们可以通过将规则转换为特征并将输出决策作为我们希望新模型学习的标签来生成训练数据。通过这样做,我们可以开始专注于改进训练数据的收集和管理,并在每次模型迭代时能够容易地重新训练模型,而不是向我们的代码库添加更多规则。

新的迭代流程变成了: 

数据选择 -> 手动注释 -> 模型训练 -> 标签校正 -> 评估

图6

数据选择

与需要数百个示例来开发和测试规则的基于规则的系统不同,我们将需要成千上万个训练样本来监督我们的模型训练。

我们从客户在反馈中与我们分享的有问题的文件开始进行自查。但是这个集合非常小(大约 20000 个简历)。当它们仅占训练数据的 10-15% 左右时,我们如何才能找到更多的左右分栏的简历?还记得从我们最初的尝试开始,我们就有了一个基于神经网络的列分类器。虽然不足以取代我们旧的基于规则的系统,但它是挖掘具有列布局的文档的好方法。即使这个分类器不是 100% 准确,它仍然比随机选择文档(准确率为 10-15%)要好。此外,我们还收集了随机的文档样本,以确保我们的方法适用于所有布局。

数据集的生成

为了生成我们的数据集,我们通过现有的渲染管道处理我们的文档集。对于每个视觉间隙,目标标签最初设置为我们基于规则的系统做出的决定。我们通过使用在这个决定中计算的变量和规则来引导特征。此外,我们添加了几个新功能,可以更好地量化列布局的某些属性。

手动注释

在上一步中,我们生成了一个伪标记数据集:标签来自我们现有的系统,未经人工验证。为了确保我们的机器学习模型不会简单地学习重现基于规则的系统的错误,我们还手动注释了一小部分左右分列简历。

模型训练

有了训练数据后,我们现在可以通过训练机器学习模型来模仿我们基于规则的系统决策了。我们从决策树算法开始我们的实验。这是一种应用于我们的数据集的简单算法,非常有效,提供良好的分类性能,同时应用速度非常快,这是我们在我们评估方法的重要标准 

然而,决策树有几个问题:它们容易过度拟合并遭受偏差和方差误差。这会导致对新数据的预测不可靠。这可以通过组合几个决策树模型来改进。组合这些模型将带来更好的泛化能力

有几种方法可以实现这一点,更流行的方法是Bagging,其中多个模型在数据子集上并行训练:这种方法的一个例子是随机森林。另一种集成方法是Boosting,其中模型按顺序训练,每个模型都被训练以纠正前一个模型的错误:这种方法的一个例子是梯度提升算法。

在测试了几个选项之后,我们选择了使用梯度提升方法来训练该模型

高效的标签校正

由于该模型的大部分训练数据来自伪标记示例,我们的新模型主要经过训练来学习我们基于规则的系统的决策,一定程度会倾向于重现已有的规则。为此,我们定义了一种方法可以手动分析并纠正新模型与基于规则的系统的预测之间的差异。我们称这种方法为delta annotation。这个过程会专注于标记标记将对模型训练有改进的数据。

有了这个部分校正的数据集,我们可以重新训练我们的模型,我们可以通过在最新模型和旧模型之间进行增量注释来不断迭代和改进我们的数据集。在我们的例子中,两次迭代足以使差异饱和并在视觉差距级别达到良好的性能。

这使我们能够遵循以数据为中心的方法,我们可以专注于系统地改进我们的数据,以提高我们模型的性能。

图7

评估

我们现在有了更好的文本提取模型,但实际上仍然面临着巨大的挑战。我们如何确保视觉间隙级别的的识别改进能够转化为原文本提取的整体改进(回想一下,一个文档可以有多个视觉间隙)。更重要的是,这是否转化为简历解析质量的提高?为了验证这些问题,我们需要在多个层面评估我们的新系统。

首先,我们进行了模型评估,以了解我们是否更擅长在视觉差距层面做出决策。为此,我们可以简单地使用盲测集并将新模型的性能与旧模型进行比较。在 600 多个视觉差距上,我们的新模型在 91% 的情况下做出了正确的决定,而我们的旧规则库系统只有 82%。然而,视觉差距并不都同样重要,有些比其他的更重要:在我们的例子中,与列对应的视觉差距是最重要的。对于这个重要的子集,我们看到性能从 60% 提高到 82%。换句话说,错误率减少了一半以上。

其次,我们看看视觉间隙分类的改进是否转化为更好的原文本提取(回想一下,在一个文档中可能有多个视觉间隙)。换句话说,我们是否在不混合左右分栏简历中的部分方面做得更好?然而,由于多个种分割方式可能都是正确的,因此很难标注单个“正确”的渲染。因此,我们不得不对原文本提取结果进行主观评价。使用我们信得过标注服务,我们将新旧系统的原文本提取结果并排显示给我们的注释者(他们不知道哪一面是哪一面)。注释者评估文本现在是更好地分离、更差还是与以前大致相同。一组大约 7000 份简历的结果中有4200份都认为新版本更好,2400认为差不多,只有400份认为原来的更好。

最后,我们看看更好的原文本提取是否能转化为更好的解析结果。我们知道,在旧系统失败的左右分栏简历中,我们的解析器有时会提取较少的信息,尤其是姓名、电话和地址等联系信息。因此,最有效的方法是简单地检查填充率是否在增加。在超过 12000 份随机简历中,我们看到联系信息填充率绝对增加了 8%。但更多并不一定意味着更好!因此,我们还投资评估了使用旧系统的解析器和使用新系统的解析器之间的 1000 多个差异。下图中的结果显示了我们的新系统已修复的错误百分比。以上数据确认了我们现在拥有了一个端到端更好的解析器! 

图8

总结我们的改进

通过利用机器学习和海量数据来取代我们基于规则的原文本提取系统使得我们现在能够精准解析更多的简历布局样式,以下是主要的优化数据

1. 对于与列对应的视觉差距,视觉差距级别的正确决策从 60% 提高到 82%

2. 原文本提取质量从 62% 提高到 90%

3. 联系信息填充率绝对值增加了8%

4. 联系信息错误率从 33% 减少到 100%

5. 与我们基于规则的系统相比,速度影响可以忽略不计(额外 10 毫秒)

相关文章

  • CSS2 经典布局方案

    经典布局方式 上中下一栏式 左右两栏式 浮动+标准流式 浮动式 定位式 左右页眉页脚 左中右三栏式 双飞翼左中右三...

  • CSS常用布局方案

    上中下一栏式布局 上中下各一栏 左右两栏式布局 左侧固定,右侧自适应 float + calc:左侧浮动,右侧宽度...

  • 夜间闺房写真从普通到大片的实战步骤

    一、ACR中还原相机的真实拍摄时的效果。 1、原图整体色调偏冷,提高基本里的色温到5800左右,曝光提高的1左右,...

  • 任务十四

    效果一 简历

  • 《iOS面试简历技巧解析》

    庆小年,送豪礼 《iOS面试简历技巧解析》 全套视频 免费送 iOS简历和面试技巧解析 上内容 1. iOS开发者...

  • 增量绩效考核辨析,推行增量绩效管理-183-90-20-1549

    【案例解析:HR应如何提高人员产值? 我们公司是做IT技术服务外包的,公司每年的产值在25%左右,去年...

  • 左右回弹效果

    nav{ height: 50px; overflow: hidden; border-bottom: 1px s...

  • FreeNG | 基于Angular4的前端UI框架

    FreeNG是一款完全响应式的前端UI框架,它采用了主流的左右两栏式布局,使用了Html5+CSS3+Angula...

  • 布局

    1.实现单栏式布局 一栏布局 一栏式布局(优化) 一栏式布局(通栏) 小BUG解决办法:1. 给body或者是通栏...

  • JSON解析数据

    JsonObject解析 和JSonArray解析: JSON创建和JSON解析: 一。效果图: 创建: 解析: ...

网友评论

      本文标题:提高"左右分栏式简历"的解析效果

      本文链接:https://www.haomeiwen.com/subject/tfvkldtx.html