基于上下文的即时搜索建议的制作方法

文档序号:13426421
基于上下文的即时搜索建议的制作方法

本说明书涉及搜索引擎。



背景技术:

一般来说,用户可以通过向搜索引擎输入查询来请求信息。搜索引擎可以处理查询,并可以响应于查询提供信息用于输出给用户。



技术实现要素:

系统可以在搜索会话期间接收对建议的搜索查询的请求。响应于该请求,系统可以基于识别与在搜索会话期间接收的一个或多个搜索查询相关联的一个或多个实体,例如歌手、演员、音乐家、作家、导演、电视网络或其他制作公司,生成建议的搜索查询。该系统使用在搜索会话期间接收的最近的搜索查询作为上下文术语,以将潜在的建议的搜索查询的评分偏向于可以从搜索会话中提取的地点、人或任何实体。

在本说明书中描述的主题的创新方面可以体现在包括以下动作的方法中:在搜索会话期间接收对建议的搜索查询的请求;响应于接收对建议的搜索查询的请求:从查询模式数据库中选择查询模式;识别与在搜索会话期间接收的一个或多个搜索查询相关联的实体;基于所选择的查询模式和所识别的实体生成建议的搜索查询;以及提供使得所生成的建议的搜索查询在用户界面中呈现的数据。以这种方式,可以减少生成建议的搜索查询所需的处理量。具体地,通过基于在会话期间接收的搜索查询来识别实体,并且选择查询模式,该方法能够更好地预测哪些搜索查询建议最有可能被选择。通过使用上述处理提供相关的搜索查询建议,减少了生成进一步的搜索查询的需要。此外,通过减少多个搜索查询建议的生成,也可以减少在搜索操作期间在网络上传输的数据量。此外,通过减少生成的搜索查询的数量,并且通过减少在网络上传输的数据量,也可以减少执行搜索操作所耗费的时间(从请求建议的搜索查询到选择搜索结果)。

该方面的其他实施例包括对应的计算机系统、装置和记录在一个或多个计算机存储设备上的计算机程序,每个被配置为执行所述方法的动作。可以将一个或多个计算机的系统配置为通过安装在系统上的软件、固件、硬件或其组合来执行特定的操作或动作,该软件、固件、硬件或其组合在操作中使得系统执行动作。一个或多个计算机程序可以被配置为通过包括在由数据处理装置执行时使装置执行动作的指令来执行特定操作或动作。

上述和其它实施例可以各自独立地或组合地可选地包括以下特征中的一个或多个。在一些实现方式中,所述方法可以包括:识别由在搜索会话期间接收的一个或多个搜索查询引用的实体集合;对于该实体集合中的每个实体,识别与该实体相关的一个或多个实体;扩展实体集合,以包括与实体集合中的每个实体相关的实体;以及在缓冲器中存储扩展的实体集合,其中从存储在缓冲器中的扩展的实体集合中识别实体。

在一些实现方式中,所述方法可以包括:对于所述扩展的实体集合中的每个实体,向所述实体分配相关性评分。

在其他实现方式中,识别与在搜索会话期间接收的一个或多个搜索查询相关联的实体包括:识别与所选择的查询模式中的占位符类型匹配的实体类型;以及识别实体(i)具有所识别的实体类型,以及(ii)与在搜索会话期间接收的一个或多个搜索查询相关联。

在一些情况下,识别实体(i)具有所识别的实体类型,以及(ii)与在搜索会话期间接收的一个或多个搜索查询相关联包括:通过缓冲器访问扩展的实体集合;选择具有所识别的实体类型的实体集合;基于具有所识别的实体类型的实体集合中的每个实体的评分,从该实体集合中选择实体。

在一些实现方式中,对所建议的搜索查询的请求包括:包括用户输入的一个或多个字符的部分搜索查询。

在其他实现方式中,对所建议的搜索查询的请求不包括用户输入的任何字符。

在一些情况下,选择查询模式包括:确定所述部分搜索查询与存储在查询模式数据库中的查询模式的一部分相匹配;选择存储在查询模式数据库中的查询模式。

在其他情况下,选择模式包括:识别在搜索会话期间输入的一个或多个最近的查询模式;确定所识别的最近的查询模式中的一个或多个与预定的实体列表相关;以及选择被确定为与预定的实体列表相关的查询模式。

在一些情况下,确定所识别的最近的查询模式中的一个或多个与预定的实体列表相关包括:确定所述实体列表是有序的实体列表还是无序的实体列表。

在一些实现方式中,所述实体列表是有序的实体列表。

在一些实现方式中,确定所识别的最近的查询模式中的一个或多个与预定的实体列表相关包括:确定所述一个或多个所识别的最近的查询模式与所述实体列表中的顺序的项目相关。

在其他实现方式中,识别与所述搜索会话期间接收的一个或多个搜索查询相关联的实体包括:识别所述实体列表中的下一个实体。

在一些实现方式中,所述实体列表是无序的实体列表。

在一些情况下,确定所识别的最近的查询模式中的一个或多个与预定的实体列表相关包括:确定所述一个或多个所识别的最近的查询模式与所述实体列表中的项目相关。

在其他情况下,识别与所述搜索会话期间接收的一个或多个搜索查询相关联的实体包括:识别所述实体列表中的实体。

在一些实现方式中,所述查询模式数据库存储已经从搜索查询日志提取的查询模式。

在附图和下面的描述中阐述了本说明书中描述的主题的一个或多个实施例的细节。根据描述、附图和权利要求,主题的其它潜在特征、方面和优点将变得明显。

附图说明

图1A-1C描绘了用于基于一个或多个上下文术语提供建议的搜索查询的示例系统。

图2描绘了用于基于一个或多个上下文术语提供建议的搜索查询的示例处理的流程图。

图3A和3B描绘了使用基于实体的偏向的基于一个或多个上下文术语提供建议的搜索查询的示例用户界面的一部分。

图4A至4C描绘了使用实体外推的基于一个或多个上下文术语提供建议的搜索查询的示例用户界面的一部分。

各附图中的相同附图标记表示相同的元件。

具体实施方式

本说明书描述了一种系统,用于在搜索会话期间使用搜索历史,以将潜在的建议的搜索查询的评分外推或偏向于可以从搜索历史中提取的地点、人或任何实体。系统可以在包括实体的标识符的搜索会话期间接收搜索查询,所述标识符例如歌手、演员、音乐家、作家、导演、电视网络或其他制作公司。响应于在搜索会话期间接收对建议的搜索查询的请求,系统可以从查询模式数据库中选择查询模式,例如“weather in $city”、“$country population 2014”,识别所选择的查询模式中的占位符类型,例如“$city”或“$country”,将实体识别为与占位符类型匹配并与搜索会话期间接收的一个或多个搜索查询相关联的上下文术语,并生成建议的搜索查询。系统可以执行基于实体的偏向,其中系统执行基于模式的评分,并且识别适合最近上下文中的模式的高评分实体。该系统还可以通过确定许多搜索查询与底层列表相关、并且通过基于底层列表中的项目预测可能的下一个搜索查询来执行实体外推。

图1A和1B描绘了用于基于一个或多个上下文术语提供建议的搜索查询的示例系统100。具体地,系统100处理这样的实现方式,其中在搜索会话期间接收对建议的搜索查询的请求(即,搜索查询的自动完成),并且响应于该请求提供一个或多个建议的搜索查询,其中,基于从搜索会话期间接收的搜索查询提取的一个或多个上下文术语来生成一个或多个建议的搜索查询。

简而言之,系统100可以在搜索会话期间接收一个或多个搜索查询,诸如由用户输入的一个或多个自然语言查询。系统100可以识别由一个或多个搜索查询引用的一个或多个实体,并且可以选择由一个或多个搜索查询引用的一个或多个查询模式。系统100可以基于识别一个或多个实体并选择由一个或多个搜索查询引用的一个或多个查询模式,生成建议的搜索查询。可以响应于接收的请求来提供建议的搜索查询的列表,例如,通过在搜索查询输入字段中提供建议的搜索查询的列表而作为对于用户的输出。系统100包括客户端设备102、查询引擎前端110、模式数据库112、实体数据库114、会话内数据库116和自动完成生成器120。系统100的组件可以各自在一个或多个网络(诸如一个或多个LAN或WAN)上通信,或者可以通过一个或多个其他有线或无线连接进行通信。

如图1A所示,在操作(A)期间,即在搜索会话期间,查询引擎前端110接收对由用户输入的一个或多个搜索查询编码的数据。例如,用户可以在客户端设备102处提供查询“Band-A”,并且查询引擎前端110可以接收对该查询进行编码的数据。在一些实现方式中,查询引擎前端110可以接收在一个或多个网络上或在一个或多个其他无线或有线连接上对用户输入的查询进行编码的数据。

客户端设备102可以是移动计算设备,诸如移动电话、智能电话、个人数字助理(PDA)、音乐播放器、电子书阅读器、平板电脑、可穿戴计算设备、膝上型计算机、桌面计算机、或其他便携式或固定式计算设备。客户端设备102可以以使得用户能够在设备处输入查询的麦克风、键盘、触摸屏或其他接口为特征。在一些实现方式中,用户可以在从客户端设备102呈现或可访问的接口处提供查询。例如,用户可以在可在客户端设备102处访问的搜索引擎上输入查询,可以在可在客户端设备102处访问的数据库处输入查询,或者可以在以搜索能力为特征的任何其他接口处(例如,在社交网络接口处)提供查询。

用户可以例如通过说出查询的一个或多个术语、键入查询的一个或多个术语、例如从可用术语的菜单中选择搜索查询的一个或多个术语、例如从可用查询的菜单中选择包括一个或多个术语的查询,或通过使用任何其他方法提供查询,在客户端设备102处提供自然语言查询。在其他实现方式中,用户可以通过例如通过选择或提交用户想要搜索的图像,通过提供用户想要搜索的内容的音频或视频样本,或者通过在其它方面在客户端设备102处输入查询,使用另一方法来提供查询。

查询引擎前端110可以在单个数据分组中或多个数据分组中接收包括由用户输入的查询和识别由用户输入的查询所引用的一个或多个术语的数据。与用户输入的查询相关联的数据可以进一步被同时接收,或者可以在不同的时间被单独接收。

在接收到对用户输入的查询编码的数据之后,查询引擎前端110可以将与用户输入的查询相关联的数据发送到会话内数据库116。例如,基于接收包括用户输入搜索查询“Band-A”的数据,查询引擎前端110可以提取与用户输入的查询“Band-A”相关联的数据,并且可以将与查询相关联的数据发送到会话内数据库116。

在操作(B)期间,会话内数据库116可以接收与用户输入的查询相关联的信息,并且可以识别与用户输入的查询相关联的实体。例如,会话内数据库116可以接收与查询“Band-A”相关联的信息,并且可以将与查询相关联的实体识别为乐队“Band-A”。

在一些实现方式中,会话内数据库116可以通过将查询的术语与和一组已知实体相关联的术语进行比较,来识别与查询相关联的实体。例如,由会话内数据库116接收的查询可以是自然语言查询,例如,查询“Band-A”,并且会话内数据库116可以基于将查询的术语与和一组已知实体相关联的术语进行比较,将实体“Band-A”识别为与该查询相关联。在一些实现方式中,已知的一组实体可以在诸如实体数据库114的实体数据库处可被会话内数据库116访问,所述实体数据库与会话内数据库116相关联或者以其他方式(例如通过一个或多个网络)可被会话内数据库116访问。

在一些实现方式中,会话内数据库116可以识别与所识别的实体相关的一个或多个实体,所识别的实体与用户输入的查询相关联。例如,由会话内数据库116接收的查询可以是自然语言查询,例如,查询“Band-A”,并且会话内数据库116可以将一个或多个实体识别为与查询相关,诸如乐队Band-A的成员“Member#1”,或由乐队“Band-A”演奏的歌曲“Dancing King”。在一些实现方式中,会话内数据库116可以使用诸如实体数据库114的实体数据库,识别关于与用户输入的查询相关联的所识别的实体的一个或多个实体,所述实体数据库与会话内数据库116相关联或以其他方式(例如通过一个或多个网络)可被会话内数据库116访问。

由会话内数据库116识别的每个实体可被分配相关性评分。可以基于多个因素,诸如在搜索会话期间实体被包括在用户输入的搜索查询中的最近时间,例如,实体被包括在先前的搜索查询中、在搜索会话期间实体被包括在用户输入的搜索查询中的频繁程度,例如,实体多于一次在搜索会话期间被包括在用户输入的搜索查询中,或者实体被重视的程度,例如,基于查看或点击实体或者已经接收与实体相关联的资源的次数,来对实体分配相关性评分。相关性评分可用于将搜索查询建议偏向于可以从用户最近的搜索查询提取的任何实体,并且可以在搜索会话期间动态地调整。在一些情况下,会话内数据库116可以将相关性评分分配给实体,或者相关性评分可以由另一系统分配给该实体,或者由个人(例如系统100的仲裁方或用户)分配给实体。

在一些实现方式中,会话内数据库116可以识别与所识别的实体相关联的类型。例如,由会话内数据库116接收的查询可以是自然语言查询,例如,查询“Band-A”,并且会话内数据库116可以将实体“Band-A”识别为与类型“$band”相关联,并将相关实体“Dancing King”识别为与类型“$song”相关联。实体类型的其他示例包括“$city”、“$singer”或“$country”等等。在一些实现方式中,已知的一组实体和其相关类型可以在诸如实体数据库114的实体数据库处可被会话内数据库116访问,所述实体数据库与会话内数据库116相关联或者以其他方式(例如通过一个或多个网络)可被会话内数据库116访问。

在一些实现方式中,会话内数据库116可以识别与用户输入的查询相关联的查询模式。例如,由会话内数据库116接收的查询可以是自然语言查询,例如查询“Dancing Kinglyrics Band-A”,并且会话内数据库116可以识别查询模式“$song lyrics$band”。查询模式的其他示例包括“weather in$city”、“$singer birthday”或“$country population 2014”。在一些实现方式中,已知的一组查询模式可以在诸如查询模式数据库112的查询模式数据库处可被会话内数据库访问,所述查询模式数据库与会话内数据库116相关联或者以其他方式(例如通过一个或多个网络)可被会话内数据库116访问。

会话内数据库116可以将与搜索会话相关联的信息存储在缓冲器118中,所述信息诸如与在搜索会话期间识别的每个实体有关的信息。例如,如图1A所示,会话内数据库116可以将从用户输入的搜索查询(例如“Band-A”)识别的实体以及相关联的实体类型一起存储,例如“$band”和相关性评分“1.0”。在该示例中,由于用户输入的当前搜索查询是“Band-A”,因此实体“Band-A”被分配相关性评分1.0。会话内数据库还将分别与所识别的相关实体“Member#1”和“Dancing King”相关联的信息、以及相关联的实体类型“$singer”和“$song”一起存储。在这个示例中,实体“Member#1”和“Dancing King”每个被分配相关性评分“0.8”,这反映实体与当前搜索查询“Band-A”的连接性。在一些实现方式中,会话内数据库116还可以存储与搜索会话相关联的其他信息,诸如所识别的接收到的查询模式或搜索会话搜索历史。

如图1B所示,在操作(C)期间,即在相同的搜索会话期间,查询引擎前端110可以接收对建议的搜索查询的请求。例如,用户可以例如通过点击搜索查询输入字段“|”,在客户端设备102处开始新的搜索查询,并且可以由查询引擎前端110接收对新的查询请求编码的数据。在一些实现方式中,查询引擎前端110可以通过一个或多个网络、或者通过一个或多个其他无线或有线连接来接收对新查询请求编码的数据。查询引擎前端110可以将对新查询请求编码的数据发送到自动完成生成器120。

在操作(D),自动完成生成器120可以从查询引擎前端110接收对新查询请求编码的数据。在操作(E)期间,自动完成生成器120可以访问存储在会话内数据库116中的信息以及存储在模式数据库112和实体数据库114中的信息,以便生成建议的搜索查询。例如,自动完成生成器120可以从模式数据库112中选择查询模式,例如“$song lyrics”,并且在会话内数据库116中识别来自缓冲器118的、与在搜索会话期间接收的一个或多个搜索查询(例如“Band-A”)相关联的实体,以便生成建议的搜索查询。下面参考图2更详细地描述为了生成建议的搜索查询而选择查询模式和识别实体。

在操作(F)期间,自动完成生成器120可以向客户端设备102提供对一个或多个建议的搜索查询124编码的数据,以用于在用户界面122中呈现。例如,如图1B所示,基于在搜索会话期间接收的一个或多个查询,例如搜索查询“Band-A”,自动完成生成器120提供了建议的搜索查询“Dancing King lyrics”和“Member#1birthday”。

如图1C所示,在操作(G)期间,查询引擎前端110可以接收对于建议的搜索查询的请求,例如,自动完成请求。例如,如图1C所示,用户可以在客户端设备102提交部分搜索查询,例如“D|,”,即,包括一个或多个字符的搜索请求,并且可以由查询引擎前端110接收对部分搜索查询编码的数据。在一些实现方式中,查询引擎前端110可以通过一个或多个网络、或通过一个或多个其他有线或无线连接,接收对部分搜索查询编码的数据。查询引擎前端110可以将对部分搜索查询编码的数据发送到自动完成生成器120。

在操作(H),自动完成生成器120可以从查询引擎前端110接收对部分搜索查询编码的数据。在操作(I)期间,自动完成生成器120可以访问存储在会话内数据库116中的信息以及存储在模式数据库112和实体数据库114中的信息,以便生成部分搜索查询的自动完成。例如,自动完成生成器120可以确定部分搜索查询与模式数据库112中的查询模式的一部分匹配并选择查询模式。此外,自动完成生成器120可以从会话内数据库116中的缓冲器138识别与在搜索会话期间接收的一个或多个搜索查询(例如“Band-A”)相关联的实体,以便生成自动完成。在该示例中,缓冲器138包括具有相关性评分0.5的实体“David’s Donuts”,这反映在搜索会话期间可能已经接收到与“David’s Donuts”有关的查询,或者是用户可能接收到的查询。下面参考图2更详细地描述选择查询模式并识别在最近的上下文中符合该模式的实体以生成搜索查询自动完成。

在操作(J)期间,自动完成生成器120可以向客户端设备102提供对一个或多个建议的搜索查询134编码的数据,以用于在用户界面132中呈现。例如,如图1C所示,基于在搜索会话期间接收的一个或多个查询,例如搜索查询“Band-A”和部分搜索查询“D|,”,自动完成生成器120提供了建议的搜索查询“Dancing King lyrics”和“Directions to Stockholm”(其中假定乐队“Band-A”来自斯德哥尔摩)。在一些实现方式中,建议的搜索查询可包括与最近接收的搜索查询以外的实体相关的建议。例如,建议的搜索查询134还包括“David's Donuts”,其反映了用户可能在搜索会话期间的某个时间输入与“David's”和/或“Donuts”有关的搜索查询。

图2示出了用于基于一个或多个上下文术语提供建议的搜索查询的示例过程200。例如,过程200可以由系统100响应于接收对建议的搜索查询的请求来执行。

在步骤202,接收对于建议的搜索查询的请求。在搜索会话期间接收到请求。在一些实现方式中,对于建议的搜索查询的请求包括部分搜索查询,其又包括用户输入的一个或多个字符。例如,对于建议的搜索查询的请求可以包括术语“weather in |”。在其他实现方式中,对于建议的搜索查询的请求可以不包括用户输入的任何字符。例如,在用户输入一个或多个字符之前,通过在搜索查询输入框中点击,对于建议的搜索查询的请求可以包括用户已经开始新的搜索查询的指示。

在步骤204,响应于接收对于建议的搜索查询的请求,从查询模式数据库中选择查询模式。查询模式数据库存储已经从搜索查询日志中提取的查询模式。例如,可以从搜索查询日志(包括用户的搜索历史)中以离线作业提取查询模式。查询模式可以包括可以用某些类型识别的一个或多个占位符术语。例如,查询模式“flights to $city”包括用地点或位置识别的占位符术语“$city”。作为另一示例,查询模式“$song lyrics $bandname”包括可以分别用歌曲和乐队名称来识别的占位符术语“$song”和“$bandname”。

如上文参考步骤202所述,在一些实现方式中,对于建议的搜索查询的请求可以包括部分搜索查询。在这种情况下,从查询模式数据库中选择查询模式可以包括:确定部分搜索查询与存储在查询模式数据库中的查询模式的一部分相匹配,并且选择存储在查询模式数据库中的查询模式。例如,对于建议的搜索查询的部分请求可以包括术语“weather in |”。在这种情况下,可以确定部分搜索查询“weather in |”与查询模式“weather in $city”的一部分相匹配。

在其他实现方式中,从查询模式数据库中选择查询模式可以包括:识别在搜索会话期间输入的一个或多个最近的查询模式,确定所识别的最近查询模式中的一个或多个与预定实体列表相关,以及选择被确定为与所述预定实体列表相关的查询模式。例如,可以识别在搜索会话期间用户最近可能输入查询模式的一个或多个实例,诸如“$song1 lyrics $bandname”,其跟随以“$song2 lyrics $bandname”。在这样的情况下,可以确定最近的查询模式与乐队专辑中的连续的歌曲相关,并且可以选择被确定为与该乐队专辑中的歌曲列表相关的查询模式。

在一些实现方式中,预定的实体列表是有序的实体列表。例如,如上述段落所述,预定的实体列表可以是乐队专辑中的歌曲的列表。在这种情况下,确定所识别的最近查询模式中的一个或多个与预定的实体列表相关可包括:确定所述一个或多个所识别的最近查询模式与实体列表中的顺序的项目相关。

在其他实现方式中,预定的实体列表是无序的实体列表。例如,预定的实体列表可以是在电影中出现的男演员或女演员的列表或欧洲的国家列表。在这种情况下,确定所识别的最近的查询模式中的一个或多个与预定的实体列表相关可包括:确定所述一个或多个所识别的最近查询模式与实体列表中的项目相关。

在步骤206,响应于接收对建议的搜索查询的请求,识别与在搜索会话期间接收的一个或多个搜索查询相关联的实体。在一些实现方式中,可以识别由在搜索会话期间接收的一个或多个搜索查询所引用的实体集合。对于由一个或多个搜索查询所引用的实体集合中的每个实体,可以识别与该实体相关的一个或多个扩展实体,并且可以将该实体集合扩展为包括与该组实体中的每个实体有关的扩展实体。扩展的实体集合中的每个实体可被分配相应的相关性评分。扩展的实体集合可以被存储在缓冲器中,并且可以从存储在缓冲器中的扩展的实体集合识别与在搜索会话期间接收的一个或多个搜索查询相关联的实体。

在一些实现方式中,识别与在搜索会话期间接收的一个或多个搜索查询相关联的实体包括:识别在所选择的查询模式中与占位符类型相匹配的实体类型,并且识别以下实体:(i)具有所识别的实体类型,以及(ii)与在搜索会话期间接收的一个或多个搜索查询相关联。例如,系统可以将查询模式“weather in $city”中的实体类型“$city”识别为与占位符类型“$city”匹配,并将实体“Happytown”标识为具有实体类型“$city”并且与在搜索会话期间接收的一个或多个搜索查询相关联。

在一些实现方式中,识别实体(i)具有所识别的实体类型,以及(ii)与在搜索会话期间接收的一个或多个搜索查询相关联包括:访问存储在缓冲器中的扩展的实体集合,选择具有所识别的实体类型的实体集合,以及基于具有所识别的实体类型的所选择的实体集合中的每个实体的相关性评分,从所选择的实体集合中选择一个实体。例如,系统可以访问存储在缓冲器中的扩展的实体集合,并且选择具有类型“$city”的实体集合。然后,系统可以基于具有类型“$city”的实体的相关性评分,从具有类型“$city”的实体集合选择特定的实体,即特定的城市名称。如果用户最近输入了与实体“Happytown”有关的搜索查询,例如“flights to Happytown”,则实体“Happytown”可具有比用户最近不包括在任何搜索查询中的另一城市更高的相关性评分。

在一些情况下,如上文参照步骤204所述,具有特定类型的实体集合可以是有序的实体列表,诸如乐队专辑中的歌曲的列表。在这种情况下,识别与在搜索会话期间接收的一个或多个搜索查询相关联的实体包括:识别实体列表中的下一个实体。例如,如果用户已经输入了与频带专辑中的前两首歌曲相关的一个或多个搜索查询,则系统可以将乐队专辑中的第三首歌曲标识为与在搜索会话期间接收的一个或多个搜索查询相关联的实体。

在其他情况下,如上文参考步骤204所述,具有特定类型的实体集合可以是无序的实体列表,诸如出现在电影中的男演员或女演员的列表。在这种情况下,识别与在搜索会话期间接收的一个或多个搜索查询相关联的实体包括:识别实体列表中的实体。例如,如果用户已经输入了与电影中出现的两个演员相关的一个或多个搜索查询,则系统可以将出现在电影中的第三个男演员或女演员识别为与在该搜索会话期间接收的一个或多个搜索查询相关联的实体。

在步骤208,响应于接收对所建议的搜索查询的请求,基于所选择的查询模式和所识别的实体,生成建议的搜索查询。

在步骤210,响应于接收对所建议的搜索查询的请求,提供所生成的建议的搜索查询。在下面参照图3A-3B和4A-4C更详细地描述使用基于实体的偏移和实体外推的、基于一个或多个上下文术语来提供建议的搜索查询的用户界面的呈现。

图3A和3B示出了使用基于实体的偏移的基于一个或多个上下文术语提供建议的搜索查询的示例用户界面300的一部分。用户界面300可以在搜索会话期间呈现给用户。在一些实现方式中,用户界面300可以呈现在网络浏览器或能够为用户提供查询特征的其他应用中,例如,在可由用户经由网络浏览器访问的搜索引擎提供的搜索结果页面中。

如图3A所示的用户界面300表示响应于用户输入的查询来显示搜索结果的用户界面。在一些实现方式中,如图3A所示的用户界面300可以响应于用户在搜索引擎或使得用户能够提供信息请求的其他系统提供查询而呈现给用户。简而言之,用户接口300包括查询输入字段302、查询请求控制304和搜索结果308。

如图3A所示的用户界面300可以响应于用户在搜索会话期间输入的查询来呈现。例如,如图3A所示,用户已经在查询输入字段302处输入了搜索查询306“filghts to Happytown”,并且用户界面300可以响应于用户选择查询请求控制304呈现给用户。用户界面300呈现与查询“filghts to Happytown”相关的搜索结果308。例如,如图3A所示,搜索结果308包括用于预订至Happytown的航班的在线服务以及Happytown的详细航班时刻表信息的网站的结果。

如图3B所示的用户界面300是用于响应于用户在使用基于实体的偏移的相同搜索会话期间的稍后时间输入的部分查询、显示建议的搜索查询的代表性用户界面。例如,如图3B所示,用户已经在查询输入字段302处输入部分搜索查询326“Weather in |”。在一些实现方式中,用户可不输入部分搜索查询,而是通过点击查询输入字段来开始新的搜索查询,如上参考图2所述。

基于至少将实体“Happytown”识别为与在搜索会话期间接收的一个或多个搜索查询相关联的实体,如图3B所示的用户界面300呈现与在搜索会话期间由用户输入的部分搜索查询“weather in |”和先前搜索查询相关的建议的搜索查询328的列表。例如,如图3B所示,建议的搜索查询328的列表包括“Weather in Happytown”和“Weather in Rainyville”。建议的搜索查询“Weather in Happytown”在建议的搜索查询列表中表现为比建议的搜索查询“Weather in Rainyville”更高,这是因为,用户在搜索会话期间输入的先前搜索查询包括查询“flights to Happytown”,如图3A所示。因此,城市上下文术语“Happytown”具有比可能的建议集合中的其他城市(例如用户的家乡)更高的相关性评分。

图4A至4C示出了使用实体外推的基于一个或多个上下文术语提供建议的搜索查询的示例用户界面的一部分。可以在搜索会话期间向用户呈现用户界面400。在一些实现方式中,用户界面400可以呈现在网络浏览器或能够向用户提供查询特征的其他应用中,例如在用户可以通过网络浏览器访问的搜索引擎所提供的搜索结果页面中。

如图4A所示的用户界面400表示用于响应于用户输入的查询来显示搜索结果的用户界面。在一些实现方式中,如图4A所示的用户界面400可以响应于用户在搜索引擎或使用户能够提供信息请求的其他系统处提供查询而呈现给用户。简而言之,用户接口400包括查询输入字段402、查询请求控制404和搜索结果406。

如图4A所示的用户界面400可以响应于用户在搜索会话期间输入的查询来呈现。例如,如图4A所示,用户已经在查询输入字段402输入了搜索查询“A-Song lyrics Two Directions”,并且用户界面400可以响应于用户选择查询请求控制404而呈现给用户。用户界面400呈现与查询“A-Song lyrics Two Directions”相关的搜索结果406。例如,如图4A所示,搜索结果406包括乐队“Two Directions”的官方网站的结果。

如图4B所示的用户界面400表示用于响应于用户在相同的搜索会话期间稍后输入的部分查询来显示建议的搜索查询的用户界面。例如,如图4B所示,用户已经在查询输入字段402处输入了部分搜索查询“B|”。在一些实现方式中,用户可以不输入部分搜索查询,而是通过点击查询输入字段来开始新的搜索查询,如上参照图2所述。基于至少识别用户输入的最近的搜索查询中的实体“Two Directions”和“A-Song”,如图4B所示的用户界面400呈现了与用户在搜索会话期间输入的部分搜索查询“B”和先前搜索查询相关的建议的搜索查询426。例如,如图4B所示,建议的搜索查询426是“B-Song lyrics Two Directions”。

如图4C所示的用户界面400代表用于响应于用户在使用实体外推的相同搜索会话期间开始新的搜索查询来显示建议的搜索查询的用户界面。例如,如图4C所示,用户已经通过点击查询输入字段402开始新的搜索查询。基于在用户输入的一个或多个最近的搜索查询中识别查询模式“$song lyrics $bandname”,例如分别在图4A和4B中的搜索查询408和428,并且确定模式“$song lyrics $bandname”与乐队专辑中的预定歌曲列表相关,如图4C所示的用户界面400呈现了建议的搜索查询436。例如,如图4C所示,该系统已经识别了搜索查询模式“$song lyrics $bandname”,识别了乐队“Two Directions”的专辑中的预定歌曲列表,从预定的歌曲列表中选择第三首歌曲“C-Song”并生成建议的搜索查询“C-Song lyrics Two Directions”。

已经描述了许多实现方式。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。例如,可以使用如上所示的各种形式的流程,重新排序、添加或移除步骤。因此,其他实现方式在所附权利要求的范围内。

对于这里讨论的系统和/或方法可以收集关于用户的个人信息或可以利用个人信息的实例,可以向用户提供控制程序或特征是否收集个人信息的机会,所示信息例如关于用户的社交网络、社会动作或活动、专业、偏好或当前位置的信息,或者向用户提供控制系统和/或方法是否和/或如何可以执行与用户更相关的操作的机会。此外,某些数据可以在存储或使用之前以一种或多种方式进行匿名化,从而消除个人身份信息。例如,用户的身份可以被匿名化,使得不能为用户确定个人身份信息,或者在获得位置信息(诸如城市、邮政编码或州级)的情况下,可以将用户的地理位置概括,使得无法确定用户的特定位置。因此,用户可以控制如何收集关并使用于他或她的信息。

本说明书中描述的实施例和所有功能操作可以在数字电子电路中、或在计算机软件、固件或硬件(包括在本说明书中公开的结构及其结构等同物)或它们的一个或多个的组合实现。实施例可以被实现为一个或多个计算机程序产品,即在计算机可读介质上编码的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、实现机器可读传播信号的物质组成、或它们中的一个或多个的组合。术语“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所述计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。传播的信号是人为产生的信号,例如,机器产生的电、光或电磁信号,其被产生以编码用于传输到合适的接收器设备的信息。

计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以包括编译或解释语言的任何形式的编程语言编写,并且可以以任何形式部署,包括作为独立程序或作为适用于计算环境的模块、组件、子例程或其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件(例如,存储在标记语言文档中的一个或多个脚本)的一部分中、专用于所讨论的程序的单个文件中、或者多个协调文件(例如,存储一个或多个模块、子程序或代码的各部分的文件)中。计算机程序可以被部署为在一个计算机上或多个计算机上执行,所述多个计算机位于一个站点或者跨多个站点分布并通过通信网络互连。

本说明书中描述的处理和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并产生输出来执行功能。处理和逻辑流程也可以由专用逻辑电路(例如FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,并且装置也可以被实现专用逻辑电路。

适于执行计算机程序的处理器例如包括通用和专用微处理器以及任何类型的数字计算机中的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。

计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合到用于存储数据的一个或多个大容量存储设备,以从其接收数据或向其传输数据或两者,所述大容量存储设备例如磁、磁光盘或光盘。然而,计算机不必具有这样的设备。此外,计算机可以嵌入在另一设备中,所述另一设备例如平板计算机、移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器等。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括:半导体存储器设备,例如EPROM、EEPROM和闪速存储设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入其中。

为了提供与用户的交互,实施例可以在计算机上实现,所述计算机具有:显示设备,例如CRT(阴极射线管)或LCD(液晶显示器)监视器,用于向用户显示信息;以及键盘和指示设备,例如鼠标或轨迹球,用户可以通过键盘和指示设备向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。

实施例可以在这样的计算系统中实现,其包括后端组件(例如,作为数据服务器),或包括中间件组件(例如,应用服务器),或包括前端组件(例如具有图形用户界面或网络浏览器的客户端计算机,用户可以通过图形用户界面或网络浏览器与实现交互),或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如因特网。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系是由于各自计算机上运行的计算机程序和彼此之间的客户端-服务器关系而产生的。

虽然本说明书包含许多具体细节,但是这些不应被解释为对本公开的范围或可要求保护的内容的限制,而是对具体实施例特定的特征的描述。在单独实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合地实现。相反,在单个实施例的上下文中描述的各种特征也可以分开地或以任何合适的子组合在多个实施例中实现。此外,虽然以上可以将特征描述为以某些组合的方式起作用,并且甚至最初如此要求保护,但要求保护的组合的一个或多个特征在某些情况下可以从组合中被去除,并且所要求保护的组合可以针对子组合或子组合的变型。

类似地,虽然在附图中以特定顺序描绘操作,但是这不应被理解为要求以所示的特定次序或顺序的次序执行这些操作,或者执行所有所示的操作以实现所期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或被封装成多个软件产品。

在提及HTML文件的每个实例中,可以替换其他文件类型或格式。例如,HTML文件可以被XML、JSON、纯文本或其他类型的文件替代。此外,在提及表或哈希表的情况下,可以使用其他数据结构(诸如电子表格、关系数据库或结构化文件)。

因此,已经描述了特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中所述的动作可以以不同的顺序执行,并且仍然实现期望的结果。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1