输入提示方法、装置、电子设备及计算机可读存储介质与流程

文档序号:13735577阅读:134来源:国知局
输入提示方法、装置、电子设备及计算机可读存储介质与流程

本公开涉及计算机技术领域,具体涉及一种输入提示方法、装置、电子设备及计算机可读存储介质。



背景技术:

目前,根据用户输入给出输入提示已成为各应用,尤其是移动互联网领域的必备功能。输入提示能有效地减少用户输入量,提升用户体验。例如,用户想查询“kfc”,但当用户仅输入“kf”时,应用会在显示页面中给出“kfc”等的输出结果,因此,用户可直接选择提示框中的“kfc”,不必在进行后续的输入,减少了输入量。



技术实现要素:

本公开实施例提供一种输入提示方法、装置、电子设备及计算机可读存储介质。

第一方面,本公开实施例中提供了一种输入提示方法。

具体的,所述输入提示方法,包括:

响应于用户的输入,获取用户当前的已输入内容;

将所述已输入内容与预设数组进行匹配;所述预设数组用于存储预设关键词集合所构成的有向无环图中的信息;

根据匹配得到的候选关键词输出所述候选关键词所对应的系统对象集合。

结合第一方面,本公开在第一方面的第一种实现方式中,将所述已输入内容与预设数组进行匹配,包括:

查询所述预设数组,获得所述已输入内容与所述有向无环图的匹配结果;

根据匹配结果确定在所述有向无环图中所述匹配结果能够构成的关键词。

结合第一方面,本公开在第一方面的第二种实现方式中,将所述已输入内容与预设数组进行匹配,包括:

获取所述已输入内容中每个字符的字符编码;

根据所述字符编码与所述预设数组进行匹配,所述预设数组每n个元素为一组,n为大于等于2的整数;每组元素用于存储一个字符的字符编码以及所述字符在所述有向无环图的关键词中的位置信息。

结合第一方面的第二种实现方式,根据所述字符编码与所述预设数组进行匹配,包括:

将所述已输入内容中首个字符的字符编码与所述预设数组进行匹配,得到与所述首个字符对应的包括n个元素的第一组元素;所述第一组元素中前n-1个元素存储的信息与所述首个字符的字符编码相同,且所述第一组元素中的最后一个元素用于指示第一组元素所存储的字符为所述有向无环图中相应关键词的首个字符;

依次将所述已输入内容中的剩余字符与所述第一组元素之后的元素进行匹配,得到候选关键词集合;所述候选关键词集合中的每个候选关键词中包括所述已输入内容。

结合第一方面、第一方面的第一种实现方式或第一方面的第二种实现方式,本公开在第一方面的第三种实现方式中,根据匹配得到的候选关键词输出所述候选关键词所对应的系统对象集合,包括:

将所述候选关键词与关键词-系统对象关联集合进行匹配,得到并输出与所述候选关键词关联存储的系统对象集合。

结合第一方面的第三种实现方式,根据匹配得到的候选关键词输出所述候选关键词所对应的系统对象集合,还包括:

输出与所述系统对象集合中的系统对象关联存储的系统对象的属性信息。

第二方面,本公开实施例提供了一种输入提示装置,包括:

获取模块,被配置为响应于用户的输入,获取用户当前的已输入内容;

匹配模块,被配置为将所述已输入内容与预设数组进行匹配;所述预设数组用于存储预设关键词集合所构成的有向无环图中的信息;

输出模块,被配置为根据匹配得到的候选关键词输出所述候选关键词所对应的系统对象集合。

结合第二方面,本公开在第二方面的第一种实现方式中,所述匹配模块,包括:

查询子模块,被配置为查询所述预设数组,获得所述已输入内容与所述有向无环图的匹配结果;

确定子模块,被配置为根据匹配结果确定在所述有向无环图中所述匹配结果能够构成的关键词。

结合第二方面,本公开在第二方面的第二种实现方式中,所述匹配模块,包括:

获取子模块,被配置为获取所述已输入内容中每个字符的字符编码;

第一匹配子模块,被配置为根据所述字符编码与所述预设数组进行匹配,所述预设数组每n个元素为一组,n为大于等于2的整数;每组元素用于存储一个字符的字符编码以及所述字符在所述有向无环图的关键词中的位置信息。

结合第二方面的第二种实现方式,所述匹配子模块,包括:

第二匹配子模块,被配置为将所述已输入内容中首个字符的字符编码与所述预设数组进行匹配,得到与所述首个字符对应的包括n个元素的第一组元素;所述第一组元素中前n-1个元素存储的信息与所述首个字符的字符编码相同,且所述第一组元素中的最后一个元素用于指示第一组元素所存储的字符为所述有向无环图中相应关键词的首个字符;

第三匹配子模块,被配置为依次将所述已输入内容中的剩余字符与所述第一组元素之后的元素进行匹配,得到候选关键词集合;所述候选关键词集合中的每个候选关键词中包括所述已输入内容。

结合第二方面、第二方面的第一种实现方式或第二方面的第二种实现方式,本公开在第二方面的第三种实现方式中,所述输出模块,包括:

第一输出子模块,被配置为将所述候选关键词与关键词-系统对象关联集合进行匹配,得到并输出与所述候选关键词关联存储的系统对象集合。

结合第二方面的第三种实现方式,所述输出模块,还包括:

第二输出子模块,被配置为输出与所述系统对象集合中的系统对象关联存储的系统对象的属性信息。

所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一个可能的设计中,输入提示装置的结构中包括存储器和处理器,所述存储器用于存储一条或多条支持输入提示装置执行上述第一方面中输入提示方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述输入提示装置还可以包括通信接口,用于输入提示装置与其他设备或通信网络通信。

第三方面,本公开实施例提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现第一方面所述的方法步骤。

第四方面,本公开实施例提供了一种计算机可读存储介质,用于存储输入提示装置所用的计算机指令,其包含用于执行上述第一方面中输入提示方法为输入提示装置所涉及的计算机指令。

本公开实施例提供的技术方案可以包括以下有益效果:

本公开实施例通过将获取的用户已输入内容与预设数组进行匹配,进而获得已输入内容与构成有向无环图的关键词集合中相匹配的候选关键词,并根据候选关键词确定用户待查询的系统对象集合并输出。通过这种方式,系统平台可以通过将关键词集合构成的有向无环图信息存储为数组的形式,进而在用户输入查询内容时通过已输入内容与预设数组进行匹配,使得匹配速度较已有技术中通过查询字典树的方式有了大大提高,提高了用户体验,同时通过数组存储由关键词集合构成的有向无环图能够大大节省存储空间,进而降低了成本。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:

图1示出根据本公开一实施方式的输入提示方法的流程图;

图2示出根据本公开一实施方式中有向无环图的示例性示意图;

图3示出根据图1所示实施方式的步骤s102的流程图;

图4示出根据图1所示实施方式的步骤s102的又一流程图;

图5示出根据图4所示实施方式的步骤s402的流程图;

图6示出根据本公开一实施方式的输入提示装置的结构框图;

图7示出根据图5所示实施方式的匹配模块602的结构框图;

图8示出根据图5所示实施方式的匹配模块602的又一结构框图;

图9示出根据图8所示实施方式的第一匹配子模块802的结构框图;

图10是适于用来实现根据本公开一实施方式的输入提示方法的电子设备的结构示意图。

具体实施方式

下文中,将参考附图详细描述本公开的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。

在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。

另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。

已有技术中,通常使用字典树存储已有关键词集合,并且在用户输入内容时,通过匹配字典树结构确定输出内容。但是使用字典树结构存储关键词集合的话,需要在内存维护一个多叉树的树形结构。树形结构除去保存字典树节点的每个字符外,还有大量的树节点以及节点之间的关系需要维护,所以内存占用巨大。将树形结构持久化为文件保存时,文件也会非常大。因此,在输入提示过程中,在匹配树形机构时会花费大量的时间,导致系统实时性不够,用户体验较差。

图1示出根据本公开一实施方式的输入提示方法的流程图。如图1所示,所述输入提示方法包括以下步骤s101-s103:

在步骤s101中,响应于用户的输入,获取用户当前的已输入内容;

在步骤s102中,将所述已输入内容与预设数组进行匹配;所述预设数组用于存储预设关键词集合所构成的有向无环图中的信息;

在步骤s103中,根据匹配得到的候选关键词输出所述候选关键词所对应的系统对象集合。

本实施例中,用户通过系统平台的搜索框输入查询内容时,可以根据用户输入的内容给出用户待查询的结果。用户在输入过程中每输入一个字符(包括数字、字符和中文等),系统平台会根据用户输入的字符进行匹配查询,并输出相匹配的完整的查询内容。

例如,用户在外卖点餐系统的搜索框中输入“kf”,则系统会在输出结果中显示“kfc肯德基”相关的店铺。系统平台可以包括多个系统对象,系统对象可以是系统平台中为用户提供的服务于用户的对象。例如,系统对象可以是外卖点餐平台中的外卖商户等。

本实施例中,系统平台根据所有与系统平台中系统对象相关的关键词集合构建出一个有向无环图,该有向无环图包括起始节点、中间节点和终结节点,从起始节点开始到终结节点可以有多条路径,每条路径可以有多条边,每条边携带一个字符内容,边和边之间是中间节点;从起始节点开始到终结节点的任意一条路径上的多条边所携带的字符可以构成一个关键词;形成有向无环图的所有关键词组成关键词集合。如何通过关键词集合构成一个有向无环图为已知技术,在此不再赘述。例如,关键词集合{sto,sato}形成的有向无环图如图2所示,其中“start”表示起始节点,“end”表示终结节点,中间的空心圆圈为中间节点,从起始节点“start”出发到终结节点“end”有两条路径,因此可以从有向无环图看出该有向无环图是由包括两个关键词的关键词集合形成,两个关键词分别为两条路径上每条边所携带的字符构成,分别为sto和sato。如何通过关键词集合构成一个有向无环图的细节为已知技术,在此不再赘述。

本实施例中,预设数组为将有向无环图所记载的信息导出后形成的一维数组。预设数组用于存储由预设关键词集合所构成的有向无环图中的信息。预设数组中存储的有向无环图中的信息可以是能够唯一确定某一词组即多个字符组成的词组在有向无环图中的位置的信息,例如包括有向无环图中所有边携带的字符和该字符在从起始节点到终点节点的任意路径上的位置信息,即该字符当前所在关键词中的位置信息,位置信息可以通过该字符所在边是否为构成关键词的所有边中的起始边、终止边、下一解析边是否为该边的紧邻边等来描述。例如,图2中的字符“o”,预设数组中可以存储o值以及字符“o”所在边的状态信息,例如o所在的边为最终边,且为连接改变的中间节点的最后一个边,且该边指向终止节点等。通过字符所在边的状态信息能够确定字符在关键词中的位置信息。

本实施例中,由于预设数组中存储了有向无环图中的信息,且有向无环图是由关键词集合形成的。因此可以通过匹配用户已输入内容与预设数组,进而得到与已输入内容相匹配的一个或多个候选关键词,进而根据候选关键词确定所要输出的系统对象。例如,外卖点餐系统平台中,用户已输入内容为“kf”,则通过匹配预设数组确定“kf”与构成有向无环图的关键词集合中的关键词“kfc”相匹配,则可以根据关键词“kfc”确定系统对象集合,如附近的kfc门店和kfc宅急送等系统对象。

本公开实施例通过将获取的用户已输入内容与预设数组进行匹配,进而获得已输入内容与构成有向无环图的关键词集合中相匹配的候选关键词,并根据候选关键词确定用户待查询的系统对象集合后输出。通过这种方式,系统平台可以通过将关键词集合构成的有向无环图信息存储为数组的形式,进而在实际使用时,通过预设数组反向恢复有向无环图的方式得到对应的关键词。由于匹配过程中用户已输入内容与预设数组进行匹配,因此匹配速度较已有技术中通过查询字典树的方式有了大大提高,提高了用户体验,同时通过数组存储由关键词集合构成的有向无环图能够大大节省存储空间,进而降低了成本。

在本实施例的一个可选实现方式中,如图3所示,所述步骤s102,即将所述已输入内容与预设数组进行匹配的步骤,进一步包括以下步骤s301-s302:

在步骤s301中,查询所述预设数组,获得所述已输入内容与所述有向无环图的匹配结果;

在步骤s302中,根据匹配结果确定在所述有向无环图中所述匹配结果能够构成的关键词。

在该可选的实现方式中,将已输入内容与预设数组进行匹配时,可以通过查询预设数组,进而获取由关键词集合构成的有向无环图中与已输入内容相匹配的匹配结果,再根据匹配结果确定在有向无环图中匹配结果所构成的关键词,即匹配结果所构成的关键词为匹配结果在有向无环图中所在路径上从起始节点到终结节点之间所有边携带的字符组成的词组。例如,用户输入的内容为“s”,根据图2所示的有向无环图对应的预设数组可以匹配得到有向无环图中起始节点之后的边携带的字符“s”与之相匹配;而字符“s”在有向无环图中构成的关键词包括“sto”和“sato”。通过这种方式,由于预设数组占用空间小,通过查询预设数组能够快速获取已输入内容在有向无环图中的匹配结果,进而可以根据匹配结果确定所述匹配结果在有向无环图中构成的关键词。

在本实施例的一个可选实现方式中,如图4所示,所述步骤s102,即将所述已输入内容与预设数组进行匹配的步骤,进一步包括以下步骤s401-s402:

在步骤s401中,获取所述已输入内容中每个字符的字符编码;

在步骤s402中,根据所述字符编码与所述预设数组进行匹配,所述预设数组每n个元素为一组,n为大于等于2的整数;每组元素用于存储一个字符的字符编码以及所述字符在所述有向无环图的关键词中的位置信息。

该可选的实现方式中,预设数组可以为一维数组,该一维数组每n(n为大于等于2的整数)个元素为一组,每组元素用于存储有向无环图中任意一条边所携带的字符的字符编码以及该字符在有向无环图的关键词中的位置信息,即该字符所对应的有向无环图中的边所在路径上该条边的相关信息。字符可以是数字、英文字母和中文字符,字符编码可以是计算机能够识别并存储的编码,如asii码、gb2312编码或gbk编码等。通过这种方式,将有向无环图的信息转换为一维数组存储,并在实际使用中,仅仅存储一维数组,通过一维数组可以反向恢复有向无环图,完成查询,不但能够节省空间,还能够提高查询速度。

在本实施例的一个可选实现方式中,如图5所示,所述步骤s402,即将根据所述字符编码与所述预设数组进行匹配的步骤,进一步包括以下步骤s501-s502:

在步骤s501中,将所述已输入内容中首个字符的字符编码与所述预设数组进行匹配,得到与所述首个字符对应的包括n个元素的第一组元素;所述第一组元素中前n-1个元素存储的信息与所述首个字符的字符编码相同,且所述第一组元素中的最后一个元素用于指示第一组元素所存储的字符为所述有向无环图中相应关键词的首个字符;

在步骤s502中,依次将所述已输入内容中的剩余字符与所述第一组元素之后的元素进行匹配,得到候选关键词集合;所述候选关键词集合中的每个候选关键词中包括所述已输入内容。

该可选的实现方式中,预设数组可以为一维数组,有向无环图中的每个字符占用预设数组中的n个元素,n为大于等于2的整数。例如,对于数字和英文字符可以采用asii码存储,而一个asii码仅占用一个字节,而数组的一个元素也占用一个字节,因此n可以等于2,即预设数组中每两个元素对应一个字符,第一个元素用于存储字符的asii码,而第二元素用于存储该字符在对应有向无环图中所在边的位置信息。在匹配过程中,将用户已输入内容中的首个字符与有向无环图中构成关键词的首个字符相匹配,进而再将已输入内容中后续的字符与有向无环图进行匹配,最终找到相匹配的关键词。例如,用户输入“kf”,匹配时通过查询预设数组找到字符“k”对应的元素,且该元素为对应有向无环图中关键词的首个字符,可能会得到多个匹配结果,之后再将字符“f”与所得到的匹配结果后续的元素进行匹配,最终得到“kf”,之后再确定有向无环图中“kf”所在路径到终结节点上的其他字符,最终确定关键词,如“kfc”。当然,在其他实施例中,匹配用户已输入内容的首个字符时,不需要考虑有向无环图中该首个字符是否为关键词的首个字符,而仅仅得到与已输入内容相匹配的有向无环图上的路径,进而得到路径上从起始节点至终结节点之间的边所携带的字符所构成的关键词,这样的结果会导致所得到的关键词中包括已输入内容,但是已输入内容并非该关键词的最开始的几个字符。例如,用户在外卖点餐系统中输入“面”,可能匹配得到的关键词为“面爱面”、“马华拉面”等。通过上述这种方式,可以将有向无环图以一维数组的形式存储,并在使用时通过匹配一维数组中的元素所存储的值进而得到有向无环图中对应的关键词,能够节省空间的同时,节省匹配时间。

例如,表1为图2所示有向无环图导出得到的一维数组。

表1

表1-续

图2中的边可以通过几个字符表达边自身与边关于节点的状态,导出规则如下:

1、边上的字母直接变换为asii码,用一个int,4个字节来表示;

2、从节点出发的边,可以用一个数字表达不同的状态。状态如下:

1)边是一个终止边,用1表示。例如边o即终止边;

2)边是节点的最后一个边,用2表示。例如从节点1到节点3的边t是节点1的最后一个边;

3)在导出的一维数组中,继续解析的边是当前边的下一个紧邻边,用4表示。例如从节点2指向节点3的边t,继续解析的边是边o;

4)边指向终止状态,用8表示。例如边o指向终止状态;

5)所有状态之间按位做逻辑或后,变成一个完整表达状态的数字。例如11是由1、2、8进行逻辑或得到的,1表示这个边是一个终止边,2表示这个边是出发节点的最后一个边,8表示节点指向一个终止状态。

上述仅是举例说明,具体有向无环图与一维数组之间的对应关系还可以根据实际情况进行改变,例如上述一维数组中每五个元素为一组,对应一个有向无环图中的一条携带字符的边,第一个元素用于存储字符的asii码,而最后一个字符用于表示边的位置信息,如是否为起始边、终止边、下一个继续解析的边是否为其紧邻边等,进而也就指示出了该边所携带的字符在关键词中的位置信息;中间三个元素为保留元素,可以在处理中文字符时使用,因为中文字符用gbk等编码表示时,需要四个字节,因此该五个元素中前四个元素可以用于存储一个中文字符的编码。当然,对于只需要考虑英文字符和数字的系统而言,一维数组可以每两个元素为一组对应存储一个字符的信息,第一个元素存储字符的asii码,第二元素存储字符对应边的信息。

在本实施例的一个可选实现方式中,步骤s103,即根据匹配得到的候选关键词输出所述候选关键词所对应的系统对象集合的步骤,进一步包括以下步骤:

将所述候选关键词与关键词-系统对象关联集合进行匹配,得到并输出与所述候选关键词关联存储的系统对象集合。

该可选的实现方式中,可以预先将关键词与系统对象的对应关系存储起来,形成关键词-系统对象关联集合。例如,对于外卖点餐系统,关键词“kfc”对应“kfc门店”和“kfc宅急送”两个系统对象。每个关键词可以对应一个或多个不同的系统对象,在确定了关键词后,根据关键词-系统对象关联集合确定对应的系统对象集合,进而输出给用户。通过这种方式,可以基于用户输入的内容快速匹配获得用户想要查询的系统对象,提高了用户体验。

在本实施例的一个可选实现方式中,步骤s103,即根据匹配得到的候选关键词输出所述候选关键词所对应的系统对象集合的步骤,进一步还包括以下步骤:

输出与所述系统对象集合中的系统对象关联存储的系统对象的属性信息。

在该可选的实现方式中,由于用户在查询系统对象的同时,希望能够直观地了解系统对象的信息。因此,在系统平台中可以预先将系统对象对应的属性信息存储起来,在通过关键词匹配得到系统对象并显示的同时,将系统对象的属性信息也同步显示给用户,可以进一步快速帮助用户了解当前显示的系统对象是否为用户想要的系统对象,能够进一步提高用户体验。系统对象的属性信息可以是系统对象所提供服务的描述信息、其当前状态等。例如对于外卖点餐系统平台中,系统对象可以是为用户提供外卖点餐服务的商户,商户的属性信息可以是该商户的主营、辅营、当前是否营业、特色菜、当前推出的活动等等。

下述为本公开装置实施例,可以用于执行本公开方法实施例。

图6示出根据本公开一实施方式的输入提示装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,所述输入提示装置包括获取模块601、匹配模块602和输出模块603:

获取模块601,被配置为响应于用户的输入,获取用户当前的已输入内容;

匹配模块602,被配置为将所述已输入内容与预设数组进行匹配;所述预设数组用于存储预设关键词集合所构成的有向无环图中的信息;

输出模块603,被配置为根据匹配得到的候选关键词输出所述候选关键词所对应的系统对象集合。

本实施例中,用户通过系统平台的搜索框输入查询内容时,可以根据用户输入的内容给出用户待查询的结果。用户在输入过程中每输入一个字符(包括数字、字符和中文等),系统平台会根据用户输入的字符进行匹配查询,并输出相匹配的完整的查询内容。例如,用户在外卖点餐系统的搜索框中输入“kf”,则系统会在输出结果中显示“kfc肯德基”相关的店铺。系统平台可以包括多个系统对象,系统对象可以是系统平台中为用户提供的服务于用户的对象。例如,系统对象可以是外卖点餐平台中的外卖商户等。

本实施例中,系统平台根据所有与系统平台中系统对象相关的关键词集合构建出一个有向无环图,该有向无环图包括起始节点、中间节点和终结节点,从起始节点开始到终结节点可以有多条路径,每条路径可以有多条边,每条边携带一个字符内容,边和边之间是中间节点;从起始节点开始到终结节点的任意一条路径上的多条边所携带的字符可以构成一个关键词;形成有向无环图的所有关键词组成关键词集合。如何通过关键词集合构成一个有向无环图为已知技术,在此不再赘述。例如,关键词集合{sto,sato}形成的有向无环图如图2所示,其中“start”表示起始节点,“end”表示终结节点,中间的空心圆圈为中间节点,从起始节点“start”出发到终结节点“end”有两条路径,因此可以从有向无环图看出该有向无环图是由包括两个关键词的关键词集合形成,两个关键词分别为两条路径上每条边所携带的字符构成,分别为sto和sato。如何通过关键词集合构成一个有向无环图的细节为已知技术,在此不再赘述。

本实施例中,预设数组为将有向无环图所记载的信息导出后形成的一维数组。预设数组用于存储由预设关键词集合所构成的有向无环图中的信息。预设数组中存储的有向无环图中的信息可以是能够唯一确定某一词组即多个字符组成的词组在有向无环图中的位置的信息,例如包括有向无环图中所有边携带的字符和该字符在从起始节点到终点节点的任意路径上的位置信息,即该字符当前所在关键词中的位置信息,位置信息可以通过该字符所在边是否为构成关键词的所有边中的起始边、终止边、下一解析边是否为该边的紧邻边等来描述。例如,图2中的字符“o”,预设数组中可以存储o值以及字符“o”所在边的状态信息,例如o所在的边为最终边,且为连接改变的中间节点的最后一个边,且该边指向终止节点等。通过字符所在边的状态信息能够确定字符在关键词中的位置信息。

本实施例中,由于预设数组中存储了有向无环图中的信息,且有向无环图是由关键词集合形成的。因此可以通过匹配用户已输入内容与预设数组,进而得到与已输入内容相匹配的一个或多个候选关键词,进而根据候选关键词确定所要输出的系统对象。例如,外卖点餐系统平台中,用户已输入内容为“kf”,则通过匹配预设数组确定“kf”与构成有向无环图的关键词集合中的关键词“kfc”相匹配,则可以根据关键词“kfc”确定系统对象集合,如附近的kfc门店和kfc宅急送等系统对象。

本公开实施例通过将获取的用户已输入内容与预设数组进行匹配,进而获得已输入内容与构成有向无环图的关键词集合中相匹配的候选关键词,并根据候选关键词确定用户待查询的系统对象集合后输出。通过这种方式,系统平台可以通过将关键词集合构成的有向无环图信息存储为数组的形式,进而在实际使用时,通过预设数组反向恢复有向无环图的方式得到对应的关键词。由于匹配过程中用户已输入内容与预设数组进行匹配,因此匹配速度较已有技术中通过查询字典树的方式有了大大提高,提高了用户体验,同时通过数组存储由关键词集合构成的有向无环图能够大大节省存储空间,进而降低了成本。

在本实施例的一个可选实现方式中,如图7所示,所述匹配模块602包括:

查询子模块701,被配置为查询所述预设数组,获得所述已输入内容与所述有向无环图的匹配结果;

确定子模块702,被配置为根据匹配结果确定在所述有向无环图中所述匹配结果能够构成的关键词。

在该可选的实现方式中,将已输入内容与预设数组进行匹配时,可以通过查询预设数组,进而获取由关键词集合构成的有向无环图中与已输入内容相匹配的匹配结果,再根据匹配结果确定在有向无环图中匹配结果所构成的关键词,即匹配结果所构成的关键词为匹配结果在有向无环图中所在路径上从起始节点到终结节点之间所有边携带的字符组成的词组。例如,用户输入的内容为“s”,根据图2所示的有向无环图对应的预设数组可以匹配得到有向无环图中起始节点之后的边携带的字符“s”与之相匹配;而字符“s”在有向无环图中构成的关键词包括“sto”和“sato”。通过这种方式,由于预设数组占用空间小,通过查询预设数组能够快速获取已输入内容在有向无环图中的匹配结果,进而可以根据匹配结果确定所述匹配结果在有向无环图中构成的关键词。

在本实施例的一个可选实现方式中,如图8所示,所述匹配模块702包括:

获取子模块801,被配置为获取所述已输入内容中每个字符的字符编码;

第一匹配子模块802,被配置为根据所述字符编码与所述预设数组进行匹配,所述预设数组每n个元素为一组,n为大于等于2的整数;每组元素用于存储一个字符的字符编码以及所述字符在所述有向无环图的关键词中的位置信息。

该可选的实现方式中,预设数组可以为一维数组,该一维数组每n(n为大于等于2的整数)个元素为一组,每组元素用于存储有向无环图中任意一条边所携带的字符的字符编码以及该字符在有向无环图的关键词中的位置信息,即该字符所对应的有向无环图中的边所在路径上该条边的相关信息。字符可以是数字、英文字母和中文字符,字符编码可以是计算机能够识别并存储的编码,如asii码、gb2312编码或gbk编码等。通过这种方式,将有向无环图的信息转换为一维数组存储,并在实际使用中,仅仅存储一维数组,通过一维数组可以反向恢复有向无环图,完成查询,不但能够节省空间,还能够提高查询速度。

在本实施例的一个可选实现方式中,如图9所示,所述第一匹配子模块802包括:

第二匹配子模块901,被配置为将所述已输入内容中首个字符的字符编码与所述预设数组进行匹配,得到与所述首个字符对应的包括n个元素的第一组元素;所述第一组元素中前n-1个元素存储的信息与所述首个字符的字符编码相同,且所述第一组元素中的最后一个元素用于指示第一组元素所存储的字符为所述有向无环图中相应关键词的首个字符;

第三匹配子模块902,被配置为依次将所述已输入内容中的剩余字符与所述第一组元素之后的元素进行匹配,得到候选关键词集合;所述候选关键词集合中的每个候选关键词中包括所述已输入内容。

该可选的实现方式中,预设数组可以为一维数组,有向无环图中的每个字符占用预设数组中的n个元素,n为大于等于2的整数。例如,对于数字和英文字符可以采用asii码存储,而一个asii码仅占用一个字节,而数组的一个元素也占用一个字节,因此n可以等于2,即预设数组中每两个元素对应一个字符,第一个元素用于存储字符的asii码,而第二元素用于存储该字符在对应有向无环图中所在边的位置信息。在匹配过程中,将用户已输入内容中的首个字符与有向无环图中构成关键词的首个字符相匹配,进而再将已输入内容中后续的字符与有向无环图进行匹配,最终找到相匹配的关键词。例如,用户输入“kf”,匹配时通过查询预设数组找到字符“k”对应的元素,且该元素为对应有向无环图中关键词的首个字符,可能会得到多个匹配结果,之后再将字符“f”与所得到的匹配结果后续的元素进行匹配,最终得到“kf”,之后再确定有向无环图中“kf”所在路径到终结节点上的其他字符,最终确定关键词,如“kfc”。当然,在其他实施例中,匹配用户已输入内容的首个字符时,不需要考虑有向无环图中该首个字符是否为关键词的首个字符,而仅仅得到与已输入内容相匹配的有向无环图上的路径,进而得到路径上从起始节点至终结节点之间的边所携带的字符所构成的关键词,这样的结果会导致所得到的关键词中包括已输入内容,但是已输入内容并非该关键词的最开始的几个字符。例如,用户在外卖点餐系统中输入“面”,可能匹配得到的关键词为“面爱面”、“马华拉面”等。通过上述这种方式,可以将有向无环图以一维数组的形式存储,并在使用时通过匹配一维数组中的元素所存储的值进而得到有向无环图中对应的关键词,能够节省空间的同时,节省匹配时间。

例如,表1为图2所示有向无环图导出得到的一维数组。

表1

表1-续

图2中的边可以通过几个字符表达边自身与边关于节点的状态,导出规则如下:

1、边上的字母直接变换为asii码,用一个int,4个字节来表示;

2、从节点出发的边,可以用一个数字表达不同的状态。状态如下:

1)边是一个终止边,用1表示。例如边o即终止边;

2)边是节点的最后一个边,用2表示。例如从节点1到节点3的边t是节点1的最后一个边;

3)在导出的一维数组中,继续解析的边是当前边的下一个紧邻边,用4表示。例如从节点2指向节点3的边t,继续解析的边是边o;

4)边指向终止状态,用8表示。例如边o指向终止状态;

5)所有状态之间按位做逻辑或后,变成一个完整表达状态的数字。例如11是由1、2、8进行逻辑或得到的,1表示这个边是一个终止边,2表示这个边是出发节点的最后一个边,8表示节点指向一个终止状态。

上述仅是举例说明,具体有向无环图与一维数组之间的对应关系还可以根据实际情况进行改变,例如上述一维数组中每五个元素为一组,对应一个有向无环图中的一条携带字符的边,第一个元素用于存储字符的asii码,而最后一个字符用于表示边的位置信息,如是否为起始边、终止边、下一个继续解析的边是否为其紧邻边等,进而也就指示出了该边所携带的字符在关键词中的位置信息;中间三个元素为保留元素,可以在处理中文字符时使用,因为中文字符用gbk等编码表示时,需要四个字节,因此该五个元素中前四个元素可以用于存储一个中文字符的编码。当然,对于只需要考虑英文字符和数字的系统而言,一维数组可以每两个元素为一组对应存储一个字符的信息,第一个元素存储字符的asii码,第二元素存储字符对应边的信息。

在本实施例的一个可选实现方式中,所述输出模块603包括:

第一输出子模块,被配置为将所述候选关键词与关键词-系统对象关联集合进行匹配,得到并输出与所述候选关键词关联存储的系统对象集合。

该可选的实现方式中,可以预先将关键词与系统对象的对应关系存储起来,形成关键词-系统对象关联集合。例如,对于外卖点餐系统,关键词“kfc”对应“kfc门店”和“kfc宅急送”两个系统对象。每个关键词可以对应一个或多个不同的系统对象,在确定了关键词后,根据关键词-系统对象关联集合确定对应的系统对象集合,进而输出给用户。通过这种方式,可以基于用户输入的内容快速匹配获得用户想要查询的系统对象,提高了用户体验。

在本实施例的一个可选实现方式中,所述输出模块603还包括:

第二输出子模块,被配置为输出与所述系统对象集合中的系统对象关联存储的系统对象的属性信息。

在该可选的实现方式中,由于用户在查询系统对象的同时,希望能够直观地了解系统对象的信息。因此,在系统平台中可以预先将系统对象对应的属性信息存储起来,在通过关键词匹配得到系统对象并显示的同时,将系统对象的属性信息也同步显示给用户,可以进一步快速帮助用户了解当前显示的系统对象是否为用户想要的系统对象,能够进一步提高用户体验。系统对象的属性信息可以是系统对象所提供服务的描述信息、其当前状态等。例如对于外卖点餐系统平台中,系统对象可以是为用户提供外卖点餐服务的商户,商户的属性信息可以是该商户的主营、辅营、当前是否营业、特色菜、当前推出的活动等等。

图10是适于用来实现根据本公开实施方式的输入提示方法的电子设备的结构示意图。

如图10所示,电子设备1000包括中央处理单元(cpu)1001,其可以根据存储在只读存储器(rom)1002中的程序或者从存储部分1008加载到随机访问存储器(ram)1003中的程序而执行上述图1所示的实施方式中的各种处理。在ram1003中,还存储有电子设备1000操作所需的各种程序和数据。cpu1001、rom1002以及ram1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。

以下部件连接至i/o接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至i/o接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。

特别地,根据本公开的实施方式,上文参考图1描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行图1的输入提示方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。

附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。

作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

a1、一种输入提示方法,包括:响应于用户的输入,获取用户当前的已输入内容;将所述已输入内容与预设数组进行匹配;所述预设数组用于存储预设关键词集合所构成的有向无环图中的信息;根据匹配得到的候选关键词输出所述候选关键词所对应的系统对象集合。a2、根据a1所述的输入提示方法,将所述已输入内容与预设数组进行匹配,包括:查询所述预设数组,获得所述已输入内容与所述有向无环图的匹配结果;根据匹配结果确定在所述有向无环图中所述匹配结果能够构成的关键词。a3、根据a1所述的输入提示方法,将所述已输入内容与预设数组进行匹配,包括:获取所述已输入内容中每个字符的字符编码;根据所述字符编码与所述预设数组进行匹配,所述预设数组每n个元素为一组,n为大于等于2的整数;每组元素用于存储一个字符的字符编码以及所述字符在所述有向无环图的关键词中的位置信息。a4、根据a3所述的输入提示方法,根据所述字符编码与所述预设数组进行匹配,包括:将所述已输入内容中首个字符的字符编码与所述预设数组进行匹配,得到与所述首个字符对应的包括n个元素的第一组元素;所述第一组元素中前n-1个元素存储的信息与所述首个字符的字符编码相同,且所述第一组元素中的最后一个元素用于指示第一组元素所存储的字符为所述有向无环图中相应关键词的首个字符;依次将所述已输入内容中的剩余字符与所述第一组元素之后的元素进行匹配,得到候选关键词集合;所述候选关键词集合中的每个候选关键词中包括所述已输入内容。a5、根据a1所述的输入提示方法,根据匹配得到的候选关键词输出所述候选关键词所对应的系统对象集合,包括:将所述候选关键词与关键词-系统对象关联集合进行匹配,得到并输出与所述候选关键词关联存储的系统对象集合。a6、根据a5所述的输入提示方法,根据匹配得到的候选关键词输出所述候选关键词所对应的系统对象集合,还包括:输出与所述系统对象集合中的系统对象关联存储的系统对象的属性信息。

b7、一种输入提示装置,包括:获取模块,被配置为响应于用户的输入,获取用户当前的已输入内容;匹配模块,被配置为将所述已输入内容与预设数组进行匹配;所述预设数组用于存储预设关键词集合所构成的有向无环图中的信息;输出模块,被配置为根据匹配得到的候选关键词输出所述候选关键词所对应的系统对象集合。b8、根据b7所述的输入提示装置,所述匹配模块,包括:查询子模块,被配置为查询所述预设数组,获得所述已输入内容与所述有向无环图的匹配结果;确定子模块,被配置为根据匹配结果确定在所述有向无环图中所述匹配结果能够构成的关键词。b9、根据b7所述的输入提示装置,所述匹配模块,包括:获取子模块,被配置为获取所述已输入内容中每个字符的字符编码;第一匹配子模块,被配置为根据所述字符编码与所述预设数组进行匹配,所述预设数组每n个元素为一组,n为大于等于2的整数;每组元素用于存储一个字符的字符编码以及所述字符在所述有向无环图的关键词中的位置信息。b10、根据b9所述的输入提示装置,所述第一匹配子模块,包括:第二匹配子模块,被配置为将所述已输入内容中首个字符的字符编码与所述预设数组进行匹配,得到与所述首个字符对应的包括n个元素的第一组元素;所述第一组元素中前n-1个元素存储的信息与所述首个字符的字符编码相同,且所述第一组元素中的最后一个元素用于指示第一组元素所存储的字符为所述有向无环图中相应关键词的首个字符;第三匹配子模块,被配置为依次将所述已输入内容中的剩余字符与所述第一组元素之后的元素进行匹配,得到候选关键词集合;所述候选关键词集合中的每个候选关键词中包括所述已输入内容。b11、根据b7所述的输入提示装置,所述输出模块,包括:第一输出子模块,被配置为将所述候选关键词与关键词-系统对象关联集合进行匹配,得到并输出与所述候选关键词关联存储的系统对象集合。b12、根据b11所述的输入提示装置,所述输出模块,还包括:第二输出子模块,被配置为输出与所述系统对象集合中的系统对象关联存储的系统对象的属性信息。

c13、一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现a1-a6任一项所述的方法步骤。

d14、一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现a1-a6任一项所述的方法步骤。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1