CN112069366B - 召回确定方法、装置、设备及存储介质 - Google Patents
召回确定方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112069366B CN112069366B CN202010885980.3A CN202010885980A CN112069366B CN 112069366 B CN112069366 B CN 112069366B CN 202010885980 A CN202010885980 A CN 202010885980A CN 112069366 B CN112069366 B CN 112069366B
- Authority
- CN
- China
- Prior art keywords
- target
- character
- word
- characters
- dimensional array
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000013507 mapping Methods 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 2
- 239000011159 matrix material Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- 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/903—Querying
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)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种召回确定方法、装置、设备及存储介质,该方法包括:根据目标搜索词包括的目标字符以及预设的字符与字符编码的映射关系,确定目标搜索词对应的目标三维数组的下标集合,根据目标三维数组的下标集合以及预设的三维数组,确定目标三维数组的下标集合在三维数组中对应的各元素值,当目标三维数组的下标集合在预设的三维数组所对应的各元素值中,只要存在一个元素值,表示目标搜索词中对应的两个目标字符,在预设的词集合中的任意词中间隔对应的字符数均不会共同出现时,确定目标搜索词无法被召回。该召回确定方法效率较高,并且,内存开销较小。
Description
技术领域
本发明实施例涉及搜索技术领域,尤其涉及一种召回确定方法、装置、设备及存储介质。
背景技术
在搜索场景中,需要确定用户输入的搜索请求中的搜索词是否可以被召回。
目前,常见的召回确定方法是调索引信息,具体过程为:在接收到搜索请求后,调取索引信息,确定索引信息中是否存在搜索请求中的搜索词对应的索引条目。
但是,由于调索引信息比较耗时,并且,索引信息本身也需要巨大的内存开销,因此,目前的召回确定方法效率较低,并且内存开销较大。
发明内容
本发明提供一种召回确定方法、装置、设备及存储介质,以解决目前的召回确定方法效率较低并且内存开销较大的技术问题。
第一方面,本发明实施例提供一种召回确定方法,包括:
根据目标搜索词包括的目标字符以及预设的字符与字符编码的映射关系,确定所述目标搜索词对应的目标三维数组的下标集合;其中,所述目标三维数组的下标用于表示所述目标搜索词中的第i个目标字符的编码、位于所述第i个目标字符之后的第j个目标字符的编码以及所述第i个目标字符与所述第j个目标字符在所述目标搜索词中间隔的字符数q,0<i≤length-1、1<j≤length且i与j不相等,length表示所述目标搜索词包括的目标字符的数量,0<q≤length-1;
根据所述目标三维数组的下标集合以及预设的三维数组,确定所述目标三维数组的下标集合在所述三维数组中对应的各元素值;其中,所述预设的三维数组的元素用于表示所述预设的字符集合中的任意两个字符,是否会在预设的词集合中的任意词中共同出现;
当所述目标三维数组的下标集合在所述预设的三维数组所对应的各元素值中,只要存在一个元素值,表示所述目标搜索词中对应的两个目标字符,在所述预设的词集合中的任意词中间隔对应的字符数均不会共同出现时,确定所述目标搜索词无法被召回。
第二方面,本发明实施例提供一种召回确定装置,包括:
第一确定模块,用于根据目标搜索词包括的目标字符以及预设的字符与字符编码的映射关系,确定所述目标搜索词对应的目标三维数组的下标集合;其中,所述目标三维数组的下标用于表示所述目标搜索词中的第i个目标字符的编码、位于所述第i个目标字符之后的第j个目标字符的编码以及所述第i个目标字符与所述第j个目标字符在所述目标搜索词中间隔的字符数q,0<i≤length-1、1<j≤length且i与j不相等,length表示所述目标搜索词包括的目标字符的数量,0<q≤length-1;
第二确定模块,用于根据所述目标三维数组的下标集合以及预设的三维数组,确定所述目标三维数组的下标集合在所述三维数组中对应的各元素值;其中,所述预设的三维数组的元素用于表示所述预设的字符集合中的任意两个字符,是否会在预设的词集合中的任意词中共同出现;
第三确定模块,用于当所述目标三维数组的下标集合在所述预设的三维数组所对应的各元素值中,只要存在一个元素值,表示所述目标搜索词中对应的两个目标字符,在所述预设的词集合中的任意词中间隔对应的字符数均不会共同出现时,确定所述目标搜索词无法被召回。
第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面提供的召回确定方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面提供的召回确定方法。
本实施例提供一种召回确定方法、装置、设备及存储介质,该方法包括:根据目标搜索词包括的目标字符以及预设的字符与字符编码的映射关系,确定目标搜索词对应的目标三维数组的下标集合,根据目标三维数组的下标集合以及预设的三维数组,确定目标三维数组的下标集合在三维数组中对应的各元素值,当目标三维数组的下标集合在预设的三维数组所对应的各元素值中,只要存在一个元素值,表示目标搜索词中对应的两个目标字符,在预设的词集合中的任意词中间隔对应的字符数均不会共同出现时,确定目标搜索词无法被召回。该召回确定方法中,通过该目标搜索词对应的目标三维数组的下标集合以及预设的三维数组,确定目标搜索词能否被召回,在该过程中,一方面,不需要调取索引信息,效率较高,另一方面,相较于索引信息,预设的三维数组占用的内存更小,内存开销较小。
附图说明
图1为本发明一个实施例提供的召回确定方法的流程示意图;
图2为本发明一个实施例提供的确定预设的三维数组的流程示意图;
图3为本发明一个实施例提供的召回确定装置的结构示意图;
图4为本发明一个实施例提供的计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
图1为本发明一个实施例提供的召回确定方法的流程示意图。本实施例适用于根据用户输入的搜索请求中的目标搜索词,确定该目标搜索词是否可以被召回的场景中。本实施例可以由召回确定装置来执行,该召回确定装置可以由软件和/或硬件的方式实现,该召回确定装置可以集成于计算机设备中。如图1所示,本实施例提供的召回确定方法包括如下步骤:
步骤101:根据目标搜索词包括的目标字符以及预设的字符与字符编码的映射关系,确定目标搜索词对应的目标三维数组的下标集合。
其中,目标三维数组的下标用于表示目标搜索词中的第i个目标字符的编码、位于第i个目标字符之后的第j个目标字符的编码以及第i个目标字符与第j个目标字符在目标搜索词中间隔的字符数q。0<i≤length-1、1<j≤length且i与j不相等,length表示目标搜索词包括的目标字符的数量。0<q≤length-1。
具体地,本实施例中的计算机设备可以为服务器,也可以为终端设备。这里的终端设备可以为手持设备、车载设备、可穿戴设备,以及各种形式的用户设备(User Equipment;简称:UE),移动台(Mobile Station;简称:MS)及终端(terminal)等。
可选地,在步骤101之前,召回确定装置可以接收用户发送的搜索请求。该搜索请求中可以包括目标搜索词。
本实施例的预设的字符与字符编码的映射关系中,字符编码指的是可以以数字化形式表示字符的信息。本实施例中的字符包括以下至少一项:汉字、字母以及数字。例如,假设字符“星”,对应的字符编码为“10”,字符“a”,对应的字符编码为“20”。
本实施例中的目标搜索词包括多个目标字符。根据目标搜索词包括的目标字符以及字符与字符编码的映射关系,可以先确定出各目标字符的编码。之后,根据目标搜索词中两个不同位置的目标字符之间间隔的字符数,以及对应的目标字符的编码,确定该目标搜索词对应的目标三维数组的下标集合。由于该目标搜索词对应的目标数组的维数为三维,因此,目标三维数组的下标为三个。如前所示,目标三维数组的下标用于表示目标搜索词中的第i个目标字符的编码、位于第i个目标字符之后的第j个目标字符的编码以及第i个目标字符与第j个目标字符在目标搜索词中间隔的字符数q。
本实施例中,在i、j与q的取值范围内遍历i、j与q,即可获取到目标搜索词对应的目标三维数组的下标集合。示例性地,目标搜索词对应的目标三维数组的下标可以以[q-1][i][j]表示。
举例来说,假设目标搜索词为“学英语”,假设“学”的编码为“10”,“英”的编码为“20”,“语”的编码为“30”,“学”和“英”间隔的字符数为1,“学”和“语”间隔的字符数为2,“英”和“语”间隔的字符数为1,另外,由于数组下标从0开始,所以将目标字符之间间隔的字符数减去1的值作为该目标搜索词对应的目标三维数组的下标中的一个下标。基于上述描述,目标搜索词“学英语”对应的目标三维数组的下标集合可以为:[0][10][20],[1][10][30],[0][20][30]。
在上述示例中,下标中的顺序为:下标中的第一个值表示第i个目标字符与第j个目标字符在目标搜索词中间隔的字符数减去1,第二个值表示第i个目标字符的编码,第三个值表示位于第i个目标字符之后的第j个目标字符的编码。当然,下标中的值表示的意义还可以为其他顺序,例如,下标中的第一个值表示第i个目标字符的编码,第二个值表示位于第i个目标字符之后的第j个目标字符的编码,第三个值表示第i个目标字符与第j个目标字符在目标搜索词中的间隔减去1,只要能够实现通过下标表示第i个目标字符的编码、位于第i个目标字符之后的第j个目标字符的编码以及第i个目标字符与第j个目标字符在目标搜索词中的间隔即可。
一种实现方式中,可以预先设置字符之间间隔的最大字符数max_span,则0<q≤min(length-1,max_span)。
步骤102:根据目标三维数组的下标集合以及预设的三维数组,确定目标三维数组的下标集合在三维数组中对应的各元素值。
其中,预设的三维数组的元素用于表示预设的字符集合中的任意两个字符,是否会在预设的词集合中的任意词中共同出现。
具体地,本实施例中预先设置了三维数组。该三维数组中的元素用于表示预设的字符集合中的任意两个字符,是否会在预设的词集合中的任意词中共同出现。更具体地,该三维数组中的元素用于表示预设字符集合中的任意两个字符,是否会在预设的词集合中的任意词中的任意间隔中共同出现。
本实施例中的预设的三维数组可以为三维布尔数组。
可选地,预设的三维数组占用的字节的数量可以为:vocab_size×vocab_size×max_span。其中,vocab_size表示预设的字符集合中字符的数量,max_span表示预设的字符之间间隔的最大字符数。
图2为本发明一个实施例提供的确定预设的三维数组的流程示意图。如图2所示,本实施例中确定预设的三维数组的过程包括如下步骤:
步骤201:根据预设的字符集合以及字符与字符编码的映射关系,构建初始的三维布尔数组。
其中,初始的三维布尔数组的下标包括:m、n以及p,n表示第一字符的编码,p表示第一字符之后的第二字符的编码,m+1表示第一字符与第二字符之间间隔的字符数,初始的三维布尔数组的元素表示第一字符与第二字符在任何词中间隔m个字符均不会共同出现。
本实施例中,可以根据经验数据,取4000到5000个最常用的字符作为字符集合。字符集合中的字符可以包括以下至少一项:汉字、字母以及数字。确定出字符集合之后,可以采用枚举的方式,构建初始的三维布尔数组。本实施例中的枚举的意思为:取一个字符,将该字符的编码,包括该字符在内的其他所有字符的编码,以及间隔的字符数从1到间隔的最大字符数的所有下标均列出来,将对应的元素设置为表示该字符与包括该字符在内的其他所有字符在任何词中从间隔的字符数为1到间隔的最大字符数均不会共同出现;重复上述步骤,直至取完所有字符。在实际实现时,可以将初始的三维布尔数组中的元素设置为“false”、“0”等第一预设字符,以表示对应的两个字符在任何词中均不会共同出现。示例性地,初始的三维布尔数组中的元素可以以array[m][n][p]表示。
举例来说,假设字符集合中包括10个字符,字符编码分别为0、1、2、3、4、……9,字符之间间隔的最大字符数为5,以“false”表示两个字符在任何词中均不会共同出现,那么,初始的三维布尔数组可以为:array[0][0][0]=false,array[0][0][1]=false,array[0][0][2]=false,array[0][0][3]=false,array[0][0][4]=false,array[0][0][5]=false,array[0][0][6]=false,array[0][0][7]=false,array[0][0][8]=false,array[0][0][9]=false,array[1][0][0]=false,array[1][0][1]=false,array[1][0][2]=false,array[1][0][3]=false,array[1][0][4]=false,array[1][0][5]=false,array[1][0][6]=false,array[1][0][7]=false,array[1][0][8]=false,array[1][0][9]=false,……,依此类推,可以确定出所有的初始的三维布尔数组。如前所示,假设一个三维布尔数组的元素占用1个字节,那么,该初始的三维布尔数组占用的字节数为:10*10*5=500个字节。
步骤202:根据预设的词集合,针对每个词中字符的共现关系,更新初始的三维布尔数组,形成更新后的三维布尔数组。
一种实现方式中,步骤202的实现过程可以为:针对每个词中字符的编码以及字符的间隔,确定该词在初始的三维布尔数组中的下标集合;将初始的三维布尔数组中,该词在初始的三维布尔数组中的下标集合对应的各元素更新为表示对应的两个字符间隔对应的字符数可以共同出现。
具体地,针对每个词,可以将该词中第r个字符的编码、位于第r个字符之后的第s个字符的编码以及第r个字符与第s个字符之间间隔的字符数t减1后的值,作为词在初始的三维布尔数组中的下标集合。其中,0<r≤length`-1、1<s≤length`且r与s不相等,length`表示该词包括的字符的数量,0<t≤length`-1。与步骤101类似,在r、s与t的取值范围内遍历r、s与t,即可获取到每个词在初始的三维布尔数组中的下标集合。
之后,将初始的三维布尔数组中,每个词在初始的三维布尔数组中的下标集合对应的各元素更新为表示对应的两个字符可以共同出现。这里的“对应的两个字符”表示的是该词在初始的三维布尔数组中的下标对应的两个字符,“对应的字符数”表示的是该词在初始的三维布尔数组中的下标对应的字符之间间隔的字符数。在实际实现时,可以将每个词在初始的三维布尔数组中的下标集合对应的各元素更新为“true”、“1”等第二预设字符,以表示对应的两个字符可以共同出现。
遍历完预设的词集合中的所有词之后,可以将初始的三维布尔数组更新完毕。
举例来说,假设初始的三维布尔数组为:array[0][0][0]=false,array[0][0][1]=false,array[0][0][2]=false,array[0][0][3]=false,array[0][0][4]=false,array[0][0][5]=false,array[0][0][6]=false,array[0][0][7]=false。某个词为“三十”,假设“三”的编码为0,“十”的编码为5,该词在初始的三维布尔数组中的下标集合为:[0][0][5]。之后,将array[0][0][5]的元素更新为表示对应的两个字符可以共同出现,这里的对应的两个字符为编码0对应的字符,以及编码5对应的字符。可选地,可以将array[0][0][5]=false更新为array[0][0][5]=true。
步骤203:将更新后的三维布尔数组,作为预设的三维数组。
在步骤203中,将更新后的三维布尔数组,作为步骤102中的预设的三维数组。
上述确定预设的三维数组的过程,实现简单,效率较高,且确定出的三维数组占用的内存较小。
在步骤102中,根据步骤101中获取到的目标三维数组的下标集合以及根据步骤201至步骤203确定的三维布尔数组,确定目标三维数组的下标集合在该三维数组中对应的各元素值。
举例来说,基于步骤101中的示例,目标搜索词“学英语”对应的目标三维数组的下标集合可以为:[0][10][20],[1][10][30],[0][20][30],则从预设的三维数组中查找array[0][10][20],array[1][10][30],array[0][20][30]的元素值。
步骤103:当目标三维数组的下标集合在预设的三维数组所对应的各元素值中,只要存在一个元素值,表示目标搜索词中对应的两个目标字符,在预设的词集合中的任意词中间隔对应的字符数均不会共同出现时,确定目标搜索词无法被召回。
在步骤103中,目标搜索词中对应的两个目标字符指的是该一个元素值在三维数组中的下标对应的字符,对应的字符数指的是该一个元素值在三维数组中的下标对应的字符之间间隔的字符数。
举例来说,基于步骤101及步骤102中的示例,目标搜索词“学英语”,在三维数组中对应的元素值为array[0][10][20],array[1][10][30],array[0][20][30],假设array[0][10][20]=false,array[1][10][30]=true,array[0][20][30]=true,则说明array[0][10][20]=false对应的两个字符,即编码为10和20的字符,在词集合中的任意词中,间隔1个字符不会共同出现,也即,在词集合中的任何词中,不会出现“学英”。这也说明目标搜索词“学英语”无法被召回。
本实施例中的“可以被召回”指的是可以搜索到目标搜索词相关的结果,“无法被召回”指的是不能搜索到目标搜索词相关的结果。
进一步地,当目标三维数组的下标集合在三维数组中对应的所有元素值均表示目标搜索词中对应的两个目标字符,在预设的词集合中的目标词中间隔对应的字符数会共同出现时,确定目标搜索词可以被召回。这里的目标词指的是间隔对应的字符数可以共现目标搜索词中对应的两个目标字符的词。也即,当目标三维数组的下标集合在三维数组中对应的所有元素值均为“true”、“1”等第二预设字符时,确定目标搜索词可以被召回。
一种实现方式中,为了提高效率,在步骤102中,可以按照目标三维数组的下标集合中,第i个目标字符与第j个目标字符在目标搜索词中间隔的字符数由大到小的顺序,查询目标三维数组的下标集合在三维数组中对应的各元素值;当确定目标下标在三维数组中对应的元素值表示目标搜索词中对应的两个目标字符,在预设的词集合中的任意词中间隔对应的字符数不会共同出现时,停止查询。
换句话说,按照目标三维数组的下标集合中,下标对应的字符之间间隔的字符数由大到小的顺序,查询目标三维数组的下标集合在三维数组中对应的各元素值,当查询到“false”、“0”等第一预设字符时,即结束查询。
以下对这样做可以提高效率的原因进行解释。在三维数组的下标中的字符之间间隔的字符数固定时,三维数组可以看做是二维矩阵,称为共现矩阵。若某个共现矩阵中为第一预设字符,例如,false,的元素数较多,则该共现矩阵为稀疏矩阵;若某个共现矩阵中为第二预设字符,例如,true,的元素数较多,则该共现矩阵为稠密矩阵。
在字符之间间隔的字符数较大时,对应的共现矩阵为稀疏矩阵。举例来说,预设的词集合中的某个词假设为“我是超级幸运星”,对应的编码为8、7、6、4、2、1、0,其在初始的三维布尔数组中的下标集合中,间隔的字符数为0+1的下标集合为:[0][8][7],[0][7][6],[0][6][4],[0][4][2],[0][2][1],[0][1][0],间隔的字符数为1+1的下标集合为:[1][8][6],[1][7][4],[1][6][2],[1][4][1],[1][2][0],间隔的字符数为2+1的下标集合为:[2][8][4],[2][7][2],[2][6][1],[2][4][0],间隔的字符数为3+1的下标集合为:[3][8][2],[3][7][1],[3][6][0],间隔的字符数为4+1的下标集合为:[4][8][1],[4][7][0],间隔的字符数为5+1的下标集合为:[5][8][0]。可以看出,基于上述下标集合,在更新初始的三维布尔数组时,间隔的字符数越大,需要更新的三维布尔数组的元素越少。因此,可以得出结论:在字符之间间隔的字符数较大时,对应的共现矩阵为稀疏矩阵。
基于以上结论,在按照目标三维数组的下标集合中,下标对应的字符之间间隔的字符数由大到小的顺序,查询目标三维数组的下标集合在三维数组中对应的各元素值时,可以更快地查找到为第一预设字符的元素值。只要查找到一个为第一预设字符的元素值,就已经可以得出该目标搜索词无法被召回的结论,因此,可以提高效率。
本实施例提供的召回确定方法中,内存消耗为预设的三维数组占用的字节的数量,vocab_size×vocab_size×max_span,可见内存消耗是固定值,不随实体词(即预设的词集合中的词)增多而增长。只要vocab_size不是非常大,内存消耗可以控制在百兆以内。
可以看出,本实施例中的预设的三维数组相当于学习了实体词集(即预设的词集合),并存储了所有常用字符在一个间隔范围内的共现关系。
当目标搜索词在三维数组中对应的各元素值中只要存在一个元素值为第一预设字符时,意味着目标搜索词一定未在实体词集中连着出现,无法整体召回。当目标搜索词在三维数组中对应的各元素值均为第二预设字符时,严格意义上无法担保目标搜索词一定是某些实体词的一部分(也可以称为N-Gram)。但是当目标搜索词足够长(特别在目标搜索词的长度大于3之后)这个结论基本上是成立的。因为如果需要目标搜索词在三维数组中对应的各元素值均为第二预设字符,则需要目标搜索词对应的每一组字符共现在三维布尔数组中均为第二预设字符。在较小的间隔的字符数下(间隔的字符数为2或3的情况)共现矩阵不太稀疏,目标搜索词中的字符共现来自于非相关的实体词是有可能的;但大间隔下特定两字符在历史上共现过,一般来说它们在实体词集中也就是以目标搜索词这个N-Gram的形式共现的。比如,目标搜索词是“超级幸运星”,词集中相关的实体词有“我是超级幸运星”;若“超”与“星”、“超”与“运”、“级”与“星”对应的下标在三维布尔数组中的元素值均为true,那么有很大可能在实体词集中包含“超级幸运星”这个片段;反之,存在一个false,则可以断定实体词集中任何词都不含有“超级幸运星”这部分。
在确定出目标搜索词是否可以被召回的结论,可以用于后续的任务输入,例如,在纠错任务中,当确定目标搜索词可以被召回时,确定该目标搜索词不需要纠错;当确定目标搜索词不能被召回时,确定该目标搜索词可能需要被纠错。
本实施例提供的召回确定方法,包括:根据目标搜索词包括的目标字符以及预设的字符与字符编码的映射关系,确定目标搜索词对应的目标三维数组的下标集合,根据目标三维数组的下标集合以及预设的三维数组,确定目标三维数组的下标集合在三维数组中对应的各元素值,当目标三维数组的下标集合在预设的三维数组所对应的各元素值中,只要存在一个元素值,表示目标搜索词中对应的两个目标字符,在预设的词集合中的任意词中间隔对应的字符数均不会共同出现时,确定目标搜索词无法被召回。该召回确定方法中,通过该目标搜索词对应的目标三维数组的下标集合以及预设的三维数组,确定目标搜索词能否被召回,在该过程中,一方面,不需要调取索引信息,效率较高,另一方面,相较于索引信息,预设的三维数组占用的内存更小,内存开销较小。
图3为本发明一个实施例提供的召回确定装置的结构示意图。如图3所示,本实施例提供的召回确定装置包括:第一确定模块31、第二确定模块32以及第三确定模块33。
第一确定模块31,用于根据目标搜索词包括的目标字符以及预设的字符与字符编码的映射关系,确定目标搜索词对应的目标三维数组的下标集合。
其中,目标三维数组的下标用于表示目标搜索词中的第i个目标字符的编码、位于第i个目标字符之后的第j个目标字符的编码以及第i个目标字符与第j个目标字符在目标搜索词中间隔的字符数q。0<i≤length-1、1<j≤length且i与j不相等,length表示目标搜索词包括的目标字符的数量。0<q≤length-1。
第二确定模块32,用于根据目标三维数组的下标集合以及预设的三维数组,确定目标三维数组的下标集合在三维数组中对应的各元素值。
其中,预设的三维数组的元素用于表示预设的字符集合中的任意两个字符,是否会在预设的词集合中的任意词中共同出现。
可选地,第二确定模块32具体用于:按照目标三维数组的下标集合中,第i个目标字符与第j个目标字符在目标搜索词中间隔的字符数由大到小的顺序,查询目标三维数组的下标集合在三维数组中对应的各元素值;当确定目标下标在三维数组中对应的元素值表示目标搜索词中对应的两个目标字符,在预设的词集合中的任意词中间隔对应的字符数不会共同出现时,停止查询。
一种实现方式中,预设的三维数组占用的字节的数量为:vocab_size×vocab_size×max_span,其中,vocab_size表示预设的字符集合中字符的数量,max_span表示预设的字符之间间隔的最大字符数。
第三确定模块33,用于当目标三维数组的下标集合在预设的三维数组所对应的各元素值中,只要存在一个元素值,表示目标搜索词中对应的两个目标字符,在预设的词集合中的任意词中间隔对应的字符数均不会共同出现时,确定目标搜索词无法被召回。
可选地,三维数组为三维布尔数组。该装置还包括:构建模块、更新模块以及第四确定模块。
构建模块,用于根据预设的字符集合以及字符与字符编码的映射关系,构建初始的三维布尔数组。
其中,初始的三维布尔数组的下标包括:m、n以及p,n表示第一字符的编码,p表示第一字符之后的第二字符的编码,m+1表示第一字符与第二字符之间间隔的字符数。初始的三维布尔数组的元素表示第一字符与第二字符在任何词中间隔m个字符均不会共同出现。
更新模块,用于根据预设的词集合,针对每个词中字符的共现关系,更新初始的三维布尔数组,形成更新后的三维布尔数组。
第四确定模块,用于将更新后的三维布尔数组,作为预设的三维数组。
一种实现方式中,更新模块具体用于:针对每个词中字符的编码以及字符的间隔,确定词在初始的三维布尔数组中的下标集合;将初始的三维布尔数组中,词在初始的三维布尔数组中的下标集合对应的各元素更新为表示对应的两个字符间隔对应的字符数可以共同出现。
更具体地,在针对每个词中字符的编码以及字符的间隔,确定词在初始的三维布尔数组中的下标集合的方面,更新模块具体用于:将词中第r个字符的编码、位于第r个字符之后的第s个字符的编码以及第r个字符与第s个字符之间间隔的字符数t减1后的值,作为词在初始的三维布尔数组中的下标集合。其中,0<r≤length`-1、1<s≤length`且r与s不相等,length`表示词包括的字符的数量,0<t≤length`-1。
可选地,该装置还包括第五确定模块。
第五确定模块,用于当目标三维数组的下标集合在三维数组中对应的所有元素值均表示目标搜索词中对应的两个目标字符,在预设的词集合中的目标词中间隔对应的字符数会共同出现时,确定目标搜索词可以被召回。
本发明实施例所提供的召回确定装置可执行本发明任意实施例所提供的召回确定方法,具备执行方法相应的功能模块和有益效果。
图4为本发明一个实施例提供的计算机设备的结构示意图。如图4所示,该计算机设备包括处理器40和存储器41。该计算机设备中处理器40的数量可以是一个或多个,图4中以一个处理器40为例;该计算机设备的处理器40和存储器41可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的召回确定方法对应的程序指令以及模块(例如,召回确定装置中的第一确定模块31、第二确定模块32以及第三确定模块33)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及召回确定,即实现上述的召回确定方法。
存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实施例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种召回确定方法,该方法包括:
根据目标搜索词包括的目标字符以及预设的字符与字符编码的映射关系,确定所述目标搜索词对应的目标三维数组的下标集合;其中,所述目标三维数组的下标用于表示所述目标搜索词中的第i个目标字符的编码、位于所述第i个目标字符之后的第j个目标字符的编码以及所述第i个目标字符与所述第j个目标字符在所述目标搜索词中间隔的字符数q,0<i≤length-1、1<j≤length且i与j不相等,length表示所述目标搜索词包括的目标字符的数量,0<q≤length-1;
根据所述目标三维数组的下标集合以及预设的三维数组,确定所述目标三维数组的下标集合在所述三维数组中对应的各元素值;其中,所述预设的三维数组的元素用于表示所述预设的字符集合中的任意两个字符,是否会在预设的词集合中的任意词中共同出现;
当所述目标三维数组的下标集合在所述预设的三维数组所对应的各元素值中,只要存在一个元素值,表示所述目标搜索词中对应的两个目标字符,在所述预设的词集合中的任意词中间隔对应的字符数均不会共同出现时,确定所述目标搜索词无法被召回。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的召回确定方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,计算机设备,或者网络设备等)执行本发明各个实施例所述的召回确定方法。
值得注意的是,上述召回确定装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种召回确定方法,其特征在于,包括:
根据目标搜索词包括的目标字符以及预设的字符与字符编码的映射关系,确定所述目标搜索词对应的目标三维数组的下标集合;其中,所述目标三维数组的下标用于表示所述目标搜索词中的第i个目标字符的编码、位于所述第i个目标字符之后的第j个目标字符的编码以及所述第i个目标字符与所述第j个目标字符在所述目标搜索词中间隔的字符数q,0<i≤length-1、1<j≤length且i与j不相等,length表示所述目标搜索词包括的目标字符的数量,0<q≤length-1;
根据所述目标三维数组的下标集合以及预设的三维数组,确定所述目标三维数组的下标集合在所述三维数组中对应的各元素值;其中,所述预设的三维数组的元素用于表示预设的字符集合中的任意两个字符,是否会在预设的词集合中的任意词中共同出现;
当所述目标三维数组的下标集合在所述预设的三维数组所对应的各元素值中,只要存在一个元素值,表示所述目标搜索词中对应的两个目标字符,在所述预设的词集合中的任意词中间隔对应的字符数均不会共同出现时,确定所述目标搜索词无法被召回;
其中,所述根据所述目标三维数组的下标集合以及预设的三维数组,确定所述目标三维数组的下标集合在所述三维数组中对应的各元素值,包括:
按照所述目标三维数组的下标集合中,所述第i个目标字符与所述第j个目标字符在所述目标搜索词中间隔的字符数由大到小的顺序,查询所述目标三维数组的下标集合在所述三维数组中对应的各元素值;
当确定目标下标在所述三维数组中对应的元素值表示所述目标搜索词中对应的两个目标字符,在所述预设的词集合中的任意词中间隔对应的字符数不会共同出现时,停止查询;
其中,所述预设的字符集合中的字符是根据经验数据所确定的,包括汉字、字母以及数字中的至少一种;所述预设的词集合为实体词集。
2.根据权利要求1所述的召回确定方法,其特征在于,所述三维数组为三维布尔数组;
所述根据目标搜索词包括的字符以及预设的字符与字符编码的映射关系,确定所述目标搜索词对应的目标三维数组的下标集合之前,所述方法还包括:
根据预设的字符集合以及所述字符与字符编码的映射关系,构建初始的三维布尔数组;其中,所述初始的三维布尔数组的下标包括:m、n以及p,n表示第一字符的编码,p表示所述第一字符之后的第二字符的编码,m+1表示所述第一字符与所述第二字符之间间隔的字符数,所述初始的三维布尔数组的元素表示所述第一字符与所述第二字符在任何词中间隔m个字符均不会共同出现;
根据预设的词集合,针对每个词中字符的共现关系,更新所述初始的三维布尔数组,形成更新后的三维布尔数组;
将所述更新后的三维布尔数组,作为所述预设的三维数组。
3.根据权利要求2所述的方法,其特征在于,所述针对每个词中字符的共现关系,更新所述初始的三维布尔数组,包括:
针对每个词中字符的编码以及字符的间隔,确定所述词在所述初始的三维布尔数组中的下标集合;
将所述初始的三维布尔数组中,所述词在所述初始的三维布尔数组中的下标集合对应的各元素更新为表示对应的两个字符间隔对应的字符数可以共同出现。
4.根据权利要求3所述的方法,其特征在于,所述针对每个词中字符的编码以及字符的间隔,确定所述词在所述初始的三维布尔数组中的下标集合,包括:
将所述词中第r个字符的编码、位于第r个字符之后的第s个字符的编码以及所述第r个字符与所述第s个字符之间间隔的字符数t减1后的值,作为所述词在所述初始的三维布尔数组中的下标集合;其中,0<r≤length`-1、1<s≤length`且r与s不相等,length`表示所述词包括的字符的数量,0<t≤length`-1。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
当所述目标三维数组的下标集合在所述三维数组中对应的所有元素值均表示所述目标搜索词中对应的两个目标字符,在所述预设的词集合中的目标词中间隔对应的字符数会共同出现时,确定所述目标搜索词可以被召回。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述预设的三维数组占用的字节的数量为:vocab_size×vocab_size×max_span,其中,vocab_size表示所述预设的字符集合中字符的数量,max_span表示预设的字符之间间隔的最大字符数。
7.一种召回确定装置,其特征在于,包括:
第一确定模块,用于根据目标搜索词包括的目标字符以及预设的字符与字符编码的映射关系,确定所述目标搜索词对应的目标三维数组的下标集合;其中,所述目标三维数组的下标用于表示所述目标搜索词中的第i个目标字符的编码、位于所述第i个目标字符之后的第j个目标字符的编码以及所述第i个目标字符与所述第j个目标字符在所述目标搜索词中间隔的字符数q,0<i≤length-1、1<j≤length且i与j不相等,length表示所述目标搜索词包括的目标字符的数量,0<q≤length-1;
第二确定模块,用于根据所述目标三维数组的下标集合以及预设的三维数组,确定所述目标三维数组的下标集合在所述三维数组中对应的各元素值;其中,所述预设的三维数组的元素用于表示预设的字符集合中的任意两个字符,是否会在预设的词集合中的任意词中共同出现;
第三确定模块,用于当所述目标三维数组的下标集合在所述预设的三维数组所对应的各元素值中,只要存在一个元素值,表示所述目标搜索词中对应的两个目标字符,在所述预设的词集合中的任意词中间隔对应的字符数均不会共同出现时,确定所述目标搜索词无法被召回;
其中,所述第二确定模块具体用于:按照所述目标三维数组的下标集合中,所述第i个目标字符与所述第j个目标字符在所述目标搜索词中间隔的字符数由大到小的顺序,查询所述目标三维数组的下标集合在所述三维数组中对应的各元素值;当确定目标下标在所述三维数组中对应的元素值表示所述目标搜索词中对应的两个目标字符,在所述预设的词集合中的任意词中间隔对应的字符数不会共同出现时,停止查询;
其中,所述预设的字符集合中的字符是根据经验数据所确定的,包括汉字、字母以及数字中的至少一种;所述预设的词集合为实体词集。
8.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的召回确定方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的召回确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010885980.3A CN112069366B (zh) | 2020-08-28 | 2020-08-28 | 召回确定方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010885980.3A CN112069366B (zh) | 2020-08-28 | 2020-08-28 | 召回确定方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112069366A CN112069366A (zh) | 2020-12-11 |
CN112069366B true CN112069366B (zh) | 2024-02-09 |
Family
ID=73659620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010885980.3A Active CN112069366B (zh) | 2020-08-28 | 2020-08-28 | 召回确定方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112069366B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002229987A (ja) * | 2001-01-11 | 2002-08-16 | Internatl Business Mach Corp <Ibm> | パターン検索方法、パターン検索装置、コンピュータプログラム及び記憶媒体 |
CN101079070A (zh) * | 2006-05-26 | 2007-11-28 | 国际商业机器公司 | 用于响应于对信息的查询的计算机和方法 |
CN101398830A (zh) * | 2007-09-27 | 2009-04-01 | 阿里巴巴集团控股有限公司 | 词库模糊查询方法及词库模糊查询系统 |
CN107368596A (zh) * | 2017-07-26 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种布隆过滤器查询集合元素的方法及装置 |
CN110019647A (zh) * | 2017-10-25 | 2019-07-16 | 华为技术有限公司 | 一种关键词搜索方法、装置和搜索引擎 |
CN110147330A (zh) * | 2019-05-23 | 2019-08-20 | 深圳市创维软件有限公司 | 一种字模数据的缓存方法、装置、设备和存储介质 |
CN110597855A (zh) * | 2019-08-14 | 2019-12-20 | 中山大学 | 一种数据存储方法、终端设备及计算机可读存储介质 |
CN110598057A (zh) * | 2019-08-30 | 2019-12-20 | 北京电子工程总体研究所 | 一种面向遥测数据的数据搜索方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11055349B2 (en) * | 2018-12-28 | 2021-07-06 | Intel Corporation | Efficient storage and processing of high-dimensional feature vectors |
-
2020
- 2020-08-28 CN CN202010885980.3A patent/CN112069366B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002229987A (ja) * | 2001-01-11 | 2002-08-16 | Internatl Business Mach Corp <Ibm> | パターン検索方法、パターン検索装置、コンピュータプログラム及び記憶媒体 |
CN101079070A (zh) * | 2006-05-26 | 2007-11-28 | 国际商业机器公司 | 用于响应于对信息的查询的计算机和方法 |
CN101398830A (zh) * | 2007-09-27 | 2009-04-01 | 阿里巴巴集团控股有限公司 | 词库模糊查询方法及词库模糊查询系统 |
CN107368596A (zh) * | 2017-07-26 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种布隆过滤器查询集合元素的方法及装置 |
CN110019647A (zh) * | 2017-10-25 | 2019-07-16 | 华为技术有限公司 | 一种关键词搜索方法、装置和搜索引擎 |
CN110147330A (zh) * | 2019-05-23 | 2019-08-20 | 深圳市创维软件有限公司 | 一种字模数据的缓存方法、装置、设备和存储介质 |
CN110597855A (zh) * | 2019-08-14 | 2019-12-20 | 中山大学 | 一种数据存储方法、终端设备及计算机可读存储介质 |
CN110598057A (zh) * | 2019-08-30 | 2019-12-20 | 北京电子工程总体研究所 | 一种面向遥测数据的数据搜索方法及装置 |
Non-Patent Citations (3)
Title |
---|
FAST: Frequency-Aware Indexing for Spatio-Textual Data Streams;Mahmood, AR 等;《34th IEEE International Conference on Data Engineering Workshops》;305-316 * |
一种带有长度和位置约束的字符串索引方法;于长永等;《东北大学学报(自然科学版)》;第39卷(第7期);959-963 * |
分块法的模式匹配算法的研究;巫喜红;《重庆邮电大学学报(自然科学版)》;第26卷(第4期);551-555 * |
Also Published As
Publication number | Publication date |
---|---|
CN112069366A (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108255958B (zh) | 数据查询方法、装置和存储介质 | |
CN109299110B (zh) | 数据查询方法、装置、存储介质和电子设备 | |
US20150234927A1 (en) | Application search method, apparatus, and terminal | |
US7031985B1 (en) | Lexical cache | |
EP3292481B1 (en) | Method, system and computer program product for performing numeric searches | |
US20040015494A1 (en) | Multi-bit patricia trees | |
US9645928B2 (en) | Distributed directory service for in-memory compression unit home location | |
CN108304484A (zh) | 关键词匹配方法及装置、电子设备和可读存储介质 | |
CN102867049B (zh) | 一种基于单词查找树实现的汉语拼音快速分词方法 | |
CN113553339B (zh) | 数据查询方法、中间件、电子装置和存储介质 | |
CN105335481A (zh) | 一种大规模字符串文本的后缀索引构造方法及装置 | |
CN110597852A (zh) | 数据处理方法、装置、终端及存储介质 | |
CN108154024B (zh) | 一种数据检索方法、装置及电子设备 | |
CN113132267A (zh) | 一种分布式系统、数据聚合方法和计算机可读存储介质 | |
CN114741570A (zh) | 图数据库的查询方法、索引创建方法及相关设备 | |
CN112069366B (zh) | 召回确定方法、装置、设备及存储介质 | |
US10241927B2 (en) | Linked-list-based method and device for application caching management | |
CN112540986A (zh) | 一种用于电力大数据快速组合查询的动态索引方法及系统 | |
CN109857740B (zh) | 字符串的存储方法、匹配方法、电子设备及可读存储介质 | |
CN116775695A (zh) | 一种基于索引的动态组合查询优化方法、装置和存储介质 | |
US8572231B2 (en) | Variable-length nonce generation | |
CN111819552A (zh) | 访问控制列表的管理方法及装置 | |
CN114996552A (zh) | 一种数据获取方法及终端 | |
CN116204546A (zh) | Sql预编译方法、装置、服务器和存储介质 | |
CN108984780B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |