2021-03-18

NER信息抽取在OCR中的应用

1 背景

IE全称:Information Extraction,信息抽取。即从自然语言文本中,抽取出特定的事件或事实信息,帮助我们将海量内容自动分类、提取和重构。这些信息通常包括实体(entity)、关系(relation)、事件(event)。本文重点介绍NER作为信息抽取的手段,在OCR中的应用。

OCR全称:Optical Character Recognition,光学字符识别。针对印刷体字符或者手写体字符,通过检测识别模型将图像中的文字转换成文本格式。贝壳找房KeOCR团队在房本,税票,身份证,征信报告等房产交易的核心备件中OCR识别准确率达到业界领先水平,也与光大银行等合作提供对外服务。在许多场景中,只有OCR识别结果是不够的,因为往往关心的是结构化的一些关键字段信息。对于字段信息较为固定的备件,例如身份证等,可以使用模版匹配等技术,但是对于版式不固定的备件,信息难以提取,例如简历,合同的信息。这时候,就需要NER登场了。

NER全称:Named Entity Recognition,命名实体识别。NER是从文本信息中识别出人名,地名,时间等实体,是信息提取、问答系统、句法分析、机器翻译等应用领域的重要基础工具,在自然语言处理技术走向实用化的过程中占有重要地位。

2 NER流程

NER是一种序列标注问题,因此他们的数据标注方式也遵照序列标注问题的方式,主要是BIO和BIOES两种。BIOES分别代表:

B,即Begin,表示开始。 I, 即Intermediate,表示中间。 E, 即End,表示结尾。 S, 即Single,表示单个字符。 O,即Other,表示其他,用于标记无关字符。

举例说明:将“小明在北京大学的燕园看了中国男篮的一场比赛”这句话,进行标注

BIOES标注:

[B-PER,E-PER,O, B-ORG,I-ORG,I-ORG,E-ORG,O,B-LOC,E-LOC,O,O,B-ORG,I-ORG,I-ORG,E-ORG,O,O,O,O]

BIO标注:

[B-PER,I-PER,O,B-ORG,I-ORG,I-ORG,I-ORG,O,B-LOC,I-LOC,O,O,B-ORG,I-ORG,I-ORG,I-ORG,O,O,O,O]

其中B-PER中B表示开始,用来标注位置信息,PER表示人名,用来标注类别信息。下面推荐几种标注工具:

 

标注之后送人NER模型,模型输出带有标签的文本序列。目前主流模型有两个:

 

其中模型结构如下:

 

其中CRF为条件随机场,是一种判别式的概率图模型,可以根据前后状态预测当前状态。随机变量Y构成一个无向图G(V,E),当X与Y两个随机变量的概率分布满足如下的条件:Y在i时刻的状态,仅与其有边连接的节点有关,则随机变量序列Y的条件概率P(Y|X)构成条件随机场。

 

设X={x1,x2,x3,....xn},Y={y1,y2,y3,....yn}均为线性链表示的随机变量序列,若在给定随机变量序列X的情况下,随机变量序列Y的条件概率P(Y,X)构成条件随机场,即满足如下的条件:

 

CRF的参数化形式如下:

 

 

t_k和s_l是特征函数,v_k和u_l是对应的权值 t_k是状态转移函数,v_k是对应的权值;s_l是发射函数,u_l是对应的权值。好的,假如所有的t_k,s_l 和v_k,u_l都已知,就可以计算出p。

自然语言是已知的序列,自然语言经过特征提取过后的logits,是发射矩阵,对应着t_k函数;随机初始化的self.trans矩阵是状态转移矩阵,对应着参数s_l,随着训练的过程不断的优化。

NER在OCR作为信息抽取的应用流程如下:

 

3 NER存在的问题及解决方案

尽管NER技术已经相对成熟,但实际使用中仍然存在一些问题。

3.1 复杂NER问题。

问题:在医学领域等关系抽取中存在一些复杂NER问题,例如嵌套/非连续/类型易混淆。如下图所示:

 

解决方案:

3.1.1 嵌套型

 

3.1.2 非连续型

  • 继续当作序列标注任务:拓展BIO标签;

  • 转化为一个属性/关系抽取问题:由于病历文本趋向模板化,所以用规则提取更加便捷。

  • 模仿句法解析器的做法,设置shift-reduce parser。

3.1.3 类型易混淆

事件论元抽取:先进行“事件段落抽取”,再将实体归属到当前的事件段落中。

两阶段NER:在同一事件类型中,第一阶段可以确定“实体span边界”,第二阶段再结合上下文信息进行”实体typing“。

3.2 不同场景之间的迁移问题

问题:

不同场景不同领域下差异较大,比如新闻领域训练出来的模型,应用到社交领域,效果就会较差。但是当前标注的数据集主要集中于某一个特定的领域。

解决方案:

使用迁移学习将该领域的预训练模型作为base,在此基础上进行fine-tuning。

3.3 过多类别识别效果不好

问题:

当需要识别的实体较多且实体之间的关系易混淆时,就容易造成识别效果差的情况。

解决方案:

使用特征模版。可以通过构建更多的特征,比如词性、命名实体的指示代词等,也就是训练样本集中添加更多的列,将词与词的前后关系更明白的告诉特征,模型就学习的更好。

3.4 不完全标注NER问题

问题:

标注资源少,大规模的实体标注数据集的构建成本更高。

解决方案:

A 使用bert等预训练模型。 B 文本增强。 C 学术界相关方法如下:

 

4 NER的一些小trick

4.1 选取较强的baseline。目前较好的是融合bert和多头选择。

4.2 文本词汇增强。引入词汇信息,并适配于所对应的标注策略.

4.3 对抗训练。聚焦于提高鲁棒性,常用的有FGM,PGD等。

4.4 数据降噪。其中包括“假阴性降噪”,即清洗训练集中存在的“假阴性”问题。“伪标降噪”,通过置信度判别模型,通过阈值来过滤噪声样本或者通过交叉验证,通过投票过滤噪声样本等。

4.5 交替训练。对实体和关系两个子任务进行拆解,根据多任务学习中的交替训练机制进行。

5 NER应用示例

由于NER模型学习的是不同实体之间的转移规则,所以对于具有语意连贯性的文本具有很好的效果。下面以贝壳找房的“房本地址拆分项目”为例,说明NER在地址拆分中的应用。

数据标注量:275条房本地址数据。

标注标签说明:

 

模型选择:bert+bilstm+crf

测评效果示例(省市区另外程序处理):

输入:丰台区丰仪路1号院10号楼14层2单元1401

输出:

 

6 总结

NER作为信息抽取(IE)的重要分支,不仅在自然语言处理技术走向实用化的过程中占有重要地位,而且在OCR结构化中也扮演着重要角色。本文比较详细介绍了NER从数据标注到最终应用的整个流程,以及在使用过程中可能存在的问题和相应的解决方案,希望为将要使用NER的同学们提供一个较为全面的参考。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UCASer_0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值