页面载入中,请稍候...

搜索引擎中的粒度问题[1/2]

2012-01-25 16:42:12    作者:admpub    来源:会员投稿    评论:读取中    点击:读取中    [我要投稿]

一.前言传统的搜索引擎的定义,是指一种对于指定的查询(Query),能够返回与之相关的文档集合(Documents)的系统。而百度将这个定义更加...

一.前言

传统的搜索引擎的定义,是指一种对于指定的查询(Query),能够返回与之相关的文档集合(Documents)的系统。而百度将这个定义更加丰富化,即搜索引擎能够帮助人们更方便的找到所求。这里的“所求”,比“文档”更加宽泛和丰富,比如一个关于天气的查询,直接返回一个天气预报的窗口,而非一篇关于天气的文档;再如一个关于小游戏的查询,直接返回这个小游戏的Flash页面而非简单的介绍性的文字。

百度对Query深刻的理解,源于自然语言处理技术在其中发挥的巨大作用。对搜索引擎而言,文本切分是最基础也是最重要的自然语言问题之一。今天,我们就来谈谈文本切分粒度与搜索引擎的关系。

本文后续章节组织如下:第二节介绍什么是文本的粒度,第三节讲述搜索引擎的基本原理与文本切分粒度的关系,第四节深入探讨粒度的属性与检索相关性计算,第五节小结。

二.文本粒度

什么是文本的粒度?我们用什么来衡量文本粒度?在回答这些问题前,让我们先看看以下几组词汇:

缠绵、崎岖、葡萄、乒乓

绿茶、篮球、红色、鼠标垫、起重机

打球、跳绳、炒菜、登山

笔记本电脑、高清机顶盒、IP电视

但是、然后、如果、非常

步步惊心、家的n次方、一个人的精彩

百度在线网络技术(北京)有限公司、清华大学

张学友、赵传、工藤新一、里奥内尔·安德雷斯·梅西

……

这几组词汇中,哪些的粒度大,哪些的粒度小?

不管在传统的语言学领域,还是在自然语言处理领域,都没有对粒度下一个清晰准确的定义。但是就搜索引擎而言,我们不妨这样定义:粒度是衡量文本所含信息量的大小。文本含信息量多,粒度就大,反之就小。有了这个原则,我们就很容易判断文本粒度大小了。像“缠绵”,“崎岖”,“葡萄”这些词,虽然有两个字组成,但是仅表达一个意思,这些词的粒度是小的。而“篮球”,“鼠标垫”等词,是由简单词合成的,虽然也只有一个意思,但还可以拆分,如“篮”和“球”,“鼠标”和“垫”。这类词,粒度稍微大一些。而“笔记本电脑”,“高清机顶盒”这样的词,粒度就更大了。

专名是一类比较特殊的词,尽管所含字数很多,但其实只表达一个意思,如“步步惊心”,“家的n次方”这样的电影、电视剧的名称,粒度是很小的。机构名、人名等属于有内部结构的专名,比电影名的粒度稍大一些。

显然易见,我们在讨论文本粒度时,理想的方式是从语义角度出发,合理的分析和判断。然而以上我们仅对粒度做了定性的分析,为粒度找一个合适的度量单位和计算方法,是百度人一直追求的目标。

三.搜索引擎的基本原理与词汇切分关系

3.1 搜索引擎的基本原理

文本检索系统,是搜索引擎最简单的实现方式。通过返回包含关键字的页面,来满足用户的检索需求。形式化的表达就是给定一系列关键字集合K,要求返回所有包含关键字的文档D,对D中的任意一个文档d,包含K中的任意一个关键字k。

一般我们采用倒排索引的方式来实现这个系统。所谓倒排索引,就是对关键字建立索引,记录包含这个关键字的文档集合D。对于请求的关键字集合,找出所有关键字对应的索引,并对索引求交,最后返回同时存在于所有索引中的文档。

在百度,我们不仅允许用户输入关键字,也可以输入任何长度在一定范围内的文本。此时我们需要对文本做一定处理,切分成一系列关键字,从而能够从倒排索引中找出对应的文档。

那么为什么要对输入文本做切分,如果不切分会有什么问题?

我们可以想象一下,如果不对输入文本做切分,直接用输入文本去做匹配,会怎么样?首先,得到的结果会非常少,因为直接用全部文本匹配,就失去了灵活性,对结果限制的非常死,必须完全匹配才能满足要求;其次,系统性能会非常差,因为需要对所有长度的文本都建立索引,这是指数级的,在实际系统中根本不可能实现。再考虑一下另一个极端?我们对输入文本做单字切分,结果又是怎样?我们会得到大量无关的页面,不仅浪费系统性能,对相关性计算也造成了巨大的压力。

所以,我们需要对文本做一个合适的切分。

3.2 用户满意度与粒度关系

无论是建立倒排索引、还是处理输入文本,我们都需要对文本做切分,切出合适的关键字出来。为了能够使用户对查询结果满意,搜索引擎需要什么样的粒度?让我们先看一下下面几个例子:

1. Q:“北京地图” P1:“北京市地图” P2:“北京城市地图”

2. Q:“闹太套是神马意思”, P:”A:神呐,我骑不了这烈马。B:闹太套!”

3. Q:“兽兽门” P:“兽兽艳照门”

4. Q1:“工业园” Q2:“园区” P:“工业园区”

5. Q:“ip电视” P1:“ip电视的历史” P2:“电视销售…您的IP是xxx”

注:Q表示query,P表示页面中包含Q的内容

Case1,要求query能找到P1和P2这样的结果,就必须对P1和P2都切出“北京”这个词来。Case2,必须把”神马”切为一个词,否则会召回P这样不相关的结果。Case3,不能把Q中的“兽兽门“切为一个词,而需要切除“兽兽”,否则就召不回”兽兽艳照门”这个结果。Case4中,对“工业园区”这样的页面,必须同时切出“工业园”和“园区”这两个重叠的词汇,才能保证Q1和Q2都能召回。Case5与Case2类似,如果把ip和电视分开切分,将召回P2这样不相关的结果。

以上几个case,基本上概括了搜索引擎对切分粒度的要求,我们可以从两方面来描述:1)影响召回 2)影响相关性

相关热词搜索:

上一篇:第一页
下一篇:专访淡水:淘宝开店赚取第一桶金

分享到: 收藏