基于实体来执行应用搜索的制作方法_2

文档序号:9252403阅读:来源:国知局
。实体类型记录可以进一步指示与实体类型相关联的任何数据字段和/或用于每个数据字段的允许值的集合。作为实例,用于餐厅实体类型的实体类型记录可以至少包括以下信息:
[0024]{实体类型标识符:1,
[0025]类型名称:“餐厅”,
[0026]字段:[“名称”,“食物类型”]}
[0027]在一个方面中,实体类型记录可以指示对应实体类型和解析函数之间的关联性。解析函数实现了具有搜索查询中的实体类型的实体的标识。因为某些类型的实体不能被索引而可以要求这种解析函数,由于可能的实体的总集合非常大或者在数量上是无限的(例如,作为组合表达式的实体)。作为示例,搜索查询可以包括数学表达式,诸如“81*412”。因为数学表达式的数量是无限的,所以将不可能索引所有这些表达式。因此,为了标识具有数学实体类型的实体,要求用于标识格式良好的数学表达式的适当解析函数。在一个方面中,这种解析函数可以是适当的正则表达式。
[0028]在一个方面中,至少一些实体类型记录可以与各种数据源字段映射、关键字和/或可用于将对应实体类型与由从数据源125检索的数据记录指示的特定实体相关联的其他指示符相关联。例如,特定的餐厅实体类型可以与指示具有餐厅实体类型的实体的各种关键字(诸如“套餐”、“特价午餐”、“牛排馆”等)相关联。餐厅类型实体还可以与指示从可以包括实体类型信息的数据源125检索的数据记录的某些数据字段的数据源字段映射相关联。因此,当从数据源125检索数据记录时,可以通过检查由用于指示具有餐厅实体类型的实体的任何关键字的数据源字段映射指示的数据记录的数据字段来确定由数据记录指示的实体是否具有餐厅实体类型。
[0029]实体索引220是被配置为能够标识接收到的搜索查询内的实体的实体索引。在一个方面中,实体索引可以包括关于实体的任何适当的数据。例如,实体索引220可以包括多个实体记录,其中每个实体记录包括用于该实体的标识符、与该实体相关联的关键字以及该实体的一种或多种类型。每个实体记录还可以包括基于用于实体的实体类型的其他数据。例如,用于具有“餐厅”实体类型的实体的数据可以包括用于实体的名称和与实体相关联的食物类型。作为具体示例,用于具有餐厅实体类型的实体的类型可以包括{名称:“Chipotle”,食物类型:“墨西哥菜”}。作为另一实例,用于具有“电影”实体类型的实体的数据可以包括标题数据和男演员数据。作为具体实例,用于具有电影实体类型的实体的数据可以包括{标题:“玩具总动员3”,男演员:[“汤姆.汉克斯”,“蒂姆.艾伦”,“琼.库萨克”]}。作为又一实例,用于具有“机场”实体类型的实体的数据可以包括机场代码数据和机场名称数据。作为具体实例,用于具有机场类型的实体的数据可以包括{代码:“SF0”,名称旧金山国际机场”}。
[0030]在一个方面中,实体索引220可以是原生的反转的关键字索引。例如,用于实体玩具总动员的实体记录可以包括以下信息:{标题:“玩具总动员3”,男演员:[“汤姆.汉克斯”,“蒂姆.艾伦”,“琼?库萨克”]}。实体索引220可以被配置使得实体记录由关键字“玩具”、“总动员”、“3”、“汉克斯”、“蒂姆”、“艾伦”、“琼”和“库萨”来索引。因此,如果任何前述关键字出现在接收到的搜索查询中,则将检索用于玩具总动员实体的实体记录。
[0031]应用配置存储库250包括指示用于一个或多个应用的配置数据和/或其他数据的一个或多个配置记录。在一个方面中,每个配置记录可以指示对应应用支持的实体。例如,用于应用Wolfram Alpha的记录可以指示应用支持数学类型实体。作为另一实例,应用IMDB可以指示应用支持电视类型实体。
[0032]可以以任何适当的方式来确定实体类型和应用之间的关联性。在一个实施例中,适当的应用爬虫(crawler)可用于通过爬取网络(诸如因特网)上的各种数据源来定位和确定各种应用(例如,原生应用)的实体类型。在一个具体实施例中,为了确定用于至少一些应用的实体类型,应用爬虫通过执行和测试该至少一些应用来自动地评价该至少一些应用的支持的功能。基于测试,各种实体类型可以被标识并且与该至少一些应用相关联。然后,这种关联性被存储在与该至少一些应用相对应的应用配置存储库250的配置记录中。
[0033]例如,应用爬虫可以自动地标识并执行原生应用。在执行期间,应用爬虫可以使用测试输入的集合来测试原生应用。基于测试,应用爬虫确定原生应用支持的实体类型。说明性地,应用爬虫可以执行原生媒体播放器应用并自动地试图使原生媒体播放器应用打开用于回放的各种测试文件。由原生媒体播放器应用成功播放的那些测试文件(例如,原生媒体播放器应用成功地渲染测试文件的音频和/或视频流)可以被确定为由原生媒体播放器应用所支持。因此,应用爬虫确定原生媒体播放器应用支持与成功播放的测试文件相关联的实体类型。可以在用于原生媒体播放器应用的配置记录中指示这种实体类型。
[0034]在一个实施例中,可以由搜索模块122访问应用配置存储库250以标识由各种应用支持的实体的类型。应用配置存储库250可以附加地包括关于由搜索模块122可使用的应用的其他信息以生成搜索结果。
[0035]生成模块224生成实体索引220。为了生成实体索引220,生成模块从数据源125获取一个或多个数据记录。然后,数据源125可以是任何适当的数据源,诸如FREEBASE、WIKIPEDIA等。来自数据源125的每个获取的数据记录可以对应于实体。例如,从数据源125获取的单个数据记录可以包括用于玩具总动员实体的信息。
[0036]对于每个获取的数据记录,生成模块224确定与对应于数据记录的实体相关联的一个或多个实体类型。说明性地,生成模块224可以确定玩具总动员实体与电影实体类型相关联。生成模块224可以以任何适当的方式确定与实体相关联的实体类型。例如,生成模块224可以基于实体类型存储库222来确定用于不同实体类型的关键字和数据源字段映射。如果数据记录包括由数据源字段映射指示的某些数据字段内的用于特定实体类型的一个或多个关键字,则生成模块224确定对应于数据记录的特定实体与特定的实体类型相关联。
[0037]基于针对每个实体的标识的实体类型,生成模块224生成用于实体的一个或多个实体记录。在一个方面中,将被包括在实体记录中的数据基于针对对应实体的标识的类型。例如,用于与电影实体类型相对应的实体的实体记录可以包括男演员信息。在一个实施例中,用于构成实体记录的具体数据可以从数据记录中检索,该数据记录从对应于实体的数据源125获取。在生成用于各种实体的实体记录之后,生成模块224基于实体记录构建实体索引220。具体地,可以基于包括在实体记录中的数据在实体索引220内索引实体记录。
[0038]实体索引查找模块226基于接收到的搜索查询标识实体索引220中的实体。在一个实施例中,实体索引查找模块226通过从搜索查询中提取一个或多个关键字并使用实体索引220执行针对一个或多个关键字的搜索来标识实体。说明性地,搜索查询可以包括词语“玩具总动员3”。响应于该请求,实体索引查找模块226针对关键字玩具、总动员和3搜索实体索引220。基于实体索引220,实体索引查找模块226确定三个关键字中公共的实体类型。具体地,实体索引查找模块226确定所有三个关键字分别至少与具有电影实体类型的实体记录相关联。因此,实体查找模块226选择实体记录,在该实例中该实体记录为用于玩具总动员3的实体记录。因此,玩具总动员3实体记录被选择用于进一步的处理。例如,实体记录可以被传送给实体解析模块228用于标识与实体相关联的实体类型。
[0039]实体解析模块228标识搜索查询内的实体类型。可以以任何适当的方式来执行实体类型的标识。在一个实施例中,实体解析模块通过参照被包括在与由实体索引查找模块226标识的实体相对应的实体记录中的一个或多个实体类型来标识实体的类型。在一个实施例中,实体解析模块附加地或者备选地向接收到的搜索查询应用解析函数。该解析函数可以基于搜索查询中标识的某些规则和/或模式来标识被包括在搜索查询中的实体的类型。说明性地,解析函数可以基于搜索查询和预定正则表达式之间的模式匹配来确定实体包括数学实体类型。
[0040]实体排名模块230对搜索查询中的标识的实体进行打分和排名。具体地,实体排名模块230采用各种启发法来通过实体为“合法”的估计概率对每个标识的实体进行打分。例如,基于提供了搜索查询的用户的上下文信息(例如,地理位置)、搜索查询中的关键字的频率、搜索查询中的关键字的布置、用于用户的历史数据(例如,过去的应用下载、先前请求的搜索)等,实体排名模块230对每个标识的实体进行打分。说明性地,搜索查询可以包括词语“汤姆汉克斯玩具电影”。因为针对玩具总动员实体的多个关键字被包括在该搜索查询中,所以实体排名模块230可以计算针对玩具总动员实体的相对高的得分。相反,另一搜索查询可以包括词语“五个故事玩具建筑物”。由于针对玩具总动员实体的少量关键字被包括在该搜索查询中,所以实体排名模块230可以计算针对玩具总动员实体的相对低的得分。在对标识的实体进行打分之后,实体排名模块230使用得分对实体进行排名,以生成经排名的实体集合。然后,可以向搜索模块122提供经排名的实体集合用于对与搜索查询相匹配的任何标识的应用进行排名。
[0041]再次参照图2,搜索模块122包括用于响应于接收搜索查询生成搜索结果(例如,应用的列表)的各种模块。具体地,搜索模块122包括搜索索引24
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1