使用社交联系的文本消歧的利记博彩app

文档序号:6595754阅读:711来源:国知局
专利名称:使用社交联系的文本消歧的利记博彩app
技术领域
本文档描述了用于对计算设备的用户所输入的文本消除歧义的系统和技术。
背景技术
无论是键入电子邮件、提交搜索查询、填写电子表单等等,人们都花费大量时间向计算设备中输入文本。已经研发了特定技术来协助这样的特定情形中的文本输入。例如, 系统可以在用户已经键入若干字符之后进行有根据的猜测,来建议可能的自动完成文本输入以使得用户无需键入冗长输入中的每个字符。而且,移动设备的键盘经常有局限从而每个按键表示多个字符一在用户已经按压若干按键之后,系统会进行与用户希望键入每个按键上的哪个字母相关的推断。以这种方式,这样的系统可以从否则可能不明确的按键按压中选择适当的词或词组。无论是已输入字符的自动完成还是在每次按键按压时确定适当字符的形式,或者二者的组合,输入的消歧经常依赖于词典。具体地,这种背景下的词典可以包括多个文本词语和/或短语,以及与词语或短语在典型书写语言中出现的频率相关的指示。最为常用的词语可以在响应于不明确的用户输入进行建议或选择时被给予高于其它词语的优先级。例如,如果用户输入B和A,用户可能是想要键入BALL或BASEBALL,或者多个其它词语。如果用户的计算设备上的词典指示BALL是比BASEBALL更为常用的词语,则在用户在两个字符之后停止键入的情况下BALL可以被提供作为被输入的缺省词语。以类似的方式,如果用户在电话键盘上按压两次2键,用户可能再次尝试输入BALL、BASEBALL,或者甚至是ACT、 ACTION、ABDICATE和其它这样的词语。词典中每个词语的流行度(popularity)可以控制向用户建议或选择许多可能词语中的哪一个。

发明内容
本文档描述了用于对用户向计算设备所提供的文本输入进行消歧的系统和技术, 所述计算设备诸如台式计算机或智能电话。一般地,对用户的社交网络进行分析,并且使用该社交网络的用户之间的词语流行度来生成词典数据以用于对用户所输入的文本进行消歧。其原理在于用户更可能使用他们的好友所经常使用的词语。例如,如果一个青少年已经在社交网络网站上将各种用户识别为好友,则可以在确定该用户的词语的流行度时对那些好友的页面内容以及其它相似内容进行分析。例如,这样的用户更可能在其通信中使用特定形式的俚语一在跨更广泛人群的更为普通的词语使用为前提,其可能不会被词典所收录。
在第一总体方面,描述了一种计算机实现的方法。所述方法包括接收向与用户相关联的计算设备提供词典的请求;识别所述用户的社交网络成员的词使用信息;以及利用所述社交网络成员的词使用信息为所述用户生成词典。在第二总体方面,描述了一种具有记录和存储于其上的指令的可记录存储介质, 所述指令在被执行时执行动作。所述可记录存储介质包括接收向与用户相关联的计算设备提供词典的请求;识别所述用户的社交网络成员的词使用信息;以及利用所述社交网络成员的词使用信息为所述用户生成词典。在第三总体方面,描述了一种计算机实现的文本消歧系统。所述系统包括社交网络接口,其用于产生反映与用户相关联的社交网络成员的词使用的数据;词典构建器,其被编程为使用所述反映社交网络成员的词使用的数据来产生词典数据,所述词典数据被格式化以便在对所述用户所输入的文本进行消歧时使用;和预测模块,其被编程为使用所述词典数据对所述用户所输入的文本进行消歧。在再另一个总体方面,描述了一种计算机实现的系统。所述系统包括社交网络接口,其用来使用用户的标识符产生反映所述用户的社交网络成员的词使用的数据;存储主词典数据的存储器,所述主词典数据反映不特定于所述用户的一般词使用;和用于将所述使用数据处理为词典数据以便与所述主词典一起用来对用户所输入的文本进行消歧的装置。在附图和以下的描述中给出一个或多个实施例的细节。其它特征、目的和优势根据描述、附图和权利要求将是显而易见的。


图1是示出其中社交网络中的社交联系可以被用来使用词使用信息生成用于输入消歧的词典数据的方式的示意图。图2A和2B是示出用于使用社交网络数据更新用户词典的示例性过程的流程图。图3A和IBB是描绘客户端和服务器之间的交互示例的序列图。图4A是用于更新词典以对用户输入进行消歧的系统的示意图。图4B是向在计算设备上输入数据的用户提供消歧的系统的示意图。图5是实现这里所描述的自动修整的实施例的示例性移动设备的示意性表示。图6是图示图5的设备的内部结构的框图。图7是图示图3的设备所使用的操作系统的示例性组件的框图。图8是图示图5的操作系统内核所实现的示例性过程的框图。图9示出了能够被用来实现这里所描述的技术的计算机设备和移动计算机设备的示例。各附图中相同的附图标记指示相同要素。
具体实施例方式图1是示出其中社交网络中的社交联系可以被用来使用词使用信息生成用于输入消歧的词典数据的方式的示意图。该图示出了系统100,其中多个不同用户102、110、114 由于通过网站的个人关联而作为社交网络中的好友以及好友的好友而建立联系。所述社交网络中的每个成员可以具有与其相关联的不同形式的文本内容,诸如他们在其上发布信息的页面112、他们列出与自身相关特征的概要页面116,以及诸如各成员之间的通信的讨论页面或文本消息日志之类的其它内容。这些源中的每一个都可以反映组成员的典型使用, 并且由此可以反映该组成员在未来可能采用的使用。结果,所述源可以以诸如以下更为详细描述的各种方式被使用,以提供词典数据供计算设备在为用户建议词语或短语时使用。更具体地参见图1,用户102被示为与包含多个条目106的词典104相关联。所述条目可以为特定词或短语,或者可以采取其它适当形式。每个词表示系统100已经将其判断为用户102可能在未来采用的词的词。在该示例中,所述词被示为以从顶部的最为常用到底部的最不常用进行排序,具有从0. 01到0. 90的标准化标尺。通常,消歧词典中的词语将替代以树形结构进行排序,其中每个节点通过表示词中每个连续字符或者来自键盘的每个按键的树向下步进。每个词语接着可以具有词使用信息(例如,其在树中的对应位置的权重)。例如,典型电话键盘的树形结构可以具有从根节点所引出的八个分支(因为字母被显示在按键2-9上,可以为非字母字符包括一个或多个额外分支),以及处于下一级的的每个节点的另外八个分支。因此,当用户按压键盘上的按键时可以遍历所述树以剪除不可能的方案。其它适当机制也可以被用于布置词或短语,和用于指示其使用可能性。词典 104的特定布置通常不是关键的。虽然为了简要每个词在该示例中具有单个分值,也可以使用更为复杂的评分技术。例如,词语可以具有依赖于上下文的分值,使得“day”的分值在用户刚键入了 “sunny” 时具有比用户102键入另一词时更高的分值。与每个词相关联的分值通常表示词或短语在用户102在未来有多么可能输入该词或短语方面的预测流行度。在一般系统中,这样的数据可以通过对诸如多本书或整个公司中的电子邮件之类的大文档文集进行分析,识别各个词在该文集中使用的频率,并且基于其出现频率以标准化方式对词进行排名而得到。接着,可以通过查看特定于用户102的文档来对这样的分值进行调整,所述文档诸如用户102的发件箱和/或收件箱中的电子邮件、存储在用户102的计算设备上的文档,或者以与用户102相关联的用户帐号存储在服务器上的文档。在该示例中,可替换地,每个词语(例如,词或短语)的排名可以与社交网络中的联系相关联。所图示的示例中,用户102被示为在其社交网络中具有两级联系。用户102的第一级联系110被示为具有与它们相关联的文档112。用户102还被示为具有与用户114 的第二级联系,所述用户114具有一个或多个相关联文档116。文档112、116可以采取各种形式,并且例如可以包括诸如0RKUT、MYSPACE或 FACEB00K之类的社交网站上的典型概要页面。也可以包括其它页面,诸如用户提交的附属于其概要页面的额外页面。此外,可以对用户110、114所进行的其它通信进行检查,诸如用户102、110、114之间的文本消息会话的记录。因此,系统100例如可以对各个文档 112、116进行分析以确定文档112、116中的词和短语的使用频率。如果用户为青少年, 则该分析可可以识别许多在标准英文使用的浏览中不会出现的短语,诸如0MG( "Oh my God ! ”)“like”、“t0tally”、“Sick”以及其它这样的俚语词语。除此之外或可替换地,系统100可以对与每个用户110、116相关联的词典进行分析。所述词典可以存储在与每个用户102、110、114相关联的客户端设备上,并且所述词典的副本可以存储在中央服务器上,所述中央服务器可以包括一个或多个服务器设备。可以以各种方式使用各个用户之间的社交联系来影响词典104中词的分值。作为一个示例,系统100可以对社交网络中的所有或一些文档112、116进行分析并且为所述文档中的词或短语创建频率分布。可以根据词在系统中的位置对其进行加权。例如,概要页面中诸如指示用户喜欢的食物为蓝莓的词可以接收到较低权重或者相对于发件文本消息中的词向下调节的分值,原因在于与之前的词语相比,用户110在未来的通信会话中大概更可能使用后面的词语一通过扩展,假设好友在通信时使用相似的词和短语,则用户102也大概更加可能使用该词语。而且,第一级社交网络中的用户110对用户102的贡献(contribution)可能比诸如用户114的较远用户的贡献具有更大权重。在一个示例中,可以使用递归方法,从而利用其在社交网络中下一个相邻邻居的分值对每个用户词典中的词的分值进行平均。例如,因此在第一次迭代中,来自用户114的分值可以被部分传递至该图中两个顶部用户110的词典,并且那些分值中的一部分可以接着在下一次循环中被间接传递至词典104。每个用户的分值还可以被人工加以权重,以便将其最终分值略微锚定为其原始分值,从而在多次迭代之后,所有用户不具有相同的词典。以这种方式,词典104可以最为稳健地反映用户102 的实际使用,而对于用户110的使用则有所弱化,并且对于用户114的使用则更为弱化。于是,在特定实施方式中,特定用户的使用的权重可能指数背离,或者以与远离社交网络中的中心用户的距离类似的方式。此外,从用户102以及用户110、114所进行的使用而提供的评分可以与其它更为传统的评分技术进行混合。例如从大量公共文档文集所生成的典型词典可以被用作评分的基础,并且接着可以与用户102的使用数据相结合,并且还与来自用户110、114的使用数据相结合。也可以采用用于对诸如词典104之类的词典中的词和短语进行排名的信号的其它组合。当新的条目和值从社交网络合并到用户102的词典104中时,词典104可以被用来对用户所输入的文本提供消歧。消歧可以基于用户102的输入向用户102提供替换选择。例如,输入了 2-2-7的用户可能是想要完成词“Carla”或“baseball”。可以根据其字符对词典中的条目进行分层组织,从而随着用户的键入,可以从潜在的方案集合剪除与用户没有按压的按键相对应的方案。接着可以向用户呈现剩余的候选方案,其根据它们在词典104中的分值排序。这样的消歧可以针对在要求系统通过已经被按压的按键推断用户意图的情况下的受限键盘以及在系统需要从已经生成的条目进行推断的情况下的文本输入完成(其中所述条目可以是明确(例如,如果用户具有完整键盘)或不明确的)而进行。以类似方式,随着用户继续按压按键,可以进一步剪除和收窄可能方案的集合,其中所建议的方案在每次按键按压之后被更新。在一些实施方式中,用户102可以向其设备发送她不想要所显示的特定词的信号。相反,她能够从文本输入框下方下拉显示的列表中选择一个词,并且其设备可以接着使用所选择的词完成输入。如果用户102挑选了一个词而不是另一个,则这样的选择会影响两个条目在词典 104中的值。在一些实施例中,一个条目(所选择的条目)可以增加其相关联的值。同样, 其它条目可以减少其相关联的值。这样的用户102决策也可能不影响与词典104中的多个条目106相关联的值。词典中词语的排名可以依赖于不同于以上所讨论的或者除其之外的基于社交网络的机制。例如,将值与词典中的词语相关联的过程可以通过确定成员的流行度或者特定成员与其它成员之间的联系数目来进行。例如,如果具有超过两百万的第一级联系的 MYSPACE最为流行的成员之一 Tila Tequila在其词典中具有与高值相关联的“MTV”,则链接到她的那些人与具有与相同值相关联的“MTV”的拥有20个第一联系的好友相比可以具有与更高值相关联的“MTV”。同样,与条目相关联的值可以依赖于与用户102联系的程度。例如,如果用户102 具有与第一级联系110相同的条目,则与该词相关联的值可以增加为大于用户102具有与第二级联系114相同条目的情况。类似地,用户之间的共同性,诸如共享组、网络、学校以及用户102的概要和联系概要中所输入的音乐或视频,可以确定增大与其相应词典中的共享词相关联的值。在其它实施方式中,与词典中的词相关联的值的增加可以依赖于成员在社交网络中的联系人数量。例如,如果一个成员在其一个好友或联系的博客上阅读并评论,或者在所述联系的墙面上进行书写,则可以在所述用户的词典中增大与所述联系词典中的词相关联的值。可以允许用户102从其词典104手工删除或修改条目。在一些实施方式中,所述用户可以访问词典并且改变条目的值。例如,如果用户102不喜欢“Grey’ s Anatomy”,则其可以将其词典中出现的与该剧集相关词语的值改变为最低设定值,原因仅在于其社交网络中的多个成员可能在他们的社交网络页面中具有对该词语的许多引用。词典还可以被共享。例如,公司可以对使用来自公司职员页面的数据所构建的共用词典进行维护。这样的共享词典由此可以使得职员轻松访问考虑了公司特定结构的文本消歧,所述特定结构诸如公司中人员的特定首字母缩写或姓名。可替换地,可以为特定社交网络创建词典并且向该网络的每个成员提供文本条目消歧,其中可以对初始词典进行些许修改以更好地反映组中的个体使用。用户102还可以具有多个词典。例如,用户可以具有公共词典,从而社交网络中的所有词典都能够影响其公共词典或者受到其公共词典的影响,以及私有词典和半私有词典 (例如,其仅能够由第一级好友所访问)。用户102还可以具有特定于应用的词典。例如, 当用户键入电子邮件时,他们更可能键入诸如LOL或OMG之类的词语,所以这些词语可以在用户102使用电子邮件时具有较高的评分。相反,用户在进行搜索时可能绝对不会使用这样的词语,从而可以在这样的情况下使用更为全局(并非特定于用户)的词典,诸如考虑到指向特定搜索引擎的近期搜索活动的词典,从而用户可能在建议词语的列表的顶部看到是最近在其它用户中流行的搜索词语的词语。图2A是示出用于使用社交网络数据更新用户词典的过程200的示例的流程图。过程200通常包括接收识别用户的社交联系的用户标识,计算用户的关键词,对词语施加权重,并且更新属于所述用户的词典。通常,过程200包括确定用户的社交联系,识别用户及其社交网络成员所使用的词,基于用户及其社交网络成员使用所述词的频率对所述词施加权重,并且相应更新所述用户的消歧词典。在初始步骤,过程200接收(20 用户的标识。例如,用户可以登录到社交网站中以向服务器发送其标识。所述标识可以以各种方式获得,诸如通过从用户的计算设备上的
8cookie获得标识信息,通过使得用户提供用户名和密码,或者通过其它已知机制。过程200接着识别用户的社交联系。例如,社交网络服务器能够存储与谁具有所述用户的第一级联系相关的数据,诸如“好友”列表。社交网络服务器还能够存储与用户与其他社交网络成员共用的链路相关的数据,所述其他社交网络成员诸如作为所述用户同学的成员、与所述用户共享共同兴趣的成员,或者以其它方式与所述用户处于共同组中的成员O过程200接着计算(206)用户的关键词。这样的关键词可以是在用户的内容(例如,所述用户所发送或接收的电子邮件或文本消息,诸如所述用户的社交网络概要页面的网页,等等)中出现的词或短语,或者能够与所述用户相关联的其它词或短语,诸如所述用户的社交网络的页面或通信上的内容。例如,用户的好友每一个可以具有他们自己的关键词。在所述用户的好友被识别之后,每个好友的关键词就可以被确定并且与所述用户的关键词进行比较。在一些实施方式中,好友的关键词可以彼此进行比较以便在确定所述用户是否也具有相同关键词之前确定是否存在具有相同关键词的多个好友。接着对用户的关键词施加权重008),虽然所述权重也可以作为识别关键词的过程的一部分而被施加。在一个示例中,每个用户可以以缺省词典开始,所述缺省词典可以简单地为一般的组词典,诸如通常意在对所有讲英语的人适用的词典。例如,所述缺省词典可以通过对大型公共文档文集中或者来自特定组织的文档中的词的使用频率进行分析所产生。该缺省词典中的词可以是所述文集中出现最多的X个词(其中X可以由可用于存储词典的空间来确定),具有反映其在文集中的相对出现频率的权重。如以上所提到的,权重还可以反映词与其它词相结合出现的频率。接着可以对用户的特定文档(例如,文本消息、电子邮件和网页)进行分析,并且那些文档中的词可以被添加到所述缺省词典和/或改变所述缺省词典中词的权重。词在用户的个人文件中存在所产生的权重可以远大于来自一般使用的权重,原因在于可以假设所述用户重复某个其较早使用的模式。接着可以通过诸如以以上所描述的方式查看第一用户的社交网络中其它用户的词典来对权重进行进一步精化, 以使得第一用户的使用对于词分值的影响最大,而好友的使用则具有较小影响,该影响随着在社交网络中远离所述用户而进一步下降。在一些实施方式中,所述权重可以与标准语言词典进行比较。例如,如果用户的社交网络具有将词“their”拼写为“thier”的实例,则可以基于英语词典中的词“their”的缺失来精化针对标准英语词典的权重。在框210,更新属于所述用户的词典。这样的更新可以包括添加从诸如搜索引擎所获得的新的关键词(即,提供最近在搜索查询中所使用过的词语),并且还包括改变词典中新的或之前存在的词的权重。用户的词典也可以定期或持续更新。例如,假设用户可能很快再次重复词语,每次用户键入文本消息或提交搜索查询,所述提交中的词语就可以被添加到用户的词典中,或者可以明显提高该词语的评分。而且,系统可以按照预定时间(例如,每个晚上)访问社交网络中其他人的词典数据,并且可以更新网络中所有用户的词典。这样更新的词典数据可以利用所述系统进行存储,或者存储在所述词典同样或者可替换地存储在远程设备上的系统中,所述词典数据可以在用户下一次利用其远程设备登录时进行同步。以这种方式,过程200提供了一个示例,利用该示例可以通过考虑用户社交网络成员的数据为所述用户个性化生成消歧词典。这样的数据可能是特别有用的,原因在于其比针对大众的一般使用数据更叫特定于所述用户,并且其比单独用于所述用户的使用数据更加丰富。结果,其可以有效地为用户的词典提供预测更新,以使得数据在用户从其好友中选取提示并且开始使用已经使用的新词时已经处于词典之中。图2B是示出用于利用社交网络数据对用户词典进行更新的过程218的示例的流程图。过程218示出了用于向对计算设备输入搜索查询的用户提供预测文本完成的一个示例。向用户所显示的预测信息部分基于该用户的社交网络成员所使用的词而进行选择。在初始步骤,过程218接收(220)查询。例如,用户可以向诸如通用web搜索引擎或专用搜索引擎之类的搜索引擎提交查询,所述专用搜索引擎诸如用于社交网络网站的搜索工具。这样或其它的提交可以向系统指示用户希望(明确或隐含地)被提供改进对在用户的计算设备上所输入文本的文本消歧的精确度的数据。过程218接着确定(22 用户是否有效。换句话说,系统可以存储多个成员的信息,并且过程218可以验证该用户是这样的一个成员。例如,用户可以向社交网络服务器或其它形式的服务器发送其密码,诸如通过人工登录站点,或者由其计算机诸如从cookie其它类似机制自动向服务器发送信息。一旦过程218确定用户有效,过程218识别(226)与所述用户相关联的社交信息。 例如,服务器系统可以存储特定于该用户的社交信息,诸如用户概要、用户词典、用户博客、 用户社交联系以及用户组。所述社交信息可以一起存储在一个社交网络服务器上,或者可以跨多个服务器进行存储。在其它实施方式中,一些或全部社交信息可以存储在用户设备上,并且副本可以存储在用户设备和服务器系统之间并且在用户设备和服务器系统之间进行同步。利用所识别的与用户相关的社交信息,过程218确定(228)该社交网络的关键词。 例如,社交网络服务器可以从对应于与所述用户有社交联系的人的文档(例如,网页、电子邮件或文本消息)中检索词。如果这些词未存在于所述用户的词典中,则可以将它们添加到所述词典之中。在对关键词列表进行编辑之后,过程218确定(230)与每个关键词相关联的权重 (并且还可以改变对词典中已施加于词语的权重),尽管权重可以在识别关键词的同时进行。例如,可以向关键词指定数字值。如以上更为详细描述的,可以使用各种实施方式来确定与每个关键词相关联的值。过程218接着返回(232)与词典的词语类别相关的数据,诸如通过识别关键词以及相关联的权重值以便随用户词典使用。过程218接着利用新的社交数据更新(234)词典。例如,服务器可以使用新数据对用户词典进行编辑,所述新数据是使用用户的社交联系计算的。一旦对用户词典进行了编辑,过程218接收(236)跟随在触发词典更新的原始输入之后的用户输入。例如,用户可以输入需要进行输入消歧的数字。如果用户在数字键盘上输入了 2-2-7,则应用可以向每个数字分派字母,诸如对数字键盘上的数字2所分派的A、 B或C。用户还可以使用QWERTY键盘输入字母。同样,用户可以利用笔在程序中输入字母, 所述程序能够基于该笔所输入的形状确定字母。在以下进一步讨论的另一实施例中,所述应用可以使用所说的词作为用户输入。过程218接着利用词典对用户输入进行消歧(238)。例如,所述消歧可以通过识别词典中能够与用户所进行的输入相匹配的所有候选词语,并且接着对每个潜在候选进行排名来进行。这样的消歧可以在用户每次输入新字符时以类似方式进行更新。所述消歧可以在不同设备中进行。例如,消歧服务器可以使用词典对输入进行消歧,并且可以将所更新的信息传送到用户的计算设备,从而为用户快速呈现建议词的列表。 所述消歧还可以在用户的计算设备上本地进行,其可以使得响应时间更快而且还可以在一些情况下限制词典的大小。消歧的特定部分可以在用户设备上本地进行而特定部分也可以在服务器上进行。例如,用户设备可以追踪用户最近输入到其设备中的词(并且可以在预定时间段之后撤销那些词),并且可以将这些词提供在建议的词完成的下拉列表的顶部,而列表中的其余词则可以在服务器使用消歧词典来提供。在框M0,过程218可以显示预测完成。例如,如所提到的,应用可以以其相关联的值的顺序显示来自用户词典的词的列表,其中该显示恰好位于用户当前进行键入的区域的上方或下方。在其它实施例中,所述应用可以显示具有最高相关联值的关键词,其适当地显示在用户当前所键入的文本框的上方。在步骤242中,过程218确定所建议的完成是否被用户所接受对2。例如,用户可以明确接受所建议的完成(例如,通过按压回车或在鼠标按钮上点击。在其它实施方式中,接受所建议的完成可以是隐含的,诸如由用户键入空格以指示其已经完成了特定词的键入)。如果用户不希望接受所建议的完成,则用户可以简单地继续键入并忽略所有建议。用户还可以按压删除键以在其键入中退回一个字符,并且显示针对新的较短输入字符串的建议方案。在用户不希望接受所建议的完成的情况下,过程218可以返回到步骤236 直至用户接受新的建议完成或者输入了与词典中的任何词都不匹配的词。一旦用户接受了预测或建议的完成或者输入了新的词,过程218利用新的数据对词典进行更新044)。例如,所接受的预测完成可以以常数增加与关键词相关联的值。例如,用户所选择的词语的相对权重可以在用户的词典中有所增加和/或所选择的词语可以被添加到用户最近输入的单独词语组中,其中该组可以位于任意随后的建议完成列表的顶部。这样的列表可以与时间衰减相关联,从而用户所使用的词语在用户使用它们一次就不再使用的情况下从所述列表的顶部消失。在一个实施方式中,用户可以使用所说的词向用户设备输入数据。消歧可以帮助应用确定用户将哪些词与单独的声音相关联。用户可以通过继续向其设备输入话音数据来隐含接受所预测的完成。用户还可以通过诸如“是”或“正确”之类的口头命令来明确接受预测完成。在其它实施例中,用户还可以通过非口头的方式接受词,诸如通过小键盘或鼠标操作。图3A是描绘客户端302和服务器304之间的交互300的示例的序列图。这里所示的过程与图2A中所示的相似,并且提供了示例性方式的更为明确的图示,客户端和服务器系统在向计算机用户提供消歧信息时能够以所述方式进行交互,并且能够使用用户所属社交网络的成员所进行的词使用对这样的信息进行更新。通常,所述交互包括客户端从服务器请求词典信息,服务器基于用户在社交网络内的联系检索这样的信息,并且服务器向客户端提供对词典的更新。客户端可以使用经更新的词典来改进词完成的消歧。在图中,客户端302最初向服务器304传送访问词典的请求(框306),所述词典诸如用户的个人词典。服务器304接着识别用户在社交网络中的联系(框308)并且基于那些联系计算用户关键词310。在一些实施方式中,服务器304可以通过对每个人的数据执行搜索来确定与所述用户存在社交联系的人的关键词。例如,社交网络成员可以具有概要,并且服务器304可以通过所述概要中的文本或其它数据进行分析归类来确定关键词。服务器304接着可以基于关键词对词语施加权重(框312),生成新的词典或附加词典数据,并且将新的词典数据314传送到客户端。服务器304可以确定关键词并且使用各种因素对每个关键词施加以权重(框 312)。例如,服务器304可以基于用户和已经从其获取了词的所述用户的社交网络成员之间的分隔程度来对词语施加权重。所述权重可以同时或者可替换地基于用户所具有的好友数量。同样,所述权重可以基于与用户相关联的数据和好友数据之间的相似度。所述权重还可以基于在其联系数据中具有相同关键词的好友的数量。服务器304接着采用加权的词语,将信息格式化为词典数据,并且将所述词典数据传送到客户端302(框314)。客户端302能够使用新的词典数据来更新用户词典(框 316)。例如,客户端302可以将新的词典数据添加到已经存储在客户端302上的之前存在的词典。在一些实施方式中,新的词语可以被添加到之前的词典。在其它实施方式中,新的词典数据可以替代之前的词典。在再其它的实施例中,客户端302可以向已经存在于原始词典中的相应词语施加来自服务器304的新的权重。在其它实施例中,词典可以保留在服务器304,并且可以在用户进行键入并且被呈现以客户端302所建议的词选择时在客户端 302和服务器304之间传递数据。图;3B是描绘客户端348、消歧服务器350和社交服务器352之间的交互320的示例的序列图。在该示例中,不同的专用服务器组之间的特定交互被示出以提供用于实现与消歧引擎共享社交数据的系统的示例。具体地,社交服务器352可以是一般社交网络系统的一部分,并且可以经由应用编程接口(API)与消歧服务器350进行通信,以使得消歧服务器能够在为用户开发或更新消歧词典时获得与用户的社交网络以及网络成员的词使用相关的信息。以这种方式,消歧服务器350可以在用户处于向系统输入文本的过程中时更为容易和准确地预测用户的意图。在该示例性过程中,客户端348最初向消歧服务器350传送对词典数据的请求 (框322)。消歧服务器350诸如通过来自客户端348上所存储的cookie的信息识别与客户端348相关联的用户(框324)。消歧服务器350接着从社交服务器352请求社交信息(框 326)。消歧服务器350可以作为开发或更新词典数据的较大过程的一部分进行该操作,所述词典数据要被提供给使用客户端;348的用户。例如,消歧服务器350可以在对消歧词典中的词或短语进行排名时考虑多种因素,诸如在线新闻源中的词使用,来自公众的最近搜索引擎查询中的词使用,以及用户自身的使用。向社交服务器352提交请求可以是又另一种获取数据的机制,所述数据可以反映对客户端348的用户未来可能的使用。社交服务器352接着识别客户端348的用户的社交网络(框328),诸如通过分析与所述用户的社交网络成员相关联的文档来确定社交网络的关键词330,确定关键词的权重(框33 ,并且向消歧服务器350返回社交数据(框334)。所述数据可以采用多种形式, 从而保护社交网络用户的隐私。例如,所返回的数据可以简单地包括词以及词相关联的评分信息,从而消歧服务器350无法从社交网络中的各个成员中确定谁使用了所述词。而且, 社交服务器352可以对用户社交网络的成员的身份进行保密。
消歧服务器350接着利用之前的消歧词典整合定制使用数据336。例如,之前的词典可以为基于其在普通英语中的一般使用对词和短语进行排名的一般词典。所述定制使用数据可以包括词典的各种更新信息,包括反映用户社交网络的成员所进行的历史使用的数据。在整合了所述定制使用数据之后,消歧服务器350将新的词典数据传送到客户端 348 (框338)。在附图所示的实施例中,客户端348更新词典340,从用户接受输入342,并且显示其预测完成344。以这种方式,客户端设备可以为其用户提供与用户自己的使用匹配更加紧密的文本输入的预测完成,其由当前输入搜索查询的人的用户所推断,如由最近的新闻事件所确定,以及由用户的社交圈所进行的词和短语使用所确定。客户端348可以自动从消歧服务器请求词典数据322。例如,客户端348可以当用户在任何时候打开客户端348上的特定应用时传送请求。在另一实施例中,用户可以在其计算设备上发送请求以更新词典数据。相反,客户端348可以定期发送对词典数据的请求, 诸如每天、每周或每月。图4A是用于更新词典以便对用户输入进行消歧的系统400的示意图。通常,系统 400允许作为社交网络成员的各个用户在创建或更新一个或多个消歧词典时对其所使用的社交联系进行信息通知。用户可以通过诸如手机402、膝上计算机410和智能电话412之类的各种机制与系统进行交互。手机402可以包括受限键盘,从而当用户按压按键时,系统无法确定用户想要输入什么特定字符。这样的输入可能由此而从消歧获益。相反,膝上计算机410和智能电话412可以具有完全的QWERTY键盘,但是当用户仅输入了词或短语的一部分时其文本输入在它们上是不明确的。通过完成用户处于输入过程之中的词,这种情况下的用户文本输入的消歧可能是有益的。消歧服务器406可以有助于对用户在各种远程设备上所输入的文本进行消歧。例如,服务器406可以在设备自身上提供用于消歧词典的数据,或者可以在用户键入时通过网络404提供所建议的文本输入完成。消歧服务器406可以包括一个或多个服务器,并且可以作为诸如搜索引擎的系统的一部分,而建议则在用户向页面中键入诸如搜索查询之类的文本时利用网页进行显示。以类似的方式,用户可以向工具栏上的搜索框中键入文本,并且工具栏应用可以与消歧服务器406进行协作以在用户键入时显示所建议的答案。在该示例中,消歧引擎还与一组社交服务器408进行通信,所述社交服务器408可以作为与消歧服务器408相同域的一部分,或者可以来自不同的域。如以上所详细描述并且如消歧服务器406和社交服务器408之间的箭头所示意性示出的,在为用户生成词典数据的过程中,消歧服务器可以寻找与用户的社交网络相关的信息。例如,消歧词典可以向社交服务器408传送用户的标识符以及指示所述消歧词典为数据的有效请求者的证书。在识别与用户社交网络相关联的文档上的词并且向那些词施加权重时,所述社交服务器可以接着执行如以上所讨论的那些动作。社交服务器408接着可以向消歧服务器406传回所识别的词的列表(其中去除了如“&”、“让^、“&11(1”等的普通词)以及与那些词语相关联的权重。所返回的信息接着可以被结合到用户的消歧词典中,所述消歧词典可以存储在消歧服务器406和/或设备402,410,412之一上。图4B是向在计算设备上输入数据的用户提供消歧的系统420的示意图。系统420 与图4A中的系统400类似,但是在该示例中更加关注于特定的消歧服务器426。
而且,与系统400 —样,系统420包括诸如计算机422之类的远程设备,所述计算机422能够通过诸如互联网之类的网络424电访问多个服务器。这样的诸如web搜索服务的服务可以扩增以对用户的文本输入进行消歧的服务,从而使得这样的文本输入快速且更为准确。在该示例中,消歧服务由消歧服务器4 提供。服务器似6包含允许其在用户向设备中进行键入时向诸如计算机422的用户远程设备提供消歧的多个组件。例如,预测模块434接收与用户所键入内容相关的信息,并且向用户设备返回所预测的完成的数据。模块434可以通过遍历树结构进行操作,其中所述树结构中的每个节点为用户所输入的字符,并且文本输入的方案是树中处于当前节点以下的所有词。而且,词的每个输入可以包括权重,其确定所述词在当用户进行键入时可以向其示出的预测输入列表中如何相对于其它潜在方案进行显示。这样的结构可以被存储为一个或多个词典,诸如反映跨大量文档的词使用的主词典436,并且可以在用户的词典进行如以上所描述的定制之前作为用户的起始词典。用户数据440继而可以存储与系统中各个用户相关联的多个参数,并且还可以存储每个用户的定制词典数据。所述定制词典数据可以替代主词典436使用,或者可以被用来扩增主词典436。这样的定制词典可以由词典构建器432构建。词典构建器在为用户构建定制词典时可以依赖于多个不同源,其中那些源被选择以反映用户可能在不久的将来进行键入的词或短语。在一个示例中,可以对诸如最近的报纸和杂志文章之类的当前事件数据442进行分析以确定在所述文章中使用的词,以及所述词被使用的频率。假设这样的“新鲜”内容反映了用户诸如在构建搜索时可能键入其设备之中的当前事件问题的类别。同样,假设计算机422的用户可能重复其他人所进行的输入,尤其是在所述输入与增长趋势相关的情况下,可以对查询日志438进行分析以识别用户已经提交至搜索引擎的查询词语。词典构建器还可以依赖于外部数据源,诸如社交网络数据430。在图中,示出了社交网络接口 433,并且其被编程为从一组社交服务器4 请求反映词使用的信息。所述请求可以遵循普通的API,其可以要求消歧服务器426除了识别用户以及其自身之外不进行任何操作。社交服务器可以进行如以上所讨论的处理,并且可以返回与用户的社交网络430 相关的数据,诸如被格式化而添加到用户的消歧词典的数据,该数据反映了用户的社交网络所进行的使用。假设好友的使用至少在一定程度上是用户未来的词使用的预测。以这种方式,系统420可以为用户提供定制的文本输入帮助。所述定制可以针对于诸如近期新闻事件和搜索查询之类的临时信息,而且还可以是面向社交的,从而可能提供比其它方式更为准确的消歧。在一些实施方式中,可以使用来自计算机422的数据进行文本消歧。例如,用户可以具有存储在计算机422上的诸如文字处理文档、即时消息、电影、联系人和日历项之类的文件。这些项目中所包括的数据可以在计算机422和消歧服务器4 之间共享数据时(例如,当计算机422与消歧服务器4 同步时)为消歧服务器4 提供进一步的数据。在一个示例中,如果日历包括项目“Samantha,s Birthday”,则词语“Samantha,S”和“Birthday” 可以被添加到用户数据440。类似地,可以使用用户的浏览历史作为数据。例如,如果用户的缓存数据包括espn. com的hsekill (棒球)文件,则文本、图像或文件名中使用的词 “baseball”可以被词典构建器432使用。数据还可以从其它客户端设备提供,诸如移动设备、媒体播放器或其它计算机。
同样,连接到网络4M的其它服务器可以向用户数据440提供进一步的数据。例如,用户可以在与消歧服务器似6或社交服务器4 分离的服务器上拥有帐户,所述服务器存储诸如电子邮件帐户或即时消息帐户之类的信息。来自所述分离服务器的数据可以在用户数据440中与消歧服务器426的数据进行同步。在一些实施方式中,用户可以在各个服务器上添加帐户以便向消歧服务器4 提供更多数据。在一个示例中,用户可以将Yahoo ! 电子邮件帐户和AOL即时消息帐户链接到消歧服务器426。数据可以从包括服务器和客户端设备的多个源提供。例如,移动设备以及来自分离服务器的用户帐户都可以向用户数据 440提供数据。现在参见图5,图示了实现社交消歧词典的示例性设备500的外观。简要地以及除其它之外,设备500包括处理器,所述处理器被配置为在移动设备的用户进行请求时访问和更新社交消歧词典。更为详细地,设备500的硬件环境包括用于向用户显示文本、图像和视频的显示器501 ;用于向设备500中输入文本数据和用户命令的键盘502 ;用于指示、选择和调节显示器501上所显示的对象的指示设备504 ;天线505 ;网络连接506 ;相机507 ;麦克风509 ; 以及扬声器510。虽然设备500示出了外部天线,但是设备500可以包括用户看不到的内部天线。显示器501显示构成设备500所使用的软件应用的用户界面的视频、图形、图像和文本,以及用来操作设备500的操作系统程序。在显示器501上可以显示的可能元素之间为警告用户有新消息的新邮件指示符511 ;指示接收、拨打或进行电话呼叫的活动呼叫指示符512 ;指示设备500当前用来传送和接收数据的数据标准的数据标准指示符514 ;诸如通过使用信号强度条指示经由天线505所接收的信号强度的度量的信号强度指示符515 ; 指示剩余电池寿命的度量的电池寿命指示符516 ;或者输出当前时间的时钟517。显示器501还可以示出表示用户可用的各种应用的应用图标,诸如web浏览器应用图标519、电话应用图标520、搜索应用图标521、联系人应用图标522、地图应用图标524、 电子邮件应用图标525、或者其它应用图标。在一种示例性实施方式中,显示器501是支持 16位或更好色彩的四分之一视频图形阵列(QVGA)薄膜晶体管(TFT)液晶显示器(LCD)。用户使用键盘(或“小键盘”)502输入命令和数据以操作和控制操作系统和提供社交消歧词典的应用。键盘502包括标准键盘按钮或者与字母数字字符相关联的按键,诸如在单独选择时与字母数字字符“Q”和“W”相关联或者与按键5 组合按压时与字符“*” 和“1”相关联的按键5 和527。基于操作系统或者操作系统所调用的应用的状态,单独按键也可以与特殊字符或功能相关联,包括未标记的功能。例如,当应用要求输入数字字符, 则单独选择按键527可以使得“ 1,,被输入。除了传统与字母数字小键盘相关联的按键之外,键盘502还包括其它特殊功能键,诸如使得所接收的呼叫得以应答或者发起新的呼叫的建立呼叫按键530 ;使得活动呼叫终止的终止呼叫按键531 ;使得菜单出现在显示器501内的下拉菜单按键532 ;使得之前所访问的网络地址被再次访问的向后导航按键534 ;使得活动网页被放在收藏站点的书签文件夹中或者使得书签文件夹出现的收藏按键535 ;使得设备500上所调用的应用导航至预定网络地址的主页按键536 ;或者提供多路导航、应用选择以及电量和音量控制的其它按键。
用户使用指示设备504来选择和调整显示器501上所显示的图形和文本对象,作为与设备500以及设备500上所调用的应用的交互以及对其控制的一部分。指示设备504 可以是任意适当类型的指示设备,并且可以是操纵杆、轨迹球、触摸板、相机、语音输入设备、与显示器501相结合实现的触摸屏设备、或者任意其它输入设备。可以为外部天线或内部天线的天线505为用于传输和接收实现点对点无线通信、 无线局域网(LAN)通信或位置确定的射频(RF)信号的有向或全向天线。天线505可以使用专业移动无线通信(SMR)、蜂窝或个人通信服务(PCQ频带进行点对点无线通信,并且可以使用任意数量的数据标准实现数据传输。例如,天线505可以使用诸如以下的技术而允许数据在设备500和基站之间传送无线宽带(WiBro)、全球微波接入互操作性(WiMAX)、 5GPP长期演进(LTE)、超移动宽带(UMB)、高性能无线电城域网(HIPERMAN)、iBurst或大容量空分多路接入(HC-SDMA)、高速OFDM分组接入(HSOPA)、高速分组接入(HSPA)、HSPA 演进、HSPA+、高速上行分组接入(HSUPA)、高速下行链路分组接入(HSDPA)、通用接入网络(GAN)、时分同步码分多址(TD-SCDMA)、演进数据优化(或者仅演进数据)(EVDO)、时分码分多址(TD-CDMA)、自由移动多媒体接入(FOMA)、通用移动通信系统(UMTS)、宽带码分多址(W-CDMA)、增强型数据速率GSM演进(EDGE)、增强型GPRS (EGPRS)、码分多址 2000(CDMA2000)、宽频综合调度增强网络(WiDEN)、高速电路交换数据(HSCSD)、通用分组无线业务(GPRS)、个人手持电话系统(PHS)、电路交换数据(CSD)、个人数字蜂窝(PDC)、 CDMAone、数字式高级移动电话服务系统(D-AMPQ、集成数字增强型网络(IDEN)、全球移动通信系统(GSM)、DataTAC, Mobitex、蜂窝数字分组数据(CDPD)、Hicap、高级移动电话系统 (AMPS)、北欧移动电话(NMP)、汽车收音机电话(ARP)、汽车旅店或共用自动陆地移动电话 (PALM)、流动电话系统D (MTD)、公有土地流动电话(OLT)、高级移动电话系统(AMTS)、改进的移动电话业务(IMTS)、移动电话系统(MTS)、一键通(PTT)、或者其它技术。例如,使用具有QUALCOMM RTR6^5 收发器和PM7540 电源管理电路的QUALCOMM MSM7200A芯片组,可以进行经由W-CDMA、HSUPA, GSM、GPRS和EDGE网络的通信。无线或有线计算机网络连接506可以是调制解调器连接、包括以太网的局域网 (LAN)连接,或者诸如数字订户线路(DSL)的宽带广域网(WAN)连接、有线高速互联网连接、 拨号连接、T-I线路、T-3线路、光纤连接或者卫星连接。网络连接506可以连接到LAN网络、 公司或政府WAN网络、互联网、电话网络或者其它网络。网络连接506使用有线或无线连接器。例如,示例性的无线连接器包括红外数据协会(IrDA)无线连接器、Wi-Fi无线连接器、 光学无线连接器、电气与电子工程师协会(IEEE)标准802. 11无线连接器、蓝牙无线连接器 (诸如蓝牙版本1.2或5.0连接器)、近场通信(NFC)连接器、正交频分复用(OFDMA)超宽带 (UffB)无线连接器、时间调制超宽带(TM-UWB)无线连接器、或者其它无线连接器。例如,示例性的有线连接器包括IEEE-1394火线连接器、通用串行总线(USB)连接器(包括mini-B USB接口连接器)、串行端口连接器、并行端口连接器、或者其它有线连接器。在另一个实施方式中,网络连接506和天线505的功能被集成到单个组件中。相机507允许设备500捕捉数字图像,并且可以为扫描仪、数字静止相机、数字视频相机、其它数字输入设备。在一个示例性实施方式中,相机507是采用互补金属氧化物半导体(CMOS)的5百万像素(MP)的相机。麦克风509允许设备500捕捉声音,并且可以为全向麦克风、单向麦克风、双向麦
16克风、长筒麦克风、或者将声音转换为电信号的其它类型的装置。麦克风509可以被用来捕捉用户所生成的声音,所述声音例如在所述用户在经由设备500进行的电话呼叫期间对另一用户讲话时所生成的声音。相反,扬声器510允许设备将电信号转换为声音,所述声音诸如电话应用程序所生成的来自另一用户的语音,或者铃声应用程序所生成的铃声。此外, 虽然设备500在图5中被示为手持设备,但是在其它实施方式中,设备500可以为膝上计算机、工作站、中型计算机、大型机、嵌入系统、电话、桌面PC、平板计算机、PDA、或者其它类型的计算设备。图6是图示设备500的内部体系结构600的框图。该体系结构包括处理包括操作系统或应用的计算机指令的中央处理单元(CPU)601 ;显示界面602,其提供用于在显示器501上呈现视频、图形、图像和文本的通信接口和处理功能,提供一组内建控件(诸如按钮、文本和列表),并且支持不同屏幕大小;提供到键盘502的通信接口的键盘接口 604 ;提供到指示设备504的通信接口的指示设备接口 605 ;提供到天线505的通信接口的天线接口 606 ;通过计算机网络连接506提供到网络的通信接口的网络连接接口 607 ;提供用于从相机507捕捉数字图像的通信接口和处理功能的相机接口 609 ;提供用于使用麦克风509 将声音转换为电信号以及使用扬声器510将电信号转换为声音的通信接口的声音接口 ;随机访问存储器(RAM) 610,其中计算机指令和数据被存储在易失性存储器设备中以便由CPU 601进行处理;只读存储器(R0M)611,其中用于诸如基本输入输出(I/O)、启动或者从键盘502接收按键击的基本系统功能的不变低级系统代码或数据被存储在非易失性存储器设备中;存储介质612或其它适当类型的存储器(例如,诸如RAM、ROM、可编程只读存储器 (PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁盘、 光盘、软盘、硬盘、可移动盒带、闪存驱动器),其中存储包括操作系统613、应用程序615(例如,包括web浏览器应用、小组件或小配件引擎、以及或其它必要的应用)和数据文件619 的文件;提供设备500的真实或相对位置或者地理位置的导航模块617 ;向供电组件提供适当交流(AC)或直流(DC)的电源619 ;以及允许设备500通过电话网络传送和接收声音的电话子系统620。所述构成设备和CPTOOl通过总线621彼此进行通信。CPU 601可以是多个计算机处理器中的一个。在一种配置中,计算机CPU 601为多于一个的处理单元。MM 610与计算机总线621对接以便在诸如操作系统应用程序和设备驱动器之类的软件程序的执行期间向CPU 601提供快速的RAM存储。更具体地,CPU 601 将计算机可执行的处理步骤从存储介质612或其它媒体加载到RAM 610的域中以便执行软件程序。数据存储在RAM 610中,其中所述数据在执行期间由CPU 601访问。在一个示例性配置中,设备500包括至少U8MB的RAM以及256MB的闪存。存储介质612自身可以包括多个物理驱动单元,诸如独立磁盘冗余阵列(RAID)、 软盘驱动器、闪存、USB闪存驱动器、外部硬盘驱动器、指状驱动器、笔驱动器、按键驱动器、 高密度数字多功能盘(HD-DVD)光盘驱动器、内部硬盘驱动器、蓝光光盘驱动器、或者全息数字数据存储(HDDQ光盘驱动器、外部迷你双列直插内存模块(DIMM)同步动态随机访问存储器(SDRAM)、或者外部微DMMSDRAM。这样的计算机可读存储介质允许设备500访问存储在可移动和非可移动存储器介质上的计算机可执行过程步骤、应用程序等,从设备500 卸载数据,或者向设备500上传数据。计算机程序产品有形地实现在存储介质612、机器可读存储介质中。计算机程序产品包括指令,当被机器读取时,所述指令操作以使得数据处理装置在移动设备中存储图像数据。在一些实施例中,所述计算机程序产品包括生成社交消歧词典的指令。操作系统613可以是基于LINUX的操作系统,诸如GOOGLE移动设备平台、APPLE MAC OS X.MICROSOFT WINDOWS NT/WINDOWS 2000/WIND0WS XP/WIND0WS MOBILE、各种 UNIX 风格的操作系统、或者用于计算机或嵌入式系统的专用操作系统。操作系统613的应用研发平台或架构可以是无线二进制运行环境(BREW)、使用SUN MICROSYSTEMS JAVASCRIPT 编程语言的JAVA平台微型版(JAVA ME)或JAVA 2平台微型版(J2ME) ;PYTHON , FLASH LITE或MICROSOFT. NET套件、或者其它适当环境。设备存储用于操作系统613和应用程序615的计算机可执行代码,所述应用程序诸如电子邮件、即时消息、视频服务应用、地图应用、文字处理、电子数据表、呈现、游戏、 地图、web浏览、JAVASCRIPT引擎或者其它应用。例如,一个实施方式可以允许用户访问 GOOGLE GMAIL电子邮件应用、GOOGLE TALK即时消息应用、Y0UTUBE视频服务应用、GOOGLE MAPS或GOOGLE EARTH地图应用、或者GOOGLE PICASA图像编辑和呈现应用。应用程序615 还可以包括小组件或小配件引擎,诸如TAFRI小组件引擎、诸如WINDOWS SIDEBAR小组件引擎或KAPSULES小组件引擎的MICROSOFT小组件引擎、诸如K0NFABULT0R小组件引擎的 ΥΑΗ00 !小组件引擎、APPLE DASHBOARD小组件引擎、GOOGLE小组件引擎、KLIPF0LI0小组件引擎、OPERA小组件引擎、WIDSETS小组件引擎、专用小组件或小配件引擎,或者为桌面上物理激活的小型程序提供主机系统软件的其它小组件或小配件引擎。虽然可能使用以上所描述的实施方式来提供社交消歧词典,但是也可能将根据本公开的功能实现为动态链接库(DLL),或者实现为针对其它应用程序的插件,所述其它应用程序诸如互联网web浏览器,诸如FOXFIRE web浏览器、APPLE SAFARI web浏览器或者 MICROSOFT INTERNET EXPLORER web 浏览器。导航模块621可以诸如通过使用全球定位系统(GPQ信号、全球导航卫星系统 (GL0NASS)、伽利略定位系统、北斗卫星导航和定位系统、惯性导航系统、航位推算系统,或者通过访问地址、网际协议(IP)地址或数据库中的位置信息来确定设备的绝对或相对位置。导航模块621还可以被用来诸如通过使用一个或多个加速计测量设备500的角位移、 方位或速率。图7是图示在操作系统713为GOOGLE移动设备平台的情况下设备700所使用的操作系统713的示例性组件的框图。操作系统713调用多个处理,同时确保相关联的电话应用有所响应,并且不规则应用不会导致操作系统的错误(或者“崩溃”)。使用任务切换,操作系统713允许在电话呼叫的同时进行应用切换,而并不丢失每个相关联应用的状态。操作系统713可以使用应用架构来鼓励组件的再次使用,并且通过将指示设备和键盘输入相结合并且允许转动(pivoting)来提供可缩放的用户体验。因此,操作系统能够在使用先进的基于标准的web浏览器的同时提供丰富的图形系统和媒体体验。操作系统713通常可以被组织为六个组件内核700、库701、操作系统运行时间 702、应用库704、系统服务705和应用706。内核700包括允许诸如操作系统713和应用程序715的软件经由显示接口 702与显示器501进行交互的显示驱动器707、允许所述软件与相机507进行交互的相机驱动器709、蓝牙驱动器710、M系统驱动器711、绑定(IPC)驱动器712、USB驱动器714、允许软件经由键盘接口 704与键盘502进行交互的键盘驱动器715、WiFi驱动器716、允许软件经由声音接口 709与麦克风509和扬声器510进行交互的音频驱动器717 ;以及允许软件与电源719进行交互并对其进行管理的电源管理组件719。在一种实施方式中根据基于LINUX的操作系统的BlueZ蓝牙堆栈的蓝牙驱动器对头戴和免提设备、拨号网络、个人域网络(PAN)或音频流提供简档支持(诸如通过高级音频分发简档(A2DP)或音频/视频远程控制简档(AVRCP))。蓝牙驱动器提供用于扫描、配对和解除配对、以及服务查询的JAVA绑定。库701包括使用有效的JAVA应用编程接口(API)层支持标准视频、音频和静止帧格式(诸如运动图像专家组(MPEG)-4、H. 264, MPEG-I音频层_3 (MP3)、高级音频编码 (AAC),自适应多速率(AMR)、联合图像专家组(JPEG)和其它)的媒体架构720 ;表面管理器 721 ;用于二维应用绘图的简单图形库(SGL)722 ;用于游戏和三维呈现的用于嵌入式系统的开放图形库(OpenGL ES) 724 ;C标准库(LIBC) 725 ;LIBffEBCORE库726 ;自由类型库727 ; SSL 729 ;以及 SQLite 库 730。通常构成移动信息设备简档(MIDP)运行时间的操作系统运行时间702包括核心JAVA库731,以及Dalvik虚拟机732。关于图形呈现,全系统合成器(system-wide composer)使用OpenGL ES 724以及用于其合成的二维硬件加速器来管理表面和帧缓冲器并且处理窗口转换。Dalvik虚拟机732可以随嵌入式环境使用,原因在于其非常高效地使用运行时间存储器、实现了 CPU优化的字节代码解释器、并且支持每个设备的多个虚拟机处理。定制文件格式(.DEX)出于运行时间效率而设计,使用共享恒定池来减少存储器,只读结构来改善跨过程共享、简明并且固定宽度的指令来减少解析时间,由此允许所安装的应用在构建时间被翻译为定制文件格式。相关联的字节代码被设计用于快速解释,原因在于基于寄存器而不是基于堆栈的指令减少了存储器和分派开销,这是因为使用固定宽度的指令简化了解析,并且是因为16位的代码单元使得读取最小化。应用库704包括视图系统734、资源管理器735和内容提供器737。系统服务705 包括状态条739 ;应用启动器740 ;维护所有安装应用的信息的包管理器741 ;向电话子系统720提供应用级JAVA接口的电话管理器742 ;允许所有应用访问状态条以及屏上通知的通知管理器744 ;允许具有多个窗口的多个应用共享显示器501的窗口管理器745 ;以及在单独过程中运行每个应用、管理应用生命周期并且维护跨应用历史的活动管理器746。通常构成MIDP应用的应用706包括归属应用747、拨号器应用749、联系人应用 750、浏览器应用751和社交消歧词典应用752。电话管理器742提供事件通知(诸如电话状态、网络状态、订户身份模块(SIM)状态、或者语音邮件状态)、允许访问状态信息(诸如网络信息、SIM信息或存在语音邮件)、 发起呼叫,以及查询和控制呼叫状态。浏览器应用751在完全类似桌面的管理器中呈现网页,包括导航功能。此外,浏览器应用751允许单列、小屏幕显示,并且提供了 HTML视图到其它应用中的嵌入。图8是图示操作系统内核514所实现的示例性过程的框图。通常,应用和系统服务器在单独过程中运行,其中活动管理器746在单独过程中运行每个应用并且管理应用的生命周期。虽然许多活动或服务也可以在相同过程中运行,但是应用在其自己的过程中运行。过程按照需要开始和结束以运行应用组件,并且过程可以被终止以收回资源。每个应用被分配以其自己的过程,其名称为应用的包名称,并且应用的各部分可以被分配以另一个过程名称。诸如表面管理器816、窗口管理器814或活动管理器810之类的持久核心系统服务由系统过程所托管,虽然诸如与拨号器应用821相关联的过程的应用过程也可能是持久的。操作系统内核514所实现的过程通常可以被归类为系统服务过程801、拨号器过程802、 浏览器过程804和地图过程805。系统服务过程801包括与状态条739相关联的状态条过程806 ;与应用启动器740相关联的应用启动器过程807 ;与包管理器741相关联的包管理器过程809 ;与活动管理器746相关联的活动管理器过程810 ;与提供对图形、本地化串和 XML布局描述的访问的资源管理器相关联的资源管理器过程811 ;与通知管理器744相关联的通知管理器过程812 ;与窗口管理器745相关联的窗口管理器过程814 ;与核心JAVA库 731相关联的核心JAVA库过程815 ;与表面管理器721相关联的表面管理器过程816 ;与 Dalvik虚拟机732相关联的Dalvik虚拟机过程817 ;与LIBC库725相关联的LIBC过程 819 ;以及与社交消歧词典应用752相关联的社交消歧词典过程720。拨号器过程802包括与拨号器应用749相关联的拨号器应用过程821 ;与电话管理器742相关联的的电话管理器过程822 ;与核心JAVA库731相关联的核心JAVA库过程 824 ;与Dalvik虚拟机732相关联的Dalvik虚拟机过程825 ;以及与LIBC库725相关联的 LIBC过程826。浏览器过程804包括与浏览器应用相关联的浏览器应用过程827 ;与核心 JAVA库731相关联的核心JAVA库过程829 ;与Dalvik虚拟机732相关联的Dalvik虚拟机过程830 ;与LIBWEBC0RE库7 相关联的LIBWEBC0RE过程831 ;以及与LIBC库725相关联的LIBC过程832。地图过程805包括地图应用过程834、核心JAVA库过程835、Dalvik虚拟机过程 836以及LIBC过程837。注意,诸如Dalvik虚拟机过程之类的一些过程可以存在于系统服务过程801、拨号器过程802、浏览器过程804和地图过程805的一个或多个之内。图9示出了可以与这里所描述的技术一起使用的通用计算机设备900和通用移动计算机设备950的示例。计算设备900意在表示各种形式的数字计算机,诸如膝上计算机、 台式机、工作站、个人数字助理、服务器、刀片服务器、主机和其它适当计算机。计算设备950 意在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其它类似的计算设备。这里所示出的组件、其连接和关系以及其功能仅意在进行示例,而并非意在对本文中所描述和/或要求保护的发明的实施方式进行限制。计算设备900包括处理器902、存储器904、存储设备906、连接到存储器904和高速扩展端口 910的高速接口 908、以及连接到低速总线914和存储设备906的低速接口 912。 每个组件902、904、906、908、910和912使用各种总线进行互连,并且可以安装在共用主板上,或者以其它适宜方式进行安装。处理器902能够处理在计算设备900内执行的指令, 包括存储在存储器904中或者存储设备906上的指令,以在诸如耦合到高速接口 908的显示器916的外部输入/输出设备上显示用于GUI的图形信息。在其它实施方式中,如果适宜,可使用多个处理器和/或多个总线,以及多个存储器和存储器类型。而且,多个计算设备900可以相连接,每一个提供必要操作的一部分(例如,作为服务器群、刀片服务器组或多处理器系统)。存储器904存储计算设备900内的信息。在一个实施方式中,存储器904是一个或多个易失性存储单元。在另一实施方式中,存储器904是一个或多个非易失性存储单元。 存储器904还可以是其它形式的计算机可读介质,诸如磁盘或光盘。存储设备906能够为计算设备900提供大型存储。在一个实施方式中,存储设备 906可以是或者可包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、或带设备、闪存或其它类似的固态存储设备、或者设备阵列,包括存储域网络或其它配置中的设备。计算机程序产品可有形地实现在信息载体中。所述计算机程序产品还可包含指令,当被执行时, 所述指令执行诸如以上所描述的一个或多个方法。所述信息载体是计算机或机器可读介质,诸如存储器904、存储设备906、处理器902上的存储器或传播信号。高速控制器908管理用于计算设备900的带宽密集操作,而低速控制器912管理较低带宽密集的操作。这样的功能分配仅是示例性的。在一个实施方式中,高速控制器908 耦合到存储器904、显示器916 (例如,通过图形处理器或加速器),并且耦合到可接受各种扩展卡(未示出)的高速扩展端口 910。在所述实施方式中,低速控制器912耦合到存储设备906和低速扩展端口 914。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速控制端口可耦合到一个或多个输入/输出设备,诸如键盘、指示设备、扫描仪,或者例如通过网络适配器耦合到诸如交换机或路由器之类的联网设备。如图所示,计算设备900能够以各种不同形式来实现。例如,其可以实现为标准服务器920,或者在更多时间实现为一组这样的服务器。其还可以被实现为机架式服务器系统 924的一部分。此外,其可以在诸如膝上计算机922的个人计算机中实施。作为选择,来自计算设备900的组件可以与诸如设备950的移动设备(未示出)中的其它组件相结合。每个这样的设备可包含一个或多个计算设备900、950,并且整个系统可由多个彼此通信的计算设备900、950所构成。除其它组件之外,计算设备950包括处理器952、存储器964、诸如显示器卯4的输入/输出设备、通信接口 966和收发器968。设备950还可提供以诸如微驱动器或其它设备的存储设备以提供附加存储。每个组件950、952、964、954、966和968使用各种总线进行互连,并且若干组件可安装在共用主板上或者以其它适宜方式进行安装。处理器952能够执行计算设备950内的指令,包括存储在存储器964中的指令。所述处理器可被实现为包括单独且多个的模拟和数字处理器的芯片的芯片组。例如,所述处理器可提供设备950的其它组件的协同,诸如控制用户接口、设备950所运行的应用以及设备950所进行的无线通信。处理器952可以通过耦合到显示器卯4的控制接口 958和显示接口 956与用户进行通信。显示器%4例如可以是TFT IXD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器,或者其它适当的显示技术。显示接口 956可以包括用于驱动显示器954向用户显示图形和其它信息的适当电路。控制接口 958可以从用户接收命令并且对其进行转换以便向处理器952进行提交。此外,可提供与处理器952进行通信的外部接口 962,从而使得设备950能够与其它设备进行近域通信。例如,外部接口 962在一些实施方式中可提供有线通信,或者在其它实施方式中提供无线通信,并且也可使用多个接口。存储器964存储计算设备950内的信息。存储器964可以实施为一个或多个计算机可读介质或媒体、一个或多个易失性存储器单元或者一个或多个非易失性存储器单元。 也以提供扩展存储器974并通过扩展接口 972连接到设备950,例如,所述扩展接口 972可以包括SIMM (单列直插存储器模块)卡接口。这样的扩展存储器974可为设备950提供额外的存储空间,或者还可以为设备950存储应用或其它信息。特别地,扩展存储器974可以包括指令以执行或补充以上所描述的过程,并且还可以包括安全信息。例如,扩展存储器 974由此可被提供作为设备950的安全模块,并且可利用允许对设备950进行安全使用的指令进行编程。此外,可经由SIMM卡提供安全应用以及附加信息,诸如以不可破坏的方式在 SIMM卡上设置识别信息。例如,如以下所描述的,所述存储器可以包括闪存和/或NVRAM存储器。在一个实施方式中,计算机程序产品有形地实现在信息载体中。所述计算机程序产品包含指令,当被执行时,所述指令执行诸如以上所描述的一个或多个方法。所述信息载体是计算机或机器可读介质,诸如存储器964、扩展存储器974、处理器952上的存储器或者可例如在收发器 968或外部接口 962上接收的传播信号。设备950可通过通信接口 966进行无线通信,在必要情况下,所述通信接口 966可包括数字信号处理电路。通信接口 966可在各种模式或协议下提供通信,除其它之外,所述模式或协议诸如GSM语音呼叫、SMS、EMS或匪S消息发送、CDMA、TDMA、PDC、WCDMA、CDMA2000 或GPRS。例如,这样的通信可通过射频收发器968进行。此外,诸如可使用蓝牙、WiFi或其它这样的收发器(未示出)进行短范围通信。此外,GPS (全球定位系统)接收器模块970 可为设备950提供附加的导航和位置相关的无线数据,其可由设备950上运行的应用适当使用。设备950还可以使用音频编解码器960进行可听通信,所述音频编解码器960可以接收来自用户的话音信息并且将其转换为可用的数字信息。音频编解码器960同样可以诸如通过扬声器为用户生成可听声音,例如在设备950的听筒中。这样的声音可以包括来自语音电话呼叫的声音,可以包括录制的声音(例如,语音消息、音乐文件等),并且还可以包括设备950上运行的应用所生成的声音。如图所示,计算设备950可以以多种不同方式来实现。例如,其可以实现为蜂窝电话980。其还可以实现为智能电话982、个人数字助理或其它类似移动设备的一部分。这里所描述的系统和技术的各种实施方式可以以数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合来实现。这些各种实施方式可以包括一个或多个计算机程序中的实施方式,所述计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,所述可编程系统可以为专用或通用,其耦合以从存储设备、至少一个输入设备以及至少一个输出设备接收数据和指令并且向其传送数据和指令。这些计算机程序(也称作程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且能够以高级程序和/或面向对象编程语言来实施,和/或以汇编/机器语言来实施。如这里所使用的,术语“机器可读介质”、“计算机可读介质”是指用来向可编程处理器提供机器指令和/或数据的任意计算机程序产品、装置和/或设备(例如,磁碟、光盘、 存储器、可编程逻辑设备PLD),其包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指被用来为可编程处理器提供机器指令和/或数据的任意信号。为了提供与用户的交互,这里所描述的系统和技术可在具有用于向用户显示信息的显示设备(例如,CRT (阴极射线管)或LCD (液晶显示)监视器)和用户能够通过其为
22计算机提供输入的键盘和指示设备(例如,鼠标或轨迹球)的计算机上实施。也可以使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以为任意形式的感知反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且来自用户的输入可以以任意形式接收,包括声音、话音或触觉输入。这里所描述的系统和技术可在计算系统中实现,所述计算系统包括后端组件(例如,数据服务器),或者其包括中间件组件(例如,应用服务器),或者其包括前端组件(例如,具有用户能够通过其与这里所描述的系统和技术的实施方式进行交互的图形用户接口或Web浏览器的客户端计算机),或者这些后端、中间件或前端组件的任意组合。所述系统的组件可通过任意形式或介质的数字数据通信(例如,通信网络)进行互连。通信网络的示例包括局域网(LAN)、广域网(WAN)和互联网。所述计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络进行交互。客户端和服务器的关系源自于在各自计算机上运行并且彼此具有客户端-服务器关系的计算机程序。已经对多个实施例进行了描述。然而将要理解的是,可以进行各种修改而并不背离本发明的精神和范围。例如,社交消歧词典可以被用于各种应用内的词完成。此外,可以出于不同于输入数据消歧或者除其之外的目的而使用社交相关个体的使用数据。因此,其它实施例落入权利要求的范围内。
权利要求
1.一种计算机实现的方法,包括接收为与用户相关联的计算设备提供词典的请求;识别所述用户的社交网络的成员的词使用信息;以及利用所述社交网络的所述成员的所述词使用信息为所述用户生成词典。
2.如权利要求1所述的方法,其中所接收的提供所述词典的请求包括对定制消歧词典的明确用户请求。
3.如权利要求2所述的方法,进一步包括针对标准语言词典对所述词使用信息进行加权。
4.如权利要求1所述的方法,其中识别所述社交网络的所述成员的所述词使用信息包括识别在所述社交网络中与所述用户存在联系的成员并且对所识别的成员所生成的文档中的词使用进行分析。
5.如权利要求1所述的方法,其中识别所述社交网络的所述成员的所述词使用信息包括向社交网络系统传送对词典数据的请求。
6.如权利要求1所述的方法,其中识别所述社交网络的所述成员的所述词使用信息包括对所述社交网络的所述成员所使用的词施加权重信息。
7.如权利要求6所述的方法,其中权重随着在社交网络中与所述用户的距离的增加而减小。
8.如权利要求1所述的方法,其中为所述用户生成所述词典包括提供已有词典的更新
9.如权利要求1所述的方法,进一步包括从所述用户接收不明确的文本输入,并且使用所述词典提供与所述不明确的文本输入相匹配的建议词语的排名列表。
10.如权利要求9所述的方法,其中所述文本输入不明确的原因是所述文本输入是在每一个与多个字符相关联的按键上输入的。
11.如权利要求9所述的方法,其中所述文本输入不明确的原因是所述用户还没有完成词语的输入。
12.如权利要求1所述的方法,进一步包括定期识别所述社交网络的所述成员的所述词使用信息并且生成所述词典的更新信息。
13.一种具有记录和存储于其上的指令的可记录存储介质,所述指令在被执行时执行包括以下的动作接收为与用户相关联的计算设备提供词典的请求;识别所述用户的社交网络的成员的词使用信息;以及利用所述社交网络的所述成员的所述词使用信息为所述用户生成词典。
14.如权利要求13所述的可记录存储介质,其中识别所述社交网络的所述成员的所述词使用信息包括识别在所述社交网络中与所述用户存在联系的成员并且对所识别的成员所生成的文档中的词使用进行分析。
15.如权利要求13所述的可记录存储介质,其中识别所述社交网络的所述成员的词使用信息包括对所述社交网络的所述成员所使用的词施加权重信息,其中利用所述权重信息生成的权重随着在所述社交网络中与所述用户的距离的增加而减小。
16.如权利要求13所述的可记录存储介质,其中所述介质进一步存储指令,当被执行时,所述指令进一步执行使用所述词典提供与从所述用户接收的不明确的文本输入相匹配的建议词语的排名列表的动作。
17.如权利要求13所述的可记录存储介质,进一步包括向客户端设备发送所述词典以便进行存储。
18.一种计算机实现的文本消歧系统,包括社交网络接口,用于产生反映与用户相关联的社交网络的成员的词使用的数据;词典构建器,被编程为使用所述反映所述社交网络的成员的词使用的数据来产生词典数据,所述词典数据被格式化以便在对所述用户所输入的文本进行消歧时使用;和预测模块,被编程为使用所述词典数据对所述用户所输入的文本进行消歧。
19.如权利要求18所述的系统,其中所述反映所述社交网络的成员的词使用的数据与成员和所述用户在所述社交网络中的距离成反比地对所述成员的使用进行加权。
20.一种计算机实现的系统,包括社交网络接口,用来使用用户的标识符产生反映所述用户的社交网络成员的词使用的数据;存储主词典数据的存储器,所述主词典数据反映不特定于所述用户的一般词使用;和用于将所述用户使用数据处理为词典数据以便与所述主词典一起用来对所述用户输入的文本进行消歧的装置。
21.如权利要求20所述的系统,进一步包括用于对所述用户在计算设备上所输入的键击进行消歧的装置。
全文摘要
除其它之外,本说明书的主题可以被实现为一种计算机实现的方法,该方法包括接收为与用户相关联的计算设备的提供词典的请求;识别所述用户的社交网络的成员的词使用信息;并且利用所述社交网络的所述成员的词使用信息为所述用户生成词典。
文档编号G06F15/16GK102301358SQ200980149951
公开日2011年12月28日 申请日期2009年10月16日 优先权日2008年10月17日
发明者大卫·P·康韦, 安德鲁·E·鲁宾 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1