本申请是分案申请,其母案申请的申请号为201480073252.5,申请日为2014年1月28日,发明名称为“用于在线社交网络的客户端搜索模板”。
本公开总体上涉及社交网络以及用于在社交网络环境内执行对象的搜索。
背景技术:
可以包括社交网络网站的社交网络系统能够使其用户(例如,个人或组织)与该系统并且通过该系统彼此互动。通过用户的输入,社交网络可以在社交网络系统内创建和储存与用户相关联的用户配置文件。用户配置文件可包括人口统计信息、通信渠道信息以及关于用户的个人兴趣的信息。通过用户的输入,社交网络系统还可以创建和储存用户与社交网络系统的其他用户的关系的记录,并且提供服务(例如,涂鸦墙、照片分享、活动组织、消息传送、游戏或广告),以在用户之间或之中促进社交互动。
社交网络系统可以通过一个或多个网络将与其服务相关的内容或消息传输给用户的移动或其他计算装置。用户还可以在用户的移动或其他计算装置上安装软件应用程序,用于访问用户的用户配置文件以及在社交网络系统内的其他数据。社交网络系统可以生成一组个性化的内容对象,以向用户显示,例如,与该用户联系的其他用户的聚合故事的新鲜事。
社交图谱分析在由节点和边线构成的网络理论方面查看社会关系。节点表示在网络内的单独行动者,边线表示行动者之间的关系。所产生的基于图谱的结构通常非常复杂。可以具有多种类型的节点和用于连接节点的多种类型的边线。通过其最简单的形式,社交图谱是在正在研究的所有节点之间的所有相关边线的地图。
技术实现要素:
在特定的实施方式中,方法可以使用语法模板以及实体储存的客户端解析非结构化文本查询。并非使用整个语法模型来生成建议的查询客户端,可以使用一组预先定义的模板以及储存在客户端上的社交图谱实体,生成所建议的查询。预定数量的语法模板和高系数实体可以储存在客户端上,使得可以响应于从用户输入的文本,在客户端快速生成所建议的查询。这些储存的模板和实体可以覆盖用户运行的90%或更多的查询。储存的语法模板可以基于全球流行的查询确定,和/或基于受用户欢迎的查询,使模板个性化,然后,将这些查询转换成模板。例如,流行的查询/模板可以包括“[用户]的朋友”、“[用户]的照片”或“住在[位置]附近的朋友”。通过预先选择特定的实体类型(例如,所有用户的朋友、用户管理的页面、用户所属的组、用户登记参加的活动、以及用户装载的应用程序)和/或通过选择具有最高亲和力的阈值数量的实体,可以确定储存的实体。
在特定的实施方式中,在用户将文本串输入查询字段内时,客户端应用程序将该文本串与储存的模板对准,并且计算每个模板的成本。基本上,通过为文本串与模板具有的每个偏差(漏字、字词变化等)处罚每个模板,确定成本。然后,确定最低成本模板是最佳匹配。然后,可以向用户显示最高排名的模板,作为建议的查询。同样,可以解析文本串,以识别与文本串的部分匹配的实体。例如,如果用户在文本查询内键入“f的朋友”,则客户端应用程序可以针对“[用户]的朋友”访问储存的模板,并且与其匹配,直到针对用户“fred”的朋友储存的实体,从而建议结构化查询“fred的朋友”。可替换地,客户端应用程序可以使文本查询与语法模板“[用户]的朋友的朋友”匹配,并且建议部分结构化查询“…的朋友的朋友”,用户可以选择该查询,然后,继续输入文本。
在涉及一种方法、一种储存介质以及一种系统的所附权利要求中,具体公开了根据本发明的实施方式,其中,还可以在另一个权利要求类别(例如,系统)中要求在一个权利要求类别(例如,方法)内提及的任何特征。
在根据本发明的实施方式中,一种方法包括:由与移动客户端系统相关联的一个或多个处理器:
在所述移动客户端系统处,接收来自在线社交网络的第一用户的非结构化文本查询;
从所述移动客户端系统的数据存储器中访问所述在线社交网络的社交图谱的一组节点,所述社交图谱包括多个节点以及连接所述节点的多个边线,所述节点包括:
对应于第一用户的第一节点;以及
均对应于与所述在线社交网络相关联的概念或第二用户的多个第二节点;
从所述移动客户端系统的数据存储器中访问一组语法模板,每个语法模板包括一个或多个非终端令牌以及一个或多个查询令牌,其中,所述查询令牌包括参考零个或多个第二节点以及一个或多个边线,并且其中,每个语法模板基于自然语言串;
通过使所述非结构化文本查询与具有对应于匹配的节点的非终端令牌的一个或多个访问节点以及一个或多个语法模板匹配,由所述移动客户端系统生成一个或多个结构化查询,每个结构化查询包括参考与所述一个或多个非终端令牌匹配的一个或多个访问节点以及在对应的语法模板中参考的所述零个或多个第二节点以及所述一个或多个边线;并且
在所述移动客户端系统处向第一用户显示一个或多个结构化查询。
在一个实施方式中,该方法进一步包括:
由所述移动客户端系统将所述非结构化文本查询解析成一个或多个n元文;并且
由所述移动客户端系统至少部分基于不对应于非终端或查询令牌之一的一个或多个n元文,计算每个语法模板的成本。
每个非终端和查询令牌能够具有相关联的插入成本;并且计算成本,包括为不对应于一个或多个n元文的每个非终端或查询令牌引起插入成本。
计算成本可以包括由所述移动客户端系统至少部分基于每个非终端令牌的插入成本,从对应于特定n元文的一个或多个非终端令牌中识别特定非终端令牌。
计算成本可以包括:
由所述移动客户端系统使访问的节点之一与非终端令牌之一相关联;并且
基于不对应于一个n元文的相关联的访问节点,为所述非终端令牌和相关联的访问节点引起插入成本。
在一个实施方式中,该方法进一步可以包括由所述移动客户端系统至少部分基于相关联的语法模板的计算成本,排序一个或多个结构化查询。
计算成本可以包括引起与每个语法模板相关联的基础成本,所述基础成本与和作为每个语法模板的基础的一个或多个搜索查询相关联的流行度测量具有反比关系。
所述流行度测量可以至少部分基于第一用户的搜索查询历史。
所述流行度测量可以至少部分基于所述在线社交网络的用户的搜索查询历史。
每个显示的结构化查询可以具有低于阈值成本值的计算成本。
由所述移动客户端系统从第一用户中接收输入,可以包括在用户将字符串输入图形用户界面内时,接收字符串的一个或多个字符。
在一个实施方式中,该方法进一步可以包括通过将用户将一个或多个后续字符输入所述图形用户界面内时修改的非结构文本查询进行匹配,由所述移动客户端系统更新一个或多个结构化查询。
这组节点的每个节点可以具有高于阈值的系数。
在一个实施方式中,该方法进一步可以包括:由所述移动客户端系统以预定的间距从所述在线社交网络中接收一组更新的语法模板或一组更新的节点。
在一个实施方式中,该方法进一步可以包括:响应于来自第一用户的选择所显示的结构化查询之一,由所述移动客户端系统将所选的结构化查询发送给所述在线社交网络。
在一个实施方式中,该方法进一步可以包括由所述移动客户端系统响应于发送给所述在线社交网络的所选的结构化查询,接收一个或多个搜索结果。
每个搜索结果可以对应于所述多个第二节点的一个特定的第二节点。
这组节点可以包括预定数量的节点;并且这组语法模板可以包括预定数量的语法模板。
在本发明的进一步实施方式中,一种或多种计算机可读非易失性储存介质体现软件,在执行时,软件可操作,以:
在所述移动客户端系统处,接收来自在线社交网络的第一用户的非结构化文本查询;
从所述移动客户端系统的数据存储器中访问所述在线社交网络的社交图谱的一组节点,所述社交图谱包括多个节点以及连接所述节点的多个边线,所述节点包括:
对应于第一用户的第一节点;以及
均对应于与所述在线社交网络相关联的概念或第二用户的多个第二节点;
从所述移动客户端系统的数据存储器中访问一组语法模板,每个语法模板包括一个或多个非终端令牌以及一个或多个查询令牌,其中,所述查询令牌包括参考零个或多个第二节点以及一个或多个边线,并且其中,每个语法模板基于自然语言串;
通过使所述非结构化文本查询与具有对应于匹配的节点的非终端令牌的一个或多个访问节点以及一个或多个语法模板匹配,由所述移动客户端系统生成一个或多个结构化查询,每个结构化查询包括参考与所述一个或多个非终端令牌匹配的一个或多个访问节点以及在对应的语法模板中参考的所述零个或多个第二节点以及所述一个或多个边线;并且
在所述移动客户端系统处,向第一用户显示一个或多个结构化查询。
在本发明的进一步实施方式中,一种系统包括:一个或多个处理器;以及存储器,耦接至所述处理器,包括由所述处理器可执行的指令,在执行所述指令时,所述处理器可操作,以:
在所述移动客户端系统处,接收来自在线社交网络的第一用户的非结构化文本查询;
从所述移动客户端系统的数据存储器中访问所述在线社交网络的社交图谱的一组节点,所述社交图谱包括多个节点以及连接所述节点的多个边线,所述节点包括:
对应于第一用户的第一节点;以及
均对应于与所述在线社交网络相关联的概念或第二用户的多个第二节点;
从所述移动客户端系统的数据存储器中访问一组语法模板,每个语法模板包括一个或多个非终端令牌以及一个或多个查询令牌,其中,所述查询令牌包括参考零个或多个第二节点以及一个或多个边线,并且其中,每个语法模板基于自然语言串;
通过使所述非结构化文本查询与具有对应于匹配的节点的非终端令牌的一个或多个访问节点以及一个或多个语法模板匹配,由所述移动客户端系统生成一个或多个结构化查询,每个结构化查询包括参考与所述一个或多个非终端令牌匹配的一个或多个访问节点以及在对应的语法模板中参考的所述零个或多个第二节点以及所述一个或多个边线;并且
在所述移动客户端系统处,向第一用户显示一个或多个结构化查询。
在还可以要求保护的本发明的进一步实施方式中,一个或多个计算机可读非易失性储存介质体现软件,在软件执行时,其可操作,以执行根据本发明或任何上述实施方式的方法。
在还可以要求保护的本发明的进一步实施方式中,一种系统包括:一个或多个处理器;以及存储器,耦接至所述处理器,包括由所述处理器可执行的指令,在执行所述指令时,所述处理器可操作,以执行根据本发明或任何上述实施方式的方法。
附图说明
图1示出了与社交网络系统相关联的一个示例网络环境。
图2示出了一个示例社交图谱。
图3示出了在线社交网络的示例网页。
图4示出了一个示例移动客户端系统。
图5示出了在一个示例移动客户端系统上的示例用户界面(ui)。
图6示出了用于使文本输入与语法模板和社交图谱实体匹配的示例成本计算的图形表示。
图7示出了用于使文本输入与语法模板和社交图谱实体匹配的示例成本计算的图形表示。
图8示出了用于使文本输入与语法模板和社交图谱实体匹配的示例成本计算的图形表示。
图9示出了在一个示例移动客户端系统上的具有示例结构化搜索查询的示例ui。
图10示出了在一个示例移动客户端系统上的具有示例结构化搜索查询的示例ui。
图11示出了用于生成客户端的结构化搜索查询的一个示例方法
图12示出了一个示例计算机系统。
具体实施方式
系统概述
图1示出了与社交网络系统相关联的一个示例网络环境100。网络环境100包括通过网络110彼此连接的客户端系统130、社交网络系统160以及第三方系统170。虽然图1示出了客户端系统130、社交网络系统160、第三方系统170以及网络110的特定设置,但是本公开预计客户端系统130、社交网络系统160、第三方系统170以及网络110具有任何合适的设置。作为一个示例,并非通过限制的方式,客户端系统130、社交网络系统160以及第三方系统170中的两个以上彼此直接连接,绕过网络110。作为另一个示例,客户端系统130、社交网络系统160以及第三方系统170中的两个以上在物理上或逻辑上彼此完全或部分共置。而且,虽然图1示出了特定数量的客户端系统130、社交网络系统160、第三方系统170以及网络110,但是本公开预计客户端系统130、社交网络系统160、第三方系统170以及网络110具有任何合适的数量。作为一个示例,并非通过限制的方式,网络环境100可以包括多个客户端系统130、社交网络系统160、第三方系统170以及网络110。
本公开预计任何合适的网络110。作为一个示例,并非通过限制的方式,网络110的一个或多个部分可以包括自组织网络、内联网、外联网、虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、一部分互联网、一部分公共交换电话网(pstn)、蜂窝电话网络、或其中的两个以上的组合。网络110可以包括一个或多个网络110。
链路150可以使客户端系统130、社交网络系统160以及第三方系统170与通信网络110或者彼此连接。本公开预计任何合适的链路150。在特定的实施方式中,一个或多个链路150包括一个或多个有线(例如,数字用户线路(dsl)或电缆数据服务接口规范(docsis))、无线(例如,wi-fi或全球微波接入互操作性(wimax))、或光学(例如,同步光纤网络(sonet)或同步数字系列(sdh))链路。在特定的实施方式中,一个或多个链路150均包括自组织网络、内联网、外联网、vpn、lan、wlan、wan、wwan、man、一部分互联网、一部分pstn、基于蜂窝技术的网络、基于卫星通信技术的网络、另一个链路150或两个以上这种链路150的组合。在整个网络设备100中,链路150不必相同。一个或多个第一链路150可以在一个或多个方面与一个或多个第二链路150不同。
在特定的实施方式中,客户端系统130可以是电子装置,其包括硬件、软件或嵌入式逻辑元件或两个以上这种元件的组合,并且能够执行由客户端系统130实现或支持的合适功能。作为一个示例,并非通过限制的方式,客户端系统130可以包括计算机系统,例如,台式电脑、笔记本或膝上型电脑、笔记本、平板电脑、电子阅读器、gps装置、照相机、个人数字助理(pda)、手持式电子装置、蜂窝电话、智能电话、其他合适的电子装置、或其任何合适的组合。本公开预计任何合适的客户端系统130。客户端系统130可以使在客户端系统130上的网络用户访问网络110。客户端系统130可以使其用户与在其他客户端系统130上的其他用户通信。
在特定的实施方式中,客户端系统130可以包括网页浏览器132,例如,microsoftinternetexplorer、googlechrome或mozillafirefox,并且可以具有一个或多个附加组件、插件或其他延伸部分,例如,toolbar或yahootoolbar。在客户端系统130上的用户可以输入统一资源定位符(url)或其他地址,将网页浏览器132引向特定用户(例如,服务器162或与第三方系统170相关联的服务器),并且网页浏览器132可以生成超文本传输协议(http)请求,并且将http请求传送给服务器。服务器可以接受http请求并且将响应于http请求的一个或多个超文本标记语言(html)文件传送给客户端系统130。客户端系统130可以基于来自服务器的html文件渲染网页,用于呈现给用户。本公开预计任何合适的网页文件。作为一个示例,并非通过限制的方式,网页可以根据特定的需要从html文件、可扩展超文本标记语言(xhtml)文件或可扩展标记语言(xml)文件中渲染。这种页面还可以执行脚本,例如,例如并且没有限制地,通过javascript、java、microsoftsilverlight、标记语言和脚本(例如,ajax(异步javascript和xml)的组合等编写的脚本。在本文中,在适当的情况下,网页的引用包括一个或多个相应的网页文件(浏览器可以用于渲染网页的文件),反之亦然。
在特定的实施方式中,社交网络系统160可以是能够托管在线社交网络的网络可寻址计算系统。社交网络系统160可以生成、储存、接收并且发送社交网络数据,例如,用户配置文件数据、概念配置文件数据、社交图谱信息、或与在线社交网络相关的其他合适数据。社交网络系统160可以由网络环境100的其他元件直接或者通过网络110访问。在特定的实施方式中,社交网络系统160可以包括一个或多个服务器162。每个服务器162可以是单一式服务器或分布式服务器,其跨过多个计算机或多个数据中心。服务器162可以是各种类型,例如,例如并且没有限制地,网络服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用程序服务器、交换服务器、数据库服务器、代理服务器、适合于执行在本文中描述的功能或处理的另一个服务器、或其任何组合。在特定的实施方式中,每个服务器162可以包括硬件、软件或嵌入式逻辑元件或两个以上这种元件的组合,用于执行由服务器162实现或支持的合适功能。在特定的实施方式中,社交网络系统164可以包括一个或多个数据存储器164。数据存储器164可以用于储存各种类型的信息。在特定的实施方式中,可以根据特定的数据结构,组织储存在数据存储器164内的信息。在特定的实施方式中,每个数据存储器164可以关系数据库。特定的实施方式可以提供接口,所述接口使客户端系统130、社交网络系统160或者第三方系统170能够管理、检索、增加或删除储存在数据存储器164内的信息。
在特定的实施方式中,社交网络系统160可以在一个或多个数据存储器164内储存一个或多个社交图谱。在特定的实施方式中,社交图谱可以包括多个节点-其可以包括多个用户节点(每个节点与特定的用户对应)或多个概念节点(每个节点与特定的概念对应)-以及连接所述节点的多个边线。社交网络系统160可以给在线社交网络的用户提供与其他用户通信和互动的能力。在特定的实施方式中,用户可以通过社交网络系统160加入在线社交网络,然后,增加与用户希望联系的社交网络系统160的多个其他用户的联系(即,关系)。在本文中,术语“朋友”可以表示用户通过社交网络系统160与其形成联系、关联性或关系的社交网络系统160的任何其他用户。
在特定的实施方式中,社交网络系统160可以给用户提供对由社交网络系统160支持的各种类型的物品或对象采取行动的能力。作为一个示例,并非通过限制的方式,物品和对象可以包括社交网络系统160的用户所属的群组或社交网络、用户可能感兴趣的活动或日历项、用户可以使用的基于计算机的应用程序、允许用户通过服务购买或销售的物品的交易、与用户可以执行的广告的互动、或其他合适的物品或对象。用户可以与能够在社交网络系统160内或者由第三方系统170的外部系统表示的任何物体互动,该外部系统与社交网络系统160分开并且通过网络110耦接至社交网络系统160。
在特定的实施方式中,社交网络系统160能够链接各种实体。作为一个示例,并非通过限制的方式,社交网络系统160可以使用户能够彼此互动并且接收来自第三方系统170或其他实体的内容,或者允许用户通过应用程序编程接口(api)或其他通信渠道与这些实体互动。
在特定的实施方式中,第三方系统170可以包括一种或多种类型的服务器、一个或多个数据存储器、一个或多个接口(包括但不限于api)、一个或多个网络服务、一个或多个内容源、一个或多个网络、或任何其他合适的元件(例如可以与服务器通信的服务器)。第三方系统170可以由与操作社交网络系统160的实体不同的实体操作。然而,在特定的实施方式中,社交网络系统160和第三方系统170可以彼此相结合地操作,以给社交网络系统160或第三方系统170的用户提供社交网络服务。在这个意义上,社交网络系统160可以提供平台或骨干,其他系统(例如,第三方系统170)可以使用该平台或骨干来通过互联网给用户提供社交网络服务和功能。
在特定的实施方式中,第三方系统170可以包括第三方内容对象提供商。第三方内容对象提供商可以包括可传送给客户端系统130的内容对象的一个或多个来源。作为一个示例,并非通过限制的方式,内容对象可以包括关于用户感兴趣的东西或活动的信息,例如,电影放映时间、电影评论、餐厅评论、餐厅菜单、产品信息和评论、或其他合适的信息。作为一个示例,并非通过限制的方式,内容对象可以包括激励内容对象,例如,优惠券、折扣票、礼品券或其他合适的激励对象。
在特定的实施方式中,社交网络系统160还包括用户生成的内容对象,所述内容对象可以增强用户与社交网络系统160的互动。用户生成的内容可以包括用户可以增加、上传、发送或“张贴”到社交网络系统160中的任何物体。作为一个示例,并非通过限制的方式,用户将帖子从客户端系统130传送给社交网络系统160。帖子可以包括状态更新或其他文本数据等数据、位置信息、照片、视频、链接、音乐或其他相似的数据或媒体。还可以由第三方系统170通过“通信通道”(例如,新鲜事或流)增加到社交网络系统160中。
在特定的实施方式中,社交网络系统160可以包括各种服务器、子系统、程序、模块、记录以及数据存储器。在特定的实施方式中,社交网络系统160可以包括以下中的一个或多个:网络服务器、活动记录器、api请求服务器、相关性和排名引擎、内容对象分类器、通知控制器、活动记录、第三方内容对象曝光记录、推理模块、授权/隐私服务器、搜索模块、广告目标模块、用户接口模块、用户配置文件储存、连接储存、第三方内容储存或位置储存。社交网络系统160还可以包括合适的元件,例如,网络接口、安全机构、负载平衡器、故障转移服务器、管理和网络操作控制台、其他合适的元件、或其任何合适的组合。在特定的实施方式中,社交网络系统160可以包括一个或多个用户配置文件储存,用于储存用户配置文件。用户配置文件可以包括(例如)传记信息、人口统计信息、行为信息、社会信息、或其他类型的描述性信息,例如,工作经验、学历、爱好或偏好、兴趣、亲和力或位置。兴趣信息可以包括与一个或多个类别相关联的兴趣。类别可以是一般或特定类别。作为一个示例,并非通过限制的方式,如果用户“喜欢”关于某个品牌的鞋的文章,那么类别可以是该品牌或者一般类别的“鞋子”或“衣服”。连接储存可以用于储存关于用户的连接信息。连接信息可以表示具有相似或共同工作经历、群组关系、爱好、学历的或者通过任何方式相关的或者分享共同属性的用户。连接信息还可以包括在不同用户与内容(内部和外部)之间的用户定义的连接。网络服务器可以用于通过网络110链接社交网络系统160和一个或多个客户端系统130或者一个或多个第三方系统170。网络服务器可以包括邮件服务器或其他消息传递功能,用于在社交网络系统160与一个或多个客户端系统130之间接收和路由消息。api请求服务器可以允许第三方系统170通过调用一个或多个api来访问来自社交网络系统160的信息。活动记录器可以用于从网络服务器中接收关于用户在社交网络系统160上或者在社交网络系统160下的活动的通信。与活动记录相结合,第三方内容对象记录可以保持用户曝光到第三方内容对象中。通知控制器可以给客户端系统130提供关于内容对象的信息。可以将信息作为通知推向客户端系统130,或者可以响应于从客户端系统130中接收的请求,从客户端系统130中拉信息。授权服务器可以用于实施社交网络系统160的用户的一个或多个隐私设置。用户的隐私设置确定可以分享与用户相关联的特定信息的方式。授权服务器可以允许用户决定加入或退出由社交网络系统160记录或者与其他系统(例如,第三方系统170)分享活动,例如,通过设置合适的隐私设置。第三方内容对象储存可以用于储存从第三方接收的内容对象,例如,第三方系统170。位置储存可以用于储存从与用户相关联的客户端系统130中接收的位置信息。广告定价模块可以合并社交信息、当前时间、位置信息或其他合适的信息,以通过通知的形式向用户提供相关广告。
社交图谱
图2示出了示例社交图谱200。在特定的实施方式中,社交网络系统160可以在一个或多个数据存储器中储存一个或多个社交图谱200。在特定的实施方式中,社交图谱200可以包括多个节点-其可以包括多个用户节点202或多个概念节点204-以及连接所述节点的多个边线206。为了教育的目的,在二维视觉图表示中显示了在图2中示出的示例社交图谱200。在特定的实施方式中,社交网络系统160、客户端系统130或第三方系统170可以访问社交图谱200和相关的社交图谱信息,用于合适的应用程序。社交图谱200的节点和边线可以作为数据对象(例如)储存在数据存储器(例如,社交图谱数据库)内。这种数据存储器可以包括社交图谱200的节点和边线的一个或多个可搜索或可查询的索引。
在特定的实施方式中,用户节点202可以与社交网络系统160的第一用户对应。作为一个示例,并非通过限制的方式,用户可以是个人(个人用户)、实体(例如,企业、商业或第三方应用程序)、或与社交网络系统160或者通过社交网络系统160互动或通信的(例如,个人或实体的)群组。在特定的实施方式中,在第一用户向社交网络系统160注册账号时,社交网络系统160可以创建与用户对应的第一用户节点202,并且在一个或多个数据存储器内储存用户节点202。在适当的情况下,在本文中描述的用户和用户节点202表示注册的用户以及与注册的用户相关联的用户节点202。此外或者作为替换物,在适当的情况下,在本文中描述的用户和用户节点202表示没有向社交网络系统160注册的用户。在特定的实施方式中,用户节点202可以与由用户提供的信息或者由各种系统(包括社交网络系统160)聚集的信息相关联。作为一个示例,并非通过限制的方式,用户可以提供其姓名、头像、联系信息、生日、性别、婚姻状况、家庭状况、职业、教育背景、爱好、兴趣或其他人口统计信息。在特定的实施方式中,用户节点202可以与一个或多个数据对象相关联,所述数据对象与和用户相关联的信息对应。在特定的实施方式中,用户节点202可以与一个或多个网页对应。
在特定的实施方式中,概念节点204可以与概念对应。作为一个示例,并非通过限制的方式,概念可以对应于地点(例如,电影院、餐馆、地标或城市);网站(例如,与社交网络系统160相关联的网站或者与网络应用程序服务器相关联的第三方网站);实体(例如,个人、企业、群组、体育队或名流);资源(例如,音频文件、视频文件、数字照片、文本文件、结构化文档或应用程序),其可以位于社交网络系统160内或外部服务器上,例如,网络应用程序服务器;不动产或知识产权(例如,雕塑、绘画、电影、游戏、歌曲、理念、照片、或书面工作);游戏;活动;理念或理论;另一种合适的概念;或两个以上这种概念。概念节点204可以与由用户提供的概念的信息或者由各种系统(包括社交网络系统160)聚集的信息相关联。作为一个示例,并非通过限制的方式,概念的信息可以包括名字或称号;一个或多个图像(例如,书的封面的图像);位置(例如,地址或地理位置);网站(其可以与url相关联);联系信息(例如,电话号码或电子邮件地址);其他合适的概念信息;或这种信息的任何合适的组合。在特定的实施方式中,概念节点204可以与一个或多个数据对象相关联,所述数据对象与和概念节点204相关联的信息对应。在特定的实施方式中,概念节点204可以与一个或多个网页对应。
在特定的实施方式中,在社交图谱200内的节点可以表示网页(可以称为“配置文件页面”)或者由该网页表示。配置文件页面可以由社交网络系统160托管或者可存取。配置文件页面还可以在与第三方服务器170相关联的第三方网站上托管。作为一个示例,并非通过限制的方式,与特定的外部网页对应的配置文件页面可以是特定的外部网页,并且配置文件页面可以与特定的概念节点204对应。配置文件页面可以由所有或者所选择的子集的其他用户可查看。作为一个示例,并非通过限制的方式,用户节点202可以具有对应的用户配置文件页面,在该配置文件页面中,相应的用户可以添加内容,做出声明,或者另外表达自己。作为另一个示例,并非通过限制的方式,概念节点204可以具有相应概念的配置文件页面,在该配置文件页面中,一个或多个用户可以添加内容,做出声明,或者表达自己,尤其关于与概念节点204对应的概念。
在特定的实施方式中,概念节点204可以表示由第三方系统170托管的第三方网页或资源。在其他部件之中,第三方网页或资源可以包括内容、可选择的或其他图标、或者表示活动或行动的其他可互动的对象(例如,可以在javascript、ajax或php代码内实现)。作为一个示例,并非通过限制的方式,第三方网页可以包括可选择的图标,例如,“喜欢”、“登记”、“吃”、“推荐”、或另一个合适的活动或行动。通过选择一个图标(例如,“吃”),查看第三方网页的用户可以执行活动,促使客户端系统130给社交网络系统160传输表示用户的活动的消息。响应于该消息,社交网络系统160可以在与用户对应的用户节点202与和第三方网页或资源对应的概念节点204之间创建边线(例如,“吃”边线),并且在一个或多个数据存储器内储存边线206。
在特定的实施方式中,在社交图谱200内的一对节点可以通过一个或多个边线206彼此连接。连接一对节点的边线206可以表示在这对节点之间的关系。在特定的实施方式中,边线206可以包括或表示与在一对节点之间的关系对应的一个或多个数据对象或属性。作为一个示例,并非通过限制的方式,第一用户可以指示第二用户是第一用户的“朋友”。响应于这个指示,社交网络系统160可以给第二用户传输“朋友请求”。如果第二用户确认“朋友请求”,那么社交网络系统160可以在社交图谱200内创建连接第一用户的用户节点202和第二用户的用户节点202的边线206,并且在一个或多个数据存储器24内储存边线206,作为社交图谱信息。在图2的示例中,社交图谱200包括表示在用户“a”和用户“b”的用户节点202之间的朋友关系的边线206,以及表示在用户“c”和用户“b”的用户节点202之间的朋友关系的边线。虽然本公开描述或显示了连接特定的用户节点202的具有特定属性的特定边线206,但是本公开预计连接用户节点202的具有任何合适的属性的任何合适的边线206。作为一个示例,并非通过限制的方式,边线206可以表示友谊、家庭关系、业务或雇佣关系、粉丝关系、追随者关系、访客关系、用户关系、上级/下级关系、互惠关系、非互惠的关系、另一种合适类型的关系、或两个或更多这种关系。而且,虽然本公开总体上描述处于连接的节点,但是本公开还描述了处于连接的用户或概念。在本文中,在合适的地方,处于连接的用户或概念的引用可以表示与由一个或多个边线206在社交图谱200内连接的那些用户或概念对应的节点。
在特定的实施方式中,在用户节点202与概念节点204之间的边线206可以表示由与用户节点202相关联的用户朝着与概念节点204相关联的概念执行的特定活动或行动。作为一个示例,并非通过限制的方式,如图2中所示,用户可以“喜欢”、“参加”、“播放”、“收听”、“烹饪”、“工作”或“观看”概念,其中的每个均与边线类型或子类型对应。与概念节点204对应的概念配置文件页面可以包括(例如)可选择的“登记”图标(例如,可点击的“登记”图标)或可选择的“添加到收藏夹”图标。同样,在用户点击这些图标之后,社交网络系统160可以响应于与相应的活动对应的用户活动,创建“收藏夹”边线或“登记”边线。作为一个示例,并非通过限制的方式,用户(用户“c”)可以使用特定的应用程序(例如,spotify,这是在线音乐应用程序)收听特定的歌曲(“imagine”)。在这种情况下,社交网络系统160可以在与用户对应的用户节点202与和歌曲和应用程序对应的概念节点204之间创建“收听”的边线206和“使用”的边线(如图2中所示),以表示用户收听歌曲和使用应用程序。而且,社交网络系统160可以在与歌曲和应用程序对应的概念节点204之间创建“收听”的边线206(如图2中所示),以表示由特定的应用程序播放特定的歌曲。在这种情况下,“播放”边线206与由外部应用程序(spotify)在外部音频文件(歌曲“imagine”)上执行的活动对应。虽然本公开描述了连接用户节点202和概念节点204的具有特定属性的特定边线206,但是本公开预计连接用户节点202和概念节点204的具有任何合适的属性的任何合适的边线206。而且,虽然本公开描述了表示单个关系的在用户节点202和概念节点204之间的边线,但是本公开预计表示一个或多个关系的在用户节点202和概念节点204之间的边线。作为一个示例,并非通过限制的方式,边线206可以表示用户喜欢并且使用的特定概念。交替地,另一个边线206可以表示在用户节点202和概念节点204之间(如图2中所示,在用户“e”的用户节点202和“spotify”的概念节点204之间)的每种类型的关系(或单个关系的倍数)。
在特定的实施方式中,社交网络系统160可以在社交图谱200中在用户节点202和概念节点204之间创建边线206。作为一个示例,并非通过限制的方式,(例如,通过使用由用户的客户端系统130托管的网络浏览器或专用应用程序)查看概念配置文件页面的用户可以通过点击或选择“喜欢”图标来指示该用户喜欢由概念节点204表示的概念,这可以促使用户的客户端系统130给社交网络系统160传输表示用户喜欢与概念配置文件页面相关联的概念的消息。响应于该消息,社交网络系统160可以在与用户相关联的用户节点202和概念节点204之间创建边线206,如在用户和概念节点204之间的“喜欢”边线206所示。在特定的实施方式中,社交网络系统160可以在一个或多个数据存储器内储存边线206。在特定的实施方式中,可以由社交网络系统160响应于特定的用户活动自动形成边线206。作为一个示例,并非通过限制的方式,如果第一用户上传图片,看电影,或者收听歌曲,那么可以在与第一用户对应的用户节点202和与那些概念对应的概念节点204之间形成边线206。虽然本公开描述了通过特定的方式形成特定的边线206,但是本公开预计通过任何合适的方式形成任何合适的边线206。
预先输入处理
在特定的实施方式中,一个或多个客户端和/或后端(服务器端)处理可实现和使用“预先输入”功能,该功能可自动尝试使社交图谱元素(例如,用户节点202、概念节点204或边线206)与用户目前结合请求的网页(例如,用户配置文件页面、概念配置文件页面、搜索结果网页、或在线社交网络的另一个合适页面)在输入表格渲染所输入的信息匹配,其中,该网页可由社交网络系统160托管或者在社交网络系统160内可进入。在特定的实施方式中,随着用户输入文本以做出声明,预先输入功能可尝试使声明内输入的文本字符串与对应于社交图谱200内的用户、概念或边线及其相应元素的字符串(例如,名称、描述)匹配。在特定的实施方式中,在找出匹配时,预先输入功能可利用对于现有社交图谱元素的社交图谱元素(例如,节点名称/类型、节点id、边线名称/类型、边线id、或另一个合适的参考或标识符)自动填充该表格。
在特定的实施方式中,由于用户将文本键入或者以其他方式输入用于在用户的配置文件页面、主页或其他页面的不同部分内增加内容或者做出声明的表格内,所以预先输入处理可以与在社交网络系统160上(或内)(例如,在服务器162内)执行的一个或多个前端(客户端)和/或后端(服务器端)预先输入处理(在后文中简称为“预先输入处理”)共同运作,以交互地并且实际上(对于用户,似乎是)立刻尝试利用对应于现有社交图谱元素的名称的一个或多个项、或者在用户输入文本字符时被确定与用户输入的文本字符最相关或者最佳匹配的与现有社交图谱元素相关联的项自动填充该表格。使用在社交图谱数据库内的社交图谱信息或者从社交图谱数据库中提取和索引的信息(包括与节点和边线相关联的信息),预先输入处理结合来自社交图谱数据库的信息并且还可能结合位于社交网络系统160内的或者在社交网络系统160内执行的各种其他处理、应用程序或者数据库,能够高度精确地预测用户的预期声明。然而,社交网络系统160还可以给用户提供输入用户希望的基本上任何声明的自由,使用户能够自由地表达自己。
在特定的实施方式中,由于用户将文本字符输入表格方框或其他字段内,所以预先输入处理可尝试识别与在用户输入字符时在用户的声明中输入的字符串匹配的现有社交图谱元素(例如,用户节点202、概念节点204或边线206)。在特定的实施方式中,在用户将字符输入表格方框内时,预先输入处理可读取所输入的文本串。随着做出每次键击,前端-预先输入处理可将输入的字符串作为请求(或呼叫)发送给在社交网络系统160内执行的后端-预先输入处理。在特定的实施方式中,预先输入处理可通过ajax(异步javascript和xml)或其他合适的技术通信,并且具体而言,通过异步技术。在特定的实施方式中,该请求可能是或者包括能够实现快速和动态发送和提取结果的xmlhttprequest(xhr)。在特定的实施方式中,预先输入处理还可在该请求之前、之后或者之时发送部分标识符(部分id),该标识符识别用户在其中做出声明的特定页面的特定部分。在特定的实施方式中,也可发送用户id参数,但是由于基于用户已登录(或者由社交网络系统160认证)社交网络系统160,用户已经“知晓”,所以在一些实施方式中,该参数可能是不必要的。
在特定的实施方式中,预先输入处理可使用一个或多个匹配算法来尝试识别匹配的社交图谱元素。在特定的实施方式中,在发现一个或多个匹配时,预先输入处理(可使用ajax或其他合适的技术)可给用户的客户端系统130发送响应,这可包括(例如)匹配的社交图谱元素的名称(名称串)或者描述以及(可能地)与匹配的社交图谱元素相关联的其他元数据。作为一个示例,并非通过限制的方式,如果用户将字符“pok”输入查询字段内,那么预先输入处理可显示下拉菜单,该菜单显示匹配的现有配置文件页面和相应的用户节点202或概念节点204的名称,例如,命名为或者专用于“poker”或“pokemon”的配置文件页面,然后,用户可以点击或者以其他方式选择该名称,从而确认声明对应于所选节点的匹配用户或者概念名称的期望。作为一个示例,并非通过限制的方式,在点击“poker”时,预先输入处理可使用声明“poker”自动填充或者促使网络浏览器132自动填充查询字段。在特定的实施方式中,预先输入处理可仅仅使用排名最高的匹配的名称或另一个标识符自动填充字段,而非显示下拉菜单。然后,用户可仅仅通过在其键盘上键入“enter”或者通过点击自动填充的声明,来确认自动填充的声明。
在于2010年4月19日提交的美国专利申请号12/763162以及于2012年7月23日提交的美国专利申请号13/556072中,可以找出关于预先输入处理的更多信息,这些申请通过引证结合于此。
结构化搜索查询
图3示出了在线社交网络的示例网页。在特定的实施方式中,第一用户(也称为“用户”或“查询用户”,对应于特定的用户节点202)可通过将文本输入搜索查询字段350内,来将查询提交给社交网络系统160。通过给搜索引擎提供描述特定主题(例如,用户、概念、外部内容或资源)的短语(通常称为“搜索查询”),在线社交网络的第一用户可搜索与该特定主题相关的信息。查询可能是非结构化文本查询,并且可包括一个或多个文本串(可包括一个或多个n元文)。通常,第一用户可将任何文本串输入搜索查询字段350内,从而在社交网络系统160上搜索与文本查询匹配的内容。然后,社交网络系统160可搜索数据存储器164(或者具体而言,社交图谱数据库),以识别与该查询匹配的内容。搜索引擎可使用各种搜索算法根据查询短语进行搜索,并且生成识别最可能与搜索查询相关的资源或内容(例如,用户配置文件页面、内容配置文件页面或外部资源)的搜索结果。为了进行搜索,第一用户可将搜索查询输入或者发送给搜索引擎。作为响应,搜索引擎可识别可能与搜索查询相关的一个或多个资源,每个资源可单独称为“搜索结果”或者统称为对应于该搜索查询的“搜索结果”。例如,识别的内容可包括社交图谱元素(即,用户节点202、概念节点204、边线206)、配置文件页面、外部网页、或其任何组合。然后,社交网络系统160可生成具有对应于已识别内容的搜索结果的搜索结果网页,并且将搜索结果网页发送给第一用户。可以向用户呈现搜索结果,通常以在搜索结果网页上的链接列表的形式,每个链接与包含一些已识别资源或内容的一不同网页相关联。在特定的实施方式中,在搜索结果内的每个链接可具有统一资源定位符(url)的形式,所述url规定相应网页所在的位置以及用于检索其的机制。然后,社交网络系统160可将搜索结果网页发送给第一用户的客户端系统130上的网络浏览器132。然后,第一用户可点击url链接或者以其他方式从搜索结果网页中选择内容,以酌情从社交网络系统160中或者从外部系统(例如,第三方系统170)中访问内容。可以根据资源与搜索查询的相对关联性程度,将资源排名并且呈现给用户。还可以根据搜索结果与第一用户的相对关联性程度,将搜索结果排名并且呈现给用户。换言之,例如,基于社交图谱信息、用户信息、用户的搜索或浏览历史、或与用户相关的其他合适的信息,为查询用户来个性化搜索结果。在特定的实施方式中,资源的排名可以由搜索引擎实现的排名算法确定。作为一个示例,并非通过限制的方式,与搜索查询或者与用户更相关的资源可以具有比与搜索查询或者与用户更少相关的资源更高的排名。在特定的实施方式中,搜索引擎可将其搜索限制为在线社交网络上的资源和内容。然而,在特定的实施方式中,搜索引擎还可搜索在其他源(例如,第三方系统170、互联网或万维网、或其他合适的源)上的资源和内容。虽然本公开描述了通过特定的方式查询社交网络系统160,但是本公开预计通过任何合适的方式查询社交网络系统160。
在特定的实施方式中,在本文中描述的预先输入处理可应用于用户输入的搜索查询中。作为一个示例,并非通过限制的方式,在用户将文本字符输入搜索字段时,预先输入处理可尝试识别与在用户输入字符时输入搜索字段内的字符串匹配的一个或多个用户节点202、概念节点204或边线206。由于预先输入处理从文本查询中接收包括串或n元文的请求或呼叫,所以预先输入处理可执行或者促使执行搜索,以识别具有相应名称、类型、类别、或与输入的文本匹配的其他标识符的现有社交图谱元素(即,用户节点202、概念节点204、边线206)。预先输入处理可使用一个或多个匹配算法,来尝试识别匹配的节点或边线。在发现一个或多个匹配时,预先输入处理可给用户的客户端系统130发送响应,这可包括(例如)匹配的节点的名称(名称串)以及(可能地)与匹配的节点相关联的其他元数据。然后,预先输入处理可显示下拉菜单300,该菜单显示匹配的现有配置文件页面和相应的用户节点202或概念节点204的名称,并且显示可连接至匹配的用户节点202或概念节点204的匹配边线206的名称,然后,用户可点击或者以其他方式选择该名称,从而确认搜索对应于所选节点的匹配用户或者概念名称,或者通过匹配边线搜索连接至匹配用户或者概念的用户或者概念的期望。可替换地,预先输入处理可仅仅使用排名最高的匹配的名称或另一个标识符自动填充该表格,而非显示下拉菜单300。然后,用户可仅仅通过在其键盘上键入“enter”或者通过点击自动填充的声明,来确认自动填充的声明。在用户确认匹配节点和边线时,预先输入处理可发送请求,该请求通知社交网络系统160用户确认包含匹配的社交图谱元素的查询。响应于所发送的请求,社交网络系统160可以自动(或者可替换地,根据在请求内的指令)调用或者以其他方式搜索社交图谱数据库中的匹配的社交图谱元素或者酌情的连接至匹配的社交图谱元素的社交图谱元素。虽然本公开描述了通过特定的方式将预先输入处理应用于搜索查询中,但是本公开预计通过任何合适的方式将预先输入处理应用于搜索查询中。
与搜索查询以及搜索结果相结合,特定实施方式可以使用在于2006年8月11日提交的美国专利申请号11/503093、于2010年12月22日提交的美国专利申请号12/977027以及于2010年12月23日提交的美国专利申请号12/978265中公开的一个或多个系统、元件、部件、功能、方法、操作或步骤,每个申请通过引证结合于此。
在特定的实施方式中,响应于从查询用户接收的结构化查询,社交网络系统160可以生成一个或多个搜索结果,其中,每个搜索结果与结构化查询的项匹配(或基本上匹配)。社交网络系统160可以从查询用户接收结构化查询。响应于结构化查询,社交网络系统160可以生成对应于结构化查询的一个或多个搜索结果。每个搜索结果可以包括至配置文件网页的链接以及配置文件页面(或者对应于该页面的节点)的描述或概述。搜索结果可作为搜索结果页面呈现和发送给查询用户。在查询字段350中示出用于生成特定搜索结果页面的结构化查询,并且在呈现的搜索结果的字段中,示出响应于结构化查询生成的各种搜索结果。在特定的实施方式中,查询字段350还可以用作页面的标题栏。换言之,标题栏和查询字段350可以有效地是在搜索结果页面上的统一字段。搜索结果页面还可以包括用于修改搜索结果的字段以及用于提供建议的搜索的字段。在生成搜索结果时,社交网络系统160可生成针对每个搜索结果的一个或多个片段,其中,片段是关于搜索结果的目标的上下文信息(即,关于社交图谱实体、配置文件页面、或者对应于该特定搜索结果的其他内容的上下文信息)。虽然本公开描述了和示出了特定的搜索结果页面,但是本公开预计任何合适的搜索结果页面。
在于2012年12月31日提交的美国专利申请号13/731939中,可以找出关于生成搜索结果的更多信息,该申请通过引证结合于此。
客户端搜索模板
图4示出了一个示例移动客户端系统130。本公开预计移动客户端系统130采用任何合适的物理形式。在特定的实施方式中,移动客户端系统130可以是计算系统,如下所述。作为示例,并非通过限制的方式,移动客户端系统130可为单板计算机系统(sbc)(例如,计算机模块(com)或系统模块(som))、膝上型或笔记本式电脑系统、移动电话、智能电话、个人数字助理(pda)、平板电脑系统、或其中的两个以上的组合。在特定的实施方式中,移动客户端系统130可以具有触摸传感器132,作为输入元件。在图4的示例中,触摸传感器132结合在移动客户端系统130的正面。在电容触摸传感器的情况下,可以具有两种类型的电极:发送和接收。这些电极可以连接至控制器,该控制器被设计成通过电脉冲驱动传输电极并且从由接触式或邻近输入造成的接收电极中测量电容的变化。在图4的示例中,一个或多个天线134a至134b可以结合在移动客户端系统130的一侧或多侧内。天线134a至134b是将电流转换成无线电波的元件,反之亦然。在信号的传输期间,发送器将振荡射频(rf)电流应用于天线134a至134b的终端,并且天线134a至134b辐射所施加的电流的能量,作为电磁(em)波。在信号的接收期间,天线134a至134b将进入的em波转换成在天线134a至134b的终端处的电压。电压可以传输给接收器,用于放大。
在特定的实施方式中,移动客户端系统130可以包括:通信元件,其耦接至天线134a至134b,用于与以太网或其他有线网络或无线nic(wnic)进行通信;无线适配器,用于与无线网络通信,例如,wi-fi网络;或者调制解调器,用于与蜂窝网络通信,例如,第三代移动通信(3g)或长期演进(lte)网络。本公开预计具有任何合适的网络以及用于该网络的任何合适的通信元件20。作为示例,并非通过限制的方式,移动客户端系统130可与自组织网络、个人区域网络(pan)、局域网(lan)、广域网(wan)、城域网(man)、或互联网的一个或多个部分或其中的两个以上的组合通信。这些网络中的一个或多个的一个或多个部分可为有线或无线部分。作为一个示例,移动客户端系统130可与无线pan(wpan)(例如,bluetoothwpan)、wi-fi网络、wi-max网络、蜂窝电话网络(例如,全球移动通讯系统(gsm)网络、3g或lte网络)、或其他合适的无线网络或其中的两个以上的组合通信。在适当的情况下,移动客户端系统130可以包括用于这些网络中的任一个的任何合适的通信元件。
图5示出了一个示例移动客户端系统的示例ui。在特定的实施方式中,通过将文本输入移动客户端系统130的ui的搜索查询字段350内,用户可以将查询提交给社交网络系统160。如上所述,通过将描述主题的短语(通常称为“搜索查询”)提供给搜索引擎,在线社交网络的用户可以搜索信息。而且,用户可以将任何字符串输入搜索查询字段350内,以在社交网络系统160上搜索与文本查询匹配的社交图谱实体。然后,社交网络系统160可以搜索数据存储器164(或者具体而言,社交图谱数据库),以识别与查询匹配的社交图谱实体。如下所述,移动客户端系统130可以基于用户输入搜索查询字段350内的文本,识别一个或多个结构化查询。在特定的实施方式中,可以在下拉菜单300中显示所识别的结构化查询。在特定的实施方式中,在文本查询使用储存在移动客户端系统130上的语法模板与预定数量的结构化查询不匹配的情况下,可以将文本查询发送给社交网络系统160,其中,与上下文无关的语法模型可以用于基于语法模型生成的自然语言串生成所建议的查询。
在特定的实施方式中,响应于从第一用户(即,查询用户)接收的文本查询,移动客户端系统130可以生成按照自然语言句法渲染的一个或多个结构化查询,其中,每个结构化查询包括对应于一个或多个识别的社交图谱元素的查询令牌。结构化查询可允许查询用户搜索通过特定边线类型连接至在社交图谱200内的特定用户或概念的内容。作为一个示例,并非通过限制的方式,移动客户端系统130可以从第一用户接收非结构化文本查询。作为响应,移动客户端系统130(例如,通过服务器端元素检测处理)可以访问社交图谱200,然后,解析文本查询,以识别对应于文本查询中的n元文的社交图谱元素。然后,移动客户端系统130可以访问下面描述的语法模型,例如,与上下文无关的语法模型,其包括多个语法模板。识别的社交图谱元素可以用作在语法模板中的终端令牌(“查询令牌”)。然后,所选的语法模板可以用于生成一个或多个结构化查询,其包括引用所识别的社交图谱元素的查询令牌。这些结构化查询可以基于由语法模板生成的文本串,使得使用自然语言语法参考适当的社交图谱元素,渲染这些结构化查询。可以在下拉菜单300中显示(例如,通过客户端预先输入处理),其中,然后,第一用户可以选择搜索期望的内容的适当查询。使用在本文中描述的结构化查询的一些优点包括:根据有限的信息找出在线社交网络的用户,根据该内容与各种社交图谱元素的关系,使来自在线社交网络的内容的虚拟索引联合,或者找出与你和/或你的朋友相关的内容。使用该处理,可以有效解析自然语言渲染处理的输出,例如,以生成修改的或者可替换的结构化查询。而且,由于从语法模型中获得该处理所使用的规则,所以可以在渲染过程中立即反应对于语法模型的规则的任何修改。虽然本公开描述并且示出通过特定的方式生成特定的结构化查询,但是本公开预计通过任何合适的方式生成任何合适的结构化查询。
在特定的实施方式中,移动客户端系统130可从查询/第一用户(对应于第一用户节点202)中接收非结构化文本查询。作为一个示例,并非通过限制的方式,第一用户可希望搜索其他用户,该其他用户:(1)是第一用户的第一程度朋友;以及(2)与斯坦福大学相关(即,由边线206连接至对应于学校“斯坦福”的概念节点204的用户节点202)。然后,第一用户可将文本查询“朋友斯坦福”输入搜索查询字段350内。如在本文中所使用的,对于非结构化文本查询的指代可以表示用户输入的简单文本串。当然,文本查询可相对于标准的语言/语法规则(例如,英语语言语法)结构化。然而,文本查询通常相对于社交图谱元素非结构化。换言之,简单文本查询通常不包括对于特定的社交图谱元素的嵌入式引用。因此,如在本文中所使用的,结构化查询表示包含对于特定的社交图谱元素的引用的查询,允许搜索引擎根据识别的元素进行搜索。而且,文本查询可相对于正式的查询语法是非结构化的。换言之,简单的文本查询不必具有搜索引擎直接可执行的查询命令的格式。虽然本公开描述了通过特定的方式接收特定的查询,但是本公开预计通过任何合适的方式接收任何合适的查询。
在特定的实施方式中,移动客户端系统130可解析从第一用户(即,查询用户)中接收的非结构化文本查询(也简称为搜索查询),以识别一个或多个n元文。通常,n元文是来自给定序列的文本或语音的n个项的连续序列。项可能是来自文本或语音序列的字符、音位、音节、字母、单词、基础对、前缀、或其他可识别的项。n元文可包括由查询用户输入的文本(字母、数字、标点等)的一个或多个字符。大小为1的n元文可以称为“一元语法”,大小为2的n元文可以称为“二元语法”或“双元语法”,大小为3的n元文可以称为“三元语法”,以此类推。每个n元文可包括来自从查询用户中接收的文本查询的一个或多个部分。在特定的实施方式中,每个n元文可包括由第一用户输入的字符串(例如,文本的一个或多个字符)。作为一个示例,并非通过限制的方式,移动客户端系统130可解析文本查询“朋友斯坦福”,以识别以下n元文:朋友;斯坦福;朋友斯坦福。作为另一个示例,并非通过限制的方式,移动客户端系统130可解析文本查询“在帕洛阿尔托的朋友”,以识别以下n元文:朋友;在;帕洛;阿尔托;朋友在;在帕洛;帕洛阿尔托;在帕洛的朋友;也在帕洛;在帕洛阿尔托的朋友。在特定的实施方式中,每个n元文可包括来自文本查询的n个项的连续序列。虽然本公开描述了通过特定的方式解析特定的查询,但是本公开预计通过任何合适的方式解析任何合适的查询。
在特定的实施方式中,移动客户端系统130可以针对在文本查询中识别的每个n元文确定或计算分数,以确定n元文是否对应于社交图谱元素。例如,分数可以是信心分数、概率、质量、排名、任何合适类型的分数、或其任何组合。作为一个示例,并非通过限制的方式,移动客户端系统130可以确定n元文对应于社交图谱元素(例如,社交图谱200的用户节点202、概念节点204或者边线206)的概率分数(也简称为“概率”)。概率分数可以表示在n元文与特定的社交图谱元素之间的相似性或相关性的等级。可以具有多种不同的方法来计算概率。本公开预期任何合适的方法来计算在搜索查询中识别的n元文的概率分数。在特定的实施方式中,移动客户端系统130可以确定n元文对应于特定的社交图谱元素的概率p。可以计算概率p,作为特定的社交图谱元素k对应于给定的特定的搜索查询x的概率。换言之,可以计算概率,作为p=(k|x)。作为一个示例,并非通过限制的方式,可以将n元文对应于社交图谱元素的概率计算作为表示为pi,j,k的概率分数。输入可以是文本查询x=(x1,x2,...,xn)以及一组类别。对于每个(i:j)和类别k,移动客户端系统130可以计算pi,j,k=p(class(xi:j)=k|x)。作为一个示例,并非通过限制的方式,可以如下计算n元文“斯坦福”相对于以下社交图谱元素的分数:学校“斯坦福大学”=0.7;位置“加州,斯坦福”=0.2;用户“艾伦斯坦福”=0.1。作为另一个示例,并非通过限制的方式,可以如下计算n元文“朋友”相对于以下社交图谱元素的分数:用户“朋友”=0.9;电视节目“朋友”=0.1。在特定的实施方式中,移动客户端系统130可以使用前向后向算法确定特定n元文对应于特定社交图谱元素的概率。对于在文本查询内的给定的n元文,移动客户端系统130可以使用前面和后面的n元文,来确定哪个特定的社交图谱元素对应于给定的n元文。在特定的实施方式中,识别的社交图谱元素可以用于生成搜索引擎可执行的查询命令。查询命令可以是结构化语义查询,具有接受特定参数的定义功能。作为一个示例,并非通过限制的方式,可以解析文本查询“朋友我mark”,以形成查询命令:相交(朋友(我)、朋友(mark))。换言之,查询寻找在社交图谱内的与查询用户(“我”)和用户“mark”(即,由朋友型边线206连接至查询用户的用户节点202并且由朋友型边线206连接至用户“mark”的用户节点202的那些用户节点202)相交的节点。虽然本公开描述了通过特定的方式确定n元文是否对应于社交图谱元素,但是本公开预计通过任何合适的方式确定n元文是否对应于社交图谱元素。而且,虽然本公开描述了使用特定类型的分数确定n元文是否对应于社交图谱元素,但是本公开预计使用任何合适类型的分数确定n元文是否对应于社交图谱元素。
在特定的实施方式中,移动客户端系统130可以识别具有比边线阈值概率更大的概率的一个或多个边线206。每个识别的边线206可以对应于至少一个n元文。作为一个示例,并非通过限制的方式,如果pi,j,k>pedge-threshold,则n元文可以仅仅被识别为对应于边线k。而且,每个识别的边线206可以连接至至少一个识别的节点。换言之,移动客户端系统130可以仅仅识别连接至已经预先确定为对应于特定的n元文的用户节点202或概念节点204的边线206或边线类型。未连接至任何预先识别的节点的边线206或边线类型通常不可能对应于在搜索查询中的特定的n元文。通过过滤掉或者忽略这些边线206和边线类型,移动客户端系统130可以更有效地搜索社交图谱200中的相关社交图谱元素。作为一个示例,并非通过限制的方式,参考图2,对于包含“去斯坦福”的文本查询,其中,识别的概念节点204是学校“斯坦福”,则移动客户端系统130可以识别对应于“工作于”的边线206以及对应于“参加”的边线206,这两种边线都连接至用于“斯坦福”的概念节点204。因此,n元文“去”可以识别为对应于这些边线206。然而,对于同一文本查询,移动客户端系统130可能不识别与社交图谱200中的“喜欢”或“粉丝”对应的边线206,这是因为“斯坦福”节点没有与其连接的任何这种边线。虽然本公开描述了通过特定的方式识别与n元文对应的边线206,但是本公开预期通过任何合适的方式识别与n元文对应的边线206。
在特定的实施方式中,移动客户端系统130可以识别具有比节点阈值概率更大的概率的一个或多个边线206。每个识别的节点可以对应于至少一个n元文。作为一个示例,并非通过限制的方式,如果pi,j,k>pnode-threshold,则n元文可以仅仅识别为对应于节点k。而且,每个识别的用户节点202或概念节点204可以连接到至少一个识别的边线206。换言之,移动客户端系统130可以仅仅识别连接至已经预先识别为对应于特定的n元文的边线206的节点或节点类型。未连接至任何预先识别的边线206的节点或节点类型通常不可能对应于在搜索查询中的特定的n元文。通过过滤掉或者忽略这些节点和节点类型,移动客户端系统130可以更有效地搜索社交图谱200中的相关社交图谱元素。作为一个示例,并非通过限制的方式,对于包含“在apple工作”的文本查询,其中,识别的边线206是“在…工作”,则移动客户端系统130可以识别对应于公司apple,inc.的概念节点204,其可以具有与其连接的“在…工作”的多个边线206。然而,对应同一文本查询,移动客户端系统130可以不识别对应于水果类型“苹果”的概念节点204,其可具有与其连接的多个“喜欢”或“粉丝”边线,但是没有“在…工作”边线连接。在特定的实施方式中,节点阈值概率可以对于用户节点202和概念节点204不同,并且可以甚至在这些节点之中不同(例如,一些概念节点204可以具有与其他概念节点204不同的节点阈值概率)。作为一个示例,并非通过限制的方式,如果pi,j,k>puser-node-threshold,则n元文可以识别为对应于用户节点302,kuser,而如果pi,j,k>pconcept-node-threshold,则n元文可以确定为对应于概念节点304,kconcept。在特定的实施方式中,移动客户端系统130可以仅仅识别在对应于第一用户(即,查询用户)的用户节点202的阈值分离程度内的节点。例如,阈值分离程度可以是1、2、3或全部。虽然本公开描述了通过特定的方式识别与n元文对应的节点,但是本公开预期通过任何合适的方式识别与n元文对应的节点。
在特定的实施方式中,移动客户端系统130可以访问多个语法模板。每个语法模板可以包括一个或多个非终端令牌(或“非终端符号”)和一个或多个终端令牌(或“终端符号”/“查询令牌”),其中,特定的非终端令牌可以由终端令牌代替。语法模型是一组形成规则,用于具有形式语言的文本串。虽然本公开描述了访问特定的语法模板,但是本公开预期任何合适的语法。
在特定的实施方式中,移动客户端系统130可以使用一个或多个语法模板生成一个或多个文本串。非终端符号可以由终端符号(即,终端令牌或查询令牌)代替。一些查询令牌可以对应于识别的节点或识别的边线,如前所述。然后,由语法模板生成的文本串可以用作包含对识别的节点或识别的边线的引用的结构化查询的基础。可以按照自然语言语法渲染语法生成的文本串,使得也按照自然语言中渲染基于该串的结构化查询。与上下文无关的语法是每个生产规则的左手边由仅仅单个非终端符号构成的语法。概率上下文无关的语法是元组<σ,n,s,p>,其中,分离集σ和n分别规定终端和非终端符号,其中s∈n是开始符号。p是生产组,其采用形式e→ξ(p),其中,e∈n、ξ∈(σ∪n)+并且p=pr(e→ξ),e扩展成文本串ξ的概率。在给定的非终端e的所有扩展之上的概率p的总和必须是1。虽然本公开描述了通过特定的方式生成文本串,但是本公开预期通过任何合适的方式生成文本串。
在特定的实施方式中,移动客户端系统130可以识别对应于先前识别的节点和边线的一个或多个查询令牌。换言之,如果识别的节点或识别的边线可以用作在特定语法模板中的查询令牌,则该查询令牌可以由移动客户端系统130识别。作为一个示例,并非通过限制的方式,示例语法模板可以是:[用户][用户-过滤][学校]。然后,可以基于在所接收的文本查询内的n元文,确定非终端令牌[用户][用户-过滤]以及[学校]。对于文本查询“朋友斯坦福”,通过将语法模板用作例如“[朋友][谁去][斯坦福大学]”或“[朋友][谁工作于][斯坦福大学]”,可以解析该查询。作为另一个示例,并非通过限制的方式,示例语法模板可以是[用户][用户-过滤][位置]。对于文本查询“朋友斯坦福”,使用语法模板,例如,“[朋友][谁住在][加州,斯坦福]”,可以解析该查询。在以上示例情况下,如果所接收的文本查询的n元文可以用作查询令牌,则这些查询令牌可以由移动客户端系统130识别。虽然本公开描述了通过特定的方式识别特定的查询令牌,但是本公开预期通过任何合适的方式识别任何合适的查询令牌。
在特定的实施方式中,在用户在搜索查询字段350内输入一个或多个文本字符时,则在移动客户端系统130上执行的程序或应用程序可以使文本字符与在移动客户端系统130上预先加载的语法模板匹配。如下所述,然后,移动客户端系统130可以搜索移动客户端系统130的数据存储器,以访问语法模板,以确定一个或多个与查询匹配。作为一个示例,并非通过限制的方式,在每次键击之后,在移动客户端系统130上执行的应用程序可以进行输入的文本字符与语法模板的匹配。作为另一个示例,可以将输入的文本解析成上面描述的一个或多个n元文。在特定的实施方式中,匹配可以是客户端预先输入处理的一部分。在特定的实施方式中,移动客户端系统130可以至少部分基于使输入文本与一个或多个语法模板匹配或识别储存在移动客户端系统130上的社交图谱实体的数据,识别一个或多个结构化查询。
在特定的实施方式中,移动客户端系统130可以选择具有对应于每个预先识别的节点和边线的至少一个查询令牌的一个或多个语法模板。可以根据在文本查询中识别的n元文,仅仅使用特定的语法模板。因此,应检查所有可用的语法模板的终端令牌,以找出与文本查询中识别的n元文匹配的终端令牌。换言之,如果特定的语法模板可以将所有识别的节点和边线用作查询令牌,则语法模板可以被移动客户端系统130选择,作为用于生成结构化查询所使用的可能语法模板。这是有效地自底向上解析的类型,其中,可能的查询令牌用于确定适用语法模板,以应用于该查询。作为一个示例,并非通过限制的方式,对于文本查询“朋友斯坦福”,移动客户端系统130可以识别[朋友]和[斯坦福大学]的查询令牌。如前所述,可以识别语法模板的终端令牌。然后,可以选择能够使用[朋友]和[斯坦福大学]令牌的任何语法模板。例如,由于语法模板[用户][用户-过滤][学校]可以将[朋友]和[斯坦福大学]令牌用作查询令牌,例如,通过形成串“去斯坦福大学的朋友”或“在斯坦福大学工作的朋友”,所以可以选择该语法模板。因此,如果所接收的文本查询的n元文可以用作在语法模板中的查询令牌,则这些语法模板可以由移动客户端系统130选择。同样,如果所接收的文本查询包括不可用作在语法中的查询令牌的n元文,则可以不选择该语法。虽然本公开描述了通过特定的方式选择特定的语法模板,但是本公开预期通过任何合适的方式选择任何合适的语法模板。
在特定的实施方式中,移动客户端系统130可以确定每个所选语法模板的分数。例如,分数可以是信心分数、概率、质量、排名、任何合适类型的分数、或其任何组合。该分数可以基于与用于选择语法中的查询令牌相关联的单独分数或概率。如果语法使用具有较高单独分数的查询令牌,则该语法可以具有较高的相对分数。作为一个示例,并非通过限制的方式,继续先前的示例,n元文“斯坦福”相对于以下社交图谱元素的分数可以如下:学校“斯坦福大学”=0.7;位置“加州,斯坦福”=0.2;用户“艾伦斯坦福”=0.1。n元文“朋友”相对于以下社交图谱元素的分数可以如下:用户“朋友”=0.9;电视节目“朋友”=0.1。因此,如果语法模板使用两者都具有较高的单独分数的用于用户“朋友”和学校“斯坦福大学”的查询令牌(例如,生成串“去斯坦福大学的朋友”),则语法模板[用户][用户-过滤][学校]可以具有较高分数。相反,如果语法模板使用用于用户“朋友”和学校“艾伦斯坦福”的查询令牌(例如,生成串“艾伦斯坦福的朋友”),则语法[用户][用户-过滤][学校]可以具有较低分数,这是因为后一个查询令牌具有较低的单独分数。虽然本公开描述了通过特定的方式确定特定语法的特定分数,但是本公开预期通过任何合适的方式确定任何合适的语法的任何合适的分数。
在特定的实施方式中,移动客户端系统130可以基于对应于语法模板的查询令牌的社交图谱元素与查询用户(即,第一用户,对应于第一用户节点202)的相关性,确定所选语法模板的分数。用户节点202和由边线206直接连接至第一用户节点202的概念节点204可以被视为与第一用户相关。因此,包括对应于这些相关节点和边线的查询令牌的语法模板可以被视为与查询用户更加相关。作为一个示例,并非通过限制的方式,由边线206连接至第一用户节点202的概念节点204可以被视为与第一用户节点202相关。如在本文中所使用的,在参考社交图谱200时,术语“连接”表示社交图谱200内在两个节点之间的存在路径,其中,该路径可以包括一个或多个边线206以及零个或多个中间节点。在特定的实施方式中,通过一个或多个中间节点(因此,两个以上边线206)连接至第一用户节点202的节点也可以被视为与第一用户相关。而且,在特定的实施方式中,第二节点越接近第一用户节点,第二节点可以被视为与第一用户节点越相关。即,分离第一用户节点202和特定的用户节点202或概念节点204的边线206越少(即,分离程度越小),则该用户节点202或概念节点204可以被视为与第一用户越相关。作为一个示例,并非通过限制的方式,如图2所示,对应于学校“斯坦福”的概念节点204连接至对应于用户“c”的用户节点202,因此,概念“斯坦福”可以被视为与用户“c”相关。作为另一个示例,并非通过限制的方式,对应于用户“a”的用户节点202通过一个中间节点(即,对应于用户“b”的中间用户节点202)和两个边线206连接至对应于用户“c”的用户节点202,因此,用户“a”可以被视为与用户“c”相关,但是由于用户“a”的用户节点202是关于用户“a”的第二程度连接,所以该特定的概念节点204可以被视为与由单个边线206连接至用户“c”的用户节点的用户节点202(例如,对应于用户“b”的用户节点202)相比,不太相关。作为另一个示例,并非通过限制的方式,“在线扑克”的概念节点(可以对应于在线多人游戏)的概念节点不由社交图谱200中的任何路径连接至用户“c”的用户节点,因此,概念“在线扑克”可以不被视为与用户“c”相关。在特定的实施方式中,如果第二节点在第一用户节点202的阈值分离程度内,则第二节点可以仅仅被视为与第一用户相关。作为一个示例,并非通过限制的方式,如果阈值分离程度是3,则对应于用户“d”的用户节点202可以被视为与对应于食谱“chickenparmesan”的概念节点204相关,这都在图2示出的社交图谱200上的彼此三度内。然而,继续该示例,对应于应用程序“食谱面面观”的概念节点204不被视为与对应于用户“d”的用户节点202相关,这是因为这些节点在社交图谱200相隔四度。虽然本公开描述了通过特定的方式确定特定的社交图谱元素(因此,其对应的查询令牌)是否彼此相关,但是本公开预计通过任何合适的方式确定任何合适的社交图谱元素是否彼此相关。而且,虽然本公开描述了通过特定的方式确定对应于用户节点202和概念节点204的特定的查询令牌是否与查询用户相关,但是本公开预计同样确定任何合适的查询令牌(因此,任何合适的节点)是否与任何其他合适的用户相关。
在特定的实施方式中,移动客户端系统130可以基于对应于语法的查询令牌的社交图谱信息,确定所选语法模板的分数。作为一个示例,并非通过限制的方式,在确定n元文对应于特定的社交图谱元素的概率p时,该概率的计算还可以考虑社交图谱信息。因此,特定的社交图谱元素k对应于给定的搜索查询x和社交图谱信息g的概率可以计算为p=(k|x,g)。然后,将那些社交图谱元素用作查询令牌,针对识别的节点和边线的单独概率可以用于确定语法模板的分数。在特定的实施方式中,所选语法的分数可以基于在第一用户节点202与在语法模板中用作查询令牌的特定社交图谱元素之间的分离程度。具有对应于在社交图谱200中更接近(即,在元素与第一用户节点202之间的更少分离程度)查询用户的社交图谱元素的查询令牌的语法模板可以具有比使用对应于离用户更远(即,更多分离程度)的社交图谱元素的查询用户的语法更高的分数。作为一个示例,并非通过限制的方式,参考图2,如果用户“b”输入文本查询“chicken”,则在社交图谱200中,与具有对应于未连接至用户“b”的与n元文鸡相关联的其他节点(对应于“鸡块”或“时髦的小鸡舞”的概念节点204)的查询令牌的语法模板相比,具有对应于连接至用户“b”的食谱“chickenparmesan”的概念节点204的查询令牌的语法可以具有较高的分数。在特定的实施方式中,所选的语法模板的分数可以基于对应于语法模板的查询令牌的识别的边线206。如果移动客户端系统130已经识别了对应于所接收的文本查询中的n元文的一个或多个边线,则然后,在由语法模板确定用于文本查询的特定解析的分数时,可以考虑那些识别的边线。如果特定的语法模板包括对应于识别的节点和识别的边线的查询令牌,如果识别的节点实际上不连接至任何识别的边线,则可以给该特定的语法模板分配零或空分数。在特定的实施方式中,所选的语法模板的分数可以基于连接至对应于语法模板的查询令牌的节点的边线206的数量。包括对应于具有更多连接边线206的节点的查询令牌的语法模板可以更受欢迎,并且更可能为搜索查询的目标。作为一个示例,并非通过限制的方式,如果用于“加州,斯坦福”的概念节点204仅仅由5个边线连接,而用于“斯坦福大学”的概念节点204由5000个边线连接,则在确定包含对应于那些节点中的任一个的查询令牌的语法分数时,移动客户端系统130可以确定具有对应于“斯坦福大学”的概念节点204的查询令牌的语法模板具有比参考“加州斯坦福”的概念节点204的语法模板相对更高的分数,这是因为更大数量的边线连接至前一个概念节点204。在特定的实施方式中,所选的语法的分数可以基于与第一用户(即,查询用户)相关联的搜索历史。具有对用于第一用户预先访问的或者与第一用户预先访问的节点相关的节点的查询令牌的语法模板更可能是第一用户的搜索查询的目标。因此,可以给这些语法模板更高的分数。作为一个示例,并非通过限制的方式,如果第一用户之前访问了“斯坦福大学”配置文件页面,但是尚未访问“加州,斯坦福”配置文件页面,则在确定具有对应于这些概念的查询令牌的语法模板的分数时,移动客户端系统130可以确定用于“斯坦福大学”的概念节点204具有较高的分数,因此,语法模板使用对应的查询令牌,这是因为查询用户之前访问了用于该学校的概念节点204。作为另一个示例,并非通过限制的方式,如果第一用户之前访问了电视节目“朋友”的概念配置文件页面,则在确定具有对应于该概念的查询令牌的语法模板的分数时,移动客户端系统130可以确定对应于电视节目“朋友”的概念节点204具有较高的分数,因此,语法模板使用对应的查询令牌,这是因为查询用户之前访问了用于该电视节目的概念节点204。虽然本公开描述了通过特定的方式基于特定的社交图谱信息确定特定的语法模板的分数,但是本公开预计通过任何合适的方式基于任何合适的社交图谱信息确定任何合适的语法模板的分数。
图6至图8示出了用于使文本输入与语法模板和社交图谱实体匹配的示例成本计算的图形表示。在特定的实施方式中,移动客户端系统130可以基于选择一个或多个语法模板或储存的社交图谱实体,生成一个或多个结构化查询。在本文中,对于查询或终端令牌的指代可以表示一个或多个识别的社交图谱元素。在本文中,对于非终端令牌的指代可以表示可以与一个或多个社交图谱实体匹配的结构化查询的令牌。在特定的实施方式中,一个或多个语法模板可以基于自然语言串,并且储存在移动客户端系统130的数据存储器内。一种类型的各储存的社交图谱实体可以用于确定储存的社交图谱实体与一个或多个语法模板的特定非终端令牌的相关性。在特定的实施方式中,移动客户端系统130可以至少部分基于相对于在文本查询中识别的n元文计算每个语法模板的成本,来选择一个或多个语法模板。如上所述,语法模板可以包括一个或多个非终端令牌以及一个或多个终端令牌(也称为查询令牌)。例如,对于语法模板“photosof[user]in[city]”,非终端令牌是[user]和[city],而查询令牌是“photosof”以及“in”。非终端令牌可以与社交图谱实体匹配,并且对于那些匹配实体的引用可以插入语法模板内,以便形成完整的结构化查询(例如,“在旧金山的justin的照片”)。在特定的实施方式中,作为查询令牌与非终端令牌匹配的n元文可以不引起在成本计算中的相关联的插入成本。作为一个示例,并非通过限制的方式,n元文“m”可以至少部分基于在n元文“m”中的字符“m”和查询令牌[my]的部分字符匹配,与查询令牌[my]匹配。否则,在语法模板的特定非终端令牌与任何文本字符不匹配时,引起与在成本计算中的特定非终端令牌相关联的插入成本。在特定的实施方式中,预定数量的社交图谱实体可以储存在移动客户端系统130上,并且每个储存的社交图谱实体可以对应于一个或多个语法模板的查询令牌。而且,在移动客户端系统130上储存社交图谱实体,可以包括识别社交图谱的数据(例如,描述社交图谱实体的文本串或标题)、为特定系统唯一识别社交图谱实体的数据(例如,识别号或文本串)、与社交图谱实体相关联的类型(例如,用户或事件)、或其任何组合。例如,为特定系统识别社交图谱实体的数据可以包括识别字符串或引用社交图谱实体的链接。虽然本公开描述了通过特定的方式生成结构化查询,但是本公开预计通过任何合适的方式生成结构化查询。
在特定的实施方式中,通过预先选择特定类型的社交图谱实体(例如,流行实体),可以确定储存在移动客户端系统130上的社交图谱实体。作为一个示例,储存在移动客户端系统130上的每个用户的社交图谱实体可以对应于用户的朋友、用户的页面、用户组、用户的事件、用户安装在移动客户端系统130上的应用程序、或其任何组合。例如,用户的页面可以包括与用户相关联的实体,例如,用户的家乡、母校、雇主等。在特定的实施方式中,预定数量的社交图谱实体可以是第一程度的社交图谱实体(例如,由边线206连接至用户的用户节点202的概念节点204或用户节点202)或每个用户的高系数实体。
在特定的实施方式中,语法模板可以基于自然语言串,例如,“[用户]的朋友”或“住在[城市]附近的朋友”。可以至少部分基于在社交网络系统160上执行的搜索查询的分析(例如,通过解构流行图谱搜索查询),识别/构造储存在移动客户端系统130的数据存储器内的一个或多个语法模板。作为一个示例,并非通过限制的方式,可以分析在社交网络系统160上的搜索查询的记录,以识别预定数量的最流行的搜索查询。作为另一个示例,可以至少部分基于每个用户的搜索查询历史,为每个用户个性化识别的搜索查询的排名。在特定的实施方式中,识别的搜索查询可以作为自然语言串转换成语法模板,无需与搜索查询相关联的一个或多个社交图谱实体,这可以由在语法模板中的非终端令牌代替。
在特定的实施方式中,每个储存的社交图谱实体的类型可以用于确定储存的社交图谱实体与一个或多个语法模板的特定非终端令牌的相关性。作为一个示例,并非通过限制的方式,与语法模板“[用户]的照片”相关的所储存的社交图谱实体的类型可以是对应于该用户的朋友的类型。作为另一个示例,与非终端令牌[位置]相关的社交图谱实体的类型可以是对应于该用户的页面(例如,家乡)的类型。而且,在用户在搜索查询字段350内输入文本之前,与社交图谱实体相关联的数据以及语法模板可以发送给并且预先加载在移动客户端系统130上。在特定的实施方式中,预先定义的语法模板和针对每个用户的社交图谱实体可以由社交网络系统160按照预定的间隔(例如,一周一次)重新评估并且更新。作为一个示例,并非通过限制的方式,社交网络系统160可以按照预定的间隔将识别社交图谱实体的经更新的数据或语法模板发送给移动客户端系统130。
在特定的实施方式中,移动客户端系统130的客户端预先输入处理可以至少部分基于计算与每个储存的语法模板相关联的成本,识别与文本输入匹配的一个或多个结构化查询。作为一个示例,并非通过限制的方式,每个储存的语法模板可以具有基础成本。而且,每个储存的语法模板的基础成本可以与作为每个预先定义的语法模板的基础的搜索查询的流行度成反比。换言之,从更流行的搜索查询中获得的语法模板可以具有更低的相关联的基础成本。在特定的实施方式中,每个语法模板的每个非终端令牌可以具有相关联的插入成本。作为一个示例,并非通过限制的方式,每个非终端令牌的插入成本可以与特定非终端令牌提供给相关联的预先定义的语法模板的差异程度相关联。例如,对于语法模板“photosofmyfriends”,对应于“friends”的终端令牌可以具有更高的插入成本,而对应于“of”或“my”的令牌可以被视为更通用的并且对识别特定语法模板具有更少贡献。在特定的实施方式中,作为查询令牌与非终端令牌匹配的n元文可以不引起在成本计算中的相关联的插入成本。然而,在语法模板的特定非终端令牌与任何文本字符不匹配时,引起在成本计算中的与特定非终端令牌相关联的插入成本。在特定的实施方式中,与特定非终端令牌相关联的一个或多个社交图谱实体均可以具有相关联的插入成本。
作为一个示例,并非通过限制的方式,在搜索查询字段350内的文本输入“photom”可以分成n元文“photo”和“m”,并且与语法模板“photosofmyfriends”和“photosofmyfriendswhoworkat[employer]”匹配,其中,[employer]是可以与一个或多个储存的社交图谱实体相关联的非终端令牌,如下所述。而且,基于社交图谱实体的类型,可以识别一个或多个社交图谱实体与非终端令牌相关。如上所述,客户端预先输入处理可以将文本输入“photom”解析成n元文“photo”和“m”。如在图6的示例中所示,可以相对于n元文“photo”和“m”评估语法模板610“photosofmyfriends”。作为一个示例,并非通过限制的方式,在完全匹配时,预先定义的语法模板610“photosofmyfriends”可以具有查询令牌[photos]、[of]、[my]以及[friends],或者以其他方式引起插入成本,如上所述。首先,n元文“photo”可以匹配,作为对应于储存的社交图谱实体并且在成本计算中不引起成本的语法模板610的查询令牌[photo],如620所示。在移动客户端系统130上的修改的预先输入处理可以对于输入的文本字符的剩余部分评估语法模板610的剩余的非终端令牌。如630所示,n元文“m”不与查询令牌[of]匹配。结果,成本计算引起与查询令牌[of]不匹配相关的插入成本。如640所示,n元文“m”可以作为查询令牌[my]匹配,结果,不引入任何插入成本。作为一个示例,并非通过限制的方式,n元文“m”可以至少部分基于在n元文“m”中的字符“m”和查询令牌[my]的部分字符匹配,与查询令牌[my]匹配。虽然本公开描述了基于特定的标准确定在特定的n元文与特定的查询令牌之间的匹配,但是本公开预计基于任何合适的标准(例如,信心分数、概率、质量、排名、或其任何组合)确定在任何合适的n元文与任何合适的查询令牌之间的匹配。由于没有剩余的文本字符,所以引起与不匹配的查询令牌[friends]相关联的插入成本,如650所示。假设语法模板610“photosofmyfriends”的基础成本是1.1,并且不匹配的查询令牌“photos”、“of”、“my”以及“friends”的插入成本分别是2.2、0.5、0以及1.5,对于结构化搜索查询“photosofmyfriends”,计算的成本是3.1。
如在图7的示例中所示,可以相对于输入的文本“photom”评估语法模板710“photosofmyfriendswhoworkat[employer]”。作为一个示例,并非通过限制的方式,在完全匹配时,语法模板710可以具有查询令牌[photos]、[of]、[my]、[friends]、[who]、[work]、[at]以及利用对应于类型“employer”的最低成本储存的社交图谱实体的社交图谱实体“facebook”评估的非终端令牌[employer]。首先,n元文“photo”可以匹配,作为语法模板710的查询令牌[photo],并且在成本计算中不引起成本,如720所示。可以针对剩余的n元文评估预先定义的语法模板的剩余非终端令牌。如730所示,n元文“m”不与查询令牌[of]匹配。结果,成本计算引起与查询令牌[of]不匹配的n元文相关联的插入成本。如740所示,n元文“m”作为查询令牌[my]匹配,结果,不引入任何插入成本。如上所述,n元文“m”可以至少部分基于在n元文“m”中的字符“m”和查询令牌[my]的部分字符匹配,与查询令牌[my]匹配。由于没有剩余的文本输入,所以引起与不匹配的查询令牌[friends]、[who]、[work]以及[at]相关联的插入成本,如750至790所示。假设语法模板710“photosofmyfriendswhoworkat[employer]”的基础成本是2.1,并且在不作为查询令牌[photos]、[of]、[my]、[friends]、[who]、[work]、[at]以及[employer]匹配时,非终端令牌的插入成本分别是2.2、0.5、0、1.5、0.1、0.3、0.5以及1.0。并且假设社交实体“facebook”的插入成本是0.03,对于结构化搜索查询“photosofmyfriendswhoworkatfacebook”,产生的计算成本是6.03。
如在图8的示例中所示,可以相对于输入的文本“照片m”评估具有社交图谱实体“microsoft”的语法模板810“photosofmyfriendswhoworkat[employer]”。如上所述,n元文“照片”可以匹配,作为语法模板810的查询令牌[photo],并且在成本计算中不引起成本,如820所示。可以针对剩余的n元文评估预先定义的语法模板的剩余非终端令牌。如830所示,n元文“m”不作为查询令牌[of]匹配。结果,成本计算引起与不匹配的查询令牌[of]相关联的插入成本。在特定的实施方式中,在客户端预先输入处理与不止一个查询令牌匹配时,客户端预先输入处理可以使n元文与更高的插入成本查询令牌匹配。作为一个示例,并非通过限制的方式,假设在不匹配时,非终端令牌[employer]、社交图谱实体“microsoft”、以及查询令牌[my]分别具有插入成本1.0、0.04以及0,客户端预先输入处理可以使n元文“m”和非终端令牌[employer]以及社交图谱实体“microsoft”匹配,而不作为查询令牌[my]匹配,如840和890所示。作为一个示例,并非通过限制的方式,n元文“m”可以至少部分基于在n元文“m”中的字符“m”和社交图谱实体“microsoft”的部分字符匹配,与利用社交图谱实体“microsoft”访问的非终端令牌[employer]匹配。而且,利用社交图谱实体“microsoft”评估的[employer]是对应于匹配的社交图谱实体(例如,“microsoft”)的非终端令牌。结果,成本计算不引起与非终端令牌[employer]或社交图谱实体“microsoft”相关联的任何插入成本,并且引起与不匹配的查询令牌[my]相关联的插入成本。由于没有剩余的n元文,所以引起与不匹配的[friends]、[who]、[work]以及[at]相关联的插入成本,如850至880所示。假设语法模板810“photosofmyfriendswhoworkat[employer]”的基础成本是2.1,不匹配的查询令牌[photos]、[of]、[my]、[friends]、[who]、[work]、[at]以及[employer]的插入成本分别是2.2、0.5、0、1.5、0.1、0.3、0.5以及1.0。并且假设社交实体“microsoft”的插入成本是0.04,对于结构化搜索查询“photosofmyfriendswhoworkatmicrosoft”,产生的计算成本是5.04。
在特定的实施方式中,移动客户端系统130可以生成对应于所选的语法模板(例如,具有比语法阈值分数更大的分数的那些语法模板)的一个或多个结构化查询。每个结构化查询可以基于对应的所选语法模板生成的文本串。作为一个示例,并非通过限制的方式,响应于文本查询“photom”,语法[objects][user-filter][user][user]可以生成文本串“photosofmyfriends”,其中,语法的非终端令牌[objects]、[user-filter]、[user]分别由查询令牌[photos]、[of]、[my]以及[friends]代替,以生成串。在特定的实施方式中,由语法使用自然语言语法生成的串可以在自然语言中作为结构化查询来渲染。作为一个示例,并非通过限制的方式,前一个示例的结构化查询使用查询令牌[of],该查询令牌使用自然语言语法,使得由语法渲染的串具有自然语言。然后,通过修改对应于社交图谱元素的查询令牌,以包括对那些社交图谱元素的引用,可以渲染由语法生成的自然语言串,以形成结构化查询。作为一个示例,并非通过限制的方式,可以渲染文本串“photosofmyfriends”,使得在结构化查询中出现针对“friends”的查询令牌,作为对应于用户的朋友的一个或多个第二用户节点202的引用,其中,引用可以包括突出性、在线链接、片段、另一个合适的引用或其任何组合。每个结构化查询可以包括对应于相应所选语法的查询令牌,其中,这些查询令牌对应于一个或多个识别的边线206以及一个或多个识别的节点。
如下所述,客户端预先输入处理可以识别与在搜索查询字段350内输入的文本匹配的一个或多个结构化查询。在特定的实施方式中,识别的结构化查询可以至少部分基于计算的成本进行排名,如上所述。作为一个示例,并非通过限制的方式,识别的结构化查询可以至少部分基于最低计算成本排名。例如,基于上述成本计算,为文本输入“photom”识别的结构化查询可以具有“photosofmyfriends”、“photosofmyfriendswhoworkatmicrosoft”以及““photosofmyfriendswhoworkatfacebook”的从最高排序到最低的示例排名。虽然本公开描述了通过特定的方式使特定的文本输入与特定的结构化查询匹配并且将特定的文本输入排名,但是本公开预计通过任何合适的方式使任何合适的文本输入与任何合适的结构化查询匹配并且将任何合适的文本输入排名。在于2010年11月12日提交的美国专利申请号13/674695中,可以找出关于使用语法模型的更多信息,该申请通过引证结合于此。
图9至图10示出了在示例移动客户端系统上的具有示例结构化搜索查询的示例ui。在特定的实施方式中,在识别结构化查询之后,移动客户端系统130可以基于识别的语法模板或者储存的社交图谱实体,显示一个或多个结构化查询。例如,可以在用户的移动客户端系统130的ui或移动网络浏览器上显示结构查询,例如,可以包括引用的社交图谱元素的名称(名称串)、其他查询限制(例如,布尔操作符等)、以及可能与引用的社交图谱实体相关联的其他元数据。作为一个示例,并非通过限制的方式,在查询用户的移动客户端系统130上的移动网络浏览器或ui可在下拉菜单300内显示识别的结构化查询,如图9至图10所示。在每次键击之后,客户端预先输入处理可以使在搜索查询字段350内输入的文本与预先定义的语法模板匹配。在特定的实施方式中,由于用户在搜索查询字段350内提供额外字符,所以客户端预先输入处理可以评估额外文本,以在下拉菜单300中更新向用户呈现的结构化查询。而且,然后,用户可点击或者以其他方式选择(例如,通过在移动客户端系统130的显示器上键入所选的结构化查询),以指示用户希望社交网络系统160执行的特定的结构化查询。在特定的实施方式中,可以按照排序顺序(例如,基于之前确定的成本计算,如上所述),将结构化查询呈现给查询用户。可以在更显著的位置中呈现具有更高排名的结构化查询。而且,在特定的实施方式中,可以向查询用户仅仅显示成本计算具有低于阈值成本值的结构化查询。作为一个示例,并非通过限制的方式,如图9至图10所示,结构化查询可以在下拉菜单300中呈现给查询用户,其中,可以在菜单的顶部呈现更高排名的结构化查询,在下拉菜单300中按照递减顺序呈现更低排名的结构化查询。在特定的实施方式中,在结构化查询内的一个或多个引用可以突出(例如,轮廓、下划线、圆圈、加粗、斜体、着色、提亮、偏移、覆盖),以便指示其与特定的社交图谱元素的对应性。而且,可以在下拉菜单300中通过结构化查询显示对应于搜索结果类型的图谱指标。虽然本公开描述了通过特定的方式显示特定的结构化查询,但是本公开预计通过任何合适的方式显示任何合适的结构化查询。
如上所述,在每次键击之后,客户端预先输入处理可以使搜索查询字段350内输入的文本与预先定义的语法模板匹配。结果,在每次键击之后,可以更新在下拉菜单300中显示的识别的结构化查询。在图9示出的示例中,下拉菜单300可以显示与文本输入“photos”匹配的6个最高排名的结构化查询。由于用户在搜索查询字段350中提供额外字符,所以客户端预先输入处理可以评估额外文本,以更新在下拉菜单300中向用户呈现的结构化查询。在图10示出的示例中,下拉菜单300可以显示与文本输入“photosofmy”匹配的6个最高排名的结构化查询。作为一个示例,并非通过限制的方式。
在特定的实施方式中,社交网络系统160可从查询用户接收从移动客户端系统130中在下拉菜单300中选择一个结构化查询。在接收的结构化查询中引用的节点和边线可分别称为所选节点和所选边线。作为一个示例,并非通过限制的方式,在查询用户的移动客户端系统130上的网络浏览器或ui可在下拉菜单300内显示识别的结构化查询,如上所述,然后,用户可点击或者以其他方式选择(例如,通过在移动客户端系统130的显示器上键入所选的结构化查询)所述结构化查询,以指示用户希望社交网络系统160执行的特定的结构化查询。作为一个示例,并非通过限制的方式,参考图10,查询用户可以将输入的后续非结构化文本查询“photosofmy”修改至搜索查询字段350。移动客户端系统130可以基于更新的n元文修改显示的结构化查询,并且基于更新的n元文修改每个储存的语法模板的重新计算的成本。在选择特定的识别的结构化查询时,用户的移动客户端系统130可呼叫或者以其他方式指导社交网络系统160执行所选的结构化查询。虽然本公开描述了通过特定的方式接收特定的结构化查询的选择,但是本公开预计通过任何合适的方式接收任何合适的结构化查询的选择。
图11示出了用于生成客户端结构化搜索结果的一个示例方法。该方法可在步骤1110中开始,其中,所述移动客户端系统从在线社交网络的第一用户中接收非结构化文本查询。在步骤1120中,可以从所述移动客户端系统的数据存储器中访问所述在线社交网络的社交图谱的多个第一节点中的一个或多个节点。在特定的实施方式中,所述社交图谱包括多个节点以及连接所述节点的多个边线。而且,在两个节点之间的每个边线可以表示在其间的单个分离程度。在特定的实施方式中,所述节点可以包括均对应于与所述在线社交网络相关联的概念或第二用户的第一节点以及对应于第一用户的第二节点。在步骤1130中,可以从所述移动客户端系统的数据存储器中访问一组语法模板。在特定的实施方式中,每个语法模板包括一个或多个非终端令牌以及一个或多个查询令牌。如上所述,查询或终端令牌可以对应于一个或多个识别的社交图谱元素。而且,特定的非终端令牌可以在语法模板中由一个或多个识别的社交图谱元素(例如,查询令牌)代替。在特定的实施方式中,所述查询令牌包括对于零个或多个第二节点以及一个或多个边线的引用。作为一个示例,而非通过限制的方式,每个语法模板基于自然语言串。在步骤1140中,通过使所述非结构化文本查询与具有对应于匹配的节点的非终端令牌的一个或多个访问节点以及一个或多个语法模板匹配,所述移动客户端系统可以生成一个或多个结构化查询。作为一个示例,而非通过限制的方式,使非结构化文本查询与一个或多个语法模板匹配,可以至少部分基于一个或多个n元文与在语法模板的一个或多个查询令牌之间的部分字符匹配。在特定的实施方式中,每个结构化查询可以包括对于与所述一个或多个非终端令牌匹配的一个或多个访问节点以及在对应的语法模板中引用的所述零个或多个第二节点以及所述一个或多个边线的引用。在步骤1150中,所述移动客户端系统可以向第一用户显示一个或多个完整的结构化查询。在适当的情况下,特定的实施方式可重复图11的方法的一个或多个步骤。虽然本公开描述和显示了按照特定的顺序发生的图11的方法的特定步骤,但是本公开预计按照任何合适的顺序发生的图11的方法的任何合适的步骤。而且,虽然本公开描述和显示了执行图11的方法的特定步骤的特定元件、装置或系统,但是本公开预计执行图11的方法的任何合适的步骤的任何合适的元件、装置或系统的任何合适的组合。
社交图谱亲和力和系数
在特定的实施方式中,社交网络系统160可以确定各种社交图谱实体彼此的社交图谱亲和力(在本文中可以称为“亲和力”)。亲和力可以表示在与在线社交网络相关联的特定对象(例如,用户、概念、内容、活动、广告、与在线社交网络相关联的其他对象或其任何合适的组合)之间的兴趣关系或水平的强度。还可以相对于与第三方系统170或其他合适的系统相关联的对象确定亲和力。可以确定每个用户的社交图谱的整体亲和力、主题、或内容的类型。整体亲和力可以基于继续监控与社交图谱实体相关联的活动或关系改变。虽然本公开描述了通过特定的方式确定特定的亲和力,但是本公开预计通过任何合适的方式确定任何合适的亲和力。
在特定的实施方式中,社交网络系统160可以使用亲和力系数(在本文中可以称为“系数”)测量或量化社交图谱亲和力。系数可以表示或量化与在线社交网络相关联的特定用户之间的关系的强度。系数还可以表示概率或函数,其根据用户对活动的兴趣测量用户将执行特定的活动的预测概率。通过这种方式,可以根据用户的先前活动,预测用户的未来活动,其中,至少部分根据用户的活动历史,计算系数。系数可以用于预测在在线社交网络内或外面的任意数量的活动。作为一个示例,并非通过限制的方式,这些活动可以包括各种类型的通信,例如,发送消息、张贴内容或者对内容评论;各种类型的观察活动,例如,访问或查看配置文件页面、媒体或其他合适的内容;关于两个以上社交图谱实体的各种类型的重合信息,例如,在相同的群组内,标记在相同的照片内,在相同的位置登记,或者参加相同的活动;或其他合适的活动。虽然本公开描述了通过特定的方式测量亲和力,但是本公开预计通过任何合适的方式测量亲和力。
在特定的实施方式中,社交网络系统160可以使用各种因子,来计算系数。这些因子可以包括(例如)用户活动、在对象之间的关系的类型、位置信息、其他合适的因子或其任何组合。在特定的实施方式中,在计算系数时,不同的因子可以不同地加权。每个因子的权重可以是静态的,或者权重可以根据(例如)用户、关系的类型、活动的类型、用户的位置等改变。这些因子的评级可以根据其权重组合,以确定用户的整体系数。作为一个示例,并非通过限制的方式,可以给特定的用户活动分配评级和权重,同时给与特定的用户活动相关联的关系分配评级和相关联的权重(例如,因此,总权重是100%)。为了朝着特定对象计算用户的系数,给用户活动分配的评级可以包括(例如)整体系数的60%,而在用户与对象之间的关系可以包括整体系数的40%。在特定的实施方式中,在确定用于计算系数的各种因子的权重时,社交网络系统160可以考虑各种变量,例如,自访问信息的时间、衰减因子、访问频率、与信息的关系、关于访问哪个信息的与对象的关系、与连接至对象的社交图谱实体的关系、用户活动的短期或长期平均数、用户反馈、其他合适的变量或其任何组合。作为一个示例,并非通过限制的方式,系数可以包括衰减因子,其促使由特定的活动提供的信号的强度随着时间衰减,以便在计算系数时,最近活动更相关。可以基于继续跟踪系数所基于的活动,来继续更新评级和权重。任何类型的处理或算法可以用于对每个因子的评级以及分配给因子的权重进行分配、合并、平均化等。在特定的实施方式中,社交网络系统160可以使用在历史活动和过去的用户响应上培训的机器学习算法确定系数或者通过对着各种选择和测量响应曝光这些系数来由用户形成的数据。虽然本公开描述了通过特定的方式计算系数,但是本公开预计通过任何合适的方式计算系数。
在特定的实施方式中,社交网络系统160可以基于用户的活动计算系数。社交网络系统160可以在在线社交网络上、在第三方系统170上、在其他合适的系统上或其任何组合上,监控这种活动。可以跟踪或监控任何合适类型的用户活动。典型的用户活动包括查看配置文件页面、创建或张贴内容、与内容互动、加上标记或者在图像内加上标记、加入群组、列出和确认出席活动,登记位置,喜欢特定的页面、创建页面,并且执行促进社会活动的其他任务。在特定的实施方式中,社交网络系统160可以基于具有特定类型的内容的用户活动,计算系数。该内容可以与在线社交网络、第三方系统170或另一个合适的系统相关联。该内容可以包括用户、配置文件页面、帖子、新闻故事、头条、聊天室谈话、电子邮件、广告、图片、引用、其他合适的对象或其任何组合。社交网络系统160可以分析用户的活动,以确定一个或多个活动是否表示主题、内容、其他用户等的亲和力。作为一个示例,并非通过限制的方式,如果用户可以使频繁张贴的内容与“咖啡”或其他变体相关,那么社交网络系统160可以确定用户相对于概念“咖啡”具有高系数。可以给特定的活动或特定类型的活动分配比其他活动更高的权重和/或评级,这可以影响整体计算系数。作为一个示例,并非通过限制的方式,如果第一用户给第二用户发送电子邮件,那么与如果第一用户仅仅查看第二用户的用户配置文件相比,该活动的加权或评级可以更高。
在特定的实施方式中,社交网络系统160可以基于在特定对象之间的关系的类型计算系数。参照社交图谱200,社交网络系统160可以在计算系数时分析连接特定的用户节点202和概念节点204的边线206的数量和/或类型。作为一个示例,并非通过限制的方式,可以给由配偶型边线(表示两个用户是夫妻)连接的用户节点202分配比由朋友型边线连接的用户节点202更高的系数。换言之,根据分配给活动的权重以及特定用户的关系,可以确定关于用户的配偶的内容的整体亲和力比关于用户的朋友的内容更高。在特定的实施方式中,用户与另一个对象具有的关系可以影响用户相对于计算该对象的系数的活动的权重和/或评级。作为一个示例,并非通过限制的方式,如果用户在第一张照片中标记,但是仅仅喜欢第二张照片,那么社交网络系统160可以确定用户相对于第一张照片具有比第二张照片更高的系数,这是因为与具有与内容的喜欢型关系相比,具有与内容的标记型关系,可以分配更高的权重和/或评级。在特定的实施方式中,社交网络系统160可以基于一个或多个第二用户与特定对象具有的关系,给第一用户计算系数。换言之,其他用户与对象具有的连接和系数可以影响第一用户用于该对象的系数。作为一个示例,并非通过限制的方式,如果第一用户连接至一个或多个第二用户或者对一个或多个第二用户具有高系数,并且那些第二用户连接至特定的对象或者对特定的对象具有高系数,那么社交网络系统160可以确定第一用户也应对该特定的对象具有较高的系数。在特定的实施方式中,系数可以基于在特定对象之间的分离程度。更低的系数可以表示第一用户在社交图谱200中分享对与第一用户间接连接的用户的内容对象的兴趣的可能性降低。作为一个示例,并非通过限制的方式,在社交图谱200中更接近的社交图谱实体(即,更小的分离程度)可以具有比在社交图谱200中相隔更远的实体更高的系数。
在特定的实施方式中,社交网络系统160可以基于位置信息计算系数。在地理上彼此更接近的对象可以被视为比更远的对象彼此更相关或更感兴趣。在特定的实施方式中,用户朝着特定对象的兴趣可以基于对象的位置与和用户相关联的当前位置(或用户的客户端系统130的位置)的接近度。第一用户可以对更接近第一用户的其他用户或概念更感兴趣。作为一个示例,并非通过限制的方式,如果用户与机场相距1英里并且与加油站相距2英里,那么社交网络系统160可以基于机场与用户的接近度确定用户对机场具有比加油站更高的系数。
在特定的实施方式中,社交网络系统160可以基于系数信息,相对于用户执行特定的活动。系数可以用于根据用户对活动的兴趣,预测用户是否执行特定的活动。在生成或向用户显示任何类型的对象时,可以使用系数,例如,广告、搜索结果、新闻故事、介质、消息、通知或其他合适的对象。系数还可以用于将这种对象酌情排名和排序。通过这种方式,社交网络系统160可以提供与用户的兴趣和当前环境相关的信息,提高了找出这种兴趣信息的可能性。在特定的实施方式中,社交网络系统160可以基于系数信息,生成内容。可以基于用户特有的系数,提供或选择内容对象。作为一个示例,并非通过限制的方式,系数可以用于给用户生成介质,其中,可以给用户显示用户相对于介质对象具有高整体系数的介质。作为另一个示例,并非通过限制的方式,系数可以用于给用户生成广告,其中,可以给用户显示用户相对于广告对象具有高整体系数的广告。在特定的实施方式中,社交网络系统160可以基于系数信息,生成搜索结果。可以相对于查询用户,基于与搜索结果相关联的系数,给特定用户的搜索结果评分或排名。作为一个示例,并非通过限制的方式,与和具有更低系数的对象对应的结果相比,与具有更高系数的对象对应的搜索结果可以在搜索结果页面上排名更高。
在特定的实施方式中,社交网络系统160可以响应于特定系统或处理的系数的请求,计算系数。为了预测用户可以在规定的情况下采取(或者可以作为其主体)的可能措施,任何处理可以请求用户的计算系数。该请求还可以包括用于各种因子的一组权重,这些因子用于计算系数。这个请求可以来自在线社交网络上运行的处理、来自第三方系统170(例如,通过api或其他通信渠道)或者来自另一个合适的系统。响应于该请求,社交网络系统160可以计算系数(或者如果预先计算和储存了,那么访问系数信息)。在特定的实施方式中,社交网络系统160可以计算相对于特定处理的亲和力。不同的处理(位于在线社交网络的内部和外部)可以请求一个特定对象或一组特定对象的系数。社交网络系统160可以提供与请求亲和力的测度的特定处理相关的亲和力的测度。通过这种方式,每个处理接收专用于不同背景的亲和力的测度,在该背景下,该处理使用亲和力的测度。
与社交图谱亲和力和亲和力系数相结合,特定实施方式可以使用在于2006年8月11日提交的美国专利申请号11/503093、于2010年12月22日提交的美国专利申请号12/977027、于2010年12月23日提交的美国专利申请号12/978265以及于2012年10月1日提交的美国专利申请号13/632869中公开的一个或多个系统、元件、部件、功能、方法、操作或步骤,每个申请通过引证结合于此。
系统和方法
图12示出了一个示例计算机系统1200。在特定的实施方式中,一个或多个计算机系统1200执行在本文中描述或显示的一个或多个方法的一个或多个步骤。在特定的实施方式中,一个或多个计算机系统1200提供在本文中描述或显示的功能。在特定的实施方式中,在一个或多个计算机系统1200上运行的软件执行在本文中描述或显示的一个或多个方法的一个或多个步骤,或者提供在本文中描述或显示的功能。特定的实施方式包括一个或多个计算机系统1200的一个或多个部分。在本文中,在适当的情况下,计算机系统的引用可以包括计算装置,反之亦然。而且,在适当的情况下,计算机系统的引用可以包括一个或多个计算机系统。
本公开预计具有任何适当数量的计算机系统1200。本公开预计具有采用任何合适的物理形式的计算机系统1200。作为示例,并非通过限制的方式,计算机系统1200可为嵌入式计算机系统、片上系统(soc)、单板计算机系统(sbc)(例如,计算机模块(com)或系统模块(som))、台式电脑系统、膝上型或笔记本式电脑系统、交互式自助服务机、主机、计算机系统的网格、移动电话、个人数字助理(pda)、服务器、平板电脑系统、或其中的两个以上的组合。在适当的情况下,计算机系统1200可包括一个或多个计算机系统1200;可为单一式或分布式;跨过多个位置;跨过多台机器;或者位于云中,其在一个或多个网络中可包括一个或多个云元件。在适当的情况下,一个或多个计算机系统1200可执行在本文中描述或显示的一个或多个方法的一个或多个步骤,无需大量空间或时间限制。作为示例,并非通过限制的方式,一个或多个计算机系统1200可实时或以成批的方式执行在本文中描述或显示的一个或多个方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统1200可在不同的时间或者在不同的位置执行在本文中描述或显示的一个或多个方法的一个或多个步骤。
在特定的实施方式中,计算机系统1200包括处理器1202、存储器1204、储存器1206、输入/输出(i/o)接口1208、通信接口1210以及总线1212。虽然本公开描述和显示了在特定的设置中具有特定数量的特定元件的特定计算机系统,但是本公开预计在任何合适的设置中具有任何合适的数量的任何合适的元件的任何合适的计算机系统。
在特定的实施方式中,处理器1202包括用于执行指令的硬件,例如,构成计算机程序的那些指令。作为示例,并非通过限制的方式,为了执行指令,处理器1202可从内部寄存器、内部高速缓存、存储器1204或储存器1206中检索(或提取)指令;将这些指令解码并且执行这些指令;然后将一个或多个结果写入内部寄存器、内部高速缓存、存储器1204或储存器1206中。在特定的实施方式中,处理器1202可以包括用于数据、指令或地址的一个或多个内部高速缓存。本公开预计处理器1202在适当的情况下包括任何合适数量的任何合适的内部高速缓存。作为示例,并非通过限制的方式,处理器1202可以包括一个或多个指令高速缓存、一个或多个数据高速缓存、以及一个或多个转译后备缓冲器(tlb)。在指令高速缓存内的指令可以是在存储器1204或储存器1206内的指令的副本,并且指令高速缓存可以加速由处理器1202检索那些指令。在数据高速缓存内的数据可以是在存储器1204或储存器1206内的数据的副本,用于要起作用的在处理器1202上执行的指令;在处理器1202上执行的先前指令的结果由在处理器1202上执行的后续指令访问或者写入存储器1204或储存器1206内;或者其他合适的数据。数据高速缓存可以加速处理器1202的读取或写入操作。tlb可以加速处理器1202的虚拟地址转译。在特定的实施方式中,处理器1202可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开预计处理器1202包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器1202可以包括一个或多个算术逻辑单元(alu);是多核处理器;或者包括一个或多个处理器1202。虽然本公开描述和显示了特定的处理器,但是本公开预计任何合适的处理器。
在特定的实施方式中,存储器1204包括主存储器,用于储存要执行的处理器1202的指令或者要起作用的处理器1202的数据。作为示例,并非通过限制的方式,计算机系统1200可将指令从储存器1206或另一个源(例如,另一个计算机系统1200)中装载到存储器1204中。然后,处理器1202可将指令从存储器1204中装载到内部寄存器或内部高速缓存中。为了执行这些指令,处理器1202可从内部寄存器或内部高速缓存中检索指令,并且将这些指令解码。在执行指令期间或之后,处理器1202可将一个或多个结果(这些结果可为中间或最终结果)写入内部寄存器或内部高速缓存中。然后,处理器1202可将这些结果中的一个或多个写入存储器1204中。在特定的实施方式中,存储器1204仅仅执行在一个或多个内部寄存器或内部高速缓存内或者在存储器1204内(与储存器1206相反或者在别处)的指令,并且仅仅操作在一个或多个内部寄存器或内部高速缓存内或者在存储器1204内(与储存器1206相反或者在别处)的数据。一个或多个内存总线(这些总线均可包括地址总线和数据总线)可使处理器1202与存储器1204耦接。如下所述,总线1212可包括一个或多个内存总线。在特定的实施方式中,一个或多个内存管理单元(mmu)位于处理器1202与存储器1204之间,并且有助于访问由处理器1202请求的存储器1204。在特定的实施方式中,存储器1204包括随机存取存储器(ram)。在适当的情况下,该ram可为易失性存储器。在适当的情况下,该ram可为动态ram(dram)或静态ram(sram)。而且,在适当的情况下,该ram可为单端口或多端口ram。本公开预计任何合适的ram。在适当的情况下,存储器1204可以包括一个或多个存储器1204。虽然本公开描述和显示了特定的存储器,但是本公开预计任何合适的存储器。
在特定的实施方式中,储存器1206包括用于数据或指令的大容量存储器。作为示例,并非通过限制的方式,储存器1206可包括硬盘驱动器(hdd)、软盘驱动器、闪速存储器、光盘、磁光盘、磁带或通用串行总线(usb)驱动器或其中的两个以上的组合。在适当的情况下,储存器1206可包括可移动或固定的(或固定的)介质。在适当的情况下,储存器1206可位于计算机系统1200的内部或外部。在特定的实施方式中,储存器1206是非易失性固态存储器。在特定的实施方式中,储存器1206包括只读存储器(rom)。在适当的情况下,该rom可为掩膜编程的rom、可编程的rom(prom)、可擦prom(eprom)、电可擦prom(eeprom)、电可改写rom(earom)、或闪速存储器或其中的两个以上的组合。本公开预计采用任何合适的物理形式的大容量储存器1206。在适当的情况下,储存器1206可以包括促进在处理器1202与储存器1206之间通信的一个或多个储存控制单元。在适当的情况下,储存器1206可以包括一个或多个储存器1206。虽然本公开描述和显示了特定的储存器,但是本公开预计任何合适的储存器。
在特定的实施方式中,i/o接口1208包括硬件和/或软件,其提供一个或多个接口,用于在计算机系统1200与一个或多个i/o装置之间进行通信。在适当的情况下,计算机系统1200可包括这些i/o装置中的一个或多个。这些i/o装置中的一个或多个能够在个人与计算机系统1200之间进行通信。作为示例,并非通过限制的方式,i/o装置可包括键盘、按键、麦克风、显示器、鼠标、打印机、扫描仪、扬声器、静物照相机、唱针、平板电脑、触摸式屏幕、轨迹球、摄影机、另一个合适的i/o装置或其中的两个以上的组合。i/o装置可包括一个或多个传感器。本公开预计具有任何合适的i/o装置以及用于这些i/o装置的任何合适的i/o接口1208。在适当的情况下,i/o接口1208可包括一个或多个装置或软件驱动器,其能够允许处理器1202驱动这些i/o装置中的一个或多个。在适当的情况下,i/o接口1208可包括一个或多个i/o接口1208。虽然本公开描述和显示了特定的i/o接口,但是本公开预计具有任何合适的i/o接口。
在特定的实施方式中,通信接口1210包括硬件和/或软件,其提供一个或多个接口,用于在计算机系统1200与一个或多个其他计算机系统1200或一个或多个网络之间进行通信(例如,基于分组的通信)。作为示例,并非通过限制的方式,通信接口1210可包括网络接口控制器(nic)、或用于与以太网或其他有线网络或无线nic(wnic)进行通信的网络适配器、或用于与无线网络(例如,wi-fi网络)进行通信的网络适配器。本公开预计具有任何合适的网络以及用于该网络的任何合适的通信接口1210。作为示例,并非通过限制的方式,计算机系统1200可与自组织网络、个人区域网络(pan)、局域网(lan)、广域网(wan)、城域网(man)、或互联网的一个或多个部分或其中的两个以上的组合进行通信。这些网络中的一个或多个的一个或多个部分可为有线或无线部分。作为一个示例,计算机系统1200可与无线pan(wpan)(例如,bluetoothwpan)、wi-fi网络、wi-max网络、蜂窝电话网络(例如,全球移动通讯系统(gsm)网络)、或其他合适的无线网络或其中的两个以上的组合进行通信。在适当的情况下,计算机系统1200可以包括用于这些网络中的任一个的任何合适的通信接口1210。在适当的情况下,通信接口1210可以包括一个或多个通信接口1210。虽然本公开描述和显示了特定的通信接口,但是本公开预计具有任何合适的通信接口。
在特定的实施方式中,总线1212包括硬件和/或软件,其使计算机系统1200的元件彼此耦接。作为示例,并非通过限制的方式,总线1212可包括加速图谱端口(agp)或其他图谱总线、增强型工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准结构(isa)总线、无限带宽互连、低脚位(lpc)总线、内存总线、微通道结构(mca)总线、外围组件互连(pci)总线、pci高速(pcie)总线、串行高级技术附件(sata)总线、视频电子标准协会本地(vlb)总线、或另一个合适的总线或其中的两个以上的组合。在适当的情况下,总线1212可包括一个或多个总线1212。虽然本公开描述和显示了特定的总线,但是本公开预计具有任何合适的总线或互连。
在本文中,在适当的情况下,计算机可读非易失性储存介质的引用可包括基于半导体的或者其他集成电路(ic)(例如,现场可编程门阵列(fpga)或专用ic(asic))、硬盘驱动器(hdd)、混合硬盘驱动器(hhd)、光盘、光盘驱动器(odd)、磁光盘、磁光驱动器、软盘、软盘驱动器(fdd)、磁带、固态驱动器(ssd)、ram驱动器、安全数字卡、安全数字卡或驱动器、另一个合适的计算机可读非易失性储存介质、或者其中的一个合适的组合。在适当的情况下,计算机可读非易失性储存介质可为易失性、非易失性或者易失性和非易失性的组合。
杂项
在本文中,除非另有明确表示或通过上下文另有表示,否则“或”是包括性的而不是排除性的。因此,在本文中,除非另有明确表示或通过上下文的其他表示,否则“a或b”意味着“a、b、或这两者”。而且,除非另有明确指示或者上下文另有指示,否则,“和”为联合的以及数个的。因此,此处,除非另有明确指示或者上下文另有指示,否则,“a和b”指“a和b,联合地或数个地”。
本公开内容的范围涵盖本领域技术人员应当理解的对本文中描述或示出的示例性实施方式的所有改变、替代、变化、变更以及变形。本公开内容的范围并不限于本文中描述或示出的示例性实施方式。此外,虽然本公开内容描述并且示出了包括具体部件、元件、功能、操作、或者步骤的相应实施方式,然而,这些实施方式中的任一种均可包括本领域普通技术人员理解的本公开内容中任何地方所描述或者示出的部件、元件、功能、操作、或者步骤的任何组合或者任何置换。此外,在所附权利要求对装置或系统或装置或系统的部件适于、被布置成、能够、被配置为、使得能够、可操作为或被操作为执行特定功能的引用涵盖装置、系统、部件,只要该装置、系统或部件如此适于、被设置成、能够、被配置为、使得能够、可操作以或被操作,而不管它或特定功能是否是激活的、开启的或解锁的。