一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种相似文档检索方法、装置、电子设备及存储介质与流程

2022-03-02 01:02:41 来源:中国专利 TAG:


1.本发明涉及文档检索技术领域,尤其涉及一种相似文档检索方法、装置、电子设备及存储介质。


背景技术:

2.随着信息社会的推进,越来越多的文档(如学术论文、小说、新闻等)以二进制的形式存储到计算机硬盘之类的存储介质上,即使文档数量增长的很快,但是通过数据库相关技术,计算机依然可以从庞大的文档库中快速地检索出符合特定条件(比如出现了特定标题或特定关键词)的文档。然而,仅仅检索标题或者关键词是不足以支撑所有应用场景的,有时候需要检索出目标文档的相似文档集合,比如论文查重系统需要快速检测出和目标论文语义上相似的论文集合,自媒体发布审核系统需要检测一篇标注原创的文章是否真的是原创,语料库构建的过程中需要剔除相似的文档。而如何从庞大的文档库中快速检索出目标文档的相似文档集合却是一个难题,要解决这个难题首先需要有可以量化文档相似度的计算方法。
3.早期的文档相似度计算方法使用词袋模型作为特征提取方法,将文档转换成一个数字组成的向量,一般该向量会使用逆文档频率作为加权因子,然后通过计算两个向量之间的余弦相似度来确定两篇文档之间的相似度,词袋模型的缺点是只考虑字词出现的次数而不考虑字词之间的顺序,因此会忽略字词顺序带来的语义信息。
4.随着文档特征提取的技术得到了进一步的发展,有种名为doc2vec的方法被提出来,该方法可以将文档转换为一个分布式记忆(distributed memory)向量,因为使用该文档向量和文档中任意一段上文结合就足以预测出对应的下文,就好像该向量记住了整个文档一样,所以形象地将其称为分布式记忆文档向量。
5.然而,现有的doc2vec方法主要侧重于改进文档的表示方式,使得文档表示向量之间的相似度与文档语义上的相似度尽可能的一致,但是如何从庞大的文档库中快速检索出相似文档这一难题并没有得到很好的解决。
6.现有技术实现大规模相似文档检索依靠的是关键词索引,然而依靠关键词检索系统无法满足原创性检测等实际应用的需求,这类应用需要能够检测出语义上相似的文档。doc2vec技术虽然可以通过文档向量之间的距离来反映文档语义上的相似度,但是在该技术中并没有提到如何在常数时间内从庞大的文档库中检索出相似的文档,有关的开源实现中也是计算目标文档与文档库中所有文档的相似度,然后返回满足指定要求的相似文档集合,这种方法需要耗费大量的时间成本,效率过低。


技术实现要素:

7.本发明提供了一种相似文档检索方法、装置、电子设备及存储介质,用于解决现有的相似文档检索方法时间成本高,效率低的技术问题。
8.本发明提供了一种相似文档检索方法,包括:
9.获取训练文档库;所述训练文档库包括多篇文档,每篇文档具有对应的文档id;
10.根据所述文档构建训练数据集;
11.采用所述训练数据集训练神经网络,得到目标神经网络;
12.接收目标文档,采用所述目标文档生成目标训练数据集;
13.将所述目标训练数据集输入所述目标神经网络,得到所述目标文档的目标向量;
14.计算所述目标向量与预设数据库中的对比向量之间的差值,并将差值小于预设阈值的对比向量对应的文档作为相似文档。
15.可选地,所述根据所述文档构建训练数据集的步骤,包括:
16.将每篇所述文档划分为多个分词;每个分词具有对应的分词id;
17.采用所有所述文档及每个所述文档对应的分词构建训练数据集。
18.可选地,所述将每篇所述文档划分为多个分词的步骤,包括:
19.将每篇所述文档中的连续空格合并为单一空格,得到预处理文档;
20.将所述预处理文档划分为多个分词。
21.可选地,所述采用所有所述文档及每个所述文档对应的分词构建训练数据集的步骤,包括:
22.通过预设的滑动窗口,根据所述文档中分词的排列顺序,从所述文档的分词中提取出多个第一分词;
23.以所述滑动窗口中最后一个第一分词的分词id为输出,以所述滑动窗口中除最后一个第一分词外的第一分词的分词id及对应的文档id为输入,生成训练数据;
24.按照所述文档中分词的排列顺序移动所述滑动窗口,并返回通过预设的滑动窗口,根据所述文档中分词的排列顺序,从所述文档中提出多个第一分词的步骤,直至遍历完所述文档中的所有分词;
25.采用得到的所有训练数据生成训练数据集。
26.可选地,所述神经网络包括嵌入层、拼接层、全连接层和soft层;所述采用所述训练数据集训练神经网络,得到目标神经网络的步骤,包括:
27.将作为输入的第一分词的分词id对应的分词向量拼接成为分词矩阵;
28.将所述分词矩阵与预设第一参数矩阵相乘,得到所述嵌入层的第一分支输出;
29.将所述第一分词对应的文档id对应的文档向量与预设第二参数矩阵相乘,得到所述嵌入层的第二分支输出;
30.通过所述拼接层将所述第一分支输出和所述第二分支输出进行拼接,得到所述拼接成的拼接输出向量;
31.将所述全连接层的第三参数矩阵与所述拼接输出向量相乘,得到全连接层输出;
32.通过softmax层对所述全连接层输出进行softmax变换,得到所述神经网络的目标输出向量;
33.以作为输出的第一分词的分词id构建目标向量;
34.计算所述目标输出向量和所述目标向量之间的损失值;
35.采用所述损失值更新所述第一参数矩阵、所述第二参数矩阵和所述第三参数矩阵;
36.判断当前训练次数是否等于预设次数阈值;
37.若否,返回将作为输入的第一分词的分词id对应的分词向量拼接成为分词矩阵的步骤;
38.若是,基于更新后的第一参数矩阵、第二参数矩阵、第三参数矩阵构建目标神经网络。
39.可选地,所述目标文档具有多个目标分词;所述接收目标文档,采用所述目标文档生成目标训练数据集的步骤,包括:
40.接收目标文档,通过所述滑动窗口,根据所述目标文档中目标分词的排列顺序,从所述目标文档的目标分词中提取出多个第二分词;
41.以所述滑动窗口中最后一个第二分词的分词id为输出,以所述滑动窗口中除最后一个第二分词外的第二分词的分词id为输入,生成目标训练数据;
42.按照所述目标文档中目标分词的排列顺序移动所述滑动窗口,并返回通过所述滑动窗口,根据所述目标文档中目标分词的排列顺序,从所述目标文档的目标分词中提取出多个第二分词的步骤,直至遍历完所述目标文档中的所有目标分词;
43.采用得到的所有目标训练数据生成目标训练数据集。
44.本发明还提供了一种相似文档检索装置,包括:
45.获取模块,用于获取训练文档库;所述训练文档库包括多篇文档,每篇文档具有对应的文档id;
46.训练数据集构建模块,用于根据所述文档构建训练数据集;
47.目标神经网络训练模块,用于采用所述训练数据集训练神经网络,得到目标神经网络;
48.目标训练数据集生成模块,用于接收目标文档,采用所述目标文档生成目标训练数据集;
49.目标向量获取模块,用于将所述目标训练数据集输入所述目标神经网络,得到所述目标文档的目标向量;
50.相似文档获取模块,用于计算所述目标向量与预设数据库中的对比向量之间的差值,并将差值小于预设阈值的对比向量对应的文档作为相似文档。
51.可选地,所述训练数据集构建模块,包括:
52.分词划分子模块,用于将每篇所述文档划分为多个分词;每个分词具有对应的分词id;
53.训练数据集构建子模块,用于采用所有所述文档及每个所述文档对应的分词构建训练数据集。
54.本发明还提供了一种电子设备,所述设备包括处理器以及存储器:
55.所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
56.所述处理器用于根据所述程序代码中的指令执行如上任一项所述的相似文档检索方法。
57.本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行如上任一项所述的相似文档检索方法。
58.从以上技术方案可以看出,本发明具有以下优点:本发明公开了一种相似文档检索方法,并具体公开了:获取训练文档库;训练文档库包括多篇文档,每篇文档具有对应的
文档id;根据文档构建训练数据集;采用训练数据集训练神经网络,得到目标神经网络;接收目标文档,采用目标文档生成目标训练数据集;采用目标神经网络训练目标训练数据集,得到目标文档的目标向量;计算目标向量与预设数据库中的对比向量之间的差值,并将差值小于预设阈值的对比向量对应的文档作为相似文档。从而降低了相似文档检索的时间成本,提高了检索效率。
附图说明
59.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
60.图1为本发明实施例提供的一种相似文档检索方法的步骤流程图;
61.图2为本发明另一实施例提供的一种相似文档检索方法的步骤流程图;
62.图3为本发明实施例提供的一种相似文档检索装置的结构框图。
具体实施方式
63.本发明实施例提供了一种相似文档检索方法、装置、电子设备及存储介质,用于解决现有的相似文档检索方法时间成本高,效率低的技术问题。
64.为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
65.请参阅图1,图1为本发明实施例提供的一种相似文档检索方法的步骤流程图。
66.本发明提供的一种相似文档检索方法,具体可以包括以下步骤:
67.步骤101,获取训练文档库;训练文档库包括多篇文档,每篇文档具有对应的文档id;
68.在本发明实施例中,可以通过爬虫在网上抓取大量的文档作为训练文档库来作为后续进行神经网络训练的样本,其中,每个文档具有对应的文档id。
69.步骤102,根据文档构建训练数据集;
70.在实际应用中,在获取到训练文档库后,可以从中提取可用于神经网络训练的特征,来构建训练数据集。
71.步骤103,采用训练数据集训练神经网络,得到目标神经网络;
72.神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
73.在构建后训练数据集后,可以采用训练数据集来训练神经网络,训练数据集中包含了神经网络需要的输入数据和实际的输出数据,通过在神经网络中输入输入数据训练得到预测的输出数据后,将预测的输出数据与实际输出数据进行比较,从而调整神经网络的
参数,通过对神经网络参数的不断调整,来得到已训练后的目标神经网络。
74.步骤104,接收目标文档,采用目标文档生成目标训练数据集;
75.在训练得到目标神经网络后,可以将实际需要进行相似性检索的目标文档进行处理,得到相应的目标训练数据集。以从目标训练数据集获取相应的符合目标神经网络要求的输入数据。
76.步骤105,将目标训练数据集输入目标神经网络,得到目标文档的目标向量;
77.通过目标神经网络来训练目标文档,可以得到向量形式的输出数据。
78.步骤106,计算目标向量与预设数据库中的对比向量之间的差值,并将差值小于预设阈值的对比向量对应的文档作为相似文档。
79.将该目标向量与预设数据库中的对比向量进行对比,计算两者之间的差值,将差值小于预设阈值的对比向量对应的文档收集起来,即可以得到目标文档的相似文档的集合。
80.需要说明的是,在实际应用中,进行相似文档检索一般具有偏向性,比如在已经发表的学术论文集合中进行检索等,因此为了减少检索的对象,在本发明实施例中,可以将所要检索的范围内的文档收集起来,存放进数据库中,并通过上述神经网络生成相应的对比向量。
81.本发明公开了一种相似文档检索方法,并具体公开了:获取训练文档库;训练文档库包括多篇文档,每篇文档具有对应的文档id;根据文档构建训练数据集;采用训练数据集训练神经网络,得到目标神经网络;接收目标文档,采用目标文档生成目标训练数据集;采用目标神经网络训练目标训练数据集,得到目标文档的目标向量;计算目标向量与预设数据库中的对比向量之间的差值,并将差值小于预设阈值的对比向量对应的文档作为相似文档。从而降低了相似文档检索的时间成本,提高了检索效率。
82.请参阅图2,图2为本发明另一实施例提供的一种相似文档检索方法的步骤流程图。具体可以包括以下步骤:
83.步骤201,获取训练文档库;训练文档库包括多篇文档,每篇文档具有对应的文档id;
84.步骤202,将每篇文档划分为多个分词;每个分词具有对应的分词id;
85.在本发明实施例中,可以通过将每篇文档进行分词处理的形式,以作为后续生成训练数据集的基础。
86.在一个示例中,步骤202可以包括以下子步骤:
87.s21,将每篇文档中的连续空格合并为单一空格,得到预处理文档;
88.s22,将预处理文档划分为多个分词。
89.在实际应用中,训练文档库中的文档可能是从不同平台采集到的,因此需要对其进行预处理,以得到结构相同的文档,其中,预处理的步骤可以包括:将连续空格合并为单一空格,从而得到预处理文档。
90.将文档通过分词技术进行分词处理,已得到每篇文档的分词,其中,每个分词都有其对应的一个id。需要说明的是,本发明不对分词技术做具体限制,本领域技术人员可以选择任意一种分词技术来对文档进行分词处理。
91.步骤203,采用所有文档及每个文档对应的分词构建训练数据集;
92.在实际应用中,在获取到训练文档库后,可以从中提取可用于神经网络训练的特征,来构建训练数据集。
93.在一个示例中,步骤203可以包括以下子步骤:
94.s31,通过预设的滑动窗口,根据文档中分词的排列顺序,从文档的分词中提取出多个第一分词;
95.s32,以滑动窗口中最后一个第一分词的分词id为输出,以滑动窗口中除最后一个第一分词外的第一分词的分词id及对应的文档id为输入,生成训练数据;
96.s33,按照文档中分词的排列顺序移动滑动窗口,并返回通过预设的滑动窗口,根据文档中分词的排列顺序,从文档中提出多个第一分词的步骤,直至遍历完文档中的所有分词;
97.s34,采用得到的所有训练数据生成训练数据集。
98.在实际应用中,训练文档库中的每一篇文档可以对应多条训练数据,本发明采用滑动窗口的方式在每个预处理文档上构建训练数据集的输入和输出,例如,假设滑动窗口的大小为5,则文档的前四个分词的id和该文档的id可以作为第一条训练数据的输入,第五个分词的id作为第一条训练数据的输出,接着滑动窗口可以向右滑动一个分词,则第二个分词到第五个分词的id和该文档的id可以作为第二条训练数据的输入,第六个词可以作为第二条训练数据的输出。以此类推,直到文档的最后一个词为止。对每一个文档重复上述的操作,可以得到由整个训练文档库生成的训练数据集。
99.步骤204,采用训练数据集训练神经网络,得到目标神经网络;
100.在构建后训练数据集后,可以采用训练数据集来训练神经网络,训练数据集中包含了神经网络需要的输入数据和实际的输出数据,通过在神经网络中输入输入数据训练得到预测的输出数据后,将预测的输出数据与实际输出数据进行比较,从而调整神经网络的参数,通过对神经网络参数的不断调整,来得到已训练后的目标神经网络。
101.在一个示例中,步骤204可以包括以下子步骤:
102.s401,将作为输入的第一分词的分词id对应的分词向量拼接成为分词矩阵;
103.s402,将分词矩阵与预设第一参数矩阵相乘,得到嵌入层的第一分支输出;
104.s403,将第一分词对应的文档id对应的文档向量与预设第二参数矩阵相乘,得到嵌入层的第二分支输出;
105.s404,通过拼接层将第一分支输出和第二分支输出进行拼接,得到拼接成的拼接输出向量;
106.s405,将全连接层的第三参数矩阵与拼接输出向量相乘,得到全连接层输出;
107.s406,通过softmax层对全连接层输出进行softmax变换,得到神经网络的目标输出向量;
108.s407,以作为输出的第一分词的分词id构建目标向量;
109.s408,计算目标输出向量和目标向量之间的损失值;
110.s409,采用损失值更新第一参数矩阵、第二参数矩阵和第三参数矩阵;
111.s410,判断当前训练次数是否等于预设次数阈值;
112.s411,若否,返回将作为输入的第一分词的分词id对应的分词向量拼接成为分词矩阵的步骤;
113.s412,若是,基于更新后的第一参数矩阵、第二参数矩阵、第三参数矩阵构建目标神经网络。
114.在实际应用中,为了训练神经网络,首先需要定义想要的词向量和文档向量的大小,本发明实施例中假设词向量大小为q,文档向量大小为p,基于此,构建一个神经网络,并基于doc2vec中提出的方法训练该神经网络,具体地,一个训练步的流程如下:
115.神经网络的输入是四个分词id转换而成的one-hot向量,即分词向量和一个文档id转换而来的one-hot向量,即文档向量(one-hot向量的每一个分量都对应一个唯一的id,要将id转换为one-hot向量,只需使id对应的分量取值为1,其余部分取值为0即可),假设一共有m个分词,则分词对应的one-hot向量大小为m,假设一共有n篇文档,则文档对应的one-hot向量大小为n。
116.神经网络的第一层是嵌入层,有2个分支,设第一个分支的第一矩阵参数为w1,其大小为q*m,输入表示为x
11
,是四个分词对应的one-hot向量拼接而成的一个分词矩阵,其大小为m*4,将w1和x
11
进行矩阵相乘后,可以得到该分支的第一分支输出,将其表示为x
21
,是一个q*4的矩阵;第二个分支的第二参数矩阵可以表示为w2,其大小为p*n,输入表示为x
12
,是文档对应的one-hot向量,其大小为n*1,w2和x
12
进行矩阵相乘后,可以得到该分支的第二分支输出,此处将其表示为x
22
,是一个p*1的向量。
117.神经网络的第二层是拼接层,可以将第一分支输出x
21
和第二分支输出x
22
拼接到一起,得到该层输出的拼接输出向量x2,是一个(4q p)*1的向量。
118.神经网络的第三层是全连接层,该层的第三参数矩阵为w3,其大小为n*(4q p),输入是x2,w3和x2进行矩阵相乘运算得到全连接层输出x3,是一个n*1的向量。
119.神经网络的最后一层是softmax层,对x3进行softmax变换,得到神经网络的目标输出向量x4。因为softmax变换的特性,变换后得到的x4,其每一个分量的取值区间为[0,1],且所有分量的值加起来后等于1。
[0120]
根据目标输出的分词id构建one-hot向量作为目标向量,作为神经网络学习的目标,该目标是一个大小为n*1的向量y,用目标向量y和神经网络输出的目标输出向量x4计算出来的交叉熵作为损失值,结合损失值和梯度下降方法更新第一参数矩阵w1、第二参数矩阵w2、第三参数矩阵w3,其中,第一参数矩阵、第二参数矩阵和第三参数矩阵的梯度可以用反向传播方法得到,具体可参考现有的反向传播方法,此处不再赘述。
[0121]
当整个训练数据集都运算过一次后,神经网络便完成了一轮训练,在本发明实施例中,可以对神经网络进行多轮训练,当多轮训练都完成后,便可以根据最后更新得到的第一参数矩阵、第二参数矩阵和第三参数矩阵构建目标神经网络。
[0122]
步骤205,接收目标文档,采用目标文档生成目标训练数据集;
[0123]
在完成目标神经网络的训练后,便可以通过目标神经网络来训练得到任意文档的目标向量。同理,首先需要生成目标文档的目标训练数据集。
[0124]
在一个示例中,步骤205可以包括以下子步骤:
[0125]
s51,接收目标文档,通过滑动窗口,根据目标文档中目标分词的排列顺序,从目标文档的目标分词中提取出多个第二分词;
[0126]
s52,以滑动窗口中最后一个第二分词的分词id为输出,以滑动窗口中除最后一个第二分词外的第二分词的分词id为输入,生成目标训练数据;
[0127]
s53,按照目标文档中目标分词的排列顺序移动滑动窗口,并返回通过滑动窗口,根据目标文档中目标分词的排列顺序,从目标文档的目标分词中提取出多个第二分词的步骤,直至遍历完目标文档中的所有目标分词;
[0128]
s54,采用得到的所有目标训练数据生成目标训练数据集。
[0129]
在具体实现中,可以通过训练目标神经网络时采用的滑动窗口,根据目标文档中的目标分词的排列顺序,从目标文档的目标分词中提取出多个第二分词,然后以滑动窗口中最后一个第二分词的分词id为输出,以滑动窗口中除最后一个第二分词外的第二分词的分词id作为输入,来生成目标训练数据。最后按照目标文档中的目标分词的排列顺序移动滑动窗口,重复上述操作,直至遍历完目标文档中的所有目标分词,得到的所有目标训练数据的集合便是目标文档的目标训练数据集。
[0130]
步骤206,将目标训练数据集输入目标神经网络,得到目标文档的目标向量;
[0131]
需要注意的是,在针对目标文档进行训练时,目标文档是没有id的,因此构建训练集时需要忽略文档id部分;接着基于上述神经网络的训练流程,对当前的训练流程进行一些调整,作为此时的训练流程,调整如下:
[0132]
神经网络的输入不再包含文档id对应的文档向量;嵌入层中目标文档相关的分支仅保留一个x
22
,且x
22
现在是作为目标神经网络的参数而存在,这时候w2相关的运算已经不存在了;调整后的整个目标神经网络中,将w1和w3当作不变的常数项;计算出的损失值和梯度下降方法结合,用于更新目标神经网络中仅存的参数x
22
。由于只有一篇文档,而且可更新的参数仅仅是一个p*1的向量,因此目标文档的训练时间会比较短,完成后便可得到目标文档的目标向量。
[0133]
步骤207,计算目标向量与预设数据库中的对比向量之间的差值,并将差值小于预设阈值的对比向量对应的文档作为相似文档。
[0134]
在得到目标文档的目标向量后,可以将其与预设数据库中的对比向量进行比较,查询跟目标向量各个分量之间的差值都小于预设阈值d的文档,便可以得到目标文档的相似文档集合。其中,d是一个超参数,可以根据所使用的文档库进行优化调整,此处不作具体限制。
[0135]
需要说明的是,为了有针对性进行相似性检索,可以将收集到的不想被重复的文档集合(如已经发表的学术论文集合)插入到数据库中,具体可以将每篇文档的文档id和字符id存储在同一张表中,然后计算这些新文档的向量,并将得到的向量插入一张对比表中,该对比表对应p 1个字段,一个字段存放文档的id,另外p个字段对应文档向量的p个分量的值。
[0136]
本发明公开了一种相似文档检索方法,并具体公开了:获取训练文档库;训练文档库包括多篇文档,每篇文档具有对应的文档id;根据文档构建训练数据集;采用训练数据集训练神经网络,得到目标神经网络;接收目标文档,采用目标文档生成目标训练数据集;采用目标神经网络训练目标训练数据集,得到目标文档的目标向量;计算目标向量与预设数据库中的对比向量之间的差值,并将差值小于预设阈值的对比向量对应的文档作为相似文档。从而降低了相似文档检索的时间成本,提高了检索效率。
[0137]
请参阅图3,图3为本发明实施例提供的一种相似文档检索装置的结构框图。
[0138]
本发明实施例提供了一种相似文档检索装置,包括:
[0139]
获取模块301,用于获取训练文档库;训练文档库包括多篇文档,每篇文档具有对应的文档id;
[0140]
训练数据集构建模块302,用于根据文档构建训练数据集;
[0141]
目标神经网络训练模块303,用于采用训练数据集训练神经网络,得到目标神经网络;
[0142]
目标训练数据集生成模块304,用于接收目标文档,采用目标文档生成目标训练数据集;
[0143]
目标向量获取模块305,用于将目标训练数据集输入目标神经网络,得到目标文档的目标向量;
[0144]
相似文档获取模块306,用于计算目标向量与预设数据库中的对比向量之间的差值,并将差值小于预设阈值的对比向量对应的文档作为相似文档。
[0145]
在本发明实施例中,训练数据集构建模块302,包括:
[0146]
分词划分子模块,用于将每篇文档划分为多个分词;每个分词具有对应的分词id;
[0147]
训练数据集构建子模块,用于采用所有文档及每个文档对应的分词构建训练数据集。
[0148]
在本发明实施例中,分词划分子模块,包括:
[0149]
合并单元,用于将每篇文档中的连续空格合并为单一空格,得到预处理文档;
[0150]
分词划分单元,用于将预处理文档划分为多个分词。
[0151]
在本发明实施例中,训练数据集构建子模块,包括:
[0152]
第一分词提取单元,用于通过预设的滑动窗口,根据文档中分词的排列顺序,从文档的分词中提取出多个第一分词;
[0153]
训练数据生成单元,用于以滑动窗口中最后一个第一分词的分词id为输出,以滑动窗口中除最后一个第一分词外的第一分词的分词id及对应的文档id为输入,生成训练数据;
[0154]
返回单元,用于按照文档中分词的排列顺序移动滑动窗口,并返回通过预设的滑动窗口,根据文档中分词的排列顺序,从文档中提出多个第一分词的步骤,直至遍历完文档中的所有分词;
[0155]
训练数据集生成单元,用于采用得到的所有训练数据生成训练数据集。
[0156]
在本发明实施例中,神经网络包括嵌入层、拼接层、全连接层和soft层;目标神经网络训练模块303,包括:
[0157]
分词矩阵拼接子模块,用于将作为输入的第一分词的分词id对应的分词向量拼接成为分词矩阵;
[0158]
第一分支输出获取子模块,用于将分词矩阵与预设第一参数矩阵相乘,得到嵌入层的第一分支输出;
[0159]
第二分支输出获取子模块,用于将第一分词对应的文档id对应的文档向量与预设第二参数矩阵相乘,得到嵌入层的第二分支输出;
[0160]
拼接输出向量获取子模块,用于通过拼接层将第一分支输出和第二分支输出进行拼接,得到拼接成的拼接输出向量;
[0161]
全连接成输出获取子模块,用于将全连接层的第三参数矩阵与拼接输出向量相
乘,得到全连接层输出;
[0162]
目标输出向量获取子模块,用于通过softmax层对全连接层输出进行softmax变换,得到神经网络的目标输出向量;
[0163]
目标向量构建子模块,用于以作为输出的第一分词的分词id构建目标向量;
[0164]
损失值计算子模块,用于计算目标输出向量和目标向量之间的损失值;
[0165]
更新子模块,用于采用损失值更新第一参数矩阵、第二参数矩阵和第三参数矩阵;
[0166]
判断子模块,用于判断当前训练次数是否等于预设次数阈值;
[0167]
第一返回子模块,用于若否,返回将作为输入的第一分词的分词id对应的分词向量拼接成为分词矩阵的步骤;
[0168]
目标神经网络构建子模块,用于若是,基于更新后的第一参数矩阵、第二参数矩阵、第三参数矩阵构建目标神经网络。
[0169]
在本发明实施例中,目标文档具有多个目标分词;目标训练数据集生成模块304,包括:
[0170]
第二分词提取子模块,用于接收目标文档,通过滑动窗口,根据目标文档中目标分词的排列顺序,从目标文档的目标分词中提取出多个第二分词;
[0171]
目标训练数据获取子模块,用于以滑动窗口中最后一个第二分词的分词id为输出,以滑动窗口中除最后一个第二分词外的第二分词的分词id为输入,生成目标训练数据;
[0172]
第二返回子模块,用于按照目标文档中目标分词的排列顺序移动滑动窗口,并返回通过滑动窗口,根据目标文档中目标分词的排列顺序,从目标文档的目标分词中提取出多个第二分词的步骤,直至遍历完目标文档中的所有目标分词;
[0173]
目标训练数据集获取子模块,用于采用得到的所有目标训练数据生成目标训练数据集。
[0174]
本发明实施例还提供了一种电子设备,设备包括处理器以及存储器:
[0175]
存储器用于存储程序代码,并将程序代码传输给处理器;
[0176]
处理器用于根据程序代码中的指令执行本发明实施例的相似文档检索方法。
[0177]
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行本发明实施例的相似文档检索方法。
[0178]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0179]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0180]
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0181]
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些
计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0182]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0183]
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0184]
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0185]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0186]
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献