查询服务

    正如在工作原理部分所说,但我们输入某词条时,搜索引擎返回一个包含标题、URL、摘要等的信息列表。如何从网页集合生成一个列表,是服务子系统的主要工作。服务子系统是在服务进行的过程中涉及的相关软件程序,而为这些软件程序事先准备数据的程序都算在预处理子系统中,主要有三个方面:

1. 查询方式和匹配
    查询方式指的是系统允许用户提交查询的形式。一般认为,对于普通网络用户来说,最自然的方式就是“要什么就输入什么”。但这是一种相当模糊的说法。当输入"搜索引擎"两字以后,有人可能想知道有哪些搜索引擎公司,有人可能想知道搜索引擎技术,这是两种不同的需求。一般,用一个词或短语来直接表达信息需求,因为它的确代表了大多数的情况,而且也比较容易实现,故系统面对的即查询短语。就英文来说,它是一个词的序列;就中文来说,它包含若干个词的一段文字。首先,我们需要对用户提交的原始查询进行切词(segment),比如你输入"长沙小吃",则得到一个词的序列"长沙 小吃"(对不同的分词软件可能得出不同的结果)。然后需要删除那些没有查询意义或者几乎在每篇文档中都会出现的词(比如的,得,与等)。最后形成一个用于参加匹配的查询词表,设q={长沙 小吃}。经过预处理部分已经形成的倒排文件即把词作为索引的一个数据结构,显然,q中的词必须包含在倒排文件词表中才有意义。q和倒排文件的交集即为对应查询的结果文档集合。

2. 结果排序
    给定一个查询结果集合,R={r1, r2, …, rn},所谓列表,就是按照某种评价方式,确定出R中元素的一个顺序,让这些元素以这种顺序呈现出来。笼统地讲,ri和q的相关性(relevance)是形成这种顺序的基本因素。但是,有效地定义相关性本身是很困难的,从原理上讲它不仅和查询词有关,而且还和用户的背景,以及用户的查询历史有关。不同需求的用户可能输入同一个查询,同一个用户在不同的时间输入的相同的查询可能是针对不同的信息需求。
    为了形成一个合适的顺序,在搜索引擎出现的早期人们采用了传统信息检索领域很成熟的基于词汇出现频度的方法。大致上讲就是一篇文档中包含的查询(q)中的那些词越多,则该文档就应该排在越前面;再精细一些的考虑则是若一个词在越多的文档中有出现,则该词用于区分文档相关性的作用就越小。
    这样一种思路不仅有一定直觉上的道理,而且在倒排文件数据结构上很容易实现。因为,当我们通过前述关键词的提取过程,形成一篇文档的关键词集合,p = {t1, t2, …, tn}的时候,很容易同时得到每一个ti在该文档中出现的次数,即词频,而倒排文件中每个倒排表的长度则对应着一个词所涉及的文档的篇数,即文档频率。
    然而,由于网页编写的自发性、随意性较强,仅仅针对词的出现来决定文档的顺序,在Web上做信息检索表现出明显的缺点,需要有其他技术的补充。这方面最重要的成果就是前面提到过的PageRank。通过在预处理阶段为每篇网页形成一个独立于查询词(也就和网页内容无关)的重要性指标,将它和查询过程中形成的相关性指标结合形成一个最终的排序,是目前搜索引擎给出查询结果排序的主要方法。

3. 文档摘要
    搜索引擎给出的结果是一个有序的条目列表,每一个条目有三个基本的元素:标题,网址和摘要。其中的摘要需要从网页正文中生成。一般来讲,从一篇文字中生成一个恰当的摘要是自然语言理解领域的一个重要课题,人们已经做了多年的工作并取得了一些成果。但相关的技术用到网络搜索引擎来有两个基本困难。一是网页的写作通常不规范,文字比较随意,因此从语言理解的角度难以做好;二是复杂的语言理解算法耗时太多,不适应搜索引擎要高效处理海量网页信息的需求。我们做过统计,即使是分词这一项工作(文本理解的基础),在高档微机上每秒钟也只能完成10篇左右网页的处理。
    因此搜索引擎在生成摘要时要简便许多,基本上可以归纳为两种方式,一是静态方式,即独立于查询,按照某种规则,事先在预处理阶段从网页内容提取出一些文字,例如截取网页正文的开头512个字节(对应256个汉字),或者将每一个段落的第一个句子拼起来,等等。这样形成的摘要存放在查询子系统中,一旦相关文档被选中与查询项匹配,就读出返回给用户。显然,这种方式对查询子系统来说是最轻松的,不需要做另外的处理工作。但这种方式的一个最大的缺点是摘要和查询无关。一篇网页有可能是多个不同查询的结果,当用户输入某个查询,他一般是希望摘要中能够突出显示和查询直接对应的文字,希望摘要中出现和他关心的文字相关的句子。因此,我们有了“动态摘要”方式,即在响应查询的时候,根据查询词在文档中的位置,提取出周围的文字来,在显示时将查询词标亮。这是目前大多数搜索引擎采用的方式。为了保证查询的效率,需要在预处理阶段分词的时候记住每个关键词在文档中出现的位置。
    除上述外,查询服务返回的内容还有一些细节的支持。例如,对应一个查询往往会有成千上万的结果,返回给用户的内容通常都是按页组织的,一般每页显示10个结果。统计表明,网络用户一般没有耐心一页页看下去,平均翻页数小于2。这告诉我们将第一页的内容组织好非常重要。如果希望用户多用搜索引擎,就要让第一页的内容尽量有吸引力。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值