CN113821599A - 语义指纹查询方法、装置、设备和存储介质 - Google Patents
语义指纹查询方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN113821599A CN113821599A CN202111078932.4A CN202111078932A CN113821599A CN 113821599 A CN113821599 A CN 113821599A CN 202111078932 A CN202111078932 A CN 202111078932A CN 113821599 A CN113821599 A CN 113821599A
- Authority
- CN
- China
- Prior art keywords
- semantic fingerprint
- query
- fingerprint
- bit
- block
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000011218 segmentation Effects 0.000 claims description 73
- 238000005192 partition Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 abstract description 4
- 239000002699 waste material Substances 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 235000013339 cereals Nutrition 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种语义指纹查询方法、装置、设备及存储介质。通过获取目标语义指纹后,根据海明距离的预设数值、分块数量和获取到的目标语义指纹共同确定目标语义指纹的查询条件。根据查询条件,在语义指纹库中确定最终的查询结果,由于海明距离的预设数值和分块数量的改变并不会改变目标语义指纹查询条件的确定方式,则能够满足不同策略的查询方式而无需对语义指纹库进行反复存储,因此,又能够进一步地避免存储空间浪费的问题。
Description
技术领域
本发明实施例涉及电子技术领域,尤其涉及一种语义指纹查询方法、装置、设备及存储介质。
背景技术
随着计算机的普及应用,各种各样的数据均能够在互联网上进行查找,但是互联网上存在很多相似的文档和资料。
在实现查询的过程中,发明人发现现有技术中至少存在如下问题:为了能够查询出相似的文档,目前采用的查询方式在每次查询时需要重新采集一次语音指纹集合,这样会造成存储空间的浪费,并且无法满足不同策略的查询。
因此,亟需一种语义指纹查询方法,能够节省存储空间,并提高查询的灵活性。
发明内容
本发明实施例提供一种语义指纹查询方法、装置、设备及存储介质,用以解决存储空间浪费,并且无法满足不同策略的查询的问题。
一方面,本发明实施例提供一种语义指纹查询方法,包括:
获取目标语义指纹;
根据海明距离的预设数值、分块数量和所述目标语义指纹,确定所述目标语义指纹的查询条件;
根据所述查询条件,在语义指纹库中确定查询结果;其中,所述语义指纹库中的语义指纹的位数与所述目标语义指纹的位数相同。
可选的,根据海明距离的预设数值、分块数量和所述目标语义指纹,确定所述目标语义指纹的查询条件,包括:
将所述目标语义指纹的位数按照所述分块数量进行划分,得到所述目标语义指纹位数的初次分段结果;
根据所述初次分段结果、所述海明距离的预设数值和所述分块数量,确定二次分段结果;
根据所述初次分段结果和所述二次分段结果,确定所述目标语义指纹的查询条件。
可选的,将所述目标语义指纹的位数按照所述分块数量进行划分,得到所述目标语义指纹位数的初次分段结果,包括:
将所述目标语义指纹的位数按照所述分块数量划分至第一分段中;其中,所述第一分段的子段数量与所述分块数量相同;
根据所述海明距离的预设数值,在所述第一分段中确定与所述海明距离不同的第一子段;
根据所述第一分段和所述第一子段,计算第二子段;
将所述第二子段作为所述初次分段结果。
可选的,根据所述初次分段结果、所述海明距离的预设数值和所述分块数量,确定二次分段结果,包括:
将所述第一子段按照所述分块数量划分至第二分段中;其中,所述第二分段的子段数量与所述分块数量相同;其中,所述第二分段的字段区间在所述第一子段的字段区间内;
根据所述海明距离的预设数值,在所述第二分段中确定与所述海明距离不同的第三子段;
根据所述第二分段和所述第三子段,计算所述第四子段;
将所述第四子段作为所述二次分段结果。
可选的,根据所述初次分段结果和所述二次分段结果,确定所述目标语义指纹的查询条件,包括:
将所述初次分段结果与所述二次分段结果进行加和,得到所述查询条件。
可选的,根据所述查询条件,在语义指纹库中确定查询结果之后,还包括:
根据所述海明距离的预设数值,对所述查询结果中每一个字段存储位数的数值与所述目标语义指纹进行匹配,得到所述匹配结果;
将所述匹配结果输出至用户。
可选的,所述语义指纹库中的语义指纹的位数按照预设的位数进行分段,并构建在倒排索引结构中。
上述发明中的一个实施例具有如下优点或者有益效果:
获取目标语义指纹后,根据海明距离的预设数值、分块数量和获取到的目标语义指纹共同确定目标语义指纹的查询条件,根据查询条件,在语义指纹库中确定最终的查询结果,由于海明距离的预设数值和分块数量的改变并不会改变目标语义指纹查询条件的确定方式,则能够满足不同策略的查询方式而无需对语义指纹库进行反复存储,因此,又能够进一步地避免存储空间浪费的问题。
另一方面,本发明实施例提供一种语义指纹查询装置,包括:
获取模块,用于获取目标语义指纹;
查询条件确定模块,用于根据海明距离的预设数值、分块数量和所述目标语义指纹,确定所述目标语义指纹的查询条件;
查询结果确定模块,用于根据所述查询条件,在语义指纹库中确定查询结果;其中,所述语义指纹库中的语义指纹的位数与所述目标语义指纹的位数相同。
查询条件确定模块,用于将所述目标语义指纹的位数按照所述分块数量进行划分,得到所述目标语义指纹位数的初次分段结果;
根据所述初次分段结果、所述海明距离的预设数值和所述分块数量,确定二次分段结果;
根据所述初次分段结果和所述二次分段结果,确定所述目标语义指纹的查询条件。
查询条件确定模块,用于将所述目标语义指纹的位数按照所述分块数量划分至第一分段中;其中,所述第一分段的子段数量与所述分块数量相同;
根据所述海明距离的预设数值,在所述第一分段中确定与所述海明距离不同的第一子段;
根据所述第一分段和所述第一子段,计算第二子段;
将所述第二子段作为所述初次分段结果。
查询条件确定模块,用于将所述第一子段按照所述分块数量划分至第二分段中;其中,所述第二分段的子段数量与所述分块数量相同;其中,所述第二分段的字段区间在所述第一子段的字段区间内;
根据所述海明距离的预设数值,在所述第二分段中确定与所述海明距离不同的第三子段;
根据所述第二分段和所述第三子段,计算所述第四子段;
将所述第四子段作为所述二次分段结果。
查询条件确定模块,用于将所述初次分段结果与所述二次分段结果进行加和,得到所述查询条件。
所述装置,还包括:
输出模块,用于根据所述海明距离的预设数值,对所述查询结果中每一个字段存储位数的数值与所述目标语义指纹进行匹配,得到所述匹配结果;
将所述匹配结果输出至用户。
所述装置,还包括:
所述语义指纹库中的语义指纹的位数按照预设的位数进行分段,并构建在倒排索引结构中。
本发明实施例提供的一种语义指纹查询方法,通过获取目标语义指纹后,根据海明距离的预设数值、分块数量和获取到的目标语义指纹共同确定目标语义指纹的查询条件,根据查询条件,在语义指纹库中确定最终的查询结果,由于海明距离的预设数值和分块数量的改变并不会改变目标语义指纹查询条件的确定方式,则能够满足不同策略的查询方式而无需对语义指纹库进行反复存储,因此,又能够进一步地避免存储空间浪费的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据本发明实施例一提供的一种语义指纹查询方法的流程示意图;
图2是根据本发明实施例二提供的一种语义指纹查询方法的流程示意图;
图3是根据本发明实施例二提供的一种倒排索引结构的示意图;
图4是根据本发明实施例二提供的一种第一分段的存储情况的示意图;
图5是根据本发明实施例二提供的一种第一分段的存储情况的示意图;
图6是根据本发明实施例二提供的一种第一分段的存储情况的示意图;
图7是根据本发明实施例三提供的一种语义指纹查询方法的流程示意图;
图8是根据本发明实施例四提供的一种语义指纹查询装置的示意图;
图9是根据本发明实施例五提供的一种终端设备的框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
首先对本发明实施例所涉及的名词进行解释:
目标语义指纹:是指根据当前内容生成的特征编码,该特征编码是SimHash值。具体的,当前内容是从各个网站中获取的文档信息,这些文档信息的来源包括:帮助中心的相关文章、学习中心的相关文章、规则中心的相关文章、商家论坛的相关文章、麦头条的相关文章和其他来源的数据如爬虫抓取的数据。
海明距离的预设数值:是指在信息编码中,两个合法代码对应位上编码不同的位数称为码距,又称海明距离。示例性的:10101和00110从第一位开始依次有第一位、第四、第五位不同,则海明距离为3。若海明距离的预设数值为3,则说明要查找对应位有3位不同的两个代码。
分块数量:是指将语义指纹库中的语义指纹的位数分为的部分数。示例性的,在海明距离的预设数值为3时,若分块数量为6,且语义指纹库中的语义指纹是64位,则每个块的位数分别为11位、11位、11位、11位、10位和10位。在海明距离的预设数值为3时,若分块数量为4,且语义指纹库中的语义指纹是64位,则每个块的位数分别为16位、16位、16位和16位。
查询条件:是指在语义指纹库中进行筛选语音指纹的条件,其中,查询条件可以用于文档的排重处理。
查询结果:是指语义指纹库中满足查询条件的语义指纹。
本发明实施例具体的应用场景是在网络上的信息比较繁杂的情况下,能够对相同的文档进行排重,也可以对相同的文档进行折叠,避免用户重复地查看相同的文档,节省了用户的时间。本发明实施例还可以应用在基于搜索相同的内容这个场景下,如相同内容推荐等。
本发明实施例提供的语义指纹查询方法,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
图1是根据本发明实施例一提供的一种语义指纹查询方法的流程示意图。具体的,实施例一中包括如下步骤:
S110、获取目标语义指纹。
本实施例中,目标语义指纹的获取过程如下:在获取当前内容的一系列特征后,根据每个特征的重要度,计算当前内容的SimHash值。
具体的,SimHash值的计算过程如下:先计算每个特征的hash值,然后对以上的hash值进行加权计算。权重大的特征影响当前内容SimHash值的位数就多,权重小的特征影响当前内容SimHash值的位数就少。
示例性的,若当前内容SimHash值的位数为64位,则先初始化长度64位的数组,并且初始化后的数组上的每一个元素都为0;其次,获取每个特征的64位的hash值,若该hash值的第i位为1,则将数组的第i位加上该特征的权重;若该hash值的第i位为0,则将数组的第i位减去该特征的权重。最后,待所有的特征均处理完毕后,将数组中正数的位数设置为1,并将1作为SimHash值中的一位,且该位与数组中的位数为对应关系;将数组中负数的位数设置为0,并将0作为SimHash值中的一位,且该位与数组中的位数为对应关系,得到64位的0/1位数组为目标语义指纹。
S120、根据海明距离的预设数值、分块数量和所述目标语义指纹,确定所述目标语义指纹的查询条件。
本实施例中,海明距离的预设数值的不同、分块数量的不同以及海明距离的预设数值与分块数量组合的不同,生成的目标语义指纹的查询条件均不同。
示例性的,海明距离的预设数值可以为3,也可以为2,还可以为4,以上三者的目标语义指纹的查询条件均不同。分块数量可以为6,也可以为4,还可以为5,以上三者的目标语义指纹的查询条件也不相同。海明距离的预设数值与分块数量的组合可以是海明距离的预设数值为3和分块数量为6;还可以是海明距离的预设数值为4和分块数量为5,以上两者的目标语义指纹的查询条件也不相同。
S130、根据所述查询条件,在语义指纹库中确定查询结果;其中,所述语义指纹库中的语义指纹的位数与所述目标语义指纹的位数相同。
本实施例中,语义指纹库是用于存储语义指纹的数据库。若目标语义指纹的位数是32位,则该目标语义指纹所要查询的语义指纹库中的语义指纹均为32位;若目标语义指纹的位数是64位,则该目标语义指纹所要查询的语义指纹库中的语义指纹均为64位。
本实施例中,根据查询条件,在语义指纹库中进行遍历所存储的语义指纹确定最终的查询结果。
本发明实施例提供的一种语义指纹查询方法,通过获取目标语义指纹后,根据海明距离的预设数值、分块数量和获取到的目标语义指纹共同确定目标语义指纹的查询条件,根据查询条件,在语义指纹库中确定最终的查询结果,由于海明距离的预设数值和分块数量的改变并不会改变目标语义指纹查询条件的确定方式,则能够满足不同策略的查询方式而无需对语义指纹库进行反复存储,因此,又能够进一步地避免存储空间浪费的问题。
图2是根据本发明实施例二提供的一种语义指纹查询方法的流程示意图。具体的,实施例二中包括如下步骤:
S210、获取目标语义指纹。
S220、将所述目标语义指纹的位数按照所述分块数量进行划分,得到所述目标语义指纹位数的初次分段结果。
本实施例中,若目标语义指纹的位数为64位,示例性的目标语义指纹为十进制的9876543210,对应的二进制的位数为10 0100 1100 1011 0000 0001 0110 1110 1010;若分块数量为4,则将二进制10 0100 1100 1011 0000 0001 0110 1110 1010分为4个部分,并在这4个部分中确定目标语义指纹位数的初次分段结果。
可选的,将所述目标语义指纹的位数按照所述分块数量进行划分,得到所述目标语义指纹位数的初次分段结果,包括:
将所述目标语义指纹的位数按照所述分块数量划分至第一分段中;其中,所述第一分段的子段数量与所述分块数量相同;
根据所述海明距离的预设数值,在所述第一分段中确定与所述海明距离不同的第一子段;
根据所述第一分段和所述第一子段,计算第二子段;
将所述第二子段作为所述初次分段结果。
本实施例中,第一分段是存储目标语义指纹位数的子段,示例性的,分块数量为4时,得到的第一分段的子段数量为4块,分别为A块、B块、C块和D块。
其中,A块为目标语义指纹中的第48到第63位,对应存储的字段为第24到第31位,具体的,对应存储的字段是可以按照自然数的顺序进行划分的;B块为目标语义指纹中的第32到第47位,对应存储的字段为第16位到第23位;C块为目标语义指纹中的第16位到第31位,对应存储的字段为第8位到第15位;D块为目标语义指纹中的第0位到第15位,对应存储的字段为第0位到第7位。
本实施例中,第一子段是存储有海明距离不同的目标语义指纹的子段。示例性的,若海明距离的预设数值为3,则在第一分段中的各个子段中确定第一子段。若当前的情况处于最坏情况,则第一分段中海明距离不同的3位分布在不同的子段中,那么当前时刻,第一子段就包括3个子段。进一步地,具体的情况可以包括:
若第一分段中的B块、C块和D块中存储的目标语义指纹中各有1位海明距离不同,则第一分段中的A块中存储的目标语义指纹中的位数均相同;其中,第一分段中的B块、C块和D块均为第一子段;第一分段中的A块为第二子段,也为此种情况下的初次分段结果。
若第一分段中的A块、C块和D块中存储的目标语义指纹中各有1位海明距离不同,则第一分段中的B块中存储的目标语义指纹中的位数均相同;其中,第一分段中的A块、C块和D块均为第一子段;第一分段中的B块为第二子段,也为此种情况下的初次分段结果。
若第一分段中的A块、B块和D块中存储的目标语义指纹中各有1位海明距离不同,则第一分段中的C块中存储的目标语义指纹中的位数均相同;其中,第一分段中的A块、B块和D块均为第一子段;第一分段中的C块为第二子段,也为此种情况下的初次分段结果。
若第一分段中的A块、B块和C块中存储的目标语义指纹中各有1位海明距离不同,则第一分段中的D块中存储的目标语义指纹中的位数均相同;其中,第一分段中的A块、B块和C块均为第一子段;第一分段中的D块为第二子段,也为此种情况下的初次分段结果。
S230、根据所述初次分段结果、所述海明距离的预设数值和所述分块数量,确定二次分段结果。
本实施例中,在得到初次分段结果后,结合海明距离的预设数值和分块数量,对初次分段后的第一子段进行二次分段,并得到二次分段结果。
可选的,根据所述初次分段结果、所述海明距离的预设数值和所述分块数量,确定二次分段结果,包括:
将所述第一子段按照所述分块数量划分至第二分段中;其中,所述第二分段的子段数量与所述分块数量相同;其中,所述第二分段的字段区间在所述第一子段的字段区间内;
根据所述海明距离的预设数值,在所述第二分段中确定与所述海明距离不同的第三子段;
根据所述第二分段和所述第三子段,计算所述第四子段;
将所述第四子段作为所述二次分段结果。
本实施例中,若第一子段为A块、B块和D块,则第一子段为一个48位的二进制数,然后将这个48位的二进制数按照分块数量4进行再次划分,得到第二分段。示例性的,该48位的二进制数如下:
0000 0000 0000 0000 0000 0000 0000 0010 0001 0110 1110 1010;
则按照分块数量4进行划分后得到的第二分段为:A1块、B1块、C1块和D1块;其中,A1块对应存储的字段为第26位到第31位;B1块对应存储的字段为第20位到第25位;C1块对应存储的字段为第6位到第7位以及第16位到第19位;D1块对应存储的字段为第0位到第5位。在此,可以得到A1块、B1块、C1块和D1块总和的字段区间为第0位到第7位以及第16位到第31位,处于第一子段的字段区间内。
若当前的情况处于最坏情况,则第二分段中海明距离不同的3位分布在不同的子段中,则当前时刻,第三子段就包括3个子段。进一步地,具体的情况可以包括:
若第二分段中的B1块、C1块和D1块中存储的目标语义指纹中各有1位海明距离不同,则第二分段中的A1块中存储的目标语义指纹中的位数均相同;其中,第二分段中的B1块、C1块和D1块均为第三子段;第二分段中的A1块为第四子段,也为此种情况下的二次分段结果。
若第二分段中的A1块、C1块和D1块中存储的目标语义指纹中各有1位海明距离不同,则第二分段中的B1块中存储的目标语义指纹中的位数均相同;其中,第二分段中的A1块、C1块和D1块均为第三子段,第二分段中的B1块为第四子段,也为此种情况下的二次分段结果。
若第二分段中的A1块、B1块和D1块中存储的目标语义指纹中各有1位海明距离不同,则第二分段中的C1块中存储的目标语义指纹中的位数均相同;其中,第二分段中的A1块、B1块和D1块均为第三子段,第二分段中的C1块为第四子段,也为此种情况下的二次分段结果。
若第二分段中的A1块、B1块和C1块中存储的目标语义指纹中各有1位海明距离不同,则第二分段中的D1块中存储的目标语义指纹中的位数均相同;其中,第二分段中的A1块、B1块和C1块均为第三子段;第二分段中的D1块为第四子段,也为此种情况下的二次分段结果。
本实施例中,第一子段还可以是B块、C块和D块;第一子段还可以是A块、C块和D块;具体的,第一子段还可以是A块、B块和C块。针对不同情况下的第一子段的操作过程与上述陈述过程类似,具体不再赘述。
S240、根据所述初次分段结果和所述二次分段结果,确定所述目标语义指纹的查询条件。
本实施例中,可选的,根据所述初次分段结果和所述二次分段结果,确定所述目标语义指纹的查询条件,包括:
将所述初次分段结果与所述二次分段结果进行加和,得到所述查询条件。
本实施例中,示例性的,若初次分段结果为第一分段中的C块,二次分段结果为第二分段中的C1块,则得到的查询条件为查询字段第6位到第19位,其中,C块对应存储的字段为第8位到第15位,C1块对应存储的字段为第6位到第7位以及第16位到第19位。具体的,在执行查询条件时,如果查询条件中的字段比较多,则可以使用ElasticsSearch的分页查询或者Scroll API查询。这样设置的好处是能够减少待查询的语义指纹集合的数量,提高系统处理的效率。
S250、根据所述查询条件,在语义指纹库中确定查询结果;其中,所述语义指纹库中的语义指纹的位数与所述目标语义指纹的位数相同。
本实施例中,若查询条件为查询字段第6位到第19位,则在语义指纹库中确定字段第6位到第19位相同的语义指纹集合,将该语义指纹集合作为查询结果。具体的,若目标语义指纹的位数为32位,则在32位的语义指纹库中进行查找语义指纹,若目标语义指纹的位数为64位,则在64位的语义指纹库中进行查找语义指纹。
本实施例中,可选的,所述语义指纹库中的语义指纹的位数按照预设的位数进行分段,并构建在倒排索引结构中。
本实施例中,预设的位数可以是2位。示例性的,若语义指纹库中的语义指纹的位数为64位,则按照预设的位数进行分段后得到32个字段,并构建在倒排索引结构中,倒排索引结构是存储文档的映射,通过倒排索引结构,能够从不同的位置获取不同的文档,并将获取的不同的文档组合成搜索的文档。其中,一种倒排索引结构的示意图可参见图3。
在图3中可以看出,若该语义指纹为0000000000010110 01001011001110010011100100101110 0110001111001101,则按照预设的2位进行分段,分为32个字段进行存储,字段第0位存储00,字段第31位存储01。在图3中,文档可以是存储在字段中的位数。示例性的,图3中文档1是00,文档2是11,则文档3为搜索的文档,也为文档1和文档2的组合,在本例中为0011。
进一步地,在海明距离的预设数值和分块数量动态变化时,倒排索引结构中存储的32个字段是不变的,这样设置的好处就无需每次将语义指纹库中的语义指纹全部复制,进而节省存储空间。
具体的,根据海明距离的预设数值和分块数量的不同,第一分段的存储情况不同。
具体的,可以参见图4中示出的一种第一分段的存储情况的示意图。
若海明距离的预设数值为3,分块数量为4,目标语义指纹为64位,则目标语义指纹的第一分段按照分块数量分为4块,分别为A块、B块、C块和D块。其中,第一分段A块对应存储的字段为第24位到第31位,B块对应存储的字段为第16位到第23位,C块对应存储的字段为第8位到第15位,D块对应存储的字段为第0位到第7位。可以通过图4看出,第一分段的4块在倒排索引结构中的存储情况。
进一步地,待查询的语义指纹集合中的语义指纹也是按照分块数量4进行分块的,具体的分为:A1块、B1块、C1块和D1块。其中,A1块为语义指纹中的16位,对应存储的字段为第24位到第31位;B1块为语义指纹中的16位,对应存储的字段为第16位到第23位;C1块为语义指纹中的16位,对应存储的字段为第8位到第15位;D1块为语义指纹中的16位,对应存储的字段为第0位到第7位。从图4中可以看出目标语义指纹与当前情况下待查询的语义指纹集合的存储情况是类似的。
示例性的,还可以参见图5中示出的一种第一分段的存储情况的示意图。
若海明距离的预设数值为2,分块数量为3,目标语义指纹为64位,则目标语义指纹的第一分段按照分块数量分为3块,分别为A块、B块和C块。其中,第一分段A块对应存储的字段为第21位到第31位,B块对应存储的字段为第10位到第20位,C块对应存储的字段为第0位到第9位。
进一步地,待查询的语义指纹集合中的语义指纹也是按照分块数量3进行分块的,具体的分为:A1块、B1块、和C1块。其中,A1块为语义指纹中的22位,对应存储的字段为第21位到第31位,B1块为语义指纹中的22位,对应存储的字段为第10位到第20位,C1块为语义指纹中的20位,对应存储的字段为第0位到第9位。从图5中可以看出目标语义指纹与当前情况下待查询的语义指纹集合的存储情况是类似的。
具体的,可以参见图6中示出的一种第一分段的存储情况的示意图。若海明距离的预设数值为4,分块数量为5,目标语义指纹为64位,则目标语义指纹的第一分段按照分块数量分为5块,分别为A块、B块、C块、D块和E块。其中,第一分段A块对应存储的字段为第25位到第31位,B块对应存储的字段为第18位到第24位,C块对应存储的字段为第12位到第17位,D块对应存储的字段为第6位到第11位,E块对应存储的字段为第0位到第5位。进一步地,待查询的语义指纹集合中的语义指纹也是按照分块数量5进行分块的,具体的分为:A1块、B1块、C1块、D1块和E1块。其中,A1块为语义指纹中的14位,对应存储的字段为第25位到第31位,B1块为语义指纹中的14位,对应存储的字段为第18位到第24位,C1块为语义指纹中的12位,对应存储的字段为第12位到第17位,D1块为语义指纹中的12位,对应存储的字段为第6位到第11位,E1块为语义指纹中的12位,对应存储的字段为第0位到第5位。从图6中可以看出目标语义指纹与当前情况下待查询的语义指纹集合的存储情况是类似的。
图7是根据本发明实施例三提供的一种语义指纹查询方法的流程示意图。
S710、获取目标语义指纹。
S720、根据海明距离的预设数值、分块数量和所述目标语义指纹,确定所述目标语义指纹的查询条件。
S730、根据所述查询条件,在语义指纹库中确定查询结果;其中,所述语义指纹库中的语义指纹的位数与所述目标语义指纹的位数相同。
S740、根据所述海明距离的预设数值,对所述查询结果中每一个字段存储位数的数值与所述目标语义指纹进行匹配,得到所述匹配结果。
本实施例中,若查询结果为字段第6位到第19位均相同的语义指纹集合,则在该集合中确定第0位到第5位以及第20位到第31位存储的语义指纹的位数,并与目标语义指纹第0位到第5位以及第20位到第31位存储的位数比较,并在该集合中筛选出海明距离的预设数值为3的语义指纹集合,将该语义指纹集合作为匹配结果。这样设置的好处是能快速地确定匹配结果,而无需占用过多的系统资源。
S750、将所述匹配结果输出至用户。图8是根据本发明实施例四提供的一种语义指纹查询装置的示意图。
可执行本发明实施例所提供的语义指纹查询方法,具备执行方法相应的功能模块和有益效果。如图8所示,该装置800可以包括:
获取模块810,用于获取目标语义指纹;
查询条件确定模块820,用于根据海明距离的预设数值、分块数量和所述目标语义指纹,确定所述目标语义指纹的查询条件;
查询结果确定模块830,用于根据所述查询条件,在语义指纹库中确定查询结果;其中,所述语义指纹库中的语义指纹的位数与所述目标语义指纹的位数相同。
查询条件确定模块820,用于将所述目标语义指纹的位数按照所述分块数量进行划分,得到所述目标语义指纹位数的初次分段结果;
根据所述初次分段结果、所述海明距离的预设数值和所述分块数量,确定二次分段结果;
根据所述初次分段结果和所述二次分段结果,确定所述目标语义指纹的查询条件。
查询条件确定模块820,用于将所述目标语义指纹的位数按照所述分块数量划分至第一分段中;其中,所述第一分段的子段数量与所述分块数量相同;
根据所述海明距离的预设数值,在所述第一分段中确定与所述海明距离不同的第一子段;
根据所述第一分段和所述第一子段,计算第二子段;
将所述第二子段作为所述初次分段结果。
查询条件确定模块820,用于将所述第一子段按照所述分块数量划分至第二分段中;其中,所述第二分段的子段数量与所述分块数量相同;其中,所述第二分段的字段区间在所述第一子段的字段区间内;
根据所述海明距离的预设数值,在所述第二分段中确定与所述海明距离不同的第三子段;
根据所述第二分段和所述第三子段,计算所述第四子段;
将所述第四子段作为所述二次分段结果。
查询条件确定模块820,用于将所述初次分段结果与所述二次分段结果进行加和,得到所述查询条件。
所述装置,还包括:
输出模块840,用于根据所述海明距离的预设数值,对所述查询结果中每一个字段存储位数的数值与所述目标语义指纹进行匹配,得到所述匹配结果;
将所述匹配结果输出至用户。
所述装置,还包括:
所述语义指纹库中的语义指纹的位数按照预设的位数进行分段,并构建在倒排索引结构中。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图9是本发明实施例五示出的一种终端设备的框图,该设备可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
该设备可以包括以下一个或多个组件:处理组件902,存储器904,电源组件906,多媒体组件909,音频组件910,输入/输出(I/O)接口912,传感器组件914,以及通信组件916。
处理组件902通常控制该设备的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件902可以包括一个或多个处理器920来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件902可以包括一个或多个模块,便于处理组件902和其他组件之间的交互。例如,处理组件902可以包括多媒体模块,以方便多媒体组件908和处理组件902之间的交互。
存储器904被配置为存储各种类型的数据以支持在该设备的操作。这些数据的示例包括用于在该设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器904可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件906为该设备的各种组件提供电力。电源组件906可以包括电源管理系统,一个或多个电源,及其他与为该设备生成、管理和分配电力相关联的组件。
多媒体组件908包括在所述该设备和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件908包括一个前置摄像头和/或后置摄像头。当该设备处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件910被配置为输出和/或输入音频信号。例如,音频组件910包括一个麦克风(MIC),当该设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器904或经由通信组件916发送。在一些实施例中,音频组件910还包括一个扬声器,用于输出音频信号。
I/O接口912为处理组件902和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件914包括一个或多个传感器,用于为该设备提供各个方面的状态评估。例如,传感器组件914可以检测到该设备的打开/关闭状态,组件的相对定位,例如所述组件为该设备的显示器和小键盘,传感器组件914还可以检测该设备或该设备一个组件的位置改变,用户与该设备接触的存在或不存在,该设备方位或加速/减速和该设备的温度变化。传感器组件914可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件914还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件914还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件916被配置为便于该设备和其他设备之间有线或无线方式的通信。该设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件916经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件916还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,该设备可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器904,上述指令可由该设备的处理器920执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当该存储介质中的指令由终端设备的处理器执行时,使得终端设备能够执行上述终端设备的语义指纹查询方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种语义指纹查询方法,其特征在于,所述方法包括:
获取目标语义指纹;
根据海明距离的预设数值、分块数量和所述目标语义指纹,确定所述目标语义指纹的查询条件;
根据所述查询条件,在语义指纹库中确定查询结果;其中,所述语义指纹库中的语义指纹的位数与所述目标语义指纹的位数相同。
2.根据权利要求1所述的方法,其特征在于,根据海明距离的预设数值、分块数量和所述目标语义指纹,确定所述目标语义指纹的查询条件,包括:
将所述目标语义指纹的位数按照所述分块数量进行划分,得到所述目标语义指纹位数的初次分段结果;
根据所述初次分段结果、所述海明距离的预设数值和所述分块数量,确定二次分段结果;
根据所述初次分段结果和所述二次分段结果,确定所述目标语义指纹的查询条件。
3.根据权利要求2所述的方法,其特征在于,将所述目标语义指纹的位数按照所述分块数量进行划分,得到所述目标语义指纹位数的初次分段结果,包括:
将所述目标语义指纹的位数按照所述分块数量划分至第一分段中;其中,所述第一分段的子段数量与所述分块数量相同;
根据所述海明距离的预设数值,在所述第一分段中确定与所述海明距离不同的第一子段;
根据所述第一分段和所述第一子段,计算第二子段;
将所述第二子段作为所述初次分段结果。
4.根据权利要求3所述的方法,其特征在于,根据所述初次分段结果、所述海明距离的预设数值和所述分块数量,确定二次分段结果,包括:
将所述第一子段按照所述分块数量划分至第二分段中;其中,所述第二分段的子段数量与所述分块数量相同;其中,所述第二分段的字段区间在所述第一子段的字段区间内;
根据所述海明距离的预设数值,在所述第二分段中确定与所述海明距离不同的第三子段;
根据所述第二分段和所述第三子段,计算第四子段;
将所述第四子段作为所述二次分段结果。
5.根据权利要求2所述的方法,其特征在于,根据所述初次分段结果和所述二次分段结果,确定所述目标语义指纹的查询条件,包括:
将所述初次分段结果与所述二次分段结果进行加和,得到所述查询条件。
6.根据权利要求1所述的方法,其特征在于,根据所述查询条件,在语义指纹库中确定查询结果之后,还包括:
根据所述海明距离的预设数值,对所述查询结果中每一个字段存储位数的数值与所述目标语义指纹进行匹配,得到所述匹配结果;
将所述匹配结果输出至用户。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述语义指纹库中的语义指纹的位数按照预设的位数进行分段,并构建在倒排索引结构中。
8.一种语义指纹查询装置,其特征在于,所述装置包括:
获取模块,用于获取目标语义指纹;
查询条件确定模块,用于根据海明距离的预设数值、分块数量和所述目标语义指纹,确定所述目标语义指纹的查询条件;
查询结果确定模块,用于根据所述查询条件,在语义指纹库中确定查询结果;其中,所述语义指纹库中的语义指纹的位数与所述目标语义指纹的位数相同。
9.一种计算机设备,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为:
所述处理器被配置为执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111078932.4A CN113821599A (zh) | 2021-09-15 | 2021-09-15 | 语义指纹查询方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111078932.4A CN113821599A (zh) | 2021-09-15 | 2021-09-15 | 语义指纹查询方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113821599A true CN113821599A (zh) | 2021-12-21 |
Family
ID=78922570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111078932.4A Pending CN113821599A (zh) | 2021-09-15 | 2021-09-15 | 语义指纹查询方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821599A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101821734A (zh) * | 2007-08-22 | 2010-09-01 | 谷歌公司 | 时基媒体之间的匹配的检测和分类 |
CN101887457A (zh) * | 2010-07-02 | 2010-11-17 | 杭州电子科技大学 | 基于内容的复制图像检测方法 |
KR20130055115A (ko) * | 2011-11-18 | 2013-05-28 | (주)이스트소프트 | 블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법 |
CN103646080A (zh) * | 2013-12-12 | 2014-03-19 | 北京京东尚科信息技术有限公司 | 基于倒序索引的微博去重方法和系统 |
CN103744964A (zh) * | 2014-01-06 | 2014-04-23 | 同济大学 | 一种基于局部敏感Hash函数的网页分类方法 |
CN104572720A (zh) * | 2013-10-21 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 一种网页信息排重的方法、装置及计算机可读存储介质 |
US20180293380A1 (en) * | 2016-05-06 | 2018-10-11 | Tencent Technology (Shenzhen) Company Limited | Virus program detection method, terminal, and computer readable storage medium |
CN110569244A (zh) * | 2019-08-30 | 2019-12-13 | 深圳计算科学研究院 | 一种海明空间近似查询方法及存储介质 |
CN111753069A (zh) * | 2020-06-09 | 2020-10-09 | 北京小米松果电子有限公司 | 语义检索方法、装置、设备及存储介质 |
US20210192155A1 (en) * | 2019-12-19 | 2021-06-24 | Datamax-O'neil Corporation | Systems and methods for encoding and decoding data |
-
2021
- 2021-09-15 CN CN202111078932.4A patent/CN113821599A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101821734A (zh) * | 2007-08-22 | 2010-09-01 | 谷歌公司 | 时基媒体之间的匹配的检测和分类 |
CN101887457A (zh) * | 2010-07-02 | 2010-11-17 | 杭州电子科技大学 | 基于内容的复制图像检测方法 |
KR20130055115A (ko) * | 2011-11-18 | 2013-05-28 | (주)이스트소프트 | 블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법 |
CN104572720A (zh) * | 2013-10-21 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 一种网页信息排重的方法、装置及计算机可读存储介质 |
CN103646080A (zh) * | 2013-12-12 | 2014-03-19 | 北京京东尚科信息技术有限公司 | 基于倒序索引的微博去重方法和系统 |
CN103744964A (zh) * | 2014-01-06 | 2014-04-23 | 同济大学 | 一种基于局部敏感Hash函数的网页分类方法 |
US20180293380A1 (en) * | 2016-05-06 | 2018-10-11 | Tencent Technology (Shenzhen) Company Limited | Virus program detection method, terminal, and computer readable storage medium |
CN110569244A (zh) * | 2019-08-30 | 2019-12-13 | 深圳计算科学研究院 | 一种海明空间近似查询方法及存储介质 |
US20210192155A1 (en) * | 2019-12-19 | 2021-06-24 | Datamax-O'neil Corporation | Systems and methods for encoding and decoding data |
CN111753069A (zh) * | 2020-06-09 | 2020-10-09 | 北京小米松果电子有限公司 | 语义检索方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
王青松;葛慧;: "相似聚类的二级索引重复数据删除算法", 小型微型计算机系统, no. 12, 15 December 2017 (2017-12-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107340880B (zh) | 一种联想输入方法、装置及用于实现联想输入的电子设备 | |
CN108304475B (zh) | 数据查询方法、装置及电子设备 | |
CN108073303B (zh) | 一种输入方法、装置及电子设备 | |
CN111968640B (zh) | 语音控制方法、装置、电子设备及存储介质 | |
CN114090575A (zh) | 基于键值数据库的数据存储方法、检索方法及相应的装置 | |
CN111859035A (zh) | 数据处理方法及装置 | |
CN107608714B (zh) | 字节对齐方法、装置及计算机可读存储介质 | |
CN115118695A (zh) | 消息处理方法、装置、电子设备、存储介质 | |
CN111985635A (zh) | 一种加速神经网络推理处理的方法、装置及介质 | |
CN108241438B (zh) | 一种输入方法、装置和用于输入的装置 | |
CN110837288B (zh) | 应用程序管理方法、装置、移动终端及可读存储介质 | |
CN107193530B (zh) | 一种生成随机数的方法和装置 | |
CN115827624A (zh) | 检索数据的处理方法、数据检索方法、装置及电子设备 | |
CN113821599A (zh) | 语义指纹查询方法、装置、设备和存储介质 | |
CN106959970B (zh) | 词库、词库的处理方法、装置和用于处理词库的装置 | |
CN111984423B (zh) | 一种运行深度学习模型的方法、装置及介质 | |
CN108628883A (zh) | 一种数据处理方法、装置及电子设备 | |
CN108304491B (zh) | 数据查询方法、装置及电子设备 | |
CN107992893B (zh) | 压缩图像特征空间的方法及装置 | |
CN110019657B (zh) | 处理方法、装置和机器可读介质 | |
CN109388251B (zh) | 一种输入方法及装置 | |
CN113157703B (zh) | 数据的查询方法、装置、电子设备和存储介质 | |
CN104793847A (zh) | 图片展示方法及装置 | |
CN112905023A (zh) | 一种输入纠错方法、装置和用于输入纠错的装置 | |
CN114968752B (zh) | 赋值元素的确定方法、装置、计算机设备和存储介质 |
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 |