CN111143400A - 一种全栈式检索方法、系统、引擎及电子设备 - Google Patents
一种全栈式检索方法、系统、引擎及电子设备 Download PDFInfo
- Publication number
- CN111143400A CN111143400A CN201911366462.4A CN201911366462A CN111143400A CN 111143400 A CN111143400 A CN 111143400A CN 201911366462 A CN201911366462 A CN 201911366462A CN 111143400 A CN111143400 A CN 111143400A
- Authority
- CN
- China
- Prior art keywords
- retrieval
- semantic
- image
- search
- mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 239000013598 vector Substances 0.000 claims abstract description 205
- 238000003062 neural network model Methods 0.000 claims abstract description 26
- 230000014509 gene expression Effects 0.000 claims description 36
- 238000012549 training Methods 0.000 claims description 25
- 239000000284 extract Substances 0.000 claims description 9
- 238000013135 deep learning Methods 0.000 claims description 7
- 238000013461 design Methods 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 230000011218 segmentation Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/243—Natural language query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2448—Query languages for particular applications; for extensibility, e.g. user defined types
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种全栈式检索的方法、系统、引擎及电子设备,首先基于ElasticSearch设计向量检索插件,然后利用向量检索插件在ElasticSearch中扩展出图像字段类型和语义字段类型,根据神经网络模型所训练出的图像网络模型提取多个图像的图像特征向量并存至图像字段,根据神经网络模型所训练出的语义网络模型提取文本数据的语义特征向量并存至语义字段,图像字段、语义字段和ElasticSearch所提供的原始检索字段,共同构成检索数据库结构,以创建检索数据库,当用户进行检索时,可设置不同的检索条件,通过向量检索插件在检索数据库中以布尔检索方式、图像检索方式和语义检索方式中的至少一种检索方式进行检索,实现了将布尔检索方式、图像检索方式和语义检索方式结合起来以支持海量数据的混合全栈检索。
Description
技术领域
本发明涉及检索领域,尤其涉及一种全栈式检索方法、系统、引擎及电子设备。
背景技术
检索技术主要应用在非结构化数据的场景居多,非结构化数据主要涉及文本、图像等,目前的检索引擎一般只能支持单一数据类型,如:全文检索引擎ElasticSearch、Solr等,是比较专业和流行的全文检索引擎,且图像检索引擎目前没有主流的开源实现,只是在某些专业领域或互联网公司有特定应用场景的以图搜图的检索引擎。
基于语义的检索更是少之又少,语义检索方式是指输入一段文本,自动在检索库中根据输入文本内容的语义检索出与检索文本语义最接近的数据,按照理解语义相近程度排序。
而且随着大数据技术的发展,业务系统所产生的数据量越来越大,数据存储形式种类增加,一条业务数据既包含结构化数据,也包含图像和大文本这样的非结构化数据。如果在结构化数据中查询的同时,希望加入图像条件、全文检索条件、文本语义条件同时检索,或能够随意组合检索,目前,还没有成熟产品能将布尔检索方式、图像检索方式和语义检索方式这三种检索方式结合在一起,以支持海量数据的混合全栈检索。
因此,如何将布尔检索方式、图像检索方式和语义检索方式结合起来以支持海量数据的混合全栈检索是是业内亟待解决的技术问题。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种全栈式检索的方法、系统、引擎及电子设备。
本发明的一种全栈式检索方法技术方案如下:
S1、基于ElasticSearch设计向量检索插件;
S2、利用所述向量检索插件在ElasticSearch中扩展出与图像字段对应的图像字段类型,与语义字段对应的语义字段类型;
S3、通过神经网络模型所训练出的图像网络模型提取多个图像的图像特征向量,并将各所述图像特征向量以所述图像字段类型储存至所述图像字段;
通过神经网络模型所训练出的语义网络模型提取各文本数据的语义特征向量,并将各所述语义特征向量以所述语义字段类型储存至所述语义字段;
由所述图像字段、所述语义字段和ElasticSearch所提供的原始检索字段共同构成检索数据库结构,以创建检索数据库;
S4、利用所述向量检索插件根据用户的检索条件在所述检索数据库中以布尔检索方式、图像检索方式和语义检索方式中的至少一种检索方式进行检索。
本发明的一种全栈式检索方法的有益效果是:
基于ElasticSearch就能同时实现布尔检索方式、图像检索方式和语义检索方式这三种较大差异的检索方式,当用户进行检索时,可设置不同的检索条件,通过向量检索插件在检索数据库中以布尔检索方式、图像检索方式和语义检索方式中的至少一种检索方式进行检索,实现了将布尔检索方式、图像检索方式和语义检索方式结合起来以支持海量数据的混合全栈检索,从而能满足用户的多种不同的检索需求。
本发明的一种全栈式检索系统的技术方案如下:
包括插件扩展模块、入库模块和检索模块;
所述插件扩展模块基于ElasticSearch设计向量检索插件,且利用所述向量检索插件在ElasticSearch中扩展出与图像字段对应的图像字段类型,与语义字段对应的语义字段类型;
所述入库模块通过神经网络模型所训练出的图像网络模型提取多个图像的图像特征向量,并将各所述图像特征向量以图像字段类型储存至所述图像字段;
所述入库模块还通过神经网络模型所训练出的语义网络模型提取各文本数据的语义特征向量,并将各所述语义特征向量以语义字段类型储存至所述语义字段;
由所述图像字段、所述语义字段和ElasticSearch所提供的原始检索字段共同构成检索数据库结构,以创建检索数据库;
所述检索模块利用所述向量检索插件根据用户的检索条件在所述检索数据库中以布尔检索方式、图像检索方式和语义检索方式中的至少一种检索方式进行检索。
本发明的一种全栈式检索系统的有益效果如下:
基于ElasticSearch就能同时实现布尔检索方式、图像检索方式和语义检索方式这三种较大差异的检索方式,当用户进行检索时,检索模块根据用户设定的检索条件,通过向量检索插件在检索数据库中以布尔检索方式、图像检索方式和语义检索方式中的至少一种检索方式进行检索,实现了将布尔检索方式、图像检索方式和语义检索方式结合起来以支持海量数据的混合全栈检索,从而能满足用户的多种不同的检索需求。
本发明的一种全栈式检索引擎的技术方案为:所述引擎用于执行上述任一项所述的一种全栈式检索方法。
本发明的一种全栈式检索引擎的有益效果是:采用单一引擎即可实现布尔检索方式、图像检索方式和语义检索方式相结合的混合全栈检索。
本发明的一种电子设备的技术方案为:包括存储器、处理器以及上述的一种全栈式检索引擎,所述引擎安装在所述存储器上并在所述处理器上运行。
本发明的一种电子设备的有益效果是:实现了一种支持布尔检索方式、图像检索方式和语义检索方式相结合的混合全栈检索的电子设备。
附图说明
图1为本发明实施例的一种全栈式检索的方法的流程示意图;
图2为利用本发明实施例的一种全栈式检索的方法进行专利检索的逻辑示意图之一;
图3为通过深度学习的神经网络模型得到图像网络模型和所述语义网络模型的模型训练的示意图;
图4为利用本发明实施例的一种全栈式检索的方法进行数据入库及检索的逻辑示意图之一;
图5为单一使用布尔检索方式的示意图;
图6为单一使用图像检索方式的示意图;
图7为单一使用语义检索方式的示意图;
图8为使用布尔检索方式和图像检索方式的示意图;
图9为使用布尔检索方式和语义检索方式的示意图;
图10为使用图像检索方式和语义检索方式的示意图;
图11为同时使用布尔检索方式、图像检索方式和语义检索方式的示意图;
图12为设置图像检索方式和语义检索方式的权重分配的示意图;
图13为本发明实施例的一种全栈式检索的系统的结构示意图;
具体实施方式
本发明实施例的一种全栈式检索方法,如图1所示,包括如下步骤:
S1、基于ElasticSearch设计向量检索插件;
S2、利用所述向量检索插件在ElasticSearch中扩展出与图像字段对应的图像字段类型,与语义字段对应的语义字段类型;
S3、通过神经网络模型所训练出的图像网络模型提取多个图像的图像特征向量,并将各所述图像特征向量以所述图像字段类型储存至所述图像字段;
通过神经网络模型所训练出的语义网络模型提取各文本数据的语义特征向量,并将各所述语义特征向量以所述语义字段类型储存至所述语义字段;
由所述图像字段、所述语义字段和ElasticSearch所提供的原始检索字段共同构成检索数据库结构,以创建检索数据库;
S4、利用所述向量检索插件根据用户的检索条件在所述检索数据库中以布尔检索方式、图像检索方式和语义检索方式中的至少一种检索方式进行检索。
首先基于ElasticSearch设计向量检索插件,然后利用向量检索插件在ElasticSearch中扩展出图像字段类型和语义字段类型,根据神经网络模型所训练出的图像网络模型提取多个图像的图像特征向量并存至图像字段,根据神经网络模型所训练出的语义网络模型提取文本数据的语义特征向量并存至语义字段,图像字段、语义字段和ElasticSearch所提供的原始检索字段如布尔类型相对应的布尔字段,共同构成检索数据库结构,以创建检索数据库,当用户进行检索时,可设置不同的检索条件,通过向量检索插件在检索数据库中以布尔检索方式、图像检索方式和语义检索方式中的至少一种检索方式进行检索,实现了将布尔检索方式、图像检索方式和语义检索方式结合起来以支持海量数据的混合全栈检索。
其中,向量检索插件通过向量检索的方式来实现图像检索方式和语义检索方式,其中,向量检索为:
首先,利用在预设配置中预存的LSH算法对原始向量即各图像特征向量和/或语义特征向量进行处理后,分别生成相应的入库Hash值。并将各所述入库Hash值分别以Term形式存入ElasticSearch中的向量字段中,且将相应的各原始向量也存入所述向量字段;
其次,将用户输入的待检索字段值如布尔检索表达式、待检索图像和/或待检索文本转为待检索向量,并利用用户在设定配置中的LSH算法对所述待检索向量进行处理后,生成相应的待检索Hash值;
利用BooleanQuery从ElasticSearch中的所述向量字段中检索出所述待检索Hash值的相关Term,再分别得到各所述相关Term的原始向量;
利用相似度计算方法计算出所述待检索向量与各所述相关Term的原始向量的相似度,并按照相似度大小对各所述相关Term的原始向量进行排序后,按照顺序返回结果。
较优地,根据所述预设配置确定是否对各所述原始向量进行分段,若是,则对各所述原始向量进行拆分后形成多段拆分原始向量,利用所述预设配置中的LSH算法生成割面后对各所述拆分原始向量进行处理得到各相应的入库Hash值,记为分段入库Hash值;若否,则利用所述预设配置中的LSH算法生成割面后对各所述原始向量进行处理后得到各相应的入库Hash值,记为未分段入库Hash值;
将各分段入库Hash值或各未分段入库Hash值分别以Term形式存入所述向量字段中,并将相应的各所述拆分原始向量或各所述原始向量存入所述向量字段。
较优地,根据所述设定配置确定是否对所述待检索向量进行分段,若是,对所述待检索向量进行拆分后形成多段待检索拆分原始向量,利用所述设定配置中的LSH算法生成割面后对各所述待检索拆分原始向量进行处理得到各相应的待检索Hash值,记为分段待检索Hash值;若否,利用所述设定配置中的LSH算法生成割面后对所述待检索向量进行处理得到各相应的待检索Hash值,记为未分段待检索Hash值。
利用BooleanQuery从ElasticSearch中的所述向量字段中检索出所述分段待检索Hash值或所述未分段待检索Hash值的相关Term,再分别得到各所述相关Term的原始向量或拆分原始向量。
利用相似度计算方法计算出所述待检索向量与各所述相关Term的原始向量或拆分原始向量的相似度,并按照相似度大小对各所述相关Term的原始向量或拆分原始向量进行排序后按照顺序返回结果。其中,对各待检索向量进行分段进行分段处理后,增强检索效率。
较优地,所述LSH算法随机生成割面的具体过程为:在高维空间中随机生成多个向量,且每次随机选择其中一个向量的一个维度的斜率作为未知量;在各所述原始向量中随机选择多个数据点,将各所述数据点带入所述未知量,求解出所述未知量,根据所述向量和所述未知量生成所述割面。
由于LSH算法随机生成割面时,无法保证割面有效生成在特征向量分布的范围内,导致无法对大量的特征向量进行有效分类,同时浪费了CPU算力,因此可对LSH算法进行优化,即:可在高维空间中随机生成向量,且每次随机选择一个维度的斜率作为未知量,在各所述原始向量和所述待检索向量中随机选择多个数据点,将各所述数据点带入所述未知量,求解出所述未知量,根据所述向量和所述未知量生成割面,避免随机生成随带来的弊端,生成有效性更高的割面,且能保证检索效率。
a1x1+a2x2+…+anxn=b
同时,要满足(a1,a2,…an)∈R,且a1,a2,…an不全为零,
其中,x1,x2,…xn表示n维向量实数空间中的数据n个数据点,Rn表示x1,x2,…xn均为实数,b为实数,为了方便理解,以以二维平面空间为例进行更为详尽的阐述:
假设在二维平面空间中,存在一个数据点(x,y),若给定一个斜率a,则可确定出一条直线为ax+y=b,例如将数据点(x,y)为(1,2),给定斜率a=3,则得出截距3×1+2=5,此时确定出直线为3x+y=5,该直线就是这个二维空间的一个割面,将该二维空间分割成两部分,例如将数据点(2,2)带入3x+y后得到3×2+2=8>5,将数据点(1,1)带入3x+y后得到3×1+1=4<5,则数据点(2,2)和数据点(1,1)被直线3x+y=5分割在两侧;
如果此时二维空间的维度增加一维,变成三维空间,多出的一维用z表示,则二维空间由于增加一维,此时上述直线变为平面即割面,例如生成平面即割面为3x+y+z=7,假如存在数据点(1,2,2),由于3×1+2+2=7=5,则该数据点(1,2,2)就在这个平面即割面上;同时,该割面将这个三维空间分为两部分,例如将数据点(1,1,1)带入3x+y+z后得到3×1+1+1=5<7,将数据点(2,2,2)带入3x+y+z后得到3×2+2+2=10>7,则数据点(1,1,1)和数据点(2,2,2)被平面即割面3x+y+z=7分割到两侧。
以此类推,可首先在高维空间中随机生成向量,且每次随机选择一个维度的斜率作为未知量;在各原始向量和各待检索向量中随机选择多个数据点,将各所述数据点带入所述未知量,求解出所述未知量,根据所述向量和所述未知量生成割面,以保证所生成割面的有效性。
或,利用聚类方法在各所述原始向量中生成多个不同的聚类中心,将各所述聚类中心带入所述未知量,求解出所述未知量,根据所述向量和所述未知量生成所述割面。
即便用上述方案生成了有效性更高的割面,以确保每次hash均能有效切分各原始向量,但是也可能会出现切分不均匀的情况,即大量原始向量的数据点出现在相同的切分子空间中,少量原始向量的数据点出现在不同的切分子空间中,此时采用聚类方法如k-means方法,得到k个不同的聚类中心,以替代在各所述原始向量和所述待检索向量中随机选择多个数据点,避免上述问题,而且,在高维空间中,几乎所有数据点对之间的距离都接近相等,基于距离的聚类算法表现很差,当经过上述分段处理后,即先将高维空间切分为多段,进行降维后会提高聚类算法的表现。
具体地:原始LSH算法所采用的hash函数为:其中,u是给定随机超平面的法向量,v是待哈希的向量,因为u是随机选择,可能会出现数据集中的所有向量均出现在该平面同一侧的情况。p为n维空间中的任一数据点,因此,随机选择的超平面,可能会出现不能有效区分数据的情况。针对这种情况,我们对LSH算法做了优化,不再随机选择超平面,而是先对原始数据进行聚类,选出聚类中心做为以上随机超平面中的一条向量,再生成该向量的法向量,做为u,可有效解决随机超平面不能有效切分数据的问题。
一个超平面可以将它所在的n维空间分成两半,它的法向量指向的那一半对应的一面是它的正面,另一面则是它的反面。对于n维空间中的任意一数据点p,满足以下公式:
可使用如下Hash函数:
可以理解的是,将超平面应用到本申请中即为割面。
较优地,利用所述预设配置中的LSH算法和所述设定配置中的LSH算法生成所述入库Hash值和所述待检索Hash值时,在所述入库Hash值和所述待检索Hash值分别增加相应的前缀。有效避免向量字段膨胀问题。
具体为:
例如,高维空间中存在两个数据点:P1和P2,其中,P1的坐标为(c1,c2,…cw),P2的坐标为(d1,d2,…dw),其中,w为正整数,表示高维空间的维数,c1,c2,…cw表示数据点P1在各维中的坐标值,d1,d2,…dw表示数据点P2在各维中的坐标值,可分别用P1=(c1,c2,…cw)和P2=(d1,d2,…dw)进行表示,对数据点P1和数据点P2分别进行F次哈希后得到的结果分别为和只有对应位置的哈希值相同,数据点P1和数据点P2才具有一定的相似性,具体地:若时,数据点P1和数据点P2具有一定的相似性;且不同位置的哈希值不具有可比性,例如和不具有可比性,为达到此效果,目前常用的技术为:
建立F个字段,用来分别存储F次哈希的结果,但如果哈希次数过多时,即F较大时,需要建立很多字段,造成字段的数量急剧增加,即产生膨胀;而在本申请中,对入库Hash值和所述待检索Hash值分别增加相应的前缀,其前缀可代表当前进行哈希时所用的哈希函数,也就是说,将每次哈希的结果,增加一个代表当前哈希函数的前缀,前缀可为人为定义的字符串即可,具体地:
例如增加前缀为则对数据点P1和数据点P2进行哈希后的所述生成的结果分别为和其中,当同一位置的哈希值相同时,加前缀的值也相同,即时,不会影响到相似性判断,而且,不同位置的哈希值,由于前缀不同,哈希后的结果即使相同,加前缀后的结果也不可能相同,由此增加了入库和检索的精度,且这样可用一个字段存储最终的结果,达到之前生成F个字段的效果,有效解决了字段膨胀的问题,在本申请中为使用一个向量字段来存储最终结果,有效避免了向量字段膨胀问题。
其中,预设配置是指已配置好是否分段、LSH算法、以及生成割面的方式,设定配置是指用户已配置好是否分段、LSH算法、相似度计算方法以及生成割面的方式;
可以理解的是,检索条件是用户来决定的,具体地:当用户输入布尔检索表达式时,可利用布尔检索方式进行检索,当用户输入布尔检索表达式并上传待检索图像时,则利用布尔检索方式和图像检索方式同时进行检索,当用户输入布尔检索表达式、上传待检索图像和待检索文本时,则利用布尔检索方式、图像检索方式和语义检索方式同时进行检索,具体地:
1)单一使用布尔检索方式进行检索;
2)单一使用图像检索方式进行检索;
3)单一使用语义检索方式进行检索;
4)使用布尔检索方式和布尔检索方式进行检索;
5)使用布尔检索方式和图像检索方式进行检索;
6)使用布尔检索方式和语义检索方式进行检索;
7)使用图像检索方式和图像检索方式进行检索;
8)使用图像检索方式和语义检索方式进行检索;
9)使用图像检索方式与布尔检索方式进行检索;
10)使用语义检索方式和语义检索方式进行检索;
11)使用语义检索方式与图像检索方式进行检索;
12)使用语义检索方式与布尔检索方式进行检索;
13)使用布尔检索方式、图像检索方式和语义检索方式同时进行检索;
较优地,在上述技术方案中,所述至少一种检索方式包括两种及两种以上时,若用户选择的检索条件中包含布尔检索方式,首先利用布尔检索方式进行检索,然后在利用所述布尔检索方式检索出的结果基础上再利用用户已选择的图像检索方式和/或语义检索方式进行再次检索;
若用户选择的检索条件中同时包含图像检索方式和语义检索方式,在利用所述图像检索方式和所述语义检索方式检索出的结果基础上,用户自定义所述图像检索方式和所述语义检索方式的权重分配比例,以进行组合加权排序检索。
假如,当用户条件中包括布尔检索方式和图像检索方式时,首先,通过布尔检索方式对检索数据库进行检索,得到范围较小的结果集,例如检索数据库中有十万条数据,通过布尔检索方式进行检索后,得到了一千条数据的结果集,然后再用图像检索方式对这结果集进行检索,使检索速度更快且精度更高。
假如,当用户条件中包括图像检索方式和语义检索方式时,用户可自定义图像检索方式和使用语义检索方式的权重分配比例,便于用户得到与用户期望更贴近的检索结果。
较优地,在上述技术方案中,所述布尔检索方式具体为:所述向量检索插件将将用户输入的所述布尔检索表达式解析为ElasticSearch的查询语句后并在所述检索数据库中的布尔字段中进行检索。
其中,布尔检索方式也可称为布尔逻辑搜索方式,在严格意义上,布尔检索方式是指利用布尔逻辑运算符连接各个检索词,然后由计算机进行相应逻辑运算,以找出所需信息的方法,其中,布尔逻辑运算符为AND、OR等,其作用是把多个检索词连接起来,构成一个具有逻辑性的布尔检索表达式,且各检索词可为文本,从而支持全文检索。
较优地,在上述技术方案中,所述图像检索方式具体为:根据所述图像网络模型提取所述待检索图像的图像特征向量,记为待检索图像特征向量;所述向量检索插件根据所述待检索图像特征向量在所述检索数据库中的图像字段中进行检索。
其中,图像检索方式是指以图搜图的检索方式,以图搜图就是说根据用户输入的待检索图像来从检索数据库中搜索出相应的图像,通常采用图像的全局特征、局部特征、尺度不变特征变换特征SIFT、卷积特征等技术实现图像检索算法,近年来,基于深度学习的神经网络模型在图像检索领域应用获得长足的进步,成为图像检索领域中新一代的实现方式,本申请中依据神经网络模型所训练出的图像网络模型,提取待检索图像的图像特征向量,即待检索图像特征向量,并在图像检索时进行相似度计算,获得最佳检索效果。
较优地,所述语义检索方式具体为:根据所述语义网络模型提取所述待检索文本的语义特征向量,记为待检索语义特征向量;所述向量检索插件根据所述待检索语义特征向量在所述检索数据库中的语义字段中进行检索。
其中,语义检索方式是指不拘泥于用户所输入的待检索文本的字面本身,而是透过现象看本质,准确地捕捉到用户所输入待检索文本后面的真正意图,并以此来进行搜索,从而更准确地向用户返回最符合其需求的搜索结果。本申请中依据神经网络模型所训练出的语义网络模型,提取待检索文本的语义特征向量,即待检索语义特征向量,然后利用量检索插件根据待检索语义特征向量在所述检索数据库中的语义字段中进行检索。
本申请主题名称中的全栈式检索是指:布尔检索方式、图像检索方式和语义检索方式的单独或任意组合的检索方式,如下表1所示:
表1:
检索类别 | 布尔检索方式 | 图像检索方式 | 语义检索方式 |
布尔检索方式 | √ | √ | √ |
图像检索方式 | √ | √ | √ |
语义检索方式 | √ | √ | √ |
其中,“√”表示表1中,所对应的行和列的检索方式可进行组合,例如布尔检索方式和布尔检索方式可组合,相当于输入两个布尔检索表达式,布尔检索方式和图像检索方式可组合,相当于用户输入布尔检索表达式和待检索图像等等。也就是说,本申请实现了布尔检索方式、图像检索方式和语义检索方式这三种检索方式的高度融合,在海量数据库中完成高效、准确的检索,也可以完成三种检索方式在同一检索数据库中的任意组合的全栈式检索。
ElasticSearch是一个分布式、高扩展、高实时的搜索与数据分析引擎,可以用于搜索各种文档,它能很方便的使大量数据具有搜索、分析和探索的能力,由于Elasticsearch是分布式的,这意味着索引可以被分成分片,每个分片可以有0个或多个副本。每个节点托管一个或多个分片,并充当协调器将操作委托给正确的分片。充分利用ElasticSearch的存储、检索、分布式水平伸缩等能力,通过其扩展能力,注入图像检索方式和语义检索方式。
较优地,在上述技术方案中,还包括:将用户输入的所述布尔检索表达式解析为ElasticSearch的查询语句具体为:设计语法解析器、过滤器、XML文件解析器和序列化工具将用户输入的布尔检索表达式根据ElasticSearch中预设的布尔检索语法,解析成ElasticSearch的查询语句。
ElasticSearch所提供的布尔检索语法,其请求体是用json的格式来构建查询语法,可以构建各种复杂的语法,但是比较复杂,学习成本较高,将用户输入的布尔检索表达式如“名称=(通?系统OR无线NOT安全%)”通过语法解析器、过滤器、XML文件解析器和序列化工具将用户输入的布尔检索表达式根据ElasticSearch中预设的布尔检索语法,解析成ElasticSearch的查询语句,便于用户直接使用,节省用户时间。
详细地:Elasticsearch可以用于搜索各种文档,提供6种检索方式:分别为querystring search、query DSL、query filter、full-text search、phrase search和highlight search,例如,根据ElasticSearch所提供的布尔检索语法所生成的布尔检索式为:
可见,根据ElasticSearch所提供的布尔检索语法所生成的布尔检索式较为复杂。
而本申请通过语法解析器、过滤器、XML文件解析器和序列化工具将用户输入的布尔检索表达式如“((名称=(通?系统OR无线NOT安全%))OR(名称,摘要和说明+=(充电模块XOR直流电源OR无线传输模块XOR信息采集模块)))AND(公布日=(2010to 2018))AND(IPC=(H02G%OR H02B%OR H03%))AND(权利要求数量>='2'AND权利要求数量<='10')”根据ElasticSearch中预设的布尔检索语法,解析成ElasticSearch的查询语句,这样符合大多用户检索习惯,便于用户直接使用,节省用户时间,减少用户的学习成本。
其中,语法解析器用于语法解析,具体地,通过语法扫描器根据逻辑符关键词、关系符关键词、位置符等关键词把用户输入的布尔表达式,解析为抽象语法树对象(AST);
其中,过滤器的作用为:过滤器通过遍历抽象语法树,根据XML定义把语法树中的中文字段名,解析为数据库中真实的字段名,并且还会根据字段类型、字段值,把虚拟字段、嵌套字段处理为ElasticSearch可执行的结构,并把检索值中包含“%、*、?、#”等字符的进行特殊处理,为后续转换ElasticSearch的新布尔检索语法做准备;
其中,XML文件解析器的作用为:XML文件是用户根据预设规则定义好的数据库结构文件,XML文件中包括数据库名、索引名、字段名、字段别名、字段类型、虚拟字段等,XML文件解析器会把用户定义好的XML文件解析为JAVA对象(IPType)。XML文件解析器同时提供了XML文件与ElasticSearch之间的Mapping互转功能,可以把XML文件转换成ElasticSearchMapping文件,也可以把ElasticSearch的Mapping文件转换为XML文件,XML文件设计规则如下:
XML文件的整体结构为columns、fields、nested、virtual_fields与date_fields五部分,详细地:columns部分定义了数据字段名、描述、字段类型、是否可为空、是否为数组;fields部分定义了字段的别名、字段名、描述、分词器与多值字段;Nested为嵌套字段,嵌套字段部分包括了columns部分与fields部分;Virtual_fields为虚拟字段定义部分,可以把多个字段合并为一个字段来做检索,虚拟字段部分定义了虚拟字段名、别名、真实字段名称,多个字段用英文逗号分隔;Date_fields为日期格式定义部分,该部分定义了字段名称、日期格式。
其中,序列化工具的作用为:序列化工具提供序列化与反序列化功能,把JAVA对象序列化成可通过HTTP传输的加密字符串,也可以把序列化后的字符串反序列化成JAVA对象。序列化后的字符串经过加密处理,防止在HTTP传输过程中恶意篡改传输内容。
实际上,语法解析器、过滤器、XML文件解析器和序列化工具的作用是把符合大多用户检索习惯的由逻辑符、关系运算符、位置运算符解析为ElasticSearch的比较晦涩难懂的布尔检索语法,也就是说,用户只需直接输入简单的布尔检索表达式,可自动转为相应的ElasticSearch的查询语句,具体包括如下步骤:
1)语法解析器将用户输入的布尔检索表达式解析成字符数组,解析器中的扫描器通过扫描拆分后的字符数组,并根据关键词进行拆分;语法解析器把用拆分后的的检索表达式解析成抽象语法树(AST),完成第一次语法解析;
2)XML文件解析器把用户定义好的XML文件解析成JAVA对象(IPType自定义的XML对象)为下一步过滤器使用做好准备;
3)过滤器根据IPType对象中定义的字段名、分词器、虚拟字段、嵌套字段,把步骤1抽象出来的语法树进行二次解析,把抽象语法树中的嵌套字段、虚拟字段进行二次封装并把对象中的中文字段名称解析为数据库中的真实字段名,把表达式中的“?、#、*、%”根据分词器进行加工处理,再由语法解析器重新封装成抽象语法树;
4)序列化工具会把封装好的抽象语法树,经过加密序列化为可以通过HTTP协议传输的字符串(加密是为了防止在传输过程中恶意篡改传输内容)。
5)加密后的序列化字符串传输给ElasticSearch的向量检索插件,向量检索插件再由序列化工具进行反序化并解密为抽象语法树,最终转换为ElasticSearch可执行的布尔检索语句进行检索。
较优地,在上述技术方案中,得到所述语义网络模型和图像网络模型具体包括如下步骤:
S10、收集多个图像和多个文本数据分别作为多个图像训练样本和多个语义训练样本;
S20、基于深度学习的神经网络模型对所述图像训练样本和各所述语义训练样本分别进行数据标注、模型构建和模型训练;分别训练出的模型达到预设指标时,即为所述图像网络模型和所述语义网络模型。
具体阐释了通过深度学习的神经网络模型训练得到语义网络模型和图像网络模型的过程。
如图2至图4所示,以专利检索为例对本申请的一种全栈式检索的方法进行更为详尽的说明:
基于ElasticSearch的扩展能力,增加向量检索插件,使ElasticSearch具备高效的向量检索能力,并扩展出图像字段类型和语义字段类型,将图像特征向量以图像字段类型储存至图像字段,将语义特征向量以语义字段类型储存至语义字段,其全栈式检索主要由数据入库、全栈检索引擎和检索应用组成;
专利的数据包括结构化数据著录项,非结构化数据专利附图和专利五书文本,可利用布尔检索方式来检索著录项,可利用图像检索方式来检索说明书附图,可利用语义检索方式来检索将整篇专利说明书进行语义检索,或任意组合方式进行检索。这样,将深度学习的技术,很好的应用到各种检索的需求中,让不可能成为可能,具体地:
1)收集各专利的专利附图数据和专利文本数据分别作为多个图像训练样本和多个语义训练样本,其中,专利附图数据是指专利附图,专利的文本数据指专利说明书;
基于深度学习的神经网络模型,根据图3分别对多个图像训练样本和多个语义训练样本进行模型训练,包括数据标注、模型构建、模型训练三个步骤,此为常用技术手段,在此不展开论述,分别训练出的模型达到预设指标时,即为所述语义网络模型和所述图像网络模型,其中预设指标指标可为准确度为90%、80%等;
2)建立相应的检索数据库,其库结构可如下表2所示:
表2:
字段 | 数据 |
名称 | 短语 |
摘要 | 短语 |
公布日 | 日期 |
… | |
附图 | 图像字段 |
说明书 | 语义字段 |
… |
其中,与名称相对的短语为布尔字段类型,与摘要相对的短语为布尔字段类型,与公布日相对的日期为布尔字段类型,与附图相对的图像字段为图像字段类型,与说明书相对的语义字段为语义字段类型。
对专利著录项数据数据入库时,需要对应数据库结构中的名称、摘要、公布日等正确写入相对应的各个数据项中;在专利附图数据入库时,需要使用图像网络模型对各专利附图数据进行图像特征提取,得到多个图像特征向量,将多个图像特征向量存储至图像字段;在附图数据入库时,需要使用语义网络模型对各专利文本数据进行语义特征提取,得到各语义特征向量,将各语义特征向量存储至语义字段,可以理解的时,在构建检索数据库时,提取布尔特征、图像特征和语义特征之间并不存在先后顺序,其中,可将专利附图数据和专利文本数据通过TensorFlow、Caffe等运行引擎分别加载训练的图像网络模型和所述语义网络模型,在数据入库的过程中,为每条专利附图数据和每条专利文本数据提取相关特征,分别得到图像特征向量和语义特征向量保存在检索数据库中。
3)在检索时,根据用户的检索条件在所述检索数据库中以布尔检索方式、图像检索方式和语义检索方式中的至少一种检索方式进行检索,例如,用户可输入一张待检索图像或一段待检索文本,通过预处理再进行特征提取,计算出相似度获取检索结果,其中,预处理为上述的得到图像特征向量和语义特征向量的过程。
以布尔检索方式、图像检索方式和语义检索方式中的至少一种检索方式进行检索,具体包括:
1)单一使用布尔检索方式:用户可以在如图5所示的操作窗口中,直接输入布尔检索表达式,然后通过语法解析器、过滤器、XML文件解析器和序列化工具将用户输入的布尔检索表达式根据ElasticSearch中预设的布尔检索语法,解析成ElasticSearch的查询语句后进行检索,用户点击“搜索”,即可进行搜索。
2)单一使用图像检索方式:用户可直接上传一张图片即待检索图像进行检索,如图6所示,其中可设置待检索图像的格式为jpg、png等,同时可通过拖动“请选择图像列”来设置所返回检索结果的数量,如将返回检索结果的数量设置为0-1000,其中,待检索图像的待检索图像特征向量可表示为[0.1,0.3,...,0.7]等。
3)单一使用语义检索方式,用户输入待检索文本进行检索,如图7所示,用户输入
“[0001]技术领域……”大文本即待检索文本进行检索,可拖动“返回数量”设置返回检索结果的数量。
4)使用布尔检索方式和布尔检索方式进行检索,也就是将两个布尔检索表达式连接,实际与布尔检索方式相同,例如:用户根据新布尔检索语法输入“name=长城”+“name=计算机”,根据ElasticSearch中预设的布尔检索语法,解析成ElasticSearch的查询语句,然后进行检索。
5)使用布尔检索方式和图像检索方式进行检索,具体地,用户可同时输入布尔检索表达式并上传待检索图片,进行同时检索,如图8所示,其中可通过布尔检索表达式对检索数据库进行筛选,筛选出结果集,然后通过图像检索方式对结果集重新排序,并返回检索结果。
6)使用布尔检索方式和语义检索方式进行检索,具体地,用户可同时输入布尔检索表达式并上传待检索文本,如图7中的所输入的大文本,进行同时检索,如图9所示,其中可通过布尔检索表达式对检索数据库进行筛选,筛选出结果集,然后通过语义检索方式对结果集重新排序,并返回检索结果。
7)使用图像检索方式和图像检索方式进行检索,实际是支持用户上传多张图做为检索条件,默认是规则是逐一比对,依据评分最高的作为结果。
8)使用图像检索方式和语义检索方式进行检索,具体地,用户可同时输入图像并上传待检索文本,进行同时检索,如图10所示,其中,用户可拖动“图像-文本”条来设置使用图像检索方式所得到的检索结果和使用语义检索方式所得到的检索结果的权重分配比例,然后求和,由小到大对检索结果进行排序后并返回,
9)使用图像检索方式与布尔检索方式进行检索,与先使用布尔检索方式、后使用图像检索方式一致,在此不做赘述;
10)使用语义检索方式和语义检索方式进行检索,实际是支持用户上传多个待检索文本做为检索条件,默认规则是逐一比对,依据评分最高的作为结果。
11)使用语义检索方式与图像检索方式进行检索,与先使用图像尔检索方式、后使用语义检索方式一致,在此不做赘述;
12)使用语义检索方式与布尔检索方式进行检索,与先使用布尔检索方式、后使用语义检索方式一致,在此不做赘述;
13)使用布尔检索方式、图像检索方式和语义检索方式同时进行检索,此时用户可在相应的对话框中输入布尔检索表达式、上传图片和输入大文本,如图11所示。
例如,布尔检索表达式为“title=计算机”时,将通过布尔检索表达式对检索数据库进行筛选,筛选出结果集,然后根据用户所设置使用图像检索方式时和使用语义检索方式时所得到的检索结果的权重分配比例,然后求和,由小到大对检索结果进行排序后并返回。
其中,通过ElasticSearch的boosting权重机制实现使用图像检索方式时和使用语义检索方式时所得到的检索结果的权重分配比例,具体地:
boosting是一个可以用来修改文档相关性的参数。用户可以在查询时使用boosting。需要注意的是,boost的数值并不是一个精确的乘数。这是指,在计算分数的时候boost数值是被标准化的。例如,如果为每个单独字段指定了10的boost,那么最终标准化后每个字段会获得1的值,也就意味着没有实施任何boost。应该考虑boost的相对数值,将使用图像检索方式进行检索的boost设为3,使用语义检索方式进行检索的boost设置为1,则意味着图像检索方式的重要性是语义检索方式的3倍。
不同检索类型的权重设置,实际是以上boosting的设置。在以上的检索样例中,提供了相应的boost设置方式即拖动“图像-文本”条,达到在检索时对不同的字段应用不同权重的目的。
如图12所示,可通过滑动滑块来配置“图像”和“文本”之间的滑条设置图像检索方式与语义检索方式之间的权重分配,滑块在中间即意味着图像检索方式与语义检索方式的权重一样。
假设滑条总长度为length,当前滑块位置为pos,则图像检索方式的权重boostleft,语义检索方式boostright可通过以下公式计算:
其中,k为预设值,为正整数,一般设置k=10,由于boost默认是1,,扩大k倍是为防止图像检索方式与语义检索方式分别与ElasticSearch直接查询时所自定义查询权重太低,是取整操作,将浮点数运算转为整型运算加速。
ElasticSearch的boosting机制是通过boost值的相对大小来控制重要性的,即当pos在lengh/2处使,boostleft和boostright都为2,即同等重要;当pos在中间偏左侧时,boostright取值大于boostright,偏右则相反,符合界面直观理解。
在上述各实施例中,得到相似度的方式为:
对于布尔检索方式,默认使用TF-IDF,即词条的词频越高,得分越高;相似地,索引中词条越罕见,逆文档频率越高,得分越高。
对于图像检索方式及语义检索方式来说,使用待检索图像特征向量与检索数据中的图像特征向量之间、待检索语义特征向量与检索数据中的语义特征向量之间的的距离+1后取倒数作为相似度的评分即distance表示待检索图像特征向量与检索数据中的图像特征向量之间的距离和待检索语义特征向量与检索数据中的语义特征向量之间的的距离,这么做是因为,待检索图像特征向量与检索数据中的图像特征向量之间的距离和待检索语义特征向量与检索数据中的语义特征向量之间的的距离,则它们之间的相似度越低,反之,则相似度越高。
如图13所示,本发明实施例的一种全栈式检索系统200,包括插件扩展模块210、入库模块220和检索模块230;
所述插件扩展模块210基于ElasticSearch设计向量检索插件,且利用所述向量检索插件在ElasticSearch中扩展出与图像字段对应的图像字段类型,与语义字段对应的语义字段类型;
所述入库模块220通过神经网络模型所训练出的图像网络模型提取多个图像的图像特征向量,并将各所述图像特征向量以图像字段类型储存至所述图像字段;
所述入库模块220还通过神经网络模型所训练出的语义网络模型提取各文本数据的语义特征向量,并将各所述语义特征向量以语义字段类型储存至所述语义字段;
由所述图像字段、所述语义字段和ElasticSearch所提供的原始检索字段共同构成检索数据库结构,以创建检索数据库;
所述检索模块230利用所述向量检索插件根据用户的检索条件在所述检索数据库中以布尔检索方式、图像检索方式和语义检索方式中的至少一种检索方式进行检索。
插件扩展模块210在ElasticSearch扩展出图像字段类型和语义字段类型,入库模块220根据神经网络模型所训练出的图像网络模型提取多个图像的图像特征向量并存至图像字段,入库模块220还根据神经网络模型所训练出的语义网络模型提取文本数据的语义特征向量并存至语义字段,入库模块220还从各文本数据中还提取相应的布尔特征并至布尔字段,由此形成检索数据库,当用户进行检索时,检索模块230根据用户设定的检索条件,通过向量检索插件在检索数据库中以布尔检索方式、图像检索方式和语义检索方式中的至少一种检索方式进行检索,实现了将布尔检索方式、图像检索方式和语义检索方式结合起来以支持海量数据的混合全栈检索。
较优地,在上述技术方案中,所述至少一种检索方式包括两种及两种以上时,若用户选择的检索条件中包含布尔检索方式,首先利用布尔检索方式进行检索,然后在利用所述布尔检索方式检索出的结果基础上再利用用户已选择的图像检索方式和/或语义检索方式进行再次检索;
若用户选择的检索条件中同时包含图像检索方式和语义检索方式,在利用所述图像检索方式和所述语义检索方式检索出的结果基础上,用户自定义所述图像检索方式和所述语义检索方式的权重分配比例,以进行组合加权排序检索。。
较优地,在上述技术方案中,所述布尔检索方式具体为:将用户输入的所述向量检索插件将所述布尔检索表达式解析为ElasticSearch的查询语句后并在所述检索数据库中的布尔字段中进行检索。
较优地,在上述技术方案中,所述图像检索方式具体为:根据所述图像网络模型提取所述待检索图像的图像特征向量,记为待检索图像特征向量;所述向量检索插件根据所述待检索图像特征向量在所述检索数据库中的图像字段中进行检索。
较优地,在上述技术方案中,所述语义检索方式具体为:根据所述语义网络模型提取所述待检索文本的语义特征向量,记为待检索语义特征向量;所述向量检索插件根据所述待检索语义特征向量在所述检索数据库中的语义字段中进行检索。
较优地,在上述技术方案中,还包括解析模块,所述解析模块将用户输入的所述布尔检索表达式解析为ElasticSearch的查询语句,具体为:所述解析模块设计语法解析器、过滤器、XML文件解析器和序列化工具将用户输入的布尔检索表达式根据ElasticSearch中预设的布尔检索语法,解析成ElasticSearch的查询语句。
较优地,在上述技术方案中,还包括:模型训练模块,所述模型训练模块收集多个图像和多个文本数据分别作为多个图像训练样本和多个语义训练样本,并基于深度学习的神经网络模型对所述图像训练样本和各所述语义训练样本分别进行数据标注、模型构建和模型训练;分别训练出的模型达到预设指标时,即为所述图像网络模型和所述语义网络模型。
上述关于本发明的一种全栈式检索系统200中的各参数和各个单元模块实现相应功能的步骤,可参考上文中关于一种全栈式检索方法的实施例中的各参数和步骤,在此不做赘述。
本发明实施例的一种全栈式检索引擎,所述引擎用于执行上述任一实施例所述的一种全栈式检索方法。采用单一引擎即可实现布尔检索方式、图像检索方式和语义检索方式相结合的混合全栈检索。
本发明实施例的一种电子设备,包括存储器、处理器以及上述的一种全栈式检索引擎,所述引擎安装在所述存储器上并在所述处理器上运行。实现了一种支持布尔检索方式、图像检索方式和语义检索方式相结合的混合全栈检索的电子设备。其中,电子设备可为电脑、手机等。
在本发明中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种全栈式检索方法,其特征在于,包括如下步骤:
S1、基于ElasticSearch设计向量检索插件;
S2、利用所述向量检索插件在ElasticSearch中扩展出与图像字段对应的图像字段类型,与语义字段对应的语义字段类型;
S3、通过神经网络模型所训练出的图像网络模型提取多个图像的图像特征向量,并将各所述图像特征向量以所述图像字段类型储存至所述图像字段;
通过神经网络模型所训练出的语义网络模型提取各文本数据的语义特征向量,并将各所述语义特征向量以所述语义字段类型储存至所述语义字段;
由所述图像字段、所述语义字段和ElasticSearch所提供的原始检索字段共同构成检索数据库结构,以创建检索数据库;
S4、利用所述向量检索插件根据用户的检索条件在所述检索数据库中以布尔检索方式、图像检索方式和语义检索方式中的至少一种检索方式进行检索。
2.根据权利要求1所述的一种全栈式检索方法,其特征在于,所述至少一种检索方式包括两种及两种以上时,若用户选择的检索条件中包含布尔检索方式,首先利用布尔检索方式进行检索,然后在利用所述布尔检索方式检索出的结果基础上再利用用户已选择的图像检索方式和/或语义检索方式进行再次检索;
若用户选择的检索条件中同时包含图像检索方式和语义检索方式,在利用所述图像检索方式和所述语义检索方式检索出的结果基础上,用户自定义所述图像检索方式和所述语义检索方式的权重分配比例,以进行组合加权排序检索。
3.根据权利要求2所述的一种全栈式检索方法,其特征在于,所述布尔检索方式具体为:将用户输入的所述布尔检索表达式解析为ElasticSearch的查询语句后并在所述检索数据库中的布尔字段中进行检索。
4.根据权利要求3所述的一种全栈式检索方法,其特征在于,所述图像检索方式具体为:
根据所述图像网络模型提取所述待检索图像的图像特征向量,记为待检索图像特征向量;
所述向量检索插件根据所述待检索图像特征向量在所述检索数据库中的图像字段中进行检索。
5.根据权利要求4所述的一种全栈式检索方法,其特征在于,所述语义检索方式具体为:
根据所述语义网络模型提取所述待检索文本的语义特征向量,记为待检索语义特征向量;
所述向量检索插件根据所述待检索语义特征向量在所述检索数据库中的语义字段中进行检索。
6.根据权利要求5所述的一种全栈式检索方法,其特征在于,将用户输入的所述布尔检索表达式解析为ElasticSearch的查询语句具体为:
设计语法解析器、过滤器、XML文件解析器和序列化工具将用户输入的布尔检索表达式根据ElasticSearch中预设的布尔检索语法,解析成ElasticSearch的查询语句。
7.根据权利要求1至6任一项所述的一种全栈式检索方法,其特征在于,得到所述语义网络模型和图像网络模型具体包括如下步骤:
S10、收集多个图像和多个文本数据分别作为多个图像训练样本和多个语义训练样本;
S20、基于深度学习的神经网络模型对所述图像训练样本和各所述语义训练样本分别进行数据标注、模型构建和模型训练;分别训练出的模型达到预设指标时,即为所述图像网络模型和所述语义网络模型。
8.一种全栈式检索系统,其特征在于,包括插件扩展模块、入库模块和检索模块;
所述插件扩展模块基于ElasticSearch设计向量检索插件,且利用所述向量检索插件在ElasticSearch中扩展出与图像字段对应的图像字段类型,与语义字段对应的语义字段类型;
所述入库模块通过神经网络模型所训练出的图像网络模型提取多个图像的图像特征向量,并将各所述图像特征向量以图像字段类型储存至所述图像字段;
所述入库模块还通过神经网络模型所训练出的语义网络模型提取各文本数据的语义特征向量,并将各所述语义特征向量以语义字段类型储存至所述语义字段;
由所述图像字段、所述语义字段和ElasticSearch所提供的原始检索字段共同构成检索数据库结构,以创建检索数据库;
所述检索模块利用所述向量检索插件根据用户的检索条件在所述检索数据库中以布尔检索方式、图像检索方式和语义检索方式中的至少一种检索方式进行检索。
9.一种全栈式检索引擎,其特征在于,所述引擎用于执行上述权利要求1至7任一项所述的一种全栈式检索方法。
10.一种电子设备,其特征在于,包括存储器、处理器以及权利要求9所述的一种全栈式检索引擎,所述引擎安装在所述存储器上并在所述处理器上运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911366462.4A CN111143400B (zh) | 2019-12-26 | 2019-12-26 | 一种全栈式检索方法、系统、引擎及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911366462.4A CN111143400B (zh) | 2019-12-26 | 2019-12-26 | 一种全栈式检索方法、系统、引擎及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143400A true CN111143400A (zh) | 2020-05-12 |
CN111143400B CN111143400B (zh) | 2024-05-14 |
Family
ID=70520370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911366462.4A Active CN111143400B (zh) | 2019-12-26 | 2019-12-26 | 一种全栈式检索方法、系统、引擎及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143400B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015771B (zh) * | 2020-10-15 | 2021-06-29 | 北京新唐思创教育科技有限公司 | 数据检索方法、装置、电子设备及计算机存储介质 |
CN113434625A (zh) * | 2021-08-27 | 2021-09-24 | 中汽研(天津)汽车信息咨询有限公司 | 专利检索式的代码化方法、设备和存储介质 |
CN114780808A (zh) * | 2022-04-18 | 2022-07-22 | 中银金融科技有限公司 | 信息的检索方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6243713B1 (en) * | 1998-08-24 | 2001-06-05 | Excalibur Technologies Corp. | Multimedia document retrieval by application of multimedia queries to a unified index of multimedia data for a plurality of multimedia data types |
CN108647350A (zh) * | 2018-05-16 | 2018-10-12 | 中国人民解放军陆军工程大学 | 一种基于双通道网络的图文关联检索方法 |
CN109977250A (zh) * | 2019-03-20 | 2019-07-05 | 重庆大学 | 融合语义信息和多级相似性的深度哈希图像检索方法 |
CN110543517A (zh) * | 2019-08-26 | 2019-12-06 | 汉纳森(厦门)数据股份有限公司 | 一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质 |
-
2019
- 2019-12-26 CN CN201911366462.4A patent/CN111143400B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6243713B1 (en) * | 1998-08-24 | 2001-06-05 | Excalibur Technologies Corp. | Multimedia document retrieval by application of multimedia queries to a unified index of multimedia data for a plurality of multimedia data types |
CN108647350A (zh) * | 2018-05-16 | 2018-10-12 | 中国人民解放军陆军工程大学 | 一种基于双通道网络的图文关联检索方法 |
CN109977250A (zh) * | 2019-03-20 | 2019-07-05 | 重庆大学 | 融合语义信息和多级相似性的深度哈希图像检索方法 |
CN110543517A (zh) * | 2019-08-26 | 2019-12-06 | 汉纳森(厦门)数据股份有限公司 | 一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质 |
Non-Patent Citations (1)
Title |
---|
胡莹莹 等: "论布尔检索与语义检索的联合运用策略", 《中国发明与专利》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015771B (zh) * | 2020-10-15 | 2021-06-29 | 北京新唐思创教育科技有限公司 | 数据检索方法、装置、电子设备及计算机存储介质 |
CN113434625A (zh) * | 2021-08-27 | 2021-09-24 | 中汽研(天津)汽车信息咨询有限公司 | 专利检索式的代码化方法、设备和存储介质 |
CN114780808A (zh) * | 2022-04-18 | 2022-07-22 | 中银金融科技有限公司 | 信息的检索方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111143400B (zh) | 2024-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yu et al. | Deep multimodal distance metric learning using click constraints for image ranking | |
Bian et al. | Multimedia summarization for social events in microblog stream | |
CA2950676C (en) | Methods and systems for mapping data items to sparse distributed representations | |
US20220261427A1 (en) | Methods and system for semantic search in large databases | |
EP2368200B1 (en) | Interactively ranking image search results using color layout relevance | |
US7548936B2 (en) | Systems and methods to present web image search results for effective image browsing | |
US10754887B1 (en) | Systems and methods for multimedia image clustering | |
Ni et al. | Short text clustering by finding core terms | |
US20100313258A1 (en) | Identifying synonyms of entities using a document collection | |
CN107590128B (zh) | 一种基于高置信度特征属性分层聚类方法的论文同名作者消歧方法 | |
JP2015518220A (ja) | オンライン商品検索方法およびシステム | |
US20160283490A1 (en) | Method and System for Visualizing Documents | |
CN111143400B (zh) | 一种全栈式检索方法、系统、引擎及电子设备 | |
WO2010061537A1 (ja) | 検索装置、検索方法、及びプログラムが格納された記録媒体 | |
JP4711761B2 (ja) | データ検索装置、データ検索方法、データ検索プログラムおよびコンピュータに読み取り可能な記録媒体 | |
CN108875065B (zh) | 一种基于内容的印尼新闻网页推荐方法 | |
Martín et al. | Using semi-structured data for assessing research paper similarity | |
CN112989010A (zh) | 数据查询方法、数据查询装置和电子设备 | |
CN115563313A (zh) | 基于知识图谱的文献书籍语义检索系统 | |
KR20180129001A (ko) | 다언어 특질 투영된 개체 공간 기반 개체 요약본 생성 방법 및 시스템 | |
Deshmukh et al. | A literature survey on latent semantic indexing | |
Bollegala et al. | Extracting key phrases to disambiguate personal name queries in web search | |
Wang et al. | High-level semantic image annotation based on hot Internet topics | |
JP6976537B1 (ja) | 情報検索装置、情報検索方法および情報検索用プログラム | |
JP6065001B2 (ja) | データ検索装置、データ検索方法およびデータ検索用プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100190 17-19 / F, building a 1, 66 Zhongguancun East Road, Haidian District, Beijing Applicant after: New Great Wall Technology Co.,Ltd. Address before: 100190 17-19 / F, building a 1, 66 Zhongguancun East Road, Haidian District, Beijing Applicant before: GREAT WALL COMPUTER SOFTWARE & SYSTEMS Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |