识别缺失的浏览节点的制作方法

文档序号:16807008发布日期:2019-02-10 13:08阅读:182来源:国知局
识别缺失的浏览节点的制作方法

本申请要求于2016年10月11日提交的题为“identifyingmissingbrowsenodes”的美国专利申请no.15/290,283和于2016年5月31日提交的题为“labelingquerywithaspects”的美国临时专利申请no.62/343,646的优先权,这两个专利的全部内容均通过引用并入本文中。

本文公开的主题总体涉及数据处理。具体地,在一些示例实施例中,本公开解决了用于识别缺失的浏览节点的系统和方法。

附图说明

在附图中以示例而非限制的方式示出了一些实施例。

图1是示出了根据一些示例实施例的适合于识别缺失的浏览节点的网络环境的网络图。

图2是示出了根据一些示例实施例的适合于识别缺失的浏览节点的映射服务器的组件的框图。

图3是示出了根据一些示例实施例的适合于提交查询和显示结果的客户端设备的组件的框图。

图4是示出了根据一些示例实施例的适合于显示搜索结果的用户界面的框图。

图5是示出了根据一些示例实施例的适合于显示搜索结果的用户界面的框图。

图6是示出了根据一些示例实施例的适合于显示浏览节点的用户界面的框图。

图7是示出了根据一些示例实施例的浏览节点的层次结构的框图。

图8是示出了根据一些示例实施例的输入查询和其所标记方面之间的示例关系的框图。

图9是示出了根据一些示例实施例的适合于识别缺失的浏览节点的因素的框图。

图10是示出了根据一些示例实施例的应用服务器在执行识别缺失的浏览节点的方法时的操作的流程图。

图11是示出了根据一些示例实施例的应用服务器在执行创建缺失的浏览节点的方法时的操作的流程图。

图12是示出了根据一些示例实施例的在以方面标记查询以用于识别缺失的浏览节点的方法时的查询数据特征的使用的框图。

图13是示出了根据一些示例实施例的在以方面标记查询以用于识别缺失的浏览节点的方法时的用户数据特征的使用的框图。

图14是示出了根据一些示例实施例的在以方面标记查询以用于识别缺失的浏览节点的方法时的上下文数据特征的使用的框图。

图15是示出了根据一些示例实施例的在应用服务器执行以方面标记查询以用于识别缺失的浏览节点的方法时的操作的流程图。

图16至图17是示出了根据一些示例实施例的应用服务器在执行识别缺失的浏览节点的方法时的操作的流程图。

图18是示出了根据一些示例实施例的可以安装在机器上的软件架构的示例的框图。

图19是根据示例实施例的具有计算机系统的形式的机器的示图表示,在所述计算机系统中,可以执行一组指令以使所述机器执行本文讨论的方法中的任意一个或多个方法。

具体实施方式

示例方法和系统涉及识别缺失的浏览节点。示例只是代表可能的变化。除非另行明确声明,否则组件和功能是可选的,且可被合并或细分,且操作可以在顺序上变化或被组合或细分。在以下描述中,出于解释的目的,对多个具体细节进行阐述,以提供对示例实施例的透彻理解。然而,对于本领域技术人员将显而易见的是:本主题可以在没有这些具体细节的情况下实施。

方面是可以用于过滤搜索结果的属性,被存储为密钥/值对。方面不同于搜索结果的内容(例如,搜索结果中显示的文本或图像),且不同于搜索结果的类别。类别以树结构组织,每个搜索结果最多属于树的一个叶节点。相反,每个搜索结果可以与多个方面相关联。例如,“品牌=耐克”和“状况=新的”都可以与单个项目相关联。为清楚起见,术语“方面类型”可以用于指代密钥/值对中的密钥,并且“方面值”用于指代密钥/值对中的值。

浏览节点是用户可以浏览的特定项目组。在一些示例实施例中,借助于所提供页面中的超文本标记语言(html)标签、所提供页面的统一资源定位符(url)的特征或两者,将浏览节点与搜索结果页面区分开。例如,搜索结果页面可以具有将搜索查询项指示为公共网关接口(cgi)脚本的参数的url,而浏览节点页面可以具有将搜索查询项指示为url的路径部分的一部分的url。作为另一示例,搜索结果页面可以具有用于许多搜索查询的一般标题(例如,使用<title>或<h1>html标签),而浏览节点页面(例如html文档)可以具有专门反映浏览节点的标题。

用户可以向搜索引擎(例如,在应用服务器上运行的搜索应用)提交搜索查询。搜索引擎可以处理搜索查询并生成结果集合。针对相同搜索查询,由不同搜索引擎产生的结果可能不同。例如,一个搜索引擎可以适合于提供图像结果,而另一个搜索引擎适合于提供购物结果。继续该示例,向两个引擎提交包括“钱包”的搜索查询可以使得产生来自第一引擎的钱包的图像和来自第二引擎的钱包零售商的链接。

搜索查询可能之前已由其他用户运行,并且可能已经记录了其他用户响应于接收针对搜索查询的结果集而采取的动作。例如,可能已创建了在其他用户提交搜索查询之后采取的先前用户动作的数据库。其他用户的动作可以用于标记当前搜索查询中的方面。例如,如果搜索查询是“数码相机尼康”,并且使用该搜索查询的许多用户将搜索细化为“相机&照片>数码相机”类别中具有“品牌=尼康”方面的项目,可以用方面“品牌=尼康”来标记“数码相机尼康”的查询。

附加地或备选地,当前用户的先前搜索可以用于标记当前搜索查询的方面。例如,搜索查询可能之前已由相同用户运行,并且可能已经记录了该用户响应于接收针对搜索查询的先前使用的结果集而采取的动作。用户的先前动作可以用于标记当前搜索查询中的方面。

在一些示例实施例中,搜索的上下文用于标记当前搜索查询的各方面。上下文指代进行查询的方式,而不是查询本身。例如,用户的设备、web浏览器、应用和操作系统都提供上下文。上下文的其它元素包括日期、星期几、一天中提交查询的时间、以及当前事件(例如,最近的新闻报道或体育赛事)。用户使用相同上下文的先前动作可被用于标记当前搜索查询中的方面。

为了改善用户体验,需要针对类别与方面的流行组合的浏览节点。当发现以超过阈值的频率请求类别和方面的特定组合时,检查针对该组合的浏览节点的存在,并且如果浏览节点缺失,则产生用于创建该浏览节点的请求。在一些示例实施例中,基于对所请求的类别与方面组合的模式的识别来产生缺失的浏览节点的整个集合。

图1是示出根据一些示例实施例的适合于识别缺失的浏览节点的网络环境100的网络图。网络环境100包括电子商务服务器120和140、映射服务器130以及设备150a、150b和150c,它们都经由网络170彼此通信耦合。设备150a、150b和150c可以被集体称为“设备150”,或者被统称为“设备150”。电子商务服务器120以及映射服务器130可以是基于网络的系统110的一部分。备选地,设备150可以直接连接到映射服务器130,或者通过本地网络连接到映射服务器130,所述本地网络不同于用于连接到电子商务服务器120或140的网络170。如以下参照图17-18所描述的,电子商务服务器120和140、映射服务器130以及设备150均可以整体地或部分地实现在计算机系统中。

电子商务服务器120和140经由网络170向其他机器(例如,设备150)提供电子商务应用。电子商务服务器120和140还可以直接连接到映射服务器130,或者与映射服务器130集成在一起。在一些示例实施例中,一个电子商务服务器120和映射服务器130是基于网络的系统110的一部分,而其他电子商务服务器(例如,电子商务服务器140)与基于网络的系统110分离。电子商务应用可以向用户提供相互直接购买和出售物品、从电子商务应用提供商购买物品和将物品出售给电子商务应用提供商、或者以上二者的途径。

图1中还示出了用户160。用户160可以是人类用户(例如,人类)、机器用户(例如,通过软件程序配置的与设备150和映射服务器130交互的计算机)或者它们的任意合适组合(例如,机器辅助的人或者人监管的机器)。用户160不是网络环境100的一部分,但与设备150相关联并且可以是设备150的用户。例如,设备150可以是属于用户160的传感器、台式计算机、车载计算机、平板计算机、导航设备、便携媒体设备或智能电话。

在一些示例实施例中,映射服务器130从用户接收搜索查询。映射服务器130修改搜索查询以包括方面,从搜索查询中去除项(term)或两者。向电子商务服务器120或140发送所得到的搜索查询,电子商务服务器120或140为用户产生结果列表。备选地,如果搜索查询与浏览节点相对应,则向用户提供浏览节点而不是结果列表。

图1中所示的机器、数据库或设备中的任意一个可以用通用计算机来实现,所述通用计算机通过软件修改(例如,配置或编程)为专用计算机,以执行本文针对所述机器、数据库或设备描述的功能。例如,以下参照图17-18讨论能够实现本文描述的方法中的任意一个或更多个的计算机系统。如本文所使用的,“数据库”是数据存储资源并可以存储结构化为文本文件、表格、电子表格、关系数据库(例如,对象关系数据库)、三元组存储、分层数据存储或它们的任意合适组合的数据。此外,图1中示出的机器、数据库或设备的任意两个或更多个可以组合到单个机器、数据库或设备中,并且本文针对任意单个机器、数据库或设备描述的功能可以细分到多个机器、数据库或设备中。

网络170可以是实现机器、数据库和设备(例如,映射服务器130和设备150)之间的通信的任意网络。因此,网络170可以是有线网络、无线网络(例如移动或蜂窝网络)或其任意合适组合。网络170可以包括构成私有网络、公共网络(例如互联网)或其任意合适组合的一个或多个部分。

图2是示出了根据一些示例实施例的映射服务器130的组件的框图。映射服务器130被示出为包括全都被配置为(例如,经由总线、共享存储器、交换机、或者应用编程接口(api))彼此通信的通信模块210、评价模块220、字典模块230和存储模块240。本文描述的任何一个或多个模块可以使用硬件(例如机器的处理器)或硬件与软件的组合来实现。例如,本文描述的任何模块可以将处理器配置为执行本文中针对该模块描述的操作。此外,这些模块中的任何两个或更多个模块可被合并为单个模块,且本文中针对单个模块描述的功能可以细分到多个模块中。此外,根据各种示例实施例,本文描述为在单个机器、数据库或设备中实施的模块可以分布在多个机器、数据库或设备中。

通信模块210被配置为发送和接收数据。例如,通信模块210可以通过网络170接收图像数据,并将接收的数据发送给评价模块220。通信模块210可以从设备150接收搜索查询。在接收到搜索查询时,通信模块210可以向字典模块230发送搜索查询以用方面来标记查询。例如,所接收的搜索查询可以是对与搜索字符串匹配的项目的查询。

评价模块220被配置为创建将搜索查询与对应方面相关联的字典。例如,可以创建将查询与方面“品牌=耐克”相关联的针对“耐克鞋”的字典条目。评价模块220可以使用存储模块240来取得与搜索查询(例如,“耐克鞋”)相关的一个或多个搜索查询。基于在运行搜索查询之后的先前用户活动,类别(例如,服装类别中的“鞋子”)、方面(例如,在拍卖中出售的“鞋子”)或其任何合适的组合可以被识别,并且与在字典中的搜索查询相关联。

搜索结果可以包含方面和类别两者。作为示例,考虑针对一双特定鞋子的列表的搜索结果。鞋子可以属于服装类别,而列表可以具有作为拍卖的方面。作为另一示例,考虑包括关于经济政策的文章的网页的搜索结果。该文章可以属于经济学类别,而文章的呈现模式(搜索结果的方面)是网页。

字典模块230被配置为查找输入查询的替换查询。例如,字典模块230可以从通信模块210接收搜索查询,并且访问数据库以识别替换查询。基于上面的示例,针对“耐克鞋”的搜索可能会被针对“服装>鞋子”类别中的具有方面“品牌=耐克”的所有项目的查询所替代。通信模块210可以向电子商务服务器120或140发送替换查询,以产生要发送给用户的搜索结果。在一些示例实施例中,针对查询的字典查找返回浏览节点的标识符。向电子商务服务器120或140发送浏览节点的标识符,电子商务服务器120或140向设备150发送浏览节点以显示给用户。

存储模块240可以存储与由查询用户和其他用户先前进行的搜索有关的数据以供评价模块220使用,存储方面查找数据以供字典模块230使用,或者存储两者。例如,历史查询数据、用户建模数据、上下文建模数据、以及查询建模数据都可以由存储模块240存储。附加地或备选地,存储模块240可以访问其它设备(例如,外部数据库)上的数据存储器。

图3是示出了根据一些示例实施例的适合于提交查询以及显示结果和浏览节点的设备150的组件的框图。设备150被示出为包括全都被配置为(例如,经由总线、共享存储器、或交换机)彼此通信的通信模块310和用户界面模块320。

通信模块310可以与电子商务服务器120或140、映射服务器130或其任何合适的组合进行通信。经由通信模块310接收的信息可以经由用户界面模块320呈现(例如,在显示设备上显示)。用户使用由用户界面模块320呈现的用户界面可以选择信息或者可以输入搜索查询。搜索查询可以经由通信模块310被传送给电子商务服务器120或140或映射服务器130。通信模块310可以从电子商务服务器120或140或映射服务器130接收包括结果集的响应。可以通过用户界面模块320向用户呈现搜索结果。例如,搜索结果可以以列表视图或图库视图的方式来呈现。类似地,可以呈现提供针对数据的定制视图而不是通用结果列表的浏览节点。

图4是示出了根据一些示例实施例的适合于呈现搜索结果的用户界面400的框图。从图4中可以看出,用户界面400包括标题410“搜索结果”;类别420;方面430;以及四个搜索结果440至470。

用户界面400可以响应于用户查询而显示。例如,如果用户在设备150上输入针对“索尼相机”的查询,则可以从设备150向映射服务器130发送该查询。映射服务器130用针对在“相机&照片”类别中的子类别“摄像录像机”中具有“品牌=索尼”方面的所有项目的搜索来替换查询短语。电子商务服务器120或140执行替换查询,并向设备150发送搜索结果440至470以显示给用户。

搜索结果440至470中的每一个搜索结果可以用于查看关于搜索结果的附加信息。例如,搜索结果可以是待售项目,并且初始搜索结果屏幕可以显示项目的图像和标记。点击或以其它方式激活项目的图像可以显示新页面,该新页面显示关于项目的附加信息,例如项目描述、附加图像、价格等。

结果可以包括项目、事件、位置、人员等。项目可以是待售项目或想要购买的项目。事件可以是音乐会、节日、电影、体育赛事等。位置可以是纪念碑、商店、加油站、餐馆、体育场等。人员可以是用户的朋友、名人或其他人。在一些示例实施例中,基于所支付的广告费来选择所显示的项目、事件、位置或人员中的一个或多个。

图5是示出了根据一些示例实施例的适合于呈现搜索结果的用户界面500的屏幕图。从图5中可以看出,用户界面500包括标题510“搜索结果”;结果计数520;类别530;方面540;以及四个搜索结果550至580。用户界面500可以呈现给在具有较大屏幕的设备上查看搜索结果的用户,而用户界面400可以呈现在具有较小屏幕的设备上。附加屏幕区域可以允许呈现结果计数520以及搜索结果550至580中的附加信息。例如,用户界面500包括每个搜索结果550至580的价格和描述,而在上面讨论的图4的示例中,针对每个搜索结果440至470仅示出了图像和标签。

图6是示出了根据一些示例实施例的适合于呈现浏览节点的用户界面600的屏幕图。从图6中可以看出,用户界面600包括标题610“浏览节点名称”;结果计数620;类别630;方面640;以及四个搜索结果650至680。用户界面600可以被呈现给查看浏览节点的用户,而用户界面500可以被呈现给查看搜索结果的查看者。基于正在查看的特定浏览节点呈现用户界面600中的一个或多个元素。相反,用户界面500的所有元素是基于搜索查询(例如,搜索结果550至580)动态产生的,或者无论搜索查询如何都会被呈现。因此,实际上,搜索结果页面的可能数量是无限的,针对每个可能的查询产生不同的搜索结果页面。然而,由于每个浏览节点包括特定于特定浏览节点的至少一个元素,因此浏览节点的可能数量是有限的(例如,受创建每个浏览节点所涉及的时间、特定元素的存储空间或其两者的限制)。因此,应该以提供最大利益的方式而不是随机地针对搜索查询创建浏览节点。

图7是示出了根据一些示例实施例的浏览节点的层次结构的框图700。如框图700中所示,浏览节点可以存在于层次结构中的不同层级处。在最高层级处,用户可以查看整个产品类型的信息。从产品类型视图中,用户可以具体查看类别和子类别。在类别或子类别内,针对特定方面值和组合可以存在进一步的浏览节点。例如,可以针对“品牌=索尼”、“颜色=黑色”或两者一起来创建浏览节点。由于由不同方面的可能组合的数量引起的组合爆炸,通常希望避免针对每个可能的方面组合来创建浏览节点。例如,如果存在针对品牌、颜色和大小的方面,并且每个方面具有10个可能的值(绝不是上限),则将需要创建针对各种组合的1000个不同的浏览节点,以便提供针对每个组合的浏览节点。选择性地创建浏览节点可以以最小的成本来提供大部分收益。例如,如果10个浏览节点覆盖80%的用户兴趣,则将浏览节点限制为将提供80%的收益的那10个,且仅需创建所有1000个浏览节点的成本的1%。

方面受限的浏览节点通过产品系列节点进一步细化。产品系列节点包含密切相关项目的策划(curated)列表。例如,针对“相机&照片>胶片摄影>胶片相机”类别的具有“品牌=索尼”和“颜色=黑色”的方面受限的浏览节点将包含与这些标准匹配的所有项目。作为另一示例,针对“惊奇胶片相机”的产品系列节点将包含符合策划人的判断标准的项目集合。

针对特定类别/方面组合来创建浏览节点可以提供更好的浏览体验。例如,浏览节点可以与普通的方面过滤器不同地呈现给用户,允许用户更容易地找到针对当前浏览类别的流行方面集合。此外,浏览节点可以改善站点在其它搜索引擎中的排名。例如,如果站点为web爬行器提供查找每个浏览节点的自然方式,则针对特定类别/方面的浏览节点页面可能比针对相同组合的搜索结果页面具有更高的页面排名。

图8是示出了根据一些示例实施例的输入查询810、类别820、以及所标记方面830之间的示例关系的框图800。在图8的示例中,输入查询是“乔丹10幼儿(toddler)”。基于在提交该查询之后的其他用户的交互、在提交该查询之后的当前用户的交互、在与当前查询相同的上下文中的用户的交互或者其任何合适的组合,确定类别820和所标记方面830。例如,可以使用两步处理。在第一步中,确定查询、类别和方面集合之间的关系,并将其存储在字典中。可以周期性地(例如,每天或每周)执行该挖掘过去用户交互以创建字典的处理。在第二步中,在用户提交查询时,访问字典以识别替换查询。在一些示例实施例中,在接收查询时执行这两个步骤。与预先准备字典的两步实现相比,运行时解决方案可能消耗更多处理资源,但提供更好的结果。

在图8的示例中,所得到的类别820是“服装、鞋类&配饰>婴儿&幼儿服装>婴儿鞋”。所得到的方面830是“美国鞋子尺码(婴儿&幼儿)=10”和“品牌=乔丹”。因此,当用户提交针对“乔丹10幼儿”的一般查询时,可以向用户显示类别820中的具有方面830的所有结果。

图9是示出了根据一些示例实施例的适合于识别缺失的浏览节点的因素的框图900。如框图900中所示,查询关键字905、回调(recall)910、上下文915、基本用户数据920、查询数据特征925和用户数据特征930可以输入到广泛查询模型935中。这些输入可以统称为输入905至930。广泛查询模型935可以产生一个或多个体验940至950。

查询关键字905可以是用户提交的搜索查询的一部分。例如,搜索查询可以由所选择的图像和多个关键字组成。

回调910可以包括响应于搜索查询而为用户产生的结果集。继续由图像和多个关键字组成的搜索查询的示例,结果集可以包括与所选择的图像类似的图像、包含多个关键字中的一个或多个关键字的文章、包括所选择的图像的文章、包括与所选择的图像类似的图像的文章、具有包括多个关键字中的一个或多个关键字的标题或元数据的图像、或者被发现以另一种方式与搜索相关的结果。

上下文915可以包含关于提交查询的环境的任何信息。例如,上下文915不仅可以包括搜索查询和用户,还可以包括正在使用的浏览器、一天中提交查询的时间、在当前查询之前提交的是哪些查询、以及关于提交查询的环境的任何其它信息。

基本用户数据920可以包括与提交查询的用户有关的信息。例如,基本用户数据920可以包括用户的姓名、年龄、地址、性别、收入水平、教育水平、婚姻状况、以及关于用户的任何其它已知信息。

在一些示例实施例中,在访问与查询数据特征925和用户数据特征930有关的信息之前,广泛查询模型935访问查询关键字905、回调910、上下文915和基本用户数据920。在其它示例实施例中,广泛查询模型935以不同的顺序来访问输入数据元素。

查询数据特征925包括基于查询的信息。例如,在运行当前搜索查询之后通常由其他用户(或包括当前用户的所有用户)运行的搜索将是查询数据特征925。为了说明,针对具有“模式=数字”方面的项目的搜索往往可以沿袭(follow)针对“相机”的搜索。因此,“模式=数字”方面可以是针对“相机”查询的查询数据特征925。

用户数据特征930包括基于用户的信息。例如,通常由当前用户对其它查询运行的修改可以是用户数据特征930。为了说明,当前用户往往可以沿袭针对具有相同搜索查询的项目的搜索,所述项目限于可立即购买的项目(例如,“立即购买”项目)。因此,修改搜索以包括“立即购买”方面可以是针对用户的用户数据特征930。基本用户数据920和用户数据特征930的相似之处在于它们都涉及针对特定用户的数据。区别在于:基本用户数据920包含由用户直接有意提供的数据(例如,姓名、地址、电子邮件地址和信用卡号),而用户数据特征930包含由映射服务器130或电子商业服务器120、140基于用户采取的动作而导出的数据。

在针对输入查询(包括查询关键字905)、回调910、上下文915、以及基本用户数据920考虑查询数据特征925和用户数据特征930之后,广泛查询模型935可以产生一个或多个体验940至950。在一些示例实施例中,每个体验940至950是包括一个或多个方面的浏览节点。例如,广泛查询模型935可以向使用输入905至930产生的查询施加各种权重,以产生体验940至950。基于查询数据特征925,可以产生针对“相机&照片”类别中的具有“模式=数字”方面的项目的搜索。基于用户数据特征930,可以产生针对“相机&照片”类别中的具有“立即购买”方面的项目的搜索。基于加权因子或推荐层次结构,可以使用所产生的搜索之一来向用户提供结果。还可以产生针对“相机&照片”类别中的具有“立即购买”方面和“模式=数字”方面的项目的搜索组合推荐。基于加权因子或推荐层次结构,组合推荐可以用于向用户提供结果。在其它实施例中,可以使用加权因子或层次结构的不同组合。

因此,当所确定的体验940至950是尚未创建的浏览节点时,映射服务器130或电子商务服务器120或140可以产生用于创建对应的浏览节点的请求。该请求可以由管理员处理或者导致浏览节点的自动产生。

图10是示出了根据一些示例实施例的在执行识别缺失的浏览节点的方法1000时映射服务器130的操作的流程图。方法1000中的操作可以由映射服务器130使用上文参照图2描述的模块来执行。

在操作1010中,评价模块220获得查询和所查看的项目数据。例如,可以访问图12至图14的历史用户行为数据以确定由特定查询产生的成功会话。在一些示例实施例中,对单独项目的查看显示出会话是成功的。在各种示例实施例中,使用成功会话的其它计量来替代所查看的项目。成功会话可以是用户以任何方式与项目交互(例如,查看项目、对项目出价、购买项目、订购项目等)的会话或者用户执行特定交互(例如,对项目出价、购买项目、或这二者)的会话。不成功的会话是根据由特定实施例使用的成功的定义而言的没有成功的任何会话。也可以使用其他标准来识别成功和不成功会话。因此,可以使用针对成功会话的其它标准来执行方法1000,但在下面使用所查看的项目来描述。

在操作1020中,评价模块220将类似的查询组合在一起。可以通过距离度量来判断查询之间的相似性,并且将具有低于阈值的距离的查询进行组合。例如,“耐克鞋”和“鞋子耐克”不是相同的查询,但是距离度量可以表明查询是相似的,因为它们包含不同顺序的相同词语。类似地,“dvdmovie(dvd电影)”和“dvdmovies(多部dvd电影)”不是相同的查询,但是距离度量可以表明查询是相似的,因为一个查询中的词语是另一个查询中的词语的复数。在一些示例实施例中,将查询组合在一起使得针对任一查询查看的项目被认为已针对两个查询都被查看。在其它示例实施例中,将查询组合在一起使得针对类似查询查看的项目被认为已针对类似查询中的最流行的查询被查看;然后忽略其它类似的查询。

在操作1030中,评价模块220获得针对所查看项目的项目特定信息。例如,可以从历史用户行为数据中取得每个所查看项目的类别和方面。在一些示例实施例中,获得针对每个项目的附加信息。例如,获得项目的标题、针对卖方提供的项目的标签、买方提供的标签、或其任何合适的组合。

在操作1040中,字典模块230构建查询特定方面字典。查询特定方面字典允许从查询中查找方面。可以使用各种算法来构建查询特定方面字典。在一些示例实施例中,确定具有响应于查询而被查看的各个方面的项目的百分比。将所确定的百分比与阈值进行比较,并且如果超过阈值,则将方面添加到字典中。例如,如果阈值是80%,并且在针对“耐克鞋”的搜索之后的90%的所查看项目具有方面“品牌=耐克”,则将“品牌=耐克”添加为针对查询“耐克鞋”的方面。

在操作1050中,字典模块230通过在查询的n元文法(n-gram)和方面字典之间执行精确和模糊匹配,来将查询特定方面字典应用于查询。也就是说,每个查询都由项组成;n元文法是包含n个项的查询的子集。例如,针对“耐克鞋”的查询包括两个1元文法(“耐克”和“鞋子”)和一个2元文法(“耐克鞋子”)。为了精确匹配,在方面字典中查找针对查询的三个n元文法以识别对应的方面。对于模糊匹配,还执行项的根词干提取。例如,将复数词转换为单数形式,剥离后缀(例如,-ly和-ing)等。在方面字典中进行的多个查找提供多个结果。

首先,对n元文法的查找首先开始于最长的n元文法。当找到匹配的n元文法时,忽略n元文法中的令牌以进行进一步的搜索。当所有的n元语法都已被用于识别方面时,更新全局方面字典以将识别出的方面与查询相关联。对于相等长度的n元文法,可以使用所得方面的流行度。例如,针对“男士腰带”类别中的“李维斯腰带扣”查询可以映射到“品牌=扣”或“品牌=李维斯”。由于针对“品牌=李维斯”的搜索在“男士腰带”类别中更为常见,因此可以优先考虑该方面。如果用户在不包括“李维斯”的情况下搜索“腰带扣”,则如果针对“品牌=扣”的进一步搜索超过预定阈值,则方面“品牌=扣”可被自动添加到查询中。

在一些示例实施例中,基于当前用户和其他用户的使用模式来选择方面以用于标记。在一些示例实施例中,基于广告费、促销、季节等来产生方面。例如,关于圣帕特里克节的推荐搜索可能会将“颜色=绿色”一词添加到搜索查询中。映射服务器130还可以确定是否应该提供方面。例如,如果方面已经应用于搜索查询,则映射服务器130可以决定避免将另一方面应用于查询。

作为考虑的另一要素,可以考虑类别树中的类别的层级。例如,类别树底部附近的窄类别对于标记方面来说可能是优选的,而类别树顶部附近的宽类别则不是。因此,在一些示例实施例中,仅在识别出的类别是窄类别时(如当识别出的类别例如不在类别树的根节点的两个层级内时),对方面进行标记。

在操作1060,映射服务器130的评价模块220确定针对所标记查询是否存在浏览节点。例如,映射服务器130可以向电子商务服务器120或140请求针对所标记查询的浏览节点,并且作为响应接收指示不存在浏览节点的报错消息或空值。如果不存在浏览节点,则映射服务器130向电子商务服务器120或140发送请求以创建浏览节点。

图11是示出了根据一些示例实施例的在执行创建缺失的浏览节点的方法1100时映射服务器130的操作的流程图。方法1100中的操作可以由映射服务器130使用上文参照图2描述的模块来执行。

在操作1110中,映射服务器130获得查询数据。例如,可以从历史用户行为数据库或查询建模数据库获得过去的查询(例如,图12中描述的那些查询)。

在操作1120中,映射服务器130将类似的查询组合在一起。例如,查询数据可以包括在一段时间内接收的每个查询以及对接收查询的次数的计数。可以通过去除类似查询中除了一个查询之外的所有查询并将被去除的查询的计数添加到剩下的查询的计数来组合类似查询。为了说明,通过使用根词干提取确定“bag”和“bags”是等效的,可以发现出现100次的“guccibag”和出现200次的“guccibags”相似。可以保留更流行的查询“guccibags”,并丢弃不太流行的查询。因此,在将类似查询进行组合之后,将保留出现300次的“guccibags”,并且“guccibag”将不再作为查询出现。

操作1130至1150镜像如上所述的操作1030至1050。在操作1130中,评价模块220获得针对所查看项目的项目特定信息。在操作1140中,字典模块230构建查询特定方面字典。在操作1150中,字典模块230通过在查询的n元文法(n-gram)和方面字典之间执行精确和模糊匹配,来将查询特定方面字典应用于查询。

在操作1160中,评价模块220识别没有浏览节点的类别与方面组合的模式。例如,在“相机”类别中,可以针对特定品牌(例如,“尼康”或“佳能”)结合特定媒体格式(例如,“微型sd”,“紧凑型闪存”或“存储棒”)来运行许多搜索。基于所有此类搜索的总和超过阈值以及至少一个浏览节点不存在,对类别与方面组合的模式进行识别。因此,即使没有单个组合(例如“尼康微型sd”)会超过浏览节点创建的阈值,模式作为整体仍然可能足以证明创建浏览节点集合的合理性。

在操作1170中,评价模块220请求电子商务服务器120或140针对所确定的模式创建一个或多个浏览节点。在一些示例实施例中,针对识别出的类别和方面的每个组合创建浏览节点。在其它示例实施例中,第二阈值用于确定哪些组合将具有所创建的相关联的浏览节点。例如,与模式相匹配的十个最流行的类别/方面组合可以具有所创建的对应浏览节点。

图12是示出了根据一些示例实施例的在执行用方面来标记查询的方法时的查询数据特征的使用的框图1200。数据库1210存储历史用户行为数据,包括与系统的一定数量的用户的行为有关的数据。在一个实施例中,与所有用户的动作有关的数据存储在数据库1210中。根据历史用户行为数据,可以提取针对每个唯一搜索查询的成功会话中的类别、方面、全局过滤器等的使用度量1220。类似地,可以提取针对每个唯一搜索查询的不成功会话中的类别、方面、全局过滤器等的使用度量1230。使用度量1220和1230可以用于对将来使用相同查询时可能需要的类别、方面和全局过滤器进行建模,并且存储在数据库1240中作为查询建模数据。

图13是示出了根据一些示例实施例的在执行用方面来标记查询的方法时的用户数据特征的使用的框图1300。数据库1310存储历史用户行为数据,包括用户运行的搜索查询和源自每个搜索查询的动作序列。例如,在特定会话中,可以运行初始搜索查询,然后添加类别过滤器,然后向查询添加另一项,然后添加方面过滤器,然后查看第一项目,然后查看第二项目,最后对第二项目出价。根据历史用户行为数据,可以提取针对每个唯一用户的成功会话中的类别、方面、全局过滤器等的使用度量1320。类似地,可以提取针对每个唯一用户的不成功会话中的类别、方面、全局过滤器等的使用度量1330。使用度量1320和1330可以用于对将来由相同用户查询时可能需要的类别、方面和全局过滤器进行建模,并且存储在数据库1340中作为用户建模数据。

图14是示出了根据一些示例实施例的在执行用方面来标记查询的方法时的上下文数据特征的使用的框图1400。数据库1410存储历史用户行为数据。根据历史用户行为数据,可以提取针对成功会话中的查询改变、设备、浏览器、位置、时间、季节等的使用度量1420。类似地,可以提取针对不成功会话中的查询改变、设备、浏览器、位置、时间、季节等的使用度量1430。使用度量1420和1430可以用于对将来在类似上下文下进行查询时可能需要的类别、方面和全局过滤器进行建模,并且存储在数据库1440中作为上下文建模数据。上下文建模数据包括与查询的上下文相关的数据,并且基于从相同上下文或类似上下文发出的先前查询。例如,上下文可以包括提交查询的浏览器、产生查询的季节等。基于历史上下文数据,在夏季针对夹克的搜索通常可以由针对风衣的相关搜索沿袭,而在冬季针对夹克的搜索通常可以由针对外套的相关搜索沿袭。因此,查询建模数据将建议外套和风衣两者作为相关搜索,但是上下文建模数据将基于季节建议适当的相关搜索。

图15是示出了根据一些示例实施例的在标记查询1510的方面时可以考虑的因素的框图1500。查询建模数据1520、上下文建模数据1530和用户建模数据1540可以存储在单独的数据库中(如图所示),或存储在组合数据库中。查询建模数据1520可以从图12中所示的数据库1210中的历史用户行为数据导出。上下文建模数据1530可以从图14中所示的数据库1410中的历史用户行为数据导出。用户建模数据1540可以从图13中所示的数据库1310中的历史用户行为数据导出。

上下文建模数据1530的应用可以取决于用户正在使用的设备的类型。例如,设备可以是个人计算机、平板电脑或智能电话。用户设备也可以报告浏览器的品牌和版本。例如,浏览器可以是internetexplorer8或chrome版本32.0。附加地或备选地,浏览器信息可以指示浏览器的一个或多个特征。例如,浏览器可以支持框架、弹出窗口或javascript。此外,可以使屏幕大小或分辨率可用于映射服务器130。因此,基于当前用户或使用类似设备的其他用户的先前行为,可以基于上下文来不同地标记方面。例如,从台式计算机进行的针对“眩光过滤器”的搜索而获得的针对大小方面的值可以不同于从智能手机运行的相同搜索而得到的针对大小方面的值。

类似地,地理定位可以提供基于用户设备的ip地址产生的用户设备的大致位置。例如,借助于通过互联网而在两台机器之间进行的通信,映射服务器130可以知道用户设备的ip地址。用户设备的ip地址可以用于搜索注册的ip地址的数据库,以识别与ip地址相对应的物理地址。物理地址可以是街道地址、城镇、县、州或另一政治或地理位置。会话上下文可以包括用于映射服务器130和用户设备之间的通信的会话数据,例如,会话已经存在的时长、在会话中运行的查询的数量、在会话期间发送的结果的数量等。

在一些示例实施例中,仅标记高频关键字。高频关键字是在一段时间内搜索超过最小阈值次数的关键字。例如,高频关键字可以是每月在至少1000次会话中搜索的关键字。作为另一示例,可以基于锁定某个数量的高频关键字来确定阈值。例如,可以设置阈值,使得最频繁搜索的60,000个关键字被认为是高频关键字。可以确定关键字的每个类别和方面的成功和使用率。可以识别最频繁使用的类别和方面,并将其呈现为浏览节点。呈现类别或方面的决定可以基于针对类别或方面的成功率是否超过阈值。例如,特定关键字可以与许多方面广泛相关联,使得每个方面具有不超过10%的成功率。10%的成功率可低于阈值,并且可以做出不将任何方面呈现为浏览节点的决定。对于另一关键字,特定方面可以具有40%的成功率,该成功率可高于阈值,并且可以做出呈现该方面的选择。

可以存储方面与每个关键字的关联以供稍后访问(例如,在数据库中),或者在每次接收到查询时动态地产生针对每个关键字的方面的关联。在存储方面以供稍后在全局方面字典中访问的实施例中,可以基于在自先前产生方面标签以来经过的时间内针对查询和用户收集的附加数据来周期性地更新关联。例如,可以针对高频关键字执行方面标记,并且每周对其进行更新。

存储针对搜索关键字的方面标记的数据库可以存储针对每个关键字或查询的多个数据字段。例如,可以存储以下各项中的每一个:使用关键字或查询的会话的数量(“totalsessions”)、这些会话中使得用户与项目交互的百分比(“srpeventsratio”)、相对于平均不成功搜索的在平均成功搜索中使用的附加类别数量(“categoryeventsratio”)、成功会话中使用的方面约束的平均数量(“successaspectevents”)、成功会话中查看的结果页面的平均数量(“successpaginationevents”)、成功会话的数量(“successsrpevents”)、成功会话中使用的全局过滤器约束的平均数量(“successglobalfilterevents”)、使用使得用户与项目交互的全局过滤器的会话的百分比(”globalfiltereventsratio“)、相对于平均不成功搜索的在平均成功搜索中查看的页面的平均数量(“paginationeventsratio”)、在成功会话中使用的类别约束的平均数量(“successcategoryevents”)、以及相对于平均不成功搜索的在平均成功搜索中使用的方面的附加数量(“aspecteventsratio”)。

可以针对推荐的方面类型存储以下各项中一个或多个:查询的总使用次数(“total_imp”)、使用导致成功的方面类型的时间的百分比(“n_ctr”)、方面类型的名称(“aspectname”)、与方面类型相关联的立即购买事件的数量(“n_bin”)、使用方面类型的时间的百分比(“n_imp_per”)、使用方面类型的次数(“n_imp”)、以及使用此方面类型产生的成功的次数(“n_clicks”)。

可以针对推荐的方面类型存储以下各项中每一个:查询的总使用次数(“total_imp”)、方面的值(“value”)、方面的使用次数(“v_imp”)、利用方面的成功的数量(“v_clicks”)、由于方面产生的立即购买事件的数量(“v_bin”)、以及表示方面的图像的url(“url”)。

关于用哪些方面来标记查询的决定可以基于与这些值中的任何值或其组合相对应的阈值。一些示例阈值包括:categoryeventsratio>=0、aspecteventsratio>=0、successcategoryevents>=0、successaspectevents>=0、n_imp_per>=50%以及n_imp_per>=0%.

查询1510、查询建模数据1520、上下文建模数据1530和用户建模数据1540可以用作排名引擎1550的输入,排名引擎1450确定哪些方面用于标记。例如,当使用大多数单独的建模数据产生的方面一致时,那些方面可以用于标记查询。作为另一示例,可以使用由所有三个数据分析提供的方面(除非它们冲突),在这种情况下应用优先级顺序。例如,如果查询建模数据1520建议针对“尼康相机”的搜索推荐“颜色=黑色”方面,并且上下文建模数据1530建议针对“尼康相机”的搜索推荐“颜色=银色”的方面,则基于数据源的预定优先级,可以使用一个方面,并且忽略另一方面。

在操作1560中,使用排名引擎1550的输出来用方面标记查询1510。已标记查询可以用于向用户提供搜索结果,或者存储在字典中以供稍后由映射服务器130使用。

使用方面的其它类型的搜索也可以利用上述处理。例如,网页可以具有创建日期、最后修改日期、大小、作者和主题的方面。因此,可以通过以下操作来改善针对网页的搜索查询:识别在先前使用相同或类似查询之后查看的网页的方面,将这些方面存储在方面数据库中,在接收到稍后查询时查找方面,以及将稍后查询的结果集限制为具有经常期望的方面的网页。对于本地硬盘驱动文件搜索、电子邮件存档搜索等,会产生类似的好处。

图16至图17是示出了根据一些示例实施例的在执行识别缺失的浏览节点的方法1600时映射服务器130的操作的流程图。方法1500中的操作可以由映射服务器130使用上文参照图2描述的模块来执行。

元素1601至1604是方法1600中使用的数据元素。查询-叶类别(query-leafcat)的上下文中的方面和标题短语(元素1601)显示特定方面和标题短语(即,标题中出现的n元文法)出现在单独的叶类别(即,没有子类别的类别)中的项目上的频率。同义词字典(元素1602)允许将n元文法替代为它们的规范形式。示例同义词匹配包括缩写(例如,10米放大=10米放大器(10meteramp=10meteramplifier);4wd=4轮驱动(4wd=fourwheeldrive))、数字表示(例如,三十一=31;samsunggalaxy2=samsunggalaxyii)、常见的替换品(例如,旋转相位转换器=3相位转换器)、传统的同义词(例如,老式的=古老的;手提包=钱包)、空间折叠(例如,iphone4=iphone4;samsunggalaxy2=samsunggalaxy2)、以及包容匹配(例如,跑鞋=跑步/交叉训练鞋;thing1thing2=dr.seussthing1andthing2)。

在叶类别层级处的全局买方标签(元素1604)示出了特定买方标签(即,买方提供的标签)出现在单独的叶类别中的项目上的频率。类别痕迹导航(breadcrumb)(元素1603)示出到叶类别的完整路径。

在操作1610中,对查询中的具有至少三个字符的每个令牌进行词干提取(stem)。例如,波特词干提取算法(porterstemmingalgorithm)可以用于查找每个令牌的词干。为了说明,令牌“happiness”可以词语干“happy”替代,而令牌“jumping”可以词语干“jump”替代。

在操作1620中,从查询中排除查询中与类别痕迹导航中的任何令牌匹配的任何令牌。类别痕迹导航是从类别树的根节点到与查询相关联的类别的完整的类别和子类别序列。例如,如果查询是“耐克鞋”且类别痕迹导航是“服装>鞋子&衣服”,则会从查询中排除令牌“鞋子”,因为该令牌出现在类别痕迹导航中。

在操作1630中,映射服务器130在预定大小范围(例如,1至5)中根据查询中的所有n元文法创建候选短语集。在上面的示例中,查询中剩余的唯一令牌是1元文法“耐克”。

在操作1640中,基于置信度分数来创建并分类本地买方和卖方标签字典。例如,针对查询的叶类别中的项目,可以基于流行度来识别和分类元素1504中的每个买方标签。同样地,针对查询的叶类别中的项目,可以基于流行度来识别和分类每个卖方标签。可以使用其它因素来确定置信度分数。例如,与来自具有低反馈分数的用户的标签相比,来自相比于其他用户而言具有更高的反馈分数的用户的标签可以具有更高的置信度分数。

在操作1650中,检查买方标签字典中的每个本地买方标签,以查看其是否与查询中的n元文法精确匹配。如果找到匹配,则会将买方标签添加到查询中。在一些示例实施例中,还从查询中去除匹配的n元文法。

在操作1710中,检查买方标签字典中的每个本地买方标签以查看它是否与查询中的n元文法模糊匹配。模糊匹配是超过预定阈值的概率匹配。例如,如果将一个变换到另一个所需的插入、删除和替换的数量低于阈值(例如,2),则可以发现两个令牌是模糊匹配。阈值可以取决于令牌的长度(例如,与对于3个字母的词语的模糊匹配相比,对于10个字母的词语的模糊匹配可以允许更多的改变)。如果找到模糊匹配,则会将买方标签添加到查询中。也可以从查询中去除匹配的n元文法。在一些示例实施例中,仅在操作1650中未找到精确匹配的情况下才执行操作1710。

在操作1720中,检查卖方标签字典中的每个全局卖方标签以查看它是否与查询中的尚未被匹配到本地标签的n元文法精确匹配。如果找到匹配,则会将全局卖方标签添加到查询中。在一些示例实施例中,还从查询中去除匹配的n元文法。

在操作1730中,检查卖方标签字典中的每个本地卖方标签以查看其是否与查询中的n元文法精确匹配或模糊匹配。如果找到匹配,则会将本地卖方标签添加到查询中。也可以从查询中去除匹配的n元文法。

在不同的精确匹配或模糊匹配期间,使用各种置信度和支持阈值。方面值的置信度是在方面名称包括在查询中的时候对该值的期望的概率。因此,可以通过将点击的具有方面值的项目的数量除以点击的具有方面名称的项目的总数来计算置信度。例如,在142,000个“腰带扣李维斯”搜索中,有22,000个是没有点击的项目,20,000个是被点击的但没有品牌值的项目,75,000个是被点击的具有“品牌=李维斯”的项目,以及25,000是被点击的具有“品牌=扣”的项目,则方面值“李维斯”应被用于方面名称“品牌”的置信度是75%。针对方面名称的支持值是:在假设任何项目被查看的情况下,具有方面名称的项目被查看的概率。因此,可以通过将对具有方面名称的项目的总点击次数除以总点击次数来计算支持。继续上面的示例,针对方面名称“品牌”的支持是83.33%。

在操作1740,映射服务器130的评价模块220确定针对所标记查询是否存在浏览节点。例如,映射服务器130可以向电子商务服务器120或140请求针对所标记查询的浏览节点,并且作为响应接收指示不存在浏览节点的报错消息或空值。如果不存在浏览节点,则映射服务器130向电子商务服务器120或140发送请求以创建浏览节点。

根据各种示例实施例,本文描述的方法中的一种或多种方法可以促进识别缺失的浏览节点。因此,本文中描述的一个或多个方法可以有助于获得感兴趣的结果并向用户呈现感兴趣的结果,而无需用户明确地进行一系列查询。同样地,本文描述的方法中的一种或多种方法可以促进改善提供缺失的浏览节点的站点的搜索引擎排名。

当总体来考虑这些效果时,本文描述的一个或多个方法可以消除针对某些工作量或资源的需求,该某些工作量或资源在其他情况下将在搜索中涉及。通过本文描述的一种或多种方法,可以减少用户识别相关查询时所花费的努力。类似地,可以减少(例如在网络环境100中的)一个或多个机器、数据库或设备使用的计算资源。这样的计算资源的示例包括处理器周期、网络流量、存储器使用、数据存储容量、功耗以及冷却能力。

模块、组件和逻辑

某些实施例在本文中被描述为包括逻辑或多个组件、模块或机构。模块可以构成软件模块(例如,机器可读介质上体现的代码)或硬件实现模块。硬件实现模块是能够执行某些操作且可以用某种方式来配置或布置的有形单元。在示例实施例中,一个或多个计算机系统(例如,独立、客户端或服务器计算机系统)或一个或多个处理器可以被软件(例如,应用或应用部分)配置为硬件实现模块,该模块进行操作以执行如本文所述的某些操作。

在各实施例中,硬件实现的模块可以用机械方式或电子方式来实现。例如,硬件实现的模块可以包括永久地被配置为执行某些操作的专用电路或逻辑(例如,硬件实现的模块可以是专用处理器,例如现场可编程门阵列(fpga)或专用集成电路(asic))。硬件实现模块还可以包括暂时由软件配置以执行某些操作的可编程逻辑或电路(例如,配置为被包含在通用处理器或其它可编程处理器中)。将清楚的是,对以机械方式在专用且永久配置的电路中或在暂时配置的电路(例如由软件配置)中实现硬件实现的模块的决定可能受到成本和时间考虑的驱动。

因此,短语“硬件实现的模块”应当被理解为包含有形实体,应当是物理构成的、永久配置(例如硬连线的)或暂时或瞬时配置(例如编程的)以在特定方式下工作以执行本文描述的特定操作的实体。考虑到其中硬件实现的模块是暂时配置的(例如编程的)实施例,每个硬件实现的模块不需要是在任意时刻都是已配置或已实例化的。例如,在硬件实现模块包括使用软件来配置的通用处理器的情况下,通用处理器可以在不同时间被配置为各不同的硬件实现模块。软件可以因此配置处理器,以例如在一个时刻构成特定硬件实现模块,以及在不同时刻构成不同的硬件实现模块。

硬件实现的模块可以向其它硬件实现的模块提供信息,并且可以从其它硬件实现的模块接收信息。因此,描述的硬件实现的模块可被看做是通信耦合的。在多个这种硬件实现的模块同时存在的情况下,可以通过信号传输(例如在连接硬件实现的模块的适当的电路和总线上)来实现通信。在多个硬件实现的模块在不同的时间被配置或实例化的实施例中,可以例如通过在多个硬件实现的模块可访问的存储器结构中对信息的存储和检索来实现这样的硬件实现的模块之间的通信。例如,一个硬件实现的模块可以执行操作,并且将该操作的输出存储在与该硬件实现的模块通信耦合的存储设备中。然后另一硬件实现的模块可以在之后的时间访问该存储设备以检索并处理所存储的输出。硬件实现的模块还可以发起与输入或输出设备的通信,并且能够对资源(例如信息的集合)执行操作。

此处描述的示例方法的各种操作可以至少部分地由临时配置(例如通过软件)或永久配置为执行相关操作的一个或多个处理器执行。无论是临时还是永久地配置,这样的处理器可以构成进行操作以执行一个或多个操作或功能的处理器实现的模块。在一些示例实施例中,本文中提及的“模块”包括处理器实现的模块。

类似地,本文中描述的方法可以至少部分由处理器实现。例如,方法的至少一些操作可由一个或多个处理器或处理器实现的模块执行。某些操作的执行可以分布在一个或多个处理器中,并不只驻留在单个机器中,而是跨多个机器来部署。在一些示例实施例中,一个或多个处理器或处理器可以位于单个地点(例如在家庭环境、办公室环境或服务器群中),而在其他实施例中,处理器可以分布在多个地点。

一个或多个处理器还可以操作以支持在“云计算”环境下的相关操作的执行或作为“软件即服务”(saas)的相关操作的执行。例如,至少一些操作可以由计算机组(作为包括处理器的机器示例)来执行,这些操作能够经由网络(例如互联网)并且经由一个或多个适当的接口(例如应用程序接口(api))来访问。

电子装置和系统

示例实施例可以用数字电子电路或者用计算机硬件、固件、软件或它们的组合来实现。示例实施例可以使用计算机程序产品(例如在信息载体中有形地表示的计算机程序)来实现,信息载体例如是由数据处理装置执行的机器可读介质或用于控制数据处理装置的操作的机器可读介质,数据处理装置例如是可编程处理器、计算机或多个计算机。

可以以任何形式的编程语言来编写计算机程序,该编程语言包括:编译或解释语言,并且可以以任何形式来部署计算机程序,包括部署为独立的程序或者部署为适合于用于计算环境的模块、子例程,或者其它单元。计算机程序可以被配置为在一个计算机执行或在位于一个地点处的多个计算机上执行或者在分布在多个地点上并通过通信网络互连的多个计算机上执行。

在示例实施例中,操作可以通过一个或多个可编程处理器执行计算机程序来执行,以通过操作输入数据并产生输出来执行功能。方法操作还可以通过由专用逻辑电路(例如,fpga或asic)来执行,并且示例实施例的装置可以实现为专用逻辑电路。

计算系统可以包括客户端和服务器。客户端和服务器一般相互远离并且通常通过通信网络进行交互。客户端和服务器的关系通过在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序来生成。在使用可编程计算系统的实施例中,将清楚的是,需要考虑硬件架构和软件架构二者。具体地,将清楚的是,在永久配置的硬件(例如asic)中、在暂时配置的硬件中(例如软件与可编程处理器的组合)、或是在永久配置的与暂时配置的硬件的组合中实现特定功能可以是设计选择。下文阐述了可以在各种示例实施例中部署的硬件架构(例如机器)和软件架构。

软件架构

图18是示出了软件1802的架构的框图1800,所述软件可以安装在上述任意一个或多个设备上。图18仅仅是软件架构的非限制性示例,并且将理解的是,可以实现许多其他架构以促进本文描述的功能。软件1802可以由诸如图19的机器1900的硬件来实现,机器900包括处理器1910、存储器1930以及i/o组件1950。在该示例架构中,软件1802可被概念化为层的堆栈,其中每层可以提供特定的功能。例如,软件1802包括诸如操作系统1804、库1806、框架1808和应用1810的层。在操作上,根据一些实现,应用1810通过软件栈调用应用编程接口(api)调用1812,并响应于api调用1812接收消息1814。

在各种实现中,操作系统1804管理硬件资源并提供公共服务。操作系统1804包括例如内核1820、服务1822和驱动1824。在一些实现中,内核1820用作硬件和其他软件层之间的抽象层。例如,内核1820尤其提供存储器管理、处理器管理(例如,调度)、组件管理、联网和安全设置等的功能。服务1822可以为其它软件层提供其他公共服务。驱动1824可以负责控制底层硬件或与底层硬件接口连接。例如,驱动1824可以包括显示驱动、相机驱动、驱动、闪存驱动、串行通信驱动(例如,通用串行总线(usb)驱动),驱动、音频驱动、电源管理驱动等等。

在一些实现中,库1806提供可以被应用1810使用的低级公共基础设施。库1806可以包括:可以提供诸如存储器分配功能、串操纵功能、数学功能等功能的系统库1830(例如,c标准库)。另外,库1806可以包括api库1832,例如媒体库(例如,支持各种媒体格式的呈现和操纵的库,所述格式是比如运动图像专家组4(mpeg4)、高级视频编码(h.264或avc)、运动图像专家组层3(mp3)、高级音频编码(aac)、自适应多速率(amr)音频编解码器、联合图像专家组(jpeg或jpg)、便携式网络图形(png))、图形库(例如,用于在显示器上在图形上下文中进行二维(2d)和三维(3d)渲染的opengl框架)、数据库(例如,提供各种关系数据库函数的sqlite)、web库(例如,提供web浏览功能的webkit)等。库1806还可以包括各种各样的其他库1834,以向应用1810提供许多其他api。

根据一些实现,框架1808提供可以被应用1810使用的高级公共基础设施。例如,框架1808提供各种图形用户界面(gui)功能、高级资源管理、高级位置服务等。框架1808可以提供可以被应用1810使用的广泛的其他api,其中一些可以专用于特定的操作系统或平台。

在示例实施例中,应用1810包括家庭应用1850、联系人应用1852、浏览器应用1854、书阅读器应用1856、位置应用1858、媒体应用1860、消息应用1862、游戏应用1864、以及诸如第三方应用1866之类的各种各样的其他应用。根据一些实施例,应用1810是执行在程序中定义的功能的程序。可以采用各种编程语言来创建以各种方式结构化的应用1810中的一个或多个,诸如面向对象的编程语言(例如,objective-c,java或c++)或过程编程语言(例如c或汇编语言)。在具体示例中,第三方应用1866(例如,由与特定平台的供应商不同的实体使用androidtm或iostm软件开发工具包(sdk)而开发的应用)可以是在移动操作系统(诸如iostm、androidtmphone或其他移动操作系统)上运行的移动软件。在该示例中,第三方应用1866可以调用由诸如操作系统1804之类的移动操作系统提供的api调用1812,以促进本文描述的功能。

示例机器架构和机器可读介质

图19是示出了根据一些示例实施例的能够从机器可读介质(例如,机器可读存储介质)中读取指令并执行本文所讨论的方法中的任何一个或多个的机器1900的组件的框图。具体地,图19示出了计算机系统的示例形式的机器1900的示意图,其中可以执行指令1916(例如,软件、程序、应用、小应用、app或其他可执行代码)以使机器1900执行本文讨论的任何一种或多种方法。在备选实施例中,机器1900作为独立设备操作或可以耦合(例如,联网)到其他机器。在联网部署中,机器1900可以在服务器-客户端网络环境中以服务器机器或客户端机器的容量操作,或者作为对等(或分布式)网络环境中的对等机器操作。机器1900可以包括但不限于服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如智能手表)、智能家居设备(例如智能家电)、其他智能设备、网络设备、网络路由器、网络交换机、网桥、或能够顺序地或以其他方式执行指定机器1900要采取的动作的指令1916的任何机器。此外,尽管仅示出了单个机器1900,但是术语“机器”也将被认为包括机器1900的集合,其单独地或联合地执行指令1916以执行本文讨论的方法中的任何一个或多个。

机器1900可以包括处理器1910、存储器1930和i/0组件1950,其可被配置为经由总线1902彼此通信。在示例实施例中,处理器1910(例如,中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、asic、射频集成电路(rfic)、另一处理器或其任何适当组合)可以包括例如可以执行指令1916的处理器1912和处理器1914。术语“处理器”旨在包括可以包括可以同时执行指令的两个或更多个独立处理器(也称为“核”)的多核处理器。尽管图19示出了多个处理器,但是机器1900可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或其任何组合。

存储器1930可包括经由总线1902可被处理器1910访问的主存储器1932、静态存储器1934和存储单元1936。存储单元1936可以包括机器可读介质1938,其上存储体现本文描述的方法或功能中的任何一个或多个的指令1916。在机器1900执行指令期间,指令1916还可以完全地或至少部分地驻留在主存储器1932、静态存储器1934、处理器1910中的至少一个内(例如,处理器的高速缓存存储器内)或其任何合适的组合内。因此,在各种实施方式中,主存储器1932、静态存储器1934和处理器1910被认为是机器可读介质1938。

如本文所使用的,术语“存储器”指能够临时或永久地存储数据的机器可读介质1938,并且可以被看作包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪存以及高速缓存存储器。虽然机器可读介质1938在示例实施例中被示为是单个介质,但是术语“机器可读介质”应当被认为包括能够存储指令1916的单个介质或多个介质(例如,集中式或分布式数据库或相关联的高速缓存和服务器)。术语“机器可读介质”还将被认为包括能够存储被机器(例如机器1900)执行的指令(例如,指令1916)的任何介质或多个介质的组合,使得指令在被机器的一个或多个处理器(例如,处理器1910)执行时,使机器执行本文所描述的方法中的任何一个或多个。因此,“机器可读介质”指单个存储装置或设备、以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。因此,术语“机器可读介质”应被理解为包括但不限于具有固态存储器(例如,闪存)、光介质、磁介质、其他非易失性存储器(例如,可擦除可编程只读存储器(eprom))或其任何合适组合等的形式的一个或多个数据储存库。术语“机器可读介质”包括机器可读存储介质和传输介质(例如,信号)。

i/o组件1950包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量等的各种组件。通常,应当理解,i/o组件1950可以包括图19中未示出的许多其他组件。根据功能来对i/o组件1950进行分组,以仅用于简化以下讨论,并且分组不以任何方式进行限制。在各种示例实施例中,i/o组件1950包括输出组件1952和输入组件1954。输出组件1952包括可视组件(例如显示器,比如等离子体显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt))、声学组件(例如,扬声器)、触觉组件(例如,振动马达)、其他信号发生器等。输入组件1954包括字母数字输入组件(例如,键盘、被配置为接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他定点仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和力的触摸屏或其他触觉输入组件)、音频输入组件((例如,麦克风)等。

在另一些示例实施例中,i/o组件1950尤其包括生物测定组件1956、运动组件1958、环境组件1960或位置组件1962等的组件。例如,生物测定组件1956包括用于检测表现(例如,手表现、面部表现、语音表现、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、标识人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1958包括加速度传感二器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如,陀螺仪)等。环境组件1960包括例如照度传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近传感器组件(例如,检测附近物体的红外传感器)、气体传感器(例如,机器嗅觉检测传感器、为安全而检测有害气体浓度或测量大气中的污染物的气体检测传感器)、或可以提供对应于周围物理环境的指示、测量或信号的其他组件。位置组件1962包括位置传感器组件(例如,全球定位系统(gps)接收机组件)、高度传感器组件(例如,高度计或检测气压的气压计(根据气压可以导出高度))、方位传感器组件(例如,磁力计)等。

可以使用各种各样的技术来实现通信。i/o组件1950可以包括通信组件1964,通信组件1964可操作以分别经由耦接1982和耦接1972将机器1900耦接到网络1980或设备1970。例如,通信组件1964包括网络接口组件或与网络1980接口连接的另一合适设备。在另一些示例中,通信组件1964包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(nfc)组件、组件(例如低能)、组件、以及经由其他模态提供通信的其他通信组件。设备1970可以是另一机器或各种外围设备中的任一种(例如,经由usb耦合的外围设备)。

此外,在一些实现中,通信组件1964检测标识符或包括可操作以检测标识符的组件。例如,通信组件1964包括射频识别(rfid)标签读取器组件、nfc智能标签检测组件、光学读取器组件(例如,用于检测一维条形码(如通用产品代码(upc)条形码)、多维条形码(如快速响应(qr)码、aztec码、数据矩阵、数据字、maxicode、pdf417、超级码、统一商业码缩减空间符号(uccrss)-2d条形码以及其他光学代码)的光学传感器)、声学检测组件(例如,识别带标签的音频信号的麦克风)或其任何合适的组合。另外,可以经由通信组件1964导出各种信息,诸如经由互联网协议(ip)地理位置的位置、经由信号三角测量的位置、经由检测可以指示特定位置的nfc信标信号的位置等等。

传输介质

在各种示例实施例中,网络1980的一个或多个部分可以是自组织网络、内联网、外联网、虚拟专用网(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、互联网,互联网的一部分、公共交换电话网络(pstn)的一部分、普通老式电话服务(pots)网络、蜂窝电话网络、无线网络、网络、另一类型的网络、或两个或更多个这样的网络的组合。例如,网络1980或网络1980的一部分可以包括无线或蜂窝网络,并且耦接1982可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接或另一个类型的蜂窝或无线耦接。在该示例中,耦接1982可以实现各种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线电服务(gprs)技术、gsm演进增强数据速率(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、全球微波接入互操作性(wimax)、长期演进(lte)标准、由各种标准设置组织定义的其他标准、其他远程协议或其他数据传输技术。

在示例实施例中,使用传输介质在网络1980上经由网络接口设备(例如,通信组件1964中包括的网络接口组件)并利用多个公知传输协议中的任何一个(例如,http)来发送或接收指令1916。类似地,在其他示例实施例中,使用传输介质经由耦接1972(例如,对等耦接)向设备1970发送或接收指令1916。术语“传输介质”应被认为包括能够存储、编码或承载用于被机器1900执行的指令1916的任何无形介质,并且包括用于促进该软件的通信的数字或模拟通信信号或其他无形介质。传输介质是机器可读介质的实施例。

语言

在整个说明书中,复数实例可以实现如单个实例所描述的部件、操作或结构。虽然一个或多个方法的各个操作被示意和描述为分离的操作,但是各个操作中的一个或多个可以同时执行,并且无需按所示顺序执行操作。在示例配置中被示为分离组件的结构和功能可以被实现为组合结构或组件。类似地,被示为单个组件的结构和功能可以被实现为分离的组件。这些和其他变型、修改、添加和改进落入本文中主题的范围内。

尽管已经参考具体示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更宽范围的情况下,可以对这些实施例进行各种修改和改变。本发明主题的这些实施例在本文中可以单独地或共同地由术语“发明”提及,以仅仅为了方便,并且不旨在自动地将本申请的范围限制为任何单个公开或发明构思(如果事实上公开了一个以上)。

充分详细地描述了本文示出的实施例以使本领域技术人员能够实现所公开的教导。可以利用其他实施例并根据这些实施例导出其他实施例,从而可以在不脱离本公开的范围的情况下做出结构和逻辑上的替换和改变。因此,该“具体实施方式”不应当看做是限制意义,并且各种实施例的范围仅通过所附权利要求以及权利要求的等同物的全部范围来限定。

如本文所使用的,术语“或”可以被解释为包括性或排他性的意义。此外,可以针对本文中描述为单个实例的资源、操作或结构提供多个实例。另外,各种资源、操作、模块、引擎和数据存储之间的边界在某种程度上是任何的,并且在具体说明性配置的上下文中示出了特定操作。设想了功能的其他分配,并且这些分配可以落入本公开的各种实施例的范围内。一般来说,在示例配置中作为分离资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为分离的资源。这些和其他变型、修改、添加和改进落入由所附权利要求表示的本公开的实施例的范围内。因此,说明书和附图应当被看做说明性的而不是限制意义的。

以下列举的示例定义了本文讨论的方法、机器可读介质和系统(即,装置)的各种示例实施例:

示例1.一种方法,包括:

访问包括多个词语的搜索查询;

基于所述搜索查询,识别类别与所述类别的一个或多个方面的组合;

确定针对识别出的类别与方面组合不存在浏览节点;以及

基于确定针对识别出的类别与方面组合不存在浏览节点,发送请求以创建针对识别出的类别与方面组合的浏览节点。

示例2.根据示例1所述的方法,其中:

所述搜索查询是来自多个用户的多个搜索查询中的一个查询;

所述识别类别与所述类别的一个或多个方面的组合基于所述多个搜索查询;以及

所述方法还包括:

确定识别出的类别与方面组合所基于的所述多个搜索查询的计数;以及

其中:所述发送请求以创建浏览节点还基于所述计数和阈值。

示例3.根据示例2所述的方法,还包括:

基于所述多个搜索查询,确定不具有浏览节点的类别与方面组合的模式;以及

发送请求以创建与所确定的模式匹配的多个浏览节点。

示例4.根据示例1至3中的任一项或多项所述的方法,还包括:

响应于接收所述请求,创建所述浏览节点。

示例5.根据示例4所述的方法,其中,所述创建浏览节点包括创建具有标题的文档。

示例6.根据示例5所述的方法,其中,所述文档是html文档,并且所述标题包含在<h1>html标签中。

示例7.根据示例1至6中的任一项或多项所述的方法,其中,所述识别类别与所述类别的一个或多个方面的组合包括:

用一个或多个替换项目来替代所述搜索查询的一个或多个项目,所述替代基于被替代的项目与替换项目之间的模糊匹配。

示例8.一种系统,包括:

存储指令的存储器;以及

一个或多个处理器,由所述指令配置为执行以下操作:

访问包括多个词语的搜索查询;

基于所述搜索查询,识别类别与所述类别的一个或多个方面的组合;

确定针对识别出的类别与方面组合不存在浏览节点;以及

基于确定针对识别出的类别与方面组合不存在浏览节点,发送请求以创建针对识别出的类别与方面组合的浏览节点。

示例9.根据示例8所述的系统,其中,

所述搜索查询是来自多个用户的多个搜索查询中的一个查询;

所述识别类别与所述类别的一个或多个方面的组合基于所述多个搜索查询;

所述操作还包括:

确定识别出的类别与方面组合所基于的所述多个搜索查询的计数;以及

所述发送请求以创建浏览节点还基于所述计数和阈值。

示例10.根据示例9所述的系统,其中,所述操作还包括:

基于所述多个搜索查询,确定不具有浏览节点的类别与方面组合的模式;以及

发送请求以创建与所确定的模式匹配的多个浏览节点。

示例11.根据示例8至10中的任一项或多项所述的系统,其中,所述操作还包括:

响应于接收所述请求,创建所述浏览节点。

示例12.根据示例11所述的系统,其中,所述创建浏览节点包括创建具有标题的文档。

示例13.根据示例12所述的系统,其中,所述文档是html文档,并且所述标题包含在<h1>html标签中。

示例14.根据示例8至13中的任一项或多项所述的系统,其中,所述识别类别与所述类别的一个或多个方面的组合包括:

用一个或多个替换项目来替代所述搜索查询的一个或多个项目,所述替代基于被替代的项目与替换项目之间的模糊匹配。

示例15.一种包括指令的机器可读存储介质,所述指令在由机器的一个或多个处理器执行时使得所述机器执行包括以下各项的操作:

访问包括多个词语的搜索查询;

基于所述搜索查询,识别类别与所述类别的一个或多个方面的组合;

确定针对识别出的类别与方面组合不存在浏览节点;以及

基于确定针对识别出的类别与方面组合不存在浏览节点,发送请求以创建针对识别出的类别与方面组合的浏览节点。

示例16.根据示例15所述的机器可读存储介质,其中

所述搜索查询是来自多个用户的多个搜索查询中的一个查询;

所述识别类别与所述类别的一个或多个方面的组合基于所述多个搜索查询;

所述操作还包括:

确定识别出的类别与方面组合所基于的所述多个搜索查询的计数;以及

所述发送请求以创建浏览节点还基于所述计数和阈值。

示例17.根据示例16所述的机器可读存储介质,其中,所述操作还包括:

基于所述多个搜索查询,确定不具有浏览节点的类别与方面组合的模式;以及

发送请求以创建与所确定的模式匹配的多个浏览节点。

示例18.根据示例15至17中的任一项或多项所述的机器可读存储介质,其中,所述操作还包括:

响应于所述请求,创建所述浏览节点。

示例19.根据示例18所述的机器可读存储介质,其中,所述创建浏览节点包括创建具有标题的文档。

示例20.根据示例19所述的机器可读存储介质,其中,所述文档是html文档,并且所述标题包含在<h1>html标签中。

示例21.一种承载指令的机器可读介质,所述指令在被机器的一个或多个处理器执行时,使得所述机器执行根据示例1至7中任一项所述的方法。

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