搜索引擎及其实现方法

xiaoxiao2020-10-23  13

搜索引擎及其实现方法
【技术领域】
[0001] 本公开一般涉及计算机技术领域,具体涉及信息检索领域,尤其涉及一种搜索引 擎及其实现方法。
【背景技术】
[0002] 互联网提供了对各种各样的资源的访问入口,这些资源例如包括图像文件、音频 文件、视频文件和网页等。用户可以通过搜索系统或搜索引擎来搜索希望访问的资源。
[0003] 在搜索过程中,通常由用户输入一个查询(Query),搜索引擎返回与查询匹配的结 果。查询可以是文本查询,包括一个或多个搜索词语(Term)或短语。搜索引擎例如可以通 过文本相关的匹配方法返回与搜索查询对应的搜索结果。
[0004] 在实际搜索过程中,通过文本相关的匹配方法返回的结果往往与用户的查询需求 不匹配,发生转义。例如,用户搜某明星A,搜索结果中可能包含"A座驾"相关的文本;搜 "中国国旗",可能出来"海里有挂满中国国旗的渔船"的结果。
[0005] 现有的文本匹配方案主要有:查询与搜索结果文本的共有部分占查询以及搜索结 果的比例、BM25的相关性方式等。但是这些匹配方案无法解决上面提到的转义问题。

【发明内容】

[0006] 鉴于现有技术中的上述缺陷或不足,期望提供一种能够有效解决搜索结果转义问 题的方案。
[0007] 第一方面,本申请实施例提供了一种搜索引擎的实现方法。该方法包括:接收用户 输入的查询请求;获取与查询请求匹配的候选结果;基于点击转义模型确定查询请求与每 个候选结果之间的语义相关度;以及根据语义相关度对候选结果进行排序;其中,点击转 义模型包括转义词典和/或非转义词典,转义词典包括确定发生转义的搜索结果的对应词 语及其上下文,非转义词典包括确定未发生转义的搜索结果的对应词语及其上下文。
[0008] 第二方面,本申请实施例还提供了一种搜索引擎,包括:接收单元,用于接收用户 输入的查询请求;搜索单元,用于搜索与所述查询请求匹配的候选结果;语义相关度确定 单元,用于基于点击转义模型确定所述查询请求与每个候选结果之间的语义相关度;以及 排序单元,用于根据所述语义相关度对候选结果进行排序。其中,点击转义模型包括转义 词典和/或非转义词典,所述转义词典包括确定发生转义的搜索结果的对应词语及其上下 文,所述非转义词典包括确定未发生转义的搜索结果的对应词语及其上下文。
[0009] 本申请实施例提供的搜索引擎及其实现方法,通过基于点击获取与URL关联的 HTTP请求链,能够得到较为全面的URL关联的网页内容,从而能够对恶意网址进行准确检 测。按照本申请实施例的技术方案,根据语义相关度对搜索的候选结果进行排序,能够提高 搜索结果的排序效果,避免不符合用户搜索需求的结果(也即转义结果)出现在搜索结果 列表的前列,从而确保用户具有良好的使用体验。
【附图说明】
[0010] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它 特征、目的和优点将会变得更明显:
[0011] 图1示出了可以应用本申请实施例的示例性系统架构100 ;
[0012] 图2示出了根据本申请实施例的构建点击转义模型的方法的示例性流程图;
[0013] 图3示出了根据本申请实施例的利用词对齐获取相邻上下文的一个示例性实现;
[0014] 图4示出了根据本申请实施例的搜索引擎的实现方法的示例性流程图;
[0015] 图5示出了根据本申请实施例的基于点击转义模型确定查询请求与候选结果之 间的语义相关度的方法的示例性流程图;
[0016] 图6示出了根据本申请实施例的对语句进行处理的结果的示意图;
[0017] 图7示出了根据本申请实施例的基于点击转义模型调整分词相似度权重的方法 的一种示例性流程图;
[0018] 图8示出了根据本申请实施例的搜索引擎的示例性结构框图;以及
[0019] 图9示出了适于用来实现本申请实施例的服务器的计算机系统的结构示意图。
【具体实施方式】
[0020] 下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描 述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了 便于描述,附图中仅示出了与发明相关的部分。
[0021] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相 互组合。下面将参考附图并结合实施例来详细说明本申请。
[0022] 如【背景技术】中所提到的,在文本搜索中,通常会因为文本的局部匹配而导致转义 问题。例如,搜索蚊香,结果包含蚊香盒子;搜索手机,结果包含手机皮套;搜索常山,结果 包含常山大白菜等。这种问题在利用文本搜索图片中尤其明显。例如,搜索"明星A"的图 片,结果包含:明星A摄影图、明星A写真高清图片、明星A演唱会、明星A座驾等。这些结 果里面,明星A座驾是转义的结果,并非用户真正想要的结果。
[0023] 鉴于现有技术的上述缺陷,本申请实施例提供了一种按照语义转义度对搜索结果 进行排序的方案,以解决上述转义问题。可以理解,通常在搜索过程所展现的结果中,点击 次数高的结果往往是用户想要的结果。换言之,点击次数高的结果相对于用户的查询Query 而言不发生转义的概率很高。与之相反,对于多次展现,但是点击次数低甚至无点击的结果 通常是用户不想要的,也即这些结果相对于用户的Query而言发生转义的概率很高。另外, 在对转义的数据进行分析时发现,大多数的转义都是发生在相邻的上下文中,而对于距离 较远的上下文基本没有影响。因此,基于上述分析提出了本申请诸实施例的搜索引擎的实 现方法。
[0024] 请参考图1,其示出了可以应用本申请实施例的示例性系统架构100。
[0025] 如图1所示,系统架构100可以包括终端设备101、102、网络103和服务器104。网 络103用以在终端设备101、102和服务器104之间提供通信链路的介质。网络103可以包 括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0026] 用户110可以使用终端设备101、102通过网络103与服务器104交互,以访问各 种服务,例如搜索信息、浏览网页、下载数据等。终端设备1〇1、1〇2上可以安装有各种客户 端应用,例如可以接入统一资源定位符URL云服务的应用,包括但不限于浏览器、安全应用 等。
[0027] 终端设备101、102可以是各种电子设备,例如可以包括但不限于,各种可移动便 携设备,诸如智能手机、平板电脑、个人数字助理、电子书阅读器等,以及各种固定式终端设 备,诸如个人电脑、智能电视、查询服务终端等。
[0028] 服务器104可以是提供各种服务的服务器。服务器可以响应于用户的服务请求而 提供服务。可以理解,一个服务器可以提供一种或多种服务,同一种服务也可以由多个服务 器来提供。在本申请的实施例中,所涉及的服务器104可以是搜索服务器。
[0029] 应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需 要,可以具有任意数目的终端设备、网络和服务器。
[0030] 为了描述本申请实施例的搜索引擎的实现方法,首先描述本申请实施例中提出的 点击转义模型的构建。如前面所分析的,点击次数高的搜索结果相对于对应的查询Query 不发生转义的概率高;而点击次数低甚至无点击的搜索结果相对于对应的Query发生转义 的概率高。另外,大多数的转义都是发生在相邻的上下文中,而对于距离较远的上下文基本 没有影响。因此,在本申请的实施例中,通过学习查询请求与搜索结果(例如以网页标题表 示)Query-Title对的点击数,同时考虑转义发生的上下文来构建点击转义模型。具体而 言,点击转义模型可以包括转义词典和/或非转义词典,其中转义词典包括确定发生转义 的搜索结果的对应词语及其上下文,非转义词典包括确定未发生转义的搜索结果的对应词 语及其上下文。
[0031] 图2示出了根据本申请实施例的构建点击转义模型的方法的示例性流程图。
[0032] 如图2所示,在步骤210中,获取Query-Title对的点击展现比。
[0033] 点击转义模型可以通过学习历史Query-Title对来构建。这些历史Query-Title 对可以保存在Query日志中。Query日志例如记录了每次用户查询会话中所使用的查询请 求Query、展现的搜索结果以及用户对搜索结果的点击操作等。这些搜索结果例如可以用网 页标题Title来表征,因此,Query-Title对指的是查询-搜索结果对。
[0034] 可以对每个Query-Title对的展现情况和点击情况进行统计,从而得到 Query-Title对的点击展现比。这里,点击展现比为点击数与展现数之比,其中展现数指示 搜索结果Title响应于查询请求Query而被展现的次数,点击数指示搜索结果Title响应 于查询请求Query而展现时被用户点击的次数。
[0035] 从前面分析可知,点击次数高的搜索结果相对于对应的查询Query不发生转义的 概率高,而点击次数低甚至无点击的搜索结果相对于对应的Query发生转义的概率高。因 此,Query-Title对的点击展现比可以较好地表征Title相对于Query的转义度或转义概 率。本领域技术人员可以理解,也可以使用诸如展现点击比或构建基于点击次数的其他参 数来表征转义度或转义概率,本申请在此方面没有限制。
[0036] 接着,在步骤220中,利用词对齐在搜索结果Title中获取与查询Query语句中词 语对齐的相邻上下文。
[0037] 对于每个Query-Title对,首先可以对Query和Title分别进行分词。然后利用 词对齐,针对Query中的每个词,找到其在Title中的对应位置。这里的词对齐也包括同义 对齐。例如,如果完全对应的词没有出现,则考虑其同义词。最后,在Title中获取Query中首词对齐和末词对齐的相邻上下文。
[0038] 图3示出了根据本申请实施例的利用词对齐获取相邻上下文的一个示例性实现。 在图3的示例中,Query为"中国国旗",Title为"海里有挂满中国国旗的渔船"。
[0039] 如图3所示,分别对Query和Title进行分词。具体的,Query分为"中国"和"国 旗";Title分为"海里"、"有"、"挂满"、"中国"、"国旗"、"的"和"渔船",在图中用方框分隔 各个词语。
[0040] 然后利用词对齐,针对Query中的每个词,找到其在Title中的对应位置。在图3 的示例中,Query中的每个词"中国"和"国旗"均能在Title中找到完全对应的词语,如图 中的箭头所示。
[0041] 最后,在Title中获取Query中首词对齐和末词对齐的相邻上下文。更具体的,获 取首词对齐的相邻上文和末词对齐的相邻下文。在此示例中,首词"中国"的相邻上文为"挂 满",末词"国旗"的相邻下文为"的",过滤掉停用词"的",继续搜索后面的非停用词作为下 文,也即"国旗"的相邻下文为"渔船"。
[0042] 人类语言包含很多功能词。与其他词相比,功能词没有什么实际含义。最普遍的 功能词是限定词("这"、"这个"、"那"、"那些"、"the"、"a"、"an"、"that"、和 "those"), 这些词帮助在文本中描述名词和表达概念,如地点或数量。介词如:"在…上"、"在..下"、 "over","under","above"等表示两个词的相对位置。这些功能词极其普遍,记录这些词在 每一个文档中的数量需要很大的磁盘空间。另外,由于它们的普遍性和功能,这些词很少单 独表达文档相关程度的信息。如果在检索过程中考虑每一个词而不是短语,这些功能词基 本没有什么帮助。
[0043] 在信息检索中,这些功能词的另一个名称是:停用词(stopword)。称它们为停用 词是因为在文本处理过程中如果遇到它们,则立即停止处理,将其扔掉。将这些词扔掉减少 了索引量,增加了检索效率,并且通常都会提高检索的效果。停用词主要包括英文字符、数 字、数学字符、标点符号及使用频率特高的单汉字等。
[0044] 返回图2,在步骤230中,基于点击展现比相应地构建转义词典和/或非转义词典。 具体而言,将点击展现比低于第一阈值的Query-Title对中的对应词语及其上下文加入转 义词典中;和/或将点击展现比高于第二阈值的Query-Title对中的对应词语及其上下文 加入非转义词典中。第一阈值可以与第二阈值相同或不同。
[0045] 针对历史Query-Title对中的每条Query-Title对执行图2所示的处理,累加所 有点击展现比低于第一阈值的Query-Title对中的词语以及合并对应的上下文,可以建立 转义词典;累加所有点击展现比高于第二阈值的Query-Title对中的词语以及合并对应的 上下文,可以建立非转义词典。由于上述转义词典和非转义词典的生成过程中,未对Query 中的词语进行扩展,因此这里生成的转义词典也可以称为原生转义词典,相应的非转义词 典可以称为原生非转义词典。
[0046] 可选的或附加的,在一些实施例中,为了将统计的上下文推广到更大的范围,可以 通过对Query中的词语的语义类别进行泛化,来生成泛化转义词典和/或泛化非转义词典。
[0047] 在这些实施例中,可以对Query中的词语进行语义类别标注,从而通过词语的语 义类别进行泛化。例如,如果词语为某明星A的名字,则可以标注其语义类别为明星;如果 词语为九寨沟,则可以标注其语义类别为景点。通过语义类别标注,可以将一些实体的词语 用语义类别来代替。
[0048]可以采用多种方式对词语进行语义类别标注,例如,可以采用通用的最大熵分类 器对词语进行分类识别。语义类别例如可以包括但不限于以下类别:娱乐明星、体育明星、 科技人物、景点、影视、汽车、动漫、动物、植物,等等。
[0049]接着,可以利用所标注的语义类别来构建与原生转义词典和原生非转义词典对应 的泛化转义词典和泛化非转义词典。在一种实现中,可以简单地将原生转义词典/原生非 转义词典中的原词替换为泛化的语义类别,从而生成泛化转义词典/泛化非转义词典。
[0050]前面描述了本申请实施例的点击语义模型的构建,下面将结合流程图来描述基于 点击语义模型改善搜索引擎的搜索结果的方案。
[0051]图4示出了根据本申请一个实施例的搜索引擎的实现方法的示例性流程图。图4 所示的方法可以由搜索引擎所在的服务器(例如图1的服务器104)执行。
[0052] 如图4所示,在步骤410中,接收用户输入的查询请求。
[0053]用户可以通过各种终端设备(例如图1所示的终端设备101、102)进行搜索查询。 这些终端设备可以向用户呈现用户界面(例如,浏览器界面)以输入查询请求。用户可以 经由各种输入工具,例如触控屏、手写笔、键盘、麦克风等来输入查询请求。查询请求可以是 文本查询、语音查询或其他类型的查询。如果查询请求为非文本查询,则可以采用各种适当 的技术,诸如光学字符识别OCR、语音识别等,将文本查询转换为文本查询。继而,终端设备 可以将原始接收的或者经转换的查询请求发送给搜索服务器(例如,图1的服务器104)。
[0054] 接着,在步骤420中,搜索与所接收的查询请求匹配的候选结果。
[0055]可以采取多种方式来搜索与查询请求匹配的候选结果。在一些实现中,可以使 用文本匹配,例如词匹配的方法来搜索与查询请求匹配的候选结果。词匹配方法的一些 常用算法例如可以包括,BM25(BestMatch,最佳匹配)算法、proximity(Termproximity scoring,词近邻得分)算法等。通过词匹配算法计算所搜索文档与查询请求的匹配程度, 继而可以基于匹配程度给出与查询请求匹配的候选结果。上述搜索方法可以使用目前已知 的各种算法来实现,此处不再赘述。
[0056] 继而,在步骤430中,基于点击转义模型确定查询请求与每个候选结果之间的语 义相关度。
[0057]在实际检索中,对与查询请求匹配的候选结果,通常选取一定数量的候选结果进 行细化处理。例如,可以选取2000个候选结果,分析这些结果中每个候选结果与查询请求 的语义相关度。
[0058]如前面结合图2和图3所描述的,点击转义模型通过学习查询请求与搜索结果Query-Title对的点击数,同时考虑转义发生的上下文来构建。具体而言,点击转义模型可 以包括转义词典和/或非转义词典,其中转义词典包括确定发生转义的搜索结果的对应词 语及其上下文,非转义词典包括确定未发生转义的搜索结果的对应词语及其上下文。
[0059]因此,基于点击转义模型确定的语义相关度考虑了Query-Title对的点击数,还 考虑了转义发生的上下文,从而所确定的语义相关度可以准确地表示候选结果相对于查询 请求的转义概率。基于点击转义模型确定语义相关度的详细方法将在下文描述。
[0060] 最后,在步骤440中,根据语义相关度对候选结果进行排序。
[0061] 本步骤中,可以按照每个候选结果与查询请求的语义相关度由高至低的顺序,对 搜索得到的候选结果进行排序和显示,使得显示在前的始终为与查询请求较相关的搜索结 果,从而使得用户可以从显示的搜索结果中快速获得更想要的关联文档,满足自己的搜索 需求,提高搜索效率。可以理解的是,本步骤也可以根据需要采用其他顺序进行排序处理。
[0062] 图5示出了根据本申请实施例的基于点击转义模型确定查询请求与候选结果之 间的语义相关度的方法的示例性流程图。也即,图5示出了图4中的步骤430的一个示例 性实现。
[0063] 如图5所示,在步骤510中,确定查询请求与候选结果的一个或多个语句之间的语 义相关度。
[0064] 候选结果也即各种网页信息,其可以使用文档(document)来表示。通常而言,文 档由多个语句组成,其从结构上划分例如可以包括标题(Title)、锚文本(Anchortext)和 正文等。标题简单、精炼地描述了文档的主题。锚文本又称锚文本链接,是链接的一种形式, 和超链接类似,把关键词做一个链接,指向别的网页,这种形式的链接就叫作锚文本。锚文 本实际上是建立了文本关键词与URL链接的关系。正文通常会包括较多内容。
[0065] 由于候选结果通常具有较多语句,因此,可以分别确定查询请求与候选结果的一 个或多个语句之间的语义相关度。这些语句例如可以选自:标题、锚文本、正文中的核心句 子等。正文中的核心句子可以采取现有技术中已知或未来开发的多种方式来确定。在一种 实现中,可以认为正文中的首句为其核心句子。
[0066] 接着,在步骤520中,根据所确定的查询请求与候选结果的一个或多个语句之间 的语义相关度来确定查询请求与该候选结果之间的语义相关度。
[0067] 可以通过多种方式来确定查询请求与候选结果之间的最终语义相关度。在一种实 现中,可以从所确定的多个语义相关度中选择其最大值作为查询请求与该候选结果之间的 语义相关度。在另一种实现中,可以将所确定的多个语义相关度的平均值作为查询请求与 该候选结果之间的语义相关度。本领域技术人员可以理解,也可以使用其他函数关系、基于 所确定的多个语义相关度来确定查询请求与该候选结果的最终语义相关度,本申请在此方 面没有限制。
[0068] 步骤510进一步示出了根据本申请实施例的在确定查询请求与候选结果的某一 语句之间的语义相关度的方法的示例性实现。在此实现中,语义相关度主要由两部分组成: 语句之间的主题匹配相似度以及语句之间的转义因子。
[0069] 具体的,在步骤511中,基于预先构建的点击转义模型,利用句子间的文本主题匹 配模型计算查询请求与候选结果的语句之间的主题匹配相似度。
[0070] 两个语句之间的主题匹配相似度可以采取多种度量方式来表征。在一些实现中, 可以采用统一框架的向量空间模型相似度计算方法来计算语句之间的主题匹配相似度。
[0071] 例如,两个句子可以分别用Sp 52表不如下:
[0074]上述公式中,将句子进行分词,例如第一个句子Si分成m个词,第二个句子S2分成 n个词。对分出来的词进行词性标注,从而在各个分词位置上得到一个词集合。例如,第一 个句子Si的分词位置wn上的词集合为(叫,…W'lu )。该词集合包括分词位置Wii对应的 原词、相关词和小粒度组成部分。
[0075] 在本文中,相关词是指与原词的语义相同的词语(或称同义词)或语义相近的词 语,其统称为相关词。可以采用多种方式来挖掘原词的相关词,例如基于Query-Title点击 对。上述挖掘相关词的方法可以使用目前已知的各种方案来实现,此处不再赘述。
[0076] 将句子表示为空间向量之后,可以采取多种度量方式来计算两个向量之间的相似 性,也即语句之间的主题匹配相似度。这些度量方式包括但不限于,余弦距离或称余弦相似 度,欧式距离,皮尔森Pearson相关系数法或修正的Pearson相关系数法。这些计算相似度 或相关性的方法在本领域中是已知的。以下仅以余弦距离为例进行阐述。
[0077] 余弦距离是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大 小的度量。例如可以按下式计算两个语句之间的主题匹配相似度:
[0079] #对(u),)表示词的相似度权重,SentType(Si,s2)表示两个句子是否匹配所对 应的权重系数,如果两个句子SpS2问句类型匹配,则对应的权重系数为第一值,例如1,否 则为第二值,例如0.8。
[0080] 以下结合一个具体的实例来描述如何计算两个语句之间的主题匹配相似度。假设 第一个句子S1为"华中科技大学在湖北武汉哪个地方",第二个句子s2为"华科大在武汉市 什么位置"。
[0081] 首先对这两个句子分别进行分词处理和词性标注。为了简单起见,在此示例中未 示出词性标注。Si得到的分词结果为:"华中科技大学"、"在"、"湖北"、"武汉"、"哪个地方"。 其中,"华中科技大学"对应的更小分词粒度的词语为"华中"、"科技"、"大学";"哪个地方" 对应的更小分词粒度的词语为"哪个"、"地方"。s2得到的分词结果为:"华科大"、"在"、"武 汉市"、"什么位置"。其中"什么位置"对应的更小分词粒度的词语为"什么"、"位置"。
[0082] 对分词后得到的各词语赋予权值。可选的或附加的,还对语句中语义冗余词语进 行识别,并对冗余的词语进行降权。语义冗余词语识别可以使用各种现在已知或未来开发 的技术来实现,本申请在此方面没有限制。在进行语义冗余词语的识别后,例如确定第一个 句子中的"湖北"为语义冗余的词语,对其进行降权。
[0083] 然后将存在语义映射的词语映射为归一化的表述。具体而言,确定第一个句子Si 中"华中科技大学"映射为"华中科技大学","武汉"映射为"武汉","哪个地方"映射为"哪 里"。第二个句子s2中"华科大"映射为"华中科技大学","武汉市"映射为"武汉","什么 位置"映射为"哪里"。
[0084] 此外,对两个句子的问句类型进行匹配。由于疑问词"哪个"与其上下文出现的名 词"地方"对应的问句类型为"地点",疑问词"什么"与其上下文出现的名词"位置"对应的 问句类型为"地点",因此可以识别出问句3 1和32属于相同的问句类型,从而可以确定权重 系数SentType^,^)取第一值,例如1。
[0085] 图6示出了对语句进行上述处理的结果的示意图。
[0086] 如图6所示,在第一个句子Si中,"华中科技大学"、"华中"、"科技"、"大学"对应第 一个语义映射位,"湖北"对应第二个语义映射位,"武汉"对应第三个语义映射位,"哪个地 方"、"哪个"、"地方"对应第四个语义映射位。在第二个句子&中,"华科大"对应第一个语 义映射位,"武汉市"对应第二个语义映射位,"什么位置"、"什么"、"位置"对应第三个语义 映射位。
[0087] 由于"华中科技大学"和"华科大"映射到相同的归一化表述,因此"华中科技大学" 和"华科大"为匹配成功的词语。"在"是停用词,将其忽略,不参与计算。"武汉"和"武汉 市"映射为相同的归一化表述,因此"武汉"和"武汉市"也是匹配成功的词语。"哪个地方" 和"什么位置"映射为相同的归一化表述,因此"哪个地方"和"什么位置"也是匹配成功的 1司语。
[0088] 按照上面给出的公式(3)可以计算两个句子之间的主题匹配相似度:
[0090] 在本申请实施例中,基于预先构建的点击转义模型,利用句子间的文本主题匹配 模型计算查询请求与候选结果的语句之间的主题匹配相似度可以表现为:利用点击转义模 型来调整候选结果的语句中的某些词的相似度权重。
[0091] 词的初始相似度权重可以利用文本挖掘领域的已知技术来分配。可以有多重分配 权重的方式,常用的例如包括TF-IDF(termfrequency-inversedocumentfrequency)。
[0092]TF-IDF是一种用于信息搜索和信息挖掘的常用加权技术。在搜索、文献分类和其 他相关领域有广泛的应用。TF-IDF的主要思想是,如果某个词或短语在一篇文章中出现的 频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力, 适合用来分类。TF词频(TermFrequency)指的是某一个给定的词语在该文件中出现的次 数。IDF反文档频率(InverseDocumentFrequency)的主要思想是:如果包含词条的文档 越少,IDF越大,则说明词条具有很好的类别区分能力。使用TF和IDF可以计算某个关键 字在某篇文章里面的重要性。可以基于TF和IDF,利用各种函数关系来构造词语的权重。
[0093] 在一些实现中,词语的初始权重可以按下式计算:
[0095] 其中)为分词%的词频,其可以表示为分词wlt.在该文档中出现的次数与 该文档分词的总数之比;)为分词叫,.的反文档频率,N为总文档数,出现 分词wu,的文档数。
[0096] 在本申请的一些实施例中,对各语句中的分词确定初始权重之后,可以对候选结 果的语句中的某些分词的相似度权重基于点击转义模型进行调整。
[0097] 图7示出了根据本申请实施例的基于点击转义模型调整分词相似度权重的方法 的一种示例性流程图。
[0098] 如图7所示,在步骤710中,利用词对齐从候选结果的语句中确定与查询请求中的 词语对齐的相邻上文和下文。该步骤与前面结合图2描述的构建点击转义模型的步骤220 类似,此处不再赘述。
[0099] 接着,在步骤720中,根据转义词典和/或非转义词典调整候选结果的语句中的对 应上文和下文的相似度权重。
[0100] 在此步骤中,针对识别出的相邻上文和相邻下文,可以查找转义词典和非转义词 典,以对这些相邻上文和相邻下文的相似度权重进行调整。
[0101] 具体而言,若非转义词典中包括候选结果的语句中的对应词语及其相邻上文或相 邻下文,则降低该相邻上文或相邻下文的相似度权重。若转义词典中包括候选结果的语句 中的对应词语及其相邻上文或相邻下文,则调高该相邻上文或相邻下文的相似度权重。如 果非转义词典和转移词典中都未找到对应词语及其相邻上文或相邻下文,则可以不调整其 相似度权重。
[0102] 例如,查询语句为"中国国旗",候选结果为"海里有挂满中国国旗的渔船",相邻上 文为"挂满",相邻下文为"渔船"。针对词语"中国"和相邻上文"挂满",可以首先在原生转 义词典和非转义词典中进行查找。如果原生非转义词典中有"中国,挂满",则可以降低"挂 满"的相似度权重,从而提高主题匹配相似度。如果原生转义词典和非转义词典中都没有 "中国,挂满",可以继续查找泛化转义词典和非转义词典。如果在泛化非转义词典中查到 "【地名】,挂满",则同样可以对"挂满"进行降权处理,也即降低"挂满"的相似度权重,从而 提高主题匹配相似度。针对词语"国旗"和相邻下文"渔船"可以基于同样的思路进行处理, 此处不再赘述。
[0103] 在对词语的相似度权重基于点击转义模型进行调整之后,可以利用上面描述的句 子间的文本主题匹配模型来计算查询请求与候选结果的语句之间的主题匹配相似度。
[0104] 例如,可以按如下公式计算查询请求与候选结果的语句之间的主题匹配相似度:
[0106] 其中,Sim(Q,S)表示Q和S之间的主题匹配相似度,Q表示查询请求,S表示候选 结果的语句,SentType(Q,S)表示两个句子类型匹配的权重系数,Wgt(wlk)表示从查询请求 中得到的词wlk的相似度权重,M为词wlk的数量,Wgt(w21)表示从候选结果的语句中得到的 词w21的相似度权重,N为词w21的数量,其中候选结果的语句中的某些词(例如相邻上文和 /或相邻下文基于点击转 义模型进行了调整)。
[0107] 继续图5,在步骤512中,根据查询请求与候选结果的语句之间的匹配状况确定转 义因子。
[0108] 在步骤511确定句子间的主题匹配相似度时,从微观上考虑,基于点击转义模型 对具体的词语的相似度权重进行了调整。在此步骤512中,根据查询请求与候选结果的语 句之间的匹配状况,也即从宏观上考虑来确定一个转义因子。
[0109] 查询请求与候选结果的语句之间的匹配状况例如可以包括:查询请求中最重要的 词语没有在候选结果的语句中出现、存在上下文的匹配以及不存在上下文的完全匹配。
[0110] 当查询请求中最重要的词语没有在候选结果的语句中出现时,这通常表明二者之 间的相关性较低,以及转义的可能性较高。此时,可以将转义因子确定为第一值,例如〇. 7。 查询请求中的词语的重要性可以基于前面确定的相似度权重来确定。例如,可以直接根据 TF-IDF技术确定的权重来确定。
[0111] 存在上下文的匹配是指除了词语的字面匹配之外,候选结果中还存在与该词语的 相邻上文或相邻下文。换言之,此时候选结果也存在转义的可能性。因此,可以将转义因子 确定为第二值,第二值大于第一值,例如为〇. 95。
[0112] 不存在上下文的完全匹配是指除了词语的字面匹配之外,候选结果中不存在该词 语的相邻上文和相邻上文。换言之,此时候选结果基本上不存在转义的可能性。因此,可以 将转义因子确定为第三值,第三值大于第二值,例如为1。
[0113] 最后,在步骤513中,基于转义因子和主题匹配相似度计算查询请求与候选结果 的语句之间的语义相关度。
[0114] 基于转义因子和主题匹配相似度,可以根据多种函数关系来构建语义相关度。在 一种实现中,可以按下式计算查询请求与候选结果的语句之间的语义相关度:
[0115] Rele(Q,S) = 0 (Q,S)Sim(Q,S)
[0116] 其中,Rele(Q,S)表示Q和S之间的语义相关度,0 (Q,S)表示Q和S之间的转义 因子,Sim(Q,S)表示Q和S之间的主题匹配相似度,Q表示查询请求,S表示候选结果的语 句。
[0117] 应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求 或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期 望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些 步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0118] 进一步参考图8,其示出了根据本申请实施例的搜索引擎的示例性结构框图。
[0119] 如图8所示,搜索引擎800包括接收单元810、搜索单元820、语义相关度确定单元 830和排序单元840。
[0120] 接收单元810可以配置用于接收用户输入的查询请求。搜索单元820可以配置用 于搜索与查询请求匹配的候选结果。语义相关度确定单元830可以配置用于基于点击转义 模型确定查询请求与每个候选结果之间的语义相关度。排序单元840可以配置用于根据语 义相关度对候选结果进行排序。其中,点击转义模型包括转义词典和/或非转义词典,转义 词典包括确定发生转义的搜索结果的对应词语及其上下文,非转义词典包括确定未发生转 义的搜索结果的对应词语及其上下文。
[0121] 在一些实施例中,语义相关度确定单元830可以包括:计算单元831,用于针对每 个候选结果,确定查询请求与候选结果的一个或多个语句之间的语义相关度,其中语句包 括以下至少一项:候选结果的标题、锚文本和正文中的核心句子。语义相关度确定单元830 还可以包括确定单元832,用于根据所确定的查询请求与候选结果的一个或多个语句之间 的语义相关度确定查询请求与候选结果之间的语义相关度。
[0122] 在一些实现中,计算单元831可以包括:主题匹配相似度模块(未示出),用于基 于点击转义模型,利用句子间的文本主题匹配模型计算查询请求与候选结果的语句之间的 主题匹配相似度。
[0123] 主题匹配相似度模块具体可以用于:利用词对齐从候选结果的语句中确定与查询 请求中的词语对齐的相邻上文和下文;根据转义词典和/或非转义词典调整候选结果的语 句中的对应上文和下文的相似度权重;以及根据调整后的相似度权重,利用句子间的文本 主题匹配模型计算查询请求与候选结果的语句之间的主题匹配相似度。
[0124] 计算单元831还可以包括:转义因子模块(未示出),用于根据查询请求与候选结 果的语句之间的匹配状况确定转义因子。
[0125] 转义因子模块具体可以用于:若匹配状况为查询请求中最重要的词语没有在候选 结果的语句中出现,则转义因子确定为第一值;若匹配状况为存在上下文的匹配,则转义因 子确定为第二值;若匹配状况为不存在上下文的完全匹配,则转义因子确定为第三值,其 中,第一值小于第二值,并且第二值小于第三值。
[0126] 计算单元831还可以包括:合成模块(未示出),用于基于转义因子和主题匹配相 似度计算查询请求与候选结果的语句之间的语义相关度。
[0127] 在一些实施例中,点击转义模型中的转义词典和非转义词典通过学习查询请求与 搜索结果Query-Title对的点击数而构建。
[0128] 在一些实现中,转义词典和非转义词典包括通过如下方法而构建的原生转义词典 和原生非转义词典:获取Query-Title对的点击展现比,点击展现比为点击数与展现数之 比,展现数指示搜索结果响应于查询请求而被展现的次数,点击数指示搜索结果响应于查 询请求而展现时被用户点击的次数;利用词对齐在搜索结果中获取与查询语句中词语对齐 的相邻上下文;将点击展现比低于第一阈值的Query-Title对中的对应词语及其上下文加 入原生转义词典中;以及将点击展现比高于第二阈值的Query-Title对中的对应词语及其 上下文加入原生非转义词典中。
[0129] 可选的或附加的,转义词典和非转义词典还包括通过如下方法而构建的泛化转义 词典和泛化非转义词典:对查询请求中的词语标注语义类别;以及利于所标注的语义类别 构建与原生转义词典和原生非转义词典对应的泛化转义词典和泛化非转义词典。
[0130] 应当理解,搜索引擎800中记载的诸单元或子单元与前面参考方法流程图描述的 方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征同样适用于搜索引擎800 及其中包含的单元,在此不再赘述。
[0131] 下面参考图9,其示出了适于用来实现本申请实施例的服务器的计算机系统900 的结构示意图。
[0132] 如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只 读存储器(ROM) 902中的程序或者从存储部分908加载到随机访问存储器(RAM) 903中的程 序而执行各种适当的动作和处理。在RAM903中,还存储有系统900操作所需的各种程序 和数据。CPU901、R0M902以及RAM903通过总线904彼此相连。输入/输出(I/O)接口 905也连接至总线904。
[0133] 以下部件连接至I/O接口 905 :包括键盘、鼠标等的输入部分906 ;包括诸如阴极 射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分 908 ;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经 由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口 905。可拆卸 介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便 于从其上读出的计算机程序根据需要被安装入存储部分908。
[0134] 特别地,根据本公开的实施例,上文参考图2-图7描述的过程可以被实现为计算 机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可 读介质上的计算机程序,所述计算机程序包含用于执行图2-图7的方法的程序代码。在这 样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆 卸介质911被安装。
[0135] 附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程 序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代 表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个 用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所 标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际 上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要 注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以 用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机 指令的组合来实现。
[0136] 描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以 通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的 名称在某种情况下并不构成对该单元或模块本身的限定。
[0137] 作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介 质可以是上述实施例中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未 装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程 序,所述程序被一个或者一个以上的处理器用来执行描述于本申请的公式输入方法。 [0138] 以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人 员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术 方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行 任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似 功能的技术特征进行互相替换而形成的技术方案。
【主权项】
1. 一种搜索引擎的实现方法,包括: 接收用户输入的查询请求; 搜索与所述查询请求匹配的候选结果; 基于点击转义模型确定所述查询请求与每个候选结果之间的语义相关度;以及 根据所述语义相关度对候选结果进行排序; 其中所述点击转义模型包括转义词典和/或非转义词典,所述转义词典包括确定发生 转义的搜索结果的对应词语及其上下文,所述非转义词典包括确定未发生转义的搜索结果 的对应词语及其上下文。2. 根据权利要求1所述的方法,其中,确定所述查询请求与每个候选结果之间的语义 相关度包括,针对每个候选结果: 确定所述查询请求与候选结果的一个或多个语句之间的语义相关度,其中所述语句包 括以下至少一项:候选结果的标题、锚文本和正文中的核心句子;以及 根据所确定的查询请求与候选结果的一个或多个语句之间的语义相关度确定所述查 询请求与所述候选结果之间的语义相关度。3. 根据权利要求2所述的方法,其中,确定所述查询请求与候选结果的语句之间的语 义相关度包括: 基于所述点击转义模型,利用句子间的文本主题匹配模型计算所述查询请求与候选结 果的语句之间的主题匹配相似度; 根据所述查询请求与候选结果的语句之间的匹配状况确定转义因子;以及 基于所述转义因子和所述主题匹配相似度计算查询请求与候选结果的语句之间的语 义相关度。4. 根据权利要求3所述的方法,其中,基于所述点击转义模型计算所述查询请求与候 选结果的语句之间的主题匹配相似度包括: 利用词对齐从候选结果的语句中确定与所述查询请求中的词语对齐的相邻上文和下 文; 根据所述转义词典和/或非转义词典调整候选结果的语句中的对应上文和下文的相 似度权重;以及 根据调整后的相似度权重,利用句子间的文本主题匹配模型计算所述查询请求与候选 结果的语句之间的主题匹配相似度。5. 根据权利要求4所述的方法,其中,根据转义词典和/或非转义词典调整候选结果的 语句中的对应上文和下文的相似度权重,包括: 若非转义词典中包括候选结果的语句中的对应词语及其上文或下文,则降低该上文或 下文的相似度权重;以及 若转义词典中包括候选结果的语句中的对应词语及其上文或下文,则调高该上文或下 文的相似度权重。6. 根据权利要求4所述的方法,其中,所述句子间的文本主题匹配模型为向量空间模 型:其中,Sim(Q,S)表示Q和S之间的主题匹配相似度,Q表示查询请求,S表示候选结果 的语句,SentType (Q,S)表示两个句子类型匹配的权重系数,Wgt (Wlk)表示从查询请求中得 到的词wlk的相似度权重,M为词w lk的数量,Wgt (w 21)表示从候选结果的语句中得到的词W2I 的相似度权重,N为词W21的数量。7. 根据权利要求3所述的方法,其中,根据所述查询请求与候选结果的语句之间的匹 配状况确定转义因子包括: 若匹配状况为查询请求中最重要的词语没有在候选结果的语句中出现,则转义因子确 定为第一值; 若匹配状况为存在上下文的匹配,则转义因子确定为第二值;以及 若匹配状况为不存在上下文的完全匹配,则转义因子确定为第三值, 其中,所述第一值小于第二值,并且所述第二值小于第三值。8. 根据权利要求3所述的方法,其中,按下式计算查询请求与候选结果的语句之间的 语义相关度: Rele (Q, S) = β (Q, S)Sim(Q, S) 其中,Rele(Q,S)表示Q和S之间的语义相关度,β (Q,S)表示Q和S之间的转义因子, Sim(Q,S)表示Q和S之间的主题匹配相似度,Q表示查询请求,S表示候选结果的语句。9. 根据权利要求1所述的方法,其中,所述点击转义模型中的转义词典和非转义词典 通过学习查询请求与搜索结果Query-Title对的点击数而构建。10. 根据权利要求9所述的方法,其中,所述转义词典和非转义词典包括通过如下方法 而构建的原生转义词典和原生非转义词典: 获取Query-Title对的点击展现比,所述点击展现比为点击数与展现数之比,展现数 指示搜索结果响应于查询请求而被展现的次数,点击数指示搜索结果响应于查询请求而展 现时被用户点击的次数; 利用词对齐在搜索结果中获取与查询语句中词语对齐的相邻上下文; 将点击展现比低于第一阈值的Query-Title对中的对应词语及其上下文加入原生转 义词典中;以及 将点击展现比高于第二阈值的Query-Title对中的对应词语及其上下文加入原生非 转义词典中。11. 根据权利要求10所述的方法,其中,所述转义词典和非转义词典还包括通过如下 方法而构建的泛化转义词典和泛化非转义词典: 对查询请求中的词语标注语义类别;以及 利用所标注的语义类别构建与原生转义词典和原生非转义词典对应的泛化转义词典 和泛化非转义词典。12. 根据权利要求4或10所述的方法,其中,所述词对齐包括同义词对齐。13. -种搜索引擎,包括: 接收单元,用于接收用户输入的查询请求; 搜索单元,用于搜索与所述查询请求匹配的候选结果; 语义相关度确定单元,用于基于点击转义模型确定所述查询请求与每个候选结果之间 的语义相关度;以及 排序单元,用于根据所述语义相关度对候选结果进行排序; 其中所述点击转义模型包括转义词典和/或非转义词典,所述转义词典包括确定发生 转义的搜索结果的对应词语及其上下文,所述非转义词典包括确定未发生转义的搜索结果 的对应词语及其上下文。14. 根据权利要求13所述的搜索引擎,其中,所述语义相关度确定单元包括: 计算单元,用于针对每个候选结果,确定所述查询请求与候选结果的一个或多个语句 之间的语义相关度,其中所述语句包括以下至少一项:候选结果的标题、锚文本和正文中的 核心句子;以及 确定单元,用于根据所确定的查询请求与候选结果的一个或多个语句之间的语义相关 度确定所述查询请求与所述候选结果之间的语义相关度。15. 根据权利要求14所述的搜索引擎,其中,所述计算单元包括: 主题匹配相似度模块,用于基于所述点击转义模型,利用句子间的文本主题匹配模型 计算所述查询请求与候选结果的语句之间的主题匹配相似度; 转义因子模块,用于根据所述查询请求与候选结果的语句之间的匹配状况确定转义因 子;以及 合成模块,用于基于所述转义因子和所述主题匹配相似度计算查询请求与候选结果的 语句之间的语义相关度。16. 根据权利要求15所述的搜索引擎,其中,所述主题匹配相似度模块用于: 利用词对齐从候选结果的语句中确定与所述查询请求中的词语对齐的相邻上文和下 文; 根据所述转义词典和/或非转义词典调整候选结果的语句中的对应上文和下文的相 似度权重;以及 根据调整后的相似度权重,利用句子间的文本主题匹配模型计算所述查询请求与候选 结果的语句之间的主题匹配相似度。17. 根据权利要求15所述的方法,其中,所述转义因子模块用于: 若匹配状况为查询请求中最重要的词语没有在候选结果的语句中出现,则转义因子确 定为第一值; 若匹配状况为存在上下文的匹配,则转义因子确定为第二值; 若匹配状况为不存在上下文的完全匹配,则转义因子确定为第三值, 其中,所述第一值小于第二值,并且所述第二值小于第三值。18. 根据权利要求13所述的搜索引擎,其中,所述点击转义模型中的转义词典和非转 义词典通过学习查询请求与搜索结果Query-Title对的点击数而构建。19. 根据权利要求18所述的搜索引擎,其中,所述转义词典和非转义词典包括通过如 下方法而构建的原生转义词典和原生非转义词典: 获取Query-Title对的点击展现比,所述点击展现比为点击数与展现数之比,展现数 指示搜索结果响应于查询请求而被展现的次数,点击数指示搜索结果响应于查询请求而展 现时被用户点击的次数; 利用词对齐在搜索结果中获取与查询语句中词语对齐的相邻上下文; 将点击展现比低于第一阈值的Query-Title对中的对应词语及其上下文加入原生转 义词典中;以及 将点击展现比高于第二阈值的Query-Title对中的对应词语及其上下文加入原生非 转义词典中。20.根据权利要求19所述的搜索引擎,其中,所述转义词典和非转义词典还包括通过 如下方法而构建的泛化转义词典和泛化非转义词典: 对查询请求中的词语标注语义类别;以及 利于所标注的语义类别构建与原生转义词典和原生非转义词典对应的泛化转义词典 和泛化非转义词典。
【专利摘要】本申请公开了一种搜索引擎及其实现方法。搜索引擎的实现方法包括:接收用户输入的查询请求;获取与查询请求匹配的候选结果;基于点击转义模型确定查询请求与每个候选结果之间的语义相关度;以及根据语义相关度对候选结果进行排序;其中,点击转义模型包括转义词典和/或非转义词典,转义词典包括确定发生转义的搜索结果的对应词语及其上下文,非转义词典包括确定未发生转义的搜索结果的对应词语及其上下文。按照本申请的技术方案,按照语义相关度对搜索的候选结果进行排序,能够提高搜索结果的排序效果,避免不符合用户搜索需求的结果出现在搜索结果列表的前列,从而确保用户具有良好的使用体验。
【IPC分类】G06F17/30, G06F17/27
【公开号】CN104899322
【申请号】CN201510342427
【发明人】方高林
【申请人】百度在线网络技术(北京)有限公司
【公开日】2015年9月9日
【申请日】2015年6月18日

最新回复(0)