本发明属于人机交互技术领域,具体涉及实体消歧方法及系统。
背景技术:
实体在人机交互领域可简单理解为名词。实体消歧是指一个句子中出现的名词可能有多个含义(多个义项),需要判断该名词在该句子(该语言环境)中代表的具体含义,如李白,可能指诗人李白,也可能指歌曲李白。
自然语言中实体的具体含义可能千变万化,而在具体语言环境中这些实体又代表了单一的含义。对人类来说,可以直观地判断出这些实体代表的具体含义,但是对机器或机器人来说,需要研究人员研发特别的技术,才能使得机器或机器人拥有类似于人的、判断实体代表具体含义的能力/功能。
目前来说,实体消歧一般是通过规则的方式进行,也就是定义一个实体与其它实体同时出现时其代表的含义,这种方法的缺点是需要大量专业人员参与、需要定义大量规则、难以维护。还有另外一种利用机器学习、深度学习的思路,利用机器的计算能力、通过输入大量语句和语句中实体的含义,让机器自行学习出可判断具体语言中实体含义的模型,但是这种方法的缺点是参数量可能较大较难调试、训练需要大量的数据、训练需要的时间和计算力较大。
技术实现要素:
针对现有技术中的缺陷,本发明提供一种实体消歧方法及系统,克服了现有技术需要人工定义规则或需要大量训练数据的缺陷。
第一方面,一种实体消歧方法,包括以下步骤:
获取待分析自然语言中的待消歧实体、以及该待消歧实体的多个义项;
分别计算该待消歧实体的每个义项出现在待分析自然语言中的总得分;
定义总得分最高的义项为待消歧实体在待分析自然语言中的含义。
优选地,该待消歧实体的每个义项出现在待分析自然语言中的总得分通过以下方法计算:
计算统计得分;
计算语义得分;
根据下式计算每个义项出现在待分析自然语言中的总得分:
总得分=w1×统计得分+w2×语义得分;
其中,w1、w2分别为权值,且w1+w2=1。
优选地,所述统计得分通过以下方法计算:
对所述待分析自然语言进行预处理,去掉待分析自然语言中的停用词;
对预处理后的待分析自然语言进行多粒度分词,得到待消歧实体的上下文词;
从预设的知识图谱中选出待消歧实体的子图;所述知识图谱包含各个实体的子图,每个实体的子图包括该实体的所有义项;
当所述子图中的义项与所述待分析自然语言中的上下文词相对应时,判定子图中的义项出现在待分析自然语言中,定义该义项为参考义项;
根据下式计算每个义项的统计得分:
其中,n为待消歧实体的子图中参考义项的数量,i为变量。
优选地,所述语义得分通过以下方法计算:
获取参照字段;
分别对所述待分析自然语言和参照字段进行分词,得到待消歧实体的上下文词以及参照字段的参照分词;
分别计算上下文词的各个义项和各个参照分词的语义相似度;
按照下式计算每个义项的语义得分:
其中,max是求最大值函数,m为上下文词中义项的个数,j为变量。
第二方面,一种实体消歧系统,包括:
采集单元:用于获取待分析自然语言中的待消歧实体、以及该待消歧实体的多个义项;
分析单元:用于分别计算该待消歧实体的每个义项出现在待分析自然语言中的总得分;
输出单元:用于定义总得分最高的义项为待消歧实体在待分析自然语言中的含义。
优选地,所述分析单元具体用于:
计算统计得分;
计算语义得分;
根据下式计算每个义项出现在待分析自然语言中的总得分:
总得分=w1×统计得分+w2×语义得分;
其中,w1、w2分别为权值,且w1+w2=1。
优选地,所述分析单元具体用于:
对所述待分析自然语言进行预处理,去掉待分析自然语言中的停用词;
对预处理后的待分析自然语言进行多粒度分词,得到待消歧实体的上下文词;
从预设的知识图谱中选出待消歧实体的子图;所述知识图谱包含各个实体的子图,每个实体的子图包括该实体的所有义项;
当所述子图中的义项与所述待分析自然语言中的上下文词相对应时,判定子图中的义项出现在待分析自然语言中,定义该义项为参考义项;
根据下式计算每个义项的统计得分:
其中,n为待消歧实体的子图中参考义项的数量,i为变量。
优选地,所述分析单元具体用于:
获取参照字段;
分别对所述待分析自然语言和参照字段进行分词,得到待消歧实体的上下文词以及参照字段的参照分词;
分别计算上下文词的各个义项和各个参照分词的语义相似度;
按照下式计算每个义项的语义得分:
其中,max是求最大值函数,m为上下文词中义项的个数,j为变量。
由上述技术方案可知,本发明提供的实体消歧方法及系统,克服了现有技术需要人工定义规则或需要大量训练数据的缺陷。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本发明实施例一提供的实体消歧方法的流程图。
图2为本发明实施例三提供的实体消歧系统的模块框图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
实施例一:
一种实体消歧方法,参见图1,包括以下步骤:
s1:获取待分析自然语言中的待消歧实体、以及该待消歧实体的多个义项;
具体地,每一个实体都有多个义项。如李白,可能指诗人李白,也可能指歌曲李白,所以诗人李白和歌曲李白是李白的两种义项。待分析自然语言即用户输入的对话内容。
s2:分别计算该待消歧实体的每个义项出现在待分析自然语言中的总得分;
具体地,总得分越高,说明该义项出现在待分析自然语言中的概率越大,该义项可能是待分析自然语言中的含义。总得分越低,说明该义项出现在待分析自然语言中的概率越小,该义项可能不是待分析自然语言中的含义。
s3:定义总得分最高的义项为待消歧实体在待分析自然语言中的含义。
具体地,该方法结合实体自身的信息、以及当前对话的上下文词,对待分析自然语言中出现的具体实体进行含义消歧。该方法在知识图谱技术中,可以被看做是选择出唯一正确的本体映射。从本质上理解本方法,就是从一个实体的多个义项中选择出其在当前语言环境中所对应的义项。
优选地,该待消歧实体的每个义项出现在待分析自然语言中的总得分通过以下方法计算:
计算统计得分;
计算语义得分;
根据下式计算每个义项出现在待分析自然语言中的总得分:
总得分=w1×统计得分+w2×语义得分;
其中,w1、w2分别为权值,且w1+w2=1。
具体地,w1、w2用于代表相应得分的可靠性,其值初始可以分别设为0.5。在具体实现时,可根据统计得分和语义得分的可靠性进行调整,不论如何调整二者的和为1。在对所述权值进行调整时,主要是利用权值调整两个计算结果的重要度。如果觉得统计得分更可靠,就调大w1,反之调大w2。如果调整w1、w2,使得w1或w2中有一个为零,则说明对应的计算结果就没有意义。权值的调整页可以根据经验和项目情况调整,也可以通过机器学习来调整,例如假设有多组权值、多组计算结果及对应的真实结果,将这些作为机器学习的输入,机器学习会输出一个模型。这个模型可以在收到新的输入时,输出最合适的两个权值的具体值。
实施例二:
实施例二在实施例一的基础上,增加了以下内容:
1、所述统计得分通过以下方法计算:
对所述待分析自然语言进行预处理,去掉待分析自然语言中的停用词;
具体地,去掉待分析自然语言中的停用词,可以提升自然语言处理的效率、节省空间。其中可以设置停用词词表用于过滤停用词,停用词词表可以根据具体的产品和功能需求,由产品人员和技术人员确定生成。
对预处理后的待分析自然语言进行多粒度分词,得到待消歧实体的上下文词;
具体地,多粒度分词是指在分词时不再只根据单一粒度进行分词(例如不再规定一个词的最大字数),而是统计词典中所有词的词频,词频高的词在分词时被看做一个词。如:"情人节"词频1000,"情人"词频500,"节"词频400,因此分词结果"情人节"的最小词频为1000,"情人/节"的最小词频为400,因此分词结果应为"情人节",将三个字视为为一个不可切分的词。
从预设的知识图谱中选出待消歧实体的子图;所述知识图谱包含各个实体的子图,每个实体的子图包括该实体的所有义项;
当所述子图中的义项与所述待分析自然语言中的上下文词相对应时,判定子图中的义项出现在待分析自然语言中,定义该义项为参考义项;
根据下式计算每个义项的统计得分:
其中,n为待消歧实体的子图中参考义项的数量,i为变量。
具体地,统计得分在计算时,应考虑包含的待消歧实体上下文词数量以及这些上下文词与实体在待分析自然语言之间的距离。例如假设待消歧实体为a,待分析自然语言为b,首先在知识图谱中选出了a的子图,子图中包含若干个词(即义项)。首先求取a对应的若干个义项出现在b中的数量,得到分子,假设a的子图中词c为包含在b中的词,定义词c为参考义项,那么c和a的距离就是分母,依次根据待消歧实体的子图中所有参考义项计算统计得分。
2、所述语义得分通过以下方法计算:
获取参照字段;
具体地,由于行业统一认可各种百科对待消歧实体的描述是该实体相应义项最精准的语义描述,例如百度百科等。所以可以从百科中选择参照字段进行语义计算得分。参照字段可以是一句话、几句话或一段话。
分别对所述待分析自然语言和参照字段进行分词,得到待消歧实体的上下文词以及参照字段的参照分词;
分别计算上下文词的各个义项和各个参照分词的语义相似度;
具体地,假设上下文词的义项包括a1、a2、a3,参照字段的分词结果包括b1、b2、b3;那么需要分别计算a1和b1、a1和b2、a1和b3的语义相似度,计算a2和b1、a2和b2、a2和b3的语义相似度,以此类推。这样就能得到各个义项和各个参照分词的语义相似度。语义相似度可以采用现有的语义相似度算法计算得到。
按照下式计算每个义项的语义得分:
其中,max是求最大值函数,m为上下文词中义项的个数,j为变量。
具体地,统计同一个义项下所有语义相似度的最大值,定义该最大值为该义项的语义得分。
本发明实施例所提供的方法,为简要描述,实施例部分未提及之处,可参考前述方法实施例中相应内容。
实施例三:
一种实体消歧系统,参见图2,包括:
采集单元:用于获取待分析自然语言中的待消歧实体、以及该待消歧实体的多个义项;
分析单元:用于分别计算该待消歧实体的每个义项出现在待分析自然语言中的总得分;
输出单元:用于定义总得分最高的义项为待消歧实体在待分析自然语言中的含义。
优选地,所述分析单元具体用于:
计算统计得分;
计算语义得分;
根据下式计算每个义项出现在待分析自然语言中的总得分:
总得分=w1×统计得分+w2×语义得分;
其中,w1、w2分别为权值,且w1+w2=1。
优选地,所述分析单元具体用于:
对所述待分析自然语言进行预处理,去掉待分析自然语言中的停用词;
对预处理后的待分析自然语言进行多粒度分词,得到待消歧实体的上下文词;
从预设的知识图谱中选出待消歧实体的子图;所述知识图谱包含各个实体的子图,每个实体的子图包括该实体的所有义项;
当所述子图中的义项与所述待分析自然语言中的上下文词相对应时,判定子图中的义项出现在待分析自然语言中,定义该义项为参考义项;
根据下式计算每个义项的统计得分:
其中,n为待消歧实体的子图中参考义项的数量,i为变量。
优选地,所述分析单元具体用于:
获取参照字段;
分别对所述待分析自然语言和参照字段进行分词,得到待消歧实体的上下文词以及参照字段的参照分词;
分别计算上下文词的各个义项和各个参照分词的语义相似度;
按照下式计算每个义项的语义得分:
其中,max是求最大值函数,m为上下文词中义项的个数,j为变量。
该实体消歧系统,克服了现有技术需要人工定义规则或需要大量训练数据的缺陷。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例所提供的系统,为简要描述,实施例部分未提及之处,可参考前述方法实施例中相应内容。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。