使用规格化串的语音搜索的制作方法

文档序号:6477646阅读:262来源:国知局
专利名称:使用规格化串的语音搜索的制作方法
使用规格化串的语音搜索
概要
本发明的实施例提供尤其用于生成规格化串和执行语音搜索的系统、方法 和介质。这些实施例中的一部分允许即使在查询或搜索内容包含拼写错误的场 合也可进行有效的搜索。这些实施例基于语音表示将串——包括查询串和搜索 内容串——规格化从而可以用标准形式对规格化串进行比较。因此,搜索结果 更加准确。另外,..可以对搜索结果进行索引以便可在以后的时刻获得这些搜索 结果。
提供本概要是为了以简化的形式介绍选择的一些概念,这些概念将在详细 说明部分进一步描述。本概要并不意图指出请求保护的主题内容的关键特征或 核心特征,也不意图在确定请求保护的主题内容的范围时用作辅助。
附图简述
在下文中参考附图详细描述本发明的示例实施例,附图通过引用结合在本 文中且其中


图1是可在其上实现本发明实施例的计算系统环境的示意图; 图2是根据本发明实施例的重述系统的框图3是根据本发明实施例的原生字符组和对应的规格化字符组的图表; 图4是根据本发明实施例的语音搜索系统的框图; 图5是根据本发明实施例生成规格化串的流程图; 图6是根据本发明实施例执行语音搜索的流程图7是根据本发明实施例使用索引获得关联于串的搜索内容的流程图。 详细说明
在本文中具体描述本发明的主题内容以满足法律规定的要求。然而,本描述本身不意图限定本发明的范围。相反,发明人预见到请求保护的主题内容也 可以用其他方式实施,从而包括不同的步骤或与本文中所述步骤类似的步骤的 组合,并结合其他现有技术或将来的技术。此外,虽然术语"步骤"和/或"框" 在本文中可用于表示所使用的方法中的不同组件,但这些术语不应解释为暗示 出在本文公开的各个步骤中或步骤之间具有任何特定次序,除非明确描述了各 单独步骤的次序。
图1示出可在其上实现本发明的适合的计算系统环境100的示例。计算系 统环境100只是适合的计算环境的一个示例,且不意图对本发明的用途或功能 性的范围作出任何限定。也不应将计算环境100解释为具有与示例操作环境
100中示出的任何一个组件或组件组合有关的任何依赖或要求。
本发明可以通过大量其他通用或专用计算系统环境或配置来工作。适合用 于本发明的公知计算系统、环境和/或配置的示例包括但不限于个人计算机、服 务器计算机、手持设备或膝上型设备、多处理器系统、基于微处理器的系统、
机顶盒、可编程消费者电子产品、网络PC、小型计算机、大型计算机、电话
系统、包括任何上述系统或设备的分布式计算环境等。
本发明可以在由计算机执行的计算机可执行指令,如程序模块的一般上下 文中描述。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、 程序、对象、组件、数据结构等。本发明也可以在分布式计算环境中实施,在 该环境中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境 中,程序模块可以位于本地和远程计算机存储介质,包括存储器存储设备中。
参考图1,用于实现本发明的示例系统包括形式为计算机110的通用计算 设备。计算机110的组件可以包括但不限于处理单元120、系统存储器130及 将各种系统组件,包括系统存储器耦合到处理单元120的系统总线121。系统 总线121可以是多种类型的总线结构中的任何一种,包括存储器总线或存储器 控制器、外围总线,及使用各种总线架构的任何一种的本地总线。作为示例而 非限制,这样的架构包括工业标准架构(ISA)总线、微通道架构(MCA)总 线、增强型ISA (EISA)总线、视频电子标准协会(VESA)本地总线,及也 称为夹层总线的外围部件互连(PCI)总线。
计算机IIO通常包括各种计算机可读介质。计算机可读介质可以是可由计
6算机110访问的任何可用介质并包括易失性和非易失性介质、可移动和不可移 动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信 介质。计算机存储介质包括以任何方法或技术实现用于存储信息,如计算机可 读指令、数据结构、程序模块或其他数据的易失性和非易失性、可移动和不可
移动的介质。计算机存储介质包括但不限于RAM、 ROM、 EEPROM、闪存或 其他存储器技术,CD-ROM、数字多用途盘(DVD)或其他光盘存储、盒式磁 带、磁带、磁盘存储或其他磁存储设备,或可用于存储所需信息并可由计算机 110访问的任何其他介质。通信介质通常在调制的数据信号中如在载波或其他 传输机制中实施计算机可读指令、数据结构、程序模块或其他数据,并包括任 何信息传递介质。术语"调制的数据信号"指以将信息编码在信号中的方式设 置或改变了其特性中一个或多个特性的信号。作为示例而非限制,通信介质包 括有线介质,如有线网络或直接有线连接,及无线介质,如声音、RF、红外线 及其他无线介质。任何上述介质的组合也应包括在计算机可读介质的范围内。 系统存储器130包括形式为易失性和/或非易失性存储器的计算机存储介 质,如只读存储器(ROM) 131和随机存取存储器(RAM) 132。基本输入/ 输出系统133 (BIOS)通常存储在ROM 131中,并包含例如在启动期间有助 于在计算机110内的部件之间传输信息的基本例程。RAM 132通常包含可由处 理单元120立即访问和/或当前正在处理单元120上操作的数据和/或程序模块。 作为示例而非限制,图1示出操作系统134、应用程序135、其他程序模块136 和程序数据137。
计算机110还可以包括其他可移动/不可移动的易失性/非易失性计算机存 储介质。仅作为示例,图l示出读写不可移动的非易失性磁介质的硬盘驱动器 141,读写可移动的非易失性磁盘152的磁盘驱动器151,及读写可移动的非易 失性光盘156,如CD-ROM或其他光学介质的光盘驱动器155。可在示例操作 环境中使用的其他可移动/不可移动的易失性/非易失性计算机存储介质包括但 不限于盒式磁带、闪存卡、数字多用途盘、数字视频磁带、固态RAM、固态 ROM等。硬盘驱动器141通常通过非易失性存储器接口,如接口140连接到 系统总线121,磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口, 如接口 150连接到系统总线121。
7上文所述和图i所示的驱动器及其关联的计算机存储介质为计算机no提
供计算机可读指令、数据结构、程序模块和其他数据的存储。在图1中,例如,
硬盘驱动器141如图所示存储操作系统144、应用程序145、其他程序模块146 及程序数据147。注意,这些组件可以和操作系统134、应用程序135、其他程 序模块B6及程序数据137相同或不同。在此对操作系统144、应用程序145、 其他程序模块146及程序数据147给出不同的编号以便示出它们至少是不同的 拷贝。
用户可以通过输入设备输入命令和信息到计算机110中,输入设备有诸如 键盘162、话筒163,及定点设备161,如鼠标、轨迹球或触摸板。其他输入设 备(未示出)可以包括操纵杆、游戏垫、碟形卫星天线、扫描仪等。这些和其 他输入设备通常通过耦合到系统总线的用户输入接口 160连接到处理单元 120,但也可以通过其他接口和总线结构连接,如并口、游戏端口或通用串行 总线(USB)。监视器191或其他类型的显示设备也通过接口,如视频接口 190 连接到系统总线121。除了监视器,计算机还可以包括可通过外围输出接口 190 连接的其他外围输出设备,如扬声器197和打印机196。
计算机110可以使用与一个或多个远程计算机,如远程计算机180的逻辑 连接运行在联网环境中。远程计算机180可以是个人计算机、手持设备、服务 器、路由器、网络PC、对等设备或其他普通网络节点,并通常包括上文中关 于计算机110描述的多个或所有部件。图1所示的逻辑连接包括局域网(LAN) 171和广域网(WAN) 173,但也可以包括其他网络。这样的联网环境常见于 办公室、全企业范围计算机网络、内联网和因特网。
当用在LAN联网环境中时,计算机IIO通过网络接口或适配器170连接 到LAN 171。当用在WAN联网环境中时,计算机110通常包括调制解调器172 或用于在WAN 173,如因特网上建立通信的其他装置。可为内置式或外置式 的调制解调器172可以通过用户输入接口 160或其他适合的机制连接到系统总 线121。在联网环境中,关于计算机IIO描述的程序模块或其部分可以存储在 远程存储器存储设备中。作为示例而非限制,图1示出远程应用程序185驻留 在远程计算机180上。应理解,所示的网络连接是示例性的且可以使用在计算 机之间建立通信链接的其他手段。图2是根据本发明实施例的重述系统200的框图。重述系统200可用于基 于原生串生成规格化串。如本文中所用,术语"串"指一个或多个接连的字符, 如数值、字母、符号、标点、关联于书写系统的任何其他字符,或上述的组合。 "原生串"如本文中所用指要为其生成规格化串的呈原始形式的串。如本文中 所用,短语"规格化串"指表示原生串的串。例如,原生串可以基于算法转换 为规格化串,从而该规格化串表示该原生串。在一个实施例中,规格化串可以 在语音上表示该原生串。这样的语音表示可以包括原生串的辅音和/或元音字符 表示。因此,"语音"如本文中所用可以包括元音的发音作为规格化处理的一 部分。
原生串、规格化串或其组合可以关联于书写系统,如英语或任何其他书写 系统。在一个实施例中,关联于原生串的书写系统与关联于规格化串的书写系 统是不同的书写系统。例如,原生串可以基于印度语书写系统,而规格化串可 以基于英语书写系统,如标准的二十六个字母的字母表。因此,重述系统200 可以在基于印度语的原生串的基础上生成基于英语的规格化串。印度语书写系 统可以包括例如天城体(Devan5garT),天城体至少部分地用于书写多种印度 语,包括梵文、印地语、马拉地语、信德语、比哈尔语、比尔语、马尔瓦里语、 孔卡尼语、博杰普尔语,及来自尼泊尔的语言,如尼泊尔语、塔鲁语、尼瓦尔 语,有时也用于书写克什米尔语和罗姆语。
参考图2,重述系统200包括原生串输入组件202、字符组识别组件204、 相关(correlation)组件206、规格化串生成组件208,及输出组件210。在一 些实施例中, 一个或多个所示组件可以实现为一个或多个自立应用程序。在其 他实施例中,一个或多个所示组件可以直接集成到服务器和/或最终用户设备的 操作系统或应用程序中。本领域普通技术人员应理解,图2所示组件本质上和 数量上是示例性的且不应理解为受到如此限制。可以使用任何数量的组件来实 现所需功能性而仍在本发明实施例的范围内。此外,各组件可以位于任何数量 的服务器或计算设备上。
原生串输入组件202配置为获得一个或多个原生串。原生串输入组件202 可以通过接收、检索或确定这样的原生串来获得原生串。在一个实施例中,原 生串输入组件202获得的原生串可以包括查询、搜索内容、馈送(feed)、任
9何其他数据,或其组合中的至少部分。查询可以指用户提供的或请求信息的计 算机程序提供的查询。在原生串的至少一部分由用户提供的实施例中,可以使 用图形用户界面获得原生串。用户界面可以关联于任何搜索机制,如联系人列
表、统一通信客户机,如Microsoft Office Communicator 2007、媒体播放器、 web网页、文档、桌面、词典功能,或任何其他搜索机制。在使用图形用户界 面时,用户可以键入、粘贴、选择和/或(如通过说话来)输入一个或多个字符, 即原生串到输入字段中。图形用户界面可以包括一个或多个功能方面,如下拉 菜单、文本字段、复选框、应用程序域内的字段、语音文本转换等。在语音文 本转换功能存在的场合,原生串输入组件202可以适配成用于接收语音输入并 将这样的输入数字化为文本。
搜索内容,如本文中所用,可以指可搜索的任何内容,包括但不限于与联 系人列表、统一通信客户机,如Microsoft Office Communicator 2007、媒体播 放器、web网页、文档、桌面、词典功能、新闻聚集器等关联的数据,或任何 其他可搜索的内容。这样的搜索内容可以存储在例如数据库、计算机存储器等 中。或者,搜索内容是可访问的,从而即使搜索内容未被本地或远程存储也可 以获得原生串。在一个实例中,从搜索内容获得的原生串可以关联于由用户或 计算机程序提供的查询。
在一些实施例中,原生串输入组件202也可以配置为确定是否获得输入 串。例如,在一些实施例中,只有特定的原生串才需要规格化串。在这样的实 施例中,原生串输入组件202可以选择仅获得期望的原生串。期望的原生串可 以包括例如含有专有名词,即标识人、地、物或事的名词的原生串,及先前未 为其生成过规格化串的原生串等。
字符组识别组件204配置为识别原生串内的一个或多个字符组,即原生字 符组。字符组指一群位置彼此邻接的一个或多个字符。如此,原生串可以包括 一个或多个字符组。在一个实施例中,可以基于一群预先确定的原生字符组来 识别原生串内的原生字符组。这样的一群预先确定的原生字符组可以基于特定 的书写系统,如印度语。仅作为示例,可以基于例如在组合后具有与另一种书 写系统关联的语音等效物的一个或多个字符,来预先确定群内的原生字符组。 这样的语音等效物包括辅音、元音或其组合的等效物。然后可以通过参考该群预先确定的原生字符组以找到匹配的原生字符组来识别原生串内的原生字符 组。
在一个实施例中,字符组识别组件204可以系统地识别原生串内的原生字
符组。如此,字符组识别组件204可以使用有向系统、最优化系统或其组合来 识别字符组。有向系统指识别原生字符组的规程方向,如从左向右、从右向左、 自首至尾、自尾至首等。仅作为示例,在使用自首至尾有向系统的实施例中, 字符组识别组件204可以识别至少包括原生串的第一个字符的初始原生字符 组。如果在初始原生字符组之后有任何后续原生字符组,则后续原生字符组也 由字符组识别组件204识别。每个这样的后续原生字符组可包括前一原生字符 组之后的至少第一个字符。
最优化系统指基于最优化的属性识别原生字符组。最优化的属性可以包括 例如最大的字符组大小、最小的字符组大小、包含某元音的字符组、包含某辅 音的字符组、包含某字母的字符组等。如本文中所用,短语"字符组大小"指 的是字符组中的字符数量,例如字符组"bha"的字符组大小为3。仅作为示例, 在使用最大字符组大小最优化系统的实施例中,字符组识别组件204可以识别 原生串内的一个或多个最大字符组。在这样的实施例中,字符组识别组件204 可以从最大字符组大小到最小字符组大小地来连续识别原生字符组,直到识别 出该原生串的每个原生字符组。
在一些实施例中,字符组识别组件204可以基于有向和最优化系统的组合 来识别原生串内的原生字符组。仅作为示例,假设使用图3中的该群预先确定 的原生字符组320来识别原生串内的原生字符组。进一步假设实施例使用自首 至尾有向系统与最大字符组大小最优化系统的组合来识别通过原生串输入组 件202获得的原生串"Moorthi"内的原生字符组。在这样的情况中,字符组识 别组件204可以首先识别具有最大字符组大小的初始字符组,初始字符组即至 少包括原生串的第一个字符的字符组。因为关联于初始字符m的预先确定的原 生字符组322仅包括w和flA/而不包括mo,所以至少包括原生串的第一个字 符的最大字符组是m。 一旦确定原生串的最大初始原生字符组,字符组识别组 件204就可以识别每个最大的后续字符组——如果存在任何这样的最大后续字 符组的话。如此,原生串内在初始原生字符组之后的第一个字符是o。因为关
11联于字符o的预先确定的原生字符组326包括原生字符组oo,所以该原生串的
最大后续原生字符组是00。然后,字符组00之后的第一个后续字符是r。因为字符组W不在关联于字符r的预先确定的原生字符组324当中,所以该原生串的最大后续字符组是r。字符组r之后该原生串的后续字符是Z、 / 和/。因为关联于字母,的最大后续原生字符组328是A,所以该原生串的下一个原生字符组是A。该原生串的最后一个字符違/。如此,原生串的最后一个原生字符组是/。因此,基于该群预先确定的原生字符组320,原生串"moorthi"的原生字符组包括m、 oo、 r、 A和/。
相关(correlation)组件206配置为将字符组识别组件204识别出的原生字符组关联于对应的规格化字符组。规格化字符组指表示原生字符组的一个或多个字符。如此,'规格化字符组可以例如在语音上表示原生字符组。在一个实施例中,规格化字符组可以基于特定书写系统,如英语。可以预先确定这样的规格化字符组。仅作为示例,可以基于例如与另一种书写系统关联的一个或多个组合字符的语音等效物,包括辅音和元音,来预先确定规格化字符组。
相关(correlation)组件206可以通过算法、重述表,如图3所示的重述表300,或算法与重述表的组合来进行操作。在使用重述表将原生字符组与于对应的规格化字符组进行相关的实施例中,重述表可以包括一群原生字符组和一群规格化字符组。这样的实施例还可以包括对应于原生字符组、规格化字符组,或其组合的一群规则。规则可用于将字符组识别组件204识别出的原生字符组与对应的规格化字符组进行相关。
在一个实施例中,可以基于具体用户修改重述表。可以自动地或按用户选择的首选项来修改重述表。在自动修改重述表的情况中,可以基于解释串内正确的字符如单词的正确拼写与用户输入或选择的字符之间的语音偏差的算法进行修改。在按用户选择的首选项修改重述表的情况中,在一个实例中,用户可以选择基于对不同于用户输入或选择的字符的一个或多个正确字符串的语音偏差进行解释的算法来修改重述表。在另一个实例中,可以在用户提供反馈和/或阐明字符错误时修改重述表。用户反馈可以包括例如建议、推荐、期望的重述表修改、要求的重述表修改等。
参考图3,示出根据本发明的一个实施例的可由相关(correlation)组件
12206使用的示例性重述表300。重述表300包括基于印度语书写系统的一群预先确定的原生字符组320、基于英语书写系统的一群规格化字符组330,及一群规则340。在一个实施例中, 一个或多个原生字符组可以对应于规格化字符组和/或规则。例如,在图3中,预先确定的原生字符组321对应于规格化字符组331和规则341。
仅作为示例,假设原生串"Moorthi"由用户输入,然后由原生串输入组件202获得。进一步假设字符组识别组件204分别识别出该原生串中的原生字符组/n、 oo、 r、 //z和/。使用图3的重述表300作为查找系统,相关(correlation)组件206可以将识别出的原生字符组关联于对应的规格化字符组以便可生成规格化串。如此,对于每个原生字符组,识别出对应的规格化字符组。例如,对于每个原生字符组320,包括识别出的原生字符组w,对应的规格化字符组等于似。相关(correlation)组件206还可以确定对于原生字符组oo、 r、 A和/,
对应的规格化字符组分别等于o、 / 、 r和r。
本领域普通技术人员应理解,图3中示出的原生字符组、规格化字符组和规则在本质上和数量上是示例性的且不应被理解为受到限制。本领域技术人员应认识到,可存在重述表300的其他实施例。例如,可以独立地列出每个原生字符组,而不是将具有共同的对应规格化字符组的原生字符组群聚起来,且可以相邻于每个独立的原生字符组列表列出对应的规格化字符组。
再次参考图2,规格化串生成组件208配置为基于由相关(correlation)组件206识别出的一个或多个规格化字符组生成规格化串。在一个实施例中,为了生成规格化串,定位这一个或多个规格化字符组以使每个规格化字符组符合对应的原生字符组的位置。规格化串生成组件208可以使用转换、变换、替换、构造等以生成规格化串。在使用替换来生成规格化串的实施例中,可以用对应的规格化字符组替换原生串的每个原生字符组。在使用转换、变换或替换的一些实施例中,规格化串生成组件208可仅转换、变换或替换不同于由相关组件206识别出的对应规格化字符组的原生字符组。
仅作为示例,假设原生串"Moorthi"的原生字符组包括w、 oo、 r、 A和/。进一步假设关联于每个原生字符组的对应的规格化字符组分别包括M、 O、/ 、 r和y。在代换原生字符组的实施例中, 一旦用对应的规格化字符组代换原生字符组,该原生串"moorthi"就转换为规格化串"MORTY"。在规格化串 为原创的而不是由原生串转换得到的实施例中,形成规格化串"MORTY"。
输出组件210配置为输出由规格化串生成组件208生成的规格化串。在一 些实例中,规格化串可以向用户输出以进行显示,如通过计算机监视器或打印 机输出。在其他实例中,规格化串可以输出到在计算设备,如服务器或最终用 户设备上操作的另一个组件或模块。
图4是根据本发明实施例的语音搜索系统400的框图。这样的语音搜索系 统400可用于克服拼写错误以便可以撇开该错误定位到期望的内容。例如,在 一个实施例中,即使在用户输入的串不与搜索内容内阐明的串字符精确匹配的 情况下,语音搜索系统400仍可用于定位到搜索内容内与用户输入的串对应的 串。 ...
语音搜索系统400包括输入模块402、重述模块404、执行模块406、索 引模块408、输出模块410及还原模块412。在一些实施例中,所示模块中的 一个或多个可以实现为一个或多个自立的应用程序。在其他实施例中, 一个或 多个所示模块可以直接整合到服务器和/或最终用户设备的操作系统或应用程 序中。本领域普通技术人员应理解,图4所示的模块在本质上和数量上是示例 性的且不应被视为受到限制。可以使用任何数量的模块来实现所需功能性而仍 在本发明实施例的范围内。此外,模块可以位于任何数量的服务器或计算设备 上。
输入模块402可以配置为获得关联于搜索的任何数据。输入模块402可以 通过接收、检索或确定这样的搜索有关数据来获得数据。在一个实施例中,输 入模块402可以配置为获得原生串、其他搜索有关数据,或其组合。例如,输 入模块402可以获得关联于用户查询的原生串以及可被搜索的搜索内容。输入 模块402获得的原生串可以包括査询、搜索内容、任何其他数据或其组合中的 至少部分。输入模块402获得的其他搜索有关数据可以包括查询、搜索内容、 任何其他数据或其组合中的至少部分。这样的查询、搜索内容等可以包括与其 关联的原生串。
输入模块402获得的数据可以关联于联系人列表、统一通信客户机,如 Microsoft Office Communicator 2007、媒体播放器、web网页、文档、桌面、
14词典、新闻聚集器,或具有可搜索内容的任何其他应用程序。这样的数据可以存储在例如数据库、计算机存储器等中。或者,该数据是可访问的,从而即使该数据未被本地或远程存储,输入模块402也可以获得该数据。
在一些实施例中,输入模块402还配置为确定是否获得原生串、其他搜索有关数据等。输入模块402可以基于程序特征或用户指示来确定是否要获得原生串。程序特征可以包括例如语音搜索选项和滚动选项。语音搜索选项允许在语音搜索选项被激活时使用语音搜索特征,并在语音搜索选项未激活时限制语音搜索特征。在一些实施例中,用户可以指示使用语音搜索或相反地关掉语音搜索选项的期望。在其他实施例中,语音搜索选项可以由算法、程序开发者或程序管理员操纵。
激活的滚动选项允许在输入原生串时获得、规格化、搜索和/或输出该原生串。例如,在只输入了原生串的一部分到查询字段中时,滚动选项可以规格化已获得的部分,搜索关于规格化部分的内容,并输出搜索结果。如此,搜索结果可以随着获得原生串的更多字符而改变。在一些实施例中,用户可以指示激活或解除滚动选项的期望。在其他实施例中,滚动选项可以由算法、程序开发者或程序管理者操纵。
在输入模块402基于用户指示确定是否获得原生串的实施例中,用户可以指示执行搜索的期望或可以指定搜索内容。例如,在语音搜索选项被解除或不存在的实施例中,用户可以指示基于用户输入的原生串来执行搜索的期望。这样的指示可以包括选择"提交"或"搜索"图标。 一些实施例向用户提供对搜索内容的选择以使用户可以接收聚焦于用户期望的搜索结果。例如,可以向用户提呈搜索所有新闻文章、体育文章、博客等的选项。 一旦出现这样的执行搜索的指示,输入模块402就可以获得相应的内容,如关联于用户查询的原生串或与用户期望的数据有关的搜索内容。
重述模块404配置为基于原生串生成规格化串。重述模块404可以使用转换、变换、替换、构造等以生成规格化串。在一个实施例中,重述模块404可以包括图2的重述系统202。如上文所述,图2这样的重述系统200可以包括原生串输入组件202、字符组识别组件204、相关(correlation)组件206、规格化串生成组件208,及输出组件210。
15在一个实施例中,图4的输入模块402可以获得查询和搜索内容,而图2 的原生串输入组件202可以获得查询中阐明的原生串和由输入模块402获得的 搜索内容。例如,输入模块402可以获得要搜索的新闻文章,原生串输入组件 202可以获得该新闻文章中阐明的原生串。在一些实施例中,输入模块402获 得的查询和/或搜索内容内阐明的每个串也可以由原生串输入组件202获得。例 如,假设输入模块402获得了具有IOO个原生串的博客,则重述模块的原生串 输入组件202可以获得这IOO个原生串中的每一个,然后可以对这100个原生 串中的每一个进行规格化。
在其他实施例中,原生串输入组件202可以仅获得在由输入模块402获得 的搜索内容中阐明的特定原生串。例如,假设输入模块402获得了具有IOO个 原生串的博客,则重述模块的原生串输入组件202可以仅获得例如关联于代词 的原生串或与用户输入的査询类似的原生串。本领域技术人员应认识到图4的 输入模块402和图2的原生串输入组件202的功能性可以部分地或完全地重叠。 可存在实现所需功能性的多种实施例。
无论获得原生串的方式如何,重述模块404都可以为输入模块402、原生 串输入组件202或其组合获得的每个原生串生成规格化串。如此,重述模块404 可用于对关联于查询的原生串进行规格化,对关联于搜索内容的原生串进行规 格化等。
执行模块406配置为执行搜索。要搜索的搜索内容可以由输入模块402或 原生串输入组件202获得。或者,可以访问要搜索的搜索内容,然后再进行搜 索。例如,执行模块406可以不是获得web网站,而是访问该web网站并搜 索内容。
在基于关联于查询的原生串生成规格化串的实施例中,可以基于查询规格 化串对搜索内容进行搜索。例如,为了基于査询规格化串对搜索内容进行搜索, 可以为关联于査询的原生串和关联于搜索内容的一个或多个原生串生成规格 化串。可以为搜索内容内的每个原生串或为搜索内容内的特定原生串生成关联 于搜索内容的规格化串。搜索内容内这样的特定原生串可以包括例如类似于查 询原生串的串、关联于专有名词的串、搜索内容全文内的串,或搜索内容的元 数据内的串。在为关联于査询的原生串和关联于搜索内容的一个或多个原生串两者生成规格化串的实施例中,可以搜索具有一个或多个规格化串的搜索内容 以寻找与关联于查询的规格化串匹配的一个或多个规格化串。
还可以基于查询串的变体对搜索内容进行搜索。变体可以包括得出相同规
格化串的替代拼写。仅作为示例,"moorthy"和"moorthi"两者均得出包括 "MORTY"的规格化串。在这样的情况中, 一旦将原生串规格化,就可以确 定会得出相同规格化串的每种变体拼写。可以通过使用算法或重述表,如图3 的重述表300来确定这样的变体。或者,先前确定的变体可以存储在索引、数 据库或存储器中以便可以通过识别先前捕捉到的变体来确定变体。
执行模块406还可以配置为确定要搜索的搜索内容。在一个实施例中,用 户可以指示期望的搜索内容。例如,对于新伺聚集器,'用户可以指示感兴趣的 新闻馈送,如博客、所有新闻、或特定的馈送,如MSN 娱乐。用户还可以指 示感兴趣的新闻地点,如巴格达、北京、纽约等。
索引模块408配置为对原生串、由重述模块404生成的规格化串、或两者 的组合进行索引。索引模块408允许以后的查询利用先前己查实的搜索内容。 索引模块408可以使用任何方法对串进行索引,如使串按字母顺序排序、将每 个串关联于标识符等。
在一个实施例中,索引模块408对规格化串进行索引并将规格化串关联于 具有该规格化串或其变体的搜索内容。在这样的实施例中,也可以对具有该规 格化串或其变体的关联搜索内容进行索引。因此,下一次期望基于经索引的规
格化串进行搜索时,就可以利用该索引快速查实具有该规格化串或其变体的搜 索内容。
索引模块408还可以配置为存储规格化的搜索项或其变体,和/或关联的 搜索内容。在一些实施例中,规格化的搜索项或其变体、关联的搜索内容,或 其组合可以存储在本地机器上。例如,用户可以输入原生串到査询字段中。在 对原生串进行规格化并在搜索内容中定位到该规格化串时,可以在本地机器上 对有关系的馈送及其内容进行索引。
输出模块410配置为输出一个或多个规格化串或其变体、执行结果,或其 组合。在一些实例中,可以例如通过计算机监视器或打印机向用户输出规格化 串和/或执行结果。在这样的实例中,用户可以查看规格化串及其变体以验证査
17询或搜索结果的准确性。用户还可以细读搜索结果以寻找关联于用户查询的期 望搜索内容。在其他实例中,可以向在计算设备,如服务器或最终用户设备上 操作的另一组件或模块输出规格化串、执行结果或其组合。在这样的实例中, 规格化串和/或执行结果可以输出到例如索引模块408。
还原模块412配置为使用索引来获得关联于规格化串、原生串或其组合的 搜索内容。还原模块412允许以后的具有先前经索引的串的查询利用先前定位 到的搜索内容。例如,假设在第一实例中在所有新闻文章内搜索查询规格化串 "MORTY"。 一旦将关联于新闻文章的串规格化,査询规格化串"MORTY" 就与五篇具有该规格化串"MORTY"的文章匹配。如此,对规格化串"MORTY" 进行索引并将其关联于这五篇匹配的文章。进一步假设在第二实例中用户输入 或选择原生串"m.oorthi",且基于查询原生串生成或检索规格化串"MORTY"。 还原模块412不是再次搜索所有新闻文章以匹配规格化串,而是利用索引来快 速地査实该规格化串及其变体以及这五篇关联的新闻文章。
现参考图5,用流程图示出根据本发明实施例生成规格化串的方法500。 首先,如框502所示,获得原生串。然后,在框504识别初始原生字符组。这 样的原生字符组可以基于书写系统,如印度语书写系统。在框506,如果期望, 则确定初始原生字符组是否具有最优属性,如最大的字符组大小。如果确定识 别出的初始原生字符组不具有期望的最优属性,则该方法返回框504,直到识 别出具有期望的最优属性的初始原生字符组。
然而,如果确定初始原生字符组具有期望的最优属性,则在框508确定该 原生串内是否存后续原生字符组。如果原生串内存在后续原生字符组,则在框 510识别后续原生字符组。 一旦识别出后续原生字符组,如果期望,就在框512 确定后续原生字符组是否具有最优属性。如果确定后续原生字符组不具有期望 的最优属性,则该方法返回框510,直到识别出具有期望的最优属性的后续字 符组。然而,如果确定后续原生字符组具有期望的最优属性,则该方法进行至 框508以确定在该字符串内是否还有后续原生字符组。
回到框508,如果确定该原生串内不存在后续原生字符组,则在框514将 在框504和框510处识别出的每个原生字符组(如果有这样的原生字符组的话) 关联于语音上对应的规格化字符组。这样的对应规格化字符组可以基于第二书写系统,如英语。接下来,在框516,基于在语音上对应的规格化字符组生成 规格化串。在框518,输出该规格化串。
本领域普通技术人员应理解,图5的方法500在本质上和数量上是示例性 的且不应被理解为受到限制。本领域技术人员应认识到可存在生成规格化串的 其他实施例。例如,生成规格化串时可以不使用关联于框506和512的最优属 性。另外,生成规格化串可以包括识别每个原生字符组并在识别后续原生字符 组之前先将该原生字符组关联于规格化字符组。
参考图6,用流程图示出根据本发明实施例的执行语音搜索的方法600。 首先,如框602所示,获得关联于査询的原生串。在框604,对关联于查询的 原生串进行规格化。在框606,获得关联于搜索内容的一个或多个原生串。然 后,在框608,对关联于搜索内容的原生串的至少部分进行规格化。在框610, 在关联于搜索内容的规格化串中搜索查询规格化串。接下来,在框612,确定 是否有任何关联于搜索内容的规格化串匹配查询规格化串。如果没有关联于搜 索内容的规格化串匹配查询规格化串,则该方法在框614结束。然而,如果至 少有一个关联于搜索内容的规格化串匹配查询规格化串,则在框616对规格化 串和关联的搜索内容或其标识进行索引。在框618,存储规格化串和关联的搜 索内容或其标识。在框620,输出规格化串和/或关联的搜索内容。
现参考图7,用流程图示出根据本发明实施例的使用索引获得关联于串的 搜索内容的方法700。首先,如框702所示,获得关联于査询的原生串。接下 来,在框704,生成基于查询原生串的规格化串。在框706,确定该规格化串 是否存在于索引中。如果确定该规格化串不存在于索引内,则该方法在框708 结束。然而,如果确定该规格化串的确存在于索引内,则在框710获得关联于 经索引的该规格化串的搜索内容。然后,在框712输出关联于经索引的该规格 化串的搜索内容。
虽然已参考具体实施例描述本发明,但本领域技术人员应认识到可以作出 形式上和细节上的改变而不会脱离本发明的精神和范围。描述本发明实施例的 意图是示意性而非限制性的。应理解某些特征和子组合具有效用且可以在不参 考其他特征和子组合的情况下使用,且预期这样的特征和子组合落在本申请权 利要求的范围内。并非在各个附图中列出的所有步骤都需要按所描述的特定次
19序来执行。
本领域技术人员应理解,本发明的实施例尤其可以实施为方法、系统或计 算机程序产品。相应地,实施方式可以采取硬件实施例、软件实施例或硬件和 软件组合实施例等形式。在一个实施例中,本发明釆取计算机程序产品的形式, 该计算机程序产品包括在一个或多个计算机可读介质上实施的计算机可使用 的指令。
20
权利要求
1.一个或多个其上实施计算机可执行指令的计算机可读介质,所述计算机可执行指令在执行时执行一种基于原生串生成规格化串的方法,其中所述原生串包括关联于印度语书写系统的一个或多个原生字符组,所述方法包括识别(504)所述原生串内的一个或多个原生字符组,其中所述一个或多个原生字符组之一包括初始原生字符组,所述初始原生字符组至少包括所述原生串的第一个字符,且所述初始原生字符组之后的所述一个或多个原生字符组中的每个原生字符组——如果存在——至少包括前一原生字符组之后的第一个字符;将所述一个或多个原生字符组中的每个关联(514)于基于英语书写系统的一个或多个在语音上对应的规格化字符组;以及生成(516)规格化串,其中所述规格化串包括所述基于英语书写系统的一个或多个在语音上对应的规格化字符组。
2. 如权利要求1所述的计算机可读介质,其特征在于,还包括获得所述 原生串。
3. 如权利要求1所述的计算机可读介质,其特征在于,还包括输出所述 规格化串。
4. 如权利要求1所述的计算机可读介质,其特征在于,所述生成规格化 串包括用所述一个或多个在语音上对应的规格化字符组替换所述原生串内的 所述一个或多个原生字符组的每个。
5. 如权利要求1所述的计算机可读介质,其特征在于,所述识别原生串 内的一个或多个原生字符组包括基于最优化的属性识别所述一个或多个原生 字符组。
6. 如权利要求5所述的计算机可读介质,其特征在于,所述最优化的属 性包括最大字符组大小。
7. 如权利要求1所述的计算机可读介质,其特征在于,所述生成规格化 串包括使用重述表。
8. 如权利要求7所述的计算机可读介质,其特征在于,所述重述表包括数据结构,所述数据结构包括基于印度语书写系统的第一群一个或多个原生字符组;以及 基于英语书写系统的第二群一个或多个规格化字符组,其中所述一个或多个原生字符组中的每个在语音上对应于所述一个或多 个规格化字符组中的一个。
9. 如权利要求7所述的计算机可读介质,其特征在于,还包括第三群一 个或多个规则,其中所述一个或多个规则中的每个对应于所述一个或多个原生 字符组中的一个、所述一个或多个规格化字符组中的一个、或其组合。
10. —个或多个其上实施计算机可执行指令的计算机可读介质,所述计算 机可执行指令在执行时执行一种执行语音搜索的方法,所述方法包括-获得(602)与基于印度语书写系统的查询关联的查询原生串和与基于英 语书写系统的搜索内容关联的一个或多个搜索内容原生串; 基于所述査询原生串生成(604)查询规格化串;基于所述一个或多个搜索内容原生串中的每个生成(608) —个或多个搜 索内容规格化串;确定(612)所述查询规格化串是否匹配所述一个或多个搜索内容规格化 串中的任何一个;以及如果匹配,则对匹配查询规格化串的一个或多个搜索内容规格化串进行索引(616)以便可以在以后的时间访问所述索引。
11. 如权利要求10所述的计算机可读介质,其特征在于,还包括对与匹 配所述査询规格化串的所述一个或多个搜索内容规格化串关联的搜索内容进 行索引。
12. 如权利要求10所述的计算机可读介质,其特征在于,还包括输出与 所述查询规格化串匹配的所述一个或多个搜索内容规格化串、关联于与所述査 询规格化串匹配的所述一个或多个搜索内容规格化串的搜索上下文、或其组 合。
13. 如权利要求10所述的计算机可读介质,其特征在于,确定所述查询 规格化串是否匹配所述一个或多个搜索内容规格化串中的任何一个包括一对 一的比较。
14. 如权利要求10所述的计算机可读介质,其特征在于,生成所述查询 规格化串包括用至少一个规格化字符组代换至少一个原生字符组。
15. —种执行语音搜索的系统,所述系统包括重述模块(404),其配置为生成与基于印度语书写系统的查询关联的査询规格化串和与基于英语书写系统的搜索内容关联的一个或多个搜索内容规格化串;执行模块(406),其配置为确定所述査询规格化串是否匹配所述一个或 多个搜索内容规格化串中的任何一个;索引模块(408),其配置为对匹配所述查询规格化串的一个或多个搜索 内容规格化串进行索引,并将匹配所述查询规格化串的所述一个或多个搜索内 容规格化串中的每个与关联的搜索内容相关;以及还原模块(412),其配置为在一旦生成与所述查询规格化串匹配的第二 査询规格化串之际,就使用经索引的一个或多个搜索内容规格化串来获得关联 于所述一个或多个搜索内容规格化串的搜索内容。
16. 如权利要求15所述的系统,其特征在于,还包括配置为获得关联于 搜索的数据的输入模块。
17. 如权利要求15所述的系统,其特征在于,还包括输出模块,其配置 为输出一个或多个搜索内容规格化串、关联于所述一个或多个搜索内容规格化 串的搜索内容,或其组合。
18. 如权利要求15所述的系统,其特征在于,所述查询规格化串基于查 询原生串,并且所述一个或多个搜索内容规格化串基于一个或多个搜索内容原 生串。
19. 如权利要求18所述的系统,其特征在于,所述查询原生串和所述搜 索内容原生串基于印度语书写系统。
20. 如权利要求18所述的系统,其特征在于,所述査询规格化串和所述 搜索内容规格化串基于英语书写系统。
全文摘要
提供一种用于生成规格化串和执行语音搜索的方法和系统。为了使串规格化,获得原生串。一旦获得原生串,就识别该原生串内的原生字符组。每个原生字符组关联于语音上对应的规格化字符组。基于语音上对应的规格化字符组生成规格化串。在将查询串和一个或多个搜索内容串规格化之后,可利用这些规格化串来执行语音搜索。由此,可以将查询串比对一个或多个搜索内容串以查实有关系的搜索结果。有关系的搜索结果可以被索引并在以后的时刻获得。
文档编号G06F17/30GK101689198SQ200880022226
公开日2010年3月31日 申请日期2008年6月9日 优先权日2007年6月29日
发明者A·S·高尔, H·克里希南斯, P·本达普蒂 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1