CN101375279A - 多字字轮 - Google Patents

多字字轮 Download PDF

Info

Publication number
CN101375279A
CN101375279A CNA2007800032119A CN200780003211A CN101375279A CN 101375279 A CN101375279 A CN 101375279A CN A2007800032119 A CNA2007800032119 A CN A2007800032119A CN 200780003211 A CN200780003211 A CN 200780003211A CN 101375279 A CN101375279 A CN 101375279A
Authority
CN
China
Prior art keywords
data
input data
search
asterisk wildcard
candidate list
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
Application number
CNA2007800032119A
Other languages
English (en)
Inventor
K·丘奇
T·D·萨普
B·提尔森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101375279A publication Critical patent/CN101375279A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)
  • Machine Translation (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Stored Programmes (AREA)

Abstract

所要求保护的主题提供了扩充输入数据的***和/或方法。一接口可获得输入数据,且一通配符***组件可修改该输入数据以包括***在每一期望单词的末尾处的至少一个隐式通配符。另外,一扩充组件可至少部分地基于包括至少一个隐式通配符的输入数据,利用提供可能的通配符扩充的语言模型来生成候选扩充数据列表。此外,该扩充组件可在服务器处评估输入数据。

Description

多字字轮
背景
计算机硬件、软件和联网的技术进步已经产生了能够从世界上基本任何地方彼此通信以便交换信息的高效的、成本有效的计算***(例如,台式计算机、膝上型计算机、手持式计算机、蜂窝电话、服务器……)。这些***持续发展成更可靠的、稳健的、且用户友好的***。进步已使得这些计算***被用于访问、浏览和搜索因特网;撰写、发送和接收电子邮件消息;查看和编辑文档;发送和获得文本消息和/或即时消息;以及执行众多其它动作。例如,用户可采用蜂窝电话和/或个人数字助理(PDA)在因特网上搜索电影时间并且通过发送电子邮件、文本消息或即时消息来邀请朋友观看特定的放映。
随着这些***的持续发展,已经采用了各种技术来用于输入信息。某些最初的计算***通过利用穿孔卡和纸带来接收输入。最近,改进已允许通过使用键盘、鼠标、触敏屏幕、笔设备、光学字符识别、语音识别等来向这些设备提供信息。例如,常规的***通常采用大小可取决于设备类型而变化的键盘。根据一种图示,个人计算机或膝上型计算机可采用基于QWERTY布局的键盘,其中每一字母数字字符可以与一相应的键相关联;而蜂窝电话可包括更少的键,使得多个字母字符与一数字字符共享单个键。例如,蜂窝电话键区上的“2”键通常与字母“A”、“B”和“C”相关联。
当前,可利用多种技术来用有限的键盘输入文本,其中由于多于一个字母数字字符与一特定键相关联,可能存在歧义。例如,可采用多击(multiple-tap)方法,使得用户按压一数字键多次以输入所需的字母或数字。作为说明,可按压“2”键一次来输入数字2,按下两次来输入字母A,按下三次来输入字母B,而按下四次来输入字母C。暂停和/或按下诸如箭头键等移动光标的键可以帮助在不同的字母数字字符之间作出区分。然而,这一技术通常是耗时的,且对于用户而言是低效的,因为要按压单个键多次来输入单个字母数字字符。
用数字键输入文本的另一常见的方法是单击(single-tap)方法,其中用户按下与一所需字母相关联的数字键一次。之后,所输入的字符例如通过将与一单词相对应的字符序列匹配到储存在存储器中的序列来消除歧义。作为说明,为了输入单词“cell”,用户可按压序列2-3-5-5,该序列可以与储存在存储器中的序列进行比较。即使单击方法提供了输入文本的更高效方式,但是它也与多个缺陷相关联。具体地,用于单击方法的输入可能会保留歧义;由此,通常需要附加的用户输入来解决这样的歧义。根据以上说明,输入序列2-3-5-5可匹配与所述的单词“cell”相关联的序列以及涉及单词“bell”的键序列。因此,通常需要附加输入来在这些有歧义的可能性之间作出区分。
由此,缺少全键盘的常规***通常与低效且耗时的输入数据的技术相关联。除了上述的与有限的键盘相关联的困难之外,诸如PDA等设备通常利用了手写形式,采用该手写形式,数据输入可能是低效和/或慢速的。此外,即使在有键盘可用的情况下,用户可能拼写不佳和/或可能不熟悉适当和/或流行的输入。
概述
以下提出了简化概述以便提供对在此描述的某些方面的基本理解。本概述并不是对要求保护的主题的全面综述。它既不旨在标识出所要求保护的主题的关键或重要的要素,也不描绘其范围。其唯一的目的是以简化的形式来介绍一些概念,作为稍后提出的更为详细的描述的序言。
所要求保护的主题涉及帮助扩充输入数据的***和/或方法。输入数据可包括显式通配符和/或可具有***在其中的隐式通配符。该通配符之后可以利用一语言模型来扩充。例如,可提供k个最佳扩充作为建议。可选择这些建议中的一个或多个,例如用于执行搜索、将文本输入到文档和/或消息(例如,文本消息、即时消息、电子邮件……)等等。根据一个示例,输入数据可以与任意数目的期望单词相关联。这些期望单词的每一个可以至少部分地基于一语言模型来扩充,使得可以生成一候选列表,并且可以从该候选列表中作出选择。
根据所要求保护的主题的各方面,一扩充组件可至少部分地基于所获得的输入数据来生成一候选扩充数据列表。该扩充组件可利用一语言模型来提供与输入数据相关联的通配符的可能扩充。可以理解,输入数据可以由任何类型的输入设备来生成。例如,台式计算机、膝上型计算机、手持式计算机、蜂窝电话、服务器等可提供输入数据。此外,输入数据可包括字母数据、数字数据(例如,利用蜂窝电话的键区输入)、语音数据、手写数据、其组合等等。另外,输入数据可以被转换成适当的形式(例如,为了构成字母字符)。
根据所要求保护的主题的一个或多个方面,可将隐式通配符***到可获得的输入数据中。该隐式通配符可以被放置在输入数据内的任何位置处。例如,隐式通配符可以被***在输入数据的开头和/或末尾。另外地或另选地,隐式通配符可以被包括在输入数据内的期望单词之前和/或之后。
根据所要求保护的主题的各方面,可在服务器侧实现通配符(例如,显式和/或隐式)的扩充。服务器侧应用程序可以实现对通配符完成的计算上轻量且快速的检索。此外,可以实现考虑了位置数据的扩充。例如,可采用一语言模型,使得位置相关的扩充可以与更高的相关度相关联。
以下描述和附图详细阐明了所要求保护的主题的某些说明性方面。然而,这些方面仅指示了可采用该主题的原理的各种方法中的几种,且所要求保护的主题不旨在包括所有这些方面及其等效方面。结合附图阅读下面的详细描述,则其他优点和新颖特征将变得清楚。
附图简述
图1示出了扩充输入数据的示例性***的框图。
图2示出了将隐式通配符***到输入数据中的示例性***的框图。
图3示出了执行服务器侧输入数据扩充的示例性***的框图。
图4示出了完成与输入数据相关联的通配符的示例性***的框图。
图5示出了训练用于扩充输入数据的语言模型的示例性***的框图。
图6示出了修改和/或利用从输入数据生成的候选列表的示例性***的框图。
图7示出了至少部分地基于对位置的考虑来扩充输入数据的示例性***的框图。
图8示出了帮助生成和/或利用候选扩充数据列表的示例性***的框图。
图9示出了帮助扩充输入数据的示例性方法。
图10示出了帮助评价与输入数据相关联的通配符的示例性方法。
图11-23示出了描绘与扩充通配符相关联的各方面的示例性屏幕截图。
图24示出了其中可采用所要求保护的主题的新颖方面的示例性联网环境。
图25示出了可根据所要求保护的主题采用的示例性操作环境。
详细描述
所要求保护的主题参考附图来描述,所有附图中使用相同的参考标号来指代相同的元素。在以下描述中,为解释起见,阐明了众多具体细节以提供对本发明的全面理解。然而,很明显,所要求保护的主题可以在没有这些具体细节的情况下实施。在其它情况下,以框图形式示出了公知的结构和设备以便于描述本发明。
如在此使用的,术语“组件”、“***”、“接口”等指的是计算机相关的实体,它们可以是硬件、软件(例如,执行中的)和/或固件。例如,组件可以是运行在处理器上的进程、处理器、对象、可执行码、程序、和/或计算机。作为说明,运行在服务器上的应用程序和服务器都可以是组件。一个或多个组件可驻留在一个进程内,且组件可位于一台计算机上和/或分布在两台或更多计算机之间。
此外,所要求保护的主题可以使用产生软件、固件、硬件或其任意组合的标准编程和/或工程技术而被实现为用于控制计算机以实现所公开的本发明的方法、装置或制品。在此使用的术语“制品”旨在涵盖可以从任何计算机可读设备、载体或介质访问的计算机程序。例如,计算机可读介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁带……)、光盘(例如,紧致盘(CD)、数字多功能盘(DVD)……)、智能卡和闪存设备(例如,卡、棒、键驱动器……)。另外应该明白,载波可以被用于承载计算机可读电子数据,例如那些用于发送和接收电子邮件或用于访问如因特网或局域网(LAN)等网络的数据。当然,本领域的技术人员将会认识到,在不背离所要求保护的主题的范围或精神的前提下可以对这一配置进行许多修改。此外,在此使用词语“示例性”意指用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定要被解释为相比其他方面或设计更优选或有利。
现在转向附图,图1示出了扩充输入数据的***100。***100可包括获得输入数据的接口102以及利用该输入数据来生成候选扩充数据列表的扩充组件104。接口102可以从任何类型的输入设备(未示出)接收输入数据。例如,输入数据可以由个人计算机、膝上型计算机、手持式计算机、蜂窝电话、服务器等生成。可以理解,接口102和/或扩充组件103可以耦合到输入设备、可以全部或部分地包括在输入设备中、和/或可以是独立的组件。
任何类型的输入数据都可由接口102接收。根据一个示例,当用户采用个人计算机时,接口102可以获得与用户按下的键相关联的字母数字字符。另外,可采用语音识别来分析用户口头输入和/或可利用手写识别来标识书面数据;由此,接口102可以接收听觉和/或视觉数据。作为进一步的说明,接口102可以接收与蜂窝电话键区相关联的数字字符,其中每一数字字符可以与多个字母数字字符相关。
输入数据可以包括一个或多个显式通配符。通配符可以由“*”来表示;然而,通配符的任何完全不同的表示也落入所要求保护的主题的范围之内(例如,除了*,任何其它字符可以被用作通配符,如声音、记号……)。显式通配符可以被包括在输入数据内的任何地方。由此,例如,如果用户希望输入单词“Lincoln”,输入“Linc*n”可以用与个人计算机相关联的键盘来键入并提供给接口102。根据另一说明,用户可发出“m-星号-t”的声音,并且该输入数据可被提供给扩充组件104,后者可利用语音识别来将输入数据标识为“m*t”。可以理解,所要求保护的主题不限于这些示例。
在获得了输入数据之后,接口102可以将输入数据提供给扩充组件104。扩充组件104可包括允许采用提供与输入数据相关联的通配符的可能扩充的语言模型的语言模型组件106。由此,通过利用该语言模型,扩充组件104可以扩充与输入数据相关联的显式通配符以生成候选扩充数据列表。另外地或另选地,扩充组件104可以将隐式通配符***到输入数据中;这些隐式通配符可以类似地通过采用语言模型来扩充。该语言模型可用于找出k个最佳扩充。
常规***可以允许用户通过有限的键区来输入文本。假定用户希望利用蜂窝电话来搜索“MSN”。采用多击的标准方法可以是键入6<暂停>777<暂停>66,其中6产生M,777产生S,而66表示N。另一种多击方法可利用键入66<暂停>7777<暂停>666,使得66可表示M,7777可与S相关联,而666可以与N有关。如果在多击方法中没有包括暂停,则输入数据将有歧义。或者可采用单击技术。由此,输入676(对于MSN)可用于找到k个最佳匹配,并且之后,用户可从该列表中选择MSN。根据此示例,676可以表示[6MNOmno][7PRSprs][6MNOmno]。然而,常规***无法利用语言模型来扩充可以位于输入数据内的任何地方的隐式和/或显式通配符。
语言模型组件106可以采用任何语言模型。例如,可以利用三元语法(trigram)语言模型。另外,可采用受限语言模型。根据一个示例,用于web查询的语言模型可以基于一查询列表以及与其相关联的概率。根据另一示例,可将基于音节元素构建的语言模型用于扩充隐式和/或显式通配符。根据又一示例,语言模型组件106使用的语言模型可以被频繁地更新以允许及时地标识出突发新闻报导。
尽管接口102被描绘为与扩充组件104分开,但是可以构想扩充组件104可包括接口102或其一部分。并且,接口102可以提供各种适配器、连接器、通道、通信路径等以便允许与扩充组件104交互。
扩充组件104产生之后可被利用的候选扩充数据列表。例如,该候选列表可以被显示给用户(例如,经由接口102),和/或用户可从该候选列表中作出选择。从该候选列表中所选的扩充可以用于执行搜索、可被输入到所撰写的文档或消息中、可被***到地址栏中等等。可以构想,接口102可以提供如图所示的候选扩充数据列表(例如,提供给用户、给输入设备……)。另外地或另选地,扩充组件104或一完全不同的组件(未示出)可以输出该候选列表。例如,该候选列表可包括k个最佳扩充。根据另一示例,该候选列表可包括5个最常用的扩充、三个最常用的扩充和前十个使用最多的扩充中的另外两个的混合、和/或赞助推荐;然而,所要求保护的主题不限于这些示例。
转向图2,所示是将隐式通配符***到输入数据中的***200。***200包括接收输入数据并将输入数据提供给扩充组件204的接口202。扩充组件204可以扩充输入数据以产生一扩充数据候选列表。例如,可用扩充组件204来生成k个最佳扩充。扩充可以至少部分地利用由语言模型组件206提供的语言模型来实现。
扩充组件204还可以包括将一个或多个隐式通配符***到输入数据中的通配符***组件208。可以理解,通配符***组件208可以将隐式通配符定位在输入数据中的任何地方。在***了隐式通配符之后,可以基于语言模型来扩充输入数据中的隐式通配符以及任何显式通配符。
根据一个示例,通配符***组件208可以标识输入数据中的期望单词的末尾。根据此示例,通配符***组件208可以在这一标识的位置处***一通配符。可以理解,可以确定多个这样的位置,并且因此可以随输入数据包括任何适当数量的隐式通配符。作为说明,通配符***组件208可以通过标识空格来定位期望单词的末尾,并在输入数据内的每一空格之前***一隐式通配符。另外地或另选地,通配符***组件208可以在输入数据的末尾处放置一隐式通配符。
通配符***组件208还可将隐式通配符***在输入数据内的其它位置中。例如,一隐式通配符可以通过利用通配符***组件208被包括在输入数据的开头处。另外地或另选地,通配符***组件208可以在输入数据的每一期望单词的开头处放置一隐式通配符。
以下示出了示例性输入数据(左手侧)以及可利用扩充组件204、语言模型组件206和/或通配符***组件208生成的对应的扩充数据(右手侧):
n y c→New York City
Cin OH→Cincinnati Ohio
Arn S*w*g→Arnold Schwarzenegger
根据第一个示例,通配符***组件208可以在“n”、“y”和“c”之后***隐式通配符。可采用语言模型来提供这些通配符的可能扩充,由此产生“New York City”作为扩充输出。第三个示例展示了显式通配符可被包括在输入数据中。由此,这些显式通配符以及位于“n”之后和“g”之后的隐式通配符可被扩充以生成“Arnold Schwarzenegger”作为扩充输出。
对通配符***组件208(以及扩充组件204)的利用可以提供优于常规技术的多个优点。具体地,通配符***组件208和/或扩充组件204可允许字轮(work wheeling)。由此,用户可在诸如蜂窝电话或PDA等具有有限键盘能力的移动设备上输入数据,其中该有限的键盘能力可能与字母数字字符的低效和/或耗时输入相关联;然而,所要求保护的主题不如此限制。另外,字轮可以补偿用户不知道期望输入的正确拼写。此外,字轮可以帮助对于对输入的查询仅有模糊概念(例如,在web搜索的上下文中)或对当前什么是流行的感到好奇的用户,并且因此匹配一部分输入。
参考图3,所示是执行服务器侧输入数据扩充的***300。***300可包括接收输入数据和/或发送候选扩充数据列表的接口302。接口302可将输入数据提供给扩充显式和/或隐式通配符的扩充组件304。扩充组件304可利用语言模型组件306来生成与输入数据相关联的k个最佳扩充。尽管未描绘,但是可以理解,通配符***组件(例如,图2的通配符***组件208)可以另外地结合***300一起使用。
***300还包括与接口302通信的客户机组件308。客户机组件308和接口302可以经由任何类型的连接来耦合。作为说明而非局限,输入数据和/或候选扩充数据列表可以经由有线连接、无线连接、其组合、或任何完全不同类型的连接来传送。例如,客户机组件308可以是台式计算机、膝上型计算机、手持式计算机、蜂窝电话等等。
作为说明,客户机组件308可以是诸如蜂窝电话等移动设备。利用与蜂窝电话相关联的键区,输入数据可被输入且之后可被传送到接口302。可由扩充组件304生成输入数据的k个最佳扩充。扩充组件304可以利用语言模型来评估输入数据以产生一组扩充数据,其中与输入数据相关联的通配符(例如,隐式和/或显式的)可以用用于该组扩充中的至少一个的至少一个字母数字字符来替换。之后,可将所得的候选扩充数据列表提供回客户机组件308。
与***300相关联的服务器侧实现可以采用计算上轻量和/或快速的通配符(和/或电话数字键)完成检索,而较小的存储器占用量可能并不是必需的。为了实现快速的通配符完成检索,扩充组件304可采用一后缀树,其中后缀按照流行度和字母表两者的顺序来排序,且在树中的偶和奇深度上交替。另外地或另选地,如果快速检索不是问题(例如,如果有许多服务器可用于完成通配符),则用于语言模型的实际数据结构可能是较不重要的。由此,如果有足够的计算能力可用,则通配符完成可通过采用可能条目的有序列表上的简单正则表达式匹配来实现。
以下示出了利用索引和/或压缩来生成候选扩充数据列表的扩充组件304的一个示例。与k个最佳串匹配相关联地,可采用各种类型的语言模型。例如,可利用三元语言模型和/或长列表(例如,用于诸如七百万个最流行web查询等有限语言)。长列表可以用后缀数组来索引。后缀数组可以被推广到电话模式。web查询列表可以作为N字节的文本来对待。(新的行可以用串结束定界符来替换)。后缀数组S可以是N个整数的序列。该数组可以用从0到N-1的数字来初始化。由此,S[i]=i,0≤i<N。这些整数中的每一个都可表示一个串,该串从文本中的位置i开始,并延伸到该串的末尾。因此,S可以按照字母表来排序。
后缀阵列可使得能够容易地找到任何n元语法(子串)的频率和位置。例如,给定诸如“mail”等子串,可找到以“mail”开头的第一个和最后一个后缀,并且这两者之间的间隙可以是频率。另外,间隙中的每一后缀可以指向“mail”的超串(super-string)。
为将后缀数组推广到电话模式,例如,字母表顺序(strcmp)可以用电话顺序(phone-strcmp)来替换。strcmp和phone-strcmp都可以每次一个地考虑每一字符。在标准的字母表排序中,‘a’<’b’<’c’,但是在phone-strcmp中,映射到电话键区上的同一键的字符可以作为等效的来对待。
后缀数组可以被推广以便利用流行度权重。由此,代替找出包含子串“mail”的所有查询,可标识k个最佳(例如,最流行)。标准后缀数组方法可以通过对输出添加过滤器以在结果中搜索k个最佳来工作。然而,如果有大量的匹配,则该过滤器可能花费O(N)的时间。
作为一种改进,后缀数组可以同时按照流行度和字母表顺序来排序,使得树中的偶和奇深度交替。在第一层,后缀数组可以按照第一顺序来排序,然后按照第二顺序来排序,依此类推。当搜索按照字母表顺序来排序的节点时,可利用标准后缀数组技术。另外,当搜索按照流行度排序的节点时,可先搜索到较流行的一半再搜索另一半。如果有大量匹配,如对于短串常见的情形,则索引可使得能够容易地快速找到前k个,且因此,可能无需搜索另一半。如果前缀是少见的,则可搜索这两部分,且因此,对较坏的情况,有一半的拆分(例如,按照流行度的拆分)可能是无用的,其中输入子串不匹配表中的任何内容。查找是O(sqrt N)。
通配符匹配可以不同于子串匹配。有限状态机是考虑带有通配符的k个最佳匹配问题的好方法。例如,输入串通常包括长的常量定位点(例如,无通配符的子串)。后缀数组可使用这些定位点来生成然后按照正则表达式包来过滤的候选列表。
在许多实际应用中,存储器可能是有限的,尤其是在移动上下文中。对于三元语法模型,可以利用有损方法。每一三元语法<x,y,z>可被映射到一散列节点h=(V2x+Vy+z)%P,其中V是词汇量大小,而P是适当的质数。P在存储器和损耗之间折衷。储存N个三元语法的成本可以是N[1/loge2+log2(P/N)]位。损耗,即假命中的概率为1/P。N个三元语法可被散列成h个散列码并且可对这些代码排序。差异x可以用Golomb码来编码,假定差异是指数分布的,则该代码是最优哈夫曼码,这可以是散列是泊松的情况。
参考图4,所示是完成与输入数据相关联的通配符的***400。***400包括接收输入数据并将输入数据提供给扩充组件404的接口402,扩充组件404可以完成与输入数据相关联的通配符(例如,隐式和/或显式通配符)。可以理解,接口402和/或扩充组件404可以位于服务器侧和/或客户机侧。此外,扩充组件404可以采用可结合输入数据来利用的语言模型组件406以产生扩充数据。
扩充组件404还可以包括将接口402接收到的输入数据转换成对应的字母字符数据的转换组件408。字母字符数据之后可以被扩充以产生候选扩充数据列表。另外地或另选地,转换组件408可以在扩充组件404完成了通配符之后对该数据操作;然而,所要求保护的主题不限于此。根据一个示例,所接收的输入数据可以是可以通过采用蜂窝电话来输入的数字数据。转换组件408可识别所接收的数据是用蜂窝电话生成的,并将该数据转换成对应的字母字符数据。转换组件408可以在特意包括数字字符的输入数据(例如,如果输入是如“T1”)和其中数字字符代表字母字符的输入数据(例如,可以是输入数据是利用蜂窝电话生成的情况)之间作出区分。根据另一说明,转换组件408可以标识对语音数据的接收并允许执行语音识别。根据又一示例,转换组件408可以确定接口402获得了手写输入,并进行手写识别以更改输入数据。可以理解,所要求保护的主题不限于上述示例。
扩充组件404还可以包括拼写纠正组件410。拼写纠正组件410可以修改输入数据的一部分或全部以解决潜在的拼写错误。由此,候选列表中的至少一个通配符完成可以与经修改的输入数据相关联。拼写纠正组件410可以用于显示对输入数据的一个或多个拼写纠正。由此,作为示例,如果输入数据是“monsearch”,则拼写纠正组件410可在候选列表中提供“msn search”。
扩充组件404还可包括更新组件412,该组件可在输入输入数据的每一字符时动态更新候选列表。建议的通配符完成可动态地显示,其中通过采用更新组件412,当输入每一新字符时建议改变和/或改进。在这一情况下用户可以不必按下“Suggest(建议)”按钮来获得候选列表。例如,用户可输入“7”,并且更新组件412和/或扩充组件404可以提供“Shopping”作为候选列表的一部分。随后,用户可输入一空格后跟另一“7”,并且更新组件412可以修改候选扩充数据列表,使得不再包括“Shopping”,而是呈现“Space Needle”;然而,所要求保护的主题不限于此示例。
图5示出了训练用于扩充输入数据的语言模型的***500。***500包括接口502和扩充组件504。接口502可以接收输入数据,并基于扩充组件504执行的扩充来提供候选扩充数据列表。扩充组件504还可包括语言模型组件506,该组件可提供可用于生成扩充数据的语言模型。可以理解,对所要求保护的主题可以利用任何类型的语言模型。
***500还可包括模型训练组件508,该组件基于一训练数据集来训练语言模型,该训练数据集被储存在训练数据存储510中。对于不同的应用,模型训练组件508可以采用不同的训练集。例如,对于web搜索,模型训练组件508采用的训练集可包括查询日志和web文档的组合。根据另一示例,训练集可包括典型的文档以便在采用文本编辑器应用程序时训练语言模型。作为又一说明,模型训练组件508可利用即时消息通信日志来训练可结合即时消息通信应用程序采用的语言模型。模型训练组件508可包括训练集选择组件512,该组件可基于所采用的应用程序来选择一特定的训练数据集。
训练数据存储510可包括各种训练集,并且可以由训练集选择组件512来标识并利用适当的集合。训练数据存储510可以是例如易失性存储器或非易失性存储器,或者可同时包括易失性存储器和非易失性存储器两者。作为说明而非局限,非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM),它用作外部高速缓冲存储器。作为示例而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。本***和方法的训练数据存储510旨在包括但不限于这些以及其它任何适当类型的存储器。另外,可以理解,训练数据存储510可以是服务器、数据库、硬盘驱动器等等。
转向图6,所示是修改和/或利用从输入数据生成的候选列表的***600。***600可包括可获得输入数据的接口602以及标识、***和/或扩充与输入数据相关联的通配符(例如,隐式和/或显式的)扩充组件604。还可包括提供有助于扩充通配符的语言模型的语言模型组件606作为扩充组件604的一部分。
***600还可包括可耦合到扩充组件604的搜索组件608。例如,扩充组件604可提供与输入数据有关的候选扩充列表。之后,可选择(例如,由用户、由不同的组件……)候选列表中的一个特定扩充,并且可由搜索组件608基于该选择来执行搜索。例如,搜索组件608可以与搜索引擎(未示出)相关联,使得选择可以被用作搜索查询并且可检索到与其有关的内容。另外地或另选地,搜索组件608可以是搜索引擎。搜索组件608可输出与搜索有关的结果(例如,向显示组件、向用户、向输入组件……)。
***600还可包括过滤器组件610和/或个性化组件612。尽管被描绘为耦合到扩充组件604,但是可以构想其中的任一个或两者都可耦合到搜索组件608。过滤器组件610可以用于从候选列表中移除各种扩充。例如,可由过滤器组件610中k个最佳建议的候选列表中过滤掉本质上成人的、粗俗的、讨厌的等等扩充,且因此不显示给用户。另外地或另选地,有可能产生本质上成人的、粗俗的、讨厌的等的搜索结果的扩充可经由过滤器组件610来移除。过滤器组件610可以由用户打开或关闭、可以总是或从不可操作、可以基于输入数据和/或输入设备来实现过滤等等。
个性化组件612可以有助于对特定用户定制***600。例如,个性化组件612可以标识用户(例如,通过口令、生物测定指示器、卡、钥匙、位置……)。个性化组件612可以为特定用户更改语言模型组件606用于生成候选列表的语言模型。另外地或另选地,个性化组件612可以允许过滤器组件610基于用户身份来显示和/或移除特定扩充。个性化组件612可以跟踪和/或利用用户的偏好和/或历史数据。此外,个性化组件612可以允许至少部分地基于与特定用户相关联的桌面搜索索引来训练语言模型(例如,经由图5的模型训练组件508)。
参考图7,所示是至少部分地基于对位置的考虑来扩充输入数据的***700。***700可包括能获得可被提供给扩充组件704的查询和/或位置数据的接口702。扩充组件704还可包括语言模型组件706以及可鉴于位置数据来提供相关扩展的本地上下文组件708。当利用位置数据时,语言模型组件706可以采用与不采用位置数据时不同的语言模型。例如,位置相关语言模型可以使得与地点有关的扩展(例如,酒店、热门景点、餐馆……)更为主导,而人(例如,名人)较不重要。本地上下文组件708可以允许作出依赖于位置的完成。
客户机组件710可以向接口702提供输入数据和/或位置数据。客户机组件710还可包括能够标识与客户机组件712相关联的位置的位置组件712。例如,位置组件712可采用全球定位***(GPS)来确定客户机组件710的位置。可以构想用户可向客户机组件710输入位置,且该数据之后可被发送到服务器侧。尽管***700描绘了利用位置信息来扩充通配符的服务器侧实现,但是可以构想可以在客户机侧采用基于位置的***。
***700还可包括能够基于候选列表中的一个或多个扩充来执行搜索的搜索组件714。例如,用户可从候选列表中选择一扩充(例如,通过用客户机组件710作出选择),并且搜索组件714可以执行与所选扩充相关的搜索。由此,可采用中间查询细化,使得可在用搜索组件714获得查询结果之前提供附加输入(例如,用户选择)。然而,可以理解,所要求保护的主题不限于此。
搜索组件714还可包括能够排列扩充的排列组件716。例如,最有可能的扩充可以被显示在列表的开头、下拉列表的顶部、更突出地显示等等。尽管被描绘为作为搜索组件714的一部分来包括,但是排列组件716可以与搜索组件714分开。
此外,搜索组件714可包括能够随候选扩充列表一起包括与任何数量的扩充相关联的搜索结果的嵌入组件718。例如,扩充组件704可以扩充输入数据以生成可被提供给嵌入组件718的候选列表。嵌入组件718可以通过采用搜索组件714来执行与该列表中最有可能的候选有关的搜索。与搜索相关联的结果然后可以与给予客户机组件710的候选列表一起包括在内。由此,客户机组件710的用户无需选择特定扩充来执行此搜索,因为结果可被自动提供。例如,嵌入组件718可允许呈现对于最重要查询推荐(例如,扩充)的搜索结果以及能包括该候选扩充列表的建议查询面板。
根据一示例,客户机组件710可以向接口702发送一短消息服务(SMS)文本消息。该SMS文本消息可以包括显式通配符和/或可***(例如,由扩充组件704、图2的通配符***组件208……)隐式通配符。服务器(例如,经由接口702)可发回一返回SMS文本消息。返回SMS文本消息可包括例如关于最重要的建议完成的第一个搜索结果所指向的页面(或该页面的一部分或该页面的概略)。另外地或另选地,可提供关于m个最佳的建议完成的n个最佳搜索结果作为返回SMS文本消息的一部分。可以理解,所要求保护的主题不限于此示例。
转向图8,所示是帮助生成和/或利用候选扩充数据列表的***800。***800可包括接口802、扩展组件804、以及语言模型组件806,其各自都基本类似于以上所述的相应组件。***800还可包括智能组件808。智能组件808可以由扩充组件804用于帮助完成与输入数据相关联的通配符(例如,隐式和/或显式的)。例如,智能组件808可确定特定扩充经常被选中,并且相应地更新用于生成未来的扩充的语言模型。根据另一说明,智能组件808可以确定一特定扩充若被显示则有很高的可能性被(例如,用户)选中(例如,与突发新闻相关联的及时扩充和/或结果);由此,智能组件808可随候选列表一起提供扩充和/或嵌入的结果(即使这一扩充不匹配输入数据)。
可以理解,智能组件808能够从一组通过事件和/或数据捕捉到的观察结果中推出或推断***、环境和/或用户的状态。例如,推断可用于标识特定的上下文或动作,或可生成状态的概率分布。推断可以是概率性的——即,基于数据和事件的考虑计算感兴趣的状态的概率分布。推断也可以指用于从一组事件和/或数据合成更高级事件的技术。这类推断导致从一组观察到的事件和/或储存的事件数据构造新的事件或动作,无论事件是否在相邻时间上相关,也无论事件和数据是来自一个还是若干个事件和数据源。可采用各种分类(显式和/或隐式训练的)方案和/或***(例如,支持矢量机、神经网络、专家***、贝叶斯信任网络、模糊逻辑、数据融合引擎……)来执行关于所要求保护的主题的自动化和/或推断的动作。
分类器是将输入属性矢量x=(x1,x2,x3,x4,xn)映射到该输入属于一个类的置信度的函数,即f(x)=confidence(class)。这一分类可采用基于概率和/或基于统计的分析(例如,分解成分析效用和成本)来预测或推断用户期望自动执行的动作。支持矢量机(SVM)是可采用的分类器的一个示例。SVM通过找出可能输入空间中的超曲面来操作,其中,超曲面试图将触发准则从非触发事件中分离出来。直观上,这使得分类对于接近但不等同于训练数据的测试数据正确。可采用其它定向和非定向模型分类方法,包括,例如,单纯贝叶斯、贝叶斯网络、决策树、神经网络、模糊逻辑模型以及提供不同独立性模式的概率分类模型。此处所使用的分类也包括用于开发优先级模型的统计回归。
呈现组件810可提供各种类型的用户界面以便于用户与耦合到扩充组件804的任何组件之间的交互。如所描绘的,呈现组件810是可以与扩充组件804一起利用的单独实体。然而,可以理解,呈现组件810和/或类似的查看组件可以被结合到扩充组件804(和/或接口802)中和/或是一独立单元。呈现组件810可提供一个或多个图形用户界面(GUI)、命令行界面等等。例如,可以呈现向用户提供对数据进行加载、导入、读取等的区域或手段的GUI,并且所述GUI可包括呈现这些动作的结果的区域。这些区域可包括已知的文本和/或图形区域,包括对话框、静态控件、下拉菜单、列表框、弹出菜单、编辑控件、组合框、单选按钮、复选框、按钮以及图形框。另外,可采用便于呈现的工具,诸如用于导航的垂直和/或水平滚动条以及确定一区域是否可被查看的工具栏按钮。例如,用户可以与耦合到扩充组件804的一个或多个组件交互。
用户还可与这些区域交互,以便例如经由诸如鼠标、滚球、键区、键盘、笔和/或语音激活等各种设备来选择和提供信息。通常,诸如键盘上的按钮或回车键等机制可在输入了信息之后采用以启动搜索。然而,可以理解,所要求保护的主题不限于此。例如,仅仅加亮显示一复选框可启动信息传送。在另一示例中,可采用命令行界面。例如,命令行界面可以提示(例如,经由显示器上的文本消息和音频声调)用户通过提供文本消息来输入信息。用户然后可提供适当的信息,诸如对应于在该界面提示中提供的选项的字母数字输入或对提示中所提出的问题的回答。可以理解,命令行界面可以与GUI和/或API结合使用。另外,命令行界面可以结合具有有限图形支持和/或低带宽通信信道的硬件(例如,视频卡)和/或显示器(例如,黑白和EGA)来使用。
图9-10示出了根据所要求保护的主题的方法。为解释简明起见,该方法被描绘和描述为一系列动作。可以理解和明白,本发明不受所示的动作和/或动作次序的限制,例如,动作可按各种次序和/或同时发生,并且可以与此处未呈现和描述的其它动作一起发生。此外,并非所有示出的动作都是实现根据所要求保护的主题的方法所必需的。另外,本领域的技术人员可以理解和明白,方法可经由状态图或事件替代地被表示为一系列相关状态。
转向图9,所示是帮助扩充输入数据的方法900。在902处,获得输入数据。例如,可以对任何类型的输入设备(例如,台式计算机、膝上型计算机、手持式计算机、蜂窝电话、服务器……)接收输入数据。另外,输入数据可以与搜索查询、文本消息(例如,短消息服务(SMS)消息)、即时消息、所生成和/或编辑的文档等有关。此外,输入数据可包括字母字符、数字字符、手写数据、口头数据、其组合等等。在904处,可将一个或多个隐式通配符***到输入数据中。例如,隐式通配符可以被***到输入数据的末尾处。另外地或另选地,隐式通配符可以被***到输入数据内的一个或多个期望单词的末尾处。作为示例,隐式通配符可以被***在输入数据中的每一空格之前。在906处,利用提供可能扩充的语言模型生成候选扩充数据列表。例如,可生成与输入数据相关联的通配符(例如,隐式和/或显式的)的k个最佳扩充。可以理解,对所要求保护的主题可以利用任何语言模型。另外,候选列表可以用任何方式来排序。例如,该排序可以至少部分地基于流行度、字母表顺序等等。所生成的候选列表可被提供给用户、显示、用于生成搜索结果等等。
参考图10,所示是帮助评估与输入数据相关联的通配符的方法1000。在1002处,获得输入数据(例如,输入文本……)。例如,用户可以输入期望搜索查询的(诸)部分。输入数据可包括用户提供的显式通配符。另外地或另选地,可将隐式通配符***到输入数据中(例如,***到输入数据内的每一期望单词的末尾处)。在1004处,利用语言模型生成与输入数据相关联的通配符的扩充。例如,用户可以按下“建议”按钮以便于初始化与输入数据相关联的隐式和/或显式通配符的k个最佳扩充的生成。在1006处,为候选列表中的扩充创建排序。作为示例,扩充可根据流行度和/或字母表来排序。根据另一示例,可显式该候选列表。根据一个说明,匹配实际输入字符(或与电话数字字符没有歧义)的字符可以被突出显示(例如,加粗、斜体、变化字体、变化颜色、变化样式……)。在1008处,可基于所选扩充来执行搜索。例如,建议的搜索查询可具有嵌入的超链接。由此,搜索可通过用户点击建议的搜索查询来启动,这可将用户直接带到其中对搜索利用了所选的建议搜索查询的搜索页面。例如,可利用任何搜索浏览器来显示搜索结果。
图11-23示出了描绘与扩充通配符相关联的各方面的示例性屏幕截图。可以理解,这些屏幕截图是作为示例来提供的,并且所要求保护的主题不限于此。参考图11-15,所示是示出了从输入数据生成扩充数据的屏幕截图。图11描绘了包括输入数据域1102和建议按钮(Suggest)1104的屏幕截图。在图12中,所示是描绘输入数据1202(例如,“cin oh”)可被输入到输入数据域中的屏幕截图。图13示出了可在按下建议按钮之后获得的与输入数据相关联的候选扩充数据列表1302。另外,可提供备选拼写1304作为候选列表1302的一部分。图14描绘了与涉及从候选列表中所选的扩充的搜索结果相关联的屏幕截图。图15示出数字字符可被用作输入数据1502(例如,利用蜂窝电话键区)。数字数据可被消除歧义和/或扩充以生成与数字输入有关的字母候选列表1504。如在图15所示的示例中所描绘的,候选1504中的两个可以与以下歧义消除相关联:“2”可表示“C”,第一个“4”可表示“I”,第一个“6”可表示“N”,第二个“6”可表示“O”,而第二个“4”可表示“H”。候选列表1504内的扩充中匹配输入数据的字符可以在视觉上与作为扩充的一部分生成的字符进行区分(例如,以黑体示出……)。
转向图16-23,所示是与至少部分地基于位置来生成扩充数据有关的示例性屏幕截图。图16示出了包括输入数据域1602、位置域1604和建议按钮1606的屏幕截图。图17示出了显示在按下显示帮助按钮(Display help)1702时发生的结果(例如,可显示示例输入句法)的屏幕截图。图18示出了包括输入数据1802(例如,“po”)、位置数据1804(例如,“solon”)以及考虑了位置数据的、与输入数据的扩充有关的候选列表1806的屏幕截图。图19描绘了示出与选择图18的“post office”超链接相关联的搜索结果1902的屏幕截图。具体地,图19包括按照到与输入的位置数据相关联的地点的距离排序的本地结果。参考图20,所示是其中输入数字数据2002(例如,“76”)以及位置数据2004的屏幕截图。与选择关于“post office”的超链接相关联的搜索结果在图21的屏幕截图中描绘。图22示出了包括包含显式通配符(例如,“s*g m*l)的输入数据2202的屏幕截图。图23描绘了与同图22的输入数据2202有关的显式和隐式通配符的扩充相关联的候选列表2302。
为了提供用于实现所要求保护的主题的各方面的附加上下文,图24-25及以下讨论旨在提供对其中可实现本发明的各方面的合适的计算环境的简要概括描述。尽管前面已经在运行在本地计算机和/或远程计算机上的计算机程序的计算机可执行指令的一般上下文中描述了所要求保护的主题,然而本领域内的技术人员将认识到,本发明也可以和与其他程序模块结合实现。一般地,程序模块包括执行特定任务和/或实现特定抽象数据类型的例程、程序、对象、数据结构等等。
此外,本领域的技术人员可以理解,本发明的方法可用其它计算机***配置来实施,包括单处理器或多处理器计算机***、小型机、大型计算机、以及个人计算机、手持式计算设备、基于微处理器的和/或可编程消费电子产品等,其每一个都可操作上与一个或多个相关联的设备通信。所示的要求保护的主题的各方面也可在其中某些任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实施。然而,本发明的一些方面(如果不是全部方面)可以在独立计算机上实施。在分布式计算环境中,程序模块可以位于本地和/或远程存储器存储设备中。
图24是要求保护的主题可以与之交互的示例性计算环境2400的示意性框图。***2400包括一个或多个客户机2410。(诸)客户机2410可以是硬件和/或软件(例如,线程、进程、计算设备)。***2400也包括一个或多个服务器2420。(诸)服务器2420可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器2420可以容纳各线程以通过例如利用本发明执行转换。
在客户机2410和服务器2420之间的一种可能的通信能够以适合在两个或多个计算机进程之间传输的数据分组的形式进行。***2400包括可以用来使(诸)客户机2410和(诸)服务器2420之间通信更容易的通信框架2440。(诸)客户机2410可在操作上连接到一个或多个可以用来存储对(诸)客户机2410本地的信息的客户机数据存储2450。同样地,(诸)服务器2420可在操作上连接到一个或多个可以用来存储对(诸)服务器2430本地的信息的服务器数据存储2420。
参考图25,用来实现所要求保护的主题各个方面的示例性环境2500包括计算机2512。计算机2512包括处理器单元2514、***存储器2516、以及***总线2518。***总线2518把包括但不限于***存储器2516的***组件耦合到处理单元2514。处理单元2514可以是各种可用处理器中的任意一种。双微处理器和其它多处理器体系结构也可用作处理单元2514。
***总线2518可以是几种类型的总线结构中的任意一种,包括存储器总线或存储器控制器、***总线或外部总线、和/或利用下述可用总线体系结构中的任意一种的局部总线,其包括但不限于,工业标准体系结构(ISA)、微通道体系结构(MSA)、扩展型ISA(EISA)、智能化驱动器电子接口(IDE)、VESA局部总线(VLB)、***部件互连(PCI)、插件总线、通用串行总线(USB)、高级图形端口(AGP)、个人计算机存储卡国际联合会总线(PCMCIA)、火线(IEEE 1394)、以及小型计算机***接口(SCSI)。
***存储器2516包括易失性存储器2520以及非易失性存储器2522。基本输入/输出***(BIOS)包含诸如在启动期间在计算机2512的元件之间传送信息的基本例程,其存储在非易失性存储器2522中。作为说明而非局限,非易失性存储器2522可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、或者闪存。易失性存储器2520包括用作外部高速缓冲存储器的随机存取存储器(RAM)。作为示例而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。
计算机2512还包括可移动/不可移动、易失性/非易失性计算机存储介质。例如,图25示出了盘存储2524。盘存储2524包括但不限于诸如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡、或者记忆棒之类的设备。此外,盘存储2524可以包括独立的或者与其它存储介质结合的存储介质,包括但不限于诸如紧致盘ROM设备(CD-ROM)、可记录CD驱动器(CD-R驱动器)、可重写CD驱动器(CD-RW驱动器)或者数字多功能盘ROM驱动器(DVD-ROM)这样的光盘驱动器。为了便于把盘存储设备2524连接到***总线2518,通常使用诸如接口2526等可移动或不可移动接口。
应该明白,图25描述了担当用户与在合适的操作环境2500中描述的基本计算机资源之间的中介的软件。这些软件包括操作***2528。存储在盘存储2524上的操作***2528用于控制并分配计算机***2512的资源。***应用程序2530通过存储在***存储器2516或盘存储2524上的程序模块2532和程序数据2534利用了操作***2528对资源的管理。应该明白,所要求保护的主题可以用各种操作***或操作***的组合来实现。
用户通过输入设备2536把命令或信息输入到计算机2512中。输入设备2536包括但不限于诸如鼠标、跟踪球、指示笔、触摸垫等定点设备、键盘、话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、TV调谐卡、数码相机、数码摄像机、网络摄像头等等。这些以及其它输入设备通过***总线2518经由接口端口2538连至处理单元2514。接口端口2538包括,例如串行端口、并行端口、游戏端口、以及通用串行总线(USB)。输出设备2540利用和输入设备2536相同类型的某些端口。因此,例如,USB端口可以用来向计算机2512提供输入,以及把来自计算机2512的信息输出到输出设备2540。提供输出适配器2542是为了说明除了输出设备2540之外还有一些像监视器、扬声器、以及打印机这样的需要专用适配器的输出设备2540。输出适配器2542包括,作为说明而非局限,提供输出设备2540和***总线2518之间的连接手段的显卡和声卡。应该注意到,其它设备和/或设备***提供了输入和输出能力,诸如远程计算机2544。
计算机2512可以利用到诸如远程计算机2544这样的一个或多个远程计算机的逻辑连接在联网的环境中操作。远程计算机2544可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的电器、对等设备或者其它常见的网络节点等,且通常包括相对于计算机2512所描述的很多或者全部元件。为了简明起见,仅示出了远程计算机2544的存储器存储设备2546。远程计算机2544经由网络接口2548被逻辑地连接到计算机2512,然后经由通信连接2550物理地连接。网络接口2548包括诸如局域网(LAN)和广域网(WAN)这样的有线和/或无线通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜分布式数据接口(CDDI)、以太网、令牌环等。WAN技术包括但不限于,点对点链路、诸如综合业务数字网(ISDN)及其各种变体等电路交换网、分组交换网、以及数字用户线(DSL)。
通信连接2550指的是用于把网络接口2548连接到总线2518的硬件/软件。虽然为了清楚地举例说明,通信连接2550被示为在计算机2512的内部,但其也可以在计算机2512的外部。连接到网络接口2548所需要的硬件/软件包括,仅出于示例的目的,内部和外部技术,诸如包括常规电话级调制解调器、电缆调制解调器以及DSL调制解调器的调制解调器、ISDN适配器和以太网卡。
在上面所描述的包括本发明的示例。当然,不可能为了描述所要求保护的主题而描述组件或方法的每一个可以想到的组合,但本领域内的普通技术人员应该认识到,本发明的许多进一步的组合和排列都是可能的。因此,所要求保护的主题旨在涵盖所有这些落入所附权利要求书的精神和范围内的改变、修改和变动。
特别地,对于由上述组件、设备、电路、***等执行的各种功能,除非另外指明,否则用于描述这些组件的术语(包括对“装置”的引用)旨在对应于执行所描述的执行此处在所要求保护的主题的示例性方面中所示的功能的组件的指定功能(例如,功能上等效)的任何组件,即使这些组件在结构上不等效于所公开的结构。在这一点上,也可认识到本发明包括用于执行所要求保护的主题的各种方法的动作和/或事件的***以及具有用于执行这些动作和/或事件的计算机可执行指令的计算机可读介质。
另外,尽管可相对于若干实现中的仅一个来公开本发明的一个特定特征,但是这一特征可以如对任何给定或特定应用所需且有利地与其它实现的一个或多个其它特征相组合。此外,就在说明书或权利要求书中使用术语“包括”和“含有”及其变体而言,这些术语旨在以与术语“包含”相似的方式为包含性的。

Claims (20)

1.一种扩充输入数据 的***,包括:
获得输入数据的接口(102、202、302、402、502、602、702、802);
修改所述输入数据以包括在每一期望单词的末尾处***的至少一个隐式通配符的通配符***组件(208);以及
至少部分地基于包括所述至少一个隐式通配符的所述输入数据、利用提供通配符的可能扩充的语言模型来生成候选扩充数据列表的扩充组件(104、204、304、404、504、604、704、804)。
2.如权利要求1所述的***,其特征在于,所述通配符***组件标识对应于所述输入数据内的每一期望单词的末尾。
3.如权利要求1所述的***,其特征在于,所述通配符***组件在所述输入数据内的每一空格前***所述至少一个隐式通配符。
4.如权利要求1所述的***,其特征在于,所述通配符***组件提供所述输入数据的开头处的隐式通配符和所述输入数据中的每一期望单词的开头处的隐式通配符中的至少一个。
5.如权利要求1所述的***,其特征在于,所述输入数据包括由所述扩充组件通过采用所述语言模型来扩充的显式通配符。
6.如权利要求1所述的***,其特征在于,还包括将所述输入数据转换成对应的字母字符数据的转换组件,所述字母字符数据被扩充以产生所述候选扩充数据列表。
7.如权利要求6所述的***,其特征在于,所述转换组件转换包括语音数据、手写数据和数字数据中的至少一个的输入数据。
8.如权利要求1所述的***,其特征在于,还包括修改所述输入数据的至少一部分以解决潜在拼写错误的拼写纠正组件,使得所述扩充组件在所述候选列表内包括对应于所修改的输入数据的扩充数据。
9.如权利要求1所述的***,其特征在于,还包括基于从所述候选扩充数据列表的选择来执行搜索的搜索组件。
10.如权利要求1所述的***,其特征在于,还包括基于一训练数据集来训练所述语言模型的模型训练组件。
11.如权利要求10所述的***,其特征在于,所述模型训练组件还包括基于与所述输入数据相关联的应用程序来选择一特定训练数据集的训练集选择组件。
12.如权利要求11所述的***,其特征在于,所述训练集选择组件选择基于对web搜索应用程序的利用的查询日志和web文档、基于对文本编辑器应用程序的利用的文档、以及基于对即时消息通信应用程序的利用的即时消息通信日志中的至少一个。
13.如权利要求1所述的***,其特征在于,还包括在输入所述输入数据的每一字符时动态地更新所述候选扩充数据列表的更新组件。
14.一种帮助扩充输入数据的方法,包括:
将隐式通配符***到每一期望单词的末尾处;以及
通过利用提供可能的通配符扩充的语言模型来生成候选扩充列表。
15.如权利要求14所述的方法,其特征在于,还包括基于一训练数据集来训练所述语言模型。
16.如权利要求14所述的方法,其特征在于,还包括在获得所述输入数据时动态地更新所述候选扩充列表。
17.如权利要求14所述的方法,其特征在于,还包括利用来自所述候选列表的扩充中的特定一个扩充来执行搜索。
18.如权利要求14所述的方法,其特征在于,还包括自动执行对最可能的扩充的搜索以及连同所述候选扩充列表一起嵌入与所述搜索相关联的结果。
19.如权利要求14所述的方法,其特征在于,还包括至少部分地基于所获得的位置数据来生成所述候选扩充列表。
20.一种***通配符并扩充输入数据的***,包括:
用于获得输入数据的装置(102、202、302、402、502、602、702、802);
用于将隐式通配符***到所述输入数据中以便于扩充每一期望单词的装置(208);以及
用于通过利用提供可能的通配符扩充的语言模型来生成候选扩充列表的装置(104、204、304、404、504、604、704、804)。
CNA2007800032119A 2006-01-17 2007-01-04 多字字轮 Pending CN101375279A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/332,954 2006-01-17
US11/332,954 US20070164782A1 (en) 2006-01-17 2006-01-17 Multi-word word wheeling

Publications (1)

Publication Number Publication Date
CN101375279A true CN101375279A (zh) 2009-02-25

Family

ID=38262605

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007800032119A Pending CN101375279A (zh) 2006-01-17 2007-01-04 多字字轮

Country Status (4)

Country Link
US (1) US20070164782A1 (zh)
KR (1) KR20080085165A (zh)
CN (1) CN101375279A (zh)
WO (1) WO2007087137A2 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7769804B2 (en) * 2006-01-17 2010-08-03 Microsoft Corporation Server side search with multi-word word wheeling and wildcard expansion
US7774193B2 (en) * 2006-12-05 2010-08-10 Microsoft Corporation Proofing of word collocation errors based on a comparison with collocations in a corpus
US20080140519A1 (en) * 2006-12-08 2008-06-12 Microsoft Corporation Advertising based on simplified input expansion
GB2453366B (en) * 2007-10-04 2011-04-06 Toshiba Res Europ Ltd Automatic speech recognition method and apparatus
US8015129B2 (en) * 2008-04-14 2011-09-06 Microsoft Corporation Parsimonious multi-resolution value-item lists
US20090287680A1 (en) * 2008-05-14 2009-11-19 Microsoft Corporation Multi-modal query refinement
DE102008040169A1 (de) * 2008-07-04 2010-01-07 Robert Bosch Gmbh Verfahren und Vorrichtung zum Überprüfen, ob eine Datenbasis eine Zeichenkette enthält, die eine vorgegebene Teilzeichenkette enthält
US8712989B2 (en) 2010-12-03 2014-04-29 Microsoft Corporation Wild card auto completion
CN104428734A (zh) 2012-06-25 2015-03-18 微软公司 输入法编辑器应用平台
US9378741B2 (en) * 2013-03-12 2016-06-28 Microsoft Technology Licensing, Llc Search results using intonation nuances
US9672818B2 (en) * 2013-04-18 2017-06-06 Nuance Communications, Inc. Updating population language models based on changes made by user clusters
US10387576B2 (en) * 2017-11-30 2019-08-20 International Business Machines Corporation Document preparation with argumentation support from a deep question answering system

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE466029B (sv) * 1989-03-06 1991-12-02 Ibm Svenska Ab Anordning och foerfarande foer analys av naturligt spraak i ett datorbaserat informationsbehandlingssystem
JPH03185561A (ja) * 1989-12-15 1991-08-13 Ricoh Co Ltd 欧文単語入力方法
US5963671A (en) * 1991-11-27 1999-10-05 International Business Machines Corporation Enhancement of soft keyboard operations using trigram prediction
US5734749A (en) * 1993-12-27 1998-03-31 Nec Corporation Character string input system for completing an input character string with an incomplete input indicative sign
JP2683870B2 (ja) * 1994-05-23 1997-12-03 日本アイ・ビー・エム株式会社 文字列検索システム及び方法
US5485372A (en) * 1994-06-01 1996-01-16 Mitsubishi Electric Research Laboratories, Inc. System for underlying spelling recovery
US5778361A (en) * 1995-09-29 1998-07-07 Microsoft Corporation Method and system for fast indexing and searching of text in compound-word languages
US5787422A (en) * 1996-01-11 1998-07-28 Xerox Corporation Method and apparatus for information accesss employing overlapping clusters
US5926652A (en) * 1996-12-20 1999-07-20 International Business Machines Corporation Matching of wild card patterns to wild card strings associated with named computer objects
US5832478A (en) * 1997-03-13 1998-11-03 The United States Of America As Represented By The National Security Agency Method of searching an on-line dictionary using syllables and syllable count
WO1998044432A1 (en) * 1997-04-01 1998-10-08 Yeong Kuang Oon Didactic and content oriented word processing method with incrementally changed belief system
US6377965B1 (en) * 1997-11-07 2002-04-23 Microsoft Corporation Automatic word completion system for partially entered data
US5896321A (en) * 1997-11-14 1999-04-20 Microsoft Corporation Text completion system for a miniature computer
US6490563B2 (en) * 1998-08-17 2002-12-03 Microsoft Corporation Proofreading with text to speech feedback
US6424358B1 (en) * 1998-12-03 2002-07-23 Lockheed Martin Corporation Method and system for importing database information
EP1192716B1 (en) * 1999-05-27 2009-09-23 Tegic Communications, Inc. Keyboard system with automatic correction
US6658404B1 (en) * 1999-09-20 2003-12-02 Libera, Inc. Single graphical approach for representing and merging boolean logic and mathematical relationship operators
US6360252B1 (en) * 1999-09-20 2002-03-19 Fusionone, Inc. Managing the transfer of e-mail attachments to rendering devices other than an original e-mail recipient
US6654733B1 (en) * 2000-01-18 2003-11-25 Microsoft Corporation Fuzzy keyboard
US6573844B1 (en) * 2000-01-18 2003-06-03 Microsoft Corporation Predictive keyboard
WO2001057711A1 (en) * 2000-02-02 2001-08-09 Searchlogic.Com Corporation Combinatorial query generating system and method
WO2001067225A2 (en) * 2000-03-06 2001-09-13 Kanisa Inc. A system and method for providing an intelligent multi-step dialog with a user
US6922810B1 (en) * 2000-03-07 2005-07-26 Microsoft Corporation Grammar-based automatic data completion and suggestion for user input
US6687734B1 (en) * 2000-03-21 2004-02-03 America Online, Incorporated System and method for determining if one web site has the same information as another web site
US6564213B1 (en) * 2000-04-18 2003-05-13 Amazon.Com, Inc. Search query autocompletion
US7107204B1 (en) * 2000-04-24 2006-09-12 Microsoft Corporation Computer-aided writing system and method with cross-language writing wizard
US20020123994A1 (en) * 2000-04-26 2002-09-05 Yves Schabes System for fulfilling an information need using extended matching techniques
US7383299B1 (en) * 2000-05-05 2008-06-03 International Business Machines Corporation System and method for providing service for searching web site addresses
US6556990B1 (en) * 2000-05-16 2003-04-29 Sun Microsystems, Inc. Method and apparatus for facilitating wildcard searches within a relational database
US7392326B2 (en) * 2001-02-16 2008-06-24 Microsoft Corporation Method for text entry in an electronic device
US6850934B2 (en) * 2001-03-26 2005-02-01 International Business Machines Corporation Adaptive search engine query
US6785677B1 (en) * 2001-05-02 2004-08-31 Unisys Corporation Method for execution of query to search strings of characters that match pattern with a target string utilizing bit vector
US6985851B2 (en) * 2001-07-17 2006-01-10 Microsoft Corporation Method and apparatus for providing improved HMM POS tagger for multi-word entries and factoids
US7047183B2 (en) * 2001-08-21 2006-05-16 Microsoft Corporation Method and apparatus for using wildcards in semantic parsing
US20020156779A1 (en) * 2001-09-28 2002-10-24 Elliott Margaret E. Internet search engine
US7111248B2 (en) * 2002-01-15 2006-09-19 Openwave Systems Inc. Alphanumeric information input method
US7174344B2 (en) * 2002-05-10 2007-02-06 Oracle International Corporation Orthogonal partitioning clustering
US7380724B2 (en) * 2002-07-01 2008-06-03 Sony Ericsson Mobile Communications Ab Entering text into an electronic communication device
US7236923B1 (en) * 2002-08-07 2007-06-26 Itt Manufacturing Enterprises, Inc. Acronym extraction system and method of identifying acronyms and extracting corresponding expansions from text
US7409336B2 (en) * 2003-06-19 2008-08-05 Siebel Systems, Inc. Method and system for searching data based on identified subset of categories and relevance-scored text representation-category combinations
JP4502114B2 (ja) * 2003-06-24 2010-07-14 セイコーインスツル株式会社 データベース検索装置
US7395203B2 (en) * 2003-07-30 2008-07-01 Tegic Communications, Inc. System and method for disambiguating phonetic input
US7349981B2 (en) * 2003-12-18 2008-03-25 Intel Corporation System, apparatus, and method for string matching
US20050144064A1 (en) * 2003-12-19 2005-06-30 Palo Alto Research Center Incorporated Keyword advertisement management
US7386542B2 (en) * 2004-08-30 2008-06-10 The Mitre Corporation Personalized broadcast news navigator
US20060085392A1 (en) * 2004-09-30 2006-04-20 Microsoft Corporation System and method for automatic generation of search results based on local intention
US7478081B2 (en) * 2004-11-05 2009-01-13 International Business Machines Corporation Selection of a set of optimal n-grams for indexing string data in a DBMS system under space constraints introduced by the system
US7549119B2 (en) * 2004-11-18 2009-06-16 Neopets, Inc. Method and system for filtering website content
US7505985B2 (en) * 2005-02-25 2009-03-17 International Business Machines Corporation System and method of generating string-based search expressions using templates
US7788248B2 (en) * 2005-03-08 2010-08-31 Apple Inc. Immediate search feedback
JP2008537225A (ja) * 2005-04-11 2008-09-11 テキストディガー,インコーポレイテッド クエリについての検索システムおよび方法
US7277029B2 (en) * 2005-06-23 2007-10-02 Microsoft Corporation Using language models to expand wildcards
WO2007064874A2 (en) * 2005-12-01 2007-06-07 Adchemy, Inc. Method and apparatus for representing text using search engine, document collection, and hierarchal taxonomy
GB2433675B (en) * 2005-12-22 2008-05-07 Cramer Systems Ltd Communications circuit design
US7769804B2 (en) * 2006-01-17 2010-08-03 Microsoft Corporation Server side search with multi-word word wheeling and wildcard expansion
US7778837B2 (en) * 2006-05-01 2010-08-17 Microsoft Corporation Demographic based classification for local word wheeling/web search
US7831472B2 (en) * 2006-08-22 2010-11-09 Yufik Yan M Methods and system for search engine revenue maximization in internet advertising
US20080140519A1 (en) * 2006-12-08 2008-06-12 Microsoft Corporation Advertising based on simplified input expansion
US20090055386A1 (en) * 2007-08-24 2009-02-26 Boss Gregory J System and Method for Enhanced In-Document Searching for Text Applications in a Data Processing System

Also Published As

Publication number Publication date
US20070164782A1 (en) 2007-07-19
KR20080085165A (ko) 2008-09-23
WO2007087137A3 (en) 2007-10-11
WO2007087137A2 (en) 2007-08-02

Similar Documents

Publication Publication Date Title
CN101375279A (zh) 多字字轮
US7769804B2 (en) Server side search with multi-word word wheeling and wildcard expansion
US10210243B2 (en) Method and system for enhanced query term suggestion
CN101495955B (zh) 移动设备检索与导航
CN101438283B (zh) 用于本地字轮/web搜索的基于人口统计的分类
CN101199122B (zh) 使用语言模块扩展通配符
CN101268463B (zh) 在完成搜索查询之前提出可替代查询
CN101595447B (zh) 输入预测
US20090249198A1 (en) Techniques for input recogniton and completion
CN101601037A (zh) 带有翻译的全球分类列表搜索
US20100100371A1 (en) Method, System, and Apparatus for Message Generation
CN101501610A (zh) 非标准的基于位置的文本输入
CN101539836A (zh) 一种人机界面交互***和方法
CN102867012A (zh) 在完成搜索查询之前提出可替代查询
EP3022660A2 (en) Performing an operation relative to tabular data based upon voice input
CN101782833B (zh) 一种智能操作***及方法
CN102207816A (zh) 一种基于输入环境进行适配输入的方法和输入法***
WO2010000208A1 (en) Resource locator suggestions from input character sequence
CN102063194A (zh) 用于供用户进行文字输入的方法、设备、服务器和***
CN103177039A (zh) 一种数据处理方法及装置
CN101751290B (zh) 一种调用功能模块的方法、装置及erp***
US11314793B2 (en) Query processing
CN109829157B (zh) 文本情绪呈现方法、文本情绪呈现装置以及存储介质
CN104077287A (zh) 一种信息处理方法及电子设备
CN1466039A (zh) 可以进行中文和多种文字输入的电子遥控器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20090225