目录

 

首页 -> 1.使用布尔模式的信息检索

术语信息检索(information retrieval)的意义可以非常广泛。把你的信用卡从钱包拿出来输入信用卡号,也可以算作一种形式的信息检索。不过,在学术领域,信息检索可能是这么定义的:

信息检索(IR)就是在一个巨大的数据集合(通常保存在电脑)中找到符合某种信息需求的无结构文本资料。

既然是如此定义的,信息检索曾经是少数人参与的活动:图书馆检索员,律师助手或者类似的专业搜索者。但是现在整个世界改变了,每天都有上亿人在使用Web搜索引擎或查找自己的邮件时,进行了信息检索。信息检索正在迅速地变成访问信息的主流形式,对传统的数据库形式的搜索取得了压倒性的胜利(当办事员们对你说,“对不起,如果您不能提供您的订单号,我就无法帮助您查询您的订单。”的时候,这种代替的趋势正在继续)。

IR可以涵盖核心定义以外的其他种类的数据和信息问题。术语“非结构数据”指的是那些没有清晰的,包含语意的,方便计算的结构的数据。这是结构数据的反义词,结构数据最经典的例子就是用于保存产品库存和个人记录的关系数据库。实际上,几乎没有什么数据是真正“非结构的”。当你考察人类语言的内在语言学结构的时候,这无疑是正确的。即使接受结构的意愿也是明显的结构,大多数文本是有结构的,比如标题段落和脚注,通常用明显的标记在文档中展现(就像Web页面之下的代码)。IR也用于帮助进行“半结构化”搜索,例如寻找标题包含Java内容包含threading的文档。

信息检索的领域还包括了支持用户浏览和过滤文档集或者对获取的文档进行进一步处理。对于给定的文档集,聚类就是根据它们的内容对文档进行良好的分组。这类似于根据书的主题排列书架上的书。分类就是,针对给定一组主题,根据信息需求,或者其他的类别(例如,不同年龄段适合的文本),来决定文档集中的每一篇文档应该属于哪个分类。常用的方法是首先手动分类一些文档,然后期望可以对新文档进行自动分类。

信息检索系统也可以根据它们操作的规模来区分,比较有用的是三种主要的区分方式。在web搜索中,系统必须提供在保存在百万台机器中的数亿文档的搜索功能。web搜索的独特需求是,收集文档进行索引,构建在巨大规模下仍可高效工作的系统,处理web系统的具体问题,例如分析超文本,不被站点提供者为了提高它们在搜索引擎中的排名而刻意操纵的页面内容所愚弄,给出最有商业价值的结果。19-21章我们会讨论这些目标。另一个极端是个人信息检索。过去几年里,用户操作系统已经集成了信息检索(例如,Apple Mac OS X中的Spotlight或者Windows Vista的Instant Search)。Email系统开发者不仅提供搜索,而且提供基于文本的分类系统:至少都提供了垃圾邮件过滤器,通常还提供了手动和自动邮件分类的系统,把邮件直接放到特定的目录。这里的独特需求包括,构建可以处理个人电脑上丰富的文档类型的,无需维护的搜索系统,令系统在启动和处理期间高效且轻量级,存储空间占用较少,这样系统才可以在不干扰用户的前提下运行在个人电脑中。两者之间的就是企业、行业和指定领域的搜索,检索的范围可能是公司的内部文档,专利数据库,生物化学领域的论文。这种情况下,文档通常被保存在一个集中式的文件系统中,一台或者几台专用的机器提供搜索功能。这本书包含了对整个领域都有价值的技术,但是我们更专注于中间的情况,因为这是60年来信息检索科研领域广泛研究的场景,也是因为这是6-7家公司以外,一个软件开发者最经常遭遇的场景。

本章我们从一个信息检索问题的非常简单的例子开始,引入词汇-文档矩阵的思想(1.1节)和中心反向索引数据结构(1.2节)。我们将检验布尔检索模型以及布尔查询是如何进行处理的(1.31.4节)。