发明内容
本发明实施例提供了一种结合知识图谱实体信息的语义识别方法、装置及相关设备,旨在解决现有技术中语义识别准确度不高的问题。
第一方面,本发明实施例提供了一种结合知识图谱实体信息的语义识别方法,其包括:
获取训练语料,按预置矩阵构建规则构建第一文档矩阵,利用实体命名技术识别所述第一文档矩阵中的实体,并根据实体筛选规则从所述实体中筛选出训练实体;
计算所述第一文档矩阵中每个训练实体之间的权重,并根据所述权重构建图神经网络;
基于所述图神经网络,计算每个训练实体的图隐状态向量;
基于所述第一文档矩阵,计算所述训练语料中每个单词的邻接语义向量;
获取所述训练语料中每个单词的词嵌入向量和位置向量,并对所述图隐状态向量、邻接语义向量、词嵌入向量以及位置向量进行组合,得到所述训练语料的输入向量;
基于所述输入向量,通过Transformer模型的编码器对所述输入向量进行预测,得到所述输入向量所属语义的预测概率;
根据预置的损失函数计算所述预测概率与所述输入向量所属真实语义之间的概率损失,并根据所述概率损失对所述编码器的模型参数进行优化,得到语义识别模型;
获取目标识别语料对应的目标输入向量,通过所述语义识别模型进行语义识别,得到所述目标识别语料的目标概率;
根据所述目标概率确定所述目标识别语料的语义识别结果。
第二方面,本发明实施例提供了一种结合知识图谱实体信息的语义识别装置,其包括:
筛选模块,用于获取训练语料,按预置矩阵构建规则构建第一文档矩阵,利用实体命名技术识别所述第一文档矩阵中的实体,并根据实体筛选规则从所述实体中筛选出训练实体;
构建模块,用于计算所述第一文档矩阵中每个训练实体之间的权重,并根据所述权重构建图神经网络;
图隐状态向量计算模块,用于基于所述图神经网络,计算每个训练实体的图隐状态向量;
邻接语义向量计算模块,用于基于所述第一文档矩阵,计算所述训练语料中每个单词的邻接语义向量;
输入向量构建模块,用于获取所述训练语料中每个单词的词嵌入向量和位置向量,并对所述图隐状态向量、邻接语义向量、词嵌入向量以及位置向量进行组合,得到所述训练语料的输入向量;
预测模块,用于基于所述输入向量,通过Transformer模型的编码器对所述输入向量进行预测,得到所述输入向量所属语义的预测概率;
参数优化模块,用于根据预置的损失函数计算所述预测概率与所述输入向量所属真实语义之间的概率损失,并根据所述概率损失对所述编码器的模型参数进行优化,得到语义识别模型;
语义识别模块,用于获取目标识别语料对应的目标输入向量,通过所述语义识别模型进行语义识别,得到语义识别结果。
第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的语义识别方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的语义识别方法。
本发明实施例提供了一种结合知识图谱实体信息的语义识别方法、装置及相关设备。该方法包括获取训练语料,按预置矩阵构建规则构建第一文档矩阵,并利用实体命名技术识别所述第一文档矩阵中的实体;根据实体筛选规则从所述实体中筛选出训练实体,计算所述第一文档矩阵中每个训练实体之间的权重,并根据所述权重构建图神经网络;基于图神经网络,计算每个实体的图隐状态向量;基于第一文档矩阵,计算所述训练语料中每个单词的邻接语义向量;获取所述训练语料中每个单词的词嵌入向量和位置向量,并对图隐状态向量、邻接语义向量、词嵌入向量以及位置向量进行组合,得到训练语料的输入向量;通过Transformer模型的编码器对输入向量进行预测,得到输入向量所属语义的预测概率;根据预置的损失函数计算预测概率与输入向量所属真实语义之间的概率损失,并根据概率损失对编码器的模型参数进行优化,得到语义识别模型;获取目标识别语料对应的目标输入向量,通过语义识别模型进行语义识别,得到目标识别语料的目标概率;根据所述目标概率确定目标识别实体的语义识别结果。该方法考虑了各实体在文档中的语义联系,在用实体训练语义识别模型时添加了实体的邻接语义向量和图隐状态向量,使语义识别模型获取的实体特征更全面,从而提高语义识别模型进行语义识别的准确度。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1为本发明实施例提供的结合知识图谱实体信息的语义识别方法的流程示意图,该方法包括步骤S110~S180。
步骤S110、获取训练语料,按预置矩阵构建规则构建第一文档矩阵,并利用实体命名技术识别所述第一文档矩阵中的实体,并根据实体筛选规则从所述实体中筛选出训练实体;
本实施例中,获取训练语料,按预置矩阵构建规则构建第一文档矩阵,并利用实体命名技术识别第一文档矩阵中的实体,并根据实体筛选规则从实体中筛选出训练实体。其中,训练语料可以是各种客服与客户的对话语料等。实体为训练语料中的名词。实体可能是一个词或多个词组成,根据实体筛选规则从实体中筛选出训练语料。例如,实体由多个词组成时,有上海浦东机场,是由上海、浦东、机场三个词构成。
例如,如图6所示,采用分词工具对语料文档中第i个句子Xi进行分词,句子中的词按次序依次标识为Xi1、Xi2、Xi3、...,形成第一文档矩阵。利用实体命名技术对第一文档矩阵进行实体识别,并按照从左到右、从上到下的顺序为每个实体赋予编号,例如E1、E2、E3、...。其中,可能存在一个实体至少2个词组成,则将多个词标识为1个实体。如X14、X15为一个实体,标记为一个实体。
在一实施例中,如图2所示,步骤S110包括:
步骤S111、对所述训练语料的所有实体进行聚类处理,得到不同类别的实体簇;
步骤S112、以每一所述实体簇内的所有实体构建实体邻接矩阵,并根据所述实体邻接矩阵确定每个实体相对每个实体邻接矩阵的贡献值;
步骤S113、根据所述贡献值对所有实体进行降序排列,并按预设实体数目进行划分,得到训练实体队列;
步骤S114、按预设遮掩规则对所述训练实体队列的实体进行随机遮掩,将所述训练实体队列中未被遮掩的实体作为所述训练实体。
本实施例中,为了使模型学到更少见的实体所蕴含的信息,设置实体筛选规则具体为:对训练语料的所有实体进行聚类处理,得到不同类别的实体簇,然后以每一个实体簇内的所有实体构建实体邻接矩阵,并根据实体邻接矩阵确定每个实体相对于每个实体邻接矩阵的贡献值,根据贡献值对所有实体进行降序排列,并按预设实体数目进行划分,得到训练实体队列;最后按预设遮掩规则对训练实体队列的实体进行随机遮掩,将训练实体队列中未被遮掩的实体作为训练实体。
例如,设某个实体簇内有n个实体,定义该实体簇内所有实体组成的实体邻接矩阵为A
n×n,若实体E
j属于实体E
i的实体语义邻居,则A
ij=1,否则为0,则有:
定义实体Ei对实体邻接矩阵A中实体的贡献值,该值为矩阵每行元素之和,即
按所有实体的贡献值划分若干(可自行指定数目)等距区间,得到训练实体队列,然后按遮掩规则对训练实体队列的实体进行随机遮掩,将训练实体队列中未被遮掩的实体左右训练实体。其中,若存在实体邻接矩阵A
100×100,实体贡献值队列为[c
1,c
2,...,c
100],可以划分为4个区间[c
1,...,c
25]、[c
26,...,c
50]、[c
51,...,c
75]、[c
76,...,c
100],每个区间内元素按照元素值降序排列,形成队列L
i(1≤i≤4)。每次从队列Li中随机选择一部分实体进行遮掩,方法是每个队列中内贡献值越小的实体,被选择遮掩的比例越高,目的是迫使模型学到更少见的实体所蕴含的信息。
步骤S120、计算所述第一文档矩阵中计算所述第一文档矩阵中每个训练实体之间的权重,并根据所述权重构建图神经网络;
本实施例中,为了构建图神经网络,计算第一文档矩阵中每个训练实体之间的权重,最后根据每个训练实体之间的权重weightij,构建图神经网络。其中,每个训练实体之间的权重计算如下:根据预设的空间位置规则,计算第一文档矩阵中每个实体之间的空间位置距离;根据预设的语义位置规则,计算所述第一文档矩阵中每个实体之间的语义相对位置距离;计算空间位置距离和语义相对位置距离的乘积,得到两个实体之间的权重。
在一实施例中,如图3所示,步骤S120包括:
步骤S121、根据预设的空间位置规则,计算所述第一文档矩阵中每个实体之间的空间位置距离;
步骤S122、根据预设的语义位置规则,计算所述第一文档矩阵中每个实体之间的语义相对位置距离;
步骤S123、计算所述空间位置距离和语义相对位置距离的乘积,得到两个实体之间的权重。
本实施例中,每个训练实体之间的权重计算包括两部分,空间位置距离和语义相对位置距离。
其中,计算空间位置距离geo_disij分为两种类型:(1)若两个实体在同一个段落Park,则两个实体间的空间位置为它们间隔的单词数WordSpaceij;(2)若两个实体不在同一个段落,对它们间隔的词数WordSpaceij乘以一个系数γm,每m为相距的段落间隔,如一个实体在段落1,另一个在段落2,则相距的段落间隔m为1,其中系数γ∈(0,1),即有关系如下:
接下来,选择参考的知识图谱例如知网,得到从训练语料中识别的实体所属的类别和层次。对于语义相对位置sem_disij的计算包括三种类型:(1)对于属于知识图谱同一类别又处于同一层级的实体语义相对位置距离为1,例如苹果和梨子、北京和上海;(2)对于属于知识图谱同一类别又具有自顶向下的关系或者自底向上的关系,如中国、广东省、深圳市、福田区这样的实体,每个实体对于其上/下一层的实体语义相对位置距离为1,再上/下一层为λ,以此类推为λn;例如设λ=0.8,福田区对于深圳市语义相对位置距离为0.8,对于广东省语义相对位置为0.64;(3)对于不属于知识图谱同一类别的实体,例如苹果和北京,设知识图谱中所有同一类别中最远的语义相对位置距离为λmax,则不同类别中实体的语义相对位置距离可定义为比λmax小的一个数值。
最后计算所述空间位置距离和语义相对位置距离的乘积,得到两个实体之间的权重,即weightij=geo_disij×sem_disij。
步骤S130、基于所述图神经网络,计算每个实体的图隐状态向量;
本实施例中,通过图神经网络计算出每个实体的图隐状态向量。其中,图神经网络的种类很多,此处不做限定,本实施例中优选构建基于图卷积网络(GCN)的图神经网络。
步骤S140、基于所述第一文档矩阵,计算所述训练语料中每个单词的邻接语义向量;
本实施例中,为了最大限度获取训练语料中每个单词的特征,基于第一文档矩阵,计算训练语料中每个单词与相邻单词之间的邻接语义向量。
在一实施例中,如图4所示,步骤S140包括:
步骤S141、对所述第一文档矩阵进行扩展,得到第二文档矩阵;
步骤S142、根据预设邻接语义规则确定所述第二文档矩阵中每个单词的邻接词序列;所述邻接语义规则为邻接词规则;
步骤S143、基于所述邻接词序列,采用预置的LSTM模型计算每个单词的前向邻接语义向量和后向邻接语义向量,并将所述前向邻接语义向量和后向邻接语义向量进行拼接,得到所述邻接语义向量,其中,每个单词至少存在一个邻接语义向量。
本实施例中,基于第一文档矩阵,设定文档中最长句子的单词数量为Lmax,对其余句子进行补齐,即单词数量不足Lmax长度部分用特殊符号(如unk)代替,形成第二文档矩阵。考虑到文档中可能存在无意义的短句,可以剔除句子的单词数量小于某个阈值Lt(例如Lt=4)的句子。以一个单词为步长,选择其邻接方向的单词作为该单词的“第k个邻接词序列”。如图7所示,在第二文档矩阵中选择中心位置的单词x44为例,则该单词的左,左上、左下、上、下,右上、右、右下八个方位的单词作为第1个邻接词序列;以第1个邻接词序列向外延伸一个单词的步长取16个单词,作为第2个邻接词序列。依次类推,一个单词存在一个或多个邻接词序列。需要注意的是,若某个方向的单词已超过第二文档矩阵最边缘,此时首先做单词补全,仍以特殊符号(unk)填充,构建最后一个该单词的最后一个邻接词序列。
进一步地,如图8所示,根据第二邻接矩阵,确定每个单词的邻接词序列后,利用采用长短时记忆网络LSTM模型对邻接语义序列进行编码,得到前向邻接语义向量和后向邻接语义向量,对两个向量进行拼接,形成单词的第k个“邻接语义向量”。对每个邻接语义向量赋予权重,原则是k越大其权重越小。权重可以用有监督机器学习方法或其他方法进行计算。
步骤S150、获取所述训练语料中每个单词的词嵌入向量和位置向量,并对所述图隐状态向量、邻接语义向量、词嵌入向量以及位置向量进行组合,得到所述训练语料的输入向量;
本实施例中,获取训练语料中每个单词的词嵌入相邻和位置向量。其中,词嵌入向量可以通过word2vec、glove等模型获得;位置向量采用预置的Transformer模型中正余弦方式计算获取。然后组合训练语料中每个单词的图隐状态向量、邻接语义向量、词嵌入向量以及位置向量,得到训练语料的输入向量。需要注意的是,只有属于实体的单词的输入向量才存在图隐状态向量、邻接语义向量、词嵌入向量以及位置向量;而不是实体的单词的输入向量只包括邻接语义向量、词嵌入向量以及位置向量。
步骤S160、基于所述输入向量,通过Transformer模型的编码器对所述输入向量进行预测,得到所述输入向量所属语义的预测概率;
步骤S170、根据预置的损失函数计算所述预测概率与所述输入向量所属真实语义之间的概率损失,并根据所述概率损失对所述编码器的模型参数进行优化,得到语义识别模型;
本实施例中,将训练语料每个单词的输入向量输入Transformer模型的编码器中,输出为每个单词所属语义的预测概率。根据预置的损失函数计算预测概率与输入向量所属真实语义之间的概率损失,并根据概率损失对编码器的模型参数进行优化,得到语义识别模型。
步骤S180、获取目标识别语料对应的目标输入向量,通过所述语义识别模型进行语义识别,得到语义识别结果。
本实施例中,基于上述步骤确定语义识别模型之后,将目标识别语料的目标输入向量输入语义识别模型进行语义识别,得到相应的预测概率,根据预测概率确定最终的语义识别结果。
该方法考虑了各实体在文档中的语义联系,在用实体训练语义识别模型时添加了实体的邻接语义向量和图隐状态向量,使语义识别模型获取的实体特征更全面,从而提高语义识别模型进行语义识别的准确度。
本发明实施例还提供一种结合知识图谱实体信息的语义识别装置,该语义识别装置用于执行前述语义识别方法的任一实施例。具体地,请参阅图5,图5是本发明实施例提供的结合知识图谱实体信息的语义识别装置的示意性框图。该语义识别装置100可以配置于服务器中。
如5所示,结合知识图谱实体信息的语义识别装置100包括筛选模块110、构建模块120、图隐状态向量计算模块130、邻接语义向量计算模块140、输入向量构建模块150、预测模块160、参数优化模块170、语义识别模块180。
筛选模块110,用于获取训练语料,按预置矩阵构建规则构建第一文档矩阵,利用实体命名技术识别所述第一文档矩阵中的实体,并根据实体筛选规则从所述实体中筛选出训练实体;
构建模块120,用于计算所述第一文档矩阵中每个训练实体之间的权重,并根据所述权重构建图神经网络;
图隐状态向量计算模块130,用于基于所述图神经网络,计算每个实体的图隐状态向量;
邻接语义向量计算模块140,用于基于所述第一文档矩阵,计算所述训练语料中每个单词的邻接语义向量;
输入向量构建模块150,用于获取所述训练语料中每个单词的词嵌入向量和位置向量,并对所述图隐状态向量、邻接语义向量、词嵌入向量以及位置向量进行组合,得到所述训练语料的输入向量;
预测模块160,用于基于所述输入向量,通过Transformer模型的编码器对所述输入向量进行预测,得到所述输入向量所属语义的预测概率;
参数优化模块170,用于根据预置的损失函数计算所述预测概率与所述输入向量所属真实语义之间的概率损失,并根据所述概率损失对所述编码器的模型参数进行优化,得到语义识别模型;
语义识别模块180,用于获取目标识别语料对应的目标输入向量,通过所述语义识别模型进行语义识别,得到语义识别结果。
在一实施例中,筛选模块110包括:
聚类单元,用于对所述训练语料的所有实体进行聚类处理,得到不同类别的实体簇;
贡献值计算单元,用于以每一所述实体簇内的所有实体构成实体邻接矩阵,并根据所述实体邻接矩阵确定每个实体相对每个实体邻接矩阵的贡献值;
划分单元,用于根据所述贡献值对所有实体进行降序排列,并按预设实体数目进行划分,得到训练实体队列;
遮掩单元,用于按预设遮掩规则对所述训练实体队列的实体进行随机遮掩,将所述训练实体队列中未被遮掩的实体作为所述训练实体。
在一实施例中,构建模块120包括:
空间位置距离计算单元,用于根据预设的空间位置规则,计算所述第一文档矩阵中两个实体之间的空间位置距离;
语义相对位置距离计算单元,用于根据预设的语义位置规则,计算所述第一文档矩阵中两个实体之间的语义相对位置距离;
权重计算单元,用于计算所述空间位置距离和语义相对位置距离的乘积,得到两个实体之间的权重。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述的结合知识图谱实体信息的语义识别方法。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如上所述的结合知识图谱实体信息的语义识别方法。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。