文本语义相似度匹配方法、装置、设备及存储介质与流程

文档序号:33626334发布日期:2023-03-28 21:06阅读:29来源:国知局
文本语义相似度匹配方法、装置、设备及存储介质与流程

1.本技术涉及文本匹配技术领域,具体而言,涉及一种文本语义相似度匹配方法、装置、设备及存储介质。


背景技术:

2.文本语义相似度匹配任务在自然语言处理中是非常重要的基础任务之一,有很多应用场景;如信息检索、问答系统、智能对话、文本鉴别、智能推荐、文本数据去重等。
3.目前文本语义相似度匹配的技术方案包括基于word2vec算法的文本匹配、基于预训练bert模型的文本匹配等。这些方法都是对句子生成句向量,再根据句向量进行文本的语义相似度匹配。
4.然而,由于句向量无法全面的表征句子的整体含义,因此目前在文本语义相似度匹配时存在准确性差的问题。


技术实现要素:

5.本技术的目的在于,针对上述现有技术中的不足,提供一种文本语义相似度匹配方法、装置、设备及存储介质,以解决现有技术中文本语义相似度匹配时准确性差的问题。
6.为实现上述目的,本技术采用的技术方案如下:
7.第一方面,本技术提供了一种文本语义相似度匹配方法,所述方法包括:
8.对待匹配文本进行分词,得到所述待匹配文本的词语序列;
9.采用第一滑动窗口在所述词语序列中确定多个词语子序列,并确定各所述词语子序列中各词语的词向量和权重,各词语子序列中包括多个词语;
10.根据各所述词语子序列中词语的词向量和权重确定各所述词语子序列的指纹信息,并按照各所述词语子序列的顺序将各所述词语子序列的指纹信息组成指纹信息序列;
11.采用第二滑动窗口在所述指纹信息序列中确定多个指纹信息子序列,并根据各指纹信息子序列的指纹信息确定各指纹信息子序列的指纹特征,其中,各指纹信息子序列中包括多个指纹信息,所述第二滑动窗口的长度等于所述第一滑动窗口的长度;
12.对各指纹信息子序列的指纹特征分别进行分段处理,得到各指纹信息子序列的指纹特征的多个指纹分段特征,根据所述指纹分段特征以及预设的指纹数据库,确定所述待匹配文本的匹配结果。
13.可选的,所述采用第一滑动窗口在所述词语序列中确定多个词语子序列,并确定各所述词语子序列中各词语的词向量和权重,包括:
14.采用所述第一滑动窗口遍历所述词语序列,在所述词语序列中确定多个词语子序列;
15.在预设的词向量模型文件中查找所述词语子序列中的词语,确定各所述词语子序列中各词语的词向量;
16.在预设的权重文件中查找所述词语子序列中的词语,确定各所述词语子序列中各
词语的权重。
17.可选的,所述根据各所述词语子序列中词语的词向量和权重确定各所述词语子序列的指纹信息,并按照各所述词语子序列的顺序将各所述词语子序列的指纹信息组成指纹信息序列,包括:
18.将各词语子序列中各词语的词向量和权重相乘,得到各词语的加权结果;
19.将各词语子序列中各词语的加权结果相加并进行归一化处理,得到各词语子序列的指纹信息;
20.按照各词语子序列的顺序对各词语子序列的指纹信息进行排序,得到所述指纹信息序列。
21.可选的,所述采用第二滑动窗口在所述指纹信息序列中确定多个指纹信息子序列,并根据各指纹信息子序列的指纹信息确定各指纹信息子序列的指纹特征,包括:
22.采用所述第二滑动窗口遍历所述指纹信息序列,在所述指纹信息序列中确定多个指纹信息子序列;
23.在各所述指纹信息子序列中将哈希值最大的指纹信息作为所述指纹信息子序列的指纹特征。
24.可选的,所述对各指纹信息子序列的指纹特征分别进行分段处理,得到各指纹信息子序列的指纹特征的多个指纹分段特征,根据所述指纹分段特征以及预设的指纹数据库,确定所述待匹配文本的匹配结果,包括:
25.对各指纹信息子序列的指纹特征分别进行分段处理,得到各指纹信息子序列的指纹特征的多个指纹分段特征,并对各所述指纹分段特征添加对应的分段标识;
26.根据所述分段标识和所述指纹分段特征在所述指纹数据库中查找,确定所述指纹信息子序列对应的相似度匹配结果;
27.根据各指纹信息子序列对应的匹配结果,确定所述待匹配文本的相似度匹配结果。
28.可选的,所述根据所述分段标识和所述指纹分段特征在所述指纹数据库中查找,确定所述指纹信息子序列对应的相似度匹配结果,包括:
29.根据所述分段标识在所述指纹数据库中查找所述分段标识对应的多个待匹配指纹分段特征;
30.确定所述指纹分段特征和各所述待匹配指纹分段特征的哈希值,并根据所述哈希值确定所述指纹分段特征的匹配结果;
31.根据指纹信息子序列对应的各指纹分段特征的匹配结果,确定所述指纹信息子序列对应的相似度匹配结果。
32.可选的,所述对待匹配文本进行分词,得到所述待匹配文本的词语序列,包括:
33.采用分词工具对所述待匹配文本进行分词,得到所述待匹配文本的初始词语序列;
34.根据预设的停用词文件,从所述初始词语序列中删除停用词,得到所述待匹配文本的词语序列。
35.第二方面,本技术提供了一种文本语义相似度匹配装置,所述装置包括:
36.分词模块,用于对待匹配文本进行分词,得到所述待匹配文本的词语序列;
37.第一确定模块,用于采用第一滑动窗口在所述词语序列中确定多个词语子序列,并确定各所述词语子序列中各词语的词向量和权重,各词语子序列中包括多个词语;
38.第二确定模块,用于根据各所述词语子序列中词语的词向量和权重确定各所述词语子序列的指纹信息,并按照各所述词语子序列的顺序将各所述词语子序列的指纹信息组成指纹信息序列;
39.第三确定模块,用于采用第二滑动窗口在所述指纹信息序列中确定多个指纹信息子序列,并根据各指纹信息子序列的指纹信息确定各指纹信息子序列的指纹特征,其中,各指纹信息子序列中包括多个指纹信息,所述第二滑动窗口的长度等于所述第一滑动窗口的长度;
40.匹配模块,用于对各指纹信息子序列的指纹特征分别进行分段处理,得到各指纹信息子序列的指纹特征的多个指纹分段特征,根据所述指纹分段特征以及预设的指纹数据库,确定所述待匹配文本的匹配结果。
41.可选的,所述第一确定模块具体用于:
42.采用所述第一滑动窗口遍历所述词语序列,在所述词语序列中确定多个词语子序列;
43.在预设的词向量模型文件中查找所述词语子序列中的词语,确定各所述词语子序列中各词语的词向量;
44.在预设的权重文件中查找所述词语子序列中的词语,确定各所述词语子序列中各词语的权重。
45.可选的,所述第二确定模块具体用于:
46.将各词语子序列中各词语的词向量和权重相乘,得到各词语的加权结果;
47.将各词语子序列中各词语的加权结果相加并进行归一化处理,得到各词语子序列的指纹信息;
48.按照各词语子序列的顺序对各词语子序列的指纹信息进行排序,得到所述指纹信息序列。
49.可选的,所述第三确定模块具体用于:
50.采用所述第二滑动窗口遍历所述指纹信息序列,在所述指纹信息序列中确定多个指纹信息子序列;
51.在各所述指纹信息子序列中将哈希值最大的指纹信息作为所述指纹信息子序列的指纹特征。
52.可选的,所述匹配模块具体用于:
53.对各指纹信息子序列的指纹特征分别进行分段处理,得到各指纹信息子序列的指纹特征的多个指纹分段特征,并对各所述指纹分段特征添加对应的分段标识;
54.根据所述分段标识和所述指纹分段特征在所述指纹数据库中查找,确定所述指纹信息子序列对应的相似度匹配结果;
55.根据各指纹信息子序列对应的匹配结果,确定所述待匹配文本的相似度匹配结果。
56.可选的,所述匹配模块还具体用于:
57.根据所述分段标识在所述指纹数据库中查找所述分段标识对应的多个待匹配指
纹分段特征;
58.确定所述指纹分段特征和各所述待匹配指纹分段特征的哈希值,并根据所述哈希值确定所述指纹分段特征的匹配结果;
59.根据指纹信息子序列对应的各指纹分段特征的匹配结果,确定所述指纹信息子序列对应的相似度匹配结果。
60.可选的,所述分词模块具体用于:
61.采用分词工具对所述待匹配文本进行分词,得到所述待匹配文本的初始词语序列;
62.根据预设的停用词文件,从所述初始词语序列中删除停用词,得到所述待匹配文本的词语序列。
63.第三方面,本技术提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述文本语义相似度匹配方法的步骤。
64.第四方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述文本语义相似度匹配方法的步骤。
65.本技术的有益效果是:通过第一滑动窗口先生成指纹信息,再通过第二滑动窗口对指纹信息序列生成指纹特征,可以减少匹配时的指纹数量,从而降低文本匹配的复杂度,并且,本技术的指纹特征可以更全面的表征文本的整体含义,因此能够提高文本语义相似度匹配的准确性。
附图说明
66.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
67.图1示出了本技术实施例提供的一种文本语义匹配检索系统的架构示意图;
68.图2示出了本技术实施例提供的一种文本语义相似度匹配方法的流程图;
69.图3示出了本技术实施例提供的一种第一滑动窗口确定指纹信息的示意图;
70.图4示出了本技术实施例提供的一种第二滑动窗口确定指纹特征的示意图;
71.图5示出了本技术实施例提供的一种确定词向量和权重的流程图;
72.图6示出了本技术实施例提供的一种组成指纹信息序列的流程图;
73.图7示出了本技术实施例提供的一种确定指纹特征的流程图;
74.图8示出了本技术实施例提供的一种确定待匹配文本的匹配结果的流程图;
75.图9示出了本技术实施例提供的一种确定指纹信息子序列匹配结果的流程图;
76.图10示出了本技术实施例提供的一种确定词语序列的流程图;
77.图11示出了本技术实施例提供的又一种文本语义相似度匹配方法的流程图;
78.图12示出了本技术实施例提供的一种文本语义相似度匹配装置的结构示意图;
79.图13示出了本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
80.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,应当理解,本技术中附图仅起到说明和描述的目的,并不用于限定本技术的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本技术中使用的流程图示出了根据本技术的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本技术内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
81.另外,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
82.需要说明的是,本技术实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
83.目前文本语义相似度匹配的技术方案包括基于word2vec算法的文本匹配、基于预训练bert模型的文本匹配等。
84.其中,基于word2vec的算法通常是将文本拆分成句子,句子经过分词后,通过word2vec获取词向量,再将这些句子的词向量同维相加,得到一个向量,最后这个向量每个维度的值除以词的个数就视为这个句子的句向量。采用预训练的bert方法,将单个句子输入到bert语言模型中,然后生成固定大小的句向量。
85.然而,这两种方法生成的句向量并不能全面的表征句子的整体含义,因此在进行文本语义相似度匹配时,就不能准确的匹配到语义相似度较高的文本。
86.可见,现有的文本语义相似度匹配存在准确性较差的问题。
87.基于上述问题,本技术提出一种文本语义相似度匹配方法,可以应用于文本语义相似度匹配的场景中,例如信息检索、问答系统、智能对话、文本鉴别、智能推荐、文本数据去重、文本语义匹配检索等场景。
88.图1给出了一种文本语义匹配检索系统的示意图,如图1所示,该系统包括:预处理模块、文本指纹匹配模块、文本指纹加载模块、文本指纹生成模块以及指纹数据库等。
89.其中,预处理模块用于对输入文本进行分词,以及对系统进行预配置和文件加载,例如词权重文件和词向量模型文件的加载等;文本指纹加载模块用于对已学习的指纹数据加载,以及从指纹数据库中读取已学习的文本指纹;文本内容学习模块用于对学习语料生成文本语义指纹;文本内容匹配模块用于识别待匹配的文本中相似的文本内容;文本指纹生成模块用于对文本生成指纹信息和指纹特征。
90.图1中的文本语义匹配检索系统可以预先通过学习语料进行训练,训练完成后,用户在进行文本语义匹配检索时,可以将待匹配文本输入系统,由系统对待匹配文本进行预处理,并对文本生成指纹特征,再根据生成的指纹特征进行指纹匹配,最终向用户返回与文
本语义相似度匹配的匹配结果。
91.接下来对本技术的文本语义相似度匹配方法进行说明,该方法可以应用于图1所示的文本语义匹配检索系统中,执行主体可以是电子设备,如图2所示,该方法包括:
92.s201:对待匹配文本进行分词,得到待匹配文本的词语序列。
93.可选的,待匹配文本可以是待匹配的文章、文章中的段落或是待匹配的语句等。
94.可选的,可以通过图1所示的预处理模块对待匹配文本进行分词,得到待匹配文本的词语序列。
95.可选的,待匹配文本的词语序列可以是对待匹配文本分词后,将各个词语按照原本的文本顺序排列得到的词语序列。
96.示例性的,假设待匹配文本为“今天真是一个好天气”,那么得到的词语序列就可以是“今天真是一个好天气”。
97.s202:采用第一滑动窗口在词语序列中确定多个词语子序列,并确定各词语子序列中各词语的词向量和权重,各词语子序列中包括多个词语。
98.可选的,可以采用第一滑动窗口从词语序列的首个词语开始滑动,将滑动窗口中的连续多个词语确定为一个词语子序列,滑动窗口可以在确定一个词语子序列之后按照固定的步长向后移动,并依次确定词语序列的多个词语子序列。
99.示例性的,如图3所示,是本技术给出的一种滑动窗口在词语上进行滑动的示意图,滑动窗口301在待匹配文本上滑动,确定的首个词语子序列为“今天真是”,假设滑动窗口的滑动步长为一个词语,那么下一个词语子序列就可以是“真是一个”。
100.可选的,词向量可以是词语序列中的词语或该词语的近义词的向量化表示,即每个词向量可以表征至少一个词语。词向量可以通过在预设的词向量文件中查找确定。示例性的,“假如”和“假设”这两个词语作为近义词,它们的词向量就可以是相同的。
101.示例性的,词向量的表示例如可以是wvi={v1,v2,v3,v4,
……
vn,},其中vi为第i维的向量,作为另一种可能的实施方式,词向量的表示还可以是词语的哈希值。
102.可选的,权重可以表征该词语在文章中或在不同业务场景下的重要程度。
103.示例性的,词语的权重可以通过对数据库中的所有词语进行权重计算得到,例如在所有文档中出现次数最多的词语可以具有较高的权重;也可以直接查找预设的词权重文件确定词语的权重。
104.s203:根据各词语子序列中词语的词向量和权重确定各词语子序列的指纹信息,并按照各词语子序列的顺序将各词语子序列的指纹信息组成指纹信息序列。
105.可选的,词语子序列的指纹信息可以是根据词语子序列中的词向量确定的该序列对应的一串数值,指纹信息可以作为该词语子序列的唯一标识。
106.假设分词后生成的词语序列可以是:“今天真是一个好天气”,针对前2个词语组成的词语序列,最终得到的指纹信息例如可以是217293269470。
107.可选的,指纹信息序列可以是将指纹信息按照其对应的词语子序列的顺序排列得到的序列。
108.s204:采用第二滑动窗口在指纹信息序列中确定多个指纹信息子序列,并根据各指纹信息子序列的指纹信息确定各指纹信息子序列的指纹特征,其中,各指纹信息子序列中包括多个指纹信息,第二滑动窗口的长度等于第一滑动窗口的长度。
109.可选的,第二滑动窗口的长度可以等于第一滑动窗口的长度,如此可以保证文本中的每段信息都被窗口关注到,避免遗漏文本中的信息,应当理解,本技术只是作为一种优选的实施方案,当第二滑动窗口的长度等于第一滑动窗口的长度时,可以获得最少数量的指纹特征,实际执行时,第二滑动窗口也可以小于第一滑动窗口的长度。
110.示例性的,如图4所示,是本技术给出的一种第二滑动窗口在指纹信息序列上进行滑动的示意图。第二滑动窗口可以从指纹信息序列的首个指纹信息开始滑动,并将窗口内的指纹信息作为一个指纹信息子序列,图4中确定的第一个指纹信息子序列就是指纹信息1和指纹信息2所组成的子序列。
111.可选的,指纹特征可以是从指纹信息子序列中确定的能够代表当前指纹信息子序列的一个指纹信息。示例性的,可以将当前指纹信息子序列中哈希值最大的指纹信息作为该指纹信息子序列的指纹特征。
112.值得说明的是,本技术中通过采用窗口长度等于第一滑动窗口的第二滑动窗口对指纹信息序列进行遍历,能够有效的避免文本信息的遗漏,因此生成的指纹特征就可以更完整的表征文本的语义。
113.s205:对各指纹信息子序列的指纹特征分别进行分段处理,得到各指纹信息子序列的指纹特征的多个指纹分段特征,根据指纹分段特征以及预设的指纹数据库,确定待匹配文本的匹配结果。
114.可选的,指纹分段特征可以是将指纹特征按位分段得到的指纹特征的一部分。
115.示例性的,可以根据抽屉原理结合阈值对指纹特征进行分段,示例性的,假设阈值是4,就可以将指纹特征分为5段,阈值可以是判断两个指纹相似的标准,阈值是4可以代表海明距离是4。假设指纹特征是一个64位的二进制数值,那么将指纹特征分段之后,例如分为5段,其中第一段是指纹特征的0~12位,第二段是指纹特征的13~25位,第三段是指纹特征的26~38位,第四段是指纹特征的39~51位,第五段是指纹特征的52~63位。
116.可选的,可以通过图1所示的文本指纹生成模块,预先对数据库中的文档生成指纹特征,并将指纹特征进行分段处理后得到的指纹分段特征按照其分段进行存储。根据指纹特征的各指纹分段特征在指纹数据库中分别进行匹配,首先就可以确定与指纹特征匹配的指纹数据库中的至少一个指纹特征,依次对各指纹特征进行匹配,就可以确定与待匹配文本的指纹特征匹配的多个指纹特征,从而根据这些指纹特征确定与待匹配文本相似度匹配的文本。
117.值得说明的是,前述s202步骤中第一滑动窗口的长度可以根据实际的业务场景确定,作为一种可能的实施方式,可以设置三种长度的第一滑动窗口(三种长度均不大于第二滑动窗口的长度),并分别采用三种滑动窗口在词语序列上滑动,从而得到同一个词语序列的三种指纹信息。并通过第二滑动窗口根据三种指纹信息分别生成三种指纹特征,再根据三种指纹特征分别进行文本语义相似度匹配,得到待匹配文本的匹配结果,从而提高文本匹配的准确性。
118.在本技术实施例中,对待匹配文本分词得到词语序列后,采用第一滑动窗口对词语序列生成多个指纹信息,再采用第二滑动窗口对指纹信息序列生成多个指纹特征,再将指纹特征分段,并根据得到的指纹分段特征以及预设的指纹数据库,确定待匹配文本的匹配结果。第通过一滑动窗口先生成指纹信息,再通过第二滑动窗口对指纹信息序列生成指
纹特征,可以减少匹配时的指纹数量,从而降低文本匹配的复杂度,并且,本技术的指纹特征可以更全面的表征文本的整体含义,因此能够提高文本语义相似度匹配的准确性。
119.接下来对上述采用第一滑动窗口在词语序列中确定多个词语子序列,并确定各词语子序列中各词语的词向量和权重的步骤进行说明,如图5所示,上述s202步骤包括:
120.s501:采用第一滑动窗口遍历词语序列,在词语序列中确定多个词语子序列。
121.可选的,参照图3,可以采用第一滑动窗口从词语序列的首个词语开始遍历,从而确定多个词语子序列。
122.值得说明的是,第一滑动窗口在移动的过程中,每次移动的步长可以等于窗口的长度,从而保证词语子序列能够更完整的表征句子的语义,避免文本信息的遗漏。
123.s502:在预设的词向量模型文件中查找词语子序列中的词语,确定各词语子序列中各词语的词向量。
124.可选的,词向量模型文件中可以包括多个词向量,每个词向量可以对应一个或多个语义相似或相同的词语,即一组近义词可以对应一个词向量。
125.可选的,可以在词向量模型文件中查找词语子序列中的词语或该词语的近义词,从而确定其对应的词向量。
126.作为另一种可能的实施方式,如果查询不到词语的词向量,那么就可以对该词语进行哈希计算,将得到的哈希值作为该词语的词向量。示例性的,哈希计算方法可以是jenki ns hash算法,生成的哈希值是一个整型数值。
127.s503:在预设的权重文件中查找词语子序列中的词语,确定各词语子序列中各词语的权重。
128.可选的,权重文件中可以包括词向量以及词向量的权重。示例性的,权重文件可以是通用的词权重文件;或者也可以根据数据库中的文档采用加权技术(term frequency

i nverse document frequency,tf-i df)计算得到的词权重文件。权重越大,可以看作是该词语对文档的区分度越大。
129.可选的,在确定词语的词向量之后,可以在权重文件中根据词向量查找得到词向量的权重,作为该词语的权重。
130.作为另一种可能的实施方式,如果没有查询到词语的词向量,此时也不能在权重文件中查询得到词语的权重,那么就可以将权重文件中各词语的平均权重作为该词语的权重。
131.在本技术实施例中,通过词向量可以实现语义相近或相同的词语的统一标识,因此对于语义相似而所用词语不同的文本匹配具备更好的适应性。通过权重可以实现对文档中具备更高区分度的词语的重点关注,从而提高文本语义相似度匹配的效率。
132.在确定词向量和权重之后,本技术还可以根据各词语子序列中词语的词向量和权重确定各词语子序列的指纹信息,并按照各词语子序列的顺序将各词语子序列的指纹信息组成指纹信息序列,如图6所示,上述s203步骤包括:
133.s601:将各词语子序列中各词语的词向量和权重相乘,得到各词语的加权结果。
134.作为一种可能的实施方式,若在词向量模型文件中查询到了词语的词向量,并确定词向量对应的权重,那么各词语的加权结果可以由下式(1)计算得到:
135.136.其中,wvmi为该词的词向量与权值相乘的结果,为该词第j个维度的向量,mi为该词的权值,n为64。
137.作为另一种可能的实施方式,若没有在词向量模型文件中查询到词语的词向量,此时可以将词语的哈希值作为该词语的词向量,将权重文件的平均权重作为该词语的权重。此时各词语的加权结果可以由下式(2)计算得到:
[0138][0139]
其中,whmi为该词的词向量与权值相乘的结果,为0或1,mi为该词的权值,n为64。
[0140]
s602:将各词语子序列中各词语的加权结果相加并进行归一化处理,得到各词语子序列的指纹信息。
[0141]
可选的,可以将同一滑动窗口(即同一词语子序列)中在同一维度的加权结果相加,得到该词语子序列的加权和。示例性的,该步骤的数学表示可以如下式(3)所示:
[0142][0143]
其中,l1为词向量模型文件中可查询到的词向量,l2为词向量模型文件中不可查询到的词向量。
[0144]
可选的,在得到上述加权和后,可以对加权和进行降维归一化处理,将词向量在每个维度中大于0的向量值记为1,不大于0的向量值记为0,得到该词语子序列的指纹信息。
[0145]
s603:按照各词语子序列的顺序对各词语子序列的指纹信息进行排序,得到指纹信息序列。
[0146]
可选的,在得到各词语子序列的指纹信息后,可以将各指纹信息按照词语子序列的顺序进行排序,得到指纹信息序列,指纹信息序列可以是由多个连续排列的二进制的指纹信息组成。
[0147]
在本技术实施例中,通过词向量和权重生成词语子序列的指纹信息不仅能够表征句子的整体语义,还可以对于文本中区分度较大的词语赋予更高的权重,从而提高后续文本匹配的准确度。
[0148]
上述确定指纹信息序列之后,本技术还可以采用第二滑动窗口在指纹信息序列中确定多个指纹信息子序列,并根据各指纹信息子序列的指纹信息确定各指纹信息子序列的指纹特征,如图7所示,上述s204步骤包括:
[0149]
s701:采用第二滑动窗口遍历指纹信息序列,在指纹信息序列中确定多个指纹信息子序列。
[0150]
可选的,参照图4,可以采用第二滑动窗口从指纹信息序列中的第一个指纹信息开始进行遍历,第二滑动窗口的窗口长度等于第一滑动窗口的窗口长度,第二滑动窗口可以每次确定多个指纹信息作为指纹信息子序列,图4中确定的首个指纹信息子序列就是指纹信息1和指纹信息2组成的指纹信息子序列。
[0151]
s702:在各指纹信息子序列中将哈希值最大的指纹信息作为指纹信息子序列的指纹特征。
[0152]
值得说明的是,指纹信息可以是二进制的字符串,且由于指纹信息对应的词语子
序列中区分度越高的词语具有更大的权重,因此指纹信息的值越大,就可以认为其对应的词语子序列中具有更高的权重,所以可以将哈希值最大的指纹信息作为指纹信息子序列的指纹特征,这样可以减少指纹匹配时的指纹数量,从而提高文本语义相似度匹配的效率。
[0153]
在本技术中,对指纹信息序列采用第二滑动窗口得到多个指纹特征之后,还可以对各指纹信息子序列的指纹特征分别进行分段处理,得到各指纹信息子序列的指纹特征的多个指纹分段特征,根据指纹分段特征以及预设的指纹数据库,确定待匹配文本的匹配结果,如图8所示,上述s205步骤包括:
[0154]
s801:对各指纹信息子序列的指纹特征分别进行分段处理,得到各指纹信息子序列的指纹特征的多个指纹分段特征,并对各指纹分段特征添加对应的分段标识。
[0155]
可选的,可以由前述图1中的文本指纹生成模块对各指纹信息子序列的指纹特征分别进行分段处理,得到各指纹信息子序列的指纹特征的多个指纹分段特征。
[0156]
可选的,分段标识可以用于标识指纹分段特征在指纹特征中的位置。
[0157]
s802:根据分段标识和指纹分段特征在指纹数据库中查找,确定指纹信息子序列对应的相似度匹配结果。
[0158]
可选的,指纹数据库可以将相同的分段存储在同一个分区,并将该分段的分段标识作为分区的标识。
[0159]
可选的,指纹信息子序列对应的相似度匹配结果可以是分区中与该指纹分段的指纹信息子序列相似的多个指纹信息。
[0160]
可选的,指纹数据库中可以对各分区中的指纹分段特征建立倒排索引,由指纹分段特征索引到该指纹分段特征的指纹信息子序列。因此根据分段标识确定对应的分区后,就可以在该分区中对指纹分段特征进行匹配,得到分区中与该指纹分段的指纹信息子序列相似的多个指纹信息。
[0161]
s803:根据各指纹信息子序列对应的匹配结果,确定待匹配文本的相似度匹配结果。
[0162]
可选的,可以对每个指纹信息子序列执行上述s801-s802步骤,以得到各指纹信息子序列对应的匹配结果。
[0163]
示例性的,在得到各指纹信息子序列的匹配结果之后,可以根据匹配到的多个指纹信息,确定各指纹信息对应的文档,并将相似度最高的文档作为待匹配文本的相似度匹配结果。
[0164]
接下来对上述根据分段标识和指纹分段特征在指纹数据库中查找,确定指纹信息子序列对应的相似度匹配结果的步骤作进一步说明,如图9所示,上述s802步骤包括:
[0165]
s901:根据分段标识在指纹数据库中查找分段标识对应的多个待匹配指纹分段特征。
[0166]
示例性的,假设指纹分段特征的分段标识指示该指纹分段特征是指纹特征的第一段,例如指纹特征的0~12位,那么就可以在指纹数据库中查找指纹特征的0~12位所存储的分区,将该分区中的指纹分段特征确定为分段标识对应的多个待匹配指纹分段特征。
[0167]
s902:确定指纹分段特征和各待匹配指纹分段特征的哈希值,并根据哈希值确定指纹分段特征的匹配结果。
[0168]
可选的,可以首先确定指纹分段特征和分段标识指示的分区中各待匹配指纹分段
特征的哈希值,将哈希值相同的待匹配指纹分段特征作为该指纹分段特征的匹配结果。
[0169]
作为另一种可能的实施方式,也可以将指纹分段特征和分段标识指示的分区中各待匹配指纹分段特征的哈希值转换为十进制的整数,并将与指纹分段特征的整数值相同的待匹配指纹分段特征作为指纹分段特征的匹配结果。
[0170]
s903:根据指纹信息子序列对应的各指纹分段特征的匹配结果,确定指纹信息子序列对应的相似度匹配结果。
[0171]
值得说明的是,可以对每一个指纹分段特征根据上述s901-s902步骤确定匹配结果,确定各指纹分段特征的匹配结果后,可以将在指纹数据库中匹配到的指纹分段特征对应的指纹信息加载到图1所示的指纹内存容器中,以进行指纹信息子序列的匹配。
[0172]
可选的,确定各指纹分段特征的匹配结果,并将各指纹分段特征的指纹信息加载至指纹内存容器之后,可以对各指纹信息子序列中的指纹信息与指纹内存容器中的指纹信息进行匹配,匹配的方法例如可以是计算指纹信息与指纹内存容器中的指纹信息的汉明距离,将汉明距离最小的指纹信息所在的指纹信息子序列作为该指纹信息子序列对应的相似度匹配结果。
[0173]
示例性的,当依据某指纹特征检索汉明距离在小于5的其他指纹特征时,可以将该指纹分为5段,并将每段的比特串转换成相应整数,在指纹数据库的相应分区中寻找值相同的指纹分段特征,将这些指纹分段特征对应的指纹信息存入指纹内存容器中,然后逐一计算汉明距离,将汉明距离最小的指纹特征作为相似的指纹特征。
[0174]
在本技术实施例中,通过对指纹信息进行分段,并根据分段后的指纹分段特征进行相似度匹配,不仅可以实现指纹信息的分段存储,节省内存空间,同时分段匹配也大大提高了匹配的准确度。
[0175]
以下是对上述对待匹配文本进行分词,得到待匹配文本的词语序列的步骤说明,如图10所示,上述s201步骤包括:
[0176]
s1001:采用分词工具对待匹配文本进行分词,得到待匹配文本的初始词语序列。
[0177]
示例性的,可以采用结巴分词工具对待匹配文本进行分词,得到待匹配文本的初始词语序列。
[0178]
s1002:根据预设的停用词文件,从初始词语序列中删除停用词,得到待匹配文本的词语序列。
[0179]
可选的,停用词文件中可以包括预设的停用词,停用词可以是语气词及标点符号等。
[0180]
接下来结合图11对本技术的文本语义相似度匹配方法作进一步说明,如图11所示,首先可以由文本语义匹配检索系统进行初始化配置和文件的预加载,接下来用户输入待匹配文本,文本语义匹配检索系统中的预处理模块可以对待匹配文本进行分词和去停用词,并获取词语的词向量和权重,由文本指纹生成模块生成待匹配文本的指纹信息和指纹特征,并将其存入指纹内存容器,由文本指纹匹配模块根据指纹信息和指纹特征在指纹数据库中进行匹配,得到相似的文本,并将相似文本返回给用户。
[0181]
基于同一发明构思,本技术实施例中还提供了与文本语义相似度匹配方法对应的文本语义相似度匹配装置,由于本技术实施例中的装置解决问题的原理与本技术实施例上述文本语义相似度匹配方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘
述。
[0182]
参照图12所示,为本技术实施例提供的一种文本语义相似度匹配装置的示意图,所述装置包括:分词模块1201、第一确定模块1202、第二确定模块1203、第三确定模块1204以及匹配模块1205,其中:
[0183]
分词模块1201,用于对待匹配文本进行分词,得到待匹配文本的词语序列;
[0184]
第一确定模块1202,用于采用第一滑动窗口在词语序列中确定多个词语子序列,并确定各词语子序列中各词语的词向量和权重,各词语子序列中包括多个词语;
[0185]
第二确定模块1203,用于根据各词语子序列中词语的词向量和权重确定各词语子序列的指纹信息,并按照各词语子序列的顺序将各词语子序列的指纹信息组成指纹信息序列;
[0186]
第三确定模块1204,用于采用第二滑动窗口在指纹信息序列中确定多个指纹信息子序列,并根据各指纹信息子序列的指纹信息确定各指纹信息子序列的指纹特征,其中,各指纹信息子序列中包括多个指纹信息,第二滑动窗口的长度等于第一滑动窗口的长度;
[0187]
匹配模块1205,用于对各指纹信息子序列的指纹特征分别进行分段处理,得到各指纹信息子序列的指纹特征的多个指纹分段特征,根据指纹分段特征以及预设的指纹数据库,确定待匹配文本的匹配结果。
[0188]
可选的,第一确定模块1202具体用于:
[0189]
采用第一滑动窗口遍历词语序列,在词语序列中确定多个词语子序列;
[0190]
在预设的词向量模型文件中查找词语子序列中的词语,确定各词语子序列中各词语的词向量;
[0191]
在预设的权重文件中查找词语子序列中的词语,确定各词语子序列中各词语的权重。
[0192]
可选的,第二确定模块1203具体用于:
[0193]
将各词语子序列中各词语的词向量和权重相乘,得到各词语的加权结果;
[0194]
将各词语子序列中各词语的加权结果相加并进行归一化处理,得到各词语子序列的指纹信息;
[0195]
按照各词语子序列的顺序对各词语子序列的指纹信息进行排序,得到指纹信息序列。
[0196]
可选的,第三确定模块1204具体用于:
[0197]
采用第二滑动窗口遍历指纹信息序列,在指纹信息序列中确定多个指纹信息子序列;
[0198]
在各指纹信息子序列中将哈希值最大的指纹信息作为指纹信息子序列的指纹特征。
[0199]
可选的,匹配模块1205具体用于:
[0200]
对各指纹信息子序列的指纹特征分别进行分段处理,得到各指纹信息子序列的指纹特征的多个指纹分段特征,并对各指纹分段特征添加对应的分段标识;
[0201]
根据分段标识和指纹分段特征在指纹数据库中查找,确定指纹信息子序列对应的相似度匹配结果;
[0202]
根据各指纹信息子序列对应的匹配结果,确定待匹配文本的相似度匹配结果。
[0203]
可选的,匹配模块1205还具体用于:
[0204]
根据分段标识在指纹数据库中查找分段标识对应的多个待匹配指纹分段特征;
[0205]
确定指纹分段特征和各待匹配指纹分段特征的哈希值,并根据哈希值确定指纹分段特征的匹配结果;
[0206]
根据指纹信息子序列对应的各指纹分段特征的匹配结果,确定指纹信息子序列对应的相似度匹配结果。
[0207]
可选的,分词模块1201具体用于:
[0208]
采用分词工具对待匹配文本进行分词,得到所述待匹配文本的初始词语序列;
[0209]
根据预设的停用词文件,从所述初始词语序列中删除停用词,得到所述待匹配文本的词语序列。
[0210]
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
[0211]
本技术实施例通过第一滑动窗口先生成指纹信息,再通过第二滑动窗口对指纹信息序列生成指纹特征,可以减少匹配时的指纹数量,从而降低文本匹配的复杂度,并且,本技术的指纹特征可以更全面的表征文本的整体含义,因此能够提高文本语义相似度匹配的准确性。
[0212]
本技术实施例还提供了一种电子设备,如图13所示,为本技术实施例提供的电子设备结构示意图,包括:处理器1301、存储器1302和总线。所述存储器1302存储有所述处理器1301可执行的机器可读指令(比如,图12中的装置中分词模块1201、第一确定模块1202、第二确定模块1203以及第三确定模块1204对应的执行指令等),当计算机设备运行时,所述处理器1301与所述存储器1302之间通过总线通信,所述机器可读指令被所述处理器1301执行时执行上述文本语义相似度匹配方法的处理。
[0213]
本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述文本语义相似度匹配方法的步骤。
[0214]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本技术中不再赘述。在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0215]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:
u盘、移动硬盘、只读存储器(rom,read-on ly memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0216]
以上仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1