语义匹配方法、装置、设备及存储介质转让专利

申请号 : CN201811386585.X

文献号 : CN111274822A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 晏小辉

申请人 : 华为技术有限公司

摘要 :

本申请提供了一种语义匹配方法、装置、设备及存储介质,属于计算机技术领域。本申请使用AMR图来表示文本的语义,并且,本申请提供的AMR图中每个节点是一个向量,可以通过每个节点的向量,得到每个节点的LSA信息,进而通过每个节点的LSA信息来进行图匹配。LSA信息能够表达概念在潜在语义空间的含义,因此能够精确地表达文本中每个词语的语义。并且,AMR图在能够描述文本中每个词语本身的语义的基础上,能够描述出词语与词语之间的联系以及文本的整体语义结构,因此能够精确地反映文本整体的语义,根据两个文本的AMR图进行匹配,来得到两个文本的语义匹配度,能够极大地提高语义匹配度的准确性。

权利要求 :

1.一种语义匹配方法,其特征在于,所述方法包括:

获取第一文本的第一抽象语义表示AMR图以及第二文本的第二AMR图,每个AMR图中的每个节点为向量;

基于所述第一AMR图的至少一个第一节点的向量对应的潜在语义分析LSA信息以及所述第二AMR图的至少一个第二节点的向量对应的LSA信息,对所述第一AMR图与所述第二AMR图进行匹配,得到所述第一AMR图与所述第二AMR图之间的图匹配度;

将所述图匹配度,作为所述第一文本与所述第二文本之间的语义匹配度。

2.根据权利要求1所述的方法,其特征在于,AMR图的获取过程,包括:

对文本进行解析,得到初始AMR图,所述初始AMR图中的每个节点为概念标签;

将所述初始AMR图输入LSA模型,输出AMR图,所述LSA模型用于根据节点的概念标签,预测节点的向量。

3.根据权利要求2所述的方法,其特征在于,所述LSA模型的训练过程,包括:基于多个样本句子,获取每个样本句子中每个概念的重要度;

基于所述每个样本句子中每个概念的重要度,构建句子概念矩阵,所述句子概念矩阵的每一行对应一个样本句子,每一列对应一个概念,任一行任一列的元素为所述列对应的概念在所述行对应的样本句子中的重要度;

对所述句子概念矩阵进行奇异值分解,得到每个概念对应的向量。

4.根据权利要求3所述的方法,其特征在于,所述基于多个样本句子,获取每个样本句子中每个概念的重要度,包括:对所述多个样本句子的AMR图进行合并,得到第三AMR图;

采用网页排名算法,对所述AMR图进行运算,得到所述第三AMR图的每个第三节点的网页排名PR值;

对于任一个样本句子中的任一个概念,基于所述概念对应的第三节点的PR值以及所述样本句子中所述概念的出现次数,获取所述样本句子中所述概念的重要度,所述重要度与所述PR值和所述出现次数正相关。

5.根据权利要求1所述的方法,其特征在于,所述基于所述第一AMR图的至少一个第一节点的向量对应的潜在语义分析LSA信息以及所述第二AMR图的至少一个第二节点的向量对应的LSA信息之前,所述方法还包括:对于所述至少一个第一节点以及所述至少一个第二节点中的每个节点,将所述节点的向量作为所述节点的LSA信息。

6.根据权利要求1所述的方法,其特征在于,所述基于所述第一AMR图的至少一个第一节点的向量对应的LSA信息以及所述第二AMR图的至少一个第二节点的向量对应的LSA信息,对所述第一AMR图与所述第二AMR图进行匹配,得到所述第一AMR图与所述第二AMR图之间的图匹配度,包括:对于任一第一节点以及任一第二节点,基于所述第一节点的向量对应的LSA信息以及所述第二节点的向量对应的LSA信息,获取所述第一节点与所述第二节点之间的节点匹配度;和/或,对于任一第一边与任一第二边,基于所述第一边连接的两个第一节点的向量对应的LSA信息以及所述第二边连接的两个第二节点的向量对应的LSA信息,获取所述第一边与所述第二边之间的边匹配度;

基于所述至少一个节点匹配度以及所述至少一个边匹配度,获取所述图匹配度。

7.根据权利要求6所述的方法,其特征在于,所述基于所述第一边连接的两个第一节点的向量对应的LSA信息以及所述第二边连接的两个第二节点的向量对应的LSA信息,获取所述第一边与所述第二边之间的边匹配度,包括:基于所述第一边的第一起点的LSA信息、所述第二边的第二起点的LSA信息,获取所述第一起点与所述第二起点的节点匹配度,得到第一节点匹配度,所述第一起点属于所述第一边连接的两个第一节点,所述第二起点属于所述第二边连接的两个第二节点;

基于所述第一边的第一终点的LSA信息、所述第二边的第二终点的LSA信息,获取所述第一终点与所述第二终点的节点匹配度,得到第二节点匹配度,所述第一终点属于所述第一边连接的两个第一节点,所述第二终点属于所述第二边连接的两个第二节点;

基于所述第一节点匹配度以及所述第二节点匹配度,获取所述边匹配度。

8.根据权利要求6所述的方法,其特征在于,所述基于所述至少一个节点匹配度以及所述至少一个边匹配度,获取所述第一AMR图与所述第二AMR图的图匹配度,包括:获取所述第一AMR图的第一统计值以及所述第二AMR图的第二统计值,所述第一统计值与所述第一AMR图的节点总数量和边总数量中的至少一项正相关,所述第二统计值与所述第二AMR图的节点总数量和边总数量中的至少一项正相关;

基于所述至少一个节点匹配度、所述至少一个边匹配度、所述第一统计值以及所述第二统计值,获取所述图匹配度,所述图匹配度与所述至少一个节点匹配度以及所述至少一个边匹配度正相关,且所述图匹配度与所述第一统计值以及所述第二统计值负相关。

9.根据权利要求1所述的方法,其特征在于,所述基于所述第一AMR图的至少一个第一节点的向量对应的LSA信息以及所述第二AMR图的至少一个第二节点的向量对应的LSA信息,对所述第一AMR图与所述第二AMR图进行匹配,包括:对所述第一AMR图和所述第二AMR图进行对齐处理,得到至少一对匹配节点,每对匹配节点包括属于同一种概念的第一节点和第二节点;

基于所述至少一对匹配节点的向量对应的LSA信息,对所述第一AMR图与所述第二AMR图进行匹配,得到所述第一AMR图与所述第二AMR图之间的图匹配度。

10.根据权利要求9所述的方法,其特征在于,所述对所述第一AMR图和所述第二AMR图进行对齐处理,得到至少一对匹配节点,包括:对所述第一AMR图和第二AMR图进行初始化,得到至少一对初始匹配节点;

基于所述至少一对初始匹配节点对应的初始图匹配度,对所述至少一对初始匹配节点进行迭代优化,得到所述至少一对匹配节点。

11.根据权利要求10所述的方法,其特征在于,所述对所述第一AMR图和第二AMR图进行初始化,得到至少一对初始匹配节点,包括:获取每个第一节点与每个第二节点之间的相似度,得到多个相似度;

基于所述多个相似度,从所述至少一个第一节点和所述至少一个第二节点中,选择相似度最高的第一节点与第二节点,作为一对初始匹配节点;

从所述相似度最高的第一节点与第二节点以外的第一节点和第二节点中,继续执行选择初始匹配节点的步骤,直至剩余的第一节点与第二节点的相似度均小于相似度阈值,得到至少一对初始匹配节点。

12.一种语义匹配装置,其特征在于,所述装置包括:

抽象语义表示AMR图获取模块,用于获取第一文本的第一抽象语义表示AMR图以及第二文本的第二AMR图,每个AMR图中的每个节点为向量;

AMR图匹配模块,用于基于所述第一AMR图的至少一个第一节点的向量对应的潜在语义分析LSA信息以及所述第二AMR图的至少一个第二节点的向量对应的LSA信息,对所述第一AMR图与所述第二AMR图进行匹配,得到所述第一AMR图与所述第二AMR图之间的图匹配度;

匹配度获取模块,用于将所述图匹配度,作为所述第一文本与所述第二文本之间的语义匹配度。

13.根据权利要求12所述的装置,其特征在于,所述AMR图获取模块,包括:解析子模块,用于对文本进行解析,得到初始AMR图,所述初始AMR图中的每个节点为概念标签;

LSA分析子模块,用于将所述初始AMR图输入LSA模型,输出AMR图,所述LSA模型用于根据节点的概念标签,预测节点的向量。

14.根据权利要求13所述的装置,其特征在于,所述装置还包括:

重要度获取模块,用于基于多个样本句子,获取每个样本句子中每个概念的重要度;

矩阵构建模块,用于基于所述每个样本句子中每个概念的重要度,构建句子概念矩阵,所述句子概念矩阵的每一行对应一个样本句子,每一列对应一个概念,任一行任一列的元素为所述列对应的概念在所述行对应的样本句子中的重要度;

奇异值分解模块,用于对所述句子概念矩阵进行奇异值分解,得到每个概念对应的向量。

15.根据权利要求14所述的装置,其特征在于,所述重要度获取模块,包括:合并单元,用于对所述多个样本句子的AMR图进行合并,得到第三AMR图;

网页排名PR值获取单元,用于采用网页排名算法,对所述AMR图进行运算,得到所述第三AMR图的每个第三节点的网页排名PR值;

重要度获取单元,用于对于任一个样本句子中的任一个概念,基于所述概念对应的第三节点的PR值以及所述样本句子中所述概念的出现次数,获取所述样本句子中所述概念的重要度,所述重要度与所述PR值和所述出现次数正相关。

16.根据权利要求12所述的装置,其特征在于,所述装置还包括:

确定模块,用于对于所述至少一个第一节点以及所述至少一个第二节点中的每个节点,将所述节点的向量作为所述节点的LSA信息。

17.根据权利要求12所述的装置,其特征在于,所述AMR图匹配模块,包括:第一获取子模块,用于对于任一第一节点以及任一第二节点,基于所述第一节点的向量对应的LSA信息以及所述第二节点的向量对应的LSA信息,获取所述第一节点与所述第二节点之间的节点匹配度;和/或,对于任一第一边与任一第二边,基于所述第一边连接的两个第一节点的向量对应的LSA信息以及所述第二边连接的两个第二节点的向量对应的LSA信息,获取所述第一边与所述第二边之间的边匹配度;

第二获取子模块,用于基于所述至少一个节点匹配度以及所述至少一个边匹配度,获取所述图匹配度。

18.根据权利要求17所述的装置,其特征在于,所述第一获取子模块,包括:节点匹配度获取单元,用于基于所述第一边的第一起点的LSA信息、所述第二边的第二起点的LSA信息,获取所述第一起点与所述第二起点的节点匹配度,得到第一节点匹配度,所述第一起点属于所述第一边连接的两个第一节点,所述第二起点属于所述第二边连接的两个第二节点;

所述节点匹配度获取单元,还用于基于所述第一边的第一终点的LSA信息、所述第二边的第二终点的LSA信息,获取所述第一终点与所述第二终点的节点匹配度,得到第二节点匹配度,所述第一终点属于所述第一边连接的两个第一节点,所述第二终点属于所述第二边连接的两个第二节点;

边匹配度获取单元,用于基于所述第一节点匹配度以及所述第二节点匹配度,获取所述边匹配度。

19.根据权利要求17所述的装置,其特征在于,所述第二获取子模块,用于:统计单元,用于获取所述第一AMR图的第一统计值以及所述第二AMR图的第二统计值,所述第一统计值与所述第一AMR图的节点总数量和边总数量中的至少一项正相关,所述第二统计值与所述第二AMR图的节点总数量和边总数量中的至少一项正相关;

匹配度获取单元,用于基于所述至少一个节点匹配度、所述至少一个边匹配度、所述第一统计值以及所述第二统计值,获取所述图匹配度,所述图匹配度与所述至少一个节点匹配度以及所述至少一个边匹配度正相关,且所述图匹配度与所述第一统计值以及所述第二统计值负相关。

20.根据权利要求12所述的装置,其特征在于,所述AMR图匹配模块,包括:对齐子模块,用于对所述第一AMR图和所述第二AMR图进行对齐处理,得到至少一对匹配节点,每对匹配节点包括属于同一种概念的第一节点和第二节点;

匹配度获取子模块,用于基于所述至少一对匹配节点的向量对应的LSA信息,对所述第一AMR图与所述第二AMR图进行匹配,得到所述第一AMR图与所述第二AMR图之间的图匹配度。

21.根据权利要求20所述的装置,其特征在于,所述对齐子模块,用于对所述第一AMR图和第二AMR图进行初始化,得到至少一对初始匹配节点;基于所述至少一对初始匹配节点对应的初始图匹配度,对所述至少一对初始匹配节点进行迭代优化,得到所述至少一对匹配节点。

22.根据权利要求21所述的装置,其特征在于,所述对齐子模块,用于获取每个第一节点与每个第二节点之间的相似度,得到多个相似度;基于所述多个相似度,从所述至少一个第一节点和所述至少一个第二节点中,选择相似度最高的第一节点与第二节点,作为一对初始匹配节点;从所述相似度最高的第一节点与第二节点以外的第一节点和第二节点中,继续执行选择初始匹配节点的步骤,直至剩余的第一节点与第二节点的相似度均小于相似度阈值,得到至少一对初始匹配节点。

23.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求11任一项所述的语义匹配方法所执行的操作。

24.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求11任一项所述的语义匹配方法所执行的操作。

说明书 :

语义匹配方法、装置、设备及存储介质

技术领域

[0001] 本申请涉及计算机技术领域,特别涉及一种语义匹配方法、装置、设备及存储介质。

背景技术

[0002] 随着计算机技术和自然语言处理技术的发展,计算机设备可以通过对两个自然语言的文本进行语义匹配,得到两个文本的语义匹配度,从而根据语义匹配度判断两个文本的语义是否相同或相近。
[0003] 关于语义匹配的具体过程,以文本A和文本B为例,可以对文本A进行分词,得到文本A中的多个词语,对每个词语分别进行特征提取,得到每个词语的词向量,按照句子中词语的排列顺序,对多个词向量进行组合,作为文本A的语义向量,通过同样的步骤可以得到文本B的语义向量,根据文本A的语义向量以及文本B的语义向量,可以计算两个语义向量之间的相似度,作为文本A和文本B之间的语义相似度。
[0004] 从上述举例可以看出,文本的语义向量仅是描述出了文本包含的所有词语本身的语义,而没有描述出词语与词语之间的联系以及文本整体的语义结构,导致无法精确地反映文本整体的语义,进而导致根据语义向量得到的语义匹配度的精确度较差。

发明内容

[0005] 本申请实施例提供了一种语义匹配方法、装置、设备及存储介质,能够解决相关技术中语义匹配度准确性较差的技术问题。所述技术方案如下:
[0006] 第一方面,提供了一种语义匹配方法,所述方法包括:
[0007] 获取第一文本的第一抽象语义表示(Abstract Meaning Representation,简称:AMR)以及第二文本的第二AMR图,每个AMR图中的每个节点为向量;
[0008] 基于所述第一AMR图的至少一个第一节点的向量对应的潜在语义分析(Latent Semantic Analysis,简称:LSA)信息以及所述第二AMR图的至少一个第二节点的向量对应的LSA信息,对所述第一AMR图与所述第二AMR图进行匹配,得到所述第一AMR图与所述第二AMR图之间的图匹配度;
[0009] 将所述图匹配度,作为所述第一文本与所述第二文本之间的语义匹配度。
[0010] 本实施例提供的方法,使用AMR图来表示文本的语义,并且本申请提供的AMR图中每个节点是一个向量,可以通过每个节点的向量,得到每个节点的LSA信息,进而通过每个节点的LSA信息来进行图匹配。LSA信息能够表示概念在潜在语义空间的含义,因此能够精确地表达文本中词语的语义,准确性较高。并且,AMR图在能够描述文本中每个词语本身的语义的基础上,能够描述出词语与词语之间的联系以及文本的整体语义结构,因此能够精确地反映文本整体的语义,根据两个句子的AMR图进行匹配,来得到两个文本的语义匹配度,能够极大地提高了语义匹配度的准确性。进一步地,使用本实施例提供的方法,计算机设备可以自动计算出不同节点的节点匹配度,而无需人工预先标注不同样本词语的相似度,可以提供为无监督方法,成本较低,效率较高,适用范围更广,泛化能力更好,能够方便地扩展到各种语义匹配场景。
[0011] 在一种可能的实现中,AMR图的获取过程,包括:
[0012] 对文本进行解析,得到初始AMR图,所述初始AMR图中的每个节点为概念标签;
[0013] 将所述初始AMR图输入LSA模型,输出AMR图,所述LSA模型用于根据节点的概念标签,预测节点的向量。
[0014] 在一种可能的实现中,所述LSA模型的训练过程,包括:
[0015] 基于多个样本句子,获取每个样本句子中每个概念的重要度;
[0016] 基于所述每个样本句子中每个概念的重要度,构建句子概念矩阵,所述句子概念矩阵的每一行对应一个样本句子,每一列对应一个概念,任一行任一列的元素为所述列对应的概念在所述行对应的样本句子中的重要度;
[0017] 对所述句子概念矩阵进行奇异值分解,得到每个概念对应的向量。
[0018] 在一种可能的实现中,所述基于多个样本句子,获取每个样本句子中每个概念的重要度,包括:
[0019] 对所述多个样本句子的AMR图进行合并,得到第三AMR图;
[0020] 采用网页排名算法,对所述AMR图进行运算,得到所述第三AMR图的每个第三节点的网页排名PR值;
[0021] 对于任一个样本句子中的任一个概念,基于所述概念对应的第三节点的PR值以及所述样本句子中所述概念的出现次数,获取所述样本句子中所述概念的重要度,所述重要度与所述PR值和所述出现次数正相关。
[0022] 在一种可能的实现中,所述基于所述第一AMR图的至少一个第一节点的向量对应的潜在语义分析LSA信息以及所述第二AMR图的至少一个第二节点的向量对应的LSA信息之前,所述方法还包括:
[0023] 对于所述至少一个第一节点以及所述至少一个第二节点中的每个节点,将所述节点的向量作为所述节点的LSA信息。
[0024] 在一种可能的实现中,所述基于所述第一AMR图的至少一个第一节点的向量对应的LSA信息以及所述第二AMR图的至少一个第二节点的向量对应的LSA信息,对所述第一AMR图与所述第二AMR图进行匹配,得到所述第一AMR图与所述第二AMR图之间的图匹配度,包括:
[0025] 对于任一第一节点以及任一第二节点,基于所述第一节点的向量对应的LSA信息以及所述第二节点的向量对应的LSA信息,获取所述第一节点与所述第二节点之间的节点匹配度;和/或,对于任一第一边与任一第二边,基于所述第一边连接的两个第一节点的向量对应的LSA信息以及所述第二边连接的两个第二节点的向量对应的LSA信息,获取所述第一边与所述第二边之间的边匹配度;
[0026] 基于所述至少一个节点匹配度以及所述至少一个边匹配度,获取所述图匹配度。
[0027] 基于这种实现,计算机设备可以自动计算出不同节点的节点匹配度,而无需人工预先标注不同样本词语的相似度,可以提供为无监督方法,成本较低,效率较高,适用范围更广,泛化能力更好,能够方便地扩展到各种语义匹配场景。
[0028] 在一种可能的实现中,所述基于所述第一边连接的两个第一节点的向量对应的LSA信息以及所述第二边连接的两个第二节点的向量对应的LSA信息,获取所述第一边与所述第二边之间的边匹配度,包括:
[0029] 基于所述第一边的第一起点的LSA信息、所述第二边的第二起点的LSA信息,获取所述第一起点与所述第二起点的节点匹配度,得到第一节点匹配度,所述第一起点属于所述第一边连接的两个第一节点,所述第二起点属于所述第二边连接的两个第二节点;
[0030] 基于所述第一边的第一终点的LSA信息、所述第二边的第二终点的LSA信息,获取所述第一终点与所述第二终点的节点匹配度,得到第二节点匹配度,所述第一终点属于所述第一边连接的两个第一节点,所述第二终点属于所述第二边连接的两个第二节点;
[0031] 基于所述第一节点匹配度以及所述第二节点匹配度,获取所述边匹配度。
[0032] 在一种可能的实现中,所述基于所述至少一个节点匹配度以及所述至少一个边匹配度,获取所述第一AMR图与所述第二AMR图的图匹配度,包括:
[0033] 获取所述第一AMR图的第一统计值以及所述第二AMR图的第二统计值,所述第一统计值与所述第一AMR图的节点总数量和边总数量中的至少一项正相关,所述第二统计值与所述第二AMR图的节点总数量和边总数量中的至少一项正相关;
[0034] 基于所述至少一个节点匹配度、所述至少一个边匹配度、所述第一统计值以及所述第二统计值,获取所述图匹配度,所述图匹配度与所述至少一个节点匹配度以及所述至少一个边匹配度正相关,且所述图匹配度与所述第一统计值以及所述第二统计值负相关。
[0035] 在一种可能的实现中,所述基于所述第一AMR图的至少一个第一节点的向量对应的LSA信息以及所述第二AMR图的至少一个第二节点的向量对应的LSA信息,对所述第一AMR图与所述第二AMR图进行匹配,包括:
[0036] 对所述第一AMR图和所述第二AMR图进行对齐处理,得到至少一对匹配节点,每对匹配节点包括属于同一种概念的第一节点和第二节点;
[0037] 基于所述至少一对匹配节点的向量对应的LSA信息,对所述第一AMR图与所述第二AMR图进行匹配,得到所述第一AMR图与所述第二AMR图之间的图匹配度。
[0038] 在一种可能的实现中,所述对所述第一AMR图和所述第二AMR图进行对齐处理,得到至少一对匹配节点,包括:
[0039] 对所述第一AMR图和第二AMR图进行初始化,得到至少一对初始匹配节点;
[0040] 基于所述至少一对初始匹配节点对应的初始图匹配度,对所述至少一对初始匹配节点进行迭代优化,得到所述至少一对匹配节点。
[0041] 在一种可能的实现中,所述对所述第一AMR图和第二AMR图进行初始化,得到至少一对初始匹配节点,包括:
[0042] 获取每个第一节点与每个第二节点之间的相似度,得到多个相似度;
[0043] 基于所述多个相似度,从所述至少一个第一节点和所述至少一个第二节点中,选择相似度最高的第一节点与第二节点,作为一对初始匹配节点;
[0044] 从所述相似度最高的第一节点与第二节点以外的第一节点和第二节点中,继续执行选择初始匹配节点的步骤,直至剩余的第一节点与第二节点的相似度均小于相似度阈值,得到至少一对初始匹配节点。
[0045] 第二方面,提供了一种语义匹配装置,用于执行第一方面或第一方面的任一种可能实现方式中的方法。具体地,该语义匹配装置包括用于执行上述第一方面或第一方面的任一种可能实现方式中的方法的功能模块。
[0046] 第三方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现第一方面或第一方面的任一种可能实现方式中的方法中的语义匹配方法所执行的操作。
[0047] 第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由所述处理器加载并执行以实现第一方面或第一方面的任一种可能实现方式中的方法中的语义匹配方法所执行的操作。
[0048] 第五方面,提供了一种包含指令的计算机程序产品,当其在计算机设备上运行时,使得该计算机设备能够实现上述第一方面或第一方面的任一种可能实现方式中的方法中的语义匹配方法所执行的操作。
[0049] 第六方面,提供了一种芯片,所述芯片包括处理器和/或程序指令,当所述芯片运行时,实现上述任一方面或任一方面中任一种可能实现方式所提供的语义匹配方法。

附图说明

[0050] 图1是本申请实施例提供的实施环境架构图;
[0051] 图2是本申请实施例提供的一种计算机设备的结构示意图;
[0052] 图3是本申请实施例提供的一种语义匹配方法的流程图;
[0053] 图4是本申请实施例提供的一种对两个AMR图进行合并的示意图;
[0054] 图5是本申请实施例提供的一种对两个AMR图进行对齐处理的示意图;
[0055] 图6为本申请实施例提供的一种智能问答系统架构图;
[0056] 图7是本申请实施例提供的一种智能问答系统的数据流程图;
[0057] 图8为本申请实施例提供的一种智能问答系统的组件结构图;
[0058] 图9为本申请实施例提供的一种智能问答系统的前端服务的处理流程图;
[0059] 图10为本申请实施例提供的一种智能问答系统的问题理解服务的处理流程图;
[0060] 图11为本申请实施例提供的一种智能问答系统的问题匹配服务的处理流程图;
[0061] 图12为本申请实施例提供的一种智能问答系统的问题匹配服务的处理流程图;
[0062] 图13是本申请实施例提供的一种语义匹配装置的结构示意图。

具体实施方式

[0063] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0064] 以下对一些术语进行解释:
[0065] LSA:也称潜在语义索引(latent semantic index,简称:LSI),是一种学习文本的潜在语义表达的技术,LSA技术中,使用潜在语义空间中的向量,来分析文本的语义。
[0066] AMR技术:一种抽象的句子语义的表示方法,AMR将句子的语义抽象为单根有向无环图,该抽象是指,将句子中的实词抽象为AMR图的节点,以节点指代词语所述的概念,将实词之间的关系抽象为边,以边指代不同概念之间的语义关系。AMR图中,可以允许忽略虚词和由形态变化体现的较虚的语义(如冠词、单复数、时态等),可以允许补充句子中省略或缺失的概念,从而更完整地表示句子的语义。其中,AMR图中的单根的目的是保证句子语义的整体性,“有向”是为了保证语义传递,“无环”是为了避免语义的传递陷入死循环。
[0067] AMR图包括至少一个节点以及至少一条边,每个节点指代词语所属的概念,AMR图中节点的数量可以等于句子对应的概念的数量。每条边指代不同概念之间的语义关系,每条边可以连接两个节点,可以指示这两个节点对应的概念之间的语义关系。
[0068] 概念:AMR技术的一个技术术语,概念映射为AMR图中的一个节点,概念可以理解为词语在语义维度上所属的类别,可以包括“天气”、“城市名称”、“产品”、“出版物”、“时间”、“日期”和“单位”等,例如,“下雨”,“晴天”,“刮风”这几个词语对应的概念为“天气”,“北京”、“深圳”这几个词语对应的概念为“城市名称”,“车辆”,“船舶”,这几个词语对应的概念为“产品”,“书籍”,“报纸”,这几个词语对应的概念为“出版物”。
[0069] 语义关系:AMR技术的一个技术术语,指示不同词语之间的关联,可以包括动作的施事与受事关系、修饰等,例如可以是原型施事、原型受事、间接宾语和工具、起点、属性、终点、伴随、修饰方式、与其、目的等。
[0070] 概念标签:为AMR图的节点标注的标签,概念标签用于指示节点对应的概念,概念标签可以是字母、数字、字符串等。
[0071] 语义关系标签:为AMR图的边标注的标签,语义关系标签可以用于指示边对应的语义关系,举例来说,语义关系标签可以是ARG0、ARG1、ARG2、ARG3、ARG4、accompanier、age、beneficiary等,其中ARG0指示原型施事,ARG1指示原型受事,ARG2指示间接宾语和工具等,ARG3指示出发点、ARG4指示终点、accompanier指示伴随、age指示年龄,beneficiary指示受益者等。
[0072] 网页排名算法(也称PageRank算法):是一种基于网页与网页之间的超链接关系,获取网页的PR值,以PR值衡量网页的重要程度的算法。网页排名算法中,会将互联网中的众多网页根据超链接关系,构建一个有向图,有向图中的每个节点指代一个网页,每条边指代超链接关系,如果一个网页被很多其他网页链接到,则认为该网页比较重要,则该网页的PR值会相对较高,如果一个PR值较高的网页链接到一个其他的网页,那么被链接到的网页的PR值会相应地提高。
[0073] 智能问答系统:当用户输入用户问题后,自动提供用户需要的答案的系统,从而实现与用户自动交互,提供个性化的信息服务。
[0074] 对话系统:与用户自动进行一轮或多轮对话的系统,可以为聊天机器人。
[0075] 图1是本申请实施例提供的实施环境架构图,参见图1,本申请提供的语义分析方法可以应用于该实施环境架构中,该实施环境架构中可以包括计算机设备101、终端102和数据库103,该计算机设备101可以是服务器,例如是智能问答系统、聊天机器人的后台服务器,该终端102可以是移动终端和个人电脑(Personal computer,简称:PC),该数据库103可以为计算机设备101的数据库,该数据库103用于存储大量的文本,该文本可以是样本句子、候选句子等,例如可以是候选问题、预设答案等。终端102上可以安装有计算机设备101对应的客户端,用户可以通过客户端使用计算机设备101提供的语义匹配服务。例如,在智能问答场景中,用户可以通过客户端输入用户问题,计算机设备101可以接收用户问题,对用户问题与数据库103中的各个候选问题进行语义匹配,确定用户问题与各个候选问题的语义匹配度,将语义匹配度最高的候选问题对应的预设答案,输出为对用户问题的回答。
[0076] 图2是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,简称:CPU)201和一个或一个以上的存储器202,其中,存储器202中存储有至少一条指令,至少一条指令由处理器201加载并执行以实现下述各个方法实施例中计算机设备执行的语义匹配方法。当然,该计算机设备还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机设备200还可以包括其他用于实现设备功能的部件,在此不做赘述。
[0077] 在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由计算机设备中的处理器执行以完成下述实施例中的语义匹配方法。例如,计算机可读存储介质可以是只读存储器(Read-Only Memory,简称:ROM)、随机存取存储器(Random Access Memory,简称:RAM)、只读光盘(Compact Disc Read-Only Memory,简称:CD-ROM)、磁带、软盘和光数据存储设备等。
[0078] 图3是本申请实施例提供的一种语义匹配方法的流程图,该方法的执行主体为计算机设备,包括以下步骤:
[0079] 301、计算机设备基于多个样本句子进行模型训练,得到LSA模型。
[0080] 计算机设备可以是服务器、个人电脑、笔记本电脑、终端等。本申请实施例提供的方法,可以由独立的一台计算机设备执行,也可以由多台计算机设备组成的集群执行,也可以由一台计算机设备上的一个或多个程序模块执行,也可以由分布在多台计算机设备上的多个程序模块执行,例如可以由计算机设备上运行的虚拟机或容器执行。
[0081] 本实施例提供的LSA模型是指基于LSA技术的语义分析模型,LSA模型用于根据节点的概念标签,预测节点的向量。当将标注了每个节点的概念标签的AMR图输入LSA模型,可以输出标注了每个节点的向量的AMR图。
[0082] 其中,节点的向量可以对应于节点的LSA信息,例如,节点的向量可以是节点的LSA信息。又如,节点的向量与节点的LSA信息可以存在映射关系,可以根据节点的向量,确定节点的向量对应的节点的LSA信息。其中,LSA信息是指潜在语义空间中的向量,LSA信息可以通过多个维度的取值,表示概念的潜在语义。
[0083] 可选地,训练LSA模型的过程可以包括以下步骤一至步骤三:
[0084] 步骤一、基于多个样本句子,获取每个样本句子中每个概念的重要度。
[0085] 样本句子是指用于训练LSA模型的样本,可以预先在计算机设备上存储。例如,如果要训练用于智能问答场景的LSA模型,样本句子可以为常见问题(Frequently Asked Question,简称:FAQ)。又如,如果要训练用于对话系统的LSA模型,样本句子可以为聊天句子。再如,如果要训练用于搜索引擎场景的LSA模型,样本句子可以为热搜句子,再如,如果要训练论文查重、抄袭判别场景的LSA模型,样本句子可以为论文中的一个句子、小说中的关键句等。
[0086] 可选地,可以查询样本句子库,得到样本句子库中的多个句子。其中,样本句子库用于存储多个样本句子,示例性地,如果用于智能问答场景,样本句子库可以为FAQ库,FAQ库可以存储多个FAQ。
[0087] 概念的重要度用于指示概念在对应样本句子中的重要程度,重要度越高,表示概念越重要,概念的重要度也可以称为概念在样本句子中的权重。
[0088] 可选地,获取概念的重要度的过程可以包括以下步骤(1.1)至步骤(1.5):
[0089] 步骤(1.1)对多个样本句子预处理。
[0090] 预处理的步骤可以包括分词的过程以及概念提取的过程,具体来说,对于多个样本句子中的每个样本句子,可以对该样本句子进行分词,得到该样本句子中的多个词语,可以对每个词语进行概念提取,得到每个词语对应的概念。
[0091] 关于概念提取的过程,对于样本句子中的每个词语,可以根据该词语,查询词语与概念之间的映射关系,得到词语对应的概念。可选地,可以维护一个概念库,该概念库用于存储词语与概念之间的映射关系,例如,概念库中可以包括每个概念对应的词语列表,例如“天气”概念对应的词语列表可以包括天气、下雨、晴天和刮风等。其中,样本句子中任一词语可以称为对应概念的一个实例。
[0092] 举例来说,假设样本句子为“今天北京天气怎么样?”,对样本句子进行分词后,可以得到多个词语:“今天”、“北京”、“天气”和“怎么样”,对每个词语进行概念提取后,可以得到“今天”对应的概念为时间,“北京”对应的概念为地点,“天气”对应的概念为天气,“怎么样”对应的概念为疑问词,则输出的预处理的句子为“今天(时间),北京(地点),天气(天气),怎么样(疑问词)”。
[0093] 需要说明的是,步骤(1.1)仅是概念的重要度的可选步骤,而非概念的重要度的必选步骤,在另一种可能的实现中,也可以预先存储已经预处理了的样本句子,则后续步骤中直接使用已经预处理了的样本句子,即可。
[0094] 步骤(1.2)对每个预处理后的句子进行解析,得到每个样本句子的AMR图。
[0095] 可以调用AMR解析器,将预处理后的句子输入至AMR解析器,输出样本句子的AMR图。其中,AMR解析器用于根据预处理后的句子,解析出AMR图,AMR解析器可以为一个程序模块或多个程序模块的组合。
[0096] 需要说明的是,步骤(1.2)仅是获取概念的重要度的可选步骤,而非获取概念的重要度的必选步骤,在另一种可能的实现中,也可以预先存储每个样本句子的AMR图,则后续步骤中直接使用每个样本句子的AMR图,来获取概念的重要度即可。
[0097] 步骤(1.3)对多个样本句子的AMR图进行合并,得到第三AMR图。
[0098] 为了区分描述,将后续进行语义匹配的两个句子的AMR图,分别称为“第一AMR图”和“第二AMR图”,将多个样本句子的AMR图合并后的AMR图,称为“第三AMR图”。相应地,将第一AMR图的节点称为“第一节点”,将第二AMR图的节点称为“第二节点”,将第三AMR图的节点称为“第三节点”,相应地,将第一AMR图的边称为“第一边”,将第二AMR图的节点称为“第二边”,将第三AMR图的节点称为“第三边”。
[0099] 需要说明的是,“第一AMR图”、“第二AMR图”和“第三AMR图”仅是为了区分不同句子的AMR图,而不应理解为明示或暗示不同AMR图的顺序、相对重要性以及数量关系。“第一节点”、“第二节点”和“第三节点”仅是为了区分不同AMR图中的节点,而不应理解为明示或暗示不同节点的顺序、相对重要性以及数量关系。“第一边”、“第二边”和“第三边”仅是为了区分不同AMR图中的边,而不应理解为明示或暗示不同边的顺序、相对重要性以及数量关系。
[0100] 关于对多个AMR图进行合并的具体过程,可以根据每个样本句子的AMR图,生成合并后的AMR图,即第三AMR图。该第三AMR图包括每个样本句子的AMR图的每个节点,可以理解为所有样本句子的AMR图的叠加。
[0101] 具体来说,当任两个样本句子的AMR图的节点包括一个或多个相同的节点时,可以将两个AMR图中相同的节点,合并为第三AMR图中的一个节点。以多个样本句子的AMR图中相同的节点称为目标节点为例,对于任两个样本句子的AMR图的目标节点来说,可以确定两个样本句子的AMR图中目标节点对应的词语,得到两个样本句子中的多个词语,将两个样本句子中的多个词语,均挂载到第三AMR图中目标节点上。
[0102] 举例来说,请参见图4,图4中的(a)为句子1的AMR图,图4中的(b)为句子2的AMR图。图4中的(a)中具有sell(卖)-01节点,图4中的(a)中sell-01节点对应的词语包括2.5、链子(chain)和之前(before),图4中的(b)也具有sell-01节点,而图4中的(b)中sell-01节点对应的词语包括1.8和它(it),则可以将sell-01节点作为目标节点。对图4中的(a)和图4中的(b)合并后,可以得到图4中的(c)。图4中的(c)中也具有sell-01节点,图4中的(c)中的sell-01节点,挂载了图4中的(a)和图4中的(b)中sell-01节点对应的词语,图4中的(c)中的sell-01节点对应的词语包括1.8、it、2.5、chain和before。
[0103] 可选地,可以对样本句子库中所有样本句子的AMR图进行合并,得到一个较大的AMR图,即第三AMR图,则第三AMR图可以包括大量的节点以及大量的边,能够指示样本句子库中每个样本句子中的概念,能够指示样本句子库中每个样本句子中不同词语之间的语义关系。举例来说,如果应用于智能问答场景,可以对FAQ库中所有FAQ的AMR图进行合并,得到第三AMR图。
[0104] 步骤(1.4)采用网页排名算法,对第三AMR图进行运算,得到第三AMR图的每个第三节点的PR值。
[0105] 本实施例中,可以利用网页排名算法,计算出AMR图中每个概念节点的PR值,以便根据概念节点的PR值,得到概念节点的重要度。具体来说,可以将AMR图,看作网页排名算法针对的有向图,将AMR图中的每个节点,看作网页排名算法针对的网页,将将AMR图中的每条边,看作网页排名算法针对的超链接关系,则采用网页排名算法,根据AMR图中的每个节点和每条边,即可获取每个节点的PR值。
[0106] 关于采用网页排名算法,计算出AMR图中每个概念节点的PR值的具体过程,以针对第三AMR图进行运算为例,在一种可能的实现中,可以预先确定第三AMR图中每个第三节点的初始PR值,根据每个第三节点的出链节点以及入链节点的数量,对每个第三节点的初始PR值不断进行迭代,直到第三AMR中各个第三节点的PR值收敛时,输出每个第三节点的PR值。
[0107] 步骤(1.5)对于每个样本句子中的每个概念,基于概念对应的第三节点的PR值以及样本句子中概念的出现次数,获取样本句子中概念的重要度,该重要度与PR值和出现次数正相关。
[0108] 当得到第三AMR图中每个第三节点的PR值后,对于每个样本句子中的每个概念,可以获取该样本句子中该概念的出现次数,同时上述步骤(1.4)中已确定了该概念对应的第三节点的PR值,由于概念的出现次数越大,表明概念越重要,概念对应的第三节点的PR值越大,表明概念越重要,可以取任意与出现次数和PR值均正相关的数值,作为概念的重要度。例如,可以获取PR值与出现次数的乘积,将该乘积作为概念的重要度。
[0109] 步骤二、基于每个样本句子中每个概念的重要度,构建句子概念矩阵。
[0110] 句子概念矩阵中包含句子、概念以及重要度之间的对应关系,句子概念矩阵可以包括至少一个行以及至少一个列,句子概念矩阵的每一行对应一个样本句子,每一行包括该样本句子中每个概念的重要度,句子概念矩阵的每一列对应一个概念,每一列包括该概念在每个样本句子的重要度,句子概念矩阵的任一行任一列的元素,为列对应的概念在行对应的样本句子中的重要度。
[0111] 以数学的方式描述,句子概念矩阵第i行表示第i个样本句子,第j列表示第j个概念,每个元素W(i,j)表示第j个概念在第i个样本句子中出现的次数,其中,i和j表示正整数。
[0112] 示例性地,句子概念矩阵可以如下表1所示。
[0113] 表1
[0114]  概念1 概念2 概念3 概念n
句子1 W11 W12 W13 W1n
句子2 W21 W22 W23 W2n
句子3 W31 W32 W33 W3n
…… …… …… …… ……
句子n Wn1 Wn2 Wn3 Wnn
[0115] 步骤三、对句子概念矩阵进行奇异值分解,得到每个概念对应的向量。
[0116] 通过对句子概念矩阵进行奇异值分解(Singular Value Decomposition,简称:SVD),可以将每个概念映射到同一个低维稠密的向量空间中,使用向量空间中的点,来表示概念,从而得到概念对应的向量。如果两个概念的语义相关,则这两个概念在向量空间的距离较近,即这两个概念的向量的相似度会较高。
[0117] 本步骤中,通过对大量样本句子的AMR图进行合并,使用PageRank算法,自动计算每个概念的重要度,无需人工标注每个概念的重要度,准确性和效率较高。进一步地,可以利用大规模语料中的样本句子,来计算概念的重要度,准确性较高。并且,使用LSA信息来作为概念的语义表示,能够表示概念的潜在语义,信息量更大,准确性更高。
[0118] 需要说明的第一点是,训练LSA模型的步骤可以在语义匹配的步骤之前很早就已经完成,则当需要进行语义匹配时,直接使用训练后的LSA模型即可,而无需要求训练LSA模型的步骤和语义匹配的步骤的执行时间必须临近。
[0119] 需要说明的第二点是,训练LSA模型的步骤和语义匹配的步骤可以由同一个计算机设备执行,也可以由不同计算机设备执行,例如,可以先由计算机设备A执行训练LSA模型,再将训练后的LSA模型发送给计算机设备B,由计算机设备B执行语义匹配的步骤,在本实施例中,仅是以同一计算机设备执行训练LSA模型的步骤和语义匹配的步骤为例,进行举例描述。
[0120] 需要说明的第三点是,训练LSA模型的步骤仅是语义匹配的可选步骤,而非语义匹配的必选步骤,在另一种可能的实现中,也可以无需执行训练LSA模型的步骤,而是直接执行后续步骤。例如,可以预先存储LSA模型,后续步骤中直接使用存储的LSA模型即可。
[0121] 302、计算机设备获取第一文本的第一AMR图以及第二文本的第二AMR图,每个AMR图中的每个节点为向量。
[0122] 第一文本和第二文本可以为任意两个需要进行语义匹配的文本,第一文本和/或第二文本可以是一个或多个句子,第一文本和/或第二文本可以是用户输入的文本,也可以是预先存储的文本。
[0123] 在一个示例性场景中,如果用于智能问答场景中,第一文本和第二文本中,可以一个文本是用户问题,另一个文本是候选问题。在另一个示例性场景中,如果用于对话系统中,第一文本和第二文本中,可以一个文本是用户输入的对话语句,另一个文本是预先存储的对话语句。在另一个示例性场景中,如果用于搜索引擎中,第一文本和第二文本中,可以一个文本是用户输入的查询文本,另一个文本是预先存储的候选文本。在另一个示例性场景中,如果用于抄袭判别场景中,第一文本和第二文本中,可以一个文本是需要判别是否涉嫌抄袭的文本,另一个文本是原作者的文本。
[0124] 关于获取第一文本和第二文本的方式,可以根据检测到的输入操作,获取输入的第一文本和第二文本中的至少一项,也可以接收其他设备发送的第一文本和第二文本中的至少一项,也可以预先存储第一文本和第二文本中的至少一项,也可以从某一数据存储节点中,下载第一文本和第二文本中的至少一项,本实施例对如何获取第一文本和第二文本不做限定。其中,获取第一文本的方式和获取第二文本的方式可以相同,也可以不同。例如,第一文本和第二文本中,可以一个文本通过在线输入得到,另一个文本通过离线存储得到。
[0125] 本实施例中,可以获取第一文本和第二文本的AMR图,根据两个文本对应的AMR图的结构,对两个文本进行语义匹配,通过本申请提出的AMR图,相比业界的传统技术来说,能够更加完整、更加准确地表达句子中的语义。
[0126] 具体来说,传统的AMR图中,每个节点是一个概念标签。然而,概念标签是一个离散变量。例如,概念标签是“0”或者是“1”,可见概念标签无法准确描述概念的语义。而本申请提出的AMR图中,每个节点可以是一个向量,并且,可以根据节点的向量得到节点的LSA信息,因此,通过本申请提出的AMR图,第一,通过准确描述句子中每个概念的潜在语义,能够提高描述句子的语义的准确性,第二,由于AMR图是以单根有向无环图来描述句子的语义,通过各个节点、各条边、节点和节点的拓扑关系、边和边的拓扑关系、边的方向等图形信息,可以描述句子中不同词语的关联以及句子的语义结构,从而提高描述句子的语义的准确性。第三,LSA信息是概念映射到潜在语义空间中的向量,因此能够描述概念的潜在语义。
[0127] 关于获取AMR图的具体过程,可选地,对于第一文本和第二文本中的任一文本,可以通过以下步骤一至步骤二,来获取该文本的AMR图。需要说明的是,为了区分描述,下文中将步骤一得到的AMR图称为初始AMR图,将步骤二得到的AMR图称为AMR图。
[0128] 步骤一、对文本进行解析,得到初始AMR图,初始AMR图中每个节点为概念标签。
[0129] 本步骤与上文中对样本句子解析的步骤同理,可以调用AMR解析器,将文本输入至AMR解析器,由AMR解析器对文本进行解析,输出初始AMR图。
[0130] 可选地,与上述对样本句子预处理的步骤同理,可以先对文本进行分词以及概念提取,得到预处理后的文本,再对预处理后的文本进行解析。
[0131] 步骤二、将初始AMR图输入至LSA模型中,输出AMR图,AMR图中每个节点为向量。
[0132] 可以调用步骤301中训练的LSA模型,将步骤一得到的初始AMR图,输入至LSA模型中,在LSA模型内部,对于初始AMR图中的每个节点,可以根据该节点的概念标签,查询概念标签与LSA信息之间的对应关系,得到概念标签对应的向量,从而输出标注了每个节点的向量的AMR图。
[0133] 其中,可以直接将节点的概念标签替换为节点的向量,也可以在节点的概念标签以外,额外标注节点的向量,本实施例对此不做限定。
[0134] 需要说明的第一点是,对文本解析以及将初始AMR图输入LSA模型的方式,仅是获取AMR图的一种示例,而非是获取AMR图的必选方式,在另一种可能的实现中,也可以通过其它方式来获取AMR图,例如,可以预先存储第一文本以及第二文本的AMR图,直接读取预先存储的两个文本的AMR图,来执行后续语义匹配的步骤。
[0135] 需要说明的第二点是,获取第一文本的AMR图的方式,和获取第二文本的AMR图的方式可以相同也可以不同,例如,假设第一文本为用户问题,第二文本为候选问题,则获取用户问题的AMR图的方式,可以为在线对用户问题进行解析并通过LSA模型,得到用户问题的AMR图,获取候选问题的AMR图的方式,可以为离线时预先获取并存储了用户问题的AMR图,在线时直接读取预先存储的AMR图即可。
[0136] 303、计算机设备基于第一AMR图的至少一个第一节点的向量对应的LSA信息、第二AMR图的至少一个第二节点的向量对应的LSA信息,对第一AMR图与第二AMR图进行匹配,得到第一AMR图与第二AMR图之间的图匹配度。
[0137] 可选地,对于第一AMR图中的至少一个第一节点以及第二AMR图中至少一个第二节点中的每个节点,可以将节点的向量作为节点的LSA信息,从而得到节点的向量对应的LSA信息。另外,也可以建立节点的向量与LSA信息之间的映射关系,该映射关系包括至少一个节点的向量以及至少一个节点的LSA信息。对于第一AMR图中的至少一个第一节点以及第二AMR图中至少一个第二节点中的每个节点,可以根据节点的向量,查询节点的向量与LSA信息之间的映射关系,得到节点的向量对应的节点的LSA信息。
[0138] 本实施例中,在使用AMR图来描述句子的语义的基础上,将AMR图中的每个节点用向量表示,并根据节点的向量得到节点的LSA信息,从而通过节点的LSA信息,对AMR图与AMR图进行图匹配。通过AMR图与AMR图之间的图匹配度,来描述句子与句子之间的语义匹配度,能够令语义匹配度体现着句子的语义结构以及不同词语之间的关联,从而大大提高语义匹配度的准确性。
[0139] 其中,两个AMR图的图匹配度用于指示两个AMR图的匹配程度,也可以称为两个AMR图的重合度,图匹配度越高,可以表明两个AMR图之间的重合面积越大。
[0140] 可选地,对两个AMR图进行匹配的过程可以包括以下步骤一至步骤二:
[0141] 步骤一、基于至少一个第一节点、至少一条第一边、至少一个第二节点和至少一条第二边,获取第一AMR图与第二AMR图的至少一个节点匹配度以及至少一个边匹配度。
[0142] 针对如何获取节点匹配度,在一种可能的实现中,对于任一第一节点以及任一第二节点,可以基于第一节点的向量对应的LSA信息以及第二节点的向量对应的LSA信息,获取第一节点与第二节点之间的节点匹配度。示例性地,可以基于第一节点的LSA信息以及第二节点的LSA信息,获取两个节点的LSA信息之间的相似度,将两个LSA信息之间的相似度,作为两个节点的节点匹配度。
[0143] 可选地,可以将节点的向量作为LSA信息,则基于两个节点的LSA信息获取节点匹配度的过程,具体可以为:基于第一节点的向量以及第二节点的向量之间的夹角,获取第一节点与第二节点之间的节点匹配度,该节点匹配度与两个向量之间的夹角负相关,即两个向量的夹角越大,节点匹配度越小。可选地,可以获取第一节点的向量以及第二节点的向量之间的余弦相似度,将该余弦相似度,作为第一节点与第二节点之间的节点匹配度。
[0144] 举例来说,节点匹配度可以使用以下等式计算:
[0145]
[0146] 其中,S1表示节点匹配度,a表示第一节点的向量,b表示第二节点的向量,||表示向量的长度,·表示向量点积。
[0147] 由于LSA信息描述了节点指代的概念,映射在潜在语义空间中的点,通过第一节点的LSA信息以及第二节点的LSA信息,来获取第一节点与第二节点之间的节点匹配度,节点匹配度能够反映两个节点指代的概念在潜在语义空间中的距离,因此准确性较高。
[0148] 针对如何获取边匹配度,在一种可能的实现中,对于任一第一边与任一第二边,可以基于第一边连接的两个第一节点的向量对应的LSA信息、第二边连接的两个第二节点的向量对应的LSA信息,获取第一边与第二边之间的边匹配度。具体来说,第一AMR图中的每个第一边均会连接两个第一节点,一个第一节点是第一边的起点,另一个第一节点是第一边的终点,同理地,第二AMR图中的每个第二边均会连接两个第二节点,对于给定的任两条边,这两条边可以确定四个节点,则对应四个LSA信息,可以根据这四个LSA信息,来获取两条边的边匹配度。
[0149] 可选地,获取边匹配度的过程可以包括以下步骤(1.1)至步骤(1.3)。为了区分描述,以下步骤(1.1)至步骤(1.3)中,第一边的起点称为第一起点,第一边的终点称为第一终点,第二边的起点称为第二起点,第二边的终点称为第二终点,两个起点之间的节点匹配度称为第一节点匹配度,两个终点之间的节点匹配度称为第二节点匹配度。
[0150] 步骤(1.1)基于第一边的第一起点的向量对应的LSA信息、第二边的第二起点的向量对应的LSA信息,获取第一起点与第二起点的节点匹配度,得到第一节点匹配度,第一起点属于第一边连接的两个第一节点,第二起点属于第二边连接的两个第二节点。
[0151] 可以根据第一边的方向,从第一边连接的两个第一节点中,选取第一起点,可以根据第二边的方向,从第二边连接的两个第二节点中,选择第二起点,基于两个起点的向量对应的LSA信息,获取两个起点的节点匹配度。例如,当LSA信息为一个向量时,可以基于两个起点的向量,获取两个向量之间的余弦相似度,作为两个起点的节点匹配度。
[0152] 步骤(1.2)基于第一边的第一终点的向量对应的LSA信息、第二边的第二终点的向量对应的LSA信息,获取第一终点与第二终点的节点匹配度,得到第二节点匹配度,第一终点属于第一边连接的两个第一节点,第二终点属于第二边连接的两个第二节点。
[0153] 可以根据第一边的方向,从第一边连接的两个第一节点中,选取第一终点,另外,也可以从第一边连接的两个第一节点中,选择第一起点以外的第一节点,得到第一终点。同理地,可以根据第二边的方向,从第二边连接的两个第二节点中,选择第二起点,另外,也可以从第二边连接的两个第二节点中,选择第二起点以外的第二节点,得到第二终点,可以基于两个终点的LSA信息,获取两个终点的节点匹配度。例如,当LSA信息为一个向量时,可以基于两个终点的向量,获取两个向量之间的余弦相似度,作为两个终点的节点匹配度。
[0154] 步骤(1.3)基于第一节点匹配度以及第二节点匹配度,获取边匹配度,匹配度可以与节点匹配度和终点的匹配度正相关。
[0155] 例如,可以获取第一节点匹配度以及第二节点匹配度的乘积,将该乘积作为边匹配度。
[0156] 举例来说,边匹配度可以使用以下等式计算:
[0157] S2(a1,a2,b1,b2)=S1(a1,b1)*S2(a2,b2);
[0158] 其中,S2表示边匹配度,a1表示第一起点,b1表示第二起点,a2表示第一终点,b2表示第二终点,S1表示节点匹配度。*表示相乘。
[0159] 需要说明的第一点是,步骤(1.1)至步骤(1.3)仅是获取边匹配度的一种可选方式,而非必选方式,在另一种可能的实现中,也可以基于两条边连接的四个节点的LSA信息,通过其他方式,来获取两个AMR图中不同边的边匹配度,例如,可以基于两个第一节点的LSA信息,获取第一起点和第一终点之间的节点匹配度,基于两个第二节点的LSA信息,获取第二起点和第二终点之间的节点匹配度,基于这两个节点匹配度,获取两条边的边匹配度,本实施例对如何基于两条边连接的四个节点的LSA信息,来获取两条边的边匹配度的方式不做限定。
[0160] 需要说明的第二点是,基于两条边连接的四个节点的LSA信息,来获取两条边的边匹配度的方式,仅是获取边匹配度的一种可选方式,而非必选方式,在另一种可能的实现中,也可以通过其他方式,来获取两个AMR图中不同边的边匹配度,例如,基于两条边的语义关系标签,来获取两条边的边匹配度,本实施例对如何获取两条边的边匹配度不做限定。
[0161] 步骤二、基于至少一个节点匹配度以及至少一个边匹配度,获取图匹配度。
[0162] 可选地,步骤二可以包括以下步骤(2.1)至步骤(2.2):
[0163] 步骤(2.1)获取第一AMR图的第一统计值以及第二AMR图的第二统计值。
[0164] 可以获取第一AMR图的节点总数量和边总数量中的至少一项,根据第一AMR图的节点总数量和边总数量中的至少一项,获取第一统计值,该第一统计值与第一AMR图的节点总数量和边总数量中的至少一项正相关。例如,可以获取第一AMR图的节点总数量和边总数量之和,将节点总数量和边总数量之和作为第一统计值,也即是,将所有第一节点的数量、所有第一边的数量的总和,作为第一统计值。
[0165] 同理地,可以获取第二AMR图的节点总数量和边总数量中的至少一项,根据第二AMR图的节点总数量和边总数量中的至少一项,获取第二统计值,第二统计值与第二AMR图的节点总数量和边总数量中的至少一项正相关。例如,可以获取第二AMR图的节点总数量和边总数量之和,将节点总数量和边总数量之和作为第二统计值,也即是,将所有第二节点的数量、所有第二边的数量的总和,作为第二统计值。
[0166] 步骤(2.2)基于至少一个节点匹配度、至少一个边匹配度、第一统计值以及第二统计值,获取图匹配度,图匹配度与至少一个节点匹配度以及至少一个边匹配度正相关,且图匹配度与第一统计值以及第二统计值负相关。
[0167] 举例来说,可以获取至少一个节点匹配度和至少一个边匹配度的和值,得到第一总和,获取第一统计值和第二统计值的和值,得到第二总和,计算第一总和与第二总和之间的比值,将该比值作为图匹配度。
[0168] 需要说明的是,步骤(2.1)至步骤(2.2)仅是获取图匹配度的一种可选方式,而非必选方式,在另一种可能的实现方式中,也可以通过其它方式,来获取图匹配度,例如,仅是基于至少一个边匹配度以及第二统计值,获取图匹配度,又如,仅是基于至少一个节点匹配度以及第一统计值,获取图匹配度,本实施例对如何获取图匹配度不做限定。
[0169] 综上所述,上述步骤一至步骤二描述了获取图匹配度的一种示例,在另一种可能的实现中,可以通过以下步骤A至步骤C,获取图匹配度。
[0170] 步骤A、对第一AMR图和第二AMR图进行对齐处理,得到至少一对匹配节点。
[0171] 每对匹配节点包括两个节点,其中一个节点是第一AMR图中的第一节点,另一个节点是第二AMR图中的第二节点,每对匹配节点中的第一节点和第二节点属于同一种概念,也即是,每对匹配节点中的两个节点的概念标签相同。每对匹配节点中第一节点对应的词语和第二节点对应的词语的语义比较相关,可以将第一节点和第二节点可以看作第一AMR图与第二AMR图中两个对齐的节点。
[0172] 示例性地,请参见图5,AMR图1为“Mate9更换屏幕”这一句子的AMR图,AMR图2为“荣耀9屏幕坏了,维修多少钱”这一句子的AMR图,AMR图1的“更换”、AMR图2的“维修”属于同一种概念,因此“更换”和“维修”是一对匹配节点,AMR图1的“Mate9”和AMR图2的“荣耀9”属于同一种概念,因此“Mate9”和“荣耀9”是一对匹配节点。
[0173] 可选地,对第一AMR图以及第二AMR图进行对齐处理后,还可以得到至少一对匹配边。每对匹配边包括两条边,其中一条边是第一AMR图中的第一边,另一条边是第二AMR图中的第二边,每对匹配边中的第一边与第二边属于同一种语义关系,也即是,每对匹配边中的两条边的语义关系标签相同。因此,每对匹配边中第一边的语义关系、第二边的语义关系比较相关,可以将第一边和第二边可以看作第一AMR图与第二AMR图中两条对齐的边。
[0174] 示例性地,请参见图5,AMR图1中“更换”与“屏幕”之间的语义关系,AMR图2中“维修”与“屏幕”之间的语义关系属于同一种语义关系,因此AMR图1“更换”与“屏幕”之间的边,与AMR图2中“维修”与“屏幕”之间的边是一对匹配边。AMR图1中“屏幕”与“Mate9”之间的语义关系,AMR图2中“屏幕”与“荣耀9”之间的语义关系属于同一种语义关系,因此AMR图1“屏幕”与“Mate9”之间的边,与AMR图2中“屏幕”与“荣耀9”之间的边是一对匹配边。
[0175] 针对如何得到第一AMR图与第二AMR图的匹配节点以及匹配边,可以对两个AMR图进行对齐处理,令两个AMR图中,属于同一种概念的节点之间对齐,属于同一种语义关系的边之间对齐,通过进行对齐处理,可以得到第一AMR图与第二AMR图的至少一对匹配节点以及至少一对匹配边。
[0176] 可选地,对齐处理的过程可以包括以下步骤(1)至步骤(2):
[0177] 步骤(1)对第一AMR图和第二AMR图进行初始化,得到至少一对初始匹配节点。
[0178] 可选地,可以应用贪心策略,首先选择第一AMR图与第二AMR图中最相似的节点进行匹配,再在剩余的节点中,选择最相似的节点进行匹配,重复这一流程,直到第一AMR图与第二AMR图中剩余节点的最大相似度均小于一个比较小的相似度阈值,得到至少一对初始匹配节点。具体来说,应用贪心策略获取初始匹配节点的过程可以包括以下步骤(1.1)至(1.3)。
[0179] 步骤(1.1)获取每个第一节点与每个第二节点之间的相似度,得到多个相似度。
[0180] 对于第一AMR图的每个第一节点和第二AMR图的每个第二节点,可以确定第一节点的向量对应的LSA信息和第二节点的向量对应的LSA信息,获取两个LSA信息之间的相似度,作为第一节点与第二节点的相似度,从而得到多个相似度。其中,如果LSA信息以向量表示,则可以确定第一节点的向量和第二节点的向量,获取两个向量之间的余弦相似度,作为第一节点与第二节点的相似度。
[0181] 可选地,可以根据每个第一节点与每个第二节点之间的相似度,构建相似度矩阵,该相似度矩阵用于指示任一第一节点与任一第二节点之间的相似度,该相似度矩阵中每一行对应一个第一节点,每一列对应一个第二节点,该相似度矩阵中的每个元素为行对应的第一节点与列对应的第二节点的相似度。
[0182] 步骤(1.2)基于多个相似度,从至少一个第一节点和至少一个第二节点中,选择相似度最高的第一节点与第二节点,作为一对初始匹配节点。
[0183] 可以从多个相似度中选择最高的相似度,确定该最高的相似度对应的第一节点与第二节点,将该第一节点与第二节点作为一对初始匹配节点。可选地,可以根据构建的相似度矩阵中,从相似度矩阵的所有元素中,选择最大的元素,确定该最大的元素所处的行和列,将该行对应的第一节点和列对应的第二节点,作为一对初始匹配节点。
[0184] 步骤(1.3)从相似度最高的第一节点与第二节点以外的第一节点和第二节点中,继续执行选择初始匹配节点的步骤,直至剩余的第一节点与第二节点的相似度均小于相似度阈值,得到至少一对初始匹配节点。
[0185] 当将任一第一节点与任一第二节点作为一对初始匹配节点后,在继续选择初始匹配节点时,可以无需考虑该第一节点与该第二节点,而是根据该第一节点与该第二节点以外的、至少一个第一节点和至少一个第二节点,从这些第一节点和第二节点对应的相似度中,继续选择最高的相似度,确定该最高的相似度对应的第一节点与第二节点,将该第一节点与第二节点作为另一对初始匹配节点。
[0186] 可选地,当上述步骤(1.2)中,从相似度矩阵中选择最大的元素后,可以删除该最大的元素所处的行和列,从相似度矩阵中剩余的所有元素中,继续选择最大的元素,确定该最大的元素所处的行和列,将该行对应的第一节点和列对应的第二节点,作为一对初始匹配节点。
[0187] 由于每次均从剩余的第一节点和第二节点中,选择相似度最高的第一节点和第二节点,随着多次执行选择初始匹配节点的步骤,剩余的第一节点和第二节点的相似度会越来越小,可以根据每个剩余的第一节点和每个剩余的第二节点之间的相似度,判断这些相似度是否均小于相似度阈值,如果这些相似度均小于相似度阈值,则初始化结束,可以将每次选择的初始匹配节点,输出为每对初始匹配节点。
[0188] 通过采用贪心策略,执行上述步骤(1.1)至步骤(1.3)来获取至少一对初始匹配节点,每次选取初始匹配节点时,只需从当前剩余的所有节点中,选择当前的相似度最高的两个节点即可,而无需考虑两个AMR图整体的最优匹配,因此计算量较少,计算效率较高,能够快速运算得到至少一对初始匹配节点。
[0189] 需要说明的是,上述步骤(1.1)至步骤(1.3)仅是初始化的一种可选方式,而非初始化的必选方式,在一种可能的实现中,也可以通过其它方式来进行初始化,例如,可以获取每个第一节点与每个第二节点之间的相似度,根据多个相似度选取至少一对初始匹配节点,本实施例对如何初始化不做限定。
[0190] 步骤(2)基于至少一对初始匹配节点对应的初始图匹配度,对至少一对初始匹配节点进行迭代优化,得到至少一对匹配节点。
[0191] 具体来说,可以基于至少一对初始匹配节点,获取至少一个节点匹配度,基于至少一对初始匹配边,获取至少一个边匹配度,基于该至少一个节点匹配度以及至少一个边匹配度,获取初始图匹配度,基于该初始图匹配度,对至少一对初始匹配节点进行迭代优化,在迭代优化的过程中,对至少一对初始匹配节点进行调整,而至少一对初始匹配节点调整后,初始图匹配度会相应提升,通过重复对至少一对初始匹配节点进行调整的步骤,初始图匹配度会不断优化,当初始图匹配度达到预设条件时,可以结束迭代优化的过程,将当前的至少一对初始匹配节点输出为至少一对匹配节点。
[0192] 可选地,可以将该至少一对匹配节点对应的匹配边输出为至少一对匹配边,从而得到至少一对匹配节点。
[0193] 可选地,预设条件可以为本次进行调整后得到的初始图匹配度,与上一次进行调整后得到的初始图匹配度之间的差值小于预设阈值,当初始图匹配度达到预设条件,表明已经调整到了最优解,整体的图匹配度已经无法继续改进,则可以结束迭代优化。
[0194] 其中,关于如何基于初始匹配节点来获取初始匹配边,对于第一AMR图中的每个第一边以及第二AMR图的每个第二边,如果第一边的起点和第二边的起点是一对初始匹配节点,且第一边的终点和第二边的终点是一对初始匹配节点,则将该第一边和第二边作为一对初始匹配边。
[0195] 综上所述,通过对两个AMR图进行初始化处理以及迭代优化处理,可以找到两个AMR图的最佳对齐方式。示例性地,请参见图5,AMR图1与AMR图2具有三对匹配节点,分别是“更换”与“维修”,“屏幕”与“屏幕”,“荣耀9”与“Mate9”AMR图1与AMR图2具有两对匹配边,分别是“更换”和“屏幕”之间的边和“维修”和“屏幕”之间的边,“屏幕”与“Mate9”之间的边、“屏幕”与“荣耀9”之间的边,则对齐结果可以为AMR图1与AMR图2的加粗椭圆部分所示。
[0196] 步骤B、基于至少一对匹配节点的向量对应的LSA信息,对第一AMR图与第二AMR图进行匹配,得到所述第一AMR图与所述第二AMR图之间的图匹配。
[0197] 对于至少一对匹配节点中的每对匹配节点,可以确定这对匹配节点中的第一节点与第二节点,基于这两个节点的向量对应的LSA信息,获取这对匹配节点中第一节点与第二节点之间的节点匹配度。其中,如何基于两个节点的LSA信息来获取节点匹配度的过程请参见步骤303的步骤一,在此不做赘述。
[0198] 对于至少一对匹配边中的每对匹配边,可以基于这对匹配边中,第一边连接的两个第一节点的向量对应的LSA信息、第二边连接的两个第二节点的向量对应的LSA信息,获取第一边与第二边之间的边匹配度。其中,如何基于两条边对应的LSA信息来获取边匹配度的过程请参见步骤303的步骤一,在此不做赘述。
[0199] 需要说明的是,第一AMR图和第二AMR图中,除了该至少一对匹配节点以及至少一对匹配边以外,还可能包括其他节点和其他边,而在获取节点匹配度和边匹配度时,可以无需考虑其他节点和其他边。示例性地,请参见图5,对于AMR图2中“多少钱”和“坏了”来说,由于AMR图1中不包括与“多少钱”和“坏了”匹配的节点,因此AMR图2“多少钱”和“坏了”是孤立的节点,在执行本步骤二时,可以无需考虑“多少钱”和“坏了”这两个节点。
[0200] 304、计算机设备将图匹配度,作为第一文本与第二文本之间的语义匹配度。
[0201] 可选地,可以输出语义匹配度,也可以存储该语义匹配度,还可以根据该语义匹配度,继续进行业务处理。
[0202] 可选地,如果需要识别第一文本与第二文本的语义是否匹配,可以判断语义匹配度是否大于语义匹配度阈值,当语义匹配度大于语义匹配度阈值时,确定第一文本与第二文本的语义匹配,输出第一识别结果,该第一识别结果用于指示第一文本与第二文本的语义匹配,例如可以是1、Y等。当语义匹配度不大于语义匹配度阈值时,确定第一文本与第二文本的语义不匹配,输出第二识别结果,该第二识别结果用于指示第一文本与第二文本的语义不匹配,例如可以是0、N等。
[0203] 可选地,如果需要从多个预设文本中,找出第一文本与哪个预设文本的语义最匹配,可以将多个预设文本分别作为上文的第二文本,根据第一文本的AMR图以及每个预设文本的AMR图,确定第一文本与每个预设文本的语义匹配度,从多个预设文本对应的语义匹配度中,选取最高的语义匹配度,确定最高的语义匹配度对应的预设文本,输出最高的语义匹配度对应的预设文本。
[0204] 可选地,当应用于智能问答场景中,第一文本可以是用户问题,第二文本可以是预设问题,如果第一文本和第二文本的语义匹配度大于语义匹配度阈值,表明预设问题与用户问题的语义匹配,则可以根据预设问题,查询预设问题与预设答案之间的对应关系,得到该预设问题对应的预设答案,输出该预设答案,从而为用户提供答案。
[0205] 进一步地,可以根据用户问题,从大量的预设问题中,选取N个候选问题,根据用户问题的AMR图与每个候选问题的AMR图,获取用户问题与每个候选问题的语义匹配度,得到N个语义匹配度,从N个语义匹配度中选取最高的语义匹配度,确定该最高的语义匹配度对应的候选问题,作为目标候选问题,根据目标候选问题,查询预设问题与预设答案之间的对应关系,得到该目标候选问题对应的预设答案,输出该预设答案,从而为用户提供准确的答案。其中,N为大于1的正整数。
[0206] 本实施例提供的方法,使用AMR图来表示文本的语义,并且本申请提供的AMR图中每个节点是一个向量,可以通过每个节点的向量,得到每个节点的LSA信息,进而通过每个节点的LSA信息来进行图匹配。LSA信息能够表示概念在潜在语义空间的含义,因此能够精确地表达句子中词语的语义,准确性较高。并且,AMR图在能够描述文本中每个词语本身的语义的基础上,能够描述出词语与词语之间的联系以及文本的整体语义结构,因此能够精确地反映文本整体的语义,根据两个文本的AMR图进行匹配,来得到两个文本的语义匹配度,能够极大地提高了语义匹配度的准确性。进一步地,使用本实施例提供的方法,计算机设备可以自动计算出不同节点的节点匹配度,而无需人工预先标注不同样本词语的相似度,可以提供为无监督方法,成本较低,效率较高,适用范围更广,泛化能力更好,能够方便地扩展到各种语义匹配场景。
[0207] 以下结合智能问答的应用场景进行描述:
[0208] 在智能问答的场景中,企业可以构建智能客服系统,实现7*24小时的便捷服务,用户可以通过手机智能助手、智能音箱、智能车载设备等终端,触发输入操作,来快捷的完成很多任务,例如设置闹铃、播放歌曲、获取信息等,通过智能问答,能帮助人们更快捷、更灵活、更准确的获取信息,从而极大地提升用户体验和减少人力成本。
[0209] 在智能问答技术中,核心的技术问题是如何计算用户问题与标准问题的语义匹配度。一方面,由于用户问题和标准问题都比较短,如何准确表达以及匹配问题的语义是一个技术难点,而基于关键词或词嵌入的浅层语义表达,均难以准确描述词语之间的语义关联。另一方面,对于同一个用户问题,也会存在多种多样的表述方式。比如,问天气的问法包括“明天天气如何”,“明天会下雨吗”“, 明天北京天气怎么样”等。因此,如何准确识别同一个问题的不同问法,是提升智能问答系统的泛化能力的关键。
[0210] 如何计算语义匹配度的技术问题,可进一步分解为两个子问题。
[0211] 问题一,如何表达问题的语义:自然语言中的句子具有丰富的语义结构,如主谓宾、修饰语等。目前的文本表示方法,例如词袋模型和向量空间模型中,均假设句子是由一个词来构成的,忽略了词语与词语之间的依赖和语义结构信息。而深度学习方法中,通过将句子嵌入到低维实数空间,来挖掘句子中的语义信息,但深度学习方法的输入仍然是一个一个词,忽略了句子中的语义结构信息。而在智能问答和对话系统中,需要精确描述句子的语义,因此需要更准确的问题表达方式。
[0212] 问题二,如何计算两个问题之间的语义匹配度。目前的方法要么没有考虑句子的语义结构特征,要么需要人为大量标注样本数据,来学习机器学习的模型,导致成本较高。
[0213] 而本申请中,提出了基于AMR图的语义匹配方法与装置,一方面,使用AMR图来表示句子的语义,解决了上述问题一。本申请的AMR图,结合了AMR解析技术和LSA技术,将句子表示成一个单根有向无环图。与传统AMR解析技术不同的是,本申请提供的表示方法中,每个节点是一个向量,表示词语的潜在概念,而非实体概念。另一方面,每个节点的向量对应LSA信息,可以表达节点在潜在语义空间的语义。再一方面,通过对两个AMR图进行匹配,来获取两个句子的语义匹配度,解决了上述问题二,AMR图通过互相连接的节点和边,能够融合句子的语义结构特征,同时无需人为标注数据。
[0214] 请参见图6,图6为本申请实施例提供的一种智能问答系统架构图,智能问答系统可以包括:输入输出模块、预处理模块、AMR语义匹配模块、数据层模块等,这些程序模块的功能如下:
[0215] (1)输入输出模块:用于通过输入接口,接收用户输入的用户问题,通过输出接口,输出标准问题对应的答案。
[0216] (2)预处理模块:包含分词子模块和概念映射子模块,分词子模块用于对句子进行分词,概念映射把词语映射为概念库中的概念。
[0217] (3)AMR语义匹配模块:智能问答系统的核心,包括6个子模块。AMR解析子模块:将句子解析成AMR图。关键词检索子模块,负责从索引中检索候选问题。AMR图合并子模块:对所有FAQ库中AMR进行合并;PageRank权重计算子模块:基于合并后的AMR图做PageRank,计算各个概念节点的权重;LSA分解子模块:构造一个句子概念矩阵M,其中第i行表示第i个句子,第j列表示第j概念,每个元素M(i,j)表示第j个概念在第i个句子中出现的次数。对该矩阵进行LSA分解,得到每个概念的向量表示。
[0218] (4)图匹配计算模块:根据概念的向量表示以及问题的AMR图结构,计算两个问题的匹配程度。
[0219] 参见图7,图7为本申请实施例提供的智能问答系统的数据流程图,图7中智能问答系统包括两部分:离线训练部分以及在线预测部分,离线训练部分包括AMR解析器、权重计算模块以及LSA训练模块。通过离线训练部分,可以输出LSA模型。在线预测时,智能问答系统首先加载训练好的LSA模型,当接收到一个用户问题,智能问答系统可以调用预处理模块和AMR解析器,对用户问题进行预处理和解析,输出AMR图,然后调用图匹配模块,对FAQ库中的候选问题的AMR图,计算图匹配度,作为用户问题和候选问题的语义匹配度。
[0220] 参见图8,图8为本申请实施例提供的一种智能问答系统的组件结构图,该智能问答系统包括前端服务、问题理解服务、问题理解服务、问题检索服务以及问题匹配服务这几个服务,以下通过(1)至(4)对每个服务的处理流程分别描述:
[0221] (1)前端服务:
[0222] 前端服务可以为全球广域网(World Wide Web,简称:Web)前端服务和/或应用程序(Application,简称:App)前端服务,可以用于处理用户问题,并展示用户问题对应的结果。
[0223] 前端服务的处理流程可以如图9所示,当前端服务的输入选项接收到用户问题时,会调用问题补全接口,来展示候选问题,以帮助用户快速用户问题。在接收到完整的用户问题后,如果智能问答系统返回了答案,则显示返回的答案,如果智能问答系统没有返回答案,则调用问题推荐接口,显示推荐的问题的结果。其中,推荐的问题一般是标准问题库中的问题,所以如果用户点击推荐的问题,则直接返回推荐的问题对应的答案。
[0224] (2)问题理解服务:
[0225] 图10为问题理解服务的处理流程图,当接收到用户问题后,问题理解服务首先会对用户问题进行分类,根据用户问题所属的类别,对用户问题进一步进行意图识别,得到用户问题的意图,根据用户问题的类别和意图,将用户问题分发给对应的答案生成服务进行处理。
[0226] (3)问题检索服务:
[0227] 图11为问题理解服务的处理流程图,问题理解服务可以用于从标准问题库中,检索出与用户问题相似的问题,作为候选问题。具体地,首先,问题理解服务会根据问题的类别、意图以及文字信息,生成查询语句。然后,根据该查询语句,从索引中找出前N条最相似的问题,作为候选问题,并根据每个候选问题的相似度,对N个候选问题进行排序。
[0228] (4)问题匹配服务:
[0229] 图12为问题匹配服务的处理流程图,问题匹配服务可以用于对用户问题和检索出来的候选问题一一进行匹配,得到每个候选问题对应的图匹配度,如果这些图匹配度中最高的图匹配度大于图匹配度阈值,则输出图匹配度对应的候选问题的答案,如果这些图匹配度中最高的图匹配度不大于图匹配度阈值,则认为无法回答,输出默认答案。
[0230] 图13是本申请实施例提供的一种语义匹配装置的结构示意图,如图13所示,该装置包括:AMR图获取模块1301、AMR图匹配模块1302和匹配度获取模块1303。
[0231] AMR图获取模块1301,用于执行上述步骤301;
[0232] AMR图匹配模块1302,用于执行上述步骤302;
[0233] 匹配度获取模块1303,用于执行上述步骤303。
[0234] 在一种可能的实现中,该AMR图获取模块1301,包括:
[0235] 解析子模块,用于执行上述步骤302中的步骤一;
[0236] LSA分析子模块,用于执行上述步骤302中的步骤二。
[0237] 在一种可能的实现中,该装置还包括:
[0238] 重要度获取模块,用于:执行上述步骤301中的步骤一;
[0239] 矩阵构建模块,用于执行上述步骤301中的步骤二;
[0240] 奇异值分解模块,用于执行上述步骤301中的步骤三。
[0241] 在一种可能的实现中,该重要度获取模块,包括:
[0242] 合并单元,用于执行上述步骤301中的步骤(1.3);
[0243] PR值获取单元,用执行上述步骤301中的步骤(1.4);
[0244] 重要度获取单元,用于执行上述步骤301中的步骤(1.5)。
[0245] 在一种可能的实现中,该装置还包括:
[0246] 确定模块,用于将节点的向量作为节点的LSA信息。
[0247] 在一种可能的实现中,该AMR图匹配模块1302,包括:
[0248] 第一获取子模块,用于执行上述步骤303的步骤一;
[0249] 第二获取子模块,用于执行上述步骤303的步骤二。
[0250] 在一种可能的实现中,该第一获取子模块,用于:基于第一节点的LSA信息以及第二节点的LSA信息,获取第一节点与该第二节点之间的节点匹配度;和/或,基于第一边连接的两个第一节点的LSA信息、第二边连接的两个第二节点的LSA信息,获取第一边与第二边之间的边匹配度。
[0251] 在一种可能的实现中,该第一获取子模块,包括:
[0252] 节点匹配度获取单元,用于执行上述步骤303中的步骤(1.1);
[0253] 该节点匹配度获取单元,还用于执行上述步骤303中的步骤(1.2);
[0254] 边匹配度获取单元,用于执行上述步骤303中的步骤(1.3)。
[0255] 在一种可能的实现中,该第二获取子模块,用于:
[0256] 统计单元,用于执行上述步骤303中的步骤(2.1);
[0257] 匹配度获取单元,用于执行上述步骤303中的步骤(2.2)。
[0258] 在一种可能的实现中,该AMR图匹配模块1302,包括:
[0259] 对齐子模块,用于执行上述步骤303中的步骤A;
[0260] 匹配度获取子模块,用于执行上述步骤303中的步骤B。
[0261] 在一种可能的实现中,该对齐子模块,用于执行上述步骤303中的初始化过程以及迭代优化过程。
[0262] 需要说明的是:上述实施例提供的语义匹配装置在进行语义匹配时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的语义匹配装置与语义匹配方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0263] 上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
[0264] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD)、或者半导体介质(例如固态硬盘)等。
[0265] 本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。
[0266] 本申请中术语“多个”的含义是指两个或两个以上,例如,多个数据包是指两个或两个以上的数据包。
[0267] 本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,本领域技术人员可以理解,“第一”“第二”等字样不对数量和执行顺序进行限定。
[0268] 以上所述仅为本申请的可选实施例,并不用以限制本申请,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
[0269] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0270] 以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。