基于 BERT 的非结构化领域文本知识抽取

文章目录

    • 题目
    • 摘要
    • 方法
    • 实验

题目

食品测试的大型语言模型

图片名称

论文地址:https://arxiv.org/abs/2103.00728

摘要

    随着知识图谱技术的发展和商业应用的普及,从各类非结构化领域文本中提取出知识图谱实体及关系数据的需求日益增加。这使得针对领域文本的自动化知识抽取颇有意义。本文提出了一种基于 BERT 的知识抽取方法,用于从非结构化的特定领域文本(例如保险行业的保险条款)中自动抽取知识点,以达到在构建知识图谱的过程中节约人力的目的。不同于常用的按照规则、模板或基于实体抽取模型的知识点抽取方法,本文将领域文本的知识点转化为问答对,以答案所在的位置前后的文本为上下文,以 BERT 基于 SQuAD 数据进行阅读理解任务的方式进行微调。用微调后的模型从更多保险条款中自动抽取知识点,获得了良好的效果。

方法

    近年来随着各行业数字化转型的深入,相关电子文本数量与日激增。与此同时,越来越多的企业开始重视数据分析、挖掘以及数据资源的开发利用,诸如知识图谱,智能对话等计算机应用系统已经成为了各类企事业单位对内对外提供服务的基础。这类应用往往需要从各类非结构化领域文本中提取出其蕴含的结构化信息,用于数字化知识库的构建。数据是计算机产品和服务的基础,为计算机提供数据成为了新时期企事业单位发展的新任务。企事业单位中原有的各类商务、业务文档资料蕴含了丰富的知识和信息,却都是为了人类阅读而撰写,相对于计算机程序的需求,多了很多的冗余信息。目前,在应用这类数据时,基本上需要投入大量人力,通过阅读文档人工抽取出所需信息,并将其表示成计算机能够读取(“理解”)的形式。如此造成了许多额外的学习成本和人力资源消耗。如何采用自动化的手段从非结构化的文本数据中发现知识,用以作为各种智能化应用所依存的数据资源,是知识抽取领域的研究热点。本文以特定领域的非结构化文本为研究对象,提出了通过基于深度学习的语言理解模型对其进行知识抽取的方法。这一方法将待抽取知识点以问题-答案对形式呈现,并以人工标注数据作为训练数据,在预训练模型的基础上进行迁移学习,通过微调(Fine Tuning)获得在同领域文本上自动抽取知识点的模型。

    对于具有统一结构规范的文档,可以采用构建规则的方式进行知识抽取。规则的构建往往通过人工的归纳总结来完成——即阅读大量同领域文本,从中选取,总结出最终的抽取规则。Jyothi等人使用基于规则的方式从大量个人简历中抽取有效信息,构建数据库。JunJun等人用类似的方法从学术文献中提取学术概念知识。这种方法的优点是不需训练模型,简单高效;缺点也很明显,我们构建的规则仅适用于相同结构的文本,而且必须具有较严格的格式规范,一旦文本结构稍有改变,就需要人工构建新的知识抽取规则,因此该方法不具备可移植性。

    知识抽取的一种任务称为实体提取,即从文本中抽取预先定义的标签内容,如时间,地点等,具体标签根据应用而定,其中最常用的一种知识抽取称为命名实体识别(named entity recognition, NER)。实体抽取本身可直接作为序列标注任务来解决,后者可使用传统的统计学习方法,如隐马尔可夫模型(HMM),或条件随机场(CRF)处理。近年来一些深度学习模型也被应用到这类问题中,如结合了 BiLSTM 和 CRF 的序列标注方法曾取得很好的效果。Lample等人提出了一种新的网络结构,使用堆叠的 LSTM 来表示一个栈结构,直接构造多个单词的表示,并与 LSTM-CRF 模型做了比较。Ma等人提出了基于 BiLSTM-CNN-CRF 的端到端序列标注模型。此外,微调后的 BERT模型也能够在序列标注任务上达到很好的效果。

    除了从文本中提取实体,实体之间的关系也是知识抽取的关注点,通常把实体及其关系组成三元组<E1, R, E2>,那么任务目标为从文本中抽取所有可能的实体关系三元组,其关系限定在预先设定的 schema 之内。Zeng等人设计了 CNN 来进行关系分类,但并非三元组。Makoto等人通过构建基于 BiLSTM和 Bi-TreeLSTM 的堆栈网络同时进行实体抽取和关系检测,从而实现实体关系的端到端预测。Li等人采用一个编码器-解码器架构的双层 LSTM,构建了一个不局限于三元组形式的知识抽取模型,可以预测出固定格式的结构化知识。Zheng等人通过一种标注策略把实体和关系提取任务转化为序列标注任务,而后构建与前面类似的 Bi-LSTM 模型来处理之。Luan[等人设计了一种多任务学习框架用于在科学文献中识别实体和关系,以构建科学知识图谱,此模型在没有任何领域先验知识的情况下优于现有模型。

    除了以上提到的知识抽取模式,一个不同的角度是将知识点本身看作一个问题,将知识点的内容作为该问题的答案,将知识点所在的文本段作为这个问答对的上下文,这样知识抽取模型便可以用问答模型来构造。近年来,GPT和 BERT等预训练模型的出现使得这类问答阅读理解任务可以很好地作为其下游任务,仅需简单改造原有网络结构,并进行微调,即可得到很好的效果。Wang等人在原始BERT 的基础上使用多段落预测的方式改进了其在 SQuAD数据集上的效果。Alberti等人在BERT 与 SQuAD 的基础上改进后,将其应用在一个更困难的问答数据集 NQ上,𝐹1分数相对之前的基准线提升了 30%。这种问答形式的知识抽取可以更灵活地处理不同结构的知识——只需将其定义为不同的问题,而不需要根据知识的形式单独设计新的网络结构。

    不同行业的结构化文本因其行业特征而特色迥异。有些行业的特定文档(例如医药说明书)不仅具备严格的结构而且在术语和用词上要求非常严格,比较适合基于规则的知识抽取。还有一些行业的文本与通用文本区别不大(例如新闻报道、访谈等),对其可以直接应用通用抽取技术。还有一些领域的文本,介于两者之间,有一定的专业性,但不很严格,不同企业的同类文本结构和措辞近似,但又有所差别,同一企业内部的术语使用和展示方式相对统一。保险行业的保险条款文档,就属于这第三类文本之列。保险条款是保险合同双方当事人——保险人(保险公司)与投保人——共同约定的有关双方权利和义务的条文。一个保险条款一般由三部分组成:

  1. 基本信息,即条款自身信息,包括:保险人,条款名称,条款简称,条款类型,期限类型,犹豫期,诉讼时效,备案号和备案时间,能否作为主险销售等;
  2. 购买条件,即要本条款承接的被保险人需要具备的客观条件,包括:被保险人的年领、性别、职业/工种要求,体检要求,社保要求,必须如实告知的个人情况等;
  3. 保险责任,也就是本条款的责任范围和赔付内容等;

    虽然保险条款具备一定程度的专业词汇,但专业词汇的使用大多没有业界统一标准(例如:“犹豫期”又可称为“冷静期”等),而且条款文档作为交付给投保人阅读的文件,需要抽取的知识点大多混杂在一段自然语言表述之中,并不适合依据静态规则来进行文本抽取。所需抽取知识点本身虽然可以采用实体抽取的方式来获取,但知识点对应的值却往往混杂在一段自然语言表述之中,无法与知识点描述一起被抽取出 。例如:某条款的诉讼时效是 2 年,这个“2 年”可能出现在下列这段描述中:“受益人向我们请求给付保险金或保险费豁免的诉讼时效期间为 2 年,自其知道或应当知道保险事故发生之日起计算。”因此在需要从保险条款中抽取基本信息、购买条件和保险责任等知识点时,我们就直接排除了基于规则和基于实体抽取的方法。如果采用 Schema 式抽取,将知识点转化为三元组,则所需要的训练数据集和标注量都相对较大,相对于我们的目的而言,难免得不偿失。因此,我们最终选取了基于问答的知识抽取方式。

    近年来,基于预训练模型通过微调进行学习的方法在自然语言处理(Natural Language Process, NLP)领域取得了巨大成功,BERT 模型是其中的重要代表。BERT 是一种基于转换器(transformer)的双向编码表示模型,它的拓扑结构是一个多层的双向转换器网络。BERT 模型是基于微调学习的典型应用,也就是说它的构建包含预训练和微调两个步骤。首先在预训练阶段,对大量不同训练任务的未标记语料数据进行训练,将语料中的知识迁移进了预训练模型的文本嵌入(Embedding)中。这样,在微调阶段,只需要在神经网络中增加一个额外的输出层,就可以对预训练模型进行调整了。具体而言,微调就是用预训练参数初始化 BERT 模型,然后,使用来自下游任务的标记数据对模型进行微调。针对我们从保险文档中抽取知识点的需求,只需使用保险条款数据针对 BERT 的问答任务进行微调,就可以适应保险条款知识抽取的需求了。

图片名称

    保险条款知识抽取过程首先将人工标注的保险条款知识点制作成<question, answer>的形式,然后使用文本解析程序将一份保险条款文档解析为一颗文档树,其中主标题为根节点,其后每一级标题都为上一级的子节点,而每段文字都被读取为一个叶子节点。根据问题-答案对中的答案匹配到其所在叶子节点,以整个叶子节点对应的文本为该问题-答案对的上下文(context),最终构造成一个由<question, answer, context>组成的问答数据集,最后使用这一数据集对 BERT 预训练模型,按照针对 SQuAD 数据进行阅读理解任务的微调方式进行训练,得到最终的知识抽取模型。如上图所示,对于问答任务,只需在 BERT 输出的编码向量后添加一层额外的全连接层,预测answer 在 context 中的位置即可。在测试时,对于新的保险条款,需要以同样的方式分析不同知识点问题所在的上下文,然后再将<question, context>作为模型的输入,得到各知识点的 answer。使用上面的方法可以较好地处理同一公司、同一类型的保险条款,这是因为同公司的保险条款文章结构具有一致性,可以用同一程序来分析上下文,但是对于不同公司、类型的保险条款,由于术语和结构不同,原分析程序无法处理,而为每种条款重新编写一份文本分析程序是不具可行性的,因此该模型需要改进。

    为了使知识抽取过程具有更好的泛用性,我们首先修改预测过程:将新条款的原文按照字数进行分段,每段约 300 字(尽量不打碎句子),而后将每一文本段都作为任何一个知识点的可能的context,作为模型的输入。如果输出的 answer是空,则说明这一段不存在相应的知识点,否则综合考虑每个知识点在所有文本段下的输出,选择其中概率最高的作为该知识点的 answer。这种新的预测方法对于任何条款具有泛用性,不再需要进行额外的文本解析。我们用这种方法测试了几个不同公司的条款,结果表明其在旧模型上的效果并不好,准确率的下降很明显。原因在于:改进前在训练时,每个知识点的上下文都是根据文档结构精确定位的,没有很多的负样本,导致模型也只能够通过精确定位的上下文来进行预测。一旦文本组织结构、标题格式发生变化,原有的文本解析程序就无法精确定位问题上下文,产生了很多干扰数据,影响了模型的效果。因此模型的训练过程需要修改,我们添加分段文本数据,即对训练集中每个条款按照同样的方式分段,如果该段包含该知识点标注的答案,则作为新的样本,否则作为负样本(answer 为空)。在实际测试中,如果将这些新的样本全部加入到训练集中,产生的训练数据过多,且负样本数量远超正样本。为了平衡此过程,我们进一步作如下改进:对于每个知识点问题,如果该条款本身不包含该知识点(因为知识点是针对所有保险条款统一定义的,因此对于某份特定的条款而言,未必所有知识点都包含在其中),则每个片段以 10%的概率作为该问题的负样本;如果条款本身包含该知识点,则分两种情况,如果当前文本片段包含目标知识点,则作为正样本,否则以 50%的概率选取为负样本,如此构造新的训练集得到新模型。这样做的想法是:如果条款中包含某一知识点,就增加与该知识点相关的负样本数量,以期模型能够更好地处理相似片段的干扰,提高答案的准确性。而如果条款中本身不包含该知识点,则文本片段与知识点的契合程度应该较差,选取少量的负样本就足够。经过测试,新的模型相对于旧模型有很大改进,更契合新的预测方法,可以作为更通用的保险条款知识抽取模型。

实验

    我们的数据集由某保险公司的保险条款组成,每个条款具有人工标注的知识点,如犹豫期,诉讼期,保险金额等。在实验过程中,训练集,测试集分别由 251 个条款和 98 个条款组成。经过统计,这些条款中所有可能的知识点问题数量为309 条,平均每个条款有 45 条知识点需要提取。测试过程中,我们将条款文本分段,尝试从所有段中提取知识点𝑘𝑖,并根据模型输出的概率,选择概率最高的文本作为该知识点的答案。如果最终得到的输出为空字符串,则代表条款不存在该知识点。由于每个条款提取的知识点只占 309条中的小部分,大多数知识点的输出应当是空的,因此我们在评估时忽略这部分空知识点,关注两个指标:模型输出的知识点正确率𝑃,即精准率(precision),以及应提取知识点中确实被正确提取的比率𝑅,即召回率(recall)。假设知识点𝑘𝑖标注为𝑦𝑖,模型的输出为𝑦̃𝑖,则𝑃和𝑅可定义为:

    我们使用 Google 开源的 BERT 中文预训练模型 BERT_chinese_L-12_H-768_A-12,在此基础上进行后续的测试。参数设置上,初始学习率为 3E-5,批量大小为 4,训练 epoch 数为 4,其余参数采用该模型的默认配置。本文的实验包含两部分的测试,第一部分是基准模型的测试,其训练过程为:首先使用文本解析程序解析保险条款的结构,提取出对应知识点所在的 context 后,再组合成训练集对 BERT 模型作 fine-tuning。第二部分是新模型的测试,其训练过程为:在基准模型的训练集的基础上添加新样本。对相应的保险条款按字数进行分段,每段文本约 300 字。对于每个知识点问题,构建训练集来训练得到新模型。测试结果是测试集中 98 个保险条款统计的平均值,如下表所示:

图片名称

    可以看出,以前文所述的方法添加有限的负样本后训练的模型明显优于基准模型,其中𝑃提高了约 40%,𝑅提高了约 20%。𝑃的提升相当显著。基准模型的训练集中,仅通过文本解析程序精确定位知识点的上下文信息,导致模型只具备从正确的上下文中抽取对应的知识点的能力,而不具备辨别无效上下文的能力,因此基准模型存在很大比例的无效输出。而按比例添加负样本后,新模型的无效输出大幅度减少,输出的知识点中 60%以上是有效且正确的输出。而由于添加了相对于基准模型粒度更粗的上下文信息(文本段)组成的正样本,使得模型能够更好地从无规则截取的文本段中抽取出目标知识点,因此召回率𝑅也有大幅提升。最终𝐹1值提升了约30%。

    实验结果表明,经过我们优化训练集后训练得到的新模型在文本分段预测的方法中效果优于原始的基准模型,从而能够进一步用于更具泛用性的保险条款知识抽取任务中。同时,当前的模型依然还有很大的提升空间。

  • 由于现实条件(数据标注量)的限制,我们的训练仅囊括了 251 个条款,且所有训练数据均来自于同一个保险人。在扩大数据集规模,囊括更多保险人制定的条款数据后,应当进一步优化模型的效果。
  • 当前我们的数据标注仅包含条款知识点的内容,而训练数据中对应的上下文是通过自主编写的文本分析程序得到的,这样得到的上下文存在小部分错误。可优化人工标注策略,同时标注知识点及其上下文,这样得到的数据可以更精确。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/791710.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MechMind结构光相机 采图SDK python调用

测试效果 Mech-Mind结构光相机 Mech Mind(梅卡曼德)的结构光相机,特别是Mech-Eye系列,是工业级的高精度3D相机,广泛应用于工业自动化、机器人导航、质量检测等多个领域。以下是对Mech Mind结构光相机的详细解析: 一、产品概述 Mech Mind的结构光相机,如Mech-Eye PRO,…

极狐GitLab X 中科星图,用实际行动赋能空天行业开发者

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab &#xff1a;https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署…

RFID技术革新养猪业,构建智能化养殖场

RFID技术作为无线射频识别技术的一种&#xff0c;凭借着非接触、高效识别的特性&#xff0c;在养殖业行业中得到了广泛的应用&#xff0c;为构建智能化、高效化的养殖场提供了强大的技术支持&#xff0c;给传统养殖业带来了一场前所未有的技术变革。以下是RFID技术在养猪行业不…

podman 替代 docker ? centos Stream 10 已经弃用docker,开始用podman了!

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;CSDN博客专家   &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01…

记一次Ueditor上传Bypss

前言 前一段时间和小伙伴在某内网进行渗透测试&#xff0c;目标不给加白&#xff0c;只能进行硬刚了&#xff0c;队友fscan一把梭发现某资产疑似存在Ueditor组件&#xff0c;但初步测试是存在waf和杀软的&#xff0c;无法进行getshell&#xff0c;经过一番折腾最终getshell&am…

Python基础语法:运算符详解(算术运算符、比较运算符、逻辑运算符、赋值运算符)②

文章目录 Python中的运算符详解一、算术运算符二、比较运算符三、逻辑运算符四、赋值运算符五、综合示例结论 Python中的运算符详解 在Python编程中&#xff0c;运算符用于执行各种操作&#xff0c;例如算术计算、比较、逻辑判断和赋值。了解并掌握这些运算符的使用方法是编写…

【观成科技】Websocket协议代理隧道加密流量分析与检测

Websocket协议代理隧道加密流量简介 攻防场景下&#xff0c;Websocket协议常被用于代理隧道的搭建&#xff0c;攻击者企图通过Websocket协议来绕过网络限制&#xff0c;搭建一个低延迟、双向实时数据传输的隧道。当前&#xff0c;主流的支持Websocket通信代理的工具有&#xf…

物联网系统中市电电量计量方案(二)

上文我们主要介绍了电量计量中最重要的组成部分——电量计量芯片&#xff08;如果没有阅读该文章的&#xff0c;可以点击这里&#xff09;。本文会再为大家介绍电量计量的另外一个组成部分——电流互感器。 电流互感器的定义 电流互感器是一种可将一次侧大电流转换为二次侧小电…

AppStandby白名单机制

背景&#xff1a;原生机制中AppStandby机制的白名单是共享Doze白名单&#xff0c;即一旦设置doze白名单&#xff0c;也即AppStandby的白名单 需求&#xff1a;如何建立AppStandby自己的白名单 技术原理&#xff1a;可以使用setAppStandbyBucket接口实现 setAppStandbyBucket…

Java内存划分详解:从基础到进阶

Java内存划分详解&#xff1a;从基础到进阶 1. 程序计数器&#xff08;Program Counter Register&#xff09;2. Java虚拟机栈&#xff08;Java Virtual Machine Stack&#xff09;3. 堆&#xff08;Heap&#xff09;4. 方法区&#xff08;Method Area&#xff09;5. 运行时常量…

揭秘”大模型加速器”如何助力大模型应用

文章目录 一、大模型发展面临的问题二、“大模型加速器”助力突破困难2.1 现场效果展示2.1.1 大模型加速器——文档解析引擎2.2.2 图表数据提取 三、TextIn智能文档处理平台3.1 在线免费体验3.1.1 数学公式提取3.1.2 表格数据提取 四、acge文本向量化模型4.1 介绍4.2 技术创新4…

前端面试题40(浅谈MVVM双向数据绑定)

MVVM&#xff08;Model-View-ViewModel&#xff09;架构模式是一种用于简化用户界面&#xff08;UI&#xff09;开发的软件架构设计模式&#xff0c;尤其在现代前端开发中非常流行&#xff0c;例如在使用Angular、React、Vue.js等框架时。MVVM模式源于经典的MVC&#xff08;Mod…

网络协议(TCP三次握手,四次断开详解)

TCP的详细过程&#xff1a; TCP&#xff08;传输控制协议&#xff09;的三次握手和四次断开是其建立连接和终止连接的重要过程&#xff0c;以下是详细解释&#xff1a; 三次握手&#xff1a; 1. 第一次握手&#xff1a;客户端向服务器发送一个 SYN&#xff08;同步&#x…

【python】QWidget父子关系,控件显示优先级原理剖析与应用实战演练

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

51单片机嵌入式开发:8、 STC89C52RC 操作LCD1602原理

STC89C52RC 操作LCD1602原理 1 LCD1602概述1.1 LCD1602介绍1.2 LCD1602引脚说明1.3 LCD1602指令介绍 2 LCD1602外围电路2.1 LCD1602接线方法2.2 LCD1602电路原理 3 LCD1602软件操作3.1 LCD1602显示3.2 LCD1602 protues仿真 4 总结 1 LCD1602概述 1.1 LCD1602介绍 LCD1602是一种…

室内精准定位哪个产品抗干扰能力强?可以用于哪些方面?

室内精准定位产品其实有很多&#xff0c;其实它是安装在室内接收型号的一个基站&#xff0c;并且范围有一定的限制&#xff0c;而被定位的人员需要携带定位产品&#xff0c;那么通过室内基站收集到的信息&#xff0c;将会通过专业的系统处理后呈现在相应的设备上&#xff0c;比…

elementui实现复杂表单的实践

简介 文章主要讲述在vue3项目中使用elementui框架实现复杂表单的方式。表单中涉及动态组件的生成、文件上传和富文本编辑器的使用&#xff0c;只会将在实现过程中较复杂的部分进行分享&#xff0c;然后提供一份完整的前端代码。 表单效果演示 基础信息 spu属性 sku详情 关键…

【机器学习】初学者经典案例(随记)

&#x1f388;边走、边悟&#x1f388;迟早会好 一、概念 机器学习是一种利用数据来改进模型性能的计算方法&#xff0c;属于人工智能的一个分支。它旨在让计算机系统通过经验自动改进&#xff0c;而不需要明确编程。 类型 监督学习&#xff1a;使用带标签的数据进行训练&…

【游戏客户端】大话slg玩法架构(二)背景地图

【游戏客户端】大话slg玩法架构&#xff08;二&#xff09;背景地图 大家好&#xff0c;我是Lampard家杰~~ 今天我们继续给大家分享SLG玩法的实现架构&#xff0c;关于SLG玩法的介绍可以参考这篇上一篇文章&#xff1a;【游戏客户端】制作率土之滨Like玩法 PS&#xff1a;和之前…

仕考网:公务员如何备考申论

在备战公务员考试的申论部分时&#xff0c;掌握一定的技巧&#xff0c;遵循特定的步骤是至关重要的。以下是一些备考策略&#xff0c;希望能帮助到大家&#xff1a; 1. 掌握考试大纲和命题趋势 在考试大纲中明确了题目的类型和可能涉及的主题范围&#xff0c;考生可以聚焦到关…