CN117131164A - 词库的检索方法和相关装置 - Google Patents
词库的检索方法和相关装置 Download PDFInfo
- Publication number
- CN117131164A CN117131164A CN202210552416.9A CN202210552416A CN117131164A CN 117131164 A CN117131164 A CN 117131164A CN 202210552416 A CN202210552416 A CN 202210552416A CN 117131164 A CN117131164 A CN 117131164A
- Authority
- CN
- China
- Prior art keywords
- character
- entry data
- string
- input
- searched
- 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 109
- 230000008569 process Effects 0.000 claims abstract description 22
- 230000004044 response Effects 0.000 claims abstract description 15
- 230000003139 buffering effect Effects 0.000 claims abstract description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 230000000903 blocking effect Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000008609 bushi Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3325—Reformulation based on results of preceding query
-
- 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/31—Indexing; Data structures therefor; Storage structures
- G06F16/313—Selection or weighting of terms for indexing
-
- 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/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing 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/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
-
- 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/36—Creation of semantic tools, e.g. ontology or thesauri
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种词库的检索方法和相关装置,获取待查输入串中的第一个字符,根据第一个字符从词库中确定检索范围并记录到缓存中。在检索范围中依次对待查输入串的其余字符进行检索,得到满足待查输入串的目标词条,当针对待查输入串中第i个字符进行检索时,从第i‑1个字符对应的缓存中检索得到以前i个字符为前缀的全拼串所在的第一词条数据,并对第一词条数据进行缓存,直到完成针对待查输入串中末尾字符的检索得到目标词条。第i‑1个字符对应的缓存中包括以前i‑1个字符为前缀的全拼串所在的第二词条数据。本申请实现了增量检索,提高了词库的检索性能,提高整个输入法的响应性能,降低输入过程中卡顿的可能性,提升用输入体验。
Description
技术领域
本申请涉及互联网技术领域,特别是涉及一种词库的检索方法和相关装置。
背景技术
随着计算机技术的发展,诸如手机、平板电脑等电子设备越来越普及,给人们的生活、学习、工作带来了极大的便利。这些电子设备通常安装有输入法的应用程序,使得用户可使用该输入法进行信息输入。
输入法中通常会提供词库,通过检索词库,向用户提供候选项。在检索词库时,一般是通过全拼串在词库中匹配到相同的全拼串,进而找到对应的词条作为候选项提供给用户。但是对于包括简拼的待查输入串,需要先基于包括简拼的待查输入串构建全拼串,然后通过上述方法检索词库,进而找到对应的词条作为候选项提供给用户。
然而,对于包括简拼的待查输入串,需要检索其对应的所有全拼串,待查输入串越长,全拼串的组合情况越多,所以在待查输入串为长简拼串的场景下词库的检索性能非常差,以致于会影响整个输入法的响应性能,导致用户输入过程中卡顿,输入体验较差。
发明内容
为了解决上述技术问题,本申请提供了一种词库的检索方法和相关装置,无需构建多种全拼串的组合,无需针对多种全拼串的组合分别进行检索,提高了词库的检索效率,并且由于实现了增量检索,进一步地提高了词库的检索性能,提高整个输入法的响应性能,降低用户输入过程中卡顿的可能性,提升用户的输入体验。
本申请实施例公开了如下技术方案:
一方面,本申请实施例提供一种词库的检索方法,所述方法包括:
获取待查输入串中的第一个字符,所述待查输入串中包括简拼;
根据所述第一个字符,从词库中确定检索范围并记录到缓存中,所述检索范围包括以所述第一个字符为起始字符的全拼串所在的词条数据;
在所述检索范围中依次对所述待查输入串的其余字符进行检索,得到满足所述待查输入串的目标词条;
所述在所述检索范围中依次对所述待查输入串的其余字符进行检索,得到满足所述待查输入串的目标词条的过程中,当针对所述待查输入串中第i个字符进行检索时,从第i-1个字符对应的缓存中检索得到第一词条数据,所述第一词条数据包括以前i个字符为前缀的全拼串所在的词条数据,并对所述第一词条数据进行缓存,直到完成针对所述待查输入串中末尾字符的检索,得到所述目标词条;所述第i-1个字符对应的缓存中包括第二词条数据,所述第二词条数据包括以前i-1个字符为前缀的全拼串所在的词条数据,i的取值为2、3、……N,N为待查输入串的字符数量。
一方面,本申请实施例提供一种词库的检索装置,所述装置包括获取单元、确定单元、缓存单元和检索单元:
所述获取单元,用于获取待查输入串中的第一个字符,所述待查输入串中包括简拼;
所述确定单元,用于根据所述第一个字符,从词库中确定检索范围;
所述缓存单元,用于将所述检索范围记录到缓存中,所述检索范围包括以所述第一个字符为起始字符的全拼串所在的词条数据;
所述检索单元,用于在所述检索范围中依次对所述待查输入串的其余字符进行检索,得到满足所述待查输入串的目标词条;
所述在所述检索范围中依次对所述待查输入串的其余字符进行检索,得到满足所述待查输入串的目标词条的过程中,所述检索单元,具体用于当针对所述待查输入串中第i个字符进行检索时,从第i-1个字符对应的缓存中检索得到第一词条数据,所述第一词条数据包括以前i个字符为前缀的全拼串所在的词条数据,并且所述缓存单元具体用于对所述第一词条数据进行缓存,直到完成针对所述待查输入串中末尾字符的检索,得到所述目标词条;所述第i-1个字符对应的缓存中包括第二词条数据,所述第二词条数据包括以前i-1个字符为前缀的全拼串所在的词条数据,i的取值为2、3、……N,N为待查输入串的字符数量。
一方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行前述任一方面所述的方法。
一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码当被处理器执行时使所述处理器执行前述任一方面所述的方法。
一方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一方面所述的方法。
由上述技术方案可以看出,本申请可以针对包括简拼的待查输入串中的每个字符进行增量检索。具体的,可以获取待查输入串中的第一个字符,进而根据第一个字符从词库中确定检索范围并记录到缓存中,从而使得后续字符的检索仅在该检索范围中进行遍历,从而提高检索效率,检索范围包括以第一个字符为起始字符的全拼串所在的词条数据。然后,在检索范围中依次对待查输入串的其余字符进行检索,得到满足待查输入串的目标词条,具体的,当针对待查输入串中第i个字符进行检索时,从第i-1个字符对应的缓存中检索得到第一词条数据,第一词条数据包括以前i个字符为前缀的全拼串所在的词条数据,并对第一词条数据进行缓存,直到完成针对待查输入串中末尾字符的检索,得到目标词条。其中,第i-1个字符对应的缓存中包括第二词条数据,第二词条数据包括以前i-1个字符为前缀的全拼串所在的词条数据,i的取值为2、3、……N,N为待查输入串的字符数量,从而使得每一次检索都是在前一次检索得到的缓存中进行检索即可,在检索范围的基础上逐渐缩小每一次检索的范围,实现增量检索,提高了词库的检索性能。可见,本申请即使在长简拼输入情况下,无需构建多种全拼串的组合,无需针对多种全拼串的组合分别进行检索,提高了词库的检索效率,并且由于实现了增量检索,进一步地提高了词库的检索性能,提高整个输入法的响应性能,降低用户输入过程中卡顿的可能性,提升用户的输入体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术成员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种词库的示例图;
图2为本申请实施例提供的一种词库的检索方法的应用场景架构图;
图3为本申请实施例提供的一种词库的检索方法的流程图;
图4为本申请实施例提供的一种从词库中确定检索范围的示例图;
图5为本申请实施例提供的一种通过位图记录以前两个字符“bs”为前缀的全拼串对应的词条数据的示例图;
图6为本申请实施例提供的一种通过位图记录以前四个字符“bsd”为前缀的全拼串对应的词条数据的示例图;
图7为本申请实施例提供的一种通过位图记录以前两个字符“bsdb”为前缀的全拼串对应的词条数据的示例图;
图8为本申请实施例提供的另一种词库的检索方法的流程图;
图9为本申请实施例提供的一种词库的检索装置的结构图;
图10为本申请实施例提供的一种终端的结构图;
图11为本申请实施例提供的一种服务器的结构图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
输入法中通常会提供词库,通过检索词库,向用户提供候选项。词库也可以成为用户词库,用户词库可以用来记录用户输入的内容,并且提供根据输入串检索词条的能力,用来优化同音下候选项的排序,使得提供的候选项更加精准。
用户词库的格式一般包括两部分,索引区+数据区,索引区一般存储指向数据的偏移,并且按照拼音的字符序排序,这样可以通过二分法进行检索。数据区则存储具体的词条数据,词条数据是与输入串对应的词条的相关数据,例如可以包括全拼串、词条以及词条的附带信息,附带信息例如可以是用户上屏该词条的上屏频次等。参见图1,图1是一种用户词库的示意图,可见该用户词库中存储了10条词条数据,其索引区的偏移值依次为偏移1、偏移2、偏移3、偏移4、偏移5、偏移6、偏移7、偏移8、偏移9,数据区的全拼串例如包括“a”、“bushi”、“bushiba”、……,词条依次是“啊”、“不是”、“不是吧”、……,以及上屏频次依次是“1”、“8”、“5”、……。另外有两个空闲空间,其中,标识为空闲1的索引区以及标识为空闲11、空闲12、空闲13的数据区构成一个空闲空间,标识为空闲2的索引区以及标识为空闲21、空闲22、空闲23的数据区构成另一个空闲空间。
因为用户词库需要支持快速的增删改的操作,而采用别的索引方式(比如Trie树)无法做到快速增加词条数据的操作,所以用户词库通常采用上述相对简单的索引结构,插入一条新的词条数据时,只需要将待插入的词条数据追加到数据区的末尾,然后将该词条数据存储在数据区的偏移值插入到索引区合适的位置,保证按照拼音有序的。一般用户词库会预留大量空闲空间,在有空闲空间的情况下,可以按照上述方法直接添加词条数据,如果没有足够的空闲空间,需要先进行扩充词库容量,然后再按照上述方法添加词条数据。
在检索词库时,一般是通过全拼串在词库中匹配到相同的全拼串(例如一般是通过全拼串在索引区中进行二分检索),进而找到对应的词条作为候选项提供给用户。但是对于包括简拼的待查输入串,需要先基于包括简拼的待查输入串构建全拼串,然后通过上述方法检索词库,进而找到对应的词条作为候选项提供给用户。
然而,对于包括简拼的待查输入串,需要检索其对应的所有全拼串,待查输入串越长,全拼串的组合情况越多,所以在待查输入串为长简拼串的场景下词库的检索性能非常差,以致于会影响整个输入法的响应性能,导致用户输入过程中卡顿,输入体验较差。
其中,全拼串是指由全拼构成的输入串,全拼是指输入串是由一个或者多个完整的音节组成的,比如“ni’hao”,音节是由声母和韵母相拼组成的语音单位,单个韵母也可以是一个音节,比如“ni”或是“a”。简拼串是指由简拼构成的输入串,简拼是指输入串不是全拼,即存在不能构成完整音节的情况,比如“n’h”。
为了解决上述技术问题,本申请实施例提供一种词库的检索方法,该方法针对包括简拼的待查输入串中的每个字符进行增量检索。从而无需构建多种全拼串的组合,无需针对多种全拼串的组合分别进行检索,提高了词库的检索效率,并且由于实现了增量检索,进一步地提高了词库的检索性能,提高整个输入法的响应性能,降低用户输入过程中卡顿的可能性,提升用户的输入体验。其中,字符可以包括字母、数字、符号等,字母是指拼音文字或注音符号的最小书写单位,例如b、s、d、b、a、sh等,为了便于介绍,本申请实施例主要以字符包括字母为例进行介绍。
需要说明的是,本申请实施例可以应用于各种输入法产品中。本申请实施例提供的方法可以由计算机设备执行,计算机设备可以是终端,也可以是服务器,终端上可以安装输入法产品,服务器用于提供输入法产品对应的输入法服务。当计算机设备是服务器时,终端在接收到用户当前的输入信息后,需要将用户当前的输入信息发送给服务器。用户当前的输入信息例如可以是待查输入串或者待查输入串中的任一个字符。
如图2所示,图2示出了一种词库的检索方法的应用场景架构图,该应用场景以终端执行本申请实施例提供的词库的检索方法为例进行介绍。在该应用场景中可以包括终端100,终端100上可以安装输入法产品。终端100包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。本申请实施例提供的方法可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
用户可以通过终端100上的输入法产品实现待查输入串的输入,进而使得终端100通过输入法产品为用户提供候选项,以实现文字的输入。其中,待查输入串为用户将要输入的、以通过检索词库提供候选项的输入串。
终端100通过输入法产品为用户提供候选项时,可以对词库进行检索,进而基于检索结果为用户提供候选项。具体的,终端100可以包括简拼的待查输入串中的第一个字符,进而根据第一个字符从词库中确定检索范围并记录到缓存中,从而使得后续字符的检索仅在该检索范围中进行遍历,从而提高检索效率,检索范围包括以第一个字符为起始字符的全拼串所在的词条数据。
然后,终端100可以在检索范围中依次对待查输入串的其余字符进行检索,得到满足待查输入串的目标词条。终端100在检索范围中依次对待查输入串的其余字符进行检索,得到满足待查输入串的目标词条的过程中,当针对待查输入串中第i个字符进行检索时,终端100可以从第i-1个字符对应的缓存中检索得到第一词条数据,第一词条数据包括以前i个字符为前缀的全拼串所在的词条数据,并对第一词条数据进行缓存,直到完成针对待查输入串中末尾字符的检索,得到目标词条。
其中,第i-1个字符对应的缓存中包括第二词条数据,第二词条数据包括以前i-1个字符为前缀的全拼串所在的词条数据,i的取值为2、3、……N,N为待查输入串的字符数量,从而使得每一次检索都是在前一次检索得到的缓存中进行检索即可,在检索范围的基础上逐渐缩小每一次检索的范围,实现增量检索,提高了词库的检索性能。
比如用户输入的待查输入串为“jttqzh”,如果用相关技术检索词库,需要先生成“jttqzh”的全拼串,一般简拼串长度越长,生成的全拼串规模越庞大,这里的全拼串大约有百万量级,再依次检索词库,可想而知,性能是很差的。而通过本申请实施例提供的方法,可以增量检索,即针对输入的第一个字符“j”检索时,检索词库时会将“j”为起始字符的全拼串所在的词条数据缓存下来作为检索范围,后续检索可以直接在该检索范围中进行。当针对输入的第二个字符“t”进行检索时(此时i=2),就可以在缓存中进行检索了,同时会将以“jt”为前缀的词条数据更新到缓存中,依次类推,当输入到“jttqz”时,会将以“jttqz”为前缀的词条数据更新到缓存中,输入最后一个字符“jttqzh”时,直接在前一个字符对应的缓存中检索即可得到目标词条。
可见,本申请即使在长简拼输入情况下,无需构建多种全拼串的组合,无需针对多种全拼串的组合分别进行检索,提高了词库的检索效率,并且由于实现了增量检索,进一步地提高了词库的检索性能,提高整个输入法的响应性能,降低用户输入过程中卡顿的可能性,提升用户的输入体验。
接下来,将以终端执行本申请实施例提供的方法为例,结合附图对本申请实施例提供的词库的检索方法进行详细介绍。参见图3,图3示出了一种词库的检索方法的流程图,所述方法包括:
S301、获取待查输入串中的第一个字符,所述待查输入串中包括简拼。
当用户希望通过终端上安装的输入法产品输入文字时,用户可以通过终端上的输入法输入对应的输入串作为待查输入串,以便终端可以根据该待查输入串为用户提供候选项,帮助用户实现文字的输入。其中,待查输入串中包括简拼,即待查输入串可以完全是简拼串,例如“bsdb”,其对应的全拼串中每个拼音只要是以“b”、“s”、“d”、“b”为首字母即可,故基于待查输入串对应的可能的全拼串,其候选项可以是“不是的吧”、“不舍得吧”、“巴适得板”、“北师大版”等等;待查输入串也可以是简拼和全拼的混合,例如“busdb”,此时其对应的全拼串中需要包括拼音“bu”,以及其余三个以“s”、“d”、“b”为首字母的拼音,故基于待查输入串对应的可能的全拼串,其候选项可以是“不是的吧”、“不舍得吧”,可见与“bsdb”对应的候选项有所不同,且候选项少了一些可能。
在进行词库检索时,为了避免根据包括简拼的待查输入串构建多个全拼串,进而避免根据多个全拼串分别进行检索导致词库的检索性能降低,本申请实施例可以无需构建全拼串,针对待查输入串中的每个字符依次进行检索。例如可以先针对待查输入串的第一个字符进行检索,故可以先获取第一个字符。
可以理解的是,终端为用户提供候选项时,可以通过检索词库为用户提供候选项。而检索词库的时机可以包括多种,一种可以是在用户完成全部待查输入串的输入后,再进行词库检索,此时,获取待查输入串中的第一个字符的方式可以是在完成待查输入串的输入后,获取待查输入串,然后对待查输入串进行字符划分得到划分结果,进而基于划分结果获取第一个字符。其余字符的获取方式与第一个字符类似,也是基于划分结果进行获取。
例如待查输入串是“bsdb”,对“bsdb”进行字符划分得到划分结果,划分结果包括4个字符,按照输入顺序依次是“b”、“s”、“d”、“b”,故第一个字符是“b”。
在这种情况下,判断用户完成全部待查输入串的输入的条件可以是在用户完成针对目标字符的输入操作后,若超出预设时长未检测到字符输入操作,则获取目标字符及目标字符之前输入的其他字符作为待查输入串,目标字符为待查输入串的末尾字符。
另一种可以是用户每输入一个字符,便进行一次词库检索,直到完成末尾字符的检索为止。此时,获取待查输入串中的第一个字符的方式可以是响应于针对第一个字符的输入操作,获取第一个字符。例如,若用户希望输入的是“bsdb”,则用户可以依次输入每个字符,当用户输入第一个字符“b”,终端可以响应于针对“b”的输入操作,获取第一个字符“b”,以针对第一个字“b”检索词库。
S302、根据第一个字符,从词库中确定检索范围并记录到缓存中,检索范围包括以第一个字符为起始字符的全拼串所在的词条数据。
当终端针对待查输入串的第一个字符进行检索时,可以从词库中确定以该第一个字符为起始字符的全拼串所在的词条数据的上下边界,基于该上下边界确定检索范围,然后再在该检索范围里遍历,以找出满足该待查输入串的目标词条,即是检索目标。
以图1所示的词库为例,若待查输入串是“bsdb”,终端可以获取第一个字符“b”,对“b”进行词库检索,确定以“b”为起始字符的全拼串对应的词条数据的上下边界,即第2条词条数据和第7条词条数据,将第2条词条数据到第7条词条数据之间的词条数据确定为检索范围,参见图4所示,检索范围通过黑色填充表示。
需要说明的是,在本申请实施例中,针对每个字符进行词库检索时,可以采用二分检索。二分检索又称折半检索,优点是比较次数少,检索速度快,平均性能好,适用于不经常变动而检索频繁的有序列表。而词库在一定程度上是不经常变动而检索频繁的有序列表,故可以通过二分检索实现词库检索。
若基于二分检索的方式针对第一个字符“b”进行检索,可以确定通过两次二分检索,便可以得到第2条词条数据到第7条词条数据之间的词条数据作为检索范围。
S303、在检索范围中依次对待查输入串的其余字符进行检索,得到满足待查输入串的目标词条。
然后,终端在该检索范围里遍历,依次对待查输入串的其余字符进行检索,得到满足待查输入串的目标词条,即是检索目标。仍以待查输入串是“bsdb”为例,若针对第一个字符“b”确定出检索范围如图4所示,即第2条词条数据到第7条词条数据,然后再从第2条词条数据到第7条词条数据,找到满足“bsdb”的词条数据只有1条,即包括词条“不是的吧”的词条数据,从而完成词库的检索。
S304、在检索范围中依次对待查输入串的其余字符进行检索,得到满足待查输入串的目标词条的过程中,当针对待查输入串中第i个字符进行检索时,从第i-1个字符对应的缓存中检索得到第一词条数据,第一词条数据包括以前i个字符为前缀的全拼串所在的词条数据,并对第一词条数据进行缓存,直到完成针对待查输入串中末尾字符的检索,得到目标词条。
其中,第i-1个字符对应的缓存中包括第二词条数据,第二词条数据包括以前i-1个字符为前缀的全拼串所在的词条数据,i的取值为2、3、……N,N为待查输入串的字符数量。也就是说,当针对第i-1个字符进行检索,得到以前i-1个字符为前缀的全拼串所在的第二词条数据后,可以将第二词条数据进行缓存,从而当针对第i个字符进行词库检索时,可以直接从第i-1个字符对应的缓存(即第二词条数据)中检索得到第一词条数据,第一词条数据包括以前i个字符为前缀的全拼串所在的词条数据,并对第一词条数据进行缓存,依次类推。
以待查输入串是“bsdb”为例,若针对第一个字符“b”确定出检索范围如图4所示,当针对第二个字符“s”进行词库检索时,可以得到以“bs”为前缀的全拼串所在的词条数据,例如图4中第3条词条数据到第6条词条数据,将第3条词条数据到第6条词条数据进行缓存。当针对第三个字符“d”进行词库检索时,可以得到以“bsd”为前缀的全拼串所在的词条数据,例如图4中第5条词条数据,将第5条词条数据进行缓存。针对第四个字符“b”进行词库检索时,得到满足“bsdb”的目标词条,即第5条词条数据中的词条“不是的吧”。
随着用户的输入,逐渐缩减检索范围,非常适用于输入法的日常输入场景,提高检索性能,进而提高用户的输入体验。
需要说明的是,当检索词库的时机是用户每输入一个字符,便进行一次词库检索时,针对待查输入串中第i个字符进行检索的方式可以是响应于针对第i个字符的输入操作,获取第i个字符并对第i个字符进行检索。当完成末尾字符的词库检索,则得到目标词条。
相应的,末尾字符的判断条件是在获取到目标字符后,若超出预设时长未检测到字符输入操作,将目标字符作为待查输入串的末尾字符。
当检索词库的时机是用户每输入一个字符,便进行一次词库检索时,为了使得用户可以快速的获取到希望输入的文字,在本申请实施例中,可以在用户每输入一个字符后,便基于当前输入的所有字符为用户提供可能的词条作为候选项,以供用户选择。在这种情况下,从第i-1个字符对应的缓存中检索得到第一词条数据的方式可以是从第i-1个字符对应的缓存中进行检索,得到第一词条数据以及与前i个字符匹配的目标全拼串,进而将目标全拼串所在的词条数据中的词条作为候选项进行展示。
相应的,在确定检索范围的同时,也可以确定与第一个字符匹配的全拼串,进而将与第一个字符匹配的全拼串所在的词条数据中的词条作为候选项进行展示。
继续以待查输入串是“bsdb”,针对第一个字符“b”确定出检索范围如图4所示,若词库中在“bushi”所在词条数据之前还包括另一条词条数据,且该词条数据中包括全拼串“bu”、词条“不”,则在确定出检索范围的同时,还可以确定出与“b”匹配的全拼串“bu”所在的词条数据中的词条作为候选项提供给用户。当针对第二个字符(i=2)“s”进行词库检索时,可以从第1(i-1=1)个字符对应的缓存中进行检索,得到第一词条数据(例如图4中第3条词条数据到第6条词条数据)以及与前i个字符(例如“bs”)匹配的目标全拼串“bushi”,进而将目标全拼串所在的词条数据中的词条(例如“不是”)作为候选项进行展示。当针对第三个字符(i=3)“d”进行词库检索时,可以从第1(i-1=2)个字符对应的缓存中进行检索,得到第一词条数据(例如图4中第5条词条数据)以及与前i个字符(例如“bsd”)匹配的目标全拼串“bushide”,进而将目标全拼串所在的词条数据中的词条(例如“不是的”)作为候选项进行展示。当针对第四个字符(i=4)“b”进行词库检索时,可以从第3(i-1=3)个字符对应的缓存中进行检索,此时直接得到满足“bsdb”的目标词条,即第5条词条数据中的词条“不是的吧”,停止检索。
通过这种一遍输入字符,一边进行候选项的提供,可以及时、快速的为用户提供可能输入的词条,提高输入效率和用户的输入体验。
需要说明的是,在将目标全拼串所在的词条数据中的词条作为候选项进行展示时,由于确定出的目标全拼串可能包括多个,目标全拼串所在的词条数据中的词条也可能包括多个,这就导致多个词条在向用户展示时有先后顺序。为此,需要确定不同词条在向用户展示时的先后顺序。在一种可能的实现方式中,终端可以根据目标全拼串所在的词条数据中的上屏频次,确定目标全拼串所在的词条数据中词条的展示优先级,通常情况下,上屏频次越高,表示用户输入该词条数据中的词条的几率越高,则可以将其优先展示,即上屏频次越高,展示优先级越高。然后,按照优先级从高到低的顺序,将目标全拼串所在的词条数据中的词条作为候选项进行展示。
通过这种方法可以将用户更有可能选择上屏的词条优先展示,从而便于用户快速的获取到希望上屏的词条,提高输入效率。
需要说明的是,在本申请实施例中,与用户相关的数据(例如上屏频次等数据)的获取或处理都是经过用户授权许可的。
由上述技术方案可以看出,本申请可以针对包括简拼的待查输入串中的每个字符进行增量检索。具体的,可以获取待查输入串中的第一个字符,进而根据第一个字符从词库中确定检索范围并记录到缓存中,从而使得后续字符的检索仅在该检索范围中进行遍历,从而提高检索效率,检索范围包括以第一个字符为起始字符的全拼串所在的词条数据。然后,在检索范围中依次对待查输入串的其余字符进行检索,得到满足待查输入串的目标词条,具体的,当针对待查输入串中第i个字符进行检索时,从第i-1个字符对应的缓存中检索得到第一词条数据,第一词条数据包括以前i个字符为前缀的全拼串所在的词条数据,并对第一词条数据进行缓存,直到完成针对待查输入串中末尾字符的检索,得到目标词条。其中,第i-1个字符对应的缓存中包括第二词条数据,第二词条数据包括以前i-1个字符为前缀的全拼串所在的词条数据,i的取值为2、3、……N,N为待查输入串的字符数量,从而使得每一次检索都是在前一次检索得到的缓存中进行检索即可,在检索范围的基础上逐渐缩小每一次检索的范围,实现增量检索,提高了词库的检索性能。可见,本申请即使在长简拼输入情况下,无需构建多种全拼串的组合,无需针对多种全拼串的组合分别进行检索,提高了词库的检索效率,并且由于实现了增量检索,进一步地提高了词库的检索性能,提高整个输入法的响应性能,降低用户输入过程中卡顿的可能性,提升用户的输入体验。
通过本申请实施例提供的词库的检索方法,在针对待查输入串“bsdb”进行词库检索时,只用了十多次查询即可完成该次检索,而如果用相关技术提供的查询,需要进行十万次查询,由此可见,本申请实施例提供的词库的检索方法可以大大提高检索性能,提高整个输入法的响应性能。
可以理解的是,本申请实施例针对当前字符(例如第i个字符)的词库检索,是在前一个字符(例如第i-1个字符)对应的缓存中进行的,而前一个字符(例如第i-1个字符)对应的缓存中包括以前i个字符为前缀的全拼串所在的词条数据,从而随着用户的输入,检索范围逐渐缩小,实现增量检索,提高检索效率。然而,由于需要对每次检索得到的词条数据进行缓存,如果词库规模很大的情况下,例如词库中存在30w条词条数据,缓存所需要的内存也就随之增加。因此,为了降低内存的占用,在一种可能的实现方式中,可以引入位图的数据结构。将词库用位图来简单描述,每一条词条数据对应位图中的1bit,故对第一词条数据进行缓存的方式可以是使用位图记录第一词条数据。
其中,位图(bitmap)是一块连续的存储空间中,以位(bit)作为单位来表示数,位上设置不同的标识可以表示不同的含义。通常情况下,标识可以用数字表示,例如可以通过0或1表示,0表示不是(即不是第一词条数据,该条词条数据不满足查询条件),1表示是(即是第一词条数据,该条词条数据满足查询条件)。
基于此,使用位图记录第一词条数据的方式可以是根据第一词条数据在词库中的位置,将位图中第一词条数据对应的位设置为满足查询条件的标识,将位图中其余词条数据对应的位设置为不满足查询条件的标识。
在使用位图的数据结构的情况下,词库的检索方法具体如下:检索第一个字符时,可以通过两次二分检索词库索引区,可以确定以该字符为起始字符的全拼串对应的词条数据的上下边界,这样就可以基于上下边界确定检索范围,进而在检索范围内检索满足前两个字符的词条数据,并且将以前两个字符为前缀的词条数据缓存下来,缓存方法就是使用位图来记录,即该词条数据在词库的位置对应位图的第几bit,比如该词条数据是词库中的第N条词条数据,那么在位图中第N bit设置满足查询条件的标识,例如设置1,表示该词条数据满足下次查询的条件。检索前3个字符就可以遍历位图,只需要查询bit设置为1对应的词库的词条数据,同时将满足以前三个字符为前缀的词条数据重新更新位图,依次类推,逐渐缩小检索范围,下一次输入只需要查询位图中bit为1的词条数据。
继续以待查输入串是“bsdb”,当用户输入b的时候,通过两次二分检索确定以“b”为起始字符的全拼串对应的词条数据的上下边界,即第2条词条数据和第7条词条数据,将第2条词条数据到第7条词条数据之间的词条数据确定为检索范围,参见图4中黑色填充所示。当用户再输入“s”的时候,再在刚才确定的检索范围里遍历,将以“bs”为前缀的全拼串对应的词条数据记录到位图里,即在对应的位设置标识“1”,如图5所示。当用户再输入“d”时,将遍历位图中bit为1的词条数据,同时将以“bsd”为前缀的全拼串对应的词条数据记录到新的位图,如图6所示。当用户输入“b”,同样遍历新位图中bit为1的词条数据,满足“bsdb”的词条数据中的词条即是检索的目标词条,同时会更新位图。因为词库中没有以“bsdb”为前缀的全拼串对应的词条数据了,所以位图全是0,如图7所示。在图7中灰色所示的词条数据中的词条“不是的吧”即为目标词条。
本方案引入位图的数据结构,使得词库检索支持增量检索,大大提升词库的检索性能,同时由于位图的数据结构内存占用很小,对于输入法产品来说完全可以接受。举个例子,假设词库的规模是32w条词条数据,对应到位图上,需要一个32wbit大小的位图,即32w/8=40kb,可见新增内存占用很小。也就是说,通过位图的数据结构的使用,不仅能够提升检索词库的性能,而且能够支持词库的增量检索,在实现增量检索的情况下,大大降低内存的占用,从而能够最大限度提升长简拼输入情况下对大容量词库的检索性能,避免用户输入过程的卡顿情况,提升用户的输入体验。
本申请实施例大大提升检索词库的性能,尤其是包括简拼的检索词库的性能,通过对于简拼检索的评测,输入法产品的内核转换性能提升80%。
基于以上介绍,本申请实施例还提供一种词库的检索方法,该方法引入位图的数据结构,基于此,词库的检索方法可以参见图8所示,所述方法包括:
S801、终端响应于用于针对第一个字符的输入操作,开始检索词库。
S802、通过第一个字符确定检索范围。
具体的,可以通过该第一个字符确定以该第一个字符为起始字符的全拼串对应的词条数据的上下边界,进而根据上下边界确定检索范围。该检索范围包括以该第一个字符为起始字符的全拼串对应的词条数据。
S803、在检索范围内检索满足前两个字符的词条数据。
S804、将后续满足查询条件的词条数据使用位图来记录。
当针对第i个字符进行检索时,后续满足查询条件的词条数据通常是以前i个字符为前缀的全拼串所在的词条数据。
S805、确定是否检索到待查输入串的末尾字符,若是,检索词库结束,若否,执行S806。
S806、通过位图快速检索满足前i个字符的词条数据。
需要说明的是,本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
基于图3对应实施例提供的词库的检索方法,本申请实施例还提供一种词库的检索装置900。参见图9,所述词库的检索装置900包括获取单元901、确定单元902、缓存单元903和检索单元904:
所述获取单元901,用于获取待查输入串中的第一个字符,所述待查输入串中包括简拼;
所述确定单元902,用于根据所述第一个字符,从词库中确定检索范围;
所述缓存单元903,用于将所述检索范围记录到缓存中,所述检索范围包括以所述第一个字符为起始字符的全拼串所在的词条数据;
所述检索单元904,用于在所述检索范围中依次对所述待查输入串的其余字符进行检索,得到满足所述待查输入串的目标词条;
所述在所述检索范围中依次对所述待查输入串的其余字符进行检索,得到满足所述待查输入串的目标词条的过程中,所述检索单元904,具体用于当针对所述待查输入串中第i个字符进行检索时,从第i-1个字符对应的缓存中检索得到第一词条数据,所述第一词条数据包括以前i个字符为前缀的全拼串所在的词条数据,并且所述缓存单元903具体用于对所述第一词条数据进行缓存,直到完成针对所述待查输入串中末尾字符的检索,得到所述目标词条;所述第i-1个字符对应的缓存中包括第二词条数据,所述第二词条数据包括以前i-1个字符为前缀的全拼串所在的词条数据,i的取值为2、3、……N,N为待查输入串的字符数量。。
在一种可能的实现方式中,所述缓存单元903,具体用于:
使用位图记录所述第一词条数据。
在一种可能的实现方式中,所述缓存单元903,具体用于:
根据所述第一词条数据在所述词库中的位置,将所述位图中所述第一词条数据对应的位设置为满足查询条件的标识;
将所述位图中其余词条数据对应的位设置为不满足查询条件的标识。
在一种可能的实现方式中,所述获取单元901,具体用于:
在完成所述待查输入串的输入后,获取所述待查输入串;
对所述待查输入串进行字符划分,得到划分结果;
基于所述划分结果获取所述第一个字符。
在一种可能的实现方式中,所述获取单元901,具体用于:
响应于针对所述第一个字符的输入操作,获取所述第一个字符;
所述检索单元904,具体用于:
响应于针对所述第i个字符的输入操作,获取所述第i个字符并对所述第i个字符进行检索。
在一种可能的实现方式中,所述末尾字符的判断条件包括:
在获取到目标字符后,若超出预设时长未检测到字符输入操作,将所述目标字符作为所述待查输入串的末尾字符。
在一种可能的实现方式中,所述装置还包括展示单元:
所述检索单元904,具体用于从所述第i-1个字符对应的缓存中进行检索,得到所述第一词条数据以及与前i个字符匹配的目标全拼串;
所述展示单元,用于将所述目标全拼串所在的词条数据中的词条作为候选项进行展示。
在一种可能的实现方式中,所述展示单元,具体用于:
根据所述目标全拼串所在的词条数据中的上屏频次,确定所述目标全拼串所在的词条数据中词条的展示优先级;
按照所述展示优先级从高到低的顺序,将所述目标全拼串所在的词条数据中的词条作为候选项进行展示。
本申请实施例还提供了一种计算机设备,该计算机设备可以执行词库的检索方法。该计算机设备例如可以是终端,以终端为智能手机为例:
图10示出的是与本申请实施例提供的智能手机的部分结构的框图。参考图10,智能手机包括:射频(英文全称:Radio Frequency,英文缩写:RF)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(英文缩写:WiFi)模块1070、处理器1080、以及电源1090等部件。输入单元1030可包括触控面板1031以及其他输入设备1032,显示单元1040可包括显示面板1041,音频电路1060可以包括扬声器1061和传声器1062。可以理解的是,图10中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器1080是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行智能手机的各种功能和处理数据。可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
在本实施例中,智能手机中的处理器1080可以执行以下步骤:
获取待查输入串中的第一个字符,所述待查输入串中包括简拼;
根据所述第一个字符,从词库中确定检索范围并记录到缓存中,所述检索范围包括以所述第一个字符为起始字符的全拼串所在的词条数据;
在所述检索范围中依次对所述待查输入串的其余字符进行检索,得到满足所述待查输入串的目标词条;
所述在所述检索范围中依次对所述待查输入串的其余字符进行检索,得到满足所述待查输入串的目标词条的过程中,当针对所述待查输入串中第i个字符进行检索时,从第i-1个字符对应的缓存中检索得到第一词条数据,所述第一词条数据包括以前i个字符为前缀的全拼串所在的词条数据,并对所述第一词条数据进行缓存,直到完成针对所述待查输入串中末尾字符的检索,得到所述目标词条;所述第i-1个字符对应的缓存中包括第二词条数据,所述第二词条数据包括以前i-1个字符为前缀的全拼串所在的词条数据,i的取值为2、3、……N,N为待查输入串的字符数量。
本申请实施例提供的计算机设备还可以是服务器,请参见图11所示,图11为本申请实施例提供的服务器1100的结构图,服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,简称CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。
服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
在本实施例中,服务器1100中的中央处理器1122可以执行以下步骤:
获取待查输入串中的第一个字符,所述待查输入串中包括简拼;
根据所述第一个字符,从词库中确定检索范围并记录到缓存中,所述检索范围包括以所述第一个字符为起始字符的全拼串所在的词条数据;
在所述检索范围中依次对所述待查输入串的其余字符进行检索,得到满足所述待查输入串的目标词条;
所述在所述检索范围中依次对所述待查输入串的其余字符进行检索,得到满足所述待查输入串的目标词条的过程中,当针对所述待查输入串中第i个字符进行检索时,从第i-1个字符对应的缓存中检索得到第一词条数据,所述第一词条数据包括以前i个字符为前缀的全拼串所在的词条数据,并对所述第一词条数据进行缓存,直到完成针对所述待查输入串中末尾字符的检索,得到所述目标词条;所述第i-1个字符对应的缓存中包括第二词条数据,所述第二词条数据包括以前i-1个字符为前缀的全拼串所在的词条数据,i的取值为2、3、……N,N为待查输入串的字符数量。
根据本申请的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行前述各个实施例所述的词库的检索方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例各种可选实现方式中提供的方法。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术成员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (14)
1.一种词库的检索方法,其特征在于,所述方法包括:
获取待查输入串中的第一个字符,所述待查输入串中包括简拼;
根据所述第一个字符,从词库中确定检索范围并记录到缓存中,所述检索范围包括以所述第一个字符为起始字符的全拼串所在的词条数据;
在所述检索范围中依次对所述待查输入串的其余字符进行检索,得到满足所述待查输入串的目标词条;
所述在所述检索范围中依次对所述待查输入串的其余字符进行检索,得到满足所述待查输入串的目标词条的过程中,当针对所述待查输入串中第i个字符进行检索时,从第i-1个字符对应的缓存中检索得到第一词条数据,所述第一词条数据包括以前i个字符为前缀的全拼串所在的词条数据,并对所述第一词条数据进行缓存,直到完成针对所述待查输入串中末尾字符的检索,得到所述目标词条;所述第i-1个字符对应的缓存中包括第二词条数据,所述第二词条数据包括以前i-1个字符为前缀的全拼串所在的词条数据,i的取值为2、3、……N,N为待查输入串的字符数量。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一词条数据进行缓存,包括:
使用位图记录所述第一词条数据。
3.根据权利要求2所述的方法,其特征在于,所述使用位图记录所述第一词条数据,包括:
根据所述第一词条数据在所述词库中的位置,将所述位图中所述第一词条数据对应的位设置为满足查询条件的标识;
将所述位图中其余词条数据对应的位设置为不满足查询条件的标识。
4.根据权利要求1所述的方法,其特征在于,所述获取待查输入串中的第一个字符,包括:
在完成所述待查输入串的输入后,获取所述待查输入串;
对所述待查输入串进行字符划分,得到划分结果;
基于所述划分结果获取所述第一个字符。
5.根据权利要求1所述的方法,其特征在于,所述获取待查输入串中的第一个字符,包括:
响应于针对所述第一个字符的输入操作,获取所述第一个字符;
针对所述待查输入串中第i个字符进行检索,包括:
响应于针对所述第i个字符的输入操作,获取所述第i个字符并对所述第i个字符进行检索。
6.根据权利要求5所述的方法,其特征在于,所述末尾字符的判断条件包括:
在获取到目标字符后,若超出预设时长未检测到字符输入操作,将所述目标字符作为所述待查输入串的末尾字符。
7.根据权利要求5所述的方法,其特征在于,所述从第i-1个字符对应的缓存中检索得到第一词条数据,包括:
从所述第i-1个字符对应的缓存中进行检索,得到所述第一词条数据以及与前i个字符匹配的目标全拼串;
所述方法还包括:
将所述目标全拼串所在的词条数据中的词条作为候选项进行展示。
8.根据权利要求7所述的方法,其特征在于,所述将所述目标全拼串所在的词条数据中的词条作为候选项进行展示,包括:
根据所述目标全拼串所在的词条数据中的上屏频次,确定所述目标全拼串所在的词条数据中词条的展示优先级;
按照所述展示优先级从高到低的顺序,将所述目标全拼串所在的词条数据中的词条作为候选项进行展示。
9.一种词库的检索装置,其特征在于,所述装置包括获取单元、确定单元、缓存单元和检索单元:
所述获取单元,用于获取待查输入串中的第一个字符,所述待查输入串中包括简拼;
所述确定单元,用于根据所述第一个字符,从词库中确定检索范围;
所述缓存单元,用于将所述检索范围记录到缓存中,所述检索范围包括以所述第一个字符为起始字符的全拼串所在的词条数据;
所述检索单元,用于在所述检索范围中依次对所述待查输入串的其余字符进行检索,得到满足所述待查输入串的目标词条;
所述在所述检索范围中依次对所述待查输入串的其余字符进行检索,得到满足所述待查输入串的目标词条的过程中,所述检索单元,具体用于当针对所述待查输入串中第i个字符进行检索时,从第i-1个字符对应的缓存中检索得到第一词条数据,所述第一词条数据包括以前i个字符为前缀的全拼串所在的词条数据,并且所述缓存单元具体用于对所述第一词条数据进行缓存,直到完成针对所述待查输入串中末尾字符的检索,得到所述目标词条;所述第i-1个字符对应的缓存中包括第二词条数据,所述第二词条数据包括以前i-1个字符为前缀的全拼串所在的词条数据,i的取值为2、3、……N,N为待查输入串的字符数量。
10.根据权利要求9所述的装置,其特征在于,所述缓存单元,具体用于:
使用位图记录所述第一词条数据。
11.根据权利要求10所述的装置,其特征在于,所述缓存单元,具体用于:
根据所述第一词条数据在所述词库中的位置,将所述位图中所述第一词条数据对应的位设置为满足查询条件的标识;
将所述位图中其余词条数据对应的位设置为不满足查询条件的标识。
12.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-8任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码当被处理器执行时使所述处理器执行权利要求1-8任一项所述的方法。
14.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210552416.9A CN117131164A (zh) | 2022-05-20 | 2022-05-20 | 词库的检索方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210552416.9A CN117131164A (zh) | 2022-05-20 | 2022-05-20 | 词库的检索方法和相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117131164A true CN117131164A (zh) | 2023-11-28 |
Family
ID=88849582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210552416.9A Pending CN117131164A (zh) | 2022-05-20 | 2022-05-20 | 词库的检索方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117131164A (zh) |
-
2022
- 2022-05-20 CN CN202210552416.9A patent/CN117131164A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6258191B2 (ja) | 入力方法及びシステム | |
US8914275B2 (en) | Text prediction | |
CN110532347B (zh) | 一种日志数据处理方法、装置、设备和存储介质 | |
US10224957B1 (en) | Hash-based data matching enhanced with backward matching for data compression | |
EP3292481B1 (en) | Method, system and computer program product for performing numeric searches | |
CN101099129A (zh) | 组织指向对象的指针 | |
CN112131218B (zh) | 一种基因对比的哈希查表方法、装置、设备及存储介质 | |
CN108897819B (zh) | 一种数据搜索方法和装置 | |
US20120109994A1 (en) | Robust auto-correction for data retrieval | |
CN114529741A (zh) | 一种图片去重方法、装置及电子设备 | |
CN104281275A (zh) | 一种英文的输入方法和装置 | |
CN109857366B (zh) | 基于外存的插入排序方法、系统、设备及存储介质 | |
KR101130206B1 (ko) | 입력 순서와 무관한 문자 입력 메커니즘을 제공하는 방법, 기기 및 컴퓨터 프로그램 제품 | |
CN117131164A (zh) | 词库的检索方法和相关装置 | |
CN109947779B (zh) | 用户输入词汇的存储方法、装置及设备 | |
JP6512294B2 (ja) | 圧縮プログラム、圧縮方法および圧縮装置 | |
CN112579839B (zh) | 大规模特征的多模匹配方法、装置及存储介质 | |
CN111831876B (zh) | 查询方法、设备和存储介质 | |
CN112052361A (zh) | 搜索方法、装置、终端及存储介质 | |
CN106528623B (zh) | 一种搜索引擎加速方法及装置 | |
US20180052819A1 (en) | Predicting terms by using model chunks | |
CN116909688B (zh) | 一种数据库调用方法、装置、存储介质及电子设备 | |
KR102222769B1 (ko) | 전화번호 검색 방법 및 장치 | |
CN115544967A (zh) | 文字转拼音的方法、装置、计算机设备和存储介质 | |
JP2679627B2 (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 |