一种基于跨度表示的实体抽取方法技术

技术编号:30140524 阅读:22 留言:0更新日期:2021-09-23 15:02
本发明专利技术公开了一种基于跨度表示的实体抽取方法,首先获取互联网语料库,并将其整理得到<文本,实体>格式的数据集;然后对训练集数据进行预处理,采集训练样本;再构建实体抽取模型;最后通过训练集训练实体抽取模型,使用训练好的实体抽取模型完成预测。本发明专利技术方法加强了模型对语义的理解,提升了准确率。将位置信息进行二次添加,防止在训练过程中位置信息丢失,从而无法正确理解语义,导致准确率下降;在span的头尾引入不同的残差连接,进一步增强了文本信息的表示能力,有利于改善抽取效果。有利于改善抽取效果。有利于改善抽取效果。

【技术实现步骤摘要】
一种基于跨度表示的实体抽取方法


[0001]本专利技术属于信息抽取(information extraction)中的实体抽取领域,主要提出了一种基于跨度表示的实体抽取方法。

技术介绍

[0002]实体抽取,即在自然语言中识别实体指称的边界和类别,也称为命名实体识别,其主要任务是识别文本中具有意义的实体,比如人名、地名、机构名等。
[0003]在实体抽取中,由于出现在文本不同位置的字或词所携带的语义信息存在差异,因此,BERT模型会对不同位置的字或词附加一个不同的向量以作区分,并将位置向量与其他向量相加作为输入再进行训练。但是在训练过程中,位置信息可能会丢失导致抽取准确率降低。

技术实现思路

[0004]针对现有技术中存在的不足,本专利技术提供了一种基于跨度表示的实体抽取方法。
[0005]本专利技术的核心改进点在于提出了一种基于跨度表示的实体抽取模型,通过改变模型的构建中的span表示方法,在span中加入文本长度以及二次加入词的位置信息,提增强模型在复杂语境下的识别实体的能力,并提升了抽取的准确率。
[0006]一种基于跨度表示的实体抽取方法,步骤如下:
[0007]步骤1:获取互联网语料库,并将其整理得到<文本,实体>格式的数据集。
[0008]步骤2:对训练集数据进行预处理。
[0009]步骤3:采集训练样本。
[0010]步骤4:构建实体抽取模型。
[0011]步骤5:通过训练集训练实体抽取模型。<br/>[0012]步骤6:模型预测。
[0013]对步骤1中获得的训练集数据,通过梯度下降算法,求得步骤4

4中损失函数的最小化来训练模型。
[0014]步骤1具体方法如下:
[0015]所述的互联网语料库采用现有公开的数据库,首先定义实体类别,具体参考行业内对于实体类型定义的规则规范。然后进行实体关系标注:对于存在实体的文本,从中得到命名实体及其对应位置。根据定义的实体类型,采用人工标注的方法,对互联网语料库中的命名实体进行标注,生成数据集。
[0016]最后将数据集中的所有文本数据拆分成两部分,其中85%作为训练集,15%作为测试集,分别用于模型的训练和测试。
[0017]步骤2具体步骤如下:
[0018]2‑
1、数据清洗,删除训练集文本中的非法字符、空格、换行符等。
[0019]2‑
2、以字为粒度将数据清洗后的文本进行分割,构建字典。构建的字典D={d1,
d2,

,d
t
},其中t为字典的总长度,d
z
表示字典中第z个字。
[0020]2‑
3、构建实体类型字典。构建的实体类型字典L={l0,l1,l2,

,l
p
},其中p为实体类型数,l0表示非实体类型,l
e
表示第e个实体类型。
[0021]步骤3具体方法如下:
[0022]所述的训练样本包括正样本集合和负样本集合。对于文本数据S={s1,s2,

,s
n
}和Y={y1,y2,

,y
m
},其中n是句子长度,m是实体数量。具体实施步骤如下:
[0023]3‑
1、构建正样本集合。
[0024]使用span格式对样本进行表示。正样本集由已标注实体集Y构成。集合Y中的任意元素y是一个元组(i,j,l)。span(i,j)=(i,j)是一个跨度,对应一个字符串序列S
i,j
=[s
i
,s
i+1
,

,s
j
],l是类型标签,表示S
i,j
所属的实体类型。
[0025]3‑
2、构建负样本集合。
[0026]负样本集合为
[0027][0028]其中maxspanlen为最大span长度,实验中取值为15,l0表示span(i,j)不是实体。
[0029]3‑
3、生成训练样本集合T=Y∪N。
[0030]步骤4具体过程如下:
[0031]4‑
1、获得指定长度的文本序列S
c

[0032]4‑1‑
1、在文本数据S中插入s0="CLS",CLS标志放在文本的首位,表示该文本为要做分类的向量并且CLS符号对应的输出向量将作为整篇文本的语义表示。
[0033]4‑1‑
2、将文本数据S={s0,s1,s2,

,s
n
}采用填充、截断、替代的方法得到固定长度为128的文本序列S
c
={s0,s1,s2,

,s
n
,

,s
127
}。当文本数据S长度小于128时,则使用“PAD”进行填充,上长度超过128时则丢弃超过长度的部分。当文本数据S中的字不在字典D中,使用“UNK”代替。将文本序列S
c
中的元素简称token。
[0034]4‑
2、根据训练好的Embeddings层,获取每个token的Embeddings信息,得到文本序列的Embeddings信息,作为BERT模型的输入:
[0035]4‑2‑
1、对于文本序列S
c
中的任意元素s
k
(k=0,1,

,127),利用步骤2

2构建的字典D,通过Token Embeddings层将其转换成768维的向量Token Embeddings(k),用于表示该字内容的主要信息。
[0036]4‑2‑
2、获取文本序列S
c
中每个元素s
k
的段向量Segment Embeddings(k),用于区分文本的上下句。
[0037]4‑2‑
3、根据训练得到的Position Embeddings层,获取位置向量Position Embeddings(k),用于表示s
k
的位置信息。
[0038]4‑2‑
4、将
[0039]Token Embeddings,Segment Embeddings,Position Embeddings求和,得到文本序列S
c
的Embeddings作为BERT模型的输入。
[0040]4‑
3、建立每个字的向量表示,得到头向量残差网络H_HEAD和尾向量残差网络H_TAIL:
[0041]4‑3‑
1、将4
‑2‑
4获得的向量,作为BERT模型的输入,得到代表文本上下文语义信息的BERT输出bert_seq_out(k),本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于跨度表示的实体抽取方法,其特征在于,步骤如下:步骤1:获取互联网语料库,并将其整理得到&lt;文本,实体&gt;格式的数据集;步骤2:对训练集数据进行预处理;步骤3:采集训练样本;步骤4:构建实体抽取模型;步骤5:通过训练集训练实体抽取模型;步骤6:模型预测。2.根据权利要求1所述的一种基于跨度表示的实体抽取方法,其特征在于,步骤1具体方法如下:所述的互联网语料库采用现有公开的数据库,首先定义实体类别,具体参考行业内对于实体类型定义的规则规范;然后进行实体关系标注:对于存在实体的文本,从中得到命名实体及其对应位置;根据定义的实体类型,采用人工标注的方法,对互联网语料库中的命名实体进行标注,生成数据集;最后将数据集中的所有文本数据拆分成两部分,其中85%作为训练集,15%作为测试集,分别用于模型的训练和测试。3.根据权利要求2所述的一种基于跨度表示的实体抽取方法,其特征在于,步骤2具体步骤如下:2

1、数据清洗,删除训练集文本中的非法字符、空格、换行符等;2

2、以字为粒度将数据清洗后的文本进行分割,构建字典;构建的字典D={d1,d2,...,d
t
},其中t为字典的总长度,d
z
表示字典中第z个字;2

3、构建实体类型字典;构建的实体类型字典L={l0,l1,l2,...,l
p
},其中p为实体类型数,l0表示非实体类型,l
e
表示第e个实体类型。4.根据权利要求3所述的一种基于跨度表示的实体抽取方法,其特征在于,步骤3具体方法如下:所述的训练样本包括正样本集合和负样本集合;对于文本数据S={s1,s2,...,s
n
}和Y={y1,y2,...,y
m
},其中n是句子长度,m是实体数量;具体实施步骤如下:3

1、构建正样本集合;使用span格式对样本进行表示;正样本集由已标注实体集Y构成;集合Y中的任意元素y是一个元组(i,j,l);span(i,j)=(i,j)是一个跨度,对应一个字符串序列S
i,j
=[s
i
,s
i+1
,...,s
j
],l是类型标签,表示S
i,j
所属的实体类型;3

2、构建负样本集合;负样本集合为其中maxspanlen为最大span长度,实验中取值为15,l0表示span(i,j)不是实体;3

3、生成训练样本集合T=Y∪N。5.根据权利要求4所述的一种基于跨度表示的实体抽取方法,其特征在于,步骤4具体过程如下:4

1、获得指定长度的文本序列S
c
:4
‑1‑
1、在文本数据S中插入s0=

CLS

,CLS标志放在文本的首位,表示该文本为要做分
类的向量并且CLS符号对应的输出向量将作为整篇文本的语义表示;4
‑1‑
2、将文本数据S={s0,s1,s2,...,s
n
}采用填充、截断、替代的方法得到固定长度为128的文本序列S
c
={s0,s1,s2,...,s
n
,...,S
127
};当文本数据S长度小于128时,则使用“PAD”进行填充,上长度超过128时则丢弃超过长度的部分;当文本数据S中的字不在字典D中,使用“UNK”代替;将文本序列S
c
中的元素简称token;4

2、根据训练好的Embeddings层,获取每个token的Embeddings信息,得到文本序列的Embeddings信息,作为BERT模型的输入:4
‑2‑
1、对于文本序列S
c
中的任意元素s
k
(k=0,1,...,127),利用步骤2

2构建的字典D,通过Token Embeddings层将其转换成768维的向量Token Embeddings(k),用于表示该字内容的主要信息;4
‑2‑
2、获取文本序列S
c
中每个元素s<...

【专利技术属性】
技术研发人员:毛佳豪傅啸康文涛周春珂
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1