布尔检索

Information retrieval 这个术语的含义是很广泛的。从你的钱包中取出一张信用卡从而可以输入卡号,这可以说就是一种 Information retrieval。然而为了学术研究,Information retrieval 可以这样定义:

Information retrieval is finding material (usually documents) of an unstructured nature (usually text) that satisfies an information need from within large collections (usually stored on computers).

这样定义的话,Information retrieval 只主要涉及这些人:图书馆员,律师助理或者是职业搜索者。但是如今时代已经改变了,现在数以百万的人们每天都会和 Information retrieval 打交道,例如发邮件或者是使用搜索引擎的时候。Information retrieval 正在主宰着我们信息获取的形式,赶超着传统的数据库风格的搜索。(例如有一位员工会这样回答你的请求:“我很抱歉,只有你告诉我你的订单号我才能帮你查询。”)

有时候 IR 也会涉及到一些其他的方面。术语 unstructured data 指那些没有明确的结构和语义,不便于计算机操作的那些数据。它是 structured data 的反面。比较典型的结构化的数据有关系型数据库,公司使用它来储存产品库存和员工个人记录等。事实上,几乎没有数据是真正意义上 unstructured 的。这对于所有文本来说都是成立的,因为如果你深究的话你会发现人类语言在潜在的语义上就是有一定结构的。但是尽管如此,大多数文本都是有结构的,比如标题,段落,脚注等,并且都会明确地标记出来。 IR 也用来提高 semistructured 检索,比如找一篇文档,它的标题包含 Java 而它的正文包含threading

Information retrieval 也包括帮助用户浏览,过滤文档,或者是再处理一些获取的文档。当你有一系列文档的时候,Clustering 主要研究如何基于这些文档的内容来进行分类。就像把很多书籍放回到书架上一样,你肯定会根据书的内容来分。当你有一系列主题的时候,在满足一定限制的同时(比如不同年龄的人主题的适用性是不同的),Classification 就是要决定每一个文档应该属于哪一个 class 中。通常都会先人工进行分类,之后再尝试自动化。

Information retrieval systems 也能通过它们运作的 scale 来划分,以下是比较有用的一种划分。在网络检索时,系统要在百万的计算机之中检索百万的文档,并筛选出符合用户需要的。文档的排序需要各种各样的方案,并且系统要有效地面对如此巨大的数据规模。你还要面对网络的
各方各面,比如在利用超文本的时候不被网站提供者所骗,误把他们的网页排在前面。我们关注着所有这些有关的方案。另一方面就是个人信息的检索。在最近的几年里,消费者使用的操作系统集成了 Information retrieval 的功能,例如苹果的 Mac OS X Spotlight 或者说 Windows Vista's 的 Instant Search。邮件系统常常提供搜索和文本分类的功能:
它们至少会提供垃圾邮件的过滤器,通常会让你选择手动还是自动分类。我们提到了处理各种个人文档的方法,以及如何使检索系统的维护自由并且足够轻量,包括启动,处理,硬盘空间的使用以及在不影响 owner 的情况下在另一台机器上运行。在以上两者之间的就是企业,机构,以及领域专门的检索,例如公司内部文档、专利或者生物化学的研究相关文档。在这种情况下,这些文档通常会被存储在中心化的文件系统,一台或者更多的机器会专门负责对这些文档的检索。本书对于并行以及分布式相关的检索系统的描述是比较少的,因为这方面的资料相对来说还没有那么多。总的来说,除了少数的搜索公司,软件开发者或许是最有可能遇到个人搜索之类的情景的了。

在这一章我们以一个非常简单的 Information retrieval 的问题作为例子,来介绍 term-document matrix 以及 inverted index data structure 的概念。之后我们会提到布尔检索的模型,以及对布尔查询的处理。

results matching ""

    No results matching ""