首页> 中国专利> 基于BERT和改进PCNN的食品安全关系抽取方法

基于BERT和改进PCNN的食品安全关系抽取方法

摘要

本发明提供了基于BERT和改进PCNN的食品安全关系抽取方法,针对收集到的食品安全领域数据集,利用BERT和PCNN模型的分段最大池化最大程度捕获句子的局部信息,并根据中文是以词而并非以字为基本单位的特性以及注意力机制的优点,结合多核处理、分词技术、注意力机制以及损失函数等方法提出改进的模型BERT‑PCNN‑ATT‑jieba的模型,实现了提高抽取食品安全领域关系的性能的功能,提升了食品安全领域的关系抽取的性能。本发明减少了手工对于食品安全数据标注的成本,为下一步工作奠定了基础。

著录项

  • 公开/公告号CN113821571A

    专利类型发明专利

  • 公开/公告日2021-12-21

    原文格式PDF

  • 申请/专利权人 华中农业大学;

    申请/专利号CN202110702743.3

  • 申请日2021-06-24

  • 分类号G06F16/28(20190101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构42102 湖北武汉永嘉专利代理有限公司;

  • 代理人崔友明

  • 地址 430070 湖北省武汉市洪山区狮子山街1号

  • 入库时间 2023-06-19 13:46:35

说明书

技术领域

本发明属于知识图谱技术领域,具体涉及基于BERT和改进PCNN的食品 安全关系抽取方法。

背景技术

食品安全关乎于每个人的健康,但目前食品安全大多呈现难追溯,难控制, 难防范的问题。食品安全领域的数据以食品为中心,包括食品在各个生产过程中 的数据,亟需建立完整知识库,从而能够高效发现食品安全问题源头。

计算机应用与食品领域的交叉研究,促进了食品行业的发展与进步,知识图 谱的出现成为连接两者的桥梁。知识图谱技术主要包括知识抽取,知识融合,知 识加工,图谱应用等方面。知识抽取作为连接大规模数据集和知识图谱应用,自 动化高准确的抽取手段则显得尤为重要。关系抽取是知识图谱构建、问答系统以 及其他知识图谱应用的重要环节之一。

如何从海量无规则的数据中挑选对用户有用的知识和信息成为了人们迫切 想要解决的问题。目前学界重点关注于如何从海量无规则的数据中得到所需三元 组的信息抽取技术问题。信息抽取主要包括3个项子任务:实体抽取、关系抽取 和事件抽取。而关系抽取作为信息抽取与检索等领域的核心任务和重要环节,能 够从文本中抽取实体之间或者实体属性的语义关系,例如得到“实体关系实体” 或者“实体属性属性值”三元组。在食品安全领域中,关系抽取可以应用于扩 展食品知识图谱内容,并为下一步知识推理做铺垫。

由于机器学习以及知识图谱技术的发展,目前关系抽取技术主要分为三种: 第一种是基于手写规则的关系抽取方法,1999年Aitken对于全球变暖文章中定 量定性谓词进行提取,在371条句子的训练中准确率达到了66%。该方法的缺点 是三元组的查准率较高,只能适用特定数据集,查全率比较低,不能准确地查找 所有满足要求的三元组。第二种是基于传统机器学习的关系抽取方法,主要包括 基于特征向量的方法,基于核函数的方法以及条件随机场(CRF)的方法。王东 波等人结合情报学数据获取、标注和组织的方法并运用CRF机器学习模型构建, 在标注了1万5千字的语料库基础上进行实体抽取预测,F值达到了91.94%, 该方法的缺点是容易造成欠拟合现象且参数调整过程较为复杂。第三种是基于深 度学习的关系抽取方法,Zeng等人在特征向量和核函数基础上提出CNN神经网 络模型,减少了错误传播。王庆棒基于CNN和BILSTM模型对于食品輿情实体 关系抽取的研究,准确率提升至80%,为食品领域的关系抽取奠定方向。ZENG D等人将基于分段卷积神经网络(PCNN)模型应用于关系抽取中,并取得不错 的效果。武小平等人利用BERT模型与CNN模型结合使得F

发明内容

本发明要解决的技术问题是:提供基于BERT和改进PCNN的食品安全关 系抽取方法,用于提高抽取食品安全领域关系的性能。

本发明为解决上述技术问题所采取的技术方案为:基于BERT和改进PCNN 的食品安全关系抽取方法,包括以下步骤:

S1:构建食品安全领域数据集并导入图数据库中;

S2:构建食品安全领域关系模型,具体步骤为:

S21:采用手工标注的方法对大规模文本进行预处理;

S22:采用BERT模型从语料库得到句子的词嵌入向量和位置嵌入向量,将 词嵌入向量与位置嵌入向量拼接得到句子的向量;

S23:将句子的向量作为输入训练生成PCNN分段卷积神经网络模型;PCNN 分段卷积神经网络模型包括依次连接的输入层、卷积层、分段最大池化层、分类 层;输入层用于接收BERT模型输出的向量;卷积层用于拼接句子的上下文中词 语的语义特征得到句子的特征,通过高层特征限制输入层与隐藏层之间连接元的 数目从而减少模型训练的参数;分段最大池化层用于根据实体与实体之间的位置 关系捕捉更高层语义特征;分类层用于将分段最大池化层得到的向量通过线性计 算将维度降低至n维,并通过softmax分类器预测条件概率并选出最有可能的关 系;

S3:结合PCNN分段卷积神经网络模型的特点与中文特殊语料的特性,加 入注意力机制与分词处理改进PCNN分段卷积神经网络模型得到 BERT-PCNN-ATT-jieba模型;

S4:通过测试集测试模型并进行关系分类;

S5:通过比较评估指标评价模型的性能。

按上述方案,所述的步骤S1中,具体步骤为:

S11:通过收集食品安全领域的文本获取食品安全数据形成语料库;

S12:对食品安全数据的实体类别和关系类别进行专业标注和分类;

S13:根据语料库和实体类别构建食品安全关系抽取数据集,并将整理好的 数据集按照8-2原则划分为训练集和测试集;

S14:对食品安全数据采取图方式建模,并将实体和关系存储在neo4j数据 库中;实体为知识图谱中的节点,关系为知识图谱的边,关系的方向从头实体指 向尾实体,不同实体的互联形成食品安全知识图谱网。

进一步的,所述的步骤S11中,语料库包括源数据格式、附录表格、正文文 本;源数据格式用于处理数据格式;附录表格包括实体、属性、属性值;正文文 本包括句子、关系、第一实体、第一实体位置、第二实体、第二实体位置。

进一步的,所述的步骤S12中,食品安全数据的实体分类包括实体类别、实 体属性、实体举例;关系类别包括头实体分类、尾实体分类、关系名称、关系描 述、关系数目。

按上述方案,所述的步骤S22中,

词嵌入向量是固定长度的向量,用于将由m个单词组成的句子 sentence={word1,word2,word3,…,wordm}的第m个单词wordm映射到词嵌 入向量E

位置嵌入向量用于以句子的头实体和尾实体为基准,将句子中的每个词距离 头实体的相对位置存储在距离头实体位置向量head_pos中,将句子中的每个词 距离尾实体的相对位置存储在距离尾实体位置向量tail_pos中。

按上述方案,所述的步骤S22中,获取位置嵌入向量的具体步骤为:

S221:从文本数据中获取包括头实体和尾实体的文本分词;采用头实体和尾 实体替换类别名称;

S222:将第m个文本分词初始化为第m个单词,判断是否到句末,若是则 结束获取位置嵌入向量,若否则求出第m个单词距离头实体的相对位置并存储 在距离头实体位置向量head_pos中;

S223:求出第m个单词距离尾实体的相对位置并存储在距离尾实体位置向 量tail_pos中;

S224:更新文本分词,执行步骤S222。

按上述方案,所述的步骤S23中,

卷积层采用多尺寸卷积核关注不同特征值使训练模型全面分析语句信息,卷 积层包括大小分别为1*3,1*5,1*9的100个卷积核;卷积层采用GELU函数 用于结合非线性计算与随机正则化计算避免神经元坏死的情况,GELU函数的计 算公式为:

分段最大池化层根据头实体和尾实体的位置将句子分段,第一部分是句首到 头实体且包含头实体,第二部分是头实体和尾实体之间且包含头实体和尾实体, 第三部分是尾实体到句尾且包含尾实体;对分部分之后的句子进行填充像素 padding用于方便计算,填充过程以三部分中最长的部分为准对另外两部分进行 填充,若该位置不存在元素则设为1,若存在元素则设为0;

将由m个单词组成的句子sentence={word1,word2,word3,…,wordm} 根据头实体和尾实体分为3个片段{c1,c2,c3},设卷积核的个数为n,则第i个句 子经分段池化层处理后的输出向量P

将所有卷积核经分段池化层处理后的输出向量拼接为P

分类层的softmax分类器中,设关系分类的总类别为N,最终输出结果为

采用Adam算法计算多分类的问题,设关系的总数量为n,样本数为k,具 体分类类别为x,样本k采用softmax分类器预测属于x的概率值为p

进一步的,所述的步骤S23中,在分段最大池化层与分类层之间还包括L

L

进一步的,所述的步骤S3中,具体步骤为:在分段最大池化层与分类层之 间添加注意力机制,用于进一步提取高层语义;将分段最大池化层的输出压缩到 (-1,1)值域计算中间参数M,将矩阵与注意力机制初始化矩阵相乘计算权重W, 则最终传到softmax函数中得到加权后的输出向量vec为:

M=tanh(P) (8),

a=softmax(w

vec=PaT(10);

在PCNN分段卷积神经网络模型的分段最大池化层中,在网络训练过程中 通过执行MLM过程随机掩盖部分单词,并通过上下文输入到PCNN分段卷积神 经网络模型中预测,避免损失句子含义。

进一步的,所述的步骤S5中,具体步骤为:采用准确率P和召回率R作为 多类型分类预测的评价指标;将每次的训练结果分为正样本被预测正确数目TP、 正样本被预测错误数目FP、负样本被预测错误数目FN、负样本被预测正确数目 TN;则模型的准确率为:

召回率为;

综合评价各个模型的优劣的F

本发明的有益效果为:

1.本发明的基于BERT和改进PCNN的食品安全关系抽取方法,针对收集到 的食品安全领域数据集,利用BERT和PCNN模型的分段最大池化最大程度捕 获句子的局部信息,并根据中文是以词而并非以字为基本单位的特性以及注意力 机制的优点,结合多核处理、分词技术、注意力机制以及损失函数等方法提出改 进的模型BERT-PCNN-ATT-jieba的模型,实现了提高抽取食品安全领域关系的 性能的功能,提升了食品安全领域的关系抽取的性能。

2.本发明在食品安全领域知识图谱构建过程中尚无公开数据集的情况下,收 集了食品安全领域的文本并对数据进行相应的实体和关系类别的专业标注,构建 了食品安全领域关系抽取的专业数据集。

3.本发明实验结果表明,在参数及数据集一致的条件下,相较于传统模型, 改进的模型准确率为84.72%,召回率达到81.78%,F

4.本发明提出的BERT-PCNN-ATT-jieba模型能够更好的抽取基于食品安全 领域的语义关系特征,减少了对人为手动抽取的依赖,减少了手工对于食品安全 数据标注的成本;为下一步构建更完整的食品安全领域知识图谱,以及基于该知 识图谱进行领域知识问答、领域知识检索以及食品安全问题追溯等工作奠定了基 础。

附图说明

图1是本发明实施例的neo4j数据库的部分数据示例图。

图2是本发明实施例的食品安全关系抽取流程图。

图3是本发明实施例的词向量表示描述图。

图4是本发明实施例的位置向量生成流程图。

图5是本发明实施例的位置向量生成描述图。

图6是本发明实施例的PCNN模型结构图。

图7是本发明实施例的分段最大池化层描述图。

图8是本发明实施例的利用jieba分词的分段池化标注过程图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细的说明。

参见图1,本发明实施例的基于BERT和改进PCNN的食品安全关系抽取方 法,包括以下步骤:

1.食品安全领域数据集构建

1.1 食品安全数据获取

本文在食品安全领域数据鲜有公开的情况下,通过Scrapy[10]框架爬取百度 百科,食品伙伴网,国家市场监督管理总局网等数据,并由专家进行整理,选择 语义丰富且正确的语料,构建相对完善的语料库,语料库详情由表1所示:

表1 数据源分布

1.2 食品安全数据类别

结合食品安全专家建议以及知识推理过程,定义实体分类如表2所示。对食 品从种植,加工,处理以及可能引发疾病的数据进行处理与存储。

表2 实体分类描述

根据前文提到的语料库和实体类别,构建食品安全关系抽取数据集。分类完 成之后的关系抽取数据集如表3所示。可以看出在整理的8573条语料中,各个 关系的数目较为平均。最终将整理好的数据集按照8-2原则划分训练集和测试集。

表3 关系定义描述

1.3 食品安全数据存储

对食品安全数据采取图方式建模及存储。本文使用neo4j数据库存放实体和 关系。实体为知识图谱中的节点,关系为知识图谱的边,关系的方向由头实体指 向尾实体。不同实体的互联可以形成一张巨大的食品安全知识图谱网。通过 Cypher语言可以将收集的三元组导入数据库中,并可以进行增删改查的操作。 neo4j数据库部分数据举例如图1所示。

2.食品安全领域关系模型

关系抽取流程如图2过程所示。首先对大规模文本采用手工标注的方法进行 预处理,之后将得到的语料库利用BERT模型等技术得到句子的词嵌入向量和位 置嵌入向量,每个句子的向量表示即是词汇嵌入向量与位置嵌入向量拼接得到, 并作为模型的输入进行训练生成PCNN神经网络训练模型。最后对测试集的句子 进行测试,通过比较相应评估指标评价模型性能。

2.1 BERT向量化

随着自然语言和深度学习的发展,向量模型基本分为4类,分别是:one-hot、word2vec、GPT和BERT。one-hot编码方法的缺点是会导致特征向量空间非常大, 不利于机器的存储与计算;word2vec编码方法的缺点是无法区分一词多义现象; GPT编码方法的缺点是无法准确利用词语上下文的关联信息;而BERT模型是 结合ELMO与GPT模型优势的新型语言模型,利用BERT模型生成的词向量可 以提高关系抽取的准确度。本文利用BERT模型生成词向量和位置向量,并将得 到的词向量和位置向量进行拼接后,得到每个句子的输入表示。

2.1.1 词向量表示

对于一个由m个单词组成的句子sentence={word1,word2,word3,…,wordm}, 将每一个单词映射到一个固定长度的向量表示语义关系,其中在句子开头有一个 特殊符号[CLS],句子结束有一个特殊符号[SEP]。词向量表示如图3所示。

2.1.2 位置向量表示

位置向量生成流程如图4所示。位置向量的生成是以头实体和尾实体为基 准,分别对于句子中的每个词求出距头实体和尾实体的相对位置,存储在距离头 实体位置向量(head_pos)和距离尾实体位置向量(tail_pos)数组中。位置向量 示例如图5所示,按照上述规则进行计算,head_pos结果为:

[-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,21,22,23]

tail_pos结果为:

[-14,-13-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 ,16]

2.2 PCNN模型构建

分段卷积神经网络(Piecewise Convolutional Neural Network,PCNN)处理 过程大致与CNN相似,同样适用于处理大规模文本数据,被广泛应用在自然语 言处理,声音图像等方面。PCNN模型如图6所示,包含输入层、卷积层、分段 最大池化层、分类层。PCNN模型与CNN模型区别在于用分段最大池化层替换 原有的池化层。其中输入层输入的向量是上文BERT模型的输入表示。

2.2.1 卷积层

卷积层的本质是向量的运算,卷积层的目的是根据句子上下文中词语的语义 特征拼接而得到整个句子的特征。并且卷积层通过高层特征限制输入层与隐藏层 之间连接元的数目从而减少模型训练的参数。多尺寸卷积核能够关注于不同特征 值,使得训练模型可以全面的分析语句信息。综合以上考虑,卷积层设计了100 个卷积核,大小分别为1*3,1*5,1*9。

根据食品安全领域数据的特点,本研究使用GELU函数,GELU函数结合了 非线性计算与随机正则化计算,相较于RELU函数解决了可能神经元坏死的情 况。GELU函数计算公式为

2.2.2 分段最大池化层

分段最大池化层与最大池化层相比,在捕捉更高层语义特征的同时还能利用 实体与实体之间的位置关系。具体操作如下图7所示,分段最大池化层根据头实 体和尾实体的位置将句子分为三部分:即第一部分是句首到第一个实体处(包含 第一个实体),第二部分是两个实体之间(包含头尾两个实体),第三部分是另一 个实体到句尾(包含另一个实体)。对分段之后的句子进行填充像素(padding), padding的目的是为了方便计算,处理过程是以最长部分为准,对另外两部分进 行填充,如果该位置不存在元素设为1,存在设置为0。

对于一个由m个单词组成的句子sentence={word1,word2,word3,…,wordm}, 根据头尾实体分为3个片段{c1,c2,c3},则经分段池化层处理后的输出向量为:

其中n代表卷积核的个数,P

2.2.3 分类层

为了提升模型的鲁棒性以及防止过拟合现象,在分类层处理之前加入L

L

将池化层得到的向量通过线性计算将维度降低至n维,通过softmax分类器 预测条件概率并选出最有可能的关系。N为关系分类的总类别,

基于本文多分类的问题,采用Adam算法计算。Adam算法可以通过损失函 数自动计算一阶矩和二阶矩,从而更新每个参数的学习率。计算公式为:

其中n为关系的总数量,k为样本数,x为具体分类类别,p

2.3 模型改进

2.3.1 注意力机制

多层级注意力机制可以更好的解决非结构化文章的上下文问题,使得提取结 果更加准确。注意力机制本质是一种特殊的加权计算,能够过滤出非重要的信息 并集中注意力。本发明在分段最大池化层与分类层之间添加注意力机制,即在分 段池化层之后做进一步的高层语义提取。中间参数M的计算方法是将分段最大 池化层的输出压缩到(-1,1)值域,权重W的计算方法是将矩阵与注意力机制初始 化矩阵相乘,最终传到softmax函数中,向量vec表示加权后的输出向量为:

M=tanh(P) (8),

a=softmax(w

vec=Pa

2.3.2 基于词力度的随机掩码

在PCNN模型的分段最大池化层中,会执行

3实验

3.1 评价指标

本文实验是多类型分类预测,其评价指标一般为准确率(precision,P), 召回率(recall,R)。对于每次的训练结果来说分为TP,FP,FN,TN,即分别 为正样本被预测正确的数目、正样本被预测错误的数目、负样本被预测错误的数 目、负样本被预测正确的数目。准确率和召回率如式(11)(12)所示。当评价不同 模型时,准确率和召回率可能各有高低,而无法直接对比模型的优劣。因此通过 比较F

3.2 实验环境与参数设置

本文实验的环境为windows10,采用的处理器是Intel(R)Core(TM)i5-8250U CPU@1.60GHz,内存大小为12GB,实验所用的python版本为3.7。

在本实验中为了充分对比本文提出的网络模型,在同一食品安全领域数据集 下,除了使用BERT-PCNN,BERT-PCNN-ATT,BERT-PCNN-jieba, BERT-PCNN-ATT-jieba模型外,还选用了CNN模型和PCNN模型作为实验对比。

为了控制实验变量,六个模型的实验参数如表4所示。

表4 神经网络参数设置

3.4 实验结果分析

在上述的实验参数配置下,6个模型对7种关系进行抽取,准确率、召回率、 F

表5 各神经网络模型准确率、召回率、F

从表5可以看出,PCNN模型的F

BERT-PCNN-ATT-jieba模型对抽取不同关系的准确率、召回率及F

表6 BERT-PCNN-ATT-jieba模型对不同关系

从表6的结果可以看出,BERT-PCNN-ATT-jieba模型在七种关系的F

以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的 技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施 例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在 本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号