数据检索的稳健的自动纠正的制作方法

文档序号:6437948阅读:156来源:国知局
专利名称:数据检索的稳健的自动纠正的制作方法
技术领域
本发明涉及数据检索,尤其是数据检索的自动纠正。
背景技术
在很多不同的场景中,便携式电子设备的用户可以经由该设备的界面检索数据; 该界面强制用户输入搜索查询以标识要检索的数据。用户可能是驾车者,希望例如从导航设备检索驾驶指令,或者从便携式音乐播放器库来播放歌曲。在这些及其他示例中,查询可以被直接地输入为文本,或者以某些其它形式输入(例如手写或语音)并随后被转换为文本。然而,无论是直接还是间接的文本输入都可能是不方便、乏味、和/或对用户而言容易出错的。界面要求长的或很难记住的搜索查询时尤其如此。当然,在这种界面上输入错误的搜索查询的用户可能难以检索到所需数据,这可能导致沮丧。某些用户界面自动地调用自动纠正、自动完成、或所谓的“部分搜索”方法来修改来自用户的搜索查询输入。然而,某些这种方法依赖于广泛的网络资源和服务,使其相对于便携式设备而言更适合于服务器系统。其他方法可以在便携式设备上实现,但不那么稳健; 某些可能由于单个错误字符的初始输入而未完成。

发明内容
因此,本发明的一个实施例提供适合在便携式电子设备上使用的数据检索方法, 该设备具有用户界面和数据库,其中多个数据项中的每个被索引为对应的索引串。该方法包括在用户界面接收查询串并在用户界面上显示一个或多个索引串,使得所显示的每个索引串的相对显著性随着该索引串对于查询串的相似性的增加而增加。方法还包括当查询串的固定长度子串在索引串中无论何处出现时,以更大的显著性显示索引串,而不考虑位置。 以此方式,显著地显示的索引串的相关性随着向查询串追加更多的字符而增加,即使该查询串包含错误。应该理解,提供以上发明内容以通过简化形式介绍以下进一步描述的本发明的所选部分。它不旨在标识要求保护的主题的关键特征或必要特征。相反,要求保护的主题仅由权利要求书来定义,并不限于解决此处所述的任何缺点的实现。


图1示出根据本发明的实施例的示例数据检索环境的各方面。图2示出根据本发明的实施例的示例便携式设备的各方面。图3示出根据本发明的实施例的示例计算机系统的各方面。图4示出根据本发明的实施例的用于从数据库检索数据的示例方法。图5示出根据本发明实施例的用于基于索引串或查询串来枚举一组子串的示例方法。图6示出根据本发明的实施例的用于为数据库中的数据项汇编元数据的示例方法。图7示出根据本发明实施例的用于在用户界面上显示一个或多个索引串,使得所显示的每个索引串的相对显著性随着该索引串对于查询串的相似性的增加而增加的示例方法
具体实施例方式现在参照所示的以上所列的实施例,通过示例来描述本发明的主题。在一个或多个实施例中基本相同的组件、过程步骤和其它元素被协调地标识并且以重复最小的方式描述。然而应该注意,协调地标识的元素还可以在某种程度上不同。还应该注意,本发明中包括的附图是示意性的并且通常未按照比例绘制。相反,附图中所示的各种绘制比例、纵横比和组件数量可以有目的地失真,以使特定特征或关系更加显见。图1示出一个实施例中示例数据检索环境10的各方面。图1示出用户12和便携式设备14。在所示的实施例中,数据检索环境是机动车辆的内部,并且用户是驾车者。然而,可以理解的是本发明决不限于机动车辆应用,并且同样可以设想多个其他数据检索环境。因此,便携式设备可以是导航(例如全球定位)系统、便携式音乐播放器、驾车者辅助设备、蜂窝电话、手持式视频游戏、或能够基于用户的请求检索数据的实际上任何其他电子设备。图2示出一个实施例中示例便携式设备14的各方面。便携式设备呈现包括显示器18的用户界面16。为了能够使用文本输入,用户界面还包括键区20。在一个实施例中, 键区包括一组机械按键切换。在另一个实施例中,显示器是触敏显示器时,键区包括在触敏显示器上形成的可触摸的图像。图2中所示的键区包括用于英语语言中所使用的每个字母字符的单独的按键。在其他实施例中,键区可包括更少的按键,像电话的键区。由此,键区的给定按键可根据合适的歧义消除规则用于输入多个不同的字符或字符组合。无论其特定的配置是什么,键区20使用户12能够以字符串(即字符序列)的形式输入文本。字符串的字符还可包括除标点字符以外的字母数字字符(例如,0到9以及A 到Z),并且控制诸如换行字符的字符。在一个实施例中,形成字符串的字符可以根据ASCI I 标准来编码,但是同样地构想其他标准。在本发明全文中,可交换地使用术语“串”和“字符串”。“查询串”是指作为输入提供的指定要从数据库中检索的项的字符串。“索引串”是指包括在数据库中并且用于索引其中特定的数据项的字符串。继续图2,用户界面16还包括话筒22。话筒是被配置为从用户12接收可听语音并将可听语音转换为电信号的换能器。同样,用户界面包括扬声器M,是被配置为接收电信号并生成用户可听的声音的换能器。这种声音可包括例如语音或音乐。图2还示出与用户界面16的各种组件可操作地耦合的计算机系统26。图3更详细地示出该计算机系统。计算机系统沈包括与存储器子系统30可操作地耦合的逻辑子系统28。计算机系统沈可被配置为执行便携式设备14的任何计算、处理或控制功能。计算机系统可被配置为从键区20和/或话筒22接收输入,并将输出定向到显示器18和/或扬声器对。在一个实施例中,计算机系统可从话筒接收电信号并将由话筒接收的可听语音转换为文本。更具体地,计算机系统可被配置为从所转换的可听语音构建查询串,并且在以下描述的各种数据检索方法中使用该查询串。现在将参考示例场景来描述从便携式设备14的数据检索的各方面。在该场景中, 便携式设备是机动车辆导航系统,并且便携式设备的用户是HonoluliK檀香山)的驾车者。 用户正准备开往Kamehameha街123号(123 Kamehameha Street) 如果便携式设备上没有可用的自动完成、自动纠正,或部分搜索特征,那么用户将被迫输入完整的街道地址,这可能是乏味和/或容易出错的。然而,假设便携式设备14包括列出Oahu上每条街道地址的数据库。如果便携式设备上有可用的原始的自动完成、自动纠正,或部分搜索,那么简短的查询“123 KA”可导致作为若干选项之一的所需地址出现在显示器18上-例如,123 Kamehameha Street123 Kamehameha II Boulevard123 Katmandu Court便携式设备的原始的自动完成、自动纠正,和部分搜索可能依赖于其前N个字符与来自数据库的索引串相匹配的查询串。然而,如果该查询包括单词前部出现的拼写错误, 例如“123 KHA”,那么这种原始方法可能失效,并且所需地址可能不在所显示的选项中。无论随后输入多少正确的字符也是这样。用户将看到其前N个字符与错误的查询串相匹配的选项,而不是所需地址,例如,123 Kamehameha Street123 Khaki Road鉴于此问题及其他,依赖于前N个字符完全一致的原始的自动完成、自动纠正,和部分搜索方法可能无法提供稳健的数据检索。在另一个场景中,便携式设备14可被配置为执行所谓的“正则表达式”或通配符搜索。这些方法可用于适应拼写中的不确定性,并且改善数据检索的效率。然而,它们也是不稳健的,并且无法补救查询串中非预期的错误。在以上示例中,查询串“123 K*MEHA”将返回所需街道地址,但“ 123 KH*MEHA”不会。在又一个场景中,便携式设备14在原则上可被配置为执行所谓的“打字错误检测”或“查询建议”。这些方法更为稳健,并且可用于补救查询串中非预期的错误。然而,它们可能需要便携式设备14连接到服务器上的大型数据库。为了正确地运行,服务器可被配置为向由多个用户输入的搜索查询学习。因此,该方法要适应某些数据检索环境可能是很难、很慢或昂贵的。为了解决上述问题并且仍然获得其他益处,此处所示的配置可适于启用适合在便携式电子设备上使用的各种数据检索方法。如以上所述,一个所构想的便携式电子设备具有用户界面和数据库,其中多个数据项中的每个被索引为对应的索引串。然而,应该理解, 本文所述的方法以及完全落在本发明范围内的其它等效方案也可以经由其它配置来实现。 此处描述的方法可在便携式设备14正在操作的任何时间被输入,并且可被重复地执行。当然,任何方法的执行可能改变随后执行的输入条件,并且由此调用复杂的决策制定逻辑。在本发明中完全构想了这种逻辑。图4示出了用于从便携式设备的数据库检索数据的示例方法32。在34,为数据库中的每个数据项汇编适合的元数据。在一个实施例中,数据库项的每个被索引为对应的索引串时,对元数据的汇编可如图5的上下文中所描述的进行。在36,经由便携式设备的用户界面接收新的查询串,或者经由用户界面扩充现有的查询串。在一个实施例中,可以通过键区20上的印刷字符输入来接收或扩充查询串。在另一个实施例中,通过如上所述的将可听语音转换为文本来接收或扩充查询串。在另一个实施例中,用户界面可被配置为接收手写作为一种形式的输入。例如,用户可以使用指示笔在触敏显示器上书写查询串的最初部分,并且计算机系统可将用户的笔迹转换为文本。在38,在用户界面上显示一个或多个索引串,使得所显示的每个索引串的相对显著性随着该索引串对于查询串的相似性的增加而增加。例如,可从数据库中选择并以列表的形式显示候选的索引串。与查询串更加相似的索引串可被提升到列表中的更高的位置。 同样,与查询串最为相似的索引串可被显示以更大或更粗的字样。在更为特定的实施例中, 对索引串的显示可如下面图7的上下文中所述的进行。在这些及其他实施例中,用户可以选择完整地键入查询串,或者从选自数据库的一个或多个索引串中选择。在40,确定用户是否已经接受任何查询串。用户可以通过例如按下键区20上的回车键来发出接受查询串的信号。如果查询串未被接受,则方法返回36。 然而,如果查询串被接受,则方法前进至42。在42,基于该查询从数据库检索所需的数据项。数据检索的结果将根据所执行的特定实施例而变化。例如,在导航的情形中,查询串与所需街道地址(例如目的地地址)的匹配可允许便携式设备开始搜索可取的路线。在媒体播放的情形中,查询串与所需歌曲名称的匹配可允许播放所需歌曲。方法从42返回。图4的各方面都不旨在是限制性的,因为构想了多种变型和扩展。例如,方法42 可被执行为独立的方法,或被合并到更复杂的过程中。在一个实施例中,在用户界面接收的查询串可首先用于精确的部分搜索算法中,该算法评估查询串的最初子串与索引串之间的一致性。部分搜索的临时结果可随后在用户界面上提供。如果用户在该阶段所提供的候选者之间进行选择,那么该方法可直接前进到数据检索步骤。然而,如果临时结果未包括可接受的候选者(或者未能返回任何候选者),那么可以执行步骤38。图5示出一个实施例中用于为数据库中的数据项汇编元数据的示例方法34。在任何时候只要数据库被更改——例如,一个或多个项被重新命名、被添加到数据库、或从数据库中删除,就可以调用该方法。在该示例中假设,存储在数据库中的每项被索引为对应的索引串。例如,如果数据库包括一组导航点,那么对应的索引串可包括街道名称或地址。如果数据库包括音乐库,则对应的索引串可在库中包括歌曲标题。在44,为数据库的每个索引串枚举一组子串。在一个实施例中,所枚举的子串可以是固定长度的子串,例如两个字符或三个字符的子串,每个子串起始于串的不同的字符位置。在一个实施例中,可如下面图6的上下文中所述的来枚举该组子串。因此,如果数据库仅包括两个索引串,例如,Kahana,Kahuku,那么可以枚举以下三个字符的子串KAH AHA HAN ANA AHU HUK UKU.在46,基于所枚举的该组子串来编译倒排索引,并且该方法返回。倒排索引将包括给定所枚举的子串的全部数据库条目分组在一起。对于以上给定的示例,基于该子串的合适的倒排索引将是AHA-KahanaAHU-KahukuANA-KahanaHAN-KahanaHUK-KahukuKAH-Kahana,KahukuUKU-Kahuku方法34从46返回。图6示出一个实施例中用于基于索引串或查询串来枚举一组子串的示例方法48。 在50,从串移除一个或多个非字母数字的字符。非字母数字的字符可包括空格、省略号以及其他标点字符。这些字符容易被忘记并且被不正确地使用,使得它们不适于将一个索引串与另一个相区分。在下一个示例中,假设在方法48中正被处理的串是包括音乐库的数据库的索引串。原始形式的索引串可以是库中歌曲的完整标题,例如,Aloha ‘0e在50之后,该索引串变为AlohaOe在52,控制字符被加到该串。在一个实施例中,控制字符可包括胡萝卜符号“~”。 该控制符号或另一个控制符号可用于随后的处理以标识(即,从左划界)串的起始字符。在某些情形中,索引串(歌曲标题、街道地址等)的起始字符将被特别地记忆作为起始字符。 因此,起始字符可以在将一个索引串与另一个相区分时尤其有用。在52之后,当前示例中的索引串变为"AlohaOe在M,枚举串的一组固定长度的子串。如上所述,所枚举的子串可以是固定长度的子串,例如两个字符或三个字符的子串,每个子串起始于串的不同的字符位置。在一个实施例中,N是串的长度,并且M是固定长度的子串的长度,该组子串可包括N-M+1个子串。这些子串可以起始于跨串中前N-M+1个字符的位置。对于当前的示例,一组可能的所枚举的子串为"A Al Io oh ha a0 Oe方法48从M返回。图7示出一个实施例中用于在用户界面上显示一个或多个索引串,使得所显示的每个索引串的相对显著性随着该索引串对于查询串的相似性的增加而增加的示例方法56。 在58,为查询串枚举一组子串。在一个实施例中,可如上面图6的上下文中所述的来枚举该组子串。在60,搜索数据库的倒排索引以获得包含查询串的至少一个子串的一个或多个索引串。该倒排索引可以之前已被枚举,例如,如在上面图5的上下文中所描述的。以此方式,可以找到并枚举数据库的那些包括由查询串导出的至少一个子串的索引串。在62,基于对于查询串的递增的相似性对60处找到的索引串进行排序。具体而言,当查询串的固定长度的子串在索引串中无论何处出现时,可以提高给定索引串的排名,而不考虑位置。然而,由于查询串的起始字符和每个索引串的起始字符都是专门标识的,因此当起始于查询串初始字符位置的查询串的固定长度的子串出现在索引串的初始字符位置时,索引串的排名也提高。在方法的这个阶段,合适的加权算法可用于对来自数据库的各种索引串进行排序。在一个实施例中,可以使用项频率-逆文档频率(TF-IDF)加权方法。具体而言,排名可随着查询串的固定长度的子串在索引串中出现的次数的数量而提高,并且随着该固定长度的子串在数据库的全部索引串中出现的次数的数量而降低。在另一个实施例中,可以使用信息检索方法的语言模型。其他实施例还可以调用其他加权/排序算法。这些算法通过纠正所发现的子串在整个数据库中的流行度来帮助确定每个所发现的子串有多“值得”。在64,以根据在62确定的排名调整的相对显著性在用户界面上显示所发现的每个索引串。在一个实施例中,可以以列表的形式显示一个或多个索引串,使排名更高的索引串占据列表上的更高位置。在另一个实施例中,排名最高的索引串可以更大或更粗的字样被呈现。由此,鉴于以上所描述的排名,调整相对显著性包括计算一个或多个索引串中的每个对于查询串的相似性,并且基于所计算的相似性来调整一个或多个索引串的显著性。在该实施例中,所计算的相似性随出现在索引串中的查询串的每个固定长度的子串而增加。 方法56从64返回。可以理解,在某些实施例中,在不偏离本公开的范围的情况下,可以省略此处所描述的和/或所示出的一些进程步骤。同样,过程步骤的所指示的顺序不是达成预期的结果所必需的,而是为说明和描述的方便而提供的。取决于所使用的特定策略,可以反复地执行所示出的动作、功能或操作中的一个或多个。如上所述,本发明中描述的方法和功能可以经由图3中示意性地示出的计算机系统26来执行。更具体地,存储器子系统30可以保存使逻辑子系统观执行方法的指令。为此,逻辑子系统可包括被配置成执行一个或多个指令的一个或多个物理设备。例如,逻辑子系统可被配置成执行一个或多个指令,该一个或多个指令是一个或多个程序、例程、对象、 组件、数据结构、或其它逻辑构造的一部分。可实现此类指令以执行任务、实现数据类型、变换一个或多个设备的状态、或以其它方式得到所需结果。逻辑子系统可包括被配置成执行软件指令的一个或多个处理器。另外或另选地,逻辑子系统可包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机器。逻辑子系统可任选地包括分布在两个或更多个设备上的组件,这些组件在某些实施例中可位于远程。存储器子系统30可以包括被配置成保存可由逻辑子系统观执行以实现此处所述的方法和功能的数据和/或指令的一个或多个物理的、非瞬态的设备。在实现这种方法和功能时,可以变换存储器子系统的状态(例如,以保存不同的数据)。存储器子系统可以包括可移动介质和/或内置设备。存储器子系统可包括光学存储器设备、半导体存储器设备、 和/或磁存储器设备等。存储器子系统可以包括具有以下特性中的一个或更多个特性的设备易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址、以及内容可寻址。在一个实施例中,可将逻辑子系统和存储器子系统集成到一个或多个常见设备中,诸如应用程序专用集成电路(ASIC)或所谓的片上系统。在另一个实施例中,存储器子系统可以包括计算机系统可读可移动介质,该介质可用于存储和/或传送可执行以实现此处描述的方法和过程的数据和/或指令。
术语“模块”和“引擎”可用于描述被实现以执行一个或多个特定功能的计算系统 26的一个方面。在某些情况下,可经由逻辑子系统观通过执行由存储器子系统30保存的指令来实例化此类模块或引擎。应该理解,可从相同应用程序、代码块、对象、例程、和/或功能来实例化不同的模块和/或引擎。同样,在某些情况下,可通过不同应用程序、代码块、 对象、例程、和/或功能来实例化相同模块和/或引擎。显示器18可用于呈现由存储器子系统30保存的数据的可视表示。由于此处所描述的方法和过程改变了由存储器子系统保存的数据,并由此转变了存储器子系统的状态, 因此同样可以转变显示器的状态以可视地表示底层数据中的改变。显示器可包括利用几乎任何类型的技术的一个或多个显示设备。可将此类显示设备与逻辑子系统观和/或存储器子系统30组合在共享封装中,或此类显示设备可以是外围显示设备。最后,应当理解的是此处所描述的制品、系统和方法是本发明的实施例(非限制性实施例),同样构想了该实施例的多种变型和扩展。因此,本发明包括此处所公开的制品、 系统和方法的所有新颖和非显而易见的组合和子组合,及其任何和所有的等效方案。
权利要求
1.一种适于在便携式电子设备(14)上使用的数据检索方法(32),所述设备具有用户界面(16)和数据库,其中多个数据项的每个被索引为对应的索引串,所述方法包括在所述用户界面接收查询串(36);在所述用户界面上显示一个或多个索引串(38、64),使得所显示的每个索引串的相对显著性随着所述索引串对于所述查询串的相似性的增加而增加;以及当所述查询串的固定长度的子串在所述索引串中无论何处出现时,以更大的显著性显示所述索引串(38、64),而不考虑位置。
2.如权利要求1所述的方法,其特征在于,还包括当始于所述查询串的初始字符位置的所述查询串的固定长度的子串出现在所述索引串的初始字符位置时,以更大的显著性显示所述索引串。
3.如权利要求1所述的方法,其特征在于,还包括枚举所述查询串的一组固定长度的子串,其中所述组中的每个子串起始于所述查询串的不同的字符位置。
4.如权利要求3所述的方法,其特征在于,所述不同的字符位置横跨所述查询串的前 N-M+1个字符,其中N是所述查询串的长度,并且M是所述子串的长度。
5.如权利要求3所述的方法,其特征在于,还包括枚举所述索引串的一组固定长度的子串,其中所述组中的每个子串起始于所述索引串的不同的字符位置。
6.如权利要求1所述的方法,其特征在于,以更大的显著性显示所述索引串包括,计算一个或多个所述索引串的每个对于所述查询串的相似性,并且基于所计算的相似性来调整所述一个或多个索弓I串的所述显著性。
7.如权利要求1所述的方法,其特征在于,接收所述查询串包括以下各项中的一个或多个将所述查询串接收为印刷文本,将所述查询串接收为手写文本,以及将所述查询串接收为被转换为文本的语音。
8.一种用于机动车辆的数据检索系统(14),所述系统包括用户界面(16),具有显示器组件(18)和输入组件O0、22);逻辑子系统( ),操作地耦合到所述显示器组件及所述输入组件;存储器子系统(30),操作地耦合到所述逻辑子系统,所述存储器子系统包括使所述逻辑子系统执行以下动作的多个数据项和指令在所述用户界面接收查询串(36);在所述用户界面上显示一个或多个索引串(38、64),使得所显示的每个索引串的相对显著性随着所述索引串对于所述查询串的相似性的增加而增加;以及当所述查询串的固定长度的子串在所述索引串中无论何处出现时,以更大的显著性显示所述索引串(38、64),而不考虑位置。
9.如权利要求8所述的系统,其特征在于,还包括与所述逻辑子系统操作地耦合的导航组件,并且其中所述数据项包括导航数据项。
10.如权利要求8所述的系统,其特征在于,还包括与所述逻辑子系统操作地耦合的媒体播放组件,并且其中所述数据项包括数字音乐。
全文摘要
本发明涉及数据检索的自动纠正。在便携式电子设备(14)上使用的数据检索方法(32)。该方法包括在设备的用户界面(16)接收(36)查询串,并在用户界面上显示(38、64)一个或多个索引串,使得所显示的每个索引串的相对显著性随着该索引串对于查询串的相似性的增加而增加。该方法还包括当查询串的固定长度的子串在索引串中无论何处出现时,以更大的显著性显示(38、64)索引串,而不考虑位置。以此方式,显著地显示的索引串的相关性随着向查询串追加更多的字符而增加,即使该查询串包含错误。
文档编号G06F17/30GK102541989SQ20111035593
公开日2012年7月4日 申请日期2011年10月27日 优先权日2010年10月28日
发明者F·刘, J·法默, T·E·丁克洛克, Y-C·居, Y-T·李 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1