1.本发明属于自然语言处理领域,具体涉及一种文本中的专业术语信息抽取方法。
背景技术:
2.在自然语言处理中,面临需要从科技文献中抽取专业术语的问题,即针对科技文献中的标题和摘要部分的文本序列[w1,w2,
…
,wn],从中抽取在上下文中形成一个完整且信息丰富的语义单元[wi,w
i 1
,
…
,wj],具有一定的领域特性,且不同的语义单元可能存在嵌套关系。从本质上讲该任务也属于自然语言处理中的实体抽取问题,当前,将短语或实体抽取转换为序列标注任务是一个最常见的做法,其中最常用的是双向lstm-crf的结构,通过双向lstm编码文本中的上下文信息,之后通过crf算法对特征进行解码完成抽取。但在专业术语的场景下,术语之间可能存在嵌套情况,如“随机存储器”、“存储器”。这种存在嵌套情况的术语标注问题,是传统的序列标注的方法无法解决的,需要对术语抽取模型进行优化改进。此外,构建一个高性能的术语抽取模型往往需要大量的数据集,不同领域的专业术语往往没有公开的标注数据集,而对于术语的标注不仅仅需要人力,还需要标注人员具有一定的知识背景,不同领域的数据就需要不同领域的专家人员参与标注,所以术语抽取数据集构建的人力和时间成本十分巨大,数据标注困难。
[0003]
综上,现有的通用方法有如下缺陷:
[0004]
(1)在科技文献中的专业术语往往存在很多的嵌套关系,现有的常用的序列标注方法无法解决且特征构建不具备针对性。
[0005]
(2)不同领域的专业术语数据集标注困难,标注数据需要标注人员具有一定的专业知识背景。
技术实现要素:
[0006]
本发明的目的在于解决科技文献中的专业术语抽取问题,并提供一种基于区间判别的半监督专业术语抽取方法。
[0007]
本发明所采用的具体技术方案如下:
[0008]
第一方面,本发明提供了一种基于区间判别的半监督专业术语抽取方法,其包括:
[0009]
s1、获取已标注句子集合,并生成其中每个句子的每个词元(即token)的词性标签;
[0010]
s2、对所述已标注句子集合中带有词性标签的每个句子分别构建正样本和负样本,从而将所述已标注句子集合转换为第一训练数据集;其中,每个句子中已标注的专业术语所处的所有位置区间均为正样本,而句子中随机生成的非专业术语所处的所有位置区间均为负样本,且负样本中不存在与正样本完全重合的位置区间;
[0011]
s3、利用所述第一训练数据集通过优化损失函数对术语抽取模型进行训练,使训练好的术语抽取模型能够从输入句子中识别出专业术语所处的位置区间;
[0012]
所述术语抽取模型通过学习得到词性特征矩阵和长度特征矩阵,其中词性特征矩
阵每一行的行向量分别对应于一种词性标签,长度特征矩阵每一行的行向量分别对应于一种位置区间长度;在所述术语抽取模型中,输入句子先通过预训练语言模型得到其中每个词元的语义特征表示和整个输入句子的特征表示,然后进一步计算输入句子中每个位置区间对应的语义特征、词性特征和长度特征并将三者进行拼接得到每个位置区间对应的最终特征表示,所述语义特征由位置区间内所有词元的语义特征表示的最大池化结果和整个输入句子的特征表示拼接而成,所述词性特征由所述词性特征矩阵中位置区间的起始词元和末尾词元各自的词性标签所对应的行向量拼接而成,所述长度特征为所述长度特征矩阵中位置区间的长度对应的行向量;最后,由多层感知机针对每一个位置区间基于各自对应的最终特征表示进行二分类判别,得到每个位置区间为专业术语所处区间的概率分布;
[0013]
s4、针对未标注句子集合中的每个未标注句子,利用训练好的术语抽取模型预测未标注句子中专业术语所处的位置区间,并得到未标注句子中每个位置区间为专业术语所处区间的概率分布,再将得到的概率分布与标准概率分布进行相似度计算,剔除未标注句子中相似度不满足条件的位置区间,未标注句子剩余中保留的位置区间作为专业术语所处区间并用伪标签进行标记,从而将未标注句子集合转换为第二训练数据集;
[0014]
s5、结合第一训练数据集和第二训练数据集重新对术语抽取模型进行训练,得到最终的术语抽取模型,用于对目标句子进行专业术语抽取。
[0015]
作为优选,所述s1中,每个句子的每个词元的词性标签通过词性标注工具生成。
[0016]
作为优选,所述s1中,已标注句子集合中所有句子生成的词性标签均赋予各自的唯一编码,形成词性标签与唯一编码之间的映射表,且映射表中的唯一编码值从起始值1开始以1为步长连续编码;所述词性特征矩阵中,第k行的行向量对应于映射表中唯一编码值为k的词性标签。
[0017]
作为优选,所述的预训练语言模型为在与所述输入句子的语言种类相同的数据集上训练的bert模型。
[0018]
作为优选,所述多层感知机包含两层,第一层的维度为所述最终特征表示的长度的1/2,第二层的维度为2,每层网络通过relu激活函数激活。
[0019]
作为优选,所述s3中,所述术语抽取模型训练所采用的损失函数为交叉熵损失与l2正则化项的加权和。
[0020]
作为优选,所述s4中,所述相似度通过kl散度进行计算。
[0021]
作为优选,所述s5中,对为标注句子或目标句子进行专业术语抽取时,先从句子中提取所有在专业术语长度范围内的可选位置区间,然后利用最终的术语抽取模型对每一个可选位置区间是否术语专业术语所处的位置区间进行识别。
[0022]
第二方面,本发明提供了一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,能实现如第一方面中任一方案所述的基于区间判别的半监督专业术语抽取方法。
[0023]
第三方面,本发明提供了一种电子设备,其包括存储器和处理器;
[0024]
所述存储器,用于存储计算机程序;
[0025]
所述处理器,用于当执行所述计算机程序时,实现如第一方面中任一方案所述的基于区间判别的半监督专业术语抽取方法。
[0026]
本发明相对于现有技术而言,具有以下有益效果:
[0027]
(1)本发明提出的基于区间判别的专业术语抽取方法中,针对专业术语的特性构建了包含语义特征、词性特征和长度特征在内的区间特征用于判别专业术语,相比于传统的序列标注方法,能有效的处理术语之前的嵌套问题。同时,本发明针对专业术语的特征构建方法能使抽取结果更加准确。
[0028]
(2)本发明针对专业术语抽取任务构建的半监督抽取流程,在针对专业术语的标注困难,数据集构建成本大的问题,具有一定的缓解作用。本发明采用的半监督机制能在少量的训练样本下取得较好的抽取效果。
附图说明
[0029]
图1为基于区间判别的半监督专业术语抽取方法的基本步骤流程图;
[0030]
图2为基于区间判别的半监督专业术语抽取方法的整体框架图;
[0031]
图3为本发明中的半监督运作机制流程图。
具体实施方式
[0032]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施例的限制。本发明各个实施例中的技术特征在没有相互冲突的前提下,均可进行相应组合。
[0033]
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于区分描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
[0034]
参见图1所示,在本发明的一个较佳实施例中,提供了一种基于区间判别的半监督专业术语抽取方法,其框架如图2所示,包含两部分:术语抽取模型和半监督运作机制。整个基于区间判别的半监督专业术语抽取方法的主要步骤如下:
[0035]
s1、获取已标注句子集合,并生成其中每个句子的每个词元的词性标签。
[0036]
需说明的是,本发明中的词元,即对应于英文翻译的token,下面将用token统一表述。
[0037]
在一实施例中,已标注句子集合可以表示为s
labeled
={(sm,entity_listm)|1≤m≤m},m为已标注句子集合中的句子总数;其中每一条句子sm由多个token构成,记为sm={w1,w2,
…
,wn},n为句子中的token总数,w1,w2,
…
,wn表示n个token;entity_listm为句子sm中标注出的专业术语的位置区间,entity_listm中可能含有一个或者多个专业术语的位置区间。一个位置区间包括该专业术语在句子中的起始token下标start_idx和结束位置token下标end_idx,由(start_idx,end_idx)构成该专业术语的位置区间。
[0038]
需要说明的是,本发明中所谓的“专业术语”,并非限定某一特殊领域的术语。句子中的专业术语可由具有一定的专业知识背景的人员进行人工标注,优选为相关领域专家。当然,如果存在满足要求的已有标注数据集,亦可直接使用。
[0039]
在一实施例中,每个句子的每个token的词性标签可以通过词性标注工具生成,词性标注工具的类型不限,可以采用任意能够实现词性标签生成的现有工具。在一优选实施
例中,针对中文和英文预料可以分别采用jieba和spacy两个词性标注工具来实现词性标签生成。前述已标注句子集合s
labeled
中的句子sm经过词性标注工具生成词性标签后,可以表示为新的已标注句子s
′m={(w1,p1),(w2,p2),
…
,(wn,pn)},其中p1,p2,
…
,pn分别为tokenw1,w2,
…
,wn所对应的词性标签。所有的新的已标注句子完成词性标签标注后,即构成了新的标注句子集合s
′
labeled
。
[0040]
进一步的,由于通过词性标注工具生成的词性标签后续将用于基于词性特征矩阵构建词性特征向量,因此为了便于实现该目的,可以在已标注句子集合中所有句子都生成每个token对应的词性标签后,对已标注句子集合中所有句子生成的词性标签均赋予各自的唯一编码(id),每一种词性标签都赋予一个id,从而形成词性标签与唯一编码之间的映射表tag_to_id。而且,且映射表中的id值从起始值1开始以1为步长连续编码,即id至为1,2,3,
…
。由此,在后续的词性特征矩阵中,第k行的行向量对应于映射表中唯一编码值为k的词性标签。
[0041]
s2、对已标注句子集合中带有词性标签的每个句子分别构建正样本和负样本,从而将已标注句子集合转换为第一训练数据集。其中,每个句子中已标注的专业术语所处的所有位置区间均为正样本,而句子中随机生成的非专业术语所处的所有位置区间均为负样本,且负样本中不存在与正样本完全重合的位置区间。
[0042]
需要说明的是,集合s
′
labeled
中的每个句子都需要生成正样本和负样本,正样本和负样本对应于句子中不同的位置区间。所有预先人工标注的专业术语所在区间即entity_listm中包含的位置区间都是正样本,而后续随机生成的其他位置区间都是负样本。特别需要注意的是,在随机生成负样本时,需要控制生成的位置区间的最大长度符合要求,实际实现时可以根据专业术语的长度分布范围确定一个最大长度阈值,然后在该最大长度阈值范围内随机生成位置区间,而且随机生成的位置区间应当检查是否有与预先人工标注的专业术语所在区间重合的,如果有则需要剔除,剩余的位置区间才可以作为负样本。因此,不论是正样本还是负样本,其均可以用三元组(i,j,y)来表示,其中i表示该位置区间中起始token的下标即位置标号,j表示该位置区间中末尾token的下标即位置标号,y表示该位置区间的类别标签,y=0表示属于负样本,y=1表示属于正样本。完成集合s
′
labeled
中每个句子的正负样本生成后,集合s
′
labeled
即被转换为第一训练数据集。
[0043]
s3、利用前述的第一训练数据集通过优化损失函数对术语抽取模型进行训练,使训练好的术语抽取模型能够从输入句子中识别出专业术语所处的位置区间。
[0044]
其中,术语抽取模型中包含预训练语言模型、区间特征生成模块以及多层感知机(mlp),术语抽取模型在训练过程中可以通过学习得到词性特征矩阵和长度特征矩阵,用于供区间特征生成模块生成相应的区间特征。其中,词性特征矩阵每一行的行向量分别对应于一种词性标签,长度特征矩阵每一行的行向量分别对应于一种位置区间长度,由此每一个位置区间均可以按照其自身的token词性标签以及区间长度从两个矩阵中抽取出词性特征向量和长度特征向量。为了便于描述,将输入术语抽取模型的句子称为输入句子。因此具体而言,术语抽取模型中的执行流程如下:
[0045]
输入句子先输入预训练语言模型中,通过预训练语言模型得到其中每个token的语义特征表示和整个输入句子的特征表示,然后进一步计算输入句子中每个位置区间对应的语义特征、词性特征和长度特征并将三者进行拼接得到每个位置区间对应的最终特征表
示,其中所述语义特征由位置区间内所有token的语义特征表示的最大池化结果和整个输入句子的特征表示拼接而成,所述词性特征由所述词性特征矩阵中位置区间的起始token和末尾token各自的词性标签所对应的行向量拼接而成,所述长度特征为所述长度特征矩阵中位置区间的长度对应的行向量;最后,由多层感知机针对每一个位置区间基于各自对应的最终特征表示进行二分类判别,得到每个位置区间为专业术语所处区间的概率分布。
[0046]
需要说明的是,前述的预训练语言模型可以任意能够输出各token和句子的特征表示的模型。在一实施例中,考虑到中文、英文等不同的语言种类所需要的预训练语言模型存在差异,因此优选采用的预训练语言模型为在与对应的输入句子的语言种类相同的数据集上训练的bert模型。如果第一训练数据集中存在多种不同的语言种类,则需要针对不同的语言种类各自设置相应的bert模型,用于分别输出语义特征。
[0047]
在一优选实施例中,对于每个句子s
′m,通过bert预训练语言模型得到句子每个token的语义特征表示及整个句子的特征表示可以用公式表示如下:
[0048]fcls
,{f1,f2,
…
,fn}=bert(w1,w2,
…
,wn)
[0049]
式中:f
cls
为整个句子s
′m的特征表示,即图2中的cls,f1,f2,
…
,fn分别是w1,w2,
…
,wn的语义特征表示,即图2中的e1,e2,
…
,en。
[0050]
另外,前述的语义特征、词性特征及长度特征这三个区间特征都是针对每个位置区间各自计算的,对于三元组表示为(i,j,y)的位置区间而言,三个区间特征用公式可以分别表示如下:
[0051]
1)语义特征表示为:maxpooling表示最大池化操作,fi和fj分别是该位置区间中的起始token和末尾token的语义特征表示。
[0052]
2)词性特征表示为:其中θ
(pos)
为模型学习得到的词性特征矩阵且每种词性标签对应的特征向量为词性特征矩阵中的一行。如果在前述实施例中,已经生成了词性标签与唯一编码id之间的映射表tag_to_id,那么可以直接通过根据词性标签的id值来确定参与拼接的两个行向量,即词性特征矩阵中位置区间的起始token的词性标签所对应的行向量和词性特征矩阵中位置区间的末尾token的词性标签所对应的行向量也就是说tag_to_id(pi)和tag_to_id(pj)分别为pi和pj的id值,和分别为词性特征矩阵的第tag_to_id(pi)行和tag_to_id(pj)行。
[0053]
3)长度特征表示为:其中θ
(l)
为模型学习得到的长度特征矩阵,每个位置区间长度对应的长度特征向量为矩阵中的一行,即代表长度特征矩阵θ
(l)
中的第j-i 1行。
[0054]
在一实施例中,语义特征、词性特征及长度特征这三个区间特征均计算完毕后,可以直接通过concat操作进行拼接得到最终特征表示以公式表示为:
[0055]
[0056]
需要说明的是,通过多层感知机实现二分类判别属于现有技术,多层感知机的具体网络结构和参数设置可根据实际进行优化。在一实施例中,多层感知机的层数可设置为两层,第一层的维度为所述最终特征表示的长度的1/2,第二层的维度为2,即对于长度为dim的两层的维度分别为dim/2和2,每层网络通过relu激活函数激活,多层感知机最终输出的概率分布为:
[0057][0058]
由于多层感知机实现的是二分类判别,因此其概率分布可以表示为为位置区间为专业术语所处区间的概率。
[0059]
需要说明的是,术语抽取模型的训练可按照现有的模型训练方式来实现,第一训练数据集中的句子可分批次输入模型中,通过优化器对损失函数进行迭代优化,待损失函数收敛后即可完成模型训练。其中,损失函数可根据实际进行优化设计,在一实施例中,术语抽取模型训练所采用的损失函数为交叉熵损失与l2正则化项的加权和,以公式可表示如下:
[0060][0061]
其中||θ||2代表l2正则化项,λ代表对应的权重,代表交叉熵损失,公式为:
[0062][0063]
式中:n表示一个输入批次中的句子数量。
[0064]
当完成术语抽取模型的上述第一次训练后,该模型即可对未标注句子进行预测。
[0065]
s4、针对未标注句子集合中的每个未标注句子,利用训练好的术语抽取模型预测未标注句子中专业术语所处的位置区间,并得到未标注句子中每个位置区间为专业术语所处区间的概率分布,再将得到的概率分布与标准概率分布进行相似度计算,剔除未标注句子中相似度不满足条件的位置区间,未标注句子剩余中保留的位置区间作为专业术语所处区间并用伪标签进行标记,从而将未标注句子集合转换为第二训练数据集。
[0066]
需要说明的是,由于训练好的术语抽取模型是对句子中的每个位置区间进行是否属于术语区间的判定的,因此未标注句子中在进行专业术语抽取时,先从未标注句子中提取所有在专业术语长度范围内的可选位置区间,然后利用最终的术语抽取模型对每一个可选位置区间是否术语专业术语所处的位置区间进行识别。从未标注句子中提取所有在专业术语长度范围内的可选位置区间的具体做法,可事先根据专业术语的长度分布范围确定一个最大长度阈值,然后在该最大长度阈值范围内随机生成所有可能的位置区间,这些位置区间都作为可选位置区间。其中最大长度阈值可根据实际进行选择,优选在1~8个token之间。由此,在术语抽取模型的辅助下,未标注句子即带有专业术语所在位置区间的标签。但是这些标签可能与实际存在偏差,需要对其进行进一步筛选。筛选的做法是将得到的概率分布与标准概率分布进行相似度计算,如果相似度不满足预设的条件,则表明这个位置区间很可能并非专业术语所在位置区间,需要剔除。
[0067]
相似度计算的具体做法不限,在一实施例中,相似度通过kl散度进行计算,其中每
个区间的概率分布与标准概率分布(0,1)的相似度α计算公式为:
[0068][0069]
对于kl散度而言,相似度α越小越好,因此对所有进行相似度计算后的可选位置区间,需要舍去其中α≥δ的区间,剩下的位置区间保留为专业术语所在位置区间进行伪标签标注。δ为kl散度阈值,可根据实际优化,优选为0.15~0.25。由此即可将未标注句子集合转换为第二训练数据集。第二训练数据集与已有的第一训练数据集合并,即可得到新的训练数据集s
′
labeled
,用于进行模型的二次训练。
[0070]
s5、结合第一训练数据集和第二训练数据集重新对术语抽取模型进行训练,得到最终的术语抽取模型,用于对目标句子进行专业术语抽取。
[0071]
需要说明的是,上述第一训练数据集中带有人工标注的真实标签,而第二训练数据集则带有伪标签,这些标签均可以在训练过程中对术语抽取模型进行监督,从而提升术语抽取模型对句子中专业术语的识别能力。这种半监督机制能在少量人工标注的训练样本构成的第一训练数据集监督下,进一步生成样本量更大的第二训练数据集,从而取得较好的抽取效果。
[0072]
需要说明的是,结合第一训练数据集和第二训练数据集重新对术语抽取模型进行训练时,其做法与术语抽取模型的第一次训练过程相同,不再赘述。
[0073]
而当术语抽取模型重新训练完毕后,即可用于对目标句子进行专业术语抽取。其抽取做法与前述的未标注句子类似,可先从目标句子中提取所有在专业术语长度范围内的可选位置区间,然后利用最终的术语抽取模型对每一个可选位置区间是否术语专业术语所处的位置区间进行识别,识别为专业术语所处的位置区间的可选位置区间即可添加相应的标注。
[0074]
因此,参见图3所示,本发明中用第一训练数据集第一次而成的术语抽取模型相当于一个教师模型,在该术语抽取教师模型的辅助下,可以形成准确率更高的术语抽取最终模型
[0075]
同样的,基于同一发明构思,本发明的另一较佳实施例中还提供了与上述实施例提供的基于区间判别的半监督专业术语抽取方法对应的一种电子设备,其包括存储器和处理器;
[0076]
所述存储器,用于存储计算机程序;
[0077]
所述处理器,用于当执行所述计算机程序时,实现如前所述的基于区间判别的半监督专业术语抽取方法。
[0078]
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
[0079]
由此,基于同一发明构思,本发明的另一较佳实施例中还提供了与上述实施例提
供的基于区间判别的半监督专业术语抽取方法对应的一种计算机可读存储介质,该所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,能实现如前所述的基于区间判别的半监督专业术语抽取方法。
[0080]
可以理解的是,上述存储介质可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。同时存储介质还可以是u盘、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0081]
可以理解的是,上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signalprocessing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0082]
另外需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子设备内部程序的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本技术所提供的各实施例中,所述的程序和方法中对于步骤或者模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或步骤可以结合或者可以集成到一起,一个模块或者步骤亦可进行拆分。
[0083]
为了进一步直观展示本发明上述基于区间判别的半监督专业术语抽取方法的具体优点,下面将上述方法应用于具体数据集中,以展示其技术效果。
[0084]
实施例
[0085]
本实施例中,基于区间判别的半监督专业术语抽取方法具体包括训练阶段和预测阶段,其中下列各步骤中的参数定义如前述各实施例所述,对此不再赘述。两个阶段各自的实现过程分别如下:
[0086]
一、训练阶段:
[0087]
步骤1:对于前述获取的已标注句子集合s
labeled
,对其中的每个句子sm={w1,w2,
…
,wn}通过预设的词性标注工具生成每个token的词性标签,从而得到带有词性标签的句子s
′m={(w1,p1),(w2,p2),
…
,(wn,pn)},所有的带词性标签句子构成前述新的标注句子集合s
′
labeled
。
[0088]
步骤2:统计集合s
′
labeled
中所有句子生成的词性标签,构建词性标签到其唯一编码id的映射表,即前述的tag_to_id。
[0089]
步骤3:对于每个句子s
′m,将在标注集entity_listi中的位置区间都作为正样本,同时随机生成n
x
个长度不超过最大长度阈值的位置区间作为训练的负样本,正样本和负样本合并作为最后的训练数据,从而形成前述的第一训练数据集。
[0090]
步骤4:按照步骤4-1~步骤4-4构建术语抽取模型:
[0091]
步骤4-1:对于每个输入句子,首先通过bert预训练语言模型得到输入句子每个token的语义特征表示及整个句子的特征表示,具体如下所示。
[0092]fcls
,{f1,f2,
…
,fn}=bert(w1,w2,
…
,wn)
[0093]
步骤4-2:对于训练数据中的每个位置区间(i,j,y)构建区间特征,区间特征包括语义特征、词性特征及长度特征,各自的计算公式如下:
[0094]
语义特征:
[0095]
词性特征:
[0096]
长度特征:
[0097]
步骤4-3:对上述的三种区间特征进行合并拼接,得到每个位置区间的最终特征表示
[0098][0099]
步骤4-4:利用多层感知机mlp对最终特征表示进行二分类判别,得到每个位置区间为专业术语所在区间的概率对于长度为dim的mlp包含两层,每层的维度分别为dim/2和2,每层网络应用relu激活函数激活。该概率通过softmax层输出,用概率分布形式表示:
[0100][0101]
步骤6:将第一训练数据集分批次输入术语抽取模型中,每个输入句子s
′m均可得到对应的概率分布从而可以计算术语抽取模型总的损失函数,由优化器优化模型参数。其中,损失函数的计算如下:
[0102]
步骤6-1:通过概率分布计算交叉熵损失函数
[0103][0104]
步骤6-2:在交叉熵损失基础上添加正则化项得到最后的总损失
[0105][0106]
其中||θ||2代表l2正则化项,λ代表对应的权重。
[0107]
步骤7:通过步骤4~6得到术语抽取模型后开设进行半监督机制下的,针对未标注句子集合s
tmp
中的每个未标注句子,随机生成最大长度阈值范围内的一系列可选位置区间,生成的位置区间数量根据预设的最大区间数u确定,生成的可选位置区间集合记为间,生成的位置区间数量根据预设的最大区间数u确定,生成的可选位置区间集合记为表示一个可选位置区间中起始token和末尾token的下标;随后对每个可选位置区间应用术语抽取模型得到每个位置区间是专业术语所在区间的概率分布
[0108]
步骤8:针对步骤7中得到的可选位置区间集合t,通过kl散度计算其中每个可选位置区间的概率分布与标准概率分布(0,1)的相似度α:
[0109][0110]
对所有计算后的可选位置区间,根据预设的kl散度阈值δ进行筛选,舍去其中α≤δ的区间,剩下的可选位置区间保留并标注为专业术语所在的区间,未标注句子集合s
tmp
经过该筛选过程后形成带有伪标签的第二训练数据集。从而将第一训练数据集和已有的第二训练数据集合并得到新的训练数据集s
′
labeled
。
[0111]
步骤9:针对新的训练数据集s
′
labeled
,重复步骤4~6重新对术语抽取模型进行训练,得到最终的术语抽取模型
[0112]
二、预测阶段:
[0113]
对于一个待抽取专业术语的目标句子,首先进行分词后用预设的词性标注工具获取其中所有token的词性标签,随后生成所有位于最大长度阈值范围内的可选位置区间,对每个可选位置区间应用术语抽取模型进行判别,最后判别为专业术语的位置区间即为抽取结果。
[0114]
本实施例中,为了验证上述方法的效果,构建了两类不同的数据集:第一类是基于人工智能领域的英文论文专业术语抽取数据集,第二类是集成电路领域中文专利的专业术语抽取数据集。数据集中每篇文档取其中的标题和摘要部分进行人工标注,并按照6:2:2的比例划分训练集、验证集和测试集用于结果测评。同时,针对本发明所面临的数据集构建困难问题,通过对训练集的再次划分模拟少量数据的情况,同时使用验证集作为本实施例中所使用的未标注数据。两个数据集的细节如下表1所示:
[0115]
表1 专业术语抽取数据集
[0116][0117]
评价指标:对于上述两个数据集均采用准确率(precision)、召回率(recall)和f1值(f1-score)进行评价。准确率表示算法预测的所有结果中,正确预测为专业术语的比率。召回率表示在数据中的所有正例,算法正确预测为专业术语的比率。f1值代表准确率和召回率的均衡数值。
[0118]
该实施例中,部分具体的参数设置如下表2所示:
[0119]
表2 术语抽取对比实验参数设置
[0120][0121]
本实施例中,还将本发明提出的抽取方法与四种现有的抽取方法进行了对比,分别为:(1)bert-mlp:基于序列标注的抽取方法,对bert预训练模型得出的字向量采用多层感知机进行标签分类的方法进行解码。(2)bert-crf:基于序列标注的抽取方法,对bert预训练模型得出的字向量采用crf的方式进行解码。(3)bert-bilstm-crf:基于序列标注的方法,同时采用双向lstm挖掘序列中的上下文信息,最后对得出的特征表示采用crf的方式解码。(4)fe-ste:在bert预训练模型的基础上获取每个区间的语义特征,同时嵌入人工定义的词性特征和长度特征后作为每个区间的最终特征,最后通过多层感知机对区间进行判别得到抽取结果,即本发明中的术语抽取模型。
[0122]
本发明进行的对比实验针对上述的四种抽取方法和本发明提出的方法分别在所构建的两个数据集上进行,同时设置30%和100%的训练集数据用于衡量不同数据量的模型性能情况,针对本实施例对比的序列标注方法,仅选取重叠术语中的一个进行标注,实验中使用的中英文预训练语言模型分别采用transformers公开的bert-base-chinese(https://huggingface.co/bert-base-cased)和allenai/scibert_scivocab_cased(https://huggingface.co/allenai/scibert_scivocab_cased)两个模型。此外,对于句子中每个词的词性提取,本实施例针对中文和英文预料分别采用了jieba和spacy两个词性标注工具。表3和表4展示了本发明提出的方法与对比方法在两个数据集上的实验结果。
[0123]
表3 英文论文数据集实验结果
[0124][0125]
表4 中文专利数据集实验结果
[0126][0127]
对实验结果进行分析,从不同模型上看,全量数据下,本发明的方法在f1值结果上均比对比方法更加优秀,在英文数据集上,本发明的方法相比于对比的最优方法提升0.52%,中文数据集上提升16.62%,验证了本发明提出的基于区间判别的方法针对术语嵌套问题的有效性。从30%的数据量上看,使用半监督机制后,相比于未使用的模型,性能分别在两个数据集上提升1.95%和0.86%,说明了本发明提出的半监督机制的有效性。
[0128]
以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
技术特征:
1.一种基于区间判别的半监督专业术语抽取方法,其特征在于,包括:s1、获取已标注句子集合,并生成其中每个句子的每个词元的词性标签;s2、对所述已标注句子集合中带有词性标签的每个句子分别构建正样本和负样本,从而将所述已标注句子集合转换为第一训练数据集;其中,每个句子中已标注的专业术语所处的所有位置区间均为正样本,而句子中随机生成的非专业术语所处的所有位置区间均为负样本,且负样本中不存在与正样本完全重合的位置区间;s3、利用所述第一训练数据集通过优化损失函数对术语抽取模型进行训练,使训练好的术语抽取模型能够从输入句子中识别出专业术语所处的位置区间;所述术语抽取模型通过学习得到词性特征矩阵和长度特征矩阵,其中词性特征矩阵每一行的行向量分别对应于一种词性标签,长度特征矩阵每一行的行向量分别对应于一种位置区间长度;在所述术语抽取模型中,输入句子先通过预训练语言模型得到其中每个词元的语义特征表示和整个输入句子的特征表示,然后进一步计算输入句子中每个位置区间对应的语义特征、词性特征和长度特征并将三者进行拼接得到每个位置区间对应的最终特征表示,所述语义特征由位置区间内所有词元的语义特征表示的最大池化结果和整个输入句子的特征表示拼接而成,所述词性特征由所述词性特征矩阵中位置区间的起始词元和末尾词元各自的词性标签所对应的行向量拼接而成,所述长度特征为所述长度特征矩阵中位置区间的长度对应的行向量;最后,由多层感知机针对每一个位置区间基于各自对应的最终特征表示进行二分类判别,得到每个位置区间为专业术语所处区间的概率分布;s4、针对未标注句子集合中的每个未标注句子,利用训练好的术语抽取模型预测未标注句子中专业术语所处的位置区间,并得到未标注句子中每个位置区间为专业术语所处区间的概率分布,再将得到的概率分布与标准概率分布进行相似度计算,剔除未标注句子中相似度不满足条件的位置区间,未标注句子剩余中保留的位置区间作为专业术语所处区间并用伪标签进行标记,从而将未标注句子集合转换为第二训练数据集;s5、结合第一训练数据集和第二训练数据集重新对术语抽取模型进行训练,得到最终的术语抽取模型,用于对目标句子进行专业术语抽取。2.如权利要求1所述的基于区间判别的半监督专业术语抽取方法,其特征在于,所述s1中,每个句子的每个词元的词性标签通过词性标注工具生成。3.如权利要求1所述的基于区间判别的半监督专业术语抽取方法,其特征在于,所述s1中,已标注句子集合中所有句子生成的词性标签均赋予各自的唯一编码,形成词性标签与唯一编码之间的映射表,且映射表中的唯一编码值从起始值1开始以1为步长连续编码;所述词性特征矩阵中,第k行的行向量对应于映射表中唯一编码值为k的词性标签。4.如权利要求1所述的基于区间判别的半监督专业术语抽取方法,其特征在于,所述的预训练语言模型为在与所述输入句子的语言种类相同的数据集上训练的bert模型。5.如权利要求1所述的基于区间判别的半监督专业术语抽取方法,其特征在于,所述多层感知机包含两层,第一层的维度为所述最终特征表示的长度的1/2,第二层的维度为2,每层网络通过relu激活函数激活。6.如权利要求1所述的基于区间判别的半监督专业术语抽取方法,其特征在于,所述s3中,所述术语抽取模型训练所采用的损失函数为交叉熵损失与l2正则化项的加权和。7.如权利要求1所述的基于区间判别的半监督专业术语抽取方法,其特征在于,所述s4
中,所述相似度通过kl散度进行计算。8.如权利要求1所述的基于区间判别的半监督专业术语抽取方法,其特征在于,所述s5中,对为标注句子或目标句子进行专业术语抽取时,先从句子中提取所有在专业术语长度范围内的可选位置区间,然后利用最终的术语抽取模型对每一个可选位置区间是否术语专业术语所处的位置区间进行识别。9.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,能实现如权利要求1~8任一所述的基于区间判别的半监督专业术语抽取方法。10.一种电子设备,其特征在于,包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现如权利要求1~8任一所述的基于区间判别的半监督专业术语抽取方法。
技术总结
本发明公开了一种基于区间判别的半监督专业术语抽取方法、介质及设备,属于自然语言处理领域。本发明提出的基于区间判别的专业术语抽取方法中,针对专业术语的特性构建了包含语义特征、词性特征和长度特征在内的区间特征用于判别专业术语,相比于传统的序列标注方法,能有效的处理术语之间的嵌套问题。同时,本发明针对专业术语抽取任务构建的半监督抽取流程,在针对专业术语的标注困难,数据集构建成本大的问题,具有一定的缓解作用。本发明采用的半监督机制能在少量的训练样本下取得较好的抽取效果,针对专业术语的特征构建方法能使抽取结果更加准确。使抽取结果更加准确。使抽取结果更加准确。
技术研发人员:宗畅 陈泽群
受保护的技术使用者:杭州量知数据科技有限公司
技术研发日:2022.02.17
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-11328.html