块220或产生模块230)。一批评论是 一个或多个评论的集合。在一些示例实施例中,将批次识别为在设置的时间段内彼此发生 的评论的集合。例如,如果超时时间段是五分钟,则只要在响应之间过去的时间少于五分 钟,批次将继续增长。一旦超时时间段过去而没有评论,则批次完成。为了说明,可W利用其 之间=十秒到=分钟的时间段来接收屯个评论。在接收到第屯个评论之后五分钟,可W呈 现推荐。一小时之后,在没有后续评论的情况下可W接收另一评论。在该评论之后五分钟, 可W呈现另一推荐。
[0074] 在一些示例实施例中,基于线程的动量,动态地计算用于限定一批评论的超时时 间段。例如,所请求的呈现与第一响应之间的时间段可W大于第一响应与第二响应之间的 时间段,运表明线程正在获得动量。可W将时间段的增加检测为动量的减小,并且在检测到 动量减小时呈现推荐。机器学习算法可W建立用于对动量进行计算并确定插入推荐的时间 的方法。
[0075] 附加地或备选地,评论的批次可W具有最小大小或最大的大小。最小大小和最大 大小可W相同。例如,可W将批次识别为五个评论的集合,而不管评论之间的时间如何。在 其他示例实施例中,将最小大小与超时时间段组合。例如,如果最小大小是S个评论,则可 W仅在批次是至少=个评论的情况下,检测到超时之后呈现推荐。如果批次在最小大小W 下,贝阿W将任何附加评论添加到批次,而不考虑逝去的时间。备选地,可W允许批次在超 时时间段之后期满,并且允许任何新的评论添加到新的批次。
[0076] 在操作930,基于批次确定要推荐的物品(例如,通过产生模块230)。例如,W上针 对操作820描述的方法可W被用于确定要推荐的物品。
[0077] 在操作940,呈现针对物品的推荐。例如,可W将包括关于物品的信息的评论添加 到会话线程的结束处,所述会话线程包括请求和用户推荐的批次。在呈现针对物品的推荐 之后,方法900再次查看是否检测到一批用户推荐(在操作920)。W运种方式,方法900可W 响应于单个推荐请求而提供多个物品推荐(每个物品推荐针对于用户推荐的每个检测到的 批次)。
[0078] 图10是示出了根据一些示例实施例的在执行基于社交媒体的推荐的方法时应用 服务器118的操作的流程图。方法1000中的操作可W由运行社交应用121的应用服务器118 使用上面参照图2描述的模块来执行。如图10所示,方法1000包括操作1010至1060。
[0079] 在操作1010,应用服务器118从用户访问通信(例如,使用通信模块210或存储模块 240),并检测通信中的推荐(例如,使用识别模块220)。可W与W上针对图8描述的操作810 类似地执行该操作。
[0080] 在操作1020,考虑检测到的每个推荐,并且针对所述推荐执行操作1030至1050。
[0081] 在操作1030,识别提供推荐的用户(例如,通过产生模块230)。例如,应用服务器 118可W访问(例如,由存储模块240存储的)针对每个评论的数据记录,数据记录包括用户 标识符和评论的文本内容。在操作1010,分析文本内容W识别推荐,并且在操作1030访问用 户标识符W识别提供推荐的用户。可W创建包含W下内容的记录:用户标识符、推荐、评论、 推荐的时间、关于接收推荐的用户的数据或者它们的任何适当组合。作为另一示例,web收 割(web-harvesting)应用可W下载网页的文本。网页的文本可W包括用户名称或用户照片 W及评论的文本。可W在操作1010解析评论的文本W识别推荐。可W基于与评论的接近度 将用户名称或用户照片识别为发表评论的用户的标识符。因此,web收割应用还可W创建跟 踪用户的推荐活动的数据库。
[0082] 在操作1040,(例如,从存储模块240)访问由用户提供的先前推荐。例如,参照图5 至图7,由用户提供的推荐可W针对特定型号的汽车,但是同一用户还可W是图4的会话中 的参与方,在图4中推荐是针对鞋的品牌。因此,可W在操作1040访问包含记录的数据库,所 述记录具有关于同一用户的先前推荐的数据。
[0083] 在操作1050,基于从用户产生的被其他用户采纳的先前推荐的数量,将权重给予 由用户提供的推荐。例如,如W上针对图4所述,当呈现的推荐被采纳时,可W更新针对推荐 的数据库记录。因此,可W获得并分析与推荐用户链接的所有推荐记录,W确定推荐是否被 采纳。可W基于被采纳的推荐的高数量、被采纳的推荐的高百分比或者其二者来增加给予 用户的后续推荐的权重。类似地,可W将物品推荐的产品类别存储在推荐记录中。可W基于 在针对当前推荐的产品类别内被采纳的推荐的数量或百分比来确定权重。例如,如果用户 针对鞋做出了多个被采纳的推荐,但是当前推荐物品是汽车,则给予用户的权重可W低于 在当前推荐物品也针对鞋时的权重。
[0084] 在操作1060,基于推荐和推荐用户的加权值,确定要推荐的物品(例如,通过产生 模块230)。例如,每个用户的推荐可W被给予与先前被采纳的推荐的数量加1相等的增值。 因此,在两个用户推荐了第一品牌并且第=用户推荐了第二品牌,但是前两个用户没有先 前被采纳的推荐而第=用户具有3个先前被采纳的推荐的情况下,将作出针对第二品牌的 推荐。前两个用户将均具有权重1(0+1)。第S用户将具有权重4(3+1)。针对第一品牌的权重 将是2,即,前两个用户的权重之和。针对第二品牌的权重将是4,即,第=用户的权重。由于 针对第二品牌的总权重高于针对第一品牌的总权重,因此要推荐的物品被确定为第二品 牌。
[0085] 根据各种示例实施例,本文描述的一个或多个方法可W有助于基于社交媒体的推 荐。根据各种示例实施例,本文描述的一个或多个方法可W有助于在不访问私密数据的情 况下提供推荐。例如,在私人电子邮件中提到的并且紧接私人电子邮件放置的产品的广告 可W表明电子邮件供应商正在阅读用户的电子邮件。相反,在公开或半公开会话线程中推 荐的物品的广告或推荐可不牵设相同的隐私侵犯。附加地,本文中描述的一个或多个方法 可W有助于获得感兴趣的结果并向用户呈现感兴趣的结果,而无需用户明确地进行查询。
[0086] 当总体来考虑运些效果时,本文描述的一个或多个方法可W消除针对某些工作量 或资源的需求,该某些工作量或资源在其他情况下将在捜索中设及。通过本文描述的一个 或多个方法,可W减少用户在识别关注项目时所付出的努力。可W类似地减少由(例如在客 户端-服务器系统100中的)一个或多个机器、数据库或设备使用的计算资源。运样的计算资 源的示例包括处理器循环、网络业务、存储器使用状况、数据存储容量、功耗W及冷却能力。
[0087] 模块、组件和逻辑
[0088] 某些实施例在本文中被描述为包括逻辑或多个组件、模块或机制。模块可W构成 软件模块(例如体现在机器可读介质上的代码或W传输信号体现的代码)或硬件模块。硬件 实施的模块是能够执行某些操作且可W用某种方式来配置或布置的有形单元。在示例实施 例中,一个或多个计算机系统(例如,独立、客户端或服务器计算机系统)或一个或多个处理 器可W被软件(例如,应用或应用部分)配置为硬件实施的模块,该模块进行操作W执行如 本文所述的某些操作。
[0089] 在各种实施例中,硬件实施的模块可被W机械方式或电子方式来实现。例如,硬件 实施的模块可W包括永久地被配置为执行某些操作的专用电路或逻辑(例如,配置为专用 处理器,例如现场可编程口阵列(FPGA)或专用集成电路(ASIC))。硬件实施的模块还可W包 括暂时由软件配置W执行某些操作的可编程逻辑或电路(例如,配置为被包含在通用处理 器或其它可编程处理器中)。将会意识到的是:对W机械方式、在专用且永久配置的电路中、 或在暂时配置的电路(例如由软件配置)中实现硬件实施的模块的决定可W受到成本和时 间考虑因素的驱动。
[0090] 因此,术语"硬件实施的模块"应当被理解为包含有形实体,应当是物理构成的、永 久配置(例如硬连线的)或暂时或瞬时配置(例如编程的)W在某个方式下工作或W执行本 文描述的某些操作的实体。考虑到临时配置(例如,被编程的)硬件实施的模块的实施例,每 个硬件实施的模块不需要在任何一个时刻被配置或实例化。例如,在硬件实施的模块包括 使用软件来配置的通用处理器的情况下,通用处理器可W在不同时间被配置为各个不同的 硬件实施的模块。软件可W因此配置处理器,W例如在一个时刻构成特定硬件实施的模块, W及在不同时刻构成不同的硬件实施的模块。
[0091] 硬件实施的模块可W向其他硬件实施的模块提供信息W及从其他硬件实施的模 块接收信息。因此,描述的硬件模块可W看做是通信禪合的。在多个此类硬件实现的模块同 时期存在的情况下,可W通过连接硬件实现的模块的信号传输(例如,通过适当的电路和总 线)来实现通信。在多个硬件实施的模块被配置为在不同时间被配置或实例化的实施例中, 运种硬件实施的模块之间的通信可W例如通过在多个硬件实施的模块可W访问的存储结 构中存储和取回信息来实现。例如,一个硬件实现的模块可W执行操作,并且将该操作的输 出存储在其W通信方式禪合的存储器设备中。然后另一硬件模块可W在之后的时间访问该 存储设备W检索并处理所存储的输出。硬件实施的模块还可W发起与输入或输出设备的通 信,且可W对资源(例如,信息的聚集)进行操作。
[0092] 本文描述的示例方法的各种操作可W至少部分地由一个或多个处理器执行,该一 个或多个处理器被暂时地配置(例如通过软件)或永久地配置W执行有关的操作。无论是暂 时地还是永久地配置,运样的处理器可W构成进行操作W执行一个或多个操作或功能的处 理器实现的模块。在一些示例实施例中,如本文中使用的"模块"包括处理器实现的模块。
[0093] 类似地,本文中描述的方法可W至少部分由处理器实现。例如,方法的至少一些操 作可W由一个或多个处理器或处理器实现的模块来执行。某些操作的执行可W分布在一个 或多个处理器中,并不只位于单个机器中,而是布置在多个机器中。在一些示例实施例中, 一个或多个处理器或处理器可W位于单个位置中(例如在家庭环境、办公室环境或服务器 群中),而在其他实施例中,处理器可W分布在多个位置上。
[0094] 一个或多个处理器还可W操作W支持在"云计算环境"下的相关操作的执行或作 为"软件即服务"(SaaS)的相关操作的执行。例如,至少一些操作可W由计算机组(作为包括 处理器在内的机器示例)来执行,运些操作能够经由网络(例如互联网)并且经由一个或多 个适当的接口(例如应用程序接口(API))来访问。
[00M]电子装置和系统
[0096] 示例实施例可W用数字电子电路或者用计算机硬件、固件、软件或它们的组合来 实现。示例实施例可W使用计算机程序产品来实现,例如在信息载体中有形地表现的计算 机程序,信息载体例如是由数据处理装置执行的机器可读介质或用于控制数据处理装置的 操作的机器可读介质,数据处理装置例如是可编程处理器、计算机、或多个计算机。
[0097] 可W W任何形式的编程语言来编写计算机程序,该编程语言包括:编译或解释语 言,并且可W W任何形式来部署计算机程序,包括部署为单独的程序或者部署为适合于用 于计算环境的模块、子例程,或者其它单元。计算机程序可W被配置为在一个计算机执行或 在位于一个地点处的多个计算机上执行或者在分布在多个地点上并