实体相似度计算方法
文献发布时间:2023-06-19 10:19:37
技术领域
本申请涉及文本处理技术领域,具体涉及一种实体相似度计算方法。
背景技术
目前国内外对于实体相似度计算主要有四种,分别是基于本体库的方法、基于知识词典的方法、基于语义分析的方法以及基于网络图的方法。基于本体库的实体相似度计算的原理是利用两个概念之间的相关性以及构建的概念层次网络图来计算实体之间的相似度。本体(Ontology)的概念源自于哲学领域,它通常用来描述领域知识,本体是从客观世界中抽象出来的一个概念模型,这个模型包含了某个学科领域内的基本术语和术语之间的关系(或者称为概念以及概念之间的关系)。本体库是由某个领域的本体构成的一个能够描述本体之间关系的库结构。基于知识词典的实体相似度计算的方法。知识词典中存储着实体的一些属性,利用其来进行相似度的计算。在实体相似度计算中,常用的知识词典是基于知网的HowNet和WordNet。 WordNet是一个在线的英语词汇数据库(词汇参照系统),HowNet是一个标注的大型语言知识库,主要面向中文(也包括英文)的词汇与概念,利用其可以做实体相似度计算、文本相似度计算以及情感分析等。WordNet中使用同义词集合作为基础构建单位,在一个同义词集合中的词所代表的意思是相近的,有些情况下这些词之间可以相互交换,同义词之间的相似度较大。利用知识词典来进行实体相似度的计算可以提高计算的准确率,但是对于规范性要求特别大,实体必须在字典中存在才可以进行相似度的计算。基于语义分析的实体相似度计算方法。目前常用的语义分析的方法就是将实体表示成一个向量,表示的方法有VSM、Word2vec、Bert等,然后计算向量之间的余弦相似度来衡量实体之间的相似性。基于语义分析的方法可以挖掘出实体之间的内在关系,可以有效的计算实体之间的相似度。现有技术中计算实体相似度的方法,所得结果的准确率和召回率都有待提高。
发明内容
本申请的目的是提供一种实体相似度计算方法。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
根据本申请实施例的一个方面,提供一种实体相似度计算方法,包括:概念相似度计算步骤、距离相似度计算步骤、语义相似度计算步骤以及属性相似度计算步骤。
进一步地,所述概念相似度计算步骤为融合路径权重的实体概念相似度计算步骤。
进一步地,所述距离相似度计算步骤为基于权重的距离相似度计算步骤,计算公式为
其中length(c
进一步地,所述语义相似度计算步骤为基于Bert的语义相似度计算步骤。
进一步地,所述属性相似度计算步骤为基于TextRank的属性相似度计算步骤。
根据本申请实施例的另一个方面,提供一种实体相似度计算装置,包括:
概念相似度计算模块,用于计算概念相似度;
距离相似度计算模块,用于计算距离相似度;
语义相似度计算模块,用于计算语义相似度;
属性相似度计算模块,用于计算属性相似度。
根据本申请实施例的另一个方面,提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现上述的实体相似度计算方法。
根据本申请实施例的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现上述的实体相似度计算方法。
本申请实施例的其中一个方面提供的技术方案可以包括以下有益效果:
本申请实施例提供的实体相似度计算方法,利用概念层次和距离来衡量实体之间的差异,利用语义和属性来衡量实体之间的共性,得到的正确率、召回率以及F1 值较高,相较于传统的单独使用路径或者概念层次的方法取得了更好的效果。
本申请的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者,部分特征和优点可以从说明书中推知或毫无疑义地确定,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了新能源汽车领域概念层结构树;
图2示出了各种类型的实体在语料中出现的频次;
图3示出了每种关系对应的数量;
图4示出了每种关系实体对属于相同类型的数量;
图5示出了Bert模型结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本申请做进一步说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本申请的一个实施例提供了一种实体相似度计算方法,是一种基于知识图谱的实体相似度计算方法,从四个方面来计算实体之间的相似度,这四个方面分别为概念相似度、距离相似度、语义相似度和属性相似度。
本实施例的实体相似度计算方法,包括:融合路径权重的实体概念相似度计算步骤、基于权重的距离相似度计算步骤、基于Bert的语义相似度计算步骤以及基于 TextRank的属性相似度计算步骤。
1)融合路径权重的实体概念相似度计算步骤
实体概念相似度计算是指利用本体库中的概念层次结构来计算实体之间的相似度。本申请实施例将14739篇新能源汽车相关专利作为实验语料。将从其中提取的 2370个实体按照汉语科技词系统(新能源汽车卷)中提到的分类进行人工标注,构造一个本体库,用来做概念相似度的计算,如图1所示。
由图1可以看出,新能源汽车领域共分为6个大类,分别为汽车类型、结构部件、材料、能源、性能以及其他学科。而结构部件又分为五个小类,分别为动力装置、汽车底盘、车身附件、电器设备以及通用零部件。
根据本体库的概念层次结构,定义两个实体的共同祖先为LCS(Least CommonSubsumer),它是一个统一的概念,例如图一中的“发电机组”和“汽车引擎”的 LCS为“动力装置”,“发电机组”和“排气管”的LCS为“结构部件”。则计算两个实体之间的相似度的方法wup可以定义为:
另一个计算实体相似度的方法li,它结合了实体在概念层次结构树中的最短路径和LCS的深度并且使用了非线性函数来衡量实体之间的相似性。
其中α和β分别是影响路径长度和深度的参数,在li的实验中,效果最好的取值是α=0.2,β=0.6。
一种利用利用实体间的最短路径的方法来计算两个实体之间的相似度,公式如下
c
根据对专利文本中的实体统计,发现属于同一个类型的实体对的相似性越大,因此统计了实体及出现的类型出现的频率。每个类型在语料中出现的频次如图2所示。
由图2可以看出汽车类型和结构部件在语料中出现的次数最多,这是由于新能源汽车的发明专利都是针对不同的汽车类型或者相同汽车类型的不同的结构部件,在燃料、能源、以及性能上的创新较小。
结合实体出现的频率,本申请实施例提出一种为路径赋予权重的计算实体相似度的方法。
其中p
表1给出了上述几种计算实体之间的概念相似度的结果,以(“发电机组”,“汽车引擎”)、(“发电机组”,“转动装置”)、(“发电机组”,“蓄电池”)、(“蓄电池”,“金属材料”)、(“蓄电池”,“金属元素”)以及(“电能”,“省油”)这六个在图一中出现的实体对为例。这六个实体对已经含盖了本体库所有可能出现的实体对情况。
表1几种实体之间概念相似度计算结果
从表1和图2可以看出,path方法利用纯路径长度来计算概念相似度的方法对于相似度的区分不大,而wup和li虽然利用深度来计算相似度,效果相对于path 方法较好,但是其存在的问题是许多概念共享同一个深度,从而产生相同的相似度。例如表1中的实体对(“蓄电池”,“金属材料”)和(“电能”,“省油”)由于具有相同的深度,因此相似度相同。为了解决这个等深度的问题,本申请实施例提出的为路径赋予权值的相似度的计算方法,它是在深度的基础上加上了实体在语料中出现的概率来进行概念相似度的计算。当实体对不属于同一个类时,规定实体的概念相似度为0,当实体对属于一个类时,根据路径的权重来计算实体之间的相似度。
2)基于权重的距离相似度计算步骤
距离相似度是根据两个实体在知识图谱中的距离来计算实体之间的相似度。
对于距离相似度的计算,可以采用一种利用最长距离和最短距离来计算相似度的方法,公式如下
通过该方法计算的实体相似度没有考虑到实体对的类型,针对这个问题,本申请实施例提出了一种利用知识图谱中的实体距离以及实体之间的关系来计算实体相似度的方法。
本申请实施例使用的知识图谱是对新能源汽车的专利语料进行数据挖掘和处理后得到的知识图谱,共包含实体6000个,关系5120条。其中的关系按照汉语科技词系统(新能源汽车卷)提到的,共分为了6种类型,分别为主体-附件关系、空间关系、控制关系、类属关系、成品-材料关系以及附件-主体关系。每种关系的数量如图3所示。
通过实验,可以得到结论:两个实体属于同一个概念层,相似度的可能性就越大,反之则越小。因此本申请实施例为每一种关系随机选择100对实体来统计其是否属于同一个类型,得到的结果见图4。
由图4可以看出,主体附件关系、类属关系以及附件主体关系的实体对基本都是属于一个类型的,由此本申请实施例提出了一种基于权重的距离相似度计算方法 wei_path,将两个实体对属于一个类型的概率作为边的权重。
其中length(c
表2几对不同的实体对的距离相似度的计算结果
为了表示方便,表2中的最短距离的边中的数字1-6分别代表为主体-附件关系、空间关系、控制关系、类属关系、成品-材料关系以及附件-主体关系。
由表2可以看出,lch计算距离相似度存在的一个问题就是当两个不同实体对的最长距离和最短距离相同时,计算得到的相似度相同。本申请实施例提出的距离相似度的计算方法考虑到了实体的类型来计算相似度,例如实体对(发电机组,皮带轮)和(发电机组,蓄电池),虽然发电机组和皮带轮的最短距离为3,小于发电机组和蓄电池的距离4,但是由于考虑到实体类型,计算得到发电机组和蓄电池的相似度较大。
3)基于Bert的语义相似度计算步骤
语义相似度是指两个实体根据上下文信息来计算实体之间的相似度。常见的实体语义相似度的计算方法是把实体表示成一个词向量的形式,然后利用余弦相似度进行计算,余弦值越大,则实体越相似,反之,则不相似。
目前常用的词向量表示实体的方法有one-hot、Word2vec、ELMo、Bert等。其中one-hot主要用于表示离散型的数据,对于连续型的数据表示效果不好,还会造成维度爆炸的情况。Word2vec是2013年谷歌公司提出的词向量训练工具,根据给定的语料库,通过优化后的训练模型快速的将一个词语转换成词向量的形式,可以有效的解决维度爆炸的问题。ELMo模型训练词向量可以解决相同的词在不同句子中表达的含义不同的问题,也就是一个词语根据上下文语义可能有两种及以上的表达形式,解决了Word2vec的词语单一化的表示问题。Bert模型是在ELMo模型基础上,将LSTM编码器更改为了Transformer编码器,效果更好,而且发布了中文的预训练结果,使用者只需要更改下游任务即可,具体的模型框架见图5。因此本申请实施例选用Word2vec和Bert来做实体语义相似度的计算。
本申请实施例给定的Word2vec的语料库是对14739篇新能源汽车专利的预处理后的结果。训练时给定的参数如表3所示。
表3 Word2vec训练的参数
本申请实施例使用谷歌预训练好的Bert中文模型,然后将新能源汽车领域的专利语料加载在模型中,得到Bert模型编码后的词向量。
利用编码后的词向量进行余弦相似度的计算,两种编码方式得到的结果如4所示。
表4 Word2vec和Bert计算语义相似度
从表4可以看出Word2vec计算的实体的语义相似度普遍较低,这是由于 Word2vec进行词向量编码依赖于上下文的信息,而Bert编码是将词拆分为字进行编码,然后拼接后计算相似度,得到的相似度较高。
4)基于TextRank的属性相似度计算步骤
属性相似度计算是利用实体的属性之间的相似度大小衡量实体之间的相似度大小,本申请实施例用于计算实体相似度的属性为实体的概念,其中实体的概念来源于百度百科爬取的数据。
实体的属性可以看作一种短文本,因此本申请实施例将属性相似度的计算看作一种短文本之间的相似度计算。Doc2vec的概念,将句子表示成一个句向量,然后计算余弦相似度来计算两个句子之间的相似度。Doc2vec是基于Word2vec基础上构建的,相比于Word2vec,Doc2vec不仅能训练词向量还能训练处句子向量并预测新的句子向量。但是这种方法计算文本之间的相似度存在的最大问题是句子中的冗余信息没有被过滤掉,会导致句子向量不准确,从而使计算的文本之间的相似度存在误差。
本申请实施例针对句子中存在冗余信息的问题,使用textRank方法进行句子关键词的提取,去掉句子中的冗余信息,然后再进行属性相似度的计算。
表5是几种方法属性相似度的计算结果的展示。
表5属性相似度计算结果
从表5可以看出使用textRank进行关键词抽取后,再进行相似度计算,可以提高相似度计算的结果,这是由于使用textRank可以去除掉句子中的部分冗余信息。相对于Doc2vec进行相似度计算,使用Bert来进行相似度计算,可以提高相似度计算的结果。
本申请实施例选取600个实体进行随机标注,每个类型的数量如表6所示。本申请实施例定义两个实体对属于同义词,标注为1,两个实体对属于同一个类型标注为0.5,不属于同一个类型标注为0。
表6实体类型数量
采用召回率、正确率、F1值对实体相似度计算的方法进行评价。由于本方法的分类是一个三分类,因此本申请实施例将0作为负类,将0.5和1作为正类来进行评价。其中标注的正类共2000条,负类1000条。
本申请实施例提出了Sim-KG方法来计算实体相似度,它是一种结合概念层次结构、知识图谱中的实体距离、实体的语义以及实体的属性来计算实体相似度的方法。Sim-KG从多个方面计算实体之间的相似度,最后将各个方面的实体相似度进行加权得到最后的实体相似度。
Sim
其中Sim
实体相似度的计算结果Res的定义如公式(8)所示。
其中Sim
表7展示了当β和γ取值分别为0.3和0.7时,α
表7 α
经过实验对比分析后,当α
β和γ的取值对于召回率、正确率以及F1值的影响如表8所示。
表8不同的β和γ值对实验结果的影响
从表8可以看出,阈值β和γ的取值对实验的指标存在较大的影响,当β和γ的取值分别为0.3和0.7时,实验效果最好。
然后按照本申请实施例提出的方法以及提到的实体相似度计算方法进行对比实验,实验结果如表9所示。
表9各个方法的评价指标
从表9可以看出,wup、li、path相较于lch方法较好,证明了基于概念层的相似度计算比基于距离的相似度计算效果较好,而wup、li、path、lch都比单独使用 word2vec方法的效果好,证明了概念结构和基于距离的方法比单独使用语义的方法有效性高。本申请实施例提出的综合实体的概念、距离、语义以及属性的Sim-KG 方法得到的评价指标较高,证明了Sim-KG方法的有效性。综上,可以得到结论,将概念层次结构、距离、语义和属性相结合,可以提高基于实体相似度面向分类任务中的性能,其中层次结构被认为是重要的,其次是距离,最后是语义和属性。公式(7)中的各个相似度权重的取值也体现了这一点。
实体相似度的可以应用在相似商品推荐、问答、检索等方面。本申请实施例提出了一种基于实体的概念层次树并结合实体在知识图谱中的距离、实体的语义以及实体的属性的Sim-KG方法来计算实体的相似度。其基本思想是利用概念层次和距离来衡量实体之间的差异,利用语义和属性来衡量实体之间的共性。本申请实施例提出的Sim-KG方法,得到的正确率、召回率以及F1值较高,相较于传统的单独使用路径或者概念层次的方法取得了更好的效果。
在本申请实施例中,使用人工进行数据集的标注。本申请实施例主要讨论实体相似性,而不是一般意义上的语义关联。
本申请另一实施例提供了一种实体相似度计算装置,包括:
概念相似度计算模块,用于计算概念相似度;
距离相似度计算模块,用于计算距离相似度;
语义相似度计算模块,用于计算语义相似度;
属性相似度计算模块,用于计算属性相似度。
术语“模块”并非意图受限于特定物理形式。取决于具体应用,模块可以实现为硬件、固件、软件和/或其组合。此外,不同的模块可以共享公共组件或甚至由相同组件实现。不同模块之间可以存在或不存在清楚的界限。
本申请另一实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,还包括总线和通信接口,所述处理器、通信接口和存储器通过总线连接;所述处理器执行所述程序,以实现上述的实体相似度计算方法。
所述处理器可以是中央处理模块(CPU),还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器也可以是任何常规的处理器等,所述处理器是所述电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块/单元,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块/单元,以及调用存储在存储器内的数据,实现所述电子设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备1的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SMC),安全数字(SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本申请另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现上述的实体相似度计算方法。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言-诸如Java、 Smalltalk、C++,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本实施例中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述实施例仅表达了本申请的实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
- 实体相似度计算方法
- 实体相似度计算方法及装置、物品推荐系统、介质、设备