首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】使用名字聚类的搜索引擎_微软技术许可有限责任公司_201780064868.X 

申请/专利权人:微软技术许可有限责任公司

申请日:2017-09-28

公开(公告)日:2023-10-31

公开(公告)号:CN110178131B

主分类号:G06F40/253

分类号:G06F40/253

优先权:["20161020 US 15/299,100"]

专利状态码:有效-授权

法律状态:2023.10.31#授权;2019.09.20#实质审查的生效;2019.08.27#公开

摘要:本公开涉及用于使用名字聚类搜索名字的系统和方法。一种方法包括接收名字,生成多个语音聚类标识符,通过将具有等同聚类id的名字分组来形成多个名字聚类,从相应的名字聚类中移除与根名字相差超过语音读音的具体拼写或者超过根据重构字典的特定成员的重构的名字,以及通过使用语音关联的数据库生成所接收的名字的语音聚类id并且返回在与所述语音聚类id相匹配的名字聚类中找到的名字来建议一个或多个名字。

主权项:1.一种用于使用名字聚类来搜索名字的系统,包括:具有存储在其上的指令的机器可读介质,所述指令当由处理器执行时,使得所述处理器执行以下操作,包括:接收多个名字;使用语音关联的数据库并且在不包括元音读音的情况下根据所述名字的语音拼写来生成多个语音聚类标识符;通过将具有等同聚类id的名字分组到多个名字聚类中的对应的名字聚类中来形成所述多个名字聚类;从相应的名字聚类中移除与根名字相差超过语音读音的具体拼写或者超过根据重构字典的特定成员的重构的名字;以及响应于接收到来自在线社交网络系统的成员的名字,通过生成所接收的名字的语音聚类id并且返回在与所述语音聚类id相匹配的名字聚类中找到的名字,来建议一个或多个名字。

全文数据:使用名字聚类的搜索引擎相关申请的交叉引用该国际申请要求于2016年10月20日提交的序列号为15299100的美国专利申请的优先权利益,所述申请的全部内容通过引用以其整体并入在本文中。技术领域本文所公开的主题一般地涉及更正输入名字,更加特别地,涉及使用名字聚类的针对名字的搜索引擎。背景技术世界各地的人们拥有以不同语言的宽泛的多种名字,它们常常以唯一的方式被拼写。听到以某种语言的名字可能由于对该名字起源的语言不熟悉而无法给出拼写该名字的足够的洞察力。在一个场景中,一个人听到另一个人的名字例如,在口头介绍期间并且想要搜索该人,但是不知道如何拼写该人的名字。附图说明作为示例而非限制在附图的图中图示了一些实施例。图1是图示了示例实施例中的在线社交网络服务的各种组件或功能模块的框图。图2是图示了根据一个示例实施例的、用于使用名字聚类来搜索名字的系统的框图。图3是图示了根据一个示例实施例的、用于使用名字聚类来搜索名字的另一系统的框图。图4是图示了根据一个示例实施例的语音聚类标识符id的表格。图5是描绘了名字聚类的一个示例实施例的图示。图6是描绘了名字聚类的另一示例实施例的图示。图7是图示了根据一个示例实施例的、使用名字聚类来搜索名字的一种方法的流程图。图8是图示了根据一个示例实施例的、使用名字聚类来搜索名字的一种方法的流程图。图9是图示了根据一些示例实施例的机器的组件的框图,所述机器能够从机器可读介质例如,机器可读存储介质中读取指令并且执行在本文中所讨论的方法中的任何一个或多个。具体实施方式以下的描述包括实施发明性主题的系统、方法、技术、指令序列、和计算机器程序产品。在以下的描述中,出于解释的目的而阐述了很多具体细节以便提供对发明性主题的各种实施例的理解。然而,对于本领域技术人员而言显而易见的是,发明性主题的实施例可以在没有这些具体细节的情况下被实践。一般而言,公知的指令实例、协议、结构、和技术不一定被详细示出。在实施例中,社交网络和或商业网络系统包括搜索引擎,所述搜索引擎包括名字聚类功能。这样的名字聚类功能首先包含粗略聚类,其也被称作1级聚类。1级聚类为人群中的每个名字例如,社交网络系统中的每个成员创建粗略聚类id。其之所以被称为粗略聚类id是因为该聚类id过于粗糙。也就是说,存在过多的假阳性。该粗略聚类是基于对人群中的成员的名字的标准化的。在一个示例实施例中,1级聚类将“Jeff”和“Joff”包括在相同名字聚类中,因为当元音被移除时,所得到的语音标识符是相同的。然而,听到“Jeff”的人通常将不会认为这个名字是“Joff”。因此,将需要从名字聚类中移除这样的差异。在本文中包括了如何这样做的许多示例。在其他示例中,不应当在同一名字聚类中但将有可能在1级中被包括在同一名字聚类中的名字是Python和Peyton、Nihat和Nihit、Shutter和Suiter、Shutter和Sauter、Foreman和Freeman、Joann和Jan、Jacek和Jack。之所以是这种情况是因为听到“Shutter”的人通常不会认为所听到的名字是“Sauter”,因为元音听上去是足够不同的。在一个示例实施例中,1级标准化包括从成员名字中移除元音和重复的字符辅音。该系统取得在粗略聚类功能中所生成的每个聚类,并且将每个聚类分解成为最终的名字聚类。所述名字聚类是通过将聚类中的所有名字互相比较并且确定聚类中的名字之间的相似度来生成的。当这些比较是阳性的即,所述比较指示聚类中的一个名字与该聚类中的所有其他名字都相似时,所述名字通过执行传递闭包transitiveclosure而在最终的名字聚类中被保存在一起。在另一示例实施例中,1级标准化包括将辅音读音缩减为默认语音表示。例如,名字中所有的“ph”读音都被缩减为“f”,或者所有的“c”读音都根据名字而被缩减为“s”例如,Cecil或“k”例如,Carl。以该方式,每个名字是使用标准语音表示来表示的。在一个示例实施例中,接着根据一组规则对名字聚类进行过滤。例如,第一规则是如果一个名字和某个聚类的根名字之间的差异限于单个语音读音,则将该名字保留在该聚类中。在一个示例中,一个聚类的根节点是“JFF”并且该聚类中的一个节点名字是“GFF”例如,针对名字“Geff”。在该示例中,由于“GFF”与“JFF”仅相差一个语音读音“G”vs.“J”,因此“GFF”被保留在该聚类中。在另一示例实施例中,针对聚类的过滤规则包括如果某个聚类的根名字和该聚类中的一个名字之间的差异是根据重构字典的特定成员的重构,则将该名字保留在该聚类中。在对所形成的名字聚类应用了一组规则之后,所得到的聚类展现出响应于接收到来自在线社交网络服务的用户的名字来推荐名字拼写的提高的性能。图1是图示了示例实施例中的在线社交网络服务100的各种组件或功能模块的框图。在一个示例中,在线社交网络服务100包括搜索引擎系统150,其执行在本文中所描述的操作中的许多操作。前端层101由一个或多个用户接口模块例如,web服务器102组成,所述用户接口模块从各种客户端计算设备接收请求并且将合适的响应传送至进行请求的客户端设备。例如,多个用户接口模块102可以接收采用超文本传输协议HTTP请求形式的请求或者其他基于web的应用编程接口API请求。在另一示例中,前端层101从经由成员的移动计算设备执行的应用接收请求。应用逻辑层103包括各种应用服务器模块104,所述应用服务器模块104可以结合所述多个用户接口模块102、利用从数据层105中的各种数据源获取的数据来生成各种用户接口例如,网页、应用等。在一个示例实施例中,应用逻辑层103包括搜索引擎系统105,该搜索引擎系统105被配置为执行在本文中所描述的聚类构建和名字推荐操作。在一些示例中,个体应用服务器模块104可以用于实现与在线社交网络服务100的各种服务和特征相关联的功能。例如,组织在在线社交网络服务100的社交图中建立存在感presence的能力可以是在独立的应用服务器模块104中实现的服务,所述能力包括代表组织建立定制的网页以及代表组织发布消息或状态更新的能力。类似地,可供在线社交网络服务100的成员使用的多种其他应用或服务可以在其自己的应用服务器模块104中被实施。可替代地,各种应用可以在单个应用服务器模块104中被实施。如图所示,数据层105包括但不一定限于几个数据库110、112、114,例如用于存储简档数据的数据库110,所述简档数据包括成员简档数据以及针对各种组织的简档数据两者、名字聚类数据、成员交互、成员查询,等等。在某些示例中,数据库112包括名字聚类数据,其包括如将进一步描述的以语音拼写的名字的特定聚类。在另一示例实施例中,数据库114存储用于生成名字聚类、语音关联、成员名字重构等的成员活动和行为数据。与一些示例一致,当一个人最初注册成为在线社交网络服务100的成员时,这个人可以被提示以提供一些个人信息,例如他或她的名字、年龄例如,出生日期、性别、性取向、兴趣、爱好、联系信息、家乡、地址、配偶和或家庭成员的名字、教育背景例如,学校、专业、入学和或毕业日期等、职业、工作履历、技能、宗教、专业组织,以及该成员的其他属性和或特性。该信息例如被存储在数据库110中。类似地,当组织的代表最初向在线社交网络服务100注册该组织时,该代表可以被提示提供有关该组织的某些信息。该信息可以例如被存储在数据库110或另一数据库未示出中。在线社交网络服务100可以提供允许成员有机会共享和接收信息的宽泛的其他应用和服务,这常常是针对成员的兴趣而定制的。例如,在一些示例中,在线社交网络服务100可以包括允许成员上传消息并且与其他成员共享消息的消息共享应用。在一些示例中,成员能够自行组织到围绕主题或感兴趣的话题所组织的群组或兴趣群组中。在一些示例中,在线社交网络服务100可以托管各种职位列表,其提供各种组织内的职位空缺的细节。当成员与能够经由在线社交网络服务100可用的各种应用、服务、和内容进行交互时,关于与之交互例如,通过查看、播放等的内容项的信息可以被监视,并且关于所述交互的信息可以例如由数据库114在图1中所指示的那样被存储。在一个示例实施例中,所述交互可以是响应于接收到请求所述交互的消息的。在某些示例实施例中,成员交互包括成员通过键入其他成员的名字来针对其他成员进行搜索。在成员更正名字直到他们找到他们所寻找的所述其他成员时,搜索引擎系统150存储他们的重构。在一个示例中,成员最初搜索“Shree”,但是接着将他们的搜索改变为“Shri”。作为响应,搜索引擎系统150将“ee”与“i”之间的语音关联存储在数据库114中。尽管没有示出,但在一些示例中,在线社交网络服务100提供了API模块,其中,第三方应用能够经由该API模块来访问由在线社交网络服务100所提供的各种服务和数据。例如,使用API,第三方应用可以提供使得成员能够提交和或配置由搜索引擎系统150所使用的一组规则的用户接口和逻辑单元。这样的第三方应用可以是基于浏览器的应用或者可以是特定于操作系统的。特别地,一些第三方应用可以在具有移动操作系统的一个或多个移动设备例如,电话或平板计算设备上驻留和执行。通过将具有等同聚类id的名字进行分组并且最终得到其中聚类中的每个名字与该聚类中的每个其他名字相似的聚类,可以利用通用处理引擎来实现用于基于在线社交网络服务100中的名字来生成聚类标识符的能力。所述通用处理引擎可以实时地执行,或者作为后台操作来执行,例如离线地或者作为批处理的部分来执行。在包含待处理的相对大量的数据的一些示例中,通用处理引擎可以经由并行的或分布式计算平台来执行。在一个示例实施例中,多个名字被接收到社交和或商业网络系统中。对名字的这种接收可以与对社交网络服务的用户或成员进行注册相关联。搜索引擎系统从多个名字中的每个名字移除一个或多个元音。搜索引擎系统150还可以如在本文中所描述的那样根据标准语音表示来缩减每个名字。将元音从名字中移除生成的内容可被称为聚类标识符。例如,名字David、Davida、Davita、Davey、Dave和Davis分别生成了聚类标识符dvd、dvd、dvt、dvy、dv和dvs。在实施例中,在生成多个聚类标识符之前识别双辅音并且从名字中移除其中一个辅音。例如,在名字“Matthew”的情况下,将形成的聚类id是mthw即,移除了双“t”中的一个。如先前所描述的,在一个示例实施例中,搜索引擎系统150在形成多个聚类标识符时将两个不同的字母视为等同的。例如,字母“c”和“k”可以被视为等同,这使得名字Cathy和Kathy的聚类标识符——即cth和kth——被放到同一聚类中。接着,如下文解释的,在社交网络系统中针对Cathy的用户搜索也将自动地定位具有名字Kathy的成员。通过将具有等同聚类id的名字分组在一起来形成多个第一聚类。在实施例中,该系统被配置为将具有相同聚类id的名字分组在一起。使用同一示例,相同聚类id可以是“dvd”,并且被缩减为聚类id“dvd”的所有名字将被放在同一聚类中至少在最初并且在最终聚类形成之前。该搜索引擎系统根据将进一步描述的多个规则对相应的聚类进行过滤。由此,搜索引擎系统150在名字拼写推荐中展现出有所提高的准确性。使用先前方法的系统将会推荐“Joff”代替“Jeff”、“Python”代替“Peyton”、“Nihat”代替“Nihit”、“Shutter”代替“Suiter”,以及由于字符差异低于阈值数而得出的其他不适当的名字推荐。此外,搜索引擎系统150可以推荐“Jessika”代替“Jessica”,推荐“Eric”替代“Erik”,以及推荐“Catherine”替代“Katherine”。因此,该搜索引擎系统提供了先前系统中没有展示出的益处和优势。在一个示例实施例中,一个成员在社交事件中与另一个成员物理地会面并且记住了那个人的名字是“Chris”或“Kris”,但是由于该成员仅是听到该名字因此不确定其如何拼写。在该示例实施例中,响应于被搜索的成员具有名字“Kris”而该成员针对“Chris”进行搜索,搜索引擎系统150响应于在名字聚类中没有找到名字“Chris”而正确地推荐了“Kris”。这在被搜索的成员的名字包括唯一拼写或非典型发音例如,“Shaniqua”、“Mo’Nique”等的情况下是特别令人感兴趣的。图2是图示了根据一个示例实施例的、用于使用名字聚类来搜索名字的系统200的框图。在该示例实施例中,搜索引擎系统150包括聚类建立器模块220和聚类过滤器模块240。搜索引擎系统150还可以连接至名字聚类数据库290、语音关联数据库292、或成员名字重构数据库294。在某些示例实施例中,名字聚类被存储在名字聚类数据库290中,语音关联的字典被存储在语音关联数据库292中,并且成员重构字典被存储在成员名字重构294中。数据库290、292、294中的任何一个或多个可以是远程电子数据库,其提供用于获取和存储数据记录的基于网络的数字接口。在一个示例实施例中,聚类建立器模块220被配置为接收多个名字。在一个示例中,所述名字是从例如但不限于在线企业目录、社交网络、或者在线社交网络服务的名字的服务器获取的,或者是使用电子网络接口从远程数据库获取的。在另一示例实施例中,聚类建立器模块220使用语音关联的数据库并且在不包括元音读音的情况下根据名字的语音拼写来生成多个语音标识符。特别地,为了生成语音标识符,聚类建立器模块220利用语音等同形式来替换特定名字中的一个或多个所识别字母或字母群组。例如,聚类建立器模块220可以将所有的“ph”拼写缩减为“f”读音,将所有的“ee”拼写缩减为“i”拼写,将所有的“c”和“ck”拼写缩减为“k”拼写,等等。接着,聚类建立器模块220通过将具有等同聚类标识符的名字进行分组来形成多个名字聚类,如先前所描述的那样。接着,聚类建立器模块220根据一个或多个过滤规则从相应的名字聚类中移除名字。在一个示例中,过滤规则包括移除与根名字相差超过语音读音的具体拼写的名字。通常而言,“根名字”是首个被添加至名字聚类的名字或者与名字聚类的根节点相关联的名字。在一个示例中,“Jeff”和“Joff”在同一名字聚类中,因为它们具有等同的id“JF”元音和双字母被移除。然而,因为不存在导致accountfor“e”和“o”的任何语音读音,所以“Jeff”与“Joff”相差超过了语音读音的具体拼写并且一个或另一个被移动至其自己的名字聚类。在一个示例中,“Jeff”是聚类的根名字,并且“Joff”从“Jeff”名字聚类中被移除。在另一示例中,过滤规则包括移除与根名字相差超过特定成员的重构的名字。在一个示例中,名字聚类的根名字可以是“Joann”,并且相同名字聚类中的另一个名字是“Jan”,这是因为“Joann”和“Jan”具有等同的标识符,在该情况下是“JN”。在该示例中,聚类过滤模块240将“Jan”从“Joann”聚类移除,这是因为不存在将“Joann”和“Jan”相关联的成员重构输入。在一个示例中,在线社交网络服务中没有成员已经输入过“Jan”,并且接着在该同一会话中针对“Joann”进行后续搜索。在另一示例实施例中,聚类过滤模块240根据一个或多个规则移除重构字典中的成员构建formulation。在一个示例实施例中,成员重构过滤规则包括在阈值百分比的时间以上进行的重构。在一个示例中,成员在超过80%的时间将“Mik”更正为“Mike”。在该示例中,由于重构百分比高于70%,所以聚类过滤模块240从成员重构字典中移除该重构“Mik”到“Mike”。因为成员重构的较高百分比例如,超过70%通常指示代表所述成员的拼写错误,所以那些重构不被包括在名字聚类中。当然,可以使用其他阈值并且该公开在这方面没有限制。在一个示例实施例中,成员重构过滤规则包括在阈值百分比的时间以下进行的重构。在一个示例中,成员重构包括在少于10%的时间将“John”改为“Jonh”。由于该重构很少发生例如,少于15%的时间,所以该重构不太可能表示实际的成员例如,重构“Jonh”不太可能是真实的名字。当然,可以使用其他阈值并且该公开在这方面没有限制。在另一示例实施例中,聚类过滤模块240移除比阈值数量的字符更长并且与关联聚类的根名字相距相对字符编辑距离的名字。在一个示例中,字符的阈值数量是7,并且相对字符编辑距离是名字中的字符数量的20%。在一个示例中,将具有7个字符并且字符编辑距离为2或更多的名字从聚类中移除。在另一示例中,将具有20个字符并且字符编辑距离为5或更多的名字从聚类中移除。当然,可以使用字符的其他阈值数量以及其他相对编辑距离并且该公开在这方面没有限制。在一个示例实施例中,名字聚类根据所述名字聚类中的名字的源语言而被划分。例如,搜索引擎系统可以获取成员针对名字进行搜索的语言并且对将搜索限制于基于该语言的名字聚类。在一个示例中,来自基础英语语言的“Hans”与来自基础德语语言的“Hans”的发音不同。由此,聚类建立器模块生成“Hans”英语聚类和“Hans”德语聚类。在另一示例实施例中,聚类建立器模块220生成包括名字中的多个项的聚类。在一个示例中,名字是“DeGraff”。在该示例中,聚类建立器模块220将“DeGraff”存储在“De”的名字聚类中并且将“Graff”包括在“De”名字聚类中的“De”的子节点中。图6中描绘了某些这样的示例。图3是图示了根据一个示例实施例的、用于使用名字聚类来搜索名字的另一系统300的框图。在该示例实施例中,搜索引擎系统150包括聚类建立器模块220、聚类过滤器模块240、和名字推荐模块360。聚类建立器模块220和聚类过滤器模块240可以大体上类似于或可以大体上不类似于在图2中所描绘的那些模块。在一个示例实施例中,名字推荐模块360被配置为通过生成所接收的名字的语音聚类标识符并且返回在与该语音聚类标识符相匹配的名字聚类中找到的名字来建议一个或多个名字。在一个示例中,名字推荐模块360接收到“Catherine”并且推荐了“Katherine”,这是因为在该聚类中找到了“Katherine”而没有找到“Catherine”,尽管“Catherine”是一个已知的名字。图4是图示了根据示例实施例的语音聚类标识符的表格400。例如,名字David、Davida、Davita、Davey、Dave和Davis分别生成了聚类标识符dvd、dvd、dvt、dvy、dv和dvs。在实施例中,在生成多个聚类标识符之前,双辅音被识别并且其中一个辅音从名字中被移除。图5是描绘了名字聚类的一个示例实施例的图示500。在该示例实施例中,该名字聚类存储具有聚类id“MRS”的名字。在该示例中,“MRS”被存储为根节点510并且名字在该名字聚类中被存储为该根节点的子节点512、516。此外,附加项被存储为附加子节点。在一个示例中,一个名字包括“MarissaJones”,并且因为“Marissa”与语音id“MRS”相匹配,所以“Marissa”被存储在链接至根节点510的子节点512的名字聚类中,并且“Jones”被存储在“Marissa”节点512的子节点514中。而且,两个其他名字“MarisaJackson”和“MarisaLewis”可以通过将“Marisa”存储在与“Marissa”不同的节点516中而被存储在同一聚类中,并且另外两个姓氏“Jackson”和“Lewis”作为子节点518、520被存储至“Marisa”节点516。图6是描绘了名字聚类的另一示例实施例的图示600。在该示例实施例中,该名字聚类是针对具有聚类id“JF”的名字的。聚类建立器模块220将“JeffJones”节点612和614、“Geff”节点616和“JoffSmith”节点624和626存储在该名字聚类中,这是因为这些名字中的每个名字都具有相同的聚类id“JF”。如先前所描述的,名字中的附加项例如,姓氏被存储为子节点614、626,但是不一定如此。在一个示例实施例中,聚类过滤器模块240将“Joff”节点624从该名字聚类中移除,这是因为不存在导致“e”和“o”的语音读音,并且“Jeff”和“Joff”相差超过了语音读音的具体拼写。在一个示例实施例中,“Joff”节点624被移动至其自己的名字聚类,以使得搜索“Jeff”的成员不会接收到“Joff”作为推荐,并且搜索“Joff”的成员不会接收到“Jeff”作为推荐。在一个示例实施例中,并且如在图6中所描绘的,该名字聚类包括根名字610,其具有根据如本领域技术人员可以理解的树结构相链接的其他名字。图7是图示了根据一个示例实施例的、使用名字聚类来搜索名字的一种方法700的流程图。该方法中的操作可以由在图2-3中所描述的模块来执行并且参考它们进行描述。在一个示例实施例中,方法700开始,并且在操作710处,聚类建立器模块220接收多个名字。在一个示例中,该聚类建立器模块使用API以电子方式从远程数据库获取名字。方法700在操作712处继续,并且聚类建立器模块220使用语音关联的数据库并且在不包括元音读音的情况下根据名字的语音拼写来生成多个语音聚类标识符。方法700在操作714处继续,并且聚类建立器模块220通过将具有等同聚类id的名字进行分组来形成多个名字聚类。在图5-6中描绘了名字聚类的示例。方法700在操作716处继续,并且聚类过滤器模块240从相应的名字聚类中移除与根名字相差超过语音读音的具体拼写或者超过根据重构字典的特定成员的重构的名字。在一个示例实施例中,聚类过滤器模块240对名字聚类中仅相差语音读音的具体拼写或者特定成员的重构的节点进行标记,并且移除名字聚类中的其他节点。方法700在操作718处继续,并且名字推荐模块360接收来自在线社交网络服务的成员的名字,以及通过生成针对所接收的名字的语音聚类id并且返回在与该语音聚类id相匹配的名字聚类中找到的名字而建议一个或多个名字。图8是图示了根据一个示例实施例的、使用名字聚类来搜索名字的一种方法800的流程图。该方法中的操作可以由在图2-3中所描述的模块来执行并且参考它们进行描述。在一个示例实施例中,方法800开始,并且在操作808处,聚类建立器模块220通过跟踪并存储成员查询重构来生成成员重构字典。在一个示例中,当成员针对“Sreet”进行搜索并且随后针对“Srit”进行搜索时,聚类建立器模块220将“Sreet”到“Srit”的重构存储在重构字典中。类似地,在操作808处,聚类建立器模块220使用成员对在线社交网络服务100的输入来构建语音关联的数据库。在一个示例中,成员频繁地在其查询中用“i”替换“ee”例如,“Street”到“Strit”或者“Roheet”到“Rohit”等,或者在其查询中用“f”替换“ph”。响应于阈值数量的用户修改其查询,聚类建立器模块220将这样的改变存储为语音关联。方法800继续,并且在操作810处,聚类建立器模块220通过读取来自从电子存储介质获取的电子输入文件的名字来获取多个名字。当然,该文件可以以任何方式来格式化并且该公开在文件格式方面没有限制。方法800继续,并且在操作812处,聚类建立器模块220使用语音关联的数据库并且在不包括元音读音的情况下根据名字的语音拼写来生成多个语音聚类标识符。方法800在操作814处继续,并且聚类建立器模块220通过将具有等同聚类id的名字进行分组来形成多个名字聚类。在图5-6中描绘了名字聚类的示例。方法800在操作816继续,并且聚类过滤器模块240从相应的名字聚类中移除一些名字。在一个示例中,聚类过滤器模块240移除与根名字相差超过语音读音的具体拼写或者超过根据重构字典的特定成员的重构的名字。在一个示例实施例中,聚类过滤器模块240对名字聚类中仅相差语音读音的具体拼写或者特定成员的重构的节点进行标记,并且移除名字聚类中的其他节点。在另一示例实施例中,聚类过滤器模块移除超过阈值数量的字符并且与名字聚类中的根名字相差多于阈值字符比率的名字。方法800在操作820处继续,并且名字推荐模块360接收来自在线社交网络服务的成员的名字。方法800继续并且在操作820处,名字推荐模块360基于所接收名字的语音id来查找相关联的名字聚类。方法800在操作824继续,并且名字推荐模块360返回在与该语音聚类id相匹配的名字聚类中找到的名字。模块、组件和逻辑单元某些实施例在本文中被描述为包括逻辑单元或者多个组件、模块、或机制。模块可以构成软件模块例如,在机器可读介质上实施的代码或者硬件模块。“硬件模块”是能够执行某些操作并且可以以某一物理方式被配置或布置的有形单元。在各种示例实施例中,一个或多个计算机系统例如,独立的计算机系统、客户端计算机系统、或者服务器计算机系统或者计算机系统的一个或多个硬件模块例如,处理器或处理器群组可以由软件例如,应用或应用部分配置为进行操作以执行如在本文中所描述的某些操作的硬件模块。在一些实施例中,硬件模块可以以机械方式、以电子方式或者其任何合适的组合来实现。例如,硬件模块可以包括永久被配置为执行某些操作的专用电路或逻辑单元。例如,硬件模块可以是专用处理器,例如现场可编程门阵列FPGA或者专用集成电路ASIC。硬件模块还可以包括由软件临时被配置为执行某些操作的可编程逻辑单元或电路。例如,硬件模块可以包括由通用处理器或其他可编程处理器执行的软件。一旦被这样的软件配置,硬件模块就变成被唯一地定制为执行所配置的功能的专用机器或者机器的专用组件而不再是通用处理器。将要意识到的是,以机械方式、在专用且永久配置的电路中、或者在临时配置的电路例如,由软件配置中实现硬件模块的决定可以是由成本和时间考虑驱动的。由此,短语“硬件模块”应当被理解为包含有形的实体,这是以物理方式被构建、被永久配置例如,硬线连接、或者被临时配置例如,被编程为以某种方式进行操作或者执行在本文中所描述的某些操作的实体。如在本文中所使用的,“硬件实现的模块”是指硬件模块。考虑其中硬件模块被临时地配置例如,被编程的实施例,所述硬件模块中的每个硬件模块不需要在任何一个时间实例处被配置或实例化。例如,在硬件模块包括通过软件配置而变为专用处理器的通用处理器的情况下,所述通用处理器可以在不同时间被配置为分别不同的专用处理器例如,包括不同的硬件模块。软件相应地配置具体的一个或多个处理器以例如在一个时间实例处构成具体的硬件模块并且在不同的时间实例处构成不同的硬件模块。硬件模块可以向其他硬件模块提供信息并且从其他硬件模块接收信息。由此,所描述的硬件模块可以被视为是可通信地耦合的。在多个硬件模块同时存在的情况下,通信可以通过所述硬件模块中的两个或更多个硬件模块之间的信号传输例如,通过适当电路和总线来实现。在其中多个硬件模块在不同时间被配置或实例化的实施例中,可以例如通过对多个硬件模块能够访问的存储器结构中的信息的存储和获取来实现这样的硬件模块之间的通信。例如,一个硬件模块可以执行操作并且将该操作的输出存储在该硬件模块与之可通信地耦合的存储器设备中。接着,另外的硬件模块可以在之后的时间访问该存储器设备以获取并处理所存储的输出。硬件模块还可以发起与输入或输出设备的通信,并且能够对资源例如,信息的集合进行操作。在本文中所描述的示例方法的各种操作可以至少部分由一个或多个处理器来执行,所述一个或多个处理器被临时地配置例如,由软件或者永久地配置为执行相关操作。无论是被临时还是被永久配置,这样的处理器都可以构成操作以执行在本文中所描述的一个或多个操作或功能的处理器实现的模块。如在本文中所使用的,“处理器实现的模块”是指使用一个或多个处理器来实现的硬件模块。类似地,在本文中所描述的方法可以至少部分是处理器实现的,其中,具体的一个或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或多个处理器或者处理器实现的模块来执行。此外,一个或多个处理器还可以操作以支持相关操作在“云计算”环境中或者作为“软件即服务”SaaS的执行。例如,所述操作中的至少一些操作可以由计算机作为包括处理器的机器的示例的群组来执行,其中,这些操作能够经由网络例如,互联网以及经由一个或多个合适接口例如,API而被访问。对某些操作的执行可以在处理器之间分布,不仅是驻留在单个机器内,而是跨多个机器被部署。在一些示例实施例中,处理器或处理器实施的模块可以位于单个地理位置中例如,在家庭环境、办公室环境、或服务器农场内。在其他示例实施例中,所述处理器或处理器实现的模块可以跨多个地理位置分布。机器和软件架构结合图1-8所描述的模块、方法、应用等在一些实施例中在机器和相关联的软件架构的上下文中被实现。以下部分描述了适合于随所公开的实施例使用的代表性架构。软件架构与硬件架构相结合地被使用以创建针对具体目的定制的设备和机器。例如,与具体软件架构相耦合的具体硬件架构将创建出诸如移动电话、平板设备等的移动设备。稍有不同的硬件和软件架构可以产生用于在“物联网”中使用的智能设备,而另一组合则产生出用于在云计算架构内使用的服务器计算机。不是这样的软件和硬件架构的所有组合都在这里被呈现,这是由于本领域技术人员能够容易地理解如何在不同于在本文中所包含的公开的上下文中实现该发明性主题。示例机器架构和机器可读介质图9是图示了根据一些示例实施例的机器的组件的框图,所述机器能够从机器可读介质例如,机器可读存储介质中读取指令并且执行在本文中所讨论的方法中的任何一个或多个。具体地,图9示出了采用计算机系统的示例形式的机器900的图解表示,其中,可以执行用于引起机器900执行在此所讨论的方法中的任何一个或多个的指令916例如,软件、程序、应用、小程序、app、或其他可执行代码。例如,指令916可以使得机器900执行图4-6的流程图。另外地或可替代地,指令916可以实现图2的组件中的一个或多个组件。指令916将通用的、非编程机器900转换为被编程为以所描述方式实行所描述和图示的功能的具体机器900。在可替代的实施例中,机器900充当独立的设备或者可以被耦合例如,联网至其他机器。在联网的部署中,机器900可以在服务器-客户端网络环境中的服务器机器或客户端机器的容量中操作或在点对点或分布式网络环境中作为对等机器来操作。机器900可以包括但不限于服务器计算机、客户端计算机、个人计算机PC、平板计算机、膝上型计算机、上网本、个人数字助理PDA、或者能够顺序地或以其他方式执行指令916的任何机器,所述指令指定要由机器900采取的动作。另外地,尽管仅图示了单个机器900,但是术语“机器”还应当被看作包括单独地或联合地执行指令916以实现在本文中所讨论的方法中的任何一个或多个的机器900的集合。机器900可以包括处理器910、存储器存储单元930、和IO组件950,它们可以被配置为诸如经由总线902彼此进行通信。在示例实施例中,处理器910例如中央处理单元CPU、精简指令集计算RISC处理器、复杂指令集计算CISC处理器、图形处理单元GPU、数字信号处理器DSP、专用集成电路ASIC、射频集成电路RFIC、另一处理器或它们的任何合适的组合可以包括例如可以执行指令916的处理器912和处理器914。术语“处理器”旨在包括多核处理器910,其可以包括可以同时执行指令的两个或更多个独立的处理器有时被称为“核”。尽管图9示出多个处理器,但机器900可以包括具有单个核的单个处理器、具有多个核的单个处理器例如,多核处理器、具有单个核的多个处理器、具有多个核的多个处理器、或其任何组合。存储器存储单元930可以包括诸如主存储器或其他存储器存储单元之类的存储器932,以及存储单元936,这两者都例如经由总线902对处理器910可访问。存储单元936和存储器932存储指令916,其实施在本文中所描述的方法或功能中的任何一个或多个。指令916还可以在机器900对其执行期间完全或部分地驻留在存储器932内、在存储单元936内、在处理器910中的至少一个内例如,在处理器的高速缓存存储器内、或者其任何合适的组合内。由此,存储器932、存储单元936、以及处理器910的存储器是机器可读介质的示例。如本文所使用的,“机器可读介质”意味着能够临时地或永久地存储指令和数据的设备,并且可以包括但不限于:随机存取存储器RAM、只读存储器ROM、缓冲器存储器、闪速存储器、光学介质、磁性介质、高速缓存存储器、其他类型的存储单元例如,可擦除可编程只读存储器EEPROM,和或其任何合适的组合。术语“机器可读介质”应当被看作包括能够存储指令916的单个介质或多个介质例如,集中式或分布式数据库或相关联的高速缓存和服务器。术语“机器可读介质”还应当被看作包括能够存储由机器例如,机器900执行的指令例如,指令916的任何介质或多个介质的组合,以使得指令在由机器900的一个或多个处理器例如,处理器910执行时引起机器900执行在本文中所描述的方法中的任何一种或多种。由此,“机器可读介质”是指单个存储装置或设备以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”排除了信号本身。IO组件950可以包括用以接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量等的宽泛的多种组件。被包括在具体机器900中的特定的IO组件950将取决于机器的类型。例如,诸如移动电话之类的便携式机器将有可能包括触摸输入设备或者其他这样的输入机制,但无外设服务器机器将不太可能包括这样的触摸输入设备。应当理解的是,IO组件950可以包括在图9中没有示出的很多其他组件。为了简化以下的讨论,仅根据功能将IO组件950分组,并且所述分组不进行限制。在各种示例实施例中,IO组件950可以包括输出组件952和输入组件954。输出组件952可以包括视觉组件例如,诸如等离子显示面板PDP之类的显示器、发光二极管LED显示器、液晶显示器LCD、投影仪、或阴极射线管CRT、声学组件例如,扬声器、触觉组件例如,振动电动机、电阻机制、其他信号生成器等。输入组件954可以包括字母数字输入组件例如,键盘、被配置为接收字母数字输入的触摸屏、光电键盘、或其他字母数字输入组件、基于点的输入组件例如,鼠标、触摸板、轨迹球、游戏操纵杆、运动传感器、或其他指点仪器、触觉输入组件例如,物理按钮、提供触摸或触摸手势的位置和或力量的触摸屏、或其他触觉输入组件、音频输入组件例如,麦克风等。在另外的示例实施例中,IO组件950可以包括生物计量组件956、运动组件958、环境组件960、或位置组件962,此外还有大量其他组件。例如,生物计量组件956可以包括用于检测表达例如,手表达、面部表达、语音表达、身体姿势、或眼睛跟踪、测量生物信号例如,血压、心率、身体温度、出汗、或脑波、识别人例如,语音识别、视网膜识别、脸部识别、指纹识别、或基于脑电图的识别等的组件。运动组件958可以包括加速度传感器组件例如,加速度计、重力传感器组件、旋转传感器组件例如,陀螺仪等。环境组件960可以包括例如照度传感器组件例如,光度计、温度传感器组件例如,检测环境温度的一个或多个温度计、湿度传感器组件、压力传感器组件例如,气压计、声学传感器组件例如,检测背景噪声的一个或多个麦克风、接近度传感器组件例如,检测附近对象的红外线传感器、气体传感器例如,为了安全性而检测危险气体浓度或用于测量大气中的污染物的气体检测传感器、或可以提供与周围物理环境对应的指示、测量、或信号的其他组件。位置组件962可以包括位置传感器组件例如,全球定位系统GPS接收器组件、高度传感器组件例如,高度计或检测从其可以导出高度的气压的气压计、方向传感器组件例如,磁强计等。可以使用宽泛的多种技术来实现通信。IO组件950可以包括可操作以分别经由耦合982和耦合972而将机器900耦合至网络980或设备970的通信组件964。例如,通信组件964可以包括用于与网络980接合的网络接口组件或另一合适的设备。在另外的示例中,通信组件964可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信NFC组件、组件例如,低能量、组件、以及用于经由其他模态来提供通信的其他通信组件。设备970可以是另一机器或者宽泛的多种外围设备例如,经由通用串行总线USB耦合的外围设备中的任何一个。此外,通信组件964可以检测标识符或者包括可用于检测标识符的组件。例如,通信组件964可以包括射频识别RFID标签阅读器组件、NFC智能标签检测组件、光学读取器组件例如,光学传感器,其用于检测诸如通用产品码UPC条形码之类的一维条形码,诸如快速响应QR码、Aztec码、数据矩阵、Dataglyph、MaxiCode、PDF417、超级码、UCC-RSS-2D条形码、以及其他光学码之类的多维条形码、或声学检测组件例如,用于识别被标记的音频信号的麦克风。另外,可以经由通信组件964来导出多种信息,例如经由互联网协议IP地理位置的位置、经由信号三角测量的位置、经由检测可以指示具体位置的NFC信标信号的位置等。传输介质在各种示例实施例中,网络980的一个或多个部分可以是自组织网络、内联网、外联网、虚拟私有网络VPN、局域网LAN、无线LANWLAN、广域网WAN、无线WANWWAN、城域网MAN、互联网、互联网的一部分、公共交换电话网络PSTN的一部分、普通老旧式电话服务POTS网络、蜂窝电话网络、无线网络、网络、另一类型的网络、或两个或更多这样的网络的组合。例如,网络980或网络980的一部分可以包括无线或蜂窝网络,而耦合982可以是码分多址CDMA连接、全球移动通信系统GSM连接、或另一类型的蜂窝或无线耦合。在该示例中,耦合982可以实现多种类型的数据传输技术中的任何一种,例如单载波无线电传输技术1xRTT、演进数据优化EVDO技术、通用分组无线电服务GPRS技术、用于GSM演进的增强型数据速率EDGE技术、包含3G的第三代合作伙伴项目3GPP、第四代无线4G网络、通用移动电信系统UMTS、高速分组接入HSPA、全球微波接入互操作WiMAX、长期演进LTE标准、由各种标准设置组织定义的其他技术、其他远距协议、或其他数据传输技术。可以经由网络接口设备例如,在通信组件964中包括的网络接口组件使用传输介质并利用多种公知传输协议例如,HTTP中的任何一个来在网络980上发送或接收指令916。类似地,可以经由至设备970的耦合972例如,对等耦合来使用传输介质发送或接收指令916。术语“传输介质”应该被认为包括能够存储、编码、或运送用于由机器900执行的指令916的任何非有形介质,且包括数字或模拟通信信号或促成这样的软件的传输的其他非有形介质。语言在该说明书通篇中,多个实例可以实现被描述为单个实例的组件、操作、或结构。尽管一种或多种方法的个体操作被图示和描述为分别的操作,但所述个体操作中的一个或多个可以同时被执行,而不要求所述操作以所图示的顺序被执行。在示例配置中被呈现为分别的组件的结构和功能可以被实现为组合的结构或组件。类似地,被呈现为单个组件的结构和功能可以被实现为分别的组件。这些和其他的变型、修改、增加、和改进落在本文的主题的范围之内。尽管已经参考特定的示例实施例对发明性主题的概述进行了描述,但是可以对这些实施例进行各种修改和改变而并不脱离本公开实施例的较宽的范围。仅仅为了方便起见,发明性主题的这样的实施例在本文可以单独或共同地被术语“发明”所指代,并且不旨在自动地将本申请的范围限于任何单一公开或发明概念,如果事实上公开了多于一种公开或发明概念的话。在本文中所图示的实施例被充分详细地描述以使得本领域技术人员能够实践所公开的教导。可以从中得出并使用其他实施例,以使得可以进行结构和逻辑的替代和改变而并不脱离本公开的范围。因此,具体实施方式并不以限制的意义被理解,并且各个实施例的范围仅由所附权利要求连同这样的权利要求所赋予的等同形式的完整范围所限定。如在本文中所使用的,术语“或”可以以包含或排他的意义来理解。此外,多个实例可以针对在本文中所描述的资源、操作、或结构作为单个实例来提供。另外地,各种资源、操作、模块、引擎、和数据存储之间的边界是有些任意的,并且具体的操作在特定的说明性配置的上下文中被说明。其他功能分配被预见到并且可以落在本公开各种实施例的范围之内。一般而言,在示例配置中作为分别的资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源被呈现的结构和功能可以被实现为分别的资源。这些以及其他的变型、修改、添加、和改进落在如所附权利要求所表示的本公开的实施例的范围之内。由此,说明书和附图要以说明性而非限制性意义来看待。

权利要求:1.一种系统,包括:具有存储在其上的指令的机器可读介质,所述指令当由处理器执行时,使得所述处理器执行以下操作,包括:接收多个名字;使用语音关联的数据库并且在不包括元音读音的情况下根据所述名字的语音拼写来生成多个语音聚类标识符;通过将具有等同聚类id的名字分组到多个名字聚类中的对应的名字聚类中来形成所述多个名字聚类;从相应的名字聚类中移除与根名字相差超过语音读音的具体拼写或者超过根据重构字典的特定成员的重构的名字;以及响应于接收到来自在线社交网络系统的成员的名字,通过生成所接收的名字的语音聚类id并且返回在与所述语音聚类id相匹配的名字聚类中找到的名字,来建议一个或多个名字。2.根据权利要求1所述的系统,其中,所述操作还包括使用来自所述在线社交网络服务的成员的名字拼写重构来生成所述重构字典和所述语音关联的数据库。3.根据权利要求2所述的系统,其中,所述操作还包括响应于从高于第一阈值百分比或低于第二阈值百分比的重构所确定的条目而移除所述语音关联的数据库中的所述条目。4.根据权利要求1所述的系统,其中,所述名字聚类是根据所述名字聚类中的所述名字的源语言被划分的。5.根据权利要求1所述的系统,其中,所述名字包括多个项,第一项根据所述语音聚类id而与所述名字聚类相匹配,并且附加项被存储在链接至所述第一项的附加节点中。6.根据权利要求1所述的系统,其中,指示在每个名字聚类中保留一个或多个名字还基于所述名字大于阈值数量的字符长度以及所述名字与所述相应的名字聚类的根名字之间的字符差异小于所述阈值数量的字符的阈值百分比。7.根据权利要求1所述的系统,其中,所述名字聚类被构造为包括根名字,其中,所述相应的名字聚类中的其他名字从所述根名字以树形结构链接。8.一种方法,包括:接收多个名字;使用语音关联的数据库并且在不包括元音读音的情况下根据所述名字的语音拼写来生成多个语音聚类标识符;通过将具有等同聚类id的名字分组来形成多个名字聚类;从相应的名字聚类中移除与根名字相差超过语音读音的具体拼写或者超过根据重构字典的特定成员的重构的名字;以及响应于接收到来自在线社交网络系统的成员的名字,通过使用所述语音关联的数据库生成所接收的名字的语音聚类id并且返回在与所述语音聚类id相匹配的名字聚类中找到的名字,来建议一个或多个名字。9.根据权利要求8所述的方法,还包括使用来自与在线社交网络服务的会员交互的名字拼写重构来生成所述重构字典和语音关联的数据库。10.根据权利要求9所述的方法,还包括响应于从高于第一阈值百分比或低于第二阈值百分比的重构生成的条目而移除所述语音关联的数据库中的所述条目。11.根据权利要求8所述的方法,其中,所述名字聚类是根据所述名字聚类中的所述名字的源语言被划分的。12.根据权利要求8所述的方法,其中,所述名字包括多个项,第一项根据所述语音聚类id而与所述名字聚类相匹配,并且附加项被存储在链接至所述第一项的附加节点中。13.根据权利要求8所述的方法,其中,指示在每个名字聚类中保留一个或多个名字还基于所述名字大于阈值数量的字符长度以及所述名字与所述相应的名字聚类的根名字之间的字符差异小于所述阈值数量的字符的阈值百分比。14.根据权利要求8所述的方法,其中,所述名字聚类被构造为包括根名字,其中,所述相应的名字聚类中的其他名字从所述根名字以树形结构链接。15.一种具有存储于其上的指令的机器可读硬件介质,所述指令当由处理器执行时,使得所述处理器执行以下操作:接收多个名字;使用语音关联的数据库并且在不包括元音读音的情况下根据所述名字的语音拼写来生成多个语音聚类标识符;通过将具有等同聚类id的名字分组来形成多个名字聚类;从相应的名字聚类中移除与根名字相差超过语音读音的具体拼写或者超过根据重构字典的特定成员的重构的名字;以及响应于接收到来自在线社交网络系统的成员的名字,通过使用所述语音关联的数据库生成所接收的名字的语音聚类id并且返回在与所述语音聚类id相匹配的名字聚类中找到的名字,来建议一个或多个名字。16.根据权利要求15所述的机器可读硬件介质,其中,所述指令还使得所述处理器执行以下操作:使用来自与在线社交网络服务的会员的交互的名字拼写重构来生成所述重构字典和语音关联的数据库。17.根据权利要求16所述的机器可读硬件介质,其中,所述指令还使得所述处理器执行以下操作:响应于条目具有高于上阈值百分比或低于下阈值百分比的重构而移除所述语音关联的数据库中的所述条目。18.根据权利要求15所述的机器可读硬件介质,其中,所述名字包括多个项,第一项根据所述语音聚类id而与所述名字聚类相匹配,并且附加项被存储在链接至所述第一项的附加节点中。19.根据权利要求15所述的机器可读硬件介质,其中,指示在每个名字聚类中保留一个或多个名字还基于所述名字大于阈值数量的字符长度以及所述名字与所述相应的名字聚类的根名字之间的字符差异小于所述阈值数量的字符的阈值百分比。20.根据权利要求15所述的机器可读硬件介质,其中,所述名字聚类是根据所述名字聚类中的所述名字的源语言被划分的。

百度查询: 微软技术许可有限责任公司 使用名字聚类的搜索引擎

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。